diff --git a/aperezdc/learn-discover-rework/.stamp b/aperezdc/learn-discover-rework/.stamp new file mode 100644 index 000000000..1e11e380c --- /dev/null +++ b/aperezdc/learn-discover-rework/.stamp @@ -0,0 +1 @@ +Wed Feb 28 15:36:22 UTC 2024 diff --git a/aperezdc/learn-discover-rework/README/index.html b/aperezdc/learn-discover-rework/README/index.html new file mode 100644 index 000000000..0a3cc271f --- /dev/null +++ b/aperezdc/learn-discover-rework/README/index.html @@ -0,0 +1,46 @@ +

wpewebkit.org

+

wepwebkit.org is a statically generated site for WPE. The website aims to be simple to maintain and with little complexity and dependencies. It is built with 11ty and Liquid templates - and that’s pretty much it.

+

The actual site is hosted by Igalia who are the primary maintainers of the project.

+

Development

+

In order to setup, you just just have to check it out, switch to the checked out directory and then npm install.

+

Building wpewebkit.org site locally

+

In order to test it all you need to do is

+
npm install && npm run serve
+

This will build the project, start a server, and your terminal will provide you useful links to actually get to it.

+

Structure

+ +

In the root directory you will also find some top level files - index.htmlwhich is the template for the main page, release.md which is the template for creating the release pages, a package.json which is, well, what you’d expect and .eleventy.js which does some very understandable work in creating a date filter for outputting dates (because of how some of the old content exists), and creates some ‘recent’ collections for simple templating of things like release notes and security advisories.

+

Updating wpewebkit.org site

+ +

Updating content

+

In order to write a new release or security advisory piece in the website +you just have to create a new file inside _posts folder using +Markdown syntax.

+

Should you need anything else, you will find 11ty’s documentation pretty helpful.

diff --git a/aperezdc/learn-discover-rework/_authors/aperez/index.html b/aperezdc/learn-discover-rework/_authors/aperez/index.html new file mode 100644 index 000000000..6b00ceb4c --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/aperez/index.html @@ -0,0 +1,17 @@ +
+
+
+
+
+
+ Head shot of Adrián Pérez + This article was written by Adrián Pérez. +
+ I have been working on WebKit since 2012, with a focus on + environment integration, embedding, and distribution. Igalia + has been a life-long project since even earlier. +
+
+
+
+
diff --git a/aperezdc/learn-discover-rework/_authors/csaavedra/index.html b/aperezdc/learn-discover-rework/_authors/csaavedra/index.html new file mode 100644 index 000000000..6aeca7bd5 --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/csaavedra/index.html @@ -0,0 +1,14 @@ +
+
+
+
+
+
+ + This article was written by Claudio Saavedra.

Claudio is long-time WebKit contributor from Igalia, working in different areas of WebKit, WPE, and the stack around it. +
+
+
+
+
+
diff --git a/aperezdc/learn-discover-rework/_authors/llepage/index.html b/aperezdc/learn-discover-rework/_authors/llepage/index.html new file mode 100644 index 000000000..bbc28744f --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/llepage/index.html @@ -0,0 +1,18 @@ +
+
+
+
+
+
+ Head shot of Loïc Le Page + This article was written by Loïc Le Page. +
+ I have worked in different industries like video games, + cinema, and multimedia—the latter being where my + focus lies at the moment. Did anyone say Web engines need + that, too? +
+
+
+
+
diff --git a/aperezdc/learn-discover-rework/_authors/lmoura/index.html b/aperezdc/learn-discover-rework/_authors/lmoura/index.html new file mode 100644 index 000000000..584c23cdb --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/lmoura/index.html @@ -0,0 +1,15 @@ +
+
+
+
+
+
+ + This article was written by Lauro Moura.

Lauro is webkit contributor from Igalia, working mainly on QA. +
+
+
+
+
+
+ diff --git a/aperezdc/learn-discover-rework/_authors/magomez/index.html b/aperezdc/learn-discover-rework/_authors/magomez/index.html new file mode 100644 index 000000000..308a56b77 --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/magomez/index.html @@ -0,0 +1,14 @@ +
+
+
+
+
+
+ + This article was written by Miguel Gómez.

Miguel has been contributing to WebKit and WPE for almost ten years now, focusing specially on the graphics part of the code. +
+
+
+
+
+
diff --git a/aperezdc/learn-discover-rework/_authors/nzimmermann/index.html b/aperezdc/learn-discover-rework/_authors/nzimmermann/index.html new file mode 100644 index 000000000..8792ec2ae --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/nzimmermann/index.html @@ -0,0 +1,15 @@ +
+
+
+
+
+
+ + Picture of Nikolas Zimmermann + This article was written by Nikolas Zimmermann.

I'm a proud Igalian since 2019 and have been working on WebKits predecessors since the early 2000s, namely kjs/khtml/ksvg, and kdom/kcanvas/ksvg2/khtml2 that all found their way into WebKit. Since that time, Web technology - especially SVG - is my main area of interest. +
+
+
+
+
+
diff --git a/aperezdc/learn-discover-rework/_authors/pgriffis/index.html b/aperezdc/learn-discover-rework/_authors/pgriffis/index.html new file mode 100644 index 000000000..cc9bbc414 --- /dev/null +++ b/aperezdc/learn-discover-rework/_authors/pgriffis/index.html @@ -0,0 +1,15 @@ +
+
+
+
+
+
+ + This article was written by Patrick Griffis.

Patrick has been contributing to WebKit since 2018 and does work around networking, security, and the platform libraries WPE uses. +
+
+
+
+
+
+ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/about/a-good-choice.html b/aperezdc/learn-discover-rework/about/a-good-choice.html new file mode 100644 index 000000000..08c28ef1c --- /dev/null +++ b/aperezdc/learn-discover-rework/about/a-good-choice.html @@ -0,0 +1,323 @@ + + + + + + + + + + + + Why Choose WPE? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

Why Choose WPE?

+

WPE WebKit is widely adopted in many industries, including digital signage, professional audio, video and broadcasting, home appliances, set-top boxes, and automative and in-flight infotainment systems.

+
+ +
+

If you need a fast and lightweight web runtime for Linux-based embedded devices that supports most current web standards, has hardware acceleration wherever it is advantageous, and has a strong focus on multimedia applications, WPE WebKit is a great choice.

+

WPE WebKit offers great possibilities for deployment on different platforms, thanks to its underlying design which allows for integration in a variety of hardware configurations. At a minimum, only EGL and OpenGL ES 2 support and basic GStreamer integration are required.

+
+
+

Some advantages of WPE WebKit

+ +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/architecture.html b/aperezdc/learn-discover-rework/about/architecture.html new file mode 100644 index 000000000..76f17185b --- /dev/null +++ b/aperezdc/learn-discover-rework/about/architecture.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + The Architecture of WPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

WPE Design

+

WPE is the official WebKit port for embedded platforms. WPE is uniquely designed +for embedded systems in that it doesn’t depend on any user-interface toolkit +such as the traditional Cocoa, GTK, etc toolkits.

+
+
+ +
+
+

Web page rendering

+

WPE is considered a hybrid port because it defers the final web page delivery for display to a rendering backend. A traditional port would provide a widget for a given toolkit, but WPE opted for a different and more flexible approach.

+

The common interface between WPEWebKit and its rendering backends is provided by +libwpe. On one side, once +WPEWebKit has a graphical representation of the final composited Web page ready +for rendering, it invokes a callback function on libwpe. On the other side, +the WPE application has to register a view backend on the WPE WebView. This view +backend is provided by the rendering backend. The view backend receives the Web +page representation from libwpe, usually as an EGLImage, and is in charge of +presenting it in the application, on-screen.

+

The decoupling between generating the WebPage representation on WebKit side and +the actual rendering on the application side provides a very flexible design. +For instance, WPE integrators can easily develop a new rendering backend for +specific embedded platforms that might have a graphics driver with special API +requirements.

+

WPE provides a rendering backend aiming to target the most common platforms and +leverage the existing graphics stack available in the +Freedesktop umbrella eco-system. +WPEBackend-FDO is the reference +implementation of the base rendering backend design. WPEBackend-FDO provides an API +for WPE applications that aims to ease the handling of rendering either +on-screen using EGL, or off-screen using SHM.

+
+
+

Input events handling

+

In a traditional WebKit port, the provided widget usually also handles input +(keyboard, mouse, touch) events and is in charge of relaying them to the +internal WebKit input-methods components.

+

As WPE doesn’t provide a widget, it relies on libwpe APIs to relay input +events from the WPE application to the internal WebKit input-methods components. +This design again adds flexibility to the overall WPE architecture, enabling +applications to support new input devices without having to go through a UI +toolkit first.

+

In the example of the Cog WPE browser, the +application relies on Wayland protocols for user input to communicate events +coming from the Wayland compositor to WPE.

+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/builds.html b/aperezdc/learn-discover-rework/about/builds.html new file mode 100644 index 000000000..19a5069f8 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/builds.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + WPE Builds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE Builds

+ + +
+ +
+ +

While there are several simple ways for developers to experiment with and explore WPE, none are tuned for performance. Generally, shipping products for embedded systems are performance-tuned custom builds. To make this easier, there is also meta-webkit, which provides build recipes, WebKit based runtimes, and browsers for use with OpenEmbedded and/or Yocto.

+

We also have some performance tips that might be helpful.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/explore-wpe.html b/aperezdc/learn-discover-rework/about/explore-wpe.html new file mode 100644 index 000000000..417091c00 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/explore-wpe.html @@ -0,0 +1,14 @@ + + + + + + + + +

If you can see this, you should be redirecting this URL to /about/get-wpe.html.

+ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/about/faq.html b/aperezdc/learn-discover-rework/about/faq.html new file mode 100644 index 000000000..7156a70b0 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/faq.html @@ -0,0 +1,392 @@ + + + + + + + + + + + + WPE's Frequently Asked Questions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE's Frequently Asked Questions

+ + +
+ +
+ +

What is the difference between WebPlatformForEmbedded’s WPE and WPEWebKit?

+

Historically, the WebPlatformForEmbedded flavor of WPE came first. It included several adaptations for the Reference Design Kit (RDK) platform, as well as different fixes for its supported devices. Quoting the RDK website:

+
+

RDK is a fully modular, portable, and customizable open source software +solution that standardizes core functions used in video, broadband and IoT +devices.

+
+

The RDK WPE page provides more +information about WPE in the RDK platform.

+

In 2017, engineers from Igalia submitted a new flavor of WPE, suitable for upstream hosting under the webkit.org umbrella. This version of WPE is released every 6 months from the code hosted on the upstream repository. This flavor of WPE is maintained upstream and provides regular security updates.

+

Is WPE supported on any specific hardware System-on-Chip?

+

WPE has been ported to a wide range of hardware platforms. The team aims to expand the list even further, so don’t hesitate to contact us if you can’t find your favorite SoC in the list.

+

Is WPE ported to non-Linux operating systems?

+

WPE currently only works on Linux-based operating systems. We are currently working on supporting Android, though. If you require WPE to run on any other OS, don’t hesitate to contact us.

+

What Web features does WPE support?

+

The WebKit project provides a features status page to which you can refer. However, that information should be taken with a grain of salt. The multi-platform nature of WebKit implies that ports have different build-time and runtime configurations.

+

The WPE project currently does not have an official list of the Web features it supports. It might provide one in the future, but for the time being, we recommend users check for specific features by testing WPE through the Cog browser.

+

What’s the status regarding WebRTC?

+

As of March 2022 the facts are:

+
    +
  1. WPEWebKit upstream has support for WebRTC, by relying on LibWebRTC.
  2. +
  3. LibWebRTC is bundled as third-party library in WebKit’s upstream repository.
  4. +
  5. The LibWebRTC backend doesn’t support hardware-accelerated encoders and decoders.
  6. +
  7. LibWebRTC bundles BoringSSL, which is a fork of OpenSSL started while OpenSSL +was still under the dual OpenSSL and SSLeay licences.
  8. +
+

Taking these facts into account, the WPEWebKit maintainers have decided to leave WebRTC support disabled in the default build configuration of the official release tarballs because:

+
    +
  • Bundling LibWebRTC in tarballs significantly increases the archive size.
  • +
  • The dependency on BoringSSL prevents LibWebRTC usage in GPL applications.
  • +
  • The lack of hardware-accelerated support in LibWebRTC would incur a bad +performance impact on the embedded platforms that WPE targets.
  • +
+

In order to solve these issues, an alternative WebRTC backend based on GstWebRTC will be enabled by default in the WPE upstream CMake build, hopefully during 2023; bug #235885 is being used to track progress. This new backend will seamlessly integrate with hardware-accelerated encoders and decoders on most embedded platforms. GstWebRTC depends on OpenSSL, which is released under an Apache-style license, so it doesn’t have limitations regarding redistribution in binary form.

+

What’s up with EME? How can I support this feature in my WPE-based product?

+

There is code in WebKit to support Encrypted Media Extensions (EME), but in any case, you will need a license agreement with DRM CDM providers to access it, since this part is not open source. There are three ways you can get this working:

+
    +
  • Obtain a license and use the Thunder OCDM plugin.
  • +
  • Write a Thunder-compatible API complement that will work with your DRM system.
  • +
  • Write a new CDM backend for WebKit using your DRM system.
  • +
+

What is (and isn’t) Cog?

+

From Cog’s README:

+
+

Cog is a small single “window” launcher for the WebKit WPE port. It is small, +provides no user interface, and is suitable to be used as a Web application +container. The “window” may be fullscreen depending on the WPE backend being +used.

+
+

Cog’s usage scenarios span from a MiniBrowser application to a full web-app container application meant to run HTML-based user interfaces on embedded platforms and products.

+

Although it can run on Linux-based desktop environments, Cog is not a full-blown Web Browser to be compared with Google Chrome or Safari. Cog’s primary environment is on embedded platforms, and it can run within a Wayland compositor such as Weston. Additionally, if the platform supports KMS/DRM, Cog can run as a full-screen standalone browser, this use-case is very common on kiosk products for instance.

+

If you are a developer aiming to enable WPE on a certain embedded platform, Cog combined with WPEBackend-FDO provides the most flexible solution for agile tinkering and to test WPE’s features.

+

Is Wayland required to run WPE?

+

As we say in Galicia, “it depends”.

+

WPE’s architecture was designed in order to +decouple rendering out of the Web engine and delegate this task to rendering +backends and to the application running the Web engine—it does not strictly +require usage of Wayland.

+

Typically when talking about Wayland we tend to conflate many things:

+
    +
  • +

    Wayland itself is an IPC +protocol which happens to be designed to move buffers containing pixel +data and input events from one process to another.

    +
  • +
  • +

    The Wayland package typically contains the reference implementation +of the protocol, libwayland. Other implementations are theoretically +possible.

    +
  • +
  • +

    By extension we may refer to a compositor, which is a program that +implements the server–side of the Wayland +protocol—possibly with the aid of libwayland.

    +
  • +
+

If you use WPEBackend-fdo, it internally uses the Wayland +protocol (via libwayland) to pass rendered frames from the WPEWebProcess +program to the application that embeds the web view—that we call “the UI +process”. As this is an implementation detail of the backend, the fact that +Wayland is used as IPC protocol does not need to be known by the application. +A compositor may be required or not depending on how the UI process displays +the web content.

+

For example, Cog can act as a Wayland client using its FDO platform plug-in, and in that case a +Wayland compositor is required. On the other hand, using Cog’s DRM platform plug-in it will display +rendered web content directly on screen (without a running Wayland +compositor). Note that in both cases WPEBackend-fdo is used as backend, +which means that the Wayland protocol is still in use.

+

Some WPE backends may not require Wayland at all. Such is the case +of WPEBackend-rdk in some configurations +(USE_BACKEND_BCM_RPI, USE_BACKEND_BCM_NEXUS, etc.)

+

Are open dialogs/popups menus supported?

+

The application embedding WPE is responsible for rendering popups and dialogs. The reference WPE Browser, Cog, has limited support for these features (as of 2021, it supports option menus).

+

What is the wayland-protocols build dependency about in Cog?

+

Depending on which platform rendering plugin is enabled at build time, the Cog browser might depend on the wayland-protocols project to generate source files needed in order to act as a Wayland client to the compositor (server) implementing those protocols.

+

So for instance, if you enable the FDO platform plugin and want to use it at runtime to have Cog running as a Wayland application, then the plugin will try to consume some Wayland protocols from the server, such as xdg-shell, fullscreen-shell-unstable-v1, presentation-time and linux-dmabuf-unstable-v1. Those protocols can’t be used without first generating source files derived from each protocol XML spec definition. This is all part of the Wayland design.

+

Why does the browser/launcher (e.g. Cog) crash at startup?

+

If you are building an embedded system image yourself, make sure there is at least one font installed that can be used as fallback by Fontconfig. You can use the fc-list program to print the list of known fonts.

+

Why does the browser/launcher (e.g. Cog) crash when trying to play audio?

+

If you are building an embedded system image yourself, make sure that the +GStreamer elements autoaudiosink and alsasink are installed. Even if your +system uses some other audio output by default (PulseAudio, PipeWire, etc.) +ALSA is always tried as the last fallback if all the other available sinks +fail.

+

Why does the browser/launcher (e.g. Cog) not load local files?

+

If you are building an embedded system image yourself, make sure to install +the shared MIME database is installed—in most distributions +this is part of a package named shared-mime-info. WebKit uses it to +determine which kind of data within file before loading it. Note that this is +not needed if you plan to loading remote resources because HTTP servers +provide the needed information in the Content-Type HTTP header.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/get-started.html b/aperezdc/learn-discover-rework/about/get-started.html new file mode 100644 index 000000000..417091c00 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/get-started.html @@ -0,0 +1,14 @@ + + + + + + + + +

If you can see this, you should be redirecting this URL to /about/get-wpe.html.

+ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/about/get-wpe.html b/aperezdc/learn-discover-rework/about/get-wpe.html new file mode 100644 index 000000000..6a4ccee79 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/get-wpe.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + Get WPE WebKit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Get WPE

+
+

WPE is an open source/free software project. That means that you can +get the source code directly and modify it to serve your needs. While +this can sometimes be an involved process, there are different ways to +get your hands on WPE, depending on what you need.

+ +

Before starting

+

Before getting the code, it’s a good idea to be familiar with what you +will need. The different components that are needed to run WPE are:

+ +

Install it from your Linux distribution

+

These packages are not just a quick and simple way to test WPE but +they also come with all the development files and documentation +necessary to build and test software that uses this web engine. Some +of the distributions that already have built packages for WPE are:

+ +

This list is not exhaustive, so if you use a different distributions, +there might be packages for it already. Refer to the official +documentation of your distribution for information on how to install packages.

+

Build an image for supported reference hardware

+

A simple way to cross-compile WPE and its dependencies for a target +architecture is to use an existing build framework. We provide recipes +for a OpenEmbedded/Yocto layer for WPE. +There are specific instructions in the +project wiki.

+

Download the official tarball releases

+

We periodically package WPE and its associated libraries, following a +predictable release schedule, to make sure that +both stable and development versions are available to users, +deployers, and developers. Following the release schedule is the best +way to follow the progress of WPE, get a sense of what’s coming, and +properly prepare for updates in your production deployments.

+

Unstable releases are development versions, that give a preview of +what’s coming in the next stable release. These are useful for +beta-testing, and to prepare to upgrade your deployment to an upcoming +stable release when this is out. Unstable releases should never be +used in production.

+

Below is a summary of the latest stable and unstable releases for WPE +and its components:

+

Releases

+
+
+
+

Stable

+
+ wpewebkit: + + Download v2.42.5 + - + Release notes for v2.42.5 + +
+ wpebackend-fdo: + + Download v1.14.2 + - + Release notes for v1.14.2 + +
+
+
+

Unstable

+
+ wpewebkit: + + Download v2.43.1 + - + Release notes for v2.43.1 + +
+ wpebackend-fdo: + + Download v1.13.1 + - + Release notes for v1.13.1 + +
+
+

+ + See all released tarballs… +

+
+
+

Get the source code directly from git

+

This is the most involved way to get the source code, and it’s only +recommended for developers who are interested in getting involved in +the development of the project, or who need to implement any feature +that is not yet available in WPE. Additionally, this can be also be +a good way to track down any bug you might find and to fix it.

+ +

Instead of downloading each of these components on their own, a good way to start is to fetch the WebKit repository +and use its build system to fetch all the dependencies. Check the instructions for building WebKit.

+

If you find any problem or want to know more about optimizing WPE for your hardware or use cases, please contact us.

+
+
+

Resources

+ +
+
+ +
+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/index.html b/aperezdc/learn-discover-rework/about/index.html new file mode 100644 index 000000000..7424b0455 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/index.html @@ -0,0 +1,484 @@ + + + + + + + + + + + + Learn & Discover + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+

Explore Embedded Browsers

+

We understand that WPE is interesting from many perspectives, and to people of potentially vastly different backgrounds. Let’s help you find what you’re looking for.

+

Maybe you’re…

+
+
+
+

New to WPE

+ +
+
+

An embedded developer

+ +
+
+
+

Supported Hardware

+

WPE is currently running on a wide range of hardware, including devices made by:

+ +
+
+

Why Choose WPE?

+

WPE WebKit is widely adopted by many industries, including digital signage, professional audio, home appliances, set-top-boxes, automotive, and inflight infotainment. Countless devices deployed around the globe are already using WPE WebKit as their web runtime platform, and use is growing rapidly.

+ +
+
+

See WPE In Action…

+
+
+ +
+ Video: WPE WebGL performance demos +
WPE WebGL performance demos
+
+
+
+
+ +
+ Video: WPE SVG Transformations and Hardware Acceleration +
WPE SVG Transformations and Hardware Acceleration
+
+
+
+
+ +
+ Video: WPE 2d canvas and video performance on low end-hardware +
WPE 2d canvas and video performance on low end-hardware
+
+
+
+
+ +
+ Video: Web-augmented video overlays with WPEWebKit and GStreamer +
Web-augmented video overlays with WPEWebKit and GStreamer
+
+
+
+
+ +
+ Video: WPE CSS Transforms and Performance +
WPE CSS Transforms and Performance
+
+
+
+
+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/supported-hardware.html b/aperezdc/learn-discover-rework/about/supported-hardware.html new file mode 100644 index 000000000..ef8c83a76 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/supported-hardware.html @@ -0,0 +1,580 @@ + + + + + + + + + + + + Supported Hardware + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

Supported Hardware

+

WPE is currently running on a wide range of hardware. This page lists configurations which are known to work, sorted by manufacturer.

+
+
+

Note that this list is not exhaustive. Reports of unlisted configurations are welcome.

+

NXP

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeriesGPUDriverWPE BackendCog Shells
i.MX 51Imageon Z460freedreno (reverse-engineered)fdofdo, drm
i.MX 53Imageon Z460freedreno (reverse-engineered)fdofdo, drm
i.MX 6Vivante GC2000etnaviv (reverse-engineered)fdofdo, drm
i.MX 6Vivante GC2000Vivante (Proprietary)fdofdo
i.MX 6Vivante GC2000Vivante (Proprietary)rdk, VIV_IMX6_EGLn/a
i.MX 8MVivante GC7000etnaviv (reverse-engineered)fdofdo, drm
i.MX 8MVivante GC7000Vivante (Proprietary)fdofdo
+

Broadcom

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
Arris VIP5202WVideoCore IVProprietaryrdk, BCM_NEXUS or USE_BACKEND_BCM_NEXUS_WAYLANDn/a
Raspberry Pi 3VideoCore IVProprietaryrdk, BCM_RPIn/a
Raspberry Pi 3VideoCore IVMesa vc4fdofdo, drm
Raspberry Pi 4VideoCore VMesa v3dfdofdo
+

Qualcomm

+ + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
APQ8017Adreno 306ProprietaryCustomn/a
+

Nvidia

+ + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
Jetson TK1Tegra K1
+

RockChip

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
RK3399Mali T860MP4panfrost (reverse-engineered)fdofdo
RK3399Mali T860MP4Mali (Proprietary)
+

PC-style Hardware

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
AnyAMDMesa amdgpufdofdo
AnyIntelMesa i965fdofdo, drm
AnyIntelMesa irisfdofdo, drm
+

Other

+ + + + + + + + + + + + + + + + + + + +
DeviceGPUDriverWPE BackendCog Shells
BeaglebonePowerVR SGX530Proprietary
+
+
+
+

Resources

+ +
+
+ +
+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/about/what-is-embedded.html b/aperezdc/learn-discover-rework/about/what-is-embedded.html new file mode 100644 index 000000000..6f99d7cf8 --- /dev/null +++ b/aperezdc/learn-discover-rework/about/what-is-embedded.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + What is an Embedded Browser? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

What is an Embedded Browser?

+

Long ago, it might have been reasonable to imagine browsers only in the realm of desktop computers. However, embedded browsers are in everything these days: cars, signs, tablets, gaming systems, televisions and appliances. They’re even in space!

+
+

The Web Platform is a frequently chosen foundational technology for many reasons, including:

+ +

The fact that over the past few years, billions of new devices have come online, and the implications of this are still under-discussed. We believe developers need to be able explore and understand this space, and that lessons learned here are potentially helpful to the larger web ecosystem as well. However, this can be challenging, because embedded browsers are a little different…

+

Why embedded browsers are different

+

For many of us, a browser is an application like the one you’re probably using now. You click an icon on your graphical operating system (OS), navigate somewhere with a URL bar, search, and so on. You have bookmarks and tabs that you can drag around, and lots of other features.

+

In contrast, an embedded browser is contained within another application or is built for a specific purpose and runs in an embedded system, and the application controlling the embedded browser does not provide all the typical features of browsers running in desktops.

+

Furthermore, for most embedded systems there isn’t a common desktop OS for the browser to run on — in fact, the OS is built specifically for that type of device, and the embedded browser is built along with it. Part of the reason for this is that, by and large, they are not general-purpose computing devices. They have slightly different security concerns, and they also run on often radically different sorts of hardware than desktop, laptop or many mobile devices.

+

So, what really is an embedded browser?

+

Browsers, engines and ports

+

A “proper” browser is, in all likelihood, the application in which you are reading this. This browser is built on one of three open source projects: WebKit, Chromium or Gecko. Each of these projects defines an engine — that is, they provide an architecture through which something else (e.g., a browser) can bind to the top layer of the engine in order to drive us from URL to URL, and use the engine’s bottom layer to do things like actually put content on the screen, render graphics, receive input from devices like keyboards, mice and pointing devices, and connect to things like the text-to-speech subsystem.

+

In terms of WebKit-based browsers, a “port” is the set of extra layers that provides facilities at those top and bottom layers of the engine. The WebKit project has a few “official” ports that are available from webkit.org/downloads/. Some, like Safari, are fully-featured desktop browsers. WebKitGTK is a port for the GTK GUI toolkit, used among others by the desktop browser Epiphany.

+

WPE (“Web Platform for Embedded”) is the official port for embedded systems, and it adds another layer to the architecture allowing for more easily swappable backends (the graphics layers, windowing and so on) and simpler bindings for programmatic top-level control in Linux based systems. Cog is another project that makes it easier to launch and drive WPE views.

+

In other words, WPE is designed to be built and optimized for your embedded device in order to deliver the best performance. What all of this means is that there isn’t really a single “WPE” that’s as easy to provide as many browsers that you’re probably familiar with.

+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.otf b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.otf new file mode 100644 index 000000000..19ffdee31 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.otf differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf new file mode 100644 index 000000000..814f834af Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff new file mode 100644 index 000000000..1934bb082 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff2 b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff2 new file mode 100644 index 000000000..753755416 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Italic.ttf.woff2 differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.otf b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.otf new file mode 100644 index 000000000..baae69659 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.otf differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf new file mode 100644 index 000000000..093d01d02 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff new file mode 100644 index 000000000..5e1f981c0 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff differ diff --git a/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff2 b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff2 new file mode 100644 index 000000000..48d5ff89e Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/SourceSans3VF-Roman.ttf.woff2 differ diff --git a/aperezdc/learn-discover-rework/assets/author-aperez@1x.png b/aperezdc/learn-discover-rework/assets/author-aperez@1x.png new file mode 100644 index 000000000..0318523c2 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/author-aperez@1x.png differ diff --git a/aperezdc/learn-discover-rework/assets/author-aperez@2x.png b/aperezdc/learn-discover-rework/assets/author-aperez@2x.png new file mode 100644 index 000000000..19fe6034f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/author-aperez@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/author-llepage@1x.png b/aperezdc/learn-discover-rework/assets/author-llepage@1x.png new file mode 100644 index 000000000..d1ec5987b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/author-llepage@1x.png differ diff --git a/aperezdc/learn-discover-rework/assets/author-llepage@2x.png b/aperezdc/learn-discover-rework/assets/author-llepage@2x.png new file mode 100644 index 000000000..001fd1171 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/author-llepage@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/build-webkit-org-screenshot.png b/aperezdc/learn-discover-rework/assets/build-webkit-org-screenshot.png new file mode 100644 index 000000000..9750e75a8 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/build-webkit-org-screenshot.png differ diff --git a/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_400px.png b/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_400px.png new file mode 100644 index 000000000..8b2d58bbd Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_400px.png differ diff --git a/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_WhiteBg_400px.png b/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_WhiteBg_400px.png new file mode 100644 index 000000000..53a921d0f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/bw_Twitter_Profile_WhiteBg_400px.png differ diff --git a/aperezdc/learn-discover-rework/assets/bw_Web_Logo_Header_300x110px.png b/aperezdc/learn-discover-rework/assets/bw_Web_Logo_Header_300x110px.png new file mode 100644 index 000000000..d9ced3938 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/bw_Web_Logo_Header_300x110px.png differ diff --git a/aperezdc/learn-discover-rework/assets/graphics-attachment.png b/aperezdc/learn-discover-rework/assets/graphics-attachment.png new file mode 100644 index 000000000..a6fc12f7a Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/graphics-attachment.png differ diff --git a/aperezdc/learn-discover-rework/assets/graphics-graphicslayertree.png b/aperezdc/learn-discover-rework/assets/graphics-graphicslayertree.png new file mode 100644 index 000000000..0823dd0ef Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/graphics-graphicslayertree.png differ diff --git a/aperezdc/learn-discover-rework/assets/graphics-renderlayertree.png b/aperezdc/learn-discover-rework/assets/graphics-renderlayertree.png new file mode 100644 index 000000000..e8f6a9ab0 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/graphics-renderlayertree.png differ diff --git a/aperezdc/learn-discover-rework/assets/graphics-rendertree.png b/aperezdc/learn-discover-rework/assets/graphics-rendertree.png new file mode 100644 index 000000000..a4c683fc9 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/graphics-rendertree.png differ diff --git a/aperezdc/learn-discover-rework/assets/gtk-cog-screenshot.png b/aperezdc/learn-discover-rework/assets/gtk-cog-screenshot.png new file mode 100644 index 000000000..49be83528 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/gtk-cog-screenshot.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/Igalia_tagline-white-1.png b/aperezdc/learn-discover-rework/assets/img/Igalia_tagline-white-1.png new file mode 100644 index 000000000..dc6a63e02 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/Igalia_tagline-white-1.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/Metrological-hero-orig.jpg b/aperezdc/learn-discover-rework/assets/img/Metrological-hero-orig.jpg new file mode 100644 index 000000000..eed532c39 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/Metrological-hero-orig.jpg differ diff --git a/aperezdc/learn-discover-rework/assets/img/Metrological-hero.jpg b/aperezdc/learn-discover-rework/assets/img/Metrological-hero.jpg new file mode 100644 index 000000000..2649107f3 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/Metrological-hero.jpg differ diff --git a/aperezdc/learn-discover-rework/assets/img/WPE-design.svg b/aperezdc/learn-discover-rework/assets/img/WPE-design.svg new file mode 100755 index 000000000..6fffc615e --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/WPE-design.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hardware + Operating System + Cog + Application + Backend + WebKit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-ExploreLand.png b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-ExploreLand.png new file mode 100644 index 000000000..d7ca5e659 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-ExploreLand.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-homepage.png b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-homepage.png new file mode 100644 index 000000000..bfaf565c5 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE-homepage.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE.png b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE.png new file mode 100644 index 000000000..8532eda72 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/WhyChooseWPE.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@1x.png b/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@1x.png new file mode 100644 index 000000000..f6d6f23fd Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@1x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@2x.png b/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@2x.png new file mode 100644 index 000000000..b2ba0807f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/blog-backends-thumb@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/border-dot-black.svg b/aperezdc/learn-discover-rework/assets/img/border-dot-black.svg new file mode 100755 index 000000000..11750c638 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/border-dot-black.svg @@ -0,0 +1,4 @@ + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/border-dot-white.svg b/aperezdc/learn-discover-rework/assets/img/border-dot-white.svg new file mode 100755 index 000000000..d0318fa5d --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/border-dot-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/aperezdc/learn-discover-rework/assets/img/checkmark.png b/aperezdc/learn-discover-rework/assets/img/checkmark.png new file mode 100644 index 000000000..d593d3fe0 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/checkmark.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/dash-h.svg b/aperezdc/learn-discover-rework/assets/img/dash-h.svg new file mode 100644 index 000000000..690121e88 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/dash-h.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/dash-v.svg b/aperezdc/learn-discover-rework/assets/img/dash-v.svg new file mode 100644 index 000000000..c1a0df340 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/dash-v.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/diagram-WPE-design.svg b/aperezdc/learn-discover-rework/assets/img/diagram-WPE-design.svg new file mode 100644 index 000000000..5b4bde790 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/diagram-WPE-design.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/dotted-continents.svg b/aperezdc/learn-discover-rework/assets/img/dotted-continents.svg new file mode 100644 index 000000000..5fef31ce8 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/dotted-continents.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/extending-minicog-echouri.png b/aperezdc/learn-discover-rework/assets/img/extending-minicog-echouri.png new file mode 100644 index 000000000..072691d78 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/extending-minicog-echouri.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/graphic-title-blue.svg b/aperezdc/learn-discover-rework/assets/img/graphic-title-blue.svg new file mode 100755 index 000000000..a5a83c8b8 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/graphic-title-blue.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/graphic-title-white.svg b/aperezdc/learn-discover-rework/assets/img/graphic-title-white.svg new file mode 100755 index 000000000..48006b66c --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/graphic-title-white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/igalia-larger.png b/aperezdc/learn-discover-rework/assets/img/igalia-larger.png new file mode 100644 index 000000000..de7d77cba Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/igalia-larger.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/igalia-logo.png b/aperezdc/learn-discover-rework/assets/img/igalia-logo.png new file mode 100644 index 000000000..23ef44b1a Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/igalia-logo.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/igalia.png b/aperezdc/learn-discover-rework/assets/img/igalia.png new file mode 100644 index 000000000..c2aa4cc79 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/igalia.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/illustration-community.svg b/aperezdc/learn-discover-rework/assets/img/illustration-community.svg new file mode 100755 index 000000000..dee25750b --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/illustration-community.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/illustration-resources.svg b/aperezdc/learn-discover-rework/assets/img/illustration-resources.svg new file mode 100755 index 000000000..ca162dbd1 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/illustration-resources.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/link_ext_icon.svg b/aperezdc/learn-discover-rework/assets/img/link_ext_icon.svg new file mode 100644 index 000000000..32b63637d --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/link_ext_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/list-arrow.svg b/aperezdc/learn-discover-rework/assets/img/list-arrow.svg new file mode 100644 index 000000000..a31b9c7f8 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/list-arrow.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/logo-NOS.png b/aperezdc/learn-discover-rework/assets/img/logo-NOS.png new file mode 100755 index 000000000..2a7ecea4e Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-NOS.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-NOS@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-NOS@2x.png new file mode 100755 index 000000000..9c4a40cdf Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-NOS@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-black.svg b/aperezdc/learn-discover-rework/assets/img/logo-black.svg new file mode 100644 index 000000000..f94bb095d --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/logo-black.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/logo-blue.svg b/aperezdc/learn-discover-rework/assets/img/logo-blue.svg new file mode 100644 index 000000000..84e47beb2 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/logo-blue.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/logo-digital-signage.png b/aperezdc/learn-discover-rework/assets/img/logo-digital-signage.png new file mode 100644 index 000000000..7aa44568d Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-digital-signage.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-digital-signage@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-digital-signage@2x.png new file mode 100644 index 000000000..887c294d8 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-digital-signage@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-garmin.png b/aperezdc/learn-discover-rework/assets/img/logo-garmin.png new file mode 100755 index 000000000..597b5f12f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-garmin.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-garmin@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-garmin@2x.png new file mode 100755 index 000000000..8c0c817be Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-garmin@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-liberty.png b/aperezdc/learn-discover-rework/assets/img/logo-liberty.png new file mode 100755 index 000000000..2103a5248 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-liberty.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-liberty@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-liberty@2x.png new file mode 100755 index 000000000..cc047c920 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-liberty@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-metrological.png b/aperezdc/learn-discover-rework/assets/img/logo-metrological.png new file mode 100755 index 000000000..1a22433f2 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-metrological.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-metrological@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-metrological@2x.png new file mode 100755 index 000000000..eae62ac29 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-metrological@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-multichoice.png b/aperezdc/learn-discover-rework/assets/img/logo-multichoice.png new file mode 100755 index 000000000..fc5a5b538 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-multichoice.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-multichoice@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-multichoice@2x.png new file mode 100755 index 000000000..1421e9d1f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-multichoice@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-nvidia.png b/aperezdc/learn-discover-rework/assets/img/logo-nvidia.png new file mode 100755 index 000000000..b70b901d0 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-nvidia.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-nvidia@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-nvidia@2x.png new file mode 100755 index 000000000..ba1226187 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-nvidia@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-nxp.png b/aperezdc/learn-discover-rework/assets/img/logo-nxp.png new file mode 100644 index 000000000..51171af90 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-nxp.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-nxp@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-nxp@2x.png new file mode 100755 index 000000000..8470d229b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-nxp@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-ombori.png b/aperezdc/learn-discover-rework/assets/img/logo-ombori.png new file mode 100755 index 000000000..774bf4bf3 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-ombori.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-ombori@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-ombori@2x.png new file mode 100755 index 000000000..133d7730b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-ombori@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-qualcomm.png b/aperezdc/learn-discover-rework/assets/img/logo-qualcomm.png new file mode 100755 index 000000000..02e1d5b60 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-qualcomm.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-qualcomm@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-qualcomm@2x.png new file mode 100755 index 000000000..b74fa5592 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-qualcomm@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-rockchip.png b/aperezdc/learn-discover-rework/assets/img/logo-rockchip.png new file mode 100755 index 000000000..f0040c19b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-rockchip.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-rockchip@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-rockchip@2x.png new file mode 100755 index 000000000..c6e59367b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-rockchip@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering.png b/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering.png new file mode 100644 index 000000000..961621b28 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering@2x.png new file mode 100644 index 000000000..1c22b326c Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-server-side-rendering@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-telefonica.png b/aperezdc/learn-discover-rework/assets/img/logo-telefonica.png new file mode 100755 index 000000000..946e0f087 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-telefonica.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-telefonica@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-telefonica@2x.png new file mode 100755 index 000000000..7109a60e9 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-telefonica@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-televic.png b/aperezdc/learn-discover-rework/assets/img/logo-televic.png new file mode 100755 index 000000000..570c67a9f Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-televic.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-televic@2x.png b/aperezdc/learn-discover-rework/assets/img/logo-televic@2x.png new file mode 100755 index 000000000..ed7257a0a Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/logo-televic@2x.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/logo-white.svg b/aperezdc/learn-discover-rework/assets/img/logo-white.svg new file mode 100644 index 000000000..116d23915 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/logo-white.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/img/media-pause.svg b/aperezdc/learn-discover-rework/assets/img/media-pause.svg new file mode 100644 index 000000000..c91909489 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/media-pause.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/media-play.svg b/aperezdc/learn-discover-rework/assets/img/media-play.svg new file mode 100644 index 000000000..02c9ac9c9 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/media-play.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/menu-x.svg b/aperezdc/learn-discover-rework/assets/img/menu-x.svg new file mode 100644 index 000000000..a3ceabb70 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/menu-x.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/menu.svg b/aperezdc/learn-discover-rework/assets/img/menu.svg new file mode 100644 index 000000000..f4b9cb69d --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/menu.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/pepe-silvia-all-javascript.jpg b/aperezdc/learn-discover-rework/assets/img/pepe-silvia-all-javascript.jpg new file mode 100644 index 000000000..4f58c7f63 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/pepe-silvia-all-javascript.jpg differ diff --git a/aperezdc/learn-discover-rework/assets/img/placeholder.png b/aperezdc/learn-discover-rework/assets/img/placeholder.png new file mode 100644 index 000000000..60b803408 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/placeholder.png differ diff --git a/aperezdc/learn-discover-rework/assets/img/survey.svg b/aperezdc/learn-discover-rework/assets/img/survey.svg new file mode 100644 index 000000000..03f43c667 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/img/survey.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/img/use_case-digital_signage.png b/aperezdc/learn-discover-rework/assets/img/use_case-digital_signage.png new file mode 100644 index 000000000..9848f2387 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/img/use_case-digital_signage.png differ diff --git a/aperezdc/learn-discover-rework/assets/lbse-logo-wide.png b/aperezdc/learn-discover-rework/assets/lbse-logo-wide.png new file mode 100644 index 000000000..b4978347a Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/lbse-logo-wide.png differ diff --git a/aperezdc/learn-discover-rework/assets/networking-flow.svg b/aperezdc/learn-discover-rework/assets/networking-flow.svg new file mode 100644 index 000000000..dd6d32697 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/networking-flow.svg @@ -0,0 +1,3 @@ + + +
ResourceLoader
ResourceLoader
WebCore
WebCore
NetworkDataTask
NetworkDataTask
NetworkProcess
NetworkProcess
ResourceResponse
ResourceResponse
ResourceRequest
ResourceRequest
Text is not SVG - cannot display
\ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/networking-layers.svg b/aperezdc/learn-discover-rework/assets/networking-layers.svg new file mode 100644 index 000000000..62ddf4f48 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/networking-layers.svg @@ -0,0 +1,3 @@ + + +
glib
glib
WebKit
WebKit
libsoup
libsoup
glib-networking
glib-networking
Text is not SVG - cannot display
\ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/URI_syntax_diagram.svg b/aperezdc/learn-discover-rework/assets/svg/URI_syntax_diagram.svg new file mode 100644 index 000000000..db042d9dd --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/URI_syntax_diagram.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + scheme + + + + + : + + + + + // + + + + + userinfo + + + + + @ + + + + + host + + + + + : + + + + + port + + + + + path + + + + + ? + + + + + query + + + + + # + + + + + fragment + + diff --git a/aperezdc/learn-discover-rework/assets/svg/black_Web_Logo.svg b/aperezdc/learn-discover-rework/assets/svg/black_Web_Logo.svg new file mode 100644 index 000000000..1cc18a20e --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/black_Web_Logo.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.png b/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.png new file mode 100644 index 000000000..c7178565c Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.png differ diff --git a/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.svg b/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.svg new file mode 100644 index 000000000..d3f56399b --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/blue_Web_Logo.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/svg/lbse-logo-wide.svg b/aperezdc/learn-discover-rework/assets/svg/lbse-logo-wide.svg new file mode 100644 index 000000000..11d3ea721 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/lbse-logo-wide.svg @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LBSE + + + + + + + + + + + + + + + New SVG enginefor WebKit + diff --git a/aperezdc/learn-discover-rework/assets/svg/lbse-logo.svg b/aperezdc/learn-discover-rework/assets/svg/lbse-logo.svg new file mode 100644 index 000000000..059b21a8e --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/lbse-logo.svg @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + New SVG enginefor WebKit + + + + + + + + + + L + B + S + E + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-1.svg b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-1.svg new file mode 100644 index 000000000..0ebe5b999 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-1.svg @@ -0,0 +1 @@ +
Application Process
WPEWebProcess
draw
User Application
WPE ThreadedCompositor
WPE Backend
\ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-2.svg b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-2.svg new file mode 100644 index 000000000..66af63288 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-2.svg @@ -0,0 +1 @@ +
Application Process
WPEWebProcess
WPEWebProcess
Clients
IPC
IPC
IPC
IPC
IPC
IPC
IPC
rendererHost
viewBackend
viewBackend
viewBackend
viewBackend
viewBackend
rendererHostClient
rendererHostClient
rendererBackendEGL
rendererBackendEGLTarget
rendererBackendEGLTarget
rendererBackendEGL
rendererBackendEGLTarget
rendererBackendEGLTarget
rendererBackendEGLTarget
\ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-3.svg b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-3.svg new file mode 100644 index 000000000..dd6cc12db --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/part1-basics.md-3.svg @@ -0,0 +1 @@ +ApplicationWPE BackendThreadedCompositorApplicationWPE BackendThreadedCompositorloop[Rendering]frame_will_render(...)GLES renderingframe_rendered(...)frame transferframe presentationdispatch_frame_complete(...) \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-1.svg b/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-1.svg new file mode 100644 index 000000000..49249627d --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-1.svg @@ -0,0 +1 @@ +ConsumerProducerConsumerProducerloop[Rendering]Create the EGLStreamGet the EGLStream file descriptorInitialize the consumerSend the file descriptorCreate the EGLStreamInitialize the producerConnectedDraw frameSend frameConsume frameEGLStream ready for next frame \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-2.svg b/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-2.svg new file mode 100644 index 000000000..1f98e77fc --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/part2-eglstream.md-2.svg @@ -0,0 +1 @@ +End-user applicationWPE Backend - Application main threadWPE Backend - Consumer threadEnd-user applicationWPE Backend - Application main threadWPE Backend - Consumer threadAcquire frame from producerwaitCall presentation callback with actual EGLImageUse the EGLImagewpe_offscreen_nvidia_view_backend_dispatch_frame_complete(...)Unlock consumer threadRelease frame \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_lbse.svg b/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_lbse.svg new file mode 100644 index 000000000..31057f129 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_lbse.svg @@ -0,0 +1,3 @@ + + +RenderLayerModelObjectBase class for renderers that create layers.Only used by RenderBoxModelObject at present.RenderBoxBase class for non-inline boxes / elements.RenderBoxModelObjectBase class for renderers that adhereto the CSS box model object.RenderElementBase class for renderers thatoperate on DOM ElementsRenderObjectBase class for all renderers.RenderInlineBase class for CSS inline boxes.RenderSVGModelObjectBase class for renderers that adhereto the SVG painting model.RenderSVGImage<image> elementRenderSVGShape<line>, <rect>, <path>, etc.RenderSVGContainer<g>, <defs>, etc.RenderSVGTSpan<tspan> elementRenderSVGTextPath<textPath> elementRenderBlockBase class for CSS block-level elements.RenderBlockFlowContains either block or inline children.RenderSVGText<text> elementRenderSVGForeignObject<foreignObject> elementRenderReplacedBase class for CSS replaced elements.RenderSVGRootOutermost <svg> elementRenderSVGBlockBase class for SVG renderers thatbehave like CSS block-level elements.RenderSVGInlineBase class for SVG renderers thatbehave like CSS inline-level elementsVisual Paradigm Online Free EditionVisual Paradigm Online Free Edition diff --git a/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_legacy.svg b/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_legacy.svg new file mode 100644 index 000000000..d66ab66e1 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/svg_render_tree_legacy.svg @@ -0,0 +1,3 @@ + + +RenderLayerModelObjectBase class for renderers that create layers.Only used by RenderBoxModelObject at present.RenderBoxBase class for non-inline boxes / elements.RenderBoxModelObjectBase class for renderers that adhereto the CSS box model object.RenderElementBase class for renderers thatoperate on DOM ElementsRenderObjectBase class for all renderers.RenderInlineBase class for CSS inline boxes.RenderSVGModelObjectBase class for renderers that adhereto the SVG painting model.RenderTextBase class for renderers thatoperate on DOM Text nodesRenderSVGImage<image> elementRenderSVGShape<line>, <rect>, <path>, etc.RenderSVGContainer<g>, <defs>, etc.RenderSVGTSpan<tspan> elementRenderSVGTextPath<textPath> elementRenderBlockBase class for CSS block-level elements.RenderBlockFlowContains either block or inline children.RenderQuoteRenderRubyRenderSVGText<text> elementRenderSVGForeignObject<foreignObject> elementRenderReplacedBase class for CSS replaced elements.RenderSVGRootOutermost <svg> elementRenderSVGBlockBase class for SVG renderers thatbehave like CSS block-level elements.RenderSVGInlineBase class for SVG renderers thatbehave like CSS inline-level elementsRenderLineBreaketc.RenderTableRowRenderFrameSetRenderGridetc.RenderTableRenderListItemRenderMeteretc.RenderHTMLCanvasRenderImageetc.Visual Paradigm Online Free EditionVisual Paradigm Online Free Edition diff --git a/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_Color_400px.svg b/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_Color_400px.svg new file mode 100644 index 000000000..bd2d00840 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_Color_400px.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_bw_400px.svg b/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_bw_400px.svg new file mode 100644 index 000000000..fcd982be4 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/twitter_Profile_bw_400px.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/svg/web_Logo_Header_Color_300x110px.svg b/aperezdc/learn-discover-rework/assets/svg/web_Logo_Header_Color_300x110px.svg new file mode 100644 index 000000000..2dfdb2bb7 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/web_Logo_Header_Color_300x110px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/assets/svg/wpe-architecture-diagram.svg b/aperezdc/learn-discover-rework/assets/svg/wpe-architecture-diagram.svg new file mode 100644 index 000000000..05878b47b --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/wpe-architecture-diagram.svg @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Hardware + + Operating System + + + + + Cog + Backend + WebKit + + Application + + diff --git a/aperezdc/learn-discover-rework/assets/svg/wpe-birthday-cake-5-years.svg b/aperezdc/learn-discover-rework/assets/svg/wpe-birthday-cake-5-years.svg new file mode 100644 index 000000000..526741935 --- /dev/null +++ b/aperezdc/learn-discover-rework/assets/svg/wpe-birthday-cake-5-years.svg @@ -0,0 +1,1207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + Initial release: 21.04.2017 + + + + + + diff --git a/aperezdc/learn-discover-rework/assets/twitter_Profile_400px.png b/aperezdc/learn-discover-rework/assets/twitter_Profile_400px.png new file mode 100644 index 000000000..312d0c24b Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/twitter_Profile_400px.png differ diff --git a/aperezdc/learn-discover-rework/assets/twitter_Profile_WhiteBg_400px.png b/aperezdc/learn-discover-rework/assets/twitter_Profile_WhiteBg_400px.png new file mode 100644 index 000000000..d70dc10ad Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/twitter_Profile_WhiteBg_400px.png differ diff --git a/aperezdc/learn-discover-rework/assets/video/WPE-1.mp4 b/aperezdc/learn-discover-rework/assets/video/WPE-1.mp4 new file mode 100644 index 000000000..186744378 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/video/WPE-1.mp4 differ diff --git a/aperezdc/learn-discover-rework/assets/video/homepage.mp4 b/aperezdc/learn-discover-rework/assets/video/homepage.mp4 new file mode 100644 index 000000000..2eba2fa57 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/video/homepage.mp4 differ diff --git a/aperezdc/learn-discover-rework/assets/web_Logo_Header_300x110px.png b/aperezdc/learn-discover-rework/assets/web_Logo_Header_300x110px.png new file mode 100644 index 000000000..2a1cd5671 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/web_Logo_Header_300x110px.png differ diff --git a/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram.png b/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram.png new file mode 100644 index 000000000..480b8dae5 Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram.png differ diff --git a/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram@2x.png b/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram@2x.png new file mode 100644 index 000000000..4550524cf Binary files /dev/null and b/aperezdc/learn-discover-rework/assets/wpe-architecture-diagram@2x.png differ diff --git a/aperezdc/learn-discover-rework/blog.xml b/aperezdc/learn-discover-rework/blog.xml new file mode 100644 index 000000000..d93acdbe6 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog.xml @@ -0,0 +1,1056 @@ + + + WPE WebKit Blog + News related to WPE WebKit. + + + 2024-02-01T00:00:00Z + https://wpewebkit.org/blog/ + + + Use Case: Server-side headless rendering + + 2024-02-01T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html + <div class="success-top"> +<img alt="WPE and server-side headless rendering" align="center" src="https://wpewebkit.org/assets/img/logo-server-side-rendering.png" srcset="https://wpewebkit.org/assets/img/logo-server-side-rendering@2x.png 2x" /> +</div> +<p>In many distributed applications, it can be useful to run a light web browser on the server side to render some HTML content or process images, video and/or audio using JavaScript.</p> +<p>Some concrete use-cases can be:</p> +<ul> +<li>Video post-production using HTML overlays.</li> +<li>Easy 3D rendering with WebGL that can be broadcasted as a video stream.</li> +<li>Reusing the same JavaScript code between a frontend web application and the backend processing.</li> +</ul> +<p>WPE WebKit is the perfect solution for all those use cases as it offers a lightweight solution which can run on low-end hardware or even within a container. It provides a lot of flexibility at the moment of choosing the backend infrastructure as WPE WebKit can, for instance, run from within a container with a very minimal Linux configuration (no need for any windowing system) and with full hardware acceleration and zero-copy of the video buffers between the GPU and the CPU.</p> +<p>Additionally, the fact that WPE WebKit is optimized for lower-powered devices, makes it also the perfect option for server-side rendering when scaling commercial deployments while keeping cost under control, which is yet another important factor to take into account when considering cloud rendering.</p> + + + + + A New WPE Backend Using EGLStream + + 2024-01-29T06:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html + <h2 id="what-is-a-wpe-backend%3F" tabindex="-1">What is a WPE Backend?</h2> +<div class="sidebar"> +<p>This article is a mashup of <a href="https://blogs.igalia.com/llepage/the-process-of-creating-a-new-wpe-backend/">The process of creating a new WPE +backend</a> +and <a href="https://blogs.igalia.com/llepage/use-eglstreams-in-a-wpe-webkit-backend/">Use EGLStreams in a WPE WebKit +backend</a>, +originally published at Loïc’s blog.</p> +</div> +<p>Depending on the target hardware WPE may need to use different techniques and +technologies to ensure correct graphical rendering. To be independent of any +user-interface toolkit and windowing system, WPE WebKit delegates the rendering +to a third-party API defined in the +<a href="https://github.com/WebPlatformForEmbedded/libwpe">libwpe</a> library. A concrete +implementation of this API is a “WPE backend”.</p> +<p>WPE WebKit is a multiprocess application, the end-user starts and controls the +web widgets in the application process (which we often call “the <abbr title="User Interface">UI</abbr> process” while the web engine itself uses +different subprocesses: <code>WPENetworkProcess</code> is in charge of managing network +connections and <code>WPEWebProcess</code> (or “web process”) in charge of the HTML and +JavaScript parsing, execution and rendering. The WPE backend is at a crossroads +between the UI process and one or more web process instances.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-1.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-1.svg" alt="Diagram showing a box for the WPE backend in between the UI process and WPEWebProcess" /> + </a> +</figure> +<p>The WPE backend is a shared library that is loaded at runtime by the web +process and by the UI process. It is used to render the visual aspect of a web +page and transfer the resulting video buffer from the web process to the +application process.</p> +<h2 id="backend-interfaces" tabindex="-1">Backend Interfaces</h2> +<p>The WPE backend shared library must export at least one symbol called +<code>_wpe_loader_interface</code> of type <code>struct wpe_loader_interface</code> as defined <a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/loader.h#L57">in +the <em>libwpe</em> +API</a>. +Presently its only member is <code>load_object</code>, a callback function that receives a +string with an interface name and returns concrete implementations of the +following interfaces:</p> +<ul> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-host.h#L48">struct wpe_renderer_host_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L75">struct wpe_renderer_backend_egl_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L93">struct wpe_renderer_backend_egl_target_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L115">struct wpe_renderer_backend_egl_offscreen_target_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/view-backend.h#L63">struct wpe_view_backend_interface</a></li> +</ul> +<p>The names passed to the <code>.load_object()</code> function are the same as those of the +interface types, prefixed with an underscore. For example, a +<code>.load_object(&quot;_wpe_renderer_host_interface&quot;)</code> call must return a pointer to a +<code>struct wpe_renderer_host_interface</code> object.</p> +<details> + <summary>Example C code for a <code>load_object</code> callback.</summary> +<!-- load_object example <<<1 --> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> <span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_host_interface</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">/* ... */</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> +<span class="token keyword">static</span> <span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_backend_egl_interface</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">/* ... */</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> + +<span class="token keyword">static</span> <span class="token keyword">void</span><span class="token operator">*</span> +<span class="token function">my_backend_load_object</span><span class="token punctuation">(</span><span class="token keyword">const</span> <span class="token keyword">char</span> <span class="token operator">*</span>name<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">strcmp</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> <span class="token string">"_wpe_renderer_host_interface"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">return</span> <span class="token operator">&amp;</span>my_renderer_host<span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">strcmp</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> <span class="token string">"_wpe_renderer_backend_egl_interface"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">return</span> <span class="token operator">&amp;</span>my_renderer_backend_egl<span class="token punctuation">;</span> + + <span class="token comment">/* ... */</span> + + <span class="token keyword">return</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span> + +<span class="token keyword">struct</span> <span class="token class-name">wpe_loader_interface</span> _wpe_loader_interface <span class="token operator">=</span> <span class="token punctuation">{</span> + <span class="token punctuation">.</span>load_object <span class="token operator">=</span> my_backend_load_object<span class="token punctuation">,</span> +<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> +<!-- 1>>> --> +</details> +<p>Each of these interfaces follow the same base structure: the <code>struct</code> members +are callback functions, all interfaces have <code>create</code> and <code>destroy</code> members which +act as instance constructor and destructor, plus any additional “methods”. +The pointer returned by the <code>create</code> callback will be passed as the <code>object</code> +“instance” of the other methods:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_host_interface</span> <span class="token punctuation">{</span> + <span class="token keyword">void</span><span class="token operator">*</span> <span class="token punctuation">(</span><span class="token operator">*</span>create<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">void</span> <span class="token punctuation">(</span><span class="token operator">*</span>destroy<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token keyword">void</span> <span class="token operator">*</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token comment">/* ... */</span> +<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> +<p>In the <strong>UI process</strong> side WPE WebKit will create:</p> +<ul> +<li>One “renderer host” instance, using <code>wpe_renderer_host_interface.create()</code>.</li> +<li>Multiple “renderer host client” instances, using <code>wpe_renderer_host_interface.create_client()</code>. +These are mainly used for IPC communication, one instance gets created for +each web process launched by WebKit.</li> +<li>Multiple “view backend” instances, using <code>wpe_view_backend_interface.create()</code>. +One instance is created for each rendering target in the web process.</li> +</ul> +<p>In each <strong>web process</strong>—there can be more than one—WPE WebKit +will create:</p> +<ul> +<li>One “renderer backend EGL” instance, using <code>wpe_renderer_backend_egl_interface.create()</code>.</li> +<li>Multiple “renderer backend EGL target” instances, using +<code>wpe_renderer_backend_egl_target_interface.create()</code>. An instance is created +for each new rendering target needed by the application.</li> +</ul> +<details> + <summary>How about <code>wpe_renderer_backend_egl_offscreen_target_interface</code>?</summary> + <div> +<p>The <code>rendererBackendEGLTarget</code> instances may be created by the <code>wpe_renderer_backend_egl_target_interface</code>, or +the <code>wpe_renderer_backend_egl_offscreen_target_interface</code> depending on the interfaces implemented in the backend.</p> +<p>Here we are only focusing on the <code>wpe_renderer_backend_egl_target_interface</code> that is relying on a classical EGL +display (defined in the <code>rendererBackendEGL</code> instance). The <code>wpe_renderer_backend_egl_offscreen_target_interface</code> may +be used in very specific use-cases that are out of the scope of this post. You can check its usage in the WPE WebKit +<a href="https://github.com/WebKit/WebKit/blob/f32cd0f7cb7961420ce08ae78b8f01f287bec199/Source/WebCore/platform/graphics/egl/GLContextLibWPE.cpp#L61">source code</a> +for more information.</p> + </div> +</details> +<p>These instances typically communicate with each others using Unix sockets for +<abbr title="Inter-Process Communication">IPC</abbr>. The IPC layer must be +implemented in the WPE backend itself because the <em>libwpe</em> interfaces only pass +around the file descriptors to be used as communication endpoints.</p> +<p>From a topological point of view, all those instances are organized as follows:</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-2.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-2.svg" /> + </a> +</figure> +<p>From an usage point of view:</p> +<ul> +<li>The <code>rendererHost</code> and <code>rendererHostClient</code> instances are only used to manage +IPC endpoints on the UI process side that are connected to each running +web process. They are not used by the graphical rendering system.</li> +<li>The <code>rendererBackendEGL</code> instance (one per web process) is only used to +connect to the native display for a specific platform. For example, on a +desktop Linux, the platform may be X11 where the native display would be the +result of calling <code>XOpenDisplay()</code>; or the platform may be Wayland and in +this case the native display would be the result of calling +<code>wl_display_connect()</code>; and so on.</li> +<li>The <code>rendererBackendEGLTarget</code> (on the web process side) and <code>viewBackend</code> +(on the UI process side) instances are the ones truly managing the web page +graphical rendering.</li> +</ul> +<h2 id="graphics-rendering" tabindex="-1">Graphics Rendering</h2> +<p>As seen above, the interfaces in charge of the rendering are +<code>wpe_renderer_backend_egl_target_interface</code> and <code>wpe_view_backend_interface</code>. +During their creation, WPE WebKit exchanges the file descriptors used to +establish a direct IPC connection between a <code>rendererBackendEGL</code> (in the +web process), and a <code>viewBackend</code> (in the UI process).</p> +<p>During the EGL initialization phase, when a new web process is launched, WebKit +will use the native display and platform provided by the +<code>wpe_renderer_backend_egl_interface.get_native_display()</code> and <code>.get_platform()</code> +functions to create a suitable OpenGL ES context.</p> +<p>When WebKit’s +<a href="https://github.com/WebKit/WebKit/blob/c22f641da18b8c4eee23b8021b37aeec69268675/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp#L220">ThreadedCompositor</a> +is ready to render a new frame (in the web process), it calls the +<code>wpe_renderer_backend_egl_target_interface.frame_will_render()</code> function to let +the WPE backend know that rendering is about to start. At this moment, the +previously created OpenGL ES context is made current to be used as the target +for GL drawing commands.</p> +<p>Once the threaded compositor has finished drawing, it will swap the front and +back EGL buffers and call the +<code>wpe_renderer_backend_egl_target_interface.frame_rendered()</code> function to signal +that the frame is ready. The compositor will then wait until the WPE backend +calls <code>wpe_renderer_backend_egl_target_dispatch_frame_complete()</code> to indicate +that the compositor may produce a new frame.</p> +<p>What happens inside the <code>.frame_will_render()</code> and <code>.frame_rendered()</code> +implementations is up to the WPE backend. As en example, it could +set up a <a href="https://www.khronos.org/opengl/wiki/Framebuffer_Object">Frame Buffer Object</a> +to have the web content draw offscreen, in a texture that can be passed +back to the UI process for further processing, or use extensions like +<a href="https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_stream.txt">EGLStream</a>, +or <a href="https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt">DMA-BUF exports</a> +to transfer the frame to the UI process without copying the pixel data.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-3.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-3.svg" /> + </a> +</figure> +<p>Typically the backend sends each new frame to the corresponding view backend in +in its <code>.frame_rendered()</code> function. The application can use the frame until it +sends back an <abbr>IPC</abbr> message to the renderer target (in the web +process) to indicate that the frame is not in use anymore and may be be freed +or recycled. Although it is not a requirement to do it at this exact point, +usually when a renderer backend receives this message it calls the +<code>wpe_renderer_backend_egl_target_dispatch_frame_complete()</code> function to trigger +the rendering of a new frame. As a side effect, this mechanism also allows +controlling the pace at which new frames are produced.</p> +<h2 id="using-eglstream" tabindex="-1">Using EGLStream</h2> +<p>EGLStream is an EGL extension that defines a mechanism to transfer hardware +video buffers from one process to another efficiently, without getting them +out of GPU memory. Although the extension is supported only in Nvidia +hardware, it makes for a good example as it transparently handles some +complexities involved, like buffers with multiple planes.</p> +<p>This backend uses the EGLStream extension to transfer graphics buffers from the +web process, which acts as a producer, to the UI process acting as a consumer. +The producer extension +<a href="https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt">EGL_KHR_stream_producer_eglsurface</a> +allows creating a surface that may be used as target for rendering, then using +<a href="https://registry.khronos.org/EGL/sdk/docs/man/html/eglSwapBuffers.xhtml">eglSwapBuffers()</a> +finishes drawing and sends the result to the consumer. Meanwhile, in the +consumer side, the +<a href="https://registry.khronos.org/EGL/extensions/NV/EGL_NV_stream_consumer_eglimage.txt">EGL_NV_stream_consumer_eglimage</a> +extension is used to turn each buffer into an <code>EGLImage</code>.</p> +<p>The reference source code for this WPE backend is available in the +<a href="https://github.com/Igalia/WPEBackend-offscreen-nvidia">WPEBackend-offscreen-nvidia</a> +repository, which has been tested with WPE WebKit 2.38.x or 2.40.x, and +<em>libwpe</em> version 1.14.x.</p> +<details> + <summary>Behold, the Future Belongs to DMA-BUF!</summary> + <div> +<p>With the growing adoption of +<a href="https://docs.kernel.org/driver-api/dma-buf.html">DMA-BUF</a> for sharing memory +buffers on modern Linux platforms, the WPE WebKit architecture will be +evolving and, in the future, the need for a WPE Backend should disappear in +most cases.</p> +<p>Ongoing work on WPE WebKit removes the need to provide a WPE backend +implementation for most hardware platforms, with a generic implementation +using DMA-BUF provided as an integral, built-in feature of WebKit. It will +still be possible to provide external implementations for platforms that +might need to use custom buffer sharing mechanisms.</p> +<p>From the application developer point of view, in most cases writing +programs that use the WPE WebKit API will be simpler, with the complexity +of the communication among multiple processes handled by WebKit.</p> + </div> +</details> +<h3 id="stream-setup" tabindex="-1">Stream Setup</h3> +<p>The steps needed to set up EGLStream endpoints need to be done in a particular +order:</p> +<ol> +<li>Create the consumer.</li> +<li>Get the stream file descriptor for the consumer.</li> +<li>Send the stream file descriptor to the producer.</li> +<li>Create the producer.</li> +</ol> +<p><strong>First</strong>, the consumer needs to be created:</p> +<pre class="language-cpp"><code class="language-cpp">EGLStream <span class="token function">createConsumerStream</span><span class="token punctuation">(</span>EGLDisplay eglDisplay<span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token keyword">static</span> <span class="token keyword">const</span> EGLint s_streamAttribs<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span> + EGL_STREAM_FIFO_LENGTH_KHR<span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> + EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR<span class="token punctuation">,</span> <span class="token number">1000</span> <span class="token operator">*</span> <span class="token number">1000</span><span class="token punctuation">,</span> + EGL_NONE + <span class="token punctuation">}</span><span class="token punctuation">;</span> + <span class="token keyword">return</span> <span class="token function">eglCreateStreamKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> s_streamAttribs<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>The <code>EGL_STREAM_FIFO_LENGTH_KHR</code> parameter defines the length of the EGLStream +queue. If set to zero, the stream will work in “mailbox” mode and each time the +producer has a new frame it will empty the stream content and replace the frame +by the new one. If non-zero, the stream works work in “<abbr title="First-In, +First-Out">FIFO</abbr>” mode, which means that the stream queue can contain up +to <code>EGL_STREAM_FIFO_LENGTH_KHR</code> frames.</p> +<p>Here we configure a queue for one frame because in this case the specification +of <code>EGL_KHR_stream_producer_eglsurface</code> guarantees that calling +<code>eglSwapBuffers()</code> on the producer the call will block until the consumer +retires the previous frame from queue. This is used as implicit synchronization +between the UI process side and the web process side without needing to rely on +custom IPC, which would add a small delay between frames.</p> +<p>The <code>EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR</code> parameter defines the maximum +timeout in microseconds to wait on the consumer side to acquire a frame when +calling <code>eglStreamConsumerAcquireKHR()</code>. It is only used with the +<code>EGL_KHR_stream_consumer_gltexture</code> extension because the +<code>EGL_NV_stream_consumer_eglimage</code> extension allows setting a timeout on each +call to <code>eglQueryStreamConsumerEventNV()</code> function.</p> +<p><strong>Second</strong>, to initialize the consumer using the <code>EGL_NV_stream_consumer_eglimage</code> +extension it is enough to call the <code>eglStreamImageConsumerConnectNV()</code> function.</p> +<p><strong>Once the consumer has been initialized</strong>, you need to send the EGLStream +file descriptor to the producer process. The usual way of achieving this would +be using IPC between the two processes, sending the file descriptor in a +<code>SCM_RIGHTS</code> message through an Unix socket—although with recent kernels +using <a href="https://lwn.net/Articles/808997/">pidfd_getfd()</a> may be an option if +both processes are related.</p> +<p>When the file descriptor is <strong>finally</strong> received, the producer endpoint can be +created using the <code>EGL_KHR_stream_producer_eglsurface</code> extension:</p> +<pre class="language-cpp"><code class="language-cpp"><span class="token keyword">const</span> EGLint surfaceAttribs<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span> + EGL_WIDTH<span class="token punctuation">,</span> width<span class="token punctuation">,</span> + EGL_HEIGHT<span class="token punctuation">,</span> height<span class="token punctuation">,</span> + EGL_NONE +<span class="token punctuation">}</span><span class="token punctuation">;</span> +EGLStream eglStream <span class="token operator">=</span> <span class="token function">eglCreateStreamFromFileDescriptorKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> consumerFD<span class="token punctuation">)</span><span class="token punctuation">;</span> +EGLSurface eglSurface <span class="token operator">=</span> <span class="token function">eglCreateStreamProducerSurfaceKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> config<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> surfaceAttribs<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> +<p>As with <abbr title="Pixel Buffer">pbuffer</abbr> surfaces, the dimensions +need to be specified as surface attributes. When picking a frame buffer +configuration with <code>eglChooseConfig()</code> the <code>EGL_SURFACE_TYPE</code> attribute must +be set to <code>EGL_STREAM_BIT_KHR</code>. From this point onwards, rendering proceeds as +usual: the EGL surface and context are made active, and once the painting is +done a call to <code>eglSwapBuffers()</code> will “present” the frame, which in this case +means sending the buffer with the pixel data down the EGLStream to the +consumer.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part2-eglstream.md-1.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part2-eglstream.md-1.svg" /> + </a> +</figure> +<h3 id="consuming-frames" tabindex="-1">Consuming Frames</h3> +<p>While on the producer side rendering treats the EGLStream surface like any +other, on the consumer some more work is needed to manager the lifetime of +the data received: frames have to be manually acquired and released once +they are not needed anymore.</p> +<p>The producer calls <code>eglQueryStreamConsumerEventNV()</code> repeatedly to retire the +next event from the stream:</p> +<ul> +<li><code>EGL_STREAM_IMAGE_ADD_NV</code> indicates that there is a buffer in the stream +that has not yet been bound to an <code>EGLImage</code>, and the application needs to +create a new one to which the actual data will be bound later.</li> +<li><code>EGL_STREAM_IMAGE_AVAILABLE_NV</code> indicates that a new frame is available +and that it can be bound to the previously created <code>EGLImage</code>.</li> +<li><code>EGL_STREAM_IMAGE_REMOVE_NV</code> indicates that a buffer has been retired from +the stream, and that its associated <code>EGLImage</code> may be released once the +application has finished using it.</li> +</ul> +<p>This translates roughly to the following code:</p> +<pre class="language-cpp"><code class="language-cpp"><span class="token keyword">static</span> <span class="token keyword">constexpr</span> EGLTime MAX_TIMEOUT_USEC <span class="token operator">=</span> <span class="token number">1000</span> <span class="token operator">*</span> <span class="token number">1000</span><span class="token punctuation">;</span> +EGLImage eglImage <span class="token operator">=</span> EGL_NO_IMAGE<span class="token punctuation">;</span> + +<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + EGLenum event <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> + EGLAttrib data <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> + + <span class="token comment">// WARNING: The specification states that the timeout is in nanoseconds</span> + <span class="token comment">// (see: https://registry.khronos.org/EGL/extensions/NV/EGL_NV_stream_consumer_eglimage.txt)</span> + <span class="token comment">// but in reality it is in microseconds, at least with the version 535.113.01 of the NVidia drivers.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">eglQueryStreamConsumerEventNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> MAX_TIMEOUT_USEC<span class="token punctuation">,</span> <span class="token operator">&amp;</span>event<span class="token punctuation">,</span> <span class="token operator">&amp;</span>data<span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">break</span><span class="token punctuation">;</span> + + <span class="token keyword">switch</span> <span class="token punctuation">(</span>event<span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token keyword">case</span> EGL_STREAM_IMAGE_ADD_NV<span class="token operator">:</span> <span class="token comment">// Bind an incoming buffer to an EGLImage.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>eglImage<span class="token punctuation">)</span> <span class="token function">eglDestroyImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglImage<span class="token punctuation">)</span><span class="token punctuation">;</span> + eglImage <span class="token operator">=</span> <span class="token function">eglCreateImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> EGL_NO_CONTEXT<span class="token punctuation">,</span> EGL_STREAM_CONSUMER_IMAGE_NV<span class="token punctuation">,</span> + <span class="token generic-function"><span class="token function">static_cast</span><span class="token generic class-name"><span class="token operator">&lt;</span>EGLClientBuffer<span class="token operator">></span></span></span><span class="token punctuation">(</span>eglStream<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token keyword">nullptr</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + + <span class="token keyword">case</span> EGL_STREAM_IMAGE_REMOVE_NV<span class="token operator">:</span> <span class="token comment">// Buffer removed, EGLImage may be disposed.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>data<span class="token punctuation">)</span> <span class="token punctuation">{</span> + EGLImage image <span class="token operator">=</span> <span class="token generic-function"><span class="token function">reinterpret_cast</span><span class="token generic class-name"><span class="token operator">&lt;</span>EGLImage<span class="token operator">></span></span></span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">eglDestroyImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> image<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>image <span class="token operator">==</span> eglImage<span class="token punctuation">)</span> + eglImage <span class="token operator">=</span> EGL_NO_IMAGE<span class="token punctuation">;</span> + <span class="token punctuation">}</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + + <span class="token keyword">case</span> EGL_STREAM_IMAGE_AVAILABLE_NV<span class="token operator">:</span> <span class="token comment">// New frame available.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">eglStreamAcquireImageNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> <span class="token operator">&amp;</span>eglImage<span class="token punctuation">,</span> EGL_NO_SYNC<span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">break</span><span class="token punctuation">;</span> + + <span class="token keyword">default</span><span class="token operator">:</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + <span class="token punctuation">}</span> + + <span class="token comment">/*** Use the EGLImage here ***/</span> + + <span class="token function">eglStreamReleaseImageNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> eglImage<span class="token punctuation">,</span> EGL_NO_SYNC<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>The application is free to use each <code>EGLImage</code> as it sees fit. An obvious +example would be to use it as the contents for a texture, which then gets +painted in the “content” area of a web browser; or as the contents of the +screen for an in-game computer that the player can interact with, enabling +display of real, live web content as part of the gaming experience—now +<em>that</em> would be a deeply embedded browser!</p> +<h3 id="one-last-thing" tabindex="-1">One Last Thing</h3> +<p>There is a small showstopper to have EGLStream support working: +<a href="https://github.com/WebKit/WebKit/blob/cb07c70c253a35b0e09e46e6100e1cdcebab26e2/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp#L135">currently</a> +when WPE WebKit uses surfaceless EGL contexts it sets the surface type to +<code>EGL_WINDOW_BIT</code> attribute, while <code>EGL_STREAM_BIT_KHR</code> would be needed +instead. <a href="https://github.com/Igalia/WPEBackend-offscreen-nvidia/blob/main/wpewebkit-patches/005-fix-surfaceless-egl-context-creation.patch">A small +patch</a> +is enough to apply this tweak:</p> +<pre class="language-diff"><code class="language-diff">diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +index d5efa070..5f200edc 100644 +<span class="token coord">--- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</span> +<span class="token coord">+++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</span> +@@ -122,9 +122,11 @@ bool GLContextEGL::getEGLConfig(EGLDisplay display, EGLConfig* config, EGLSurfac +<span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> attributeList[13] = EGL_PIXMAP_BIT; +</span><span class="token prefix unchanged"> </span><span class="token line"> break; +</span><span class="token prefix unchanged"> </span><span class="token line"> case GLContextEGL::WindowSurface: +</span></span><span class="token deleted-sign deleted"><span class="token prefix deleted">-</span><span class="token line"> case GLContextEGL::Surfaceless: +</span></span><span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> attributeList[13] = EGL_WINDOW_BIT; +</span><span class="token prefix unchanged"> </span><span class="token line"> break; +</span></span><span class="token inserted-sign inserted"><span class="token prefix inserted">+</span><span class="token line"> case GLContextEGL::Surfaceless: +</span><span class="token prefix inserted">+</span><span class="token line"> attributeList[13] = EGL_STREAM_BIT_KHR; +</span><span class="token prefix inserted">+</span><span class="token line"> break; +</span></span><span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> } +</span></span> +<span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> EGLint count; +</span></span></code></pre> +<!-- vim:set foldmethod=marker foldmarker=<<<,>>>: --> + + + + + Integrating WPE: URI Scheme Handlers and Script Messages + + 2023-03-07T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html + <p>Most Web content is designed entirely for screen display—and there is <em>a +lot</em> of it—so it will spend its life in the somewhat restricted sandbox +implemented by a web browser. But rich user interfaces using Web technologies +in all kinds of consumer devices require <em>some</em> degree of integration, an +escape hatch to interact with the rest of their software and hardware. This is +where a Web engine like WPE designed to be <em>embeddable</em> shines: not only does +WPE provide a <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/">stable API</a>, it is also comprehensive in +supporting a number of ways to <em>integrate</em> with its environment further than +the plethora of available <a href="https://developer.mozilla.org/en-US/docs/Web/API">Web platform APIs</a>.</p> +<p>Integrating a “Web view” (the main <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/class.WebView.html">entry point of the WPE embedding +API</a>) involves providing extension points, which allow the +Web content (HTML/CSS/JavaScript) it loads to call into native code provided +by the client application (typically written in C/C++) from JavaScript, and +vice versa. There are a number of ways in which this can be achieved:</p> +<ul> +<li><strong><a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#uri-scheme-handlers">URI scheme handlers</a></strong> allow native code to +register a custom <abbr title="Uniform Resource Identifier">URI</abbr> +scheme, which will run a user provided +function to produce content that can be “fetched” regularly.</li> +<li><strong><a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#user-script-messages">User script messaging</a></strong> can be used to send JSON +messages from JavaScript running in the same context as Web pages to an user +function, and vice versa.</li> +<li>The <strong>JavaScriptCore API</strong> is a powerful solution to provide new JavaScript +functionality to Web content seamlessly, almost as if they were implemented +inside the Web engine itself—akin to <a href="https://nodejs.org/api/addons.html#c-addons">NodeJS C++ addons</a>.</li> +</ul> +<p>In this post we will explore the first two, as they can support many +interesting use cases without introducing the additional complexity of +extending the JavaScript virtual machine. Let’s dive in!</p> +<h2 id="intermission" tabindex="-1">Intermission</h2> +<p>We will be referring to the code of a tiny browser written for the occasion. +Telling WebKit how to call our native code involves creating a +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/class.UserContentManager.html">WebKitUserContentManager</a>, customizing it, and then +associating it with web views during their creation. The only exception to +this are <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#uri-scheme-handlers">URI scheme handlers</a>, which are registered +using <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.WebContext.register_uri_scheme.html">webkit_web_context_register_uri_scheme()</a>. This +minimal browser includes an <code>on_create_view</code> function, which is the perfect +place to do the configuration:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> WebKitWebView<span class="token operator">*</span> +<span class="token function">on_create_view</span><span class="token punctuation">(</span>CogShell <span class="token operator">*</span>shell<span class="token punctuation">,</span> CogPlatform <span class="token operator">*</span>platform<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>GError<span class="token punctuation">)</span> error <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> + WebKitWebViewBackend <span class="token operator">*</span>view_backend <span class="token operator">=</span> <span class="token function">cog_platform_get_view_backend</span><span class="token punctuation">(</span>platform<span class="token punctuation">,</span> <span class="token constant">NULL</span><span class="token punctuation">,</span> <span class="token operator">&amp;</span>error<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>view_backend<span class="token punctuation">)</span> + <span class="token function">g_error</span><span class="token punctuation">(</span><span class="token string">"Cannot obtain view backend: %s"</span><span class="token punctuation">,</span> error<span class="token operator">-></span>message<span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>WebKitUserContentManager<span class="token punctuation">)</span> content_manager <span class="token operator">=</span> <span class="token function">create_content_manager</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">/** NEW! **/</span> + <span class="token function">configure_web_context</span><span class="token punctuation">(</span><span class="token function">cog_shell_get_web_context</span><span class="token punctuation">(</span>shell<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">/** NEW! **/</span> + + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>WebKitWebView<span class="token punctuation">)</span> web_view <span class="token operator">=</span> + <span class="token function">g_object_new</span><span class="token punctuation">(</span>WEBKIT_TYPE_WEB_VIEW<span class="token punctuation">,</span> + <span class="token string">"user-content-manager"</span><span class="token punctuation">,</span> content_manager<span class="token punctuation">,</span> <span class="token comment">/** NEW! **/</span> + <span class="token string">"settings"</span><span class="token punctuation">,</span> <span class="token function">cog_shell_get_web_settings</span><span class="token punctuation">(</span>shell<span class="token punctuation">)</span><span class="token punctuation">,</span> + <span class="token string">"web-context"</span><span class="token punctuation">,</span> <span class="token function">cog_shell_get_web_context</span><span class="token punctuation">(</span>shell<span class="token punctuation">)</span><span class="token punctuation">,</span> + <span class="token string">"backend"</span><span class="token punctuation">,</span> view_backend<span class="token punctuation">,</span> + <span class="token constant">NULL</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">cog_platform_init_web_view</span><span class="token punctuation">(</span>platform<span class="token punctuation">,</span> web_view<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">webkit_web_view_load_uri</span><span class="token punctuation">(</span>web_view<span class="token punctuation">,</span> s_starturl<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">return</span> <span class="token function">g_steal_pointer</span><span class="token punctuation">(</span><span class="token operator">&amp;</span>web_view<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<details> + <summary>What is <code>g_autoptr</code>? + Does it relate to <code>g_steal_pointer</code>? + This does not look like C!</summary><div> +<p>In the shown code examples, <code>g_autoptr(T)</code> is a preprocessor macro provided by +GLib that declares a pointer variable of the <code>T</code> type, and arranges for +freeing resources automatically when the variable goes out of scope. For +objects this results in +<a href="https://docs.gtk.org/gobject/method.Object.unref.html">g_object_unref()</a> +being called.</p> +<p>Internally the macro takes advantage of the <code>__attribute__((cleanup, ...))</code> +compiler extension, which is supported by GCC and Clang. GLib also includes <a href="https://docs.gtk.org/glib/func.DEFINE_AUTOPTR_CLEANUP_FUNC.html">a +convenience +macro</a> that +can be used to define cleanups for your own types.</p> +<p>As for <code>g_steal_pointer</code>, it is useful to indicate that the ownership of a +pointer declared with <code>g_autoptr</code> is transferred outside from the current +scope. The function returns the same pointer passed as parameter and +resets it to <code>NULL</code>, thus preventing cleanup functions from running.</p> +</div></details> +<p>The size has been kept small thanks to reusing code from the <a href="https://github.com/Igalia/cog#cog">Cog +core</a> library. As a bonus, it should +run on Wayland, X11, and even on a bare display using the <abbr title="Direct +Rendering Manager">DRM<abbr>/<abbr title="Kernel Mode Setting">KMS</abbr> +subsystem directly. Compiling and running it, assuming you already have the +dependencies installed, should be as easy as running:</abbr></abbr></p> +<pre class="language-sh"><code class="language-sh">cc <span class="token parameter variable">-o</span> minicog minicog.c <span class="token variable"><span class="token variable">$(</span>pkg-config cogcore <span class="token parameter variable">--libs</span> <span class="token parameter variable">--cflags</span><span class="token variable">)</span></span> +./minicog wpewebkit.org</code></pre> +<p>If the current session kind is not automatically detected, a second parameter +can be used to manually choose among <code>wl</code> (Wayland), <code>x11</code>, <code>drm</code>, and so on:</p> +<pre class="language-sh"><code class="language-sh">./minicog wpewebkit.org x11</code></pre> +<p>The full, unmodified source for this minimal browser is included right below.</p> +<details> + <summary>Complete <code>minicog.c</code> source + (<a target="_blank" rel="noopener" href="https://gist.github.com/aperezdc/f6a65a95f2baa222c0ce9d65e516e13b">Gist</a>) + </summary> +<!-- minicog.c <<<1 --> +<div> +<pre><code class="language-c"> +/* + * SPDX-License-Identifier: MIT + * + * cc -o minicog minicog.c $(pkg-config wpe-webkit-1.1 cogcore --cflags --libs) + */ +&nbsp; +#include &lt;cog/cog.h&gt; +&nbsp; +static const char *s_starturl = NULL; +&nbsp; +static WebKitWebView* +on_create_view(CogShell *shell, CogPlatform *platform) +{ + g_autoptr(GError) error = NULL; + WebKitWebViewBackend *view_backend = cog_platform_get_view_backend(platform, NULL, &error); + if (!view_backend) + g_error("Cannot obtain view backend: %s", error->message); +&nbsp; + g_autoptr(WebKitWebView) web_view = + g_object_new(WEBKIT_TYPE_WEB_VIEW, + "settings", cog_shell_get_web_settings(shell), + "web-context", cog_shell_get_web_context(shell), + "backend", view_backend, + NULL); + cog_platform_init_web_view(platform, web_view); + webkit_web_view_load_uri(web_view, s_starturl); + return g_steal_pointer(&web_view); +} +&nbsp; +int +main(int argc, char *argv[]) +{ + g_set_application_name("minicog"); +&nbsp; + if (argc != 2 && argc != 3) { + g_printerr("Usage: %s [URL [platform]]\n", argv[0]); + return EXIT_FAILURE; + } +&nbsp; + g_autoptr(GError) error = NULL; + if (!(s_starturl = cog_uri_guess_from_user_input(argv[1], TRUE, &error))) + g_error("Invalid URL '%s': %s", argv[1], error->message); +&nbsp; + cog_modules_add_directory(COG_MODULEDIR); +&nbsp; + g_autoptr(GApplication) app = g_application_new(NULL, G_APPLICATION_DEFAULT_FLAGS); + g_autoptr(CogShell) shell = cog_shell_new("minicog", FALSE); + g_autoptr(CogPlatform) platform = + cog_platform_new((argc == 3) ? argv[2] : g_getenv("COG_PLATFORM"), &error); + if (!platform) + g_error("Cannot create platform: %s", error->message); +&nbsp; + if (!cog_platform_setup(platform, shell, "", &error)) + g_error("Cannot setup platform: %s\n", error->message); +&nbsp; + g_signal_connect(shell, "create-view", G_CALLBACK(on_create_view), platform); + g_signal_connect_swapped(app, "shutdown", G_CALLBACK(cog_shell_shutdown), shell); + g_signal_connect_swapped(app, "startup", G_CALLBACK(cog_shell_startup), shell); + g_signal_connect(app, "activate", G_CALLBACK(g_application_hold), NULL); +&nbsp; + return g_application_run(app, 1, argv); +} +</code></pre> +<!-- 1>>> --> +</div> +</details> +<h2 id="uri-scheme-handlers" tabindex="-1">URI Scheme Handlers</h2> +<figure> + <img src="https://wpewebkit.org/assets/svg/URI_syntax_diagram.svg" alt="“Railroad” diagram of URI syntax" /> + <figcaption>URI syntax (<a target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, + <a target="_blank" rel="noopener" href="https://commons.wikimedia.org/wiki/File:URI_syntax_diagram.svg">source</a>), + notice the “scheme” component at the top left. + </figcaption> +</figure> +<p>A URI scheme handler allows “teaching” the web engine how to handle <em>any</em> +load (pages, subresources, the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API">Fetch API</a>, +<code>XmlHttpRequest</code>, …)—if you ever wondered how Firefox implements +<code>about:config</code> or how Chromium does <code>chrome://flags</code>, this is it. Also, +WPE WebKit has public API for this. Roughly:</p> +<ol> +<li>A custom URI scheme is registered using +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.WebContext.register_uri_scheme.html">webkit_web_context_register_uri_scheme()</a>. This also associates a callback function to it.</li> +<li>When WebKit detects a load for the scheme, it invokes the provided +function, passing a +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/class.URISchemeRequest.html">WebKitURISchemeRequest</a>.</li> +<li>The function generates data to be returned as the result of the load, +as a <a href="https://docs.gtk.org/gio/class.InputStream.html">GInputStream</a> +and calls <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.URISchemeRequest.finish.html">webkit_uri_scheme_request_finish()</a>. This sends the stream to WebKit as the +response, indicating the length of the response (if known), and the +MIME content type of the data in the stream.</li> +<li>WebKit will now read the data from the input stream.</li> +</ol> +<h3 id="echoes" tabindex="-1">Echoes</h3> +<p>Let’s add an echo handler to our <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#intermission">minimal browser</a> that +replies back with the requested URI. Registering the scheme is +straightforward enough:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> <span class="token keyword">void</span> +<span class="token function">configure_web_context</span><span class="token punctuation">(</span>WebKitWebContext <span class="token operator">*</span>context<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token function">webkit_web_context_register_uri_scheme</span><span class="token punctuation">(</span>context<span class="token punctuation">,</span> + <span class="token string">"echo"</span><span class="token punctuation">,</span> + handle_echo_request<span class="token punctuation">,</span> + <span class="token constant">NULL</span> <span class="token comment">/* userdata */</span><span class="token punctuation">,</span> + <span class="token constant">NULL</span> <span class="token comment">/* destroy_notify */</span><span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<details> + <summary>What are “user data” and “destroy notify”?</summary><div> +<p>The <code>userdata</code> parameter above is a convention used in many C libraries, and +specially in these based on GLib when there are callback functions involved. +It allows the <em>user</em> to supply a pointer to arbitrary <em>data</em>, which will be +passed later on as a parameter to the callback (<code>handle_echo_request</code> in the +example) when it gets invoked later on.</p> +<p>As for the <code>destroy_notify</code> parameter, it allows passing a function with the +signature <code>void func(void*)</code> (type +<a href="https://docs.gtk.org/glib/callback.DestroyNotify.html">GDestroyNotify</a>) which +is invoked with <code>userdata</code> as the argument once the user data is no longer +needed. In the example above, this callback function would be invoked when the +URI scheme is unregistered. Or, from a different perspective, this callback is +used to <em>notify</em> that the user data can now be <em>destroyed</em>.</p> +</div></details> +<p>One way of implementing <code>handle_echo_request()</code> could be wrapping the request +URI, which is part of the <code>WebKitURISchemeRequest</code> parameter to the handler, +stash it into a <a href="https://docs.gtk.org/glib/struct.Bytes.html">GBytes</a> +container, and <a href="https://docs.gtk.org/gio/ctor.MemoryInputStream.new_from_bytes.html">create an input stream to read back its +contents</a>:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> <span class="token keyword">void</span> +<span class="token function">handle_echo_request</span><span class="token punctuation">(</span>WebKitURISchemeRequest <span class="token operator">*</span>request<span class="token punctuation">,</span> <span class="token keyword">void</span> <span class="token operator">*</span>userdata<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token keyword">const</span> <span class="token keyword">char</span> <span class="token operator">*</span>request_uri <span class="token operator">=</span> <span class="token function">webkit_uri_scheme_request_get_uri</span><span class="token punctuation">(</span>request<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">g_print</span><span class="token punctuation">(</span><span class="token string">"Request URI: %s\n"</span><span class="token punctuation">,</span> request_uri<span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>GBytes<span class="token punctuation">)</span> data <span class="token operator">=</span> <span class="token function">g_bytes_new</span><span class="token punctuation">(</span>request_uri<span class="token punctuation">,</span> <span class="token function">strlen</span><span class="token punctuation">(</span>request_uri<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>GInputStream<span class="token punctuation">)</span> stream <span class="token operator">=</span> <span class="token function">g_memory_input_stream_new_from_bytes</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token function">webkit_uri_scheme_request_finish</span><span class="token punctuation">(</span>request<span class="token punctuation">,</span> stream<span class="token punctuation">,</span> <span class="token function">g_bytes_get_size</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">"text/plain"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>Note how we need to tell WebKit how to <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.URISchemeRequest.finish.html">finish the load +request</a>, +in this case only with the data stream, but it is possible to have <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.URISchemeRequest.finish_with_response.html">more +control of the +response</a> +or <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.URISchemeRequest.finish_error.html">return an +error</a>.</p> +<p>With these changes, it is now possible to make page loads from the new custom +URI scheme:</p> +<figure> + <img alt="Screenshot of the minicog browser loading a custom echo:// URI" src="https://wpewebkit.org/assets/img/extending-minicog-echouri.png" class="picture" /> + <figcaption>It worked!</figcaption> +</figure> +<h3 id="et-tu%2C-cors%3F" tabindex="-1">Et Tu, CORS?</h3> +<p>The main roadblock one may find when using custom URI schemes is that loads +are affected by <abbr title="Cross-Origin Resource Sharing">CORS</abbr> +checks. Not only that, WebKit by default does <em>not</em> allow sending cross-origin +requests to custom URI schemes. This is by design: instead of accidentally +leaking potentially sensitive data to websites, developers embedding a web +view <em>need</em> to consciously opt-in to allow <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a> requests <em>and</em> +send back suitable <code>Access-Control-Allow-*</code> response headers.</p> +<p>In practice, the additional setup involves +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.WebContext.get_security_manager.html">retrieving</a> +the <code>WebKitSecurityManager</code> being used by the <code>WebKitWebContext</code> and +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.SecurityManager.register_uri_scheme_as_cors_enabled.html">registering the scheme as +CORS-enabled</a>. +Then, in the handler function for the custom URI scheme, create a +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/class.URISchemeResponse.html">WebKitURISchemeResponse</a>, +which allows fine-grained control of the response, including setting +<a href="https://libsoup.org/libsoup-3.0/struct.MessageHeaders.html">headers</a>, +and finishing the request instead with +<code>webkit_uri_scheme_request_finish_with_response()</code>.</p> +<p>Note that WebKit cuts some corners when using CORS with custom URI schemes: +handlers will <em>not</em> receive preflight <code>OPTIONS</code> requests. Instead, the CORS +headers from the replies are inspected, and if access needs to be denied +then the data stream with the response contents is discarded.</p> +<p>In addition to providing a complete CORS-enabled custom URI scheme <a href="https://gist.github.com/aperezdc/74809a6cd617faf445c22097a47bcb50">example</a>, +we recommend the <a href="https://httptoolkit.com/will-it-cors">Will It CORS?</a> tool +to help troubleshoot issues.</p> +<h3 id="further-ideas" tabindex="-1">Further Ideas</h3> +<p>Once we have WPE WebKit calling into our custom code, there are no limits +to what a URI scheme handler can do—as long as it involves replying +to requests. Here are some ideas:</p> +<ul> +<li>Allow pages to access a subset of paths from the local file system in a +controlled way (as <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#et-tu%2C-cors%3F">CORS applies</a>). For inspiration, +see <a href="https://igalia.github.io/cog/class.DirectoryFilesHandler.html">CogDirectoryFilesHandler</a>.</li> +<li>Package all your web application assets into a single ZIP file, making +loads from <code>app:/...</code> fetch content from it. Or, make the scheme handler +load data using <a href="https://docs.gtk.org/gio/struct.Resource.html">GResource</a> and bundle the application +inside your program.</li> +<li>Use the presence of a well-known custom URI to have a web application +realize that it is running on a certain device, and make its user +interface adapt accordingly.</li> +<li>Provide a REST API, which internally calls into +<a href="https://networkmanager.dev/">NetworkManager</a> to list and configure +wireless network adapters. Combine it with a local web application and +embedded devices can now easily get on the network.</li> +</ul> +<h2 id="user-script-messages" tabindex="-1">User Script Messages</h2> +<p>While <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#uri-scheme-handlers">URI scheme handlers</a> +allow streaming large chunks of data back into the Web engine, for exchanging +smaller pieces of information in a more programmatic fashion it may be +preferable to exchange messages without the need to trigger resource loads. +The user script messages part of the +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/class.UserContentManager.html">WebKitUserContentManager</a> API can be used this way:</p> +<ol> +<li>Register a user message handler with +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.UserContentManager.register_script_message_handler.html">webkit_user_content_manager_register_script_message_handler()</a>. +As opposed to URI scheme handlers, this only enables receiving messages, +but does not associate a callback function <em>yet</em>.</li> +<li>Associate a callback to the +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/signal.UserContentManager.script-message-received.html">script-message-received</a> +signal. The signal detail should be the name of the registered handler.</li> +<li>Now, whenever JavaScript code calls +<code>window.webkit.messageHandlers.&lt;name&gt;.postMessage()</code>, the signal is +emitted, and the native callback functions invoked.</li> +</ol> +<details> + <summary>Haven't I seen <code>postMessage()</code> elsewhere?</summary><div> +<p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage">Yes</a>, +<a href="https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage">you</a> +<a href="https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/postMessage">have</a>. +The name is the same because it provides a similar functionality (send a +message), it guarantees little (the receiver should validate messages), and +there are <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm">similar +restrictions</a> +in the kind of values that can be passed along.</p> +</div></details> +<h3 id="it%E2%80%99s-all-javascript" tabindex="-1">It’s All JavaScript</h3> +<p>Let’s add a feature to our <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html#intermission">minimal browser</a> that will allow +JavaScript code to trigger rebooting or powering off the device where it is +running. While this should definitely <em>not</em> be functionality exposed to the +open Web, it is perfectly acceptable in an embedded device where we control +what gets loaded with WPE, and that exclusively uses a web application as its +user interface.</p> +<figure> + <img src="https://wpewebkit.org/assets/img/pepe-silvia-all-javascript.jpg" class="picture" alt="Pepe Silvia conspiracy image meme, with the text “It's all JavaScript” superimposed" /> + <figcaption>Yet most of the code shown in this post is C.</figcaption> +</figure> +<p>First, create a <code>WebKitUserContentManager</code>, register the message handler, +and connect a callback to its associated signal:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> WebKitUserContentManager<span class="token operator">*</span> +<span class="token function">create_content_manager</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token function">g_autoptr</span><span class="token punctuation">(</span>WebKitUserContentManager<span class="token punctuation">)</span> content_manager <span class="token operator">=</span> <span class="token function">webkit_user_content_manager_new</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">webkit_user_content_manager_register_script_message_handler</span><span class="token punctuation">(</span>content_manager<span class="token punctuation">,</span> <span class="token string">"powerControl"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">g_signal_connect</span><span class="token punctuation">(</span>content_manager<span class="token punctuation">,</span> <span class="token string">"script-message-received::powerControl"</span><span class="token punctuation">,</span> + <span class="token function">G_CALLBACK</span><span class="token punctuation">(</span>handle_power_control_message<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token constant">NULL</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">return</span> <span class="token function">g_steal_pointer</span><span class="token punctuation">(</span><span class="token operator">&amp;</span>content_manager<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>The callback receives a <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/struct.JavascriptResult.html">WebKitJavascriptResult</a>, from which we +can get the <a href="https://people.igalia.com/aperez/Documentation/wpe-javascriptcore-1.1/class.Value.html">JSCValue</a> with the contents of the parameter +passed to the <code>postMessage()</code> function. The <code>JSCValue</code> can now be inspected +to check for malformed messages and determine the action to take, and +then arrange to call <code>reboot()</code>:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> <span class="token keyword">void</span> +<span class="token function">handle_power_control_message</span><span class="token punctuation">(</span>WebKitUserContentManager <span class="token operator">*</span>content_manager<span class="token punctuation">,</span> + WebKitJavascriptResult <span class="token operator">*</span>js_result<span class="token punctuation">,</span> <span class="token keyword">void</span> <span class="token operator">*</span>userdata<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + JSCValue <span class="token operator">*</span>value <span class="token operator">=</span> <span class="token function">webkit_javascript_result_get_js_value</span><span class="token punctuation">(</span>js_result<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">jsc_value_is_string</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token function">g_warning</span><span class="token punctuation">(</span><span class="token string">"Invalid powerControl message: argument is not a string"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">return</span><span class="token punctuation">;</span> + <span class="token punctuation">}</span> + + g_autofree <span class="token keyword">char</span> <span class="token operator">*</span>value_as_string <span class="token operator">=</span> <span class="token function">jsc_value_to_string</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">int</span> action<span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strcmp</span><span class="token punctuation">(</span>value_as_string<span class="token punctuation">,</span> <span class="token string">"poweroff"</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + action <span class="token operator">=</span> RB_POWER_OFF<span class="token punctuation">;</span> + <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strcmp</span><span class="token punctuation">(</span>value_as_string<span class="token punctuation">,</span> <span class="token string">"reboot"</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + action <span class="token operator">=</span> RB_AUTOBOOT<span class="token punctuation">;</span> + <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> + <span class="token function">g_warning</span><span class="token punctuation">(</span><span class="token string">"Invalid powerControl message: '%s'"</span><span class="token punctuation">,</span> value_as_string<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">return</span><span class="token punctuation">;</span> + <span class="token punctuation">}</span> + + <span class="token function">g_message</span><span class="token punctuation">(</span><span class="token string">"Device will %s now!"</span><span class="token punctuation">,</span> value_as_string<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">sync</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">reboot</span><span class="token punctuation">(</span>action<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>Note that the <code>reboot()</code> system call above will most likely fail because it +needs administrative privileges. While the browser process could run as <code>root</code> +to sidestep this issue—definitely <em>not</em> recommended!—it would be +better to grant the <code>CAP_SYS_BOOT</code> capability to the process, and <em>much</em> +better to ask the system manager daemon to handle the job. In machines +using <a href="https://systemd.io/">systemd</a> a good option is to call the <code>.Halt()</code> +and <code>.Reboot()</code> methods of its <code>org.freedesktop.systemd1</code> interface.</p> +<p>Now we can write a small HTML document with some JavaScript sprinkled on top +to arrange sending the messages:</p> +<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>title</span><span class="token punctuation">></span></span>Device Power Control<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>reboot<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Reboot<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>poweroff<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Power Off<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/javascript<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> + <span class="token keyword">function</span> <span class="token function">addHandler</span><span class="token punctuation">(</span><span class="token parameter">name</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">"click"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> + window<span class="token punctuation">.</span>webkit<span class="token punctuation">.</span>messageHandlers<span class="token punctuation">.</span>powerControl<span class="token punctuation">.</span><span class="token function">postMessage</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span> + <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token punctuation">}</span> + <span class="token function">addHandler</span><span class="token punctuation">(</span><span class="token string">"reboot"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">addHandler</span><span class="token punctuation">(</span><span class="token string">"poweroff"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">></span></span> +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">></span></span></code></pre> +<p>The complete source code for this example can be found +<a href="https://gist.github.com/aperezdc/621c1ec6bb78923e27fc035fa0689522">in this Gist</a>.</p> +<h3 id="going-in-the-other-direction" tabindex="-1">Going In The Other Direction</h3> +<p>But how can one return values from user messages back to the JavaScript code +running in the context of the web page? Until recently, the only option +available was exposing some known function in the page’s JavaScript code, and +then using +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.WebView.run_javascript.html">webkit_web_view_run_javascript()</a> +to call it from native code later on. To make this more idiomatic and allow +waiting on a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a>, an approach like the following works:</p> +<ol> +<li>Have convenience JavaScript functions wrapping the calls to +<code>.postMessage()</code> which add an unique identifier as part of the message, +create a <code>Promise</code>, and store it in a <code>Map</code> indexed by the identifier. +The <code>Promise</code> is itself returned from the functions.</li> +<li>When the callback in native code handle messages, they need to take +note of the message identifier, and then use +<code>webkit_web_view_run_javascript()</code> to pass it back, along with the +information needed to resolve the promise.</li> +<li>The Javascript code running in the page takes the <code>Promise</code> from +the <code>Map</code> that corresponds to the identifier, and resolves it.</li> +</ol> +<p>To make this approach a bit more palatable, we could tell WebKit to <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1/method.UserContentManager.add_script.html">inject a +script</a> +along with the regular content, which would provide the <a href="https://gist.github.com/aperezdc/a112c6a61a5a11885eac2498702e3a6d">helper +functions</a> +needed to achieve this.</p> +<p>Nevertheless, the approach outlined above is cumbersome and can be +tricky to get right, not to mention that the effort needs to be duplicated in +each application. Therefore, we have recently added new API hooks to provide this +as a built-in feature, so starting in WPE WebKit 2.40 the recommended approach +involves using +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-2.0/method.UserContentManager.register_script_message_handler_with_reply.html">webkit_user_content_manager_register_script_message_handler_with_reply()</a> +to register handlers instead. This way, calling <code>.postMessage()</code> now returns a +<code>Promise</code> to the JavaScript code, and the callbacks connected to the +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-2.0/signal.UserContentManager.script-message-with-reply-received.html">script-message-with-reply-received</a> +signal now receive a +<a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-2.0/struct.ScriptMessageReply.html">WebKitScriptMessageReply</a>, +which can be used to resolve the promise—either on the spot, or +asynchronously later on.</p> +<h3 id="even-more-ideas" tabindex="-1">Even More Ideas</h3> +<p>User script messages are a powerful and rather flexible facility to make WPE +integrate web content into a complete system. The provided example is rather +simple, but as long as we do not need to pass huge amounts of data in +messages the possibilities are almost endless—especially with the +added convenience in WPE WebKit 2.40. Here are more ideas that can +be built on top of user script messages:</p> +<ul> +<li>A handler could receive requests to “monitor” some object, and +return a <code>Promise</code> that gets resolved when it has received changes. +For example, this could make the user interface of a smart thermostat +react to temperate updates from a sensor.</li> +<li>A generic handler that takes the message payload and converts it into +<a href="https://en.wikipedia.org/wiki/D-Bus">D-Bus</a> method calls, allowing +web pages to control many aspects of a typical Linux system.</li> +</ul> +<h2 id="wrapping-up" tabindex="-1">Wrapping Up</h2> +<p>WPE has been designed from the ground up to integrate with the rest of the +system, instead of having a sole focus on rendering Web content inside a +monolithic web browser application. Accordingly, the public API must be +comprehensive enough to use it as a component of <em>any</em> application. This +results in features that allow plugging into the web engine at different +layers to provide custom behaviour.</p> +<p>At Igalia we have years of experience embedding WebKit into all kinds of +applications, and we are always sympathetic to the needs of such systems. If +you are interested collaborating with WPE development, or searching for a +solution that can tightly integrate web content in your device, feel free to +<a href="https://www.igalia.com/contact/">contact us</a>.</p> +<!-- vim:set foldmethod=marker foldmarker=<<<,>>>: --> + + + + + Status of the new SVG engine in WebKit + + 2023-01-19T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/05-new-svg-engine.html + <style> +figure { +margin: 0; +} + +figure > figure { + border: 1px #cccccc solid; + padding: 4px; +} + +figcaption { + background-color: #cccccc; + color: black; + padding: 1px; + text-align: center; + margin-bottom: 4px; +} +</style> +<p>In the <a href="https://wpewebkit.org/blog/04-wpe-networking-overview.html">previous posts of this series</a>, various aspects of the WPE port architecture were covered. Besides maintaining and advancing the WPE port according to our customers’ needs, Igalia also participates in the development of the <strong>WebCore</strong> engine itself, which is shared by <em>all</em> WebKit ports. WebCore is the part of the browser engine that does the heavy lifting: it contains all functionality necessary to load, parse, lay out, and paint Web content.</p> +<p>Since late 2019, Igalia has been working on a new SVG engine, dubbed <strong>L</strong>ayer-<strong>B</strong>ased <strong>S</strong>VG <strong>E</strong>ngine (<strong>LBSE</strong>), that will unify the HTML/SVG rendering pipelines in WebCore. This will resolve long-standing design issues of the “legacy” SVG engine and unlock a bunch of new <em>exciting</em> possibilities for Web developers to get creative with SVG. <a href="https://blogs.igalia.com/nzimmermann/posts/2021-10-13-svg-performance/">Hardware-accelerated compositing</a>, driven by CSS <code>transform</code> animations, <a href="https://blogs.igalia.com/nzimmermann/posts/2019-12-12-3d-transformations/">3D perspective transformations</a> for arbitrary SVG elements, CSS <code>z-index</code> support for all SVG graphics elements, and proper coverage rectangle computations and repaints are just a few highlights of the capabilities the future SVG engine will offer.</p> +<p>In this article, an overview is given about the problems that LBSE aims to solve, and the importance of a performant, well-integrated SVG engine <em>especially</em> for the embedded market. Finally, the current upstreaming status is summarized including an outlook for the year <strong>2023</strong>.</p> +<h2 id="lbse-in-a-nutshell" tabindex="-1">LBSE in a nutshell</h2> +<p>Before diving into the technical topics, let’s take a few minutes to recap the motivations behind the LBSE work, and explain the importance of a well-integrated, performant SVG engine in WebKit, <em>especially</em> for the embedded market.</p> +<h3 id="motivation" tabindex="-1">Motivation</h3> +<p>Many of our customers build products that utilize a Linux-powered embedded device, typically using non-x86 CPUs, custom displays with built-in input capabilities (e.g., capacitive touchscreens) often without large amounts of memory or even permanent storage. The software stack for these devices usually consists of a device-specific Linux distribution, containing the proprietary network, GPU, and drivers for the embedded device - the vendor-approved <em>“reference distribution”</em>.</p> +<p>No matter what type of product is built nowadays, many of them need an active Internet connection, to e.g. update their software stack and access additional information. Besides the UI needed to control the product, a lot of additional dialogs, wizards and menus have to be provided to be able to alter the devices’ “system settings”, such as date/time information, time zones, display brightness, WiFi credentials, Bluetooth settings, and so on.</p> +<p>A variety of toolkits exist that assist in writing GUI applications for embedded devices, with a few open-source projects on the market, as well as commercial products providing closed-source, proprietary solutions, that <em>specifically</em> target the embedded market and are often optimized for specific target device families, e.g. certain ARM processors / certain GPUs.</p> +<p>If the need arises, not only to communicate with the Internet but also to display arbitrary Web content, WPE comes into play. As presented in the <a href="https://wpewebkit.org/blog/02-overview-of-wpe.html#how-does-wpe-integrate-with-webkit%3F">first post in this series</a>, the flexible and modular WPE architecture makes it an ideal choice for any product in the embedded market that needs Web browsing abilities. The <a href="https://docs.gtk.org/glib">GLib</a>/C-based <a href="https://people.igalia.com/aperez/Documentation/wpe-webkit-1.1">WPE public APIs</a> allow for customization of the browsing engine and its settings (react on page load/input events, inject custom JS objects, modify style sheets, etc.) and allow the embedder to control/monitor all relevant Web browsing-related activities.</p> +<p>With a full-fledged Web engine at hand, one might ponder if it is feasible to replace the whole native GUI stack with a set of Web pages/applications, and only use WPE to paint the UI in full-screen mode, thus migrating away from native GUI applications — following the trend in the desktop market. The number of organizations migrating native GUI applications into Web applications is <em>rapidly</em> increasing, since there are compelling reasons for Web apps: “write once, use everywhere”, avoiding vendor lock-in, easy/reliable deployment and update mechanisms, and efficient test/development cycles (local in-browser testing!).</p> +<p>Due to the sheer capabilities of the Web platform, it has grown to an environment in which any kind of application can be developed – ranging from video editing applications, big data processing pipelines to 3D games, all using JS/WebAssembly in a browser, presented using HTML5/CSS. And as an important bonus: in 2023, it’s much easier to find and attract talented Web developers and designers that are fluent in HTML/CSS/JS, than those that are comfortable designing UI applications in proprietary, closed-source C/C++ frameworks.</p> +<p>A long-term customer, successfully using WPE in their products, had very similar thoughts and carried out a study, contracting external Web designers to build a complete UI prototype using Web technology. The mock-up made extensive use of SVG2, embedded inline into HTML5 documents or via other mechanisms (CSS <code>background-image</code>, etc.). The UI fulfilled all expectations and worked great in Blink and WebKit-based browsers, delivering smooth animations. On the target device, however, the performance was too slow, far away from usable. A thorough analysis revealed that large parts of the Web page were constantly repainted, and layout operations were repeated for every frame when animations were active. The accumulated time to display a new frame during animations was in the order of a few milliseconds on desktop machines, but took 20-25 milliseconds on the target device, making smooth 60 FPS animations <em>impossible</em>.</p> +<p>The poor performance is not the result of shortcomings in the WPE port of WebKit: when replacing the aforementioned animated SVG document fragments with HTML/CSS “equivalents” (e.g. simulating SVG circles with CSS <code>border-radius</code> tricks) the performance issue vanisheed. Why? SVG lacks support for a key feature called <strong>accelerated compositing</strong>, which has been available for HTML/CSS since its introduction more than a decade ago. This compositing heavily relies on the <strong>Layer Tree</strong>, which is unaware of SVG. Extending the <strong>Layer Tree</strong> implementation to account for SVG is the <strong>main motivation for LBSE</strong>.</p> +<p>If you are unfamiliar with the concepts of <strong>Render Tree</strong> and <strong>Layer Tree</strong>, you might want to read the <em>“Key concepts”</em> section of an earlier <a href="https://blogs.igalia.com/nzimmermann/posts/2021-10-29-layer-based-svg-engine/page/3/#key-concepts">LBSE design document</a>, which provides an overview of the topic.</p> +<h3 id="prototyping" tabindex="-1">Prototyping</h3> +<p>The LBSE effort began in October 2019 as <strong>a research project</strong>, to find out an ideal design for the SVG <strong>Render Tree</strong>, that allows SVG to re-use the existing <strong>Layer Tree</strong> implementation with minimal changes. The aim for LBSE is to share as much code as possible with the HTML/CSS implementation, removing the need for things like SVG specific clipping/masking/filter code and disjoint HTML counterparts for the same operations.</p> +<p>After an extensive phase of experimentation, two abandoned approaches, and a long time spent on regression fixing, the LBSE prototype was finally finished after almost two years of work. It passed all 60k+ WebKit layout tests and offered initial support for compositing, 3D transformations, <code>z-index</code>, and more. The intent was to prove that we can reach feature parity with the legacy SVG engine and retrieve the very same visual results, pixel-by-pixel (except for progressions of LBSE). Shortly after the finalization, the prototype was presented during the <a href="https://blogs.igalia.com/nzimmermann/posts/2021-10-13-svg-performance/">WebKit contributors meeting in 2021</a>.</p> +<p>As the name “prototype” indicates, LBSE was not ready for integration into WebKit at this point. It <strong>replaced</strong> the old SVG engine with a new one, resulting in a monolithic patch exceeding <em>650 KB</em> of code changes. External contributions generally demand small patches, with ChangeLogs, tests, etc. – no conscientious reviewer in any company would approve a patch replacing a core component of a browser engine in one shot. Splitting up into small pieces is also not going to work, since SVG needs to be kept intact upstream all the time. Duplicating the whole SVG engine? Not practicable either. With that problem in mind, a fruitful discussion took place with Apple during and after the WebKit contributors meeting: a realistic upstreaming strategy was defined - thanks <em>Simon Fraser</em> for suggesting a pragmatic approach!</p> +<p>The idea is simple: bootstrap LBSE <em>in parallel</em> to the legacy SVG engine. Upstream LBSE behind a compile-time flag and additionally a runtime setting. This way the LBSE code is compiled by the <a href="https://trac.webkit.org/wiki/EarlyWarningSystem">EWS bots</a> during upstreaming (rules out bit-rot) and we gain the ability to turn LBSE on, selectively, from our layout tests – very useful during early bootstrapping. For WebKit, that strategy is the best – for LBSE another <em>major</em> effort is necessary: moving from a <strong>drop-in replacement</strong> approach to a <strong>dual-stack</strong> SVG engine: LBSE + legacy built into the same WebKit binaries. At least the timing was good since a split-up into small pieces was needed anyhow for upstreaming. Time to dissect the huge branch into logical, atomic pieces with proper change logs.</p> +<p>Before we jump to the upstreaming status, one question should be answered, that came up during the WebKit contributors meeting and also during various discussions: why don’t you just <em>fix</em> the existing SVG engine and instead propose a new one - isn’t that too risky for Web compatibility?</p> +<h3 id="why-don%E2%80%99t-you-fix-the-existing-svg-engine%3F" tabindex="-1">Why don’t you fix the existing SVG engine?</h3> +<img style="float: right; width: 55%;" alt="LBSE logo" src="https://wpewebkit.org/assets/lbse-logo-wide.png" /> +<p>There was <em>no initial intention</em> to come up with a new SVG engine. During LBSE development it became apparent how much SVG-specific code can be erased when unifying certain aspects with HTML/CSS. After carrying out the integration work, layout/painting and hit-testing work fundamentally different than before. Since that time, LBSE is labeled as a <em>“new SVG engine”</em>, even though the SVG DOM tree part remained almost identical. Web compatibility will <em>improve</em> with LBSE: a few long-standing, critical interop issues with other browser vendors are solved in LBSE. Therefore, there are no concerns regarding Web compatibility risks from our side.</p> +<p>To answer the initial question, whether it is possible to fix the existing SVG engine to add layer support without adding a “new” SVG engine in parallel? Short answer: <em>no</em>.</p> +<p>In the following section, it is shown that adding support for layers implies changing the class hierarchy of the SVG render tree. All SVG renderers need to inherit from <code>RenderLayerModelObject</code> – a change like this cannot be split up easily into small, atomic pieces. Improving the design is difficult if there’s a requirement to keep the SVG engine working all the time upstream: all patches in that direction end up being large as many renderers have to be changed at the same time. Having distinct, LBSE-only implementations of SVG renderers, independent of the legacy engine, leaves a lot of freedom to strive for an optimal design, free of legacy constraints, and avoids huge patches that are <em>impossible</em> to review.</p> +<p>Let’s close the introduction and review the upstreaming status, and discuss where we stand today.</p> +<h2 id="upstreaming-progress" tabindex="-1">Upstreaming progress</h2> +<h3 id="planning" tabindex="-1">Planning</h3> +<p>To unify the HTML/CSS and SVG rendering pipelines there are two possible paths to choose from: teach the <strong>Layer Tree</strong> about the SVG <strong>Render Tree</strong> and its rendering model, or vice-versa. For the latter path, the HTML/CSS-specific <code>RenderLayer</code> needs to split into HTML/SVG subclasses and a base class, that is constructible from non-<code>RenderLayerModelObject</code>-derived renderers. The layer management code currently in <code>RenderLayerModelObject</code> would need to move into another place, and so forth. This <em>invasive</em> approach can potentially break lots of things. Besides that danger, many places in the layer/compositing system would need subtle changes to account for the specific needs of SVG (e.g. different coordinate system origin/convention).</p> +<p>Therefore the former route was chosen, which requires transforming the SVG render tree class hierarchy, such that all renderers that need to manage layers derive from <strong><code>RenderLayerModelObject</code></strong>. Using this approach support, for SVG can be added to the layer/compositing system in a <em>non-invasive</em> manner, with only a minimum of SVG-specific changes. The following class hierarchy diagrams illustrate the planned changes.</p> +<figure style="display: inline-block;"> +<figure style="margin-left: 0; margin-right: auto; display: inline-block; width: 48%;"> +<figcaption><a href="https://wpewebkit.org/assets/svg/svg_render_tree_legacy.svg" target="_blank">Legacy design (click to enlarge)</a></figcaption> +<img alt="Visualization of the legacy SVG render tree class hierarchy in WebCore" src="https://wpewebkit.org/assets/svg/svg_render_tree_legacy.svg" /> +</figure> +<figure style="margin-left: auto; margin-right: 0; display: inline-block; width: 48%"> +<figcaption><a href="https://wpewebkit.org/assets/svg/svg_render_tree_lbse.svg" target="_blank">LBSE design (click to enlarge)</a></figcaption> +<img alt="Visualization of the LBSE SVG render tree class hierarchy in WebCore" src="https://wpewebkit.org/assets/svg/svg_render_tree_lbse.svg" /> +</figure> +</figure> +<p>The first graph shows the class hierarchy of the render tree in the legacy SVG engine: <code>RenderObject</code> is the base class for all nodes in the render tree. <code>RenderBoxModelObject</code> is the common base class for all HTML/CSS renderers. It inherits from <code>RenderLayerModelObject</code>, potentially allowing HTML renderers to create layers. For the SVG part of the render tree, there is no common base class shared by all the SVG renderers, for historical reasons.</p> +<p>The second graph shows only the SVG renderers of the LBSE class hierarchy. In that design, all relevant SVG renderers may create/destroy/manage layers, via <code>RenderLayerModelObject</code>. More information regarding the challenges can be found in the earlier <a href="https://blogs.igalia.com/nzimmermann/posts/2021-10-29-layer-based-svg-engine/page/6/#legacy-class-hierarchy">LBSE design document</a>.</p> +<h3 id="report" tabindex="-1">Report</h3> +<p>The upstreaming work started in <strong>December 2021</strong>, with the introduction of a new layer-aware root renderer for the SVG render subtree: <code>RenderSVGRoot</code>. The existing <a href="https://trac.webkit.org/changeset/286392/webkit"><code>RenderSVGRoot</code> class was renamed to <code>LegacyRenderSVGRoot</code></a> (as well as any files, comments, etc.) and all call sites and build systems were adapted. Afterward, a stub implementation <a href="https://trac.webkit.org/changeset/286842/webkit">of a layer-aware <code>RenderSVGRoot</code> class was added</a> and assured that the <a href="https://trac.webkit.org/changeset/286846/webkit">new renderer is created for the corresponding SVG DOM element</a> if LBSE is activated.</p> +<p>That process needs to be repeated for all SVG renderers that have substantially changed in LBSE and thus deserve an LBSE-specific upstream implementation. For all other cases, in-file <code>#if ENABLE(LAYER_BASED_SVG_ENGINE) ... #endif</code> blocks will be used to encapsulate LBSE-specific behavior. For example, <code>RenderSVGText</code> / <code>RenderSVGInlineText</code> are almost identical in LBSE downstream, compared to their legacy variants; thus, they are going to share the renderer implementation between the legacy SVG engine and LBSE.</p> +<p>The multi-step procedure was repeated for <a href="https://trac.webkit.org/changeset/287538/webkit"><code>RenderSVGModelObject</code></a> (the base class for SVG graphics primitives), <a href="https://trac.webkit.org/changeset/287832/webkit"><code>RenderSVGShape</code></a>, <a href="https://trac.webkit.org/changeset/287834/webkit"><code>RenderSVGRect</code></a>, and <a href="https://trac.webkit.org/changeset/287921/webkit"><code>RenderSVGContainer</code></a>. Core functionality such as laying out children of a container, previously hidden in <a href="https://github.com/WebKit/WebKit/blob/main/Source/WebCore/rendering/svg/SVGRenderSupport.cpp#L241"><code>SVGRenderSupport::layoutChildren()</code></a> in the legacy SVG engine, now lives in a dedicated class: <a href="https://trac.webkit.org/changeset/288011/webkit"><code>SVGContainerLayout</code></a>. Computing the various SVG bounding boxes - <strong>object/stroke/decorated bounding box</strong> - is <a href="https://svgwg.org/svg2-draft/coords.html#BoundingBoxes">precisely specified in SVG2</a> and got a dedicated implementation as the <a href="https://trac.webkit.org/changeset/287873/webkit"><code>SVGBoundingBoxComputation</code></a> class, instead of fragmenting the algorithms all over the SVG render tree as in the legacy SVG engine.</p> +<p>By <strong>February 2022</strong>, enough functionality was in place to construct the LBSE render tree for basic SVG documents, utilizing nested containers and rectangles as leaves. While this doesn’t sound exciting <em>at all</em>, it provided an ideal environment to implement support for SVG in the <code>RenderLayer</code>-related code - <strong>before</strong> converting all SVG renderers to LBSE, and <strong>before</strong> implementing painting in the SVG renderers.</p> +<p>Both <code>RenderLayer</code> and <code>RenderLayerBacking</code> query CSS geometry information such as <strong>border box</strong>, <strong>padding box</strong>, or <strong>content box</strong> from their associated renderer, which is expected to be a <strong><code>RenderBox</code></strong> in many places. This is <em>incorrect</em> for SVG: <code>RenderSVGModelObject</code> inherits from <code>RenderLayerModelObject</code>, but not from <code>RenderBox</code> since it doesn’t adhere to the CSS box model. Various call sites cast the associated renderer to <code>RenderBox</code> to call e.g. <code>borderBoxRect()</code> to retrieve the border box rectangle. There are similar accessors in SVG to query the geometry, but there is no equivalent of a <strong>border box</strong> or other CSS concetps in SVG. Therefore, we extended <code>RenderSVGModelObject</code> to provide a <strong>CSS box model view</strong> of an SVG renderer, by offering methods such as <code>borderBoxRectEquivalent()</code> or <code>visualOverflowRectEquivalent()</code> that return geometry information in the same coordinate system using the same conventions as their HTML/CSS counterparts.</p> +<p>We also refactored <code>RenderLayer</code> to use a proxy method - <code>rendererBorderBoxRect()</code> - <a href="https://trac.webkit.org/changeset/289210/webkit">that provides access</a> to the <code>borderBoxRect()</code> for HTML and the <code>borderBoxRectEquivalent()</code> for SVG renderers, and the same <a href="https://trac.webkit.org/changeset/289213/webkit">fix</a> to <code>RenderLayerBacking</code>. With these fixes in place, support to <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/%3Ehttps://trac.webkit.org/changeset/289207/webkit">position and size SVG layers</a> and to <a href="https://trac.webkit.org/changeset/289204/webkit">compute overflow information</a> could be added – <em>both</em> pre-conditions to enable painting.</p> +<p>By <strong>March 2022</strong>, LBSE <a href="https://trac.webkit.org/changeset/290324/webkit">was able to paint basic SVG documents</a> - a major milestone for the bootstrapping process, demonstrating that the layer painting code was functional for SVG. It was time to move on to <em>transformations</em>: implementing <a href="https://trac.webkit.org/changeset/290880/webkit"><code>RenderSVGTransformableContainer</code></a> (e.g. <code>&lt;g&gt;</code> elements with a non-identity <code>transform</code> attribute or CSS <code>transform</code> property) and CSS/SVG <code>transform</code> support for all other graphics primitives, utilizing the <code>RenderLayer</code>-based <strong>CSS Transform</strong> implementation. As preparation, the existing code was reviewed and <a href="https://trac.webkit.org/changeset/291338/webkit">cleaned up</a>: <code>transform-origin</code> computation <a href="https://trac.webkit.org/changeset/291338/webkit">was decoupled</a> from CTM computation (CTM = current transformation matrix, see <a href="https://www.w3.org/TR/css-transforms-1/#current-transformation-matrix">CSS Transforms Module Level 1</a>) and <code>transform-box</code> computations <a href="https://trac.webkit.org/changeset/292525/webkit">were unified in a single place</a>.</p> +<p>In <strong>April 2022</strong>, <strong>2D transforms</strong> <a href="https://trac.webkit.org/changeset/292706/webkit">were enabled</a> and became <a href="https://trac.webkit.org/changeset/293504/webkit">fully functional</a> a few weeks later. Besides missing <em>compositing support</em> upstream, downstream work showed that enabling 3D transforms for SVG required <a href="https://trac.webkit.org/changeset/294615/webkit">fixing a decade-old bug</a> that made the computed <code>perspective</code> transformation dependent on the choice of <code>transform-origin</code>. That became apparent when testing the layer code with SVG, which uses different default values for certain transform-related CSS properties than HTML does: <code>transform-box: view-box</code> and <code>transform-origin: 0 0</code> are the relevant defaults for SVG, referring to the top-left corner of nearest SVG viewport vs. the center of the element in HTML.</p> +<p>By <strong>May 2022</strong>, the legacy SVG text rendering code was <a href="https://trac.webkit.org/changeset/294385/webkit">altered to be usable for LBSE as well</a>. At this point, it made sense to run layout tests using LBSE. Previously most tests were expected to fail, as most either utilize text, paths, or shapes, and sometimes all three together. LBSE render tree text dumps (dumping the parsed render tree structure in a text file) were added for all tests in the <code>LayoutTests/svg</code> subdirectory, as well as a new pixel test baseline (screenshots of the rendering as PNGs), generated using the legacy SVG engine, to verify that LBSE produces pixel-accurate results. All upcoming LBSE patches are expected to <em>change</em> the expected layout test result baseline, and/or the <code>TestExpectations</code> file, depending on the type of patch. This will ease the reviewing process a lot for future patches.</p> +<p>To further proceed, a <strong>test-driven approach</strong> was used to prioritize the implementation of the missing functionality. At that time, missing <code>viewBox</code> support for outer &lt;svg&gt; elements was causing many broken tests. The effect of the transformation induced by the <strong>viewBox</strong> attribute, specified on outer &lt;svg&gt; elements, cannot be implemented as an additional CSS transformation applied to the outermost &lt;svg&gt; element, as that would affect the painted dimensions of the SVG document, which are subject to the CSS <code>width</code>/<code>height</code> properties and the size negotiation logic only. The <code>viewBox</code> attribute is supposed to only affect the visual appearance of the descendants, by establishing a new local coordinate system for them. The legacy SVG engine manually handled the <code>viewBox</code>-induced transformation in various places throughout <code>LegacyRenderSVGRoot</code>, to only affect the painting of the descendants and not e.g. the position/dimension of the border surrounding the &lt;svg&gt;, if the CSS <code>border</code> property is specified. In LBSE, transformations are handled on <code>RenderLayer</code>-level and not in the renderers anymore.</p> +<p>By <strong>July 2022</strong>, after testing different approaches, a proper solution <a href="https://commits.webkit.org/252643@main">to add <code>viewBox</code> support was upstreamed</a>. The chosen solution makes use of another CSS concept that arises in the context of generated content: <em>“anonymous boxes”</em>. The idea is to wrap the direct descendants of <code>RenderSVGRoot</code> in an anonymous <code>RenderSVGViewportContainer</code> (“anonymous” = no associated DOM element) and apply the <code>viewBox</code> transformation as a regular CSS transformation on the anonymous renderer. With that approach, LBSE is left with just a <em>single, unified</em> <code>viewBox</code> implementation, without error-prone special cases in <code>RenderSVGRoot</code>, unlike the legacy SVG engine which has two disjoint implementations in <code>LegacyRenderSVGViewportContainer</code> and <code>LegacyRenderSVGRoot</code>.</p> +<p>After the summer holidays, in <strong>August 2022</strong>, the next major milestone was reached: <a href="https://bugs.webkit.org/show_bug.cgi?id=242833">enabling compositing support for arbitrary SVG elements</a>, bringing <strong>z-index</strong> support, <strong>hardware-accelerated compositing</strong> and <strong>3D transforms</strong> to SVG. This time <em>all lessons</em> learned from the previous LBSE prototypes were taken into account, resulting in a <em>complete</em> compositing implementation, that works in various scenarios: different <code>transform-box</code> / <code>transform-origin</code> combinations, inline SVG enclosed by absolute/relative positioned CSS boxes and many more, all way more polished than in the “final” LBSE prototype.</p> +<p>The aforementioned patch contained a fix for a <a href="https://webkit.org/b/27684">long-standing bug</a> (<em>“Composited elements appear pixelated when scaled up using transform”</em>), that made composited elements look blurry when scaling up with a CSS <code>transform</code> animation. The so-called <em>“backing scale factor”</em> of the associated <code>GraphicLayers</code> (see <a href="https://wpewebkit.org/blog/03-wpe-graphics-architecture.html">here for details</a> about the role of <code>GraphicLayer</code> in the compositing system) never changes during the animation. Therefore, the rendered image was scaled up instead of re-rendering the content at the right scale. LBSE now enforces updates of that scale factor, to avoid blurry SVGs. The fix is <em>not</em> activated yet for HTML as that requires more thought - see the previously-linked bug report for details.</p> +<p>With all the new features in place and covered by tests, it was time to finish the remaining SVG renderers: <a href="https://commits.webkit.org/250913@main">RenderSVGEllipse</a>, <a href="https://commits.webkit.org/251688@main">RenderSVGPath</a> and <a href="https://commits.webkit.org/252500@main">RenderSVGViewportContainer</a> (for inner &lt;svg&gt; elements), <a href="https://commits.webkit.org/253510@main">RenderSVGHiddenContainer</a>, <a href="https://commits.webkit.org/253793@main">RenderSVGImage</a>, and <a href="https://commits.webkit.org/253816@main">RenderSVGForeignObject</a>. A proper &lt;foreignObject&gt; implementation was lacking in WebKit for 15+ years, due to the fundamental problem that the layer tree was not aware of the SVG subtree. The LBSE variant of <code>RenderSVGForeignObject</code> looks trivial, yet offers a fully compatible <strong>&lt;foreignObject&gt; implementation</strong> - for the first time without issues with non-static positioned content as a direct child of &lt;foreignObject&gt;, at least a few weeks later after <a href="https://commits.webkit.org/256960@main">it landed</a>.</p> +<p>Returning to the test-driven approach, the next best target to fix was text rendering, which was working but not pixel-perfect. The legacy SVG engine takes into account the transformation from the text element up to the topmost renderer when computing the effective “on-screen” font size used to select a font for drawing/measuring, during <em>layout</em> time. LBSE needed a way to calculate the CTM for a given SVG renderer, up to a given ancestor renderer (or root), taking into account all possible transformation scenarios, including CSS <code>transform</code>, <code>translate</code>, <code>rotate</code>, SVG <code>transform</code> attribute, shifts due to <code>transform-origin</code>, perspective transformations, and much more. The <em>same functionality</em> is required to implement <code>getCTM()</code> / <code>getScreenCTM()</code>.</p> +<p>By the end of <strong>August 2022</strong>, <a href="https://commits.webkit.org/253938@main"><code>SVGLayerTransformComputation</code> was added</a> that re-used the existing <code>mapLocalToContainer()</code> / <code>TranformState</code> API to obtain the CTM. The CTM construction and ancestor chain walk - to accumulate the final transformation matrix - is performed by <code>mapLocalToContainer()</code> and no longer needs a special, <em>incomplete</em> SVG approach: the existing general approach now works for SVG too.</p> +<p><strong>September 2022</strong> was mostly devoted to bug fixes related to <strong>pixel-snapping</strong>. Outermost &lt;svg&gt; elements <a href="https://commits.webkit.org/254314@main">were not always enforcing stacking contexts</a> and <a href="https://commits.webkit.org/254558@main">failed to align to device pixels</a>. All other elements behaved fine with respect to pixel snapping (<em>not</em> applied for SVG elements) unless compositing layers were active. In that case, a <code>RenderLayerBacking</code> code path was used that unconditionally applied pixel-snapping - <a href="https://commits.webkit.org/254863@main">avoid that for SVG</a>.</p> +<p>By <strong>October 2022</strong> LBSE could <a href="https://commits.webkit.org/255291@main">properly display</a> SVGs embedded into HTML host documents via &lt;object&gt; elements – the size negotiation logic failed to take into account the LBSE-specific renderers before. CSS <code>background-image</code> / <code>list-image</code> / HTML &lt;img&gt; / etc. <a href="https://commits.webkit.org/255625@main">were fixed as well</a>. Zooming and panning support were <a href="https://commits.webkit.org/255727@main">implemented and improved compared to the legacy engine</a>. Along the way an important bug was fixed, one that other browsers had already fixed back in 2014. The bug caused percentage-sized documents (e.g. <code>width: 100%; height: 100%</code>) that also specify a <code>viewBox</code> to always keep the document size, regardless of the zoom level. Thus, upon zooming, only the stroke width enlarged, but not the boundaries of the document, and thus scrollbars never appeared.</p> +<p>Over the following weeks, text-related issues had to be fixed, which were responsible for a bunch of the remaining test issues. Transformed text did not render, which turned out to be a simple <a href="https://commits.webkit.org/255801@main">mistake</a>. More tests were upstreamed, related to <a href="https://commits.webkit.org/256502@main">compositing</a> and <a href="https://commits.webkit.org/256948@main">transformations</a>. More test coverage revealed that transform changes were not handled consistently – it took a period of investigation to <a href="https://commits.webkit.org/256787@main">land a proper fix</a>. SVG transform / SMIL &lt;animateMotion&gt; / SMIL &lt;animateTransform&gt; / CSS transform changes are now handled consistently in LBSE, leading to proper repaints, as expected.</p> +<p>Transformation support can be considered complete and properly handled both during the painting and layout phases. Dynamic changes at runtime are correctly triggering invalidations. However, the Web-exposed <strong>SVG DOM API</strong> that allows querying the transformation matrices of SVG elements, such as <code>getCTM()</code> and <code>getScreenCTM()</code>, was still missing. By <strong>November 2022</strong> a complete implementation <a href="https://commits.webkit.org/256862@main">was upstreamed</a>, that utilized the new <code>SVGLayerTransformComputation</code> class to construct the desired transformation matrices. This way the same internal API is used for painting/layout/hit-testing and implementing the <strong>SVG DOM accessors</strong>.</p> +<p>By <strong>December 2022</strong> LBSE was in a good shape: most important architectural changes were upstreamed and the most basic features were implemented. The year closed with a proposed <a href="https://github.com/WebKit/WebKit/pull/7482">patch</a> that will avoid re-layout when an element’s transform changes. The legacy SVG engine always needs a re-layout if transform changes, as the size of each ancestor can depend on the presence of transformations on the child elements – a bad design decision two decades ago that LBSE will resolve. Only repainting should happen, but no layouts, in LBSE.</p> +<p>Let’s move on to 2023, and recap what’s still missing in LBSE.</p> +<h3 id="next-steps" tabindex="-1">Next steps</h3> +<p>Besides fixing all remaining test regressions (see <a href="https://github.com/WebKit/WebKit/blob/main/LayoutTests/platform/mac-ventura-wk2-lbse-text/TestExpectations"><code>LayoutTests/platform/mac-ventura-wk2-lbse-text/TestExpectations</code></a>) “SVG resources” are missing in LBSE. That includes all “paint servers” and advanced painting operations: there is no support for linear/radial gradients, no support for patterns, and no support for clipping/masking and filters.</p> +<p>From the painting capabilities, LBSE is still in a <em>basic shape</em>. However, this was intentional, since a lot of the existing code for SVG resource handling is <em>no longer needed</em> in LBSE. Clipping/masking and filters will be handled via <code>RenderLayer</code>, reusing the existing HTML/CSS implementations. Temporary <code>ImageBuffers</code> are no longer needed for clipping, and thus there is no need to cache the “per client” state in the resource system (e.g. re-using the cached clipping mask for repainting). This will simplify the implementation of the “SVG resources” a lot.</p> +<p>Therefore the first task in 2023 is to implement clipping, then masking, gradients, patterns, and as the last item, filters, since they require a substantial amount of refactoring in <code>RenderLayerFilters</code>. +Note that these implementations are already complete in LBSE downstream and do not need to be invented from scratch. The first patches in that direction should be up for review by <strong>February 2023</strong>.</p> +<p>After all “SVG resources” are implemented in LBSE, feature parity is almost there and performance work will follow afterward. WebKit has a golden rule to never ship a performance regression; therefore, LBSE needs to be at least as fast in the standard performance tests, such as <em>MotionMark</em>, before it can replace the legacy engine. Currently, LBSE is <em>slower than the legacy engine</em> with respect to static rendering performance. Quoting numbers does not help at present, since the problem is well understood and will be resolved in the following months.</p> +<p>LBSE currently creates more <code>RenderLayer</code> objects than necessary: for each renderer, unconditionally. This is a great stress test of the layer system, and helpful for bootstrapping, but the associated overhead and complexity are simply not necessary for many cases, and actively hurt performance. LBSE already outperforms the legacy SVG engine whenever animated content is viewed, if it benefits from the <em>hardware acceleration</em> in LBSE.</p> +<p>2023 will be an exciting year, and hopefully brings LBSE to the masses, stay tuned!</p> +<h2 id="demos" tabindex="-1">Demos</h2> +<p>“A picture is worth a thousand words”, so we’d like to share with you the videos shown during the <strong>WebKit contributors meeting in 2022</strong> that demo the LBSE capabilities. Be sure to check them out so you can get a good picture of the state of the work. Enjoy!</p> +<ol> +<li> +<p><a href="https://cloud.igalia.com/s/fXjsXmqQocxF5P7/download/01-demo-tiger-2d.mp4">Accelerated 2D transforms (Tiger)</a></p> +<p style="text-align: center"> + <video width="800" height="600" controls=""><source src="https://cloud.igalia.com/s/fXjsXmqQocxF5P7/download/01-demo-tiger-2d.mp4" /></video> +</p> +</li> +<li> +<p><a href="https://cloud.igalia.com/s/FDx9koYej65wcFb/download/02-demo-tiger-3d.mp4">Accelerated 3D transform (Tiger)</a></p> +<p style="text-align: center"> + <video width="800" height="600" controls=""><source src="https://cloud.igalia.com/s/FDx9koYej65wcFb/download/02-demo-tiger-3d.mp4" /></video> +</p> +</li> +<li> +<p><a href="https://cloud.igalia.com/s/zyAAwLWRaFQMatL/download/03-demo-tiger-transition-storm.mp4">Transition storm (Tiger)</a></p> +<p style="text-align: center"> + <video width="800" height="600" controls=""><source src="https://cloud.igalia.com/s/zyAAwLWRaFQMatL/download/03-demo-tiger-transition-storm.mp4" /></video> +</p> +</li> +<li> +<p><a href="https://cloud.igalia.com/s/e2ZfqWpnT44awEZ/download/04-demo-vibrant.mp4">Vibrant example</a></p> +<p style="text-align: center"> + <video width="800" height="600" controls=""><source src="https://cloud.igalia.com/s/e2ZfqWpnT44awEZ/download/04-demo-vibrant.mp4" /></video> +</p> +</li> +</ol> +<h2 id="final-thoughts" tabindex="-1">Final thoughts</h2> +<p>We at Igalia are doing our best to fulfill the mission and complete the LBSE upstreaming as fast as possible. In the meanwhile, let us know about <em>your</em> thoughts:</p> +<ul> +<li>What would you do with a performant, next-level SVG engine?</li> +<li>Any particular desktop / embedded project that would benefit from it?</li> +<li>Anything in reach now, that seemed impossible before with the given constraints in WebKit?</li> +</ul> +<p>Thanks for your attention! Be sure to keep an eye on <a href="https://github.com/nikolaszimmermann/WebKitIgalia/issues/1">our “Upstreaming status” page at GitHub</a> to follow LBSE development.</p> + + + + + Use Case: WPE in digital signage + + 2023-01-06T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/2023-use-case-digital-signage.html + <div class="success-top"> +<img alt="WPE WebKit in digital signage" align="center" src="https://wpewebkit.org/assets/img/logo-digital-signage.png" srcset="https://wpewebkit.org/assets/img/logo-digital-signage@2x.png 2x" /> +<img alt="WPE" align="center" src="https://wpewebkit.org/assets/img/logo-blue.svg" /> +</div> +<p>Digital signage web rendering players have many advantages and are a trend nowadays. They allow to use HTML5 for composing the UI, provisioning and scheduling new contents to the screens from the cloud is simple and effortless, they provide a robust environment with an automatic crash recovery system, etc. They are also a great choice for digital signage kiosk deployments.</p> +<p>WPE WebKit is an excellent option to use as web rendering engine for Linux-based digital signage players, specially for the low-end market, where WPE Webkit allows to achieve great graphics and rendering performance in the less powerful devices like the ones based on the Raspberry Pi. As a result, WPE WebKit is naturally compatible with the hardware of the main digital signage manufactures that rely on these kind of lower-powered devices.</p> + + + + + Success Story: Metrological + + 2022-10-15T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/2022-success-metrological.html + <div class="success-top"> +<img alt="Metrological: A Comcast Company" align="center" src="https://wpewebkit.org/assets/img/logo-metrological@2x.png" /> +<img alt="WPE" align="center" src="https://wpewebkit.org/assets/img/logo-blue.svg" /> +</div> +<p>WPE WebKit brought <strong>RDK (Reference Design Kit)</strong>, a modern, performant web browser, to millions of screens. It enables operators to manage devices and easily customize their UIs and apps and provides analytics to improve the customer experience and drive business results.</p> +<p>Delivering a fast and memory-efficient browser for embedded systems is a challenging task, so Igalia helped Metrological build a new full-screen browser engine which stripped away all unnecessary toolkit elements.</p> +<p>With years of experience around WebKit platform integration, Igalia worked to produce a new WebKit port, WPE, which interfaced directly with Wayland and the graphics driver. Additionally, Igalia pushed forward the implementation of a multi-platform multi-threaded compositor, enabling better performance on low-end multicore processors. WPE is an official port of WebKit.</p> + + + diff --git a/aperezdc/learn-discover-rework/blog/01-happy-birthday-wpe.html b/aperezdc/learn-discover-rework/blog/01-happy-birthday-wpe.html new file mode 100644 index 000000000..87cf26930 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/01-happy-birthday-wpe.html @@ -0,0 +1,353 @@ + + + + + + + + + + + + Happy birthday WPE! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Happy birthday WPE!

+ + + + + +
+ +
+ +

Welcome to the new Blog section on wpewebkit.org!

+

Today is a special day for Igalia, especially for those colleagues that work on WebKit: +Five years ago, on the 21st of April 2017, the WPE port was announced by our colleague +Žan Doberšek on the WebKit mailing list.

+

Let’s take some time to celebrate and recap how WPE evolved from the early prototyping days to the product empowering hundreds of millions of devices +worldwide today.

+
+Celebrating WPEs 5th birthday with a cake +
+

WPE is … what exactly?

+

To get everyone on the same page, let’s start by reiterating what WPE is: a WebKit port optimized for embedded devices. +It allows you to embed a full-fledged Web browser engine that supports a large set of modern Web technologies into your product. +WPE itself is not a Web browser such as Safari, Chrome or Firefox but contains the underlying building blocks to load, parse and +render websites. To learn more about the distinction between a Web browser and a Web browser engine read our explainer.

+

You might ask yourself, what does “optimized for embedded devices” mean in practice? Unlike most other WebKit ports, WPE does not +rely on a specific user-interface toolkit, such as Qt, GTK, Cocoa, +etc., nor does it offer any integration with these kinds of toolkits. WPE WebKit is light-weight, integrates well with a +variety of hardware configurations, and only requires a minimum set of APIs on your side: +EGL and OpenGL ES 2.

+

The early days 2014 - 2017

+

The idea for a new WebKit port was born in 2014, as part of a collaboration between Metrological +and Igalia. The goal of this collaboration was to have a WebKit port running efficiently on their set-top boxes, +utilizing a modern Wayland based Linux graphics architecture. Back then, QtWebKit was popular +among embedders; however, it was unmaintained and its future was unclear since Qt wanted to transition +from using WebKit to Blink.

+

In September 2014 a group of Igalians forked the WebKitGtk port, removed all GTK toolkit dependencies, and prototyped what was necessary +to achieve the goal: rendering websites without involving any of the traditional toolkits and instead utilizing a Wayland-based rendering approach.

+

During development it became apparent that this WebKit port is generally useful for all our customers and the community as a whole. +Therefore Igalia decided to aim for an even more flexible design, where Wayland is only one of the possible backends. +Our fellow Igalian Miguel Gomez reported in his late 2016 blog post +about this change, and the renaming of the port: WPE appears for the first time in public.

+

The project’s removal of the Wayland dependency and the subsequent reorganization lead to the architecture we have today, +consisting of not only the WPE port itself but a whole ecosystem of projects such as libwpe, +WPEBackend-fdo, WPEBackend-rdk, etc., +that together form the WPE project.

+

2017 - today

+

After months of focused engineering efforts, the downstream work was finished and Igalia was ready to announce WPE to the +public on the 17th of April 2017, with the promise that Igalia +will maintain the port alongside the existing WebKitGtk port. That is not a cheap bill: maintaining an upstream port is a recurring +multi-million dollar investment. Just in order to keep the port itself healthy, as updates are made all around it, requires infrastructure, +bots and a team of fully dedicated engineers to deal with maintenance, testing, triaging, tickets, etc. To implement new Web standards, fix +related bugs or design and contribute features requires an even more considerable amount of resources.

+

Since then, Igalia ramped up the WPE investments and steadily advanced the port while helping customers to integrate WPE into their +environments. Today WPE is healthy, runs on many platforms, and offers the most flexible browser architecture at present. Also, thanks in great +part to this work, Igalia was responsible for nearly 16.5% of all commits in WebKit itself last year, helping make the larger project +and ecosystem around it healthier too.

+

However, none of this would be possible without the commitment of many Igalians pushing the project forward every day for the past 8 years. +A new People Behind WPE series will be launched soon: over the following months, the Igalians involved with WPE will introduce themselves, their area of +expertise, and talk about a specific WPE related technical topic. You’ll get to know the people behind the product and a first-class technical overview +of individual parts of the WPE architecture! We plan to release a new article every 3-4 weeks, so be sure to visit wpewebkit.org/blog +again soon and enjoy the upcoming People Behind WPE series.

+

Feel free to spread the word and make noise about WPE. Stay healthy, stay tuned!

+ + + +
+
+
+
+
+
+ + Picture of Nikolas Zimmermann + This article was written by Nikolas Zimmermann.

I'm a proud Igalian since 2019 and have been working on WebKits predecessors since the early 2000s, namely kjs/khtml/ksvg, and kdom/kcanvas/ksvg2/khtml2 that all found their way into WebKit. Since that time, Web technology - especially SVG - is my main area of interest. +
+
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/02-overview-of-wpe.html b/aperezdc/learn-discover-rework/blog/02-overview-of-wpe.html new file mode 100644 index 000000000..76395d43f --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/02-overview-of-wpe.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + An overview of the WPE WebKit project + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

An overview of the WPE WebKit project

+ + + + + +
+ +
+ +

In the previous post in this series, +we explained that WPE is a WebKit +port optimized for embedded devices. In this post, we’ll dive into a +more technical overview of the different components of WPE, WebKit, +and how they all fit together. If you’re still wondering what a web +engine is or how WPE came to be, we recommend you to go back to the +first post in the series and then come back here.

+

WebKit architecture in a nutshell

+

To understand what makes WPE special, we first need to have a basic +understanding of the architecture of WebKit itself, and how it ties +together a given architecture/platform and a user-facing web browser.

+

WebKit, the engine, is split into different components that +encapsulate its different parts. At the heart of it is WebCore. As the +name suggests, this contains the core features of the engine +(rendering, layout, platform access, HTML and DOM support, the +graphics layer, etc). However, some of these ultimately depend heavily +on the OS and underlying software platform in order to function. For +example: how do we actually do any I/O on different platforms? How do +we render onscreen? What’s the underlying multimedia platform and how +does it decode media and play it?

+

WebCore handles the multitude of potential answers to these questions +by abstracting the implementation of each component and allowing port +developers to fill the gaps for each supported platforms. For example, +for rendering on Mac, Cocoa APIs implement the graphics APIs +needed. On Linux, this can be done through different implementations +via Wayland, Vulkan, etc. For networking I/O on Mac, the networking +APIs in the Foundation framework are used. On Linux, libsoup fills +that gap, and so on.

+

On the opposite side, for browser implementors to be able to write a +browser using WebKit, an API is needed. WebKit, after all, is a +library. WebKit ports, besides providing the platform support +described above, also provide APIs that suit the target environments: +The Apple ports provide Objective-C APIs (which are then used to write +Safari and the iOS browsers, for instance), while the GTK+ port +provides a GObject-based APIs for Linux (that are used in Epiphany, +the GNOME browser, and other GNOME applications that rely on WebKit to +render HTML). All of these APIs are built on top of an internal, +middle-man, C API that is meant to make it easy for each port to +provide a high-level API for browser developers.

+

With all this in place, it would seem that it shouldn’t be so +difficult for any vendor trying to reuse WebKit in a new platform to +support new hardware and implement a browser, right? All that you need +to do is:

+
    +
  • Implement backends that integrate with your hardware platform: for +multimedia, IO, OS support, networking, graphics, etc.
  • +
  • Write an API that you can use to plug the engine into your browser.
  • +
  • Maintain the changes needed off-tree, that is, outside the source code tree +of WebKit.
  • +
  • Keep your implementation up-to-date with the many changes that happen in the +WebKit codebase on a daily basis, so that you can update WebKit regularly +and take advantage of the many bug fixes, improvements, and new features +that land on WebKit continuously.
  • +
+

Does that sound easy? No, it’s not easy at all! In fact, +implementation of ports in this fashion is strongly discouraged and +vendors who have tried this approach in the past have had to do a huge +effort just to play catch-up with the fast-paced development of +WebKit. This is where WPE comes to the rescue.

+

Simplifying browsers development in the diverse embedded world

+

To simplify the task of porting WebKit to different platforms, Igalia +started working on a platform-agnostic, Linux-based, and full-featured +port of WebKit. This port relies on existing and mature platform +backends for everything that can be easily reused across platforms: +multimedia, networking, and I/O, which are already present in-tree and +are used by Linux ports, like the GTK one. For the areas that are most +likely to require hardware-specific support (that is, graphics and +input), WPE abstracts the implementation so that it can be more easily +provided out of tree, allowing implementors to avoid having to deal +with the WebKit internals more than what’s strictly needed.

+

Additionally, WPE provides a high-level API that can be used to +implement actual browsers. This API is very similar to the WebKitGTK +API, making it easy for developers already familiar with the latter to +start working with WPE. The cog library also serves as a wrapper +around WPE to make it easier still. Once WPE was mature enough, it was +accepted by Apple as an official WebKit port, meaning that the port +lives now in-tree and takes immediate advantage of the many +improvements that land on the WebKit repository on a daily basis.

+

How does WPE integrate with WebKit?

+

A diagram of the WPE WebKit architecture

+

The WPE port has several components. Some are in-tree (that is, are a +part of WebKit itself), while others are out-of-tree. Let’s examine +those components and how they relate to each other, from top to +bottom:

+
    +
  • The Cog library. +While not an integral part of WPE, libcog is a shell library that simplifies +the task of writing a WPE browser from the scratch, by providing common +functionality and helper APIs. This component also includes the cog browser, +a simple WPE browser built on top of libcog that can be used as a reference +or a starting point for the development of a new browser for a specific use +case.
  • +
  • The WPE WebKit API: +the entry point for browser developers to the WebKit engine, provides a +comprehensive GObject/C API. The cog library uses this API extensively and +we recommend relying on it, but for more specific needs and more fine-tuning +of the engine, working directly with the WebKit API can be often necessary. +The API is stable and easy to use, especially, and for those familiar with +the GTK/GNOME platform.
  • +
  • WPE’s WebCore implementation: This part, internal to WebKit, implements +an abstraction of the graphics and input layers of WebKit. This +implementation relies on the libwpe library to provide the functionality +required in an abstract way. Thanks to the architecture of WPE, implementors +don’t need to bother with the complexities of WebCore and WebKit internals.
  • +
  • The libwpe +library. This is an out-of-tree library that provides the API required by +the WPE port in a generic way to implement the graphical and input backends. +Specific functionality for a concrete platform is not provided, but the +library relies on the existence of a backend implementation, as is described +next.
  • +
  • Finally, a WPE backend implementation. This is where all the +platform-specific code lives. Backends are loadable modules that can be +chosen depending on the underlying hardware. These should provide access to +graphics and input depending on the specific architecture, platform, and +operating system requirements. As a reference, WPEBackend-fdo is a +freedesktop.org-based backend, which uses Wayland and freekdesktop.org +technologies, and is +supported for several architectures, including NXP and Broadcom chipsets, like the +Raspberry Pi, and also regular PC architectures, easing testing and +development.
  • +
+

An implementor interested in building a browser in a new architecture +only needs to focus on the development of the last component – a WPE +backend. Having a backend, starting the development of a +WebKit-powered browser is already much easier than it ever was!

+

For a more detailed description of the architecture of WPE and WebKit, +check this article on the architecture of WPE.

+

OK, sounds interesting, how do I get my hands dirty?

+

If you have made it this far, you should give WPE a try!

+

We have listed several on the exploring WPE +page. From there, you will see that depending on how interested you +are in the project, your background, and what you’d like to do with +it, there are different ways!

+

It can be as easy as installing WPE directly from the most popular +Linux distributions. If you want to build WPE yourself, +you can use Yocto and if +you’d like to contribute—that’s very welcome!

+

Happy hacking!

+ + + +
+
+
+
+
+
+ + This article was written by Claudio Saavedra.

Claudio is long-time WebKit contributor from Igalia, working in different areas of WebKit, WPE, and the stack around it. +
+
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/03-wpe-graphics-architecture.html b/aperezdc/learn-discover-rework/blog/03-wpe-graphics-architecture.html new file mode 100644 index 000000000..06312477b --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/03-wpe-graphics-architecture.html @@ -0,0 +1,385 @@ + + + + + + + + + + + + WPE Graphics architecture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE Graphics architecture

+ + + + + +
+ +
+ +

Following the previous post in the series about WPE where we talked about the WPE components, this post will explain briefly the WPE graphics architecture, and how the engine is able to render HTML content into the display. If you haven’t read the previous entries in this blog post series about WPE, we recommend you to start with the first post in the series for an introduction, and then come back to this.

+

DOM + CSS = RenderTree

+

As the document is parsed, it will begin building the DOM tree and load-blocking CSS resources. At some point, possibly before the entire DOM tree is built, it’s time to draw things on the screen. The first step to render the content of a page is to perform what’s called the attachment, which is merging the DOM tree with the CSS rules, in order to create the RenderTree. This RenderTree is a collection of RenderObjects, structured into a tree, and each of these RenderObjects represent the elements in the DOM tree that have visual output. RenderObjects have the capability to render the associated DOM tree node into a surface by using the GraphicsContext class (in the case of WPE, this GraphicsContext uses Cairo to perform the rendering).

+

Once the RenderTree is created, the layout is performed, ensuring that each of the RenderObjects have their proper size and position set.

+

Going from source content to displayed content

+

It would be possible to render the content of the web page just traversing this RenderTree and painting each of the RenderObjects, but there would be problems when rendering elements that overlap each other, because the order of the elements in the RenderTree doesn’t necessarily match the order in which they must be painted in order to get the appropriate result. For example, an element with a big z-index value should be painted last, no matter its position in the RenderTree.

+

This is an example of how some HTML content is translated into the RenderTree (there are some RenderObjects missing here that are not relevant for the explanation).

+

RenderTree generated from example HTML

+

RenderLayers

+

In order to ensure that the elements of the RenderTree are rendered in the appropriate order, the concept of RenderLayer is added. A RenderLayer represents a layer in the document containing some elements that have to be rendered at the same depth (even though this is not exactly the case, you can think of each RenderLayer as a group of RenderObjects that are at a certain z-index). Each RenderObject is associated to a RenderLayer either directly or indirectly via an ancestor RenderObject.

+

RenderLayers are grouped into a tree, which is called the RenderLayer tree, and RenderLayer children are sorted into two lists: those that are below the RenderLayer, and those that are above. With this we have a structure that has grouped all the RenderObjects that have to be rendered together: they will be on top of the content that has been rendered by the RenderLayers below this one, and below the content rendered by the RenderLayers over this one.

+

There are several conditions that can decide whether a RenderLayer is needed for some element, it doesn’t necessarily needs to be due to the usage of z-index. It can be required due to transparency, CSS filters, overflow, transformations, and so on.

+

Continuing with the example, these are RenderLayers that we would get for that HTML code:

+

RenderLayer tree generated from example HTML

+

We can see that there are four RenderLayers:

+
    +
  • The root one, corresponding to the RenderView element. This is mandatory.
  • +
  • Another one corresponding to the first RenderBlock.
  • +
  • One corresponding to the RenderVideo element, because video elements always get their own RenderLayer.
  • +
  • One corresponding to the transformed RenderBlock.
  • +
+

RenderLayers have a paint method that is able to paint all the RenderObjects associated to the layer into a GraphicsContext (as mentioned, WPE uses Cairo for this). As in the previous case, it’s possible to paint the content of the page at this point just by traversing the RenderLayer tree and requesting the RenderLayers to paint their content, but in this case the result will be the correct one. Actually this is what WebKitGTK does when it’s run with accelerated compositing disabled.

+

Layer composition

+

While with the previous step we are already able to render the page contents, this approach is not very efficient, especially when the page contains animations, elements with transparency, etc. This is because in order to paint a single pixel, all the RenderLayers need to be traversed, and those that are contributing to that pixel need to be repainted (totally or partially), even if the content of those RenderLayers hasn’t changed. For example, think about an animation that’s moving an element. For each frame of that animation, the animated element needs to be repainted, but the area that was covered by the animated element in the last frame needs to be repainted as well. The same happens if there’s a translucent element on top of other content. If the translucent element changes, it needs to be repainted, but the content below the translucent element needs to be repainted as well because the blend needs to be performed again.

+

This would be much more efficient if the content that doesn’t change was somehow separated from the content that’s changing, and we could render those two types of content separately. This is where the composition stage comes into action.

+

The idea here is that we’re going to paint the RenderLayer contents into intermediate buffers, and then compose those buffers one on top of the other to get the final result. This last step is what we call composition. And it fixes the problems we mentioned with animations of transparency: animations don’t require repainting several RenderLayers. Actually moving an element just means painting one buffer with an offset during the composition. And for transparency, we just need to perform the new blending of the two buffers during the composition, but the RenderLayers of the content below the translucent element don’t need to be repainted.

+

Once we have the RenderLayer tree, we could just paint each RenderLayer in its own buffer in order to perform the composition. But this would be a waste of memory, as not every RenderLayer needs a buffer. We introduce here a new component, the GraphicsLayer.

+

GraphicsLayers are a structure used to group those RenderLayers that will render into the same buffer, and it will also contain all the information required to perform the composition of these buffers. A RenderLayer may have a GraphicsLayer associated to it if it requires its own buffer to render. Otherwise, it will render into an ancestor’s buffer (specifically, the first ancestor that has a GraphicsLayer). As usual, GraphicsLayers are structured into a tree.

+

This is how the example code would be translated into GraphicsLayers.

+

GraphicsLayer tree generated from example HTML

+

We can see that we have now three GraphicsLayers:

+
    +
  • The root one, which is mandatory. It belongs to the RenderView element, but the first RenderBlock will render into this GraphicsLayer's buffer as well.
  • +
  • The one for the RenderVideo element, as videos are updated independently from the rest of the content.
  • +
  • The one for the transformed element, as the transformed elements are updated independently from the rest of the content.
  • +
+

With this structure, now we can render the intermediate buffers of the RenderView and the transformed RenderBlock, and we don’t need to update them any more. For each frame, those buffers will be composited together with the RenderVideo buffer. This RenderVideo will be updating its buffer whenever a new video frame arrives, but it won’t affect the content of the other GraphicsLayers.

+

So now we have successfully separated the content that is changing and needs to be updated from the content that remains constant and doesn’t need to be repainted anymore, just composited.

+

Accelerated compositing and threaded accelerated compositing

+

There’s something else that be done in order to increase the rendering performance, and it’s using the GPU to perform the composition. The GPU is highly optimized to perform operations like the buffer composition that we need to do, as well as handle 3D transforms, blending, etc. We just need to upload the buffers into textures and let the GPU handle the required operations. WPE does this though the usage of the EGL and GLES2 graphics APIs. In order to perform the composition, EGL is used to create a GLES2 EGLContext. Using that context, the intermediate buffers are uploaded to textures, and then those textures are positioned and composited according to their appropriate positions. This leverages the GPU for the composition work, leaving the CPU free to perform other tasks.

+

This is why this step is called accelerated compositing.

+

But there’s more.

+

Until this point, all the steps that are needed to render the content of the page are performed in the main thread. This means that while the main thread is rendering and compositing, it’s not able to perform other tasks, like run JS code.

+

WPE improves this by using a parallel thread whose only mission is to perform the composition. You can think of it as a thread that runs a loop that composites the incoming buffers using the GPU when there’s content to render. This is what we call threaded accelerated compositing.

+

This is specially useful when there’s a video or an animation running on the page:

+
    +
  • +

    If there’s a video running in the page, in the non-threaded case, for each video frame the main thread would need to get the frame and perform the composition with the rest of the page content. In the threaded case, the video element delivers the frames directly to the compositor thread, and requests a composition to be done, without the main thread being involved at all.

    +
  • +
  • +

    If there’s an animation, in the non-threaded case, for each frame of the animation the main thread would need to calculate the animation step and then perform the composition of the animated element with the rest of the page content. In the threaded case, the animation is passed to the compositor thread, and the animation steps are calculated on that thread, triggering a composition when needed. The main thread doesn’t need to do anything besides starting the animation.

    +
  • +
+

It would take another post to explain in detail how the threaded accelerated composition is implemented on WPE, but if you’re curious about it, know that WPE uses an specialization of the GraphicsLayer called CoordinatedGraphicsLayer in order to implement this. You can use that as an starting point.

+

So this is the whole process that’s performed in WPE in order to display the content of a page. We hope it’s useful!

+

Future

+

At Igalia we’re constantly evolving and improving WPE, and have ongoing efforts to improve the graphics architecture as well. Besides small optimizations and refactors here and there, the most important goals that we have are:

+
    +
  • +

    Add a GPU process. Currently the EGL and GLES2 operations are performed in the web process. As there can be several web processes running when several pages are open, this means the browser can be using a lot of EGL contexts in total, which is a waste of memory. Also, all these processes could potentially be affected by errors, leaks, etc., in the code that handles the GPU operations. The idea is to centralize all the GPU operations into a single process, the GPU one, so all the web processes will issue paint requests to the GPU process instead of painting their content themselves. This will reduce the memory usage and improve the software’s robustness.

    +
  • +
  • +

    Remove CPU rasterization and paint all the content with GLES2. Using the CPU to paint the layer contents with cairo is expensive, especially in platforms with slow CPUs, as embedded devices sometimes do. Our goal here is to completely remove the cairo rasterization and use GLES2 calls to render the 2D primitives. This will greatly improve the rendering performance.

    +
  • +
  • +

    Use ANGLE to perform WebGL operations. WPE currently implements the WebGL 1.0 specification through direct calls to GLES2 methods. We are changing this in order to perform the operations using ANGLE, which will allow WPE to support the WebGL 2.0 specification as well.

    +
  • +
+

But what about the backends?

+

In the previous post there was a mention of backends that are used to integrate with the underlying platform. How is this relevant to the graphics architecture?

+

Backends have several missions when it comes to communicate with the platform, but regarding graphics, they have two functions to achieve:

+
    +
  • +

    Provide a platform dependent surface that WPE will render to. This can be a normal buffer, a Wayland buffer, a native window, or whatever, as long as the system EGL implementation allows creating an EGLContext to render to it.

    +
  • +
  • +

    Process WPE indications that a new frame has been rendered, performing whatever tasks are necessary to take that frame to the display. Also notify WPE when that frame was been displayed.

    +
  • +
+

The most common example of this is a Wayland backend, which provides a buffer to WPE for rendering. When WPE has finished rendering the content, it notifies the backend, which sends the buffer to the Wayland compositor, and notifies back to WPE when the frame has been displayed.

+

So, whatever platform you want to run WPE on, you need to have a backend providing at least these capabilities.

+

Final thoughts

+

This was a brief overview of how WPE rendering works, and also what are the major improvements we’re trying to achieve at Igalia. We’re constantly putting in a lot of work to keep WPE the best web engine available for embedded devices.

+

If this post got you interested in collaborating with WPE development, or you are in need of a web engine to run on your embedded device, feel free to contact us. We’ll be pleased to help!

+

We also have open positions at the WebKit team at Igalia. If you’re motivated by this field and you’re interested in developing your career around it, you can apply here!

+ + + +
+
+
+
+
+
+ + This article was written by Miguel Gómez.

Miguel has been contributing to WebKit and WPE for almost ten years now, focusing specially on the graphics part of the code. +
+
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/04-wpe-networking-overview.html b/aperezdc/learn-discover-rework/blog/04-wpe-networking-overview.html new file mode 100644 index 000000000..23616f003 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/04-wpe-networking-overview.html @@ -0,0 +1,343 @@ + + + + + + + + + + + + WPE Networking Overview + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE Networking Overview

+ + + + + +
+ +
+ +

At the heart of any browser engine is networking: Connecting with services and other users. Unlike other engines, WebKit approaches this more abstractly by leaving a large portion of the networking up to individual ports. This includes network protocols such as HTTP, WebSockets, and WebRTC. The upside to this approach is a higher level of integration with the system-provided libraries and features so WebKit will behave similarly to other software on the platform often with more centralized configuration.

+

Due to this abstraction there are a few independent layers that make up the networking stack of WPE. In this post, I’ll break down what each layer accomplishes as well as give some insight into the codebase’s structure.

+

Networking Layers

+
+ WebKit Network Layers +
+

WebKit

+

Before we get into the libraries used for WPE, let’s discuss WebKit itself. Despite abstracting out a lot of the protocol handling, WebKit itself still needs to understand a lot of fundamentals of HTTP.

+

WebCore (discussed in WPE Overview) understands HTTP requests, headers, and cookies, as they are required to implement many higher-level features. What it does not do is the network operations, most parsing, or on-disk storage. In the codebase, these are represented by ResourceRequest and ResourceResponse objects, which map to general HTTP functionality.

+

NetworkProcess

+

A core part of modern web engine security is the multi-process model. In order to defend against exploits, each website runs in its own isolated process that does not have network access. In order to allow for network access, they must talk over IPC to a dedicated NetworkProcess, typically one per browser instance. The NetworkProcess receives a ResourceRequest, creates a NetworkDataTask with it to download the data, and responds with a ResourceResponse to the WebProcess which looks like this:

+
+ WebKit Network Flowchart +
+

WPE

+

WPE implements the platform-specific versions of the classes above as ResourceRequestSoup and NetworkDataTaskSoup, primarily using a library called libsoup.

+

The libsoup library was originally created for the GNOME project’s email client and has since grown to be a very featureful HTTP implementation, now maintained by Igalia.

+

At a high level, the main task that libsoup does is manage connections and queued requests to websites and then efficiently streams the responses back to WPE. Properly implementing HTTP is a fairly large task, and this is a non-exhaustive list of features it implements: HTTP/1.1, HTTP/2, WebSockets, cookies, decompression, multiple authentication standards, HSTS, and HTTP proxies.

+

On its own, libsoup is really focused on the HTTP layer and uses the GLib library to implement many of its networking features in a portable way. This is where TCP, DNS, and TLS are handled. It is also directly used by WebKit for URI parsing and DNS pre-caching.

+

Using GLib also helps standardize behavior across modern Linux systems. It allows configuration of a global proxy resolver that WebKit, along with other applications, can use.

+

TLS

+

Another unique detail of our stack is that TLS is fully abstracted inside of GLib by a project called GLib-Networking. This project provides multiple implementations of TLS that can be chosen at runtime, including OpenSSL and gnutls on Linux. The benefit here is that clients can choose the implementation they prefer—whether for licensing, certification, or technical reasons.

+

Usage

+

Let’s go step by step to see some real world usage. If we call webkit_web_view_load_uri() for a new domain it will:

+
    +
  1. Create a ResourceRequest in WebCore that represents an HTTP request with a few basic headers set. +
      +
    • ResourceRequestSoup will create its own internal representation for the request using soup_message_new_for_uri().
    • +
    +
  2. +
  3. This is passed to the NetworkProcess to load this request as a NetworkDataTask.
  4. +
  5. NetworkDataTaskSoup will send/receive the request/response with soup_session_send() which queues the message to be sent.
  6. +
  7. libsoup will connect to the host using GSocketClient which does a DNS lookup and TCP connection. +
      +
    • If this is a TLS connection GTlsClientConnection will use a library such as gnutls to do a TLS handshake.
    • +
    +
  8. +
  9. libsoup will write the HTTP request and read from the socket parsing the HTTP responses eventually returning the data to WebKit.
  10. +
  11. WebKit receives this data, along with periodic updates about the state of the request, and sends it out of the NetworkProcess back to the main process as a ResourceResponse eventually loading the data in the WebProcess.
  12. +
+

Summary

+

In conclusion, WebKit provides a very flexible abstraction for platforms, and WPE leverages mature system libraries to provide a portable implementation. It has many layers, but they are all well organized and suited to their tasks.

+

If you are working with WPE and are interested in collaborating, feel free to contact us. If you are interested in working with Igalia, you can apply here.

+ + + +
+
+
+
+
+
+ + This article was written by Patrick Griffis.

Patrick has been contributing to WebKit since 2018 and does work around networking, security, and the platform libraries WPE uses. +
+
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/04-wpe-qa-tooling.html b/aperezdc/learn-discover-rework/blog/04-wpe-qa-tooling.html new file mode 100644 index 000000000..90eb4af63 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/04-wpe-qa-tooling.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + WPE QA and tooling + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE QA and tooling

+ + + + + +
+ +
+ +

In the previous posts, my colleagues Claudio and Miguel wrote respectively about the major components of the project and, specifically, the graphics architecture of WPE. Today, you’ll see our efforts to improve the quality of both WPE and the experience of working and using it. While the previous entries in this blog post series about WPE aren’t necessarily required in order to read this one, we recommend you to starting with the first post in the series.

+

Automated testing

+

Testing is an essential part of the WebKit project, primarily due to the large number of use cases covered by HTML/CSS/Javascript specifications and the need for the project to work correctly in a wide range of configurations.

+

As an official port of WebKit, WPE uses the former’s testing infrastructure, based on BuildBot. There are two primary servers, one working as an early warning system by testing the patches before they’re committed to the main repository, and another for more extensive testing after accepting the incoming changes.

+
+build.webkit.org screenshot +
+
+

Currently, the WPE testing bots target debug and release configurations using the Flatpak SDK (more on it later in this article) on 64bit Intel-based Linux Debian systems. We have plans of adding bots running on Raspberry Pi boards in the future. Alongside nightly testing, we keep builder bots covering the Ubuntu LTS/Debian versions we support. After August 14th, 2022, the earliest supported versions will be Ubuntu 20.04 LTS and Debian 11 (Bullseye).

+

Test suites

+

Initially, the WPE builder bots build WPE in both release and debug configurations and feed the built packages into the tester bots, which run some test suites according to their configuration, each suite focused in one aspect of the project:

+
    +
  • Layout tests: The main suite tests whether WebKit correctly renders web pages and its implementation of web APIs. This suite comprises both WebKit’s test cases and the imported tests from Web Platform Test. At the time of writing, it runs over 50,000 test cases.
  • +
  • API Tests: This suite tests the API provided to developers by WebKit and its ports. For example, this step tests the WPE API used in Cog.
  • +
  • Javascriptcore tests: Covers the JavascriptCore engine, running WebKit’s tests alongside test262, the reference test suite for JS/ECMAScript implementations.
  • +
  • WebDriver: Tests from Selenium and W3C WebDriver APIs for browser automation.
  • +
  • Other small suites: Tests for WebKit’s tooling components.
  • +
+

Due to a large number of tests and the fast development of both WebKit and the specifications—it’s not uncommon to have dozens of daily commits touching dozens of tests—it’s hard to keep the testing bots green.

+

For example, while we try to make the tests work on all platforms, many old layout tests use the -expected.txt scheme, where the render tree is printed in a textual format with the text sized in pixels for every node. While this works fine in most cases, many tests have minor differences between the expected result in the Mac platform and the WPE/GTK platform. One of the causes is the font rendering particularities of each port.

+

Thankfully, this situation improved significantly since the beginning of the project. Among the efforts, many tests are now using a “reference” HTML file, which are HTML files that render to the same expected result as the test case, so both the test case and the reference will use the same font rendering scheme and can be compared pixel by pixel.

+

Building and running WPE

+

This section focuses on the experience of building and running WPE in a regular Linux x86–64 system. In a future post, we’ll cover building for and running on embedded devices.

+

Checking out the code

+

Recently, WebKit moved to GitHub, so you can clone it directly from there:

+
$ mkdir ~/dev
+$ git clone https://github.com/WebKit/WebKit.git
+
+

Note: Due to the size of the project history, you might want to use --depth=1 to clone a single revision, followed by git pull --unshallow from inside the cloned repository to fetch the history if needed.

+

There’s more information in WebKit’s GitHub wiki about setting up the git checkout for contributing code back to WebKit. It’ll set up some git hooks to do some tasks required by the project, like formatting the commit message and automatically linking the pull request to the Bugzilla issue.

+

All commands in the following sections are run from inside the cloned repository.

+

Updating the dependencies (aka The WebKit Flatpak SDK)

+

Like most complex software projects, WebKit has a reasonably extensive list of dependencies. Keeping a reference set of their versions frozen during development is desirable to make it easier to reproduce bugs and test results. In older times, WPE and WebKitGTK used JHBuild to freeze a set of dependencies. While this worked for a long time, it did not cover all dependencies. Sometimes, there could be minor differences in the layout tests between the reference test bots and the developer machine due to some dependency resolved by the host system outside JHBuild.

+

To improve reproducibility, since 2020, WPE and WebKitGTK have been using an SDK based on Flatpak (kudos to my colleagues Thibault Saunier and Philippe Normand), with a much more extensive dependency coverage and isolation from the host system. Alongside the dependencies, it ships some tools like rr and supports tools like clangd. Almost all bots enable this SDK, the exception being the LTS/Stable bots; as in the latter, we want to build with the already available packages in each distribution.

+
$ ./Tools/Scripts/update-webkit-flatpak
+
+

The command will set up the local flatpak repository at ./WebKitBuild/UserFlatpak with the downloaded SDK and create some bundled icecc toolchains. This enables distributed builds in local networks…

+

Building

+

Once the SDK download finishes, you can use the helper script ./Tools/Scripts/build-webkit, which wraps the cmake command with some pre-set options commonly used in normal development, like enabling developer-only features usually disabled in regular builds. Manually invoking cmake is possible, although usually only when you want more control over the build. To build WPE in release mode, use:

+
$ ./Tools/Scripts/build-webkit --release --wpe
+
+

Optionally, you can pass it multiple arguments to be fed directly to make or cmake with the switches --makeargs=... and --cmakeargs=..., respectively. For example, --makeargs="-j8" will limit make to 8 parallel jobs and --cmakeargs="-DENABLE_GAMEPAD=1" will enable gamepad support (requires libmanette, bundled in the SDK).

+

The first build might take a while (up to almost one hour in a regular laptop). Fortunately, the SDK uses ccache to avoid recompiling the same object files, so subsequent builds without significant changes usually are faster. For more info on speeding the build, check the wiki.

+

Running the browser (Cog)

+

To run Cog, the reference WPE browser, you need a Wayland server, which is common in most Linux systems nowadays.

+
$ ./Tools/Scripts/run-minibrowser --wpe --release https://wpewebkit.org/
+
+
+Cog with GTK4 shell screenshot +
+
+

Running some tests

+

To run the API tests, which reside in Tools/TestWebKitAPI/Tests/, you can use the following command:

+
$ ./Tools/Scripts/run-wpe-tests --release --display-server=headless
+
+

Other test suites:

+
    +
  • Layout tests: ./Tools/Scripts/run-wpe-tests
  • +
  • JSC tests: ./Tools/Scripts/run-javascriptcore-tests
  • +
  • WebDriver: ./Tools/Scripts/run-webdriver-tests
  • +
+

As stated when we described the test suites, the main challenge in testing is keeping up with the fast pace of development, as it’s not uncommon to have some revisions updating hundreds of tests.

+

Contributing code to WPE

+

After hacking locally, you can submit your changes following the workflow listed in the WebKit wiki.

+

Testing WPE in the wild

+

If you don’t want to build your WPE build or image, there are some options to get a taste of WPE listed on our website.

+

Final thoughts

+

With this, we conclude this brief overview of WPE automated testing and the main tools we use in our daily work with WPE. In future posts in this area we’ll go deeper in other subjects like testing on embedded boards and debugging practices.

+

If this post got you interested in collaborating with WPE development, or you are in need of a web engine to run on your embedded device, feel free to contact us. We’ll be pleased to help!

+

We also have open positions at the WebKit team at Igalia. If you’re motivated by this field and you’re interested in developing your career around it, you can apply here!

+ + + +
+
+
+
+
+
+ + This article was written by Lauro Moura.

Lauro is webkit contributor from Igalia, working mainly on QA. +
+
+
+
+
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/05-new-svg-engine.html b/aperezdc/learn-discover-rework/blog/05-new-svg-engine.html new file mode 100644 index 000000000..a79b4171a --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/05-new-svg-engine.html @@ -0,0 +1,429 @@ + + + + + + + + + + + + Status of the new SVG engine in WebKit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Status of the new SVG engine in WebKit

+ + + + + +
+ +
+ + +

In the previous posts of this series, various aspects of the WPE port architecture were covered. Besides maintaining and advancing the WPE port according to our customers’ needs, Igalia also participates in the development of the WebCore engine itself, which is shared by all WebKit ports. WebCore is the part of the browser engine that does the heavy lifting: it contains all functionality necessary to load, parse, lay out, and paint Web content.

+

Since late 2019, Igalia has been working on a new SVG engine, dubbed Layer-Based SVG Engine (LBSE), that will unify the HTML/SVG rendering pipelines in WebCore. This will resolve long-standing design issues of the “legacy” SVG engine and unlock a bunch of new exciting possibilities for Web developers to get creative with SVG. Hardware-accelerated compositing, driven by CSS transform animations, 3D perspective transformations for arbitrary SVG elements, CSS z-index support for all SVG graphics elements, and proper coverage rectangle computations and repaints are just a few highlights of the capabilities the future SVG engine will offer.

+

In this article, an overview is given about the problems that LBSE aims to solve, and the importance of a performant, well-integrated SVG engine especially for the embedded market. Finally, the current upstreaming status is summarized including an outlook for the year 2023.

+

LBSE in a nutshell

+

Before diving into the technical topics, let’s take a few minutes to recap the motivations behind the LBSE work, and explain the importance of a well-integrated, performant SVG engine in WebKit, especially for the embedded market.

+

Motivation

+

Many of our customers build products that utilize a Linux-powered embedded device, typically using non-x86 CPUs, custom displays with built-in input capabilities (e.g., capacitive touchscreens) often without large amounts of memory or even permanent storage. The software stack for these devices usually consists of a device-specific Linux distribution, containing the proprietary network, GPU, and drivers for the embedded device - the vendor-approved “reference distribution”.

+

No matter what type of product is built nowadays, many of them need an active Internet connection, to e.g. update their software stack and access additional information. Besides the UI needed to control the product, a lot of additional dialogs, wizards and menus have to be provided to be able to alter the devices’ “system settings”, such as date/time information, time zones, display brightness, WiFi credentials, Bluetooth settings, and so on.

+

A variety of toolkits exist that assist in writing GUI applications for embedded devices, with a few open-source projects on the market, as well as commercial products providing closed-source, proprietary solutions, that specifically target the embedded market and are often optimized for specific target device families, e.g. certain ARM processors / certain GPUs.

+

If the need arises, not only to communicate with the Internet but also to display arbitrary Web content, WPE comes into play. As presented in the first post in this series, the flexible and modular WPE architecture makes it an ideal choice for any product in the embedded market that needs Web browsing abilities. The GLib/C-based WPE public APIs allow for customization of the browsing engine and its settings (react on page load/input events, inject custom JS objects, modify style sheets, etc.) and allow the embedder to control/monitor all relevant Web browsing-related activities.

+

With a full-fledged Web engine at hand, one might ponder if it is feasible to replace the whole native GUI stack with a set of Web pages/applications, and only use WPE to paint the UI in full-screen mode, thus migrating away from native GUI applications — following the trend in the desktop market. The number of organizations migrating native GUI applications into Web applications is rapidly increasing, since there are compelling reasons for Web apps: “write once, use everywhere”, avoiding vendor lock-in, easy/reliable deployment and update mechanisms, and efficient test/development cycles (local in-browser testing!).

+

Due to the sheer capabilities of the Web platform, it has grown to an environment in which any kind of application can be developed – ranging from video editing applications, big data processing pipelines to 3D games, all using JS/WebAssembly in a browser, presented using HTML5/CSS. And as an important bonus: in 2023, it’s much easier to find and attract talented Web developers and designers that are fluent in HTML/CSS/JS, than those that are comfortable designing UI applications in proprietary, closed-source C/C++ frameworks.

+

A long-term customer, successfully using WPE in their products, had very similar thoughts and carried out a study, contracting external Web designers to build a complete UI prototype using Web technology. The mock-up made extensive use of SVG2, embedded inline into HTML5 documents or via other mechanisms (CSS background-image, etc.). The UI fulfilled all expectations and worked great in Blink and WebKit-based browsers, delivering smooth animations. On the target device, however, the performance was too slow, far away from usable. A thorough analysis revealed that large parts of the Web page were constantly repainted, and layout operations were repeated for every frame when animations were active. The accumulated time to display a new frame during animations was in the order of a few milliseconds on desktop machines, but took 20-25 milliseconds on the target device, making smooth 60 FPS animations impossible.

+

The poor performance is not the result of shortcomings in the WPE port of WebKit: when replacing the aforementioned animated SVG document fragments with HTML/CSS “equivalents” (e.g. simulating SVG circles with CSS border-radius tricks) the performance issue vanisheed. Why? SVG lacks support for a key feature called accelerated compositing, which has been available for HTML/CSS since its introduction more than a decade ago. This compositing heavily relies on the Layer Tree, which is unaware of SVG. Extending the Layer Tree implementation to account for SVG is the main motivation for LBSE.

+

If you are unfamiliar with the concepts of Render Tree and Layer Tree, you might want to read the “Key concepts” section of an earlier LBSE design document, which provides an overview of the topic.

+

Prototyping

+

The LBSE effort began in October 2019 as a research project, to find out an ideal design for the SVG Render Tree, that allows SVG to re-use the existing Layer Tree implementation with minimal changes. The aim for LBSE is to share as much code as possible with the HTML/CSS implementation, removing the need for things like SVG specific clipping/masking/filter code and disjoint HTML counterparts for the same operations.

+

After an extensive phase of experimentation, two abandoned approaches, and a long time spent on regression fixing, the LBSE prototype was finally finished after almost two years of work. It passed all 60k+ WebKit layout tests and offered initial support for compositing, 3D transformations, z-index, and more. The intent was to prove that we can reach feature parity with the legacy SVG engine and retrieve the very same visual results, pixel-by-pixel (except for progressions of LBSE). Shortly after the finalization, the prototype was presented during the WebKit contributors meeting in 2021.

+

As the name “prototype” indicates, LBSE was not ready for integration into WebKit at this point. It replaced the old SVG engine with a new one, resulting in a monolithic patch exceeding 650 KB of code changes. External contributions generally demand small patches, with ChangeLogs, tests, etc. – no conscientious reviewer in any company would approve a patch replacing a core component of a browser engine in one shot. Splitting up into small pieces is also not going to work, since SVG needs to be kept intact upstream all the time. Duplicating the whole SVG engine? Not practicable either. With that problem in mind, a fruitful discussion took place with Apple during and after the WebKit contributors meeting: a realistic upstreaming strategy was defined - thanks Simon Fraser for suggesting a pragmatic approach!

+

The idea is simple: bootstrap LBSE in parallel to the legacy SVG engine. Upstream LBSE behind a compile-time flag and additionally a runtime setting. This way the LBSE code is compiled by the EWS bots during upstreaming (rules out bit-rot) and we gain the ability to turn LBSE on, selectively, from our layout tests – very useful during early bootstrapping. For WebKit, that strategy is the best – for LBSE another major effort is necessary: moving from a drop-in replacement approach to a dual-stack SVG engine: LBSE + legacy built into the same WebKit binaries. At least the timing was good since a split-up into small pieces was needed anyhow for upstreaming. Time to dissect the huge branch into logical, atomic pieces with proper change logs.

+

Before we jump to the upstreaming status, one question should be answered, that came up during the WebKit contributors meeting and also during various discussions: why don’t you just fix the existing SVG engine and instead propose a new one - isn’t that too risky for Web compatibility?

+

Why don’t you fix the existing SVG engine?

+LBSE logo +

There was no initial intention to come up with a new SVG engine. During LBSE development it became apparent how much SVG-specific code can be erased when unifying certain aspects with HTML/CSS. After carrying out the integration work, layout/painting and hit-testing work fundamentally different than before. Since that time, LBSE is labeled as a “new SVG engine”, even though the SVG DOM tree part remained almost identical. Web compatibility will improve with LBSE: a few long-standing, critical interop issues with other browser vendors are solved in LBSE. Therefore, there are no concerns regarding Web compatibility risks from our side.

+

To answer the initial question, whether it is possible to fix the existing SVG engine to add layer support without adding a “new” SVG engine in parallel? Short answer: no.

+

In the following section, it is shown that adding support for layers implies changing the class hierarchy of the SVG render tree. All SVG renderers need to inherit from RenderLayerModelObject – a change like this cannot be split up easily into small, atomic pieces. Improving the design is difficult if there’s a requirement to keep the SVG engine working all the time upstream: all patches in that direction end up being large as many renderers have to be changed at the same time. Having distinct, LBSE-only implementations of SVG renderers, independent of the legacy engine, leaves a lot of freedom to strive for an optimal design, free of legacy constraints, and avoids huge patches that are impossible to review.

+

Let’s close the introduction and review the upstreaming status, and discuss where we stand today.

+

Upstreaming progress

+

Planning

+

To unify the HTML/CSS and SVG rendering pipelines there are two possible paths to choose from: teach the Layer Tree about the SVG Render Tree and its rendering model, or vice-versa. For the latter path, the HTML/CSS-specific RenderLayer needs to split into HTML/SVG subclasses and a base class, that is constructible from non-RenderLayerModelObject-derived renderers. The layer management code currently in RenderLayerModelObject would need to move into another place, and so forth. This invasive approach can potentially break lots of things. Besides that danger, many places in the layer/compositing system would need subtle changes to account for the specific needs of SVG (e.g. different coordinate system origin/convention).

+

Therefore the former route was chosen, which requires transforming the SVG render tree class hierarchy, such that all renderers that need to manage layers derive from RenderLayerModelObject. Using this approach support, for SVG can be added to the layer/compositing system in a non-invasive manner, with only a minimum of SVG-specific changes. The following class hierarchy diagrams illustrate the planned changes.

+
+
+
Legacy design (click to enlarge)
+Visualization of the legacy SVG render tree class hierarchy in WebCore +
+
+
LBSE design (click to enlarge)
+Visualization of the LBSE SVG render tree class hierarchy in WebCore +
+
+

The first graph shows the class hierarchy of the render tree in the legacy SVG engine: RenderObject is the base class for all nodes in the render tree. RenderBoxModelObject is the common base class for all HTML/CSS renderers. It inherits from RenderLayerModelObject, potentially allowing HTML renderers to create layers. For the SVG part of the render tree, there is no common base class shared by all the SVG renderers, for historical reasons.

+

The second graph shows only the SVG renderers of the LBSE class hierarchy. In that design, all relevant SVG renderers may create/destroy/manage layers, via RenderLayerModelObject. More information regarding the challenges can be found in the earlier LBSE design document.

+

Report

+

The upstreaming work started in December 2021, with the introduction of a new layer-aware root renderer for the SVG render subtree: RenderSVGRoot. The existing RenderSVGRoot class was renamed to LegacyRenderSVGRoot (as well as any files, comments, etc.) and all call sites and build systems were adapted. Afterward, a stub implementation of a layer-aware RenderSVGRoot class was added and assured that the new renderer is created for the corresponding SVG DOM element if LBSE is activated.

+

That process needs to be repeated for all SVG renderers that have substantially changed in LBSE and thus deserve an LBSE-specific upstream implementation. For all other cases, in-file #if ENABLE(LAYER_BASED_SVG_ENGINE) ... #endif blocks will be used to encapsulate LBSE-specific behavior. For example, RenderSVGText / RenderSVGInlineText are almost identical in LBSE downstream, compared to their legacy variants; thus, they are going to share the renderer implementation between the legacy SVG engine and LBSE.

+

The multi-step procedure was repeated for RenderSVGModelObject (the base class for SVG graphics primitives), RenderSVGShape, RenderSVGRect, and RenderSVGContainer. Core functionality such as laying out children of a container, previously hidden in SVGRenderSupport::layoutChildren() in the legacy SVG engine, now lives in a dedicated class: SVGContainerLayout. Computing the various SVG bounding boxes - object/stroke/decorated bounding box - is precisely specified in SVG2 and got a dedicated implementation as the SVGBoundingBoxComputation class, instead of fragmenting the algorithms all over the SVG render tree as in the legacy SVG engine.

+

By February 2022, enough functionality was in place to construct the LBSE render tree for basic SVG documents, utilizing nested containers and rectangles as leaves. While this doesn’t sound exciting at all, it provided an ideal environment to implement support for SVG in the RenderLayer-related code - before converting all SVG renderers to LBSE, and before implementing painting in the SVG renderers.

+

Both RenderLayer and RenderLayerBacking query CSS geometry information such as border box, padding box, or content box from their associated renderer, which is expected to be a RenderBox in many places. This is incorrect for SVG: RenderSVGModelObject inherits from RenderLayerModelObject, but not from RenderBox since it doesn’t adhere to the CSS box model. Various call sites cast the associated renderer to RenderBox to call e.g. borderBoxRect() to retrieve the border box rectangle. There are similar accessors in SVG to query the geometry, but there is no equivalent of a border box or other CSS concetps in SVG. Therefore, we extended RenderSVGModelObject to provide a CSS box model view of an SVG renderer, by offering methods such as borderBoxRectEquivalent() or visualOverflowRectEquivalent() that return geometry information in the same coordinate system using the same conventions as their HTML/CSS counterparts.

+

We also refactored RenderLayer to use a proxy method - rendererBorderBoxRect() - that provides access to the borderBoxRect() for HTML and the borderBoxRectEquivalent() for SVG renderers, and the same fix to RenderLayerBacking. With these fixes in place, support to position and size SVG layers and to compute overflow information could be added – both pre-conditions to enable painting.

+

By March 2022, LBSE was able to paint basic SVG documents - a major milestone for the bootstrapping process, demonstrating that the layer painting code was functional for SVG. It was time to move on to transformations: implementing RenderSVGTransformableContainer (e.g. <g> elements with a non-identity transform attribute or CSS transform property) and CSS/SVG transform support for all other graphics primitives, utilizing the RenderLayer-based CSS Transform implementation. As preparation, the existing code was reviewed and cleaned up: transform-origin computation was decoupled from CTM computation (CTM = current transformation matrix, see CSS Transforms Module Level 1) and transform-box computations were unified in a single place.

+

In April 2022, 2D transforms were enabled and became fully functional a few weeks later. Besides missing compositing support upstream, downstream work showed that enabling 3D transforms for SVG required fixing a decade-old bug that made the computed perspective transformation dependent on the choice of transform-origin. That became apparent when testing the layer code with SVG, which uses different default values for certain transform-related CSS properties than HTML does: transform-box: view-box and transform-origin: 0 0 are the relevant defaults for SVG, referring to the top-left corner of nearest SVG viewport vs. the center of the element in HTML.

+

By May 2022, the legacy SVG text rendering code was altered to be usable for LBSE as well. At this point, it made sense to run layout tests using LBSE. Previously most tests were expected to fail, as most either utilize text, paths, or shapes, and sometimes all three together. LBSE render tree text dumps (dumping the parsed render tree structure in a text file) were added for all tests in the LayoutTests/svg subdirectory, as well as a new pixel test baseline (screenshots of the rendering as PNGs), generated using the legacy SVG engine, to verify that LBSE produces pixel-accurate results. All upcoming LBSE patches are expected to change the expected layout test result baseline, and/or the TestExpectations file, depending on the type of patch. This will ease the reviewing process a lot for future patches.

+

To further proceed, a test-driven approach was used to prioritize the implementation of the missing functionality. At that time, missing viewBox support for outer <svg> elements was causing many broken tests. The effect of the transformation induced by the viewBox attribute, specified on outer <svg> elements, cannot be implemented as an additional CSS transformation applied to the outermost <svg> element, as that would affect the painted dimensions of the SVG document, which are subject to the CSS width/height properties and the size negotiation logic only. The viewBox attribute is supposed to only affect the visual appearance of the descendants, by establishing a new local coordinate system for them. The legacy SVG engine manually handled the viewBox-induced transformation in various places throughout LegacyRenderSVGRoot, to only affect the painting of the descendants and not e.g. the position/dimension of the border surrounding the <svg>, if the CSS border property is specified. In LBSE, transformations are handled on RenderLayer-level and not in the renderers anymore.

+

By July 2022, after testing different approaches, a proper solution to add viewBox support was upstreamed. The chosen solution makes use of another CSS concept that arises in the context of generated content: “anonymous boxes”. The idea is to wrap the direct descendants of RenderSVGRoot in an anonymous RenderSVGViewportContainer (“anonymous” = no associated DOM element) and apply the viewBox transformation as a regular CSS transformation on the anonymous renderer. With that approach, LBSE is left with just a single, unified viewBox implementation, without error-prone special cases in RenderSVGRoot, unlike the legacy SVG engine which has two disjoint implementations in LegacyRenderSVGViewportContainer and LegacyRenderSVGRoot.

+

After the summer holidays, in August 2022, the next major milestone was reached: enabling compositing support for arbitrary SVG elements, bringing z-index support, hardware-accelerated compositing and 3D transforms to SVG. This time all lessons learned from the previous LBSE prototypes were taken into account, resulting in a complete compositing implementation, that works in various scenarios: different transform-box / transform-origin combinations, inline SVG enclosed by absolute/relative positioned CSS boxes and many more, all way more polished than in the “final” LBSE prototype.

+

The aforementioned patch contained a fix for a long-standing bug (“Composited elements appear pixelated when scaled up using transform”), that made composited elements look blurry when scaling up with a CSS transform animation. The so-called “backing scale factor” of the associated GraphicLayers (see here for details about the role of GraphicLayer in the compositing system) never changes during the animation. Therefore, the rendered image was scaled up instead of re-rendering the content at the right scale. LBSE now enforces updates of that scale factor, to avoid blurry SVGs. The fix is not activated yet for HTML as that requires more thought - see the previously-linked bug report for details.

+

With all the new features in place and covered by tests, it was time to finish the remaining SVG renderers: RenderSVGEllipse, RenderSVGPath and RenderSVGViewportContainer (for inner <svg> elements), RenderSVGHiddenContainer, RenderSVGImage, and RenderSVGForeignObject. A proper <foreignObject> implementation was lacking in WebKit for 15+ years, due to the fundamental problem that the layer tree was not aware of the SVG subtree. The LBSE variant of RenderSVGForeignObject looks trivial, yet offers a fully compatible <foreignObject> implementation - for the first time without issues with non-static positioned content as a direct child of <foreignObject>, at least a few weeks later after it landed.

+

Returning to the test-driven approach, the next best target to fix was text rendering, which was working but not pixel-perfect. The legacy SVG engine takes into account the transformation from the text element up to the topmost renderer when computing the effective “on-screen” font size used to select a font for drawing/measuring, during layout time. LBSE needed a way to calculate the CTM for a given SVG renderer, up to a given ancestor renderer (or root), taking into account all possible transformation scenarios, including CSS transform, translate, rotate, SVG transform attribute, shifts due to transform-origin, perspective transformations, and much more. The same functionality is required to implement getCTM() / getScreenCTM().

+

By the end of August 2022, SVGLayerTransformComputation was added that re-used the existing mapLocalToContainer() / TranformState API to obtain the CTM. The CTM construction and ancestor chain walk - to accumulate the final transformation matrix - is performed by mapLocalToContainer() and no longer needs a special, incomplete SVG approach: the existing general approach now works for SVG too.

+

September 2022 was mostly devoted to bug fixes related to pixel-snapping. Outermost <svg> elements were not always enforcing stacking contexts and failed to align to device pixels. All other elements behaved fine with respect to pixel snapping (not applied for SVG elements) unless compositing layers were active. In that case, a RenderLayerBacking code path was used that unconditionally applied pixel-snapping - avoid that for SVG.

+

By October 2022 LBSE could properly display SVGs embedded into HTML host documents via <object> elements – the size negotiation logic failed to take into account the LBSE-specific renderers before. CSS background-image / list-image / HTML <img> / etc. were fixed as well. Zooming and panning support were implemented and improved compared to the legacy engine. Along the way an important bug was fixed, one that other browsers had already fixed back in 2014. The bug caused percentage-sized documents (e.g. width: 100%; height: 100%) that also specify a viewBox to always keep the document size, regardless of the zoom level. Thus, upon zooming, only the stroke width enlarged, but not the boundaries of the document, and thus scrollbars never appeared.

+

Over the following weeks, text-related issues had to be fixed, which were responsible for a bunch of the remaining test issues. Transformed text did not render, which turned out to be a simple mistake. More tests were upstreamed, related to compositing and transformations. More test coverage revealed that transform changes were not handled consistently – it took a period of investigation to land a proper fix. SVG transform / SMIL <animateMotion> / SMIL <animateTransform> / CSS transform changes are now handled consistently in LBSE, leading to proper repaints, as expected.

+

Transformation support can be considered complete and properly handled both during the painting and layout phases. Dynamic changes at runtime are correctly triggering invalidations. However, the Web-exposed SVG DOM API that allows querying the transformation matrices of SVG elements, such as getCTM() and getScreenCTM(), was still missing. By November 2022 a complete implementation was upstreamed, that utilized the new SVGLayerTransformComputation class to construct the desired transformation matrices. This way the same internal API is used for painting/layout/hit-testing and implementing the SVG DOM accessors.

+

By December 2022 LBSE was in a good shape: most important architectural changes were upstreamed and the most basic features were implemented. The year closed with a proposed patch that will avoid re-layout when an element’s transform changes. The legacy SVG engine always needs a re-layout if transform changes, as the size of each ancestor can depend on the presence of transformations on the child elements – a bad design decision two decades ago that LBSE will resolve. Only repainting should happen, but no layouts, in LBSE.

+

Let’s move on to 2023, and recap what’s still missing in LBSE.

+

Next steps

+

Besides fixing all remaining test regressions (see LayoutTests/platform/mac-ventura-wk2-lbse-text/TestExpectations) “SVG resources” are missing in LBSE. That includes all “paint servers” and advanced painting operations: there is no support for linear/radial gradients, no support for patterns, and no support for clipping/masking and filters.

+

From the painting capabilities, LBSE is still in a basic shape. However, this was intentional, since a lot of the existing code for SVG resource handling is no longer needed in LBSE. Clipping/masking and filters will be handled via RenderLayer, reusing the existing HTML/CSS implementations. Temporary ImageBuffers are no longer needed for clipping, and thus there is no need to cache the “per client” state in the resource system (e.g. re-using the cached clipping mask for repainting). This will simplify the implementation of the “SVG resources” a lot.

+

Therefore the first task in 2023 is to implement clipping, then masking, gradients, patterns, and as the last item, filters, since they require a substantial amount of refactoring in RenderLayerFilters. +Note that these implementations are already complete in LBSE downstream and do not need to be invented from scratch. The first patches in that direction should be up for review by February 2023.

+

After all “SVG resources” are implemented in LBSE, feature parity is almost there and performance work will follow afterward. WebKit has a golden rule to never ship a performance regression; therefore, LBSE needs to be at least as fast in the standard performance tests, such as MotionMark, before it can replace the legacy engine. Currently, LBSE is slower than the legacy engine with respect to static rendering performance. Quoting numbers does not help at present, since the problem is well understood and will be resolved in the following months.

+

LBSE currently creates more RenderLayer objects than necessary: for each renderer, unconditionally. This is a great stress test of the layer system, and helpful for bootstrapping, but the associated overhead and complexity are simply not necessary for many cases, and actively hurt performance. LBSE already outperforms the legacy SVG engine whenever animated content is viewed, if it benefits from the hardware acceleration in LBSE.

+

2023 will be an exciting year, and hopefully brings LBSE to the masses, stay tuned!

+

Demos

+

“A picture is worth a thousand words”, so we’d like to share with you the videos shown during the WebKit contributors meeting in 2022 that demo the LBSE capabilities. Be sure to check them out so you can get a good picture of the state of the work. Enjoy!

+
    +
  1. +

    Accelerated 2D transforms (Tiger)

    +

    + +

    +
  2. +
  3. +

    Accelerated 3D transform (Tiger)

    +

    + +

    +
  4. +
  5. +

    Transition storm (Tiger)

    +

    + +

    +
  6. +
  7. +

    Vibrant example

    +

    + +

    +
  8. +
+

Final thoughts

+

We at Igalia are doing our best to fulfill the mission and complete the LBSE upstreaming as fast as possible. In the meanwhile, let us know about your thoughts:

+
    +
  • What would you do with a performant, next-level SVG engine?
  • +
  • Any particular desktop / embedded project that would benefit from it?
  • +
  • Anything in reach now, that seemed impossible before with the given constraints in WebKit?
  • +
+

Thanks for your attention! Be sure to keep an eye on our “Upstreaming status” page at GitHub to follow LBSE development.

+ + + +
+
+
+
+
+
+ + Picture of Nikolas Zimmermann + This article was written by Nikolas Zimmermann.

I'm a proud Igalian since 2019 and have been working on WebKits predecessors since the early 2000s, namely kjs/khtml/ksvg, and kdom/kcanvas/ksvg2/khtml2 that all found their way into WebKit. Since that time, Web technology - especially SVG - is my main area of interest. +
+
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html b/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html new file mode 100644 index 000000000..fd52d3011 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html @@ -0,0 +1,776 @@ + + + + + + + + + + + + Integrating WPE: URI Scheme Handlers and Script Messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Integrating WPE: URI Scheme Handlers and Script Messages

+ + + + + +
+ +
+ +

Most Web content is designed entirely for screen display—and there is a +lot of it—so it will spend its life in the somewhat restricted sandbox +implemented by a web browser. But rich user interfaces using Web technologies +in all kinds of consumer devices require some degree of integration, an +escape hatch to interact with the rest of their software and hardware. This is +where a Web engine like WPE designed to be embeddable shines: not only does +WPE provide a stable API, it is also comprehensive in +supporting a number of ways to integrate with its environment further than +the plethora of available Web platform APIs.

+

Integrating a “Web view” (the main entry point of the WPE embedding +API) involves providing extension points, which allow the +Web content (HTML/CSS/JavaScript) it loads to call into native code provided +by the client application (typically written in C/C++) from JavaScript, and +vice versa. There are a number of ways in which this can be achieved:

+
    +
  • URI scheme handlers allow native code to +register a custom URI +scheme, which will run a user provided +function to produce content that can be “fetched” regularly.
  • +
  • User script messaging can be used to send JSON +messages from JavaScript running in the same context as Web pages to an user +function, and vice versa.
  • +
  • The JavaScriptCore API is a powerful solution to provide new JavaScript +functionality to Web content seamlessly, almost as if they were implemented +inside the Web engine itself—akin to NodeJS C++ addons.
  • +
+

In this post we will explore the first two, as they can support many +interesting use cases without introducing the additional complexity of +extending the JavaScript virtual machine. Let’s dive in!

+

Intermission

+

We will be referring to the code of a tiny browser written for the occasion. +Telling WebKit how to call our native code involves creating a +WebKitUserContentManager, customizing it, and then +associating it with web views during their creation. The only exception to +this are URI scheme handlers, which are registered +using webkit_web_context_register_uri_scheme(). This +minimal browser includes an on_create_view function, which is the perfect +place to do the configuration:

+
static WebKitWebView*
+on_create_view(CogShell *shell, CogPlatform *platform)
+{
+    g_autoptr(GError) error = NULL;
+    WebKitWebViewBackend *view_backend = cog_platform_get_view_backend(platform, NULL, &error);
+    if (!view_backend)
+        g_error("Cannot obtain view backend: %s", error->message);
+
+    g_autoptr(WebKitUserContentManager) content_manager = create_content_manager();  /** NEW! **/
+    configure_web_context(cog_shell_get_web_context(shell));                         /** NEW! **/
+ 
+    g_autoptr(WebKitWebView) web_view =
+        g_object_new(WEBKIT_TYPE_WEB_VIEW,
+                     "user-content-manager", content_manager,  /** NEW! **/
+                     "settings", cog_shell_get_web_settings(shell),
+                     "web-context", cog_shell_get_web_context(shell),
+                     "backend", view_backend,
+                     NULL);
+    cog_platform_init_web_view(platform, web_view);
+    webkit_web_view_load_uri(web_view, s_starturl);
+    return g_steal_pointer(&web_view);
+}
+
+ What is g_autoptr? + Does it relate to g_steal_pointer? + This does not look like C!
+

In the shown code examples, g_autoptr(T) is a preprocessor macro provided by +GLib that declares a pointer variable of the T type, and arranges for +freeing resources automatically when the variable goes out of scope. For +objects this results in +g_object_unref() +being called.

+

Internally the macro takes advantage of the __attribute__((cleanup, ...)) +compiler extension, which is supported by GCC and Clang. GLib also includes a +convenience +macro that +can be used to define cleanups for your own types.

+

As for g_steal_pointer, it is useful to indicate that the ownership of a +pointer declared with g_autoptr is transferred outside from the current +scope. The function returns the same pointer passed as parameter and +resets it to NULL, thus preventing cleanup functions from running.

+
+

The size has been kept small thanks to reusing code from the Cog +core library. As a bonus, it should +run on Wayland, X11, and even on a bare display using the DRM/KMS +subsystem directly. Compiling and running it, assuming you already have the +dependencies installed, should be as easy as running:

+
cc -o minicog minicog.c $(pkg-config cogcore --libs --cflags)
+./minicog wpewebkit.org
+

If the current session kind is not automatically detected, a second parameter +can be used to manually choose among wl (Wayland), x11, drm, and so on:

+
./minicog wpewebkit.org x11
+

The full, unmodified source for this minimal browser is included right below.

+
+ Complete minicog.c source + (Gist) + + +
+

+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * cc -o minicog minicog.c $(pkg-config wpe-webkit-1.1 cogcore --cflags --libs)
+ */
+ 
+#include <cog/cog.h>
+ 
+static const char *s_starturl = NULL;
+ 
+static WebKitWebView*
+on_create_view(CogShell *shell, CogPlatform *platform)
+{
+    g_autoptr(GError) error = NULL;
+    WebKitWebViewBackend *view_backend = cog_platform_get_view_backend(platform, NULL, &error);
+    if (!view_backend)
+        g_error("Cannot obtain view backend: %s", error->message);
+ 
+    g_autoptr(WebKitWebView) web_view =
+        g_object_new(WEBKIT_TYPE_WEB_VIEW,
+                     "settings", cog_shell_get_web_settings(shell),
+                     "web-context", cog_shell_get_web_context(shell),
+                     "backend", view_backend,
+                     NULL);
+    cog_platform_init_web_view(platform, web_view);
+    webkit_web_view_load_uri(web_view, s_starturl);
+    return g_steal_pointer(&web_view);
+}
+ 
+int
+main(int argc, char *argv[])
+{
+    g_set_application_name("minicog");
+ 
+    if (argc != 2 && argc != 3) {
+        g_printerr("Usage: %s [URL [platform]]\n", argv[0]);
+        return EXIT_FAILURE;
+    }
+ 
+    g_autoptr(GError) error = NULL;
+    if (!(s_starturl = cog_uri_guess_from_user_input(argv[1], TRUE, &error)))
+        g_error("Invalid URL '%s': %s", argv[1], error->message);
+ 
+    cog_modules_add_directory(COG_MODULEDIR);
+ 
+    g_autoptr(GApplication) app = g_application_new(NULL, G_APPLICATION_DEFAULT_FLAGS);
+    g_autoptr(CogShell) shell = cog_shell_new("minicog", FALSE);
+    g_autoptr(CogPlatform) platform =
+        cog_platform_new((argc == 3) ? argv[2] : g_getenv("COG_PLATFORM"), &error);
+    if (!platform)
+        g_error("Cannot create platform: %s", error->message);
+ 
+    if (!cog_platform_setup(platform, shell, "", &error))
+        g_error("Cannot setup platform: %s\n", error->message);
+ 
+    g_signal_connect(shell, "create-view", G_CALLBACK(on_create_view), platform);
+    g_signal_connect_swapped(app, "shutdown", G_CALLBACK(cog_shell_shutdown), shell);
+    g_signal_connect_swapped(app, "startup", G_CALLBACK(cog_shell_startup), shell);
+    g_signal_connect(app, "activate", G_CALLBACK(g_application_hold), NULL);
+ 
+    return g_application_run(app, 1, argv);
+}
+
+ +
+
+

URI Scheme Handlers

+
+ “Railroad” diagram of URI syntax +
URI syntax (CC BY-SA 4.0, + source), + notice the “scheme” component at the top left. +
+
+

A URI scheme handler allows “teaching” the web engine how to handle any +load (pages, subresources, the Fetch API, +XmlHttpRequest, …)—if you ever wondered how Firefox implements +about:config or how Chromium does chrome://flags, this is it. Also, +WPE WebKit has public API for this. Roughly:

+
    +
  1. A custom URI scheme is registered using +webkit_web_context_register_uri_scheme(). This also associates a callback function to it.
  2. +
  3. When WebKit detects a load for the scheme, it invokes the provided +function, passing a +WebKitURISchemeRequest.
  4. +
  5. The function generates data to be returned as the result of the load, +as a GInputStream +and calls webkit_uri_scheme_request_finish(). This sends the stream to WebKit as the +response, indicating the length of the response (if known), and the +MIME content type of the data in the stream.
  6. +
  7. WebKit will now read the data from the input stream.
  8. +
+

Echoes

+

Let’s add an echo handler to our minimal browser that +replies back with the requested URI. Registering the scheme is +straightforward enough:

+
static void
+configure_web_context(WebKitWebContext *context)
+{
+    webkit_web_context_register_uri_scheme(context,
+                                           "echo",
+                                           handle_echo_request,
+                                           NULL /* userdata */,
+                                           NULL /* destroy_notify */);
+}
+
+ What are “user data” and “destroy notify”?
+

The userdata parameter above is a convention used in many C libraries, and +specially in these based on GLib when there are callback functions involved. +It allows the user to supply a pointer to arbitrary data, which will be +passed later on as a parameter to the callback (handle_echo_request in the +example) when it gets invoked later on.

+

As for the destroy_notify parameter, it allows passing a function with the +signature void func(void*) (type +GDestroyNotify) which +is invoked with userdata as the argument once the user data is no longer +needed. In the example above, this callback function would be invoked when the +URI scheme is unregistered. Or, from a different perspective, this callback is +used to notify that the user data can now be destroyed.

+
+

One way of implementing handle_echo_request() could be wrapping the request +URI, which is part of the WebKitURISchemeRequest parameter to the handler, +stash it into a GBytes +container, and create an input stream to read back its +contents:

+
static void
+handle_echo_request(WebKitURISchemeRequest *request, void *userdata)
+{
+    const char *request_uri = webkit_uri_scheme_request_get_uri(request);
+    g_print("Request URI: %s\n", request_uri);
+
+    g_autoptr(GBytes) data = g_bytes_new(request_uri, strlen(request_uri));
+    g_autoptr(GInputStream) stream = g_memory_input_stream_new_from_bytes(data);
+
+    webkit_uri_scheme_request_finish(request, stream, g_bytes_get_size(data), "text/plain");
+}
+

Note how we need to tell WebKit how to finish the load +request, +in this case only with the data stream, but it is possible to have more +control of the +response +or return an +error.

+

With these changes, it is now possible to make page loads from the new custom +URI scheme:

+
+ Screenshot of the minicog browser loading a custom echo:// URI +
It worked!
+
+

Et Tu, CORS?

+

The main roadblock one may find when using custom URI schemes is that loads +are affected by CORS +checks. Not only that, WebKit by default does not allow sending cross-origin +requests to custom URI schemes. This is by design: instead of accidentally +leaking potentially sensitive data to websites, developers embedding a web +view need to consciously opt-in to allow CORS requests and +send back suitable Access-Control-Allow-* response headers.

+

In practice, the additional setup involves +retrieving +the WebKitSecurityManager being used by the WebKitWebContext and +registering the scheme as +CORS-enabled. +Then, in the handler function for the custom URI scheme, create a +WebKitURISchemeResponse, +which allows fine-grained control of the response, including setting +headers, +and finishing the request instead with +webkit_uri_scheme_request_finish_with_response().

+

Note that WebKit cuts some corners when using CORS with custom URI schemes: +handlers will not receive preflight OPTIONS requests. Instead, the CORS +headers from the replies are inspected, and if access needs to be denied +then the data stream with the response contents is discarded.

+

In addition to providing a complete CORS-enabled custom URI scheme example, +we recommend the Will It CORS? tool +to help troubleshoot issues.

+

Further Ideas

+

Once we have WPE WebKit calling into our custom code, there are no limits +to what a URI scheme handler can do—as long as it involves replying +to requests. Here are some ideas:

+
    +
  • Allow pages to access a subset of paths from the local file system in a +controlled way (as CORS applies). For inspiration, +see CogDirectoryFilesHandler.
  • +
  • Package all your web application assets into a single ZIP file, making +loads from app:/... fetch content from it. Or, make the scheme handler +load data using GResource and bundle the application +inside your program.
  • +
  • Use the presence of a well-known custom URI to have a web application +realize that it is running on a certain device, and make its user +interface adapt accordingly.
  • +
  • Provide a REST API, which internally calls into +NetworkManager to list and configure +wireless network adapters. Combine it with a local web application and +embedded devices can now easily get on the network.
  • +
+

User Script Messages

+

While URI scheme handlers +allow streaming large chunks of data back into the Web engine, for exchanging +smaller pieces of information in a more programmatic fashion it may be +preferable to exchange messages without the need to trigger resource loads. +The user script messages part of the +WebKitUserContentManager API can be used this way:

+
    +
  1. Register a user message handler with +webkit_user_content_manager_register_script_message_handler(). +As opposed to URI scheme handlers, this only enables receiving messages, +but does not associate a callback function yet.
  2. +
  3. Associate a callback to the +script-message-received +signal. The signal detail should be the name of the registered handler.
  4. +
  5. Now, whenever JavaScript code calls +window.webkit.messageHandlers.<name>.postMessage(), the signal is +emitted, and the native callback functions invoked.
  6. +
+
+ Haven't I seen postMessage() elsewhere?
+

Yes, +you +have. +The name is the same because it provides a similar functionality (send a +message), it guarantees little (the receiver should validate messages), and +there are similar +restrictions +in the kind of values that can be passed along.

+
+

It’s All JavaScript

+

Let’s add a feature to our minimal browser that will allow +JavaScript code to trigger rebooting or powering off the device where it is +running. While this should definitely not be functionality exposed to the +open Web, it is perfectly acceptable in an embedded device where we control +what gets loaded with WPE, and that exclusively uses a web application as its +user interface.

+
+ Pepe Silvia conspiracy image meme, with the text “It's all JavaScript” superimposed +
Yet most of the code shown in this post is C.
+
+

First, create a WebKitUserContentManager, register the message handler, +and connect a callback to its associated signal:

+
static WebKitUserContentManager*
+create_content_manager(void)
+{
+    g_autoptr(WebKitUserContentManager) content_manager = webkit_user_content_manager_new();
+    webkit_user_content_manager_register_script_message_handler(content_manager, "powerControl");
+    g_signal_connect(content_manager, "script-message-received::powerControl",
+                     G_CALLBACK(handle_power_control_message), NULL);
+    return g_steal_pointer(&content_manager);
+}
+

The callback receives a WebKitJavascriptResult, from which we +can get the JSCValue with the contents of the parameter +passed to the postMessage() function. The JSCValue can now be inspected +to check for malformed messages and determine the action to take, and +then arrange to call reboot():

+
static void
+handle_power_control_message(WebKitUserContentManager *content_manager,
+                             WebKitJavascriptResult *js_result, void *userdata)
+{
+    JSCValue *value = webkit_javascript_result_get_js_value(js_result);
+    if (!jsc_value_is_string(value)) {
+        g_warning("Invalid powerControl message: argument is not a string");
+        return;
+    }
+
+    g_autofree char *value_as_string = jsc_value_to_string(value);
+    int action;
+    if (strcmp(value_as_string, "poweroff") == 0) {
+        action = RB_POWER_OFF;
+    } else if (strcmp(value_as_string, "reboot") == 0) {
+        action = RB_AUTOBOOT;
+    } else {
+        g_warning("Invalid powerControl message: '%s'", value_as_string);
+        return;
+    }
+
+    g_message("Device will %s now!", value_as_string);
+    sync(); reboot(action);
+}
+

Note that the reboot() system call above will most likely fail because it +needs administrative privileges. While the browser process could run as root +to sidestep this issue—definitely not recommended!—it would be +better to grant the CAP_SYS_BOOT capability to the process, and much +better to ask the system manager daemon to handle the job. In machines +using systemd a good option is to call the .Halt() +and .Reboot() methods of its org.freedesktop.systemd1 interface.

+

Now we can write a small HTML document with some JavaScript sprinkled on top +to arrange sending the messages:

+
<html>
+  <head>
+    <meta charset="utf-8" />
+    <title>Device Power Control</title>
+  </head>
+  <body>
+    <button id="reboot">Reboot</button>
+    <button id="poweroff">Power Off</button>
+    <script type="text/javascript">
+      function addHandler(name) {
+        document.getElementById(name).addEventListener("click", (event) => {
+          window.webkit.messageHandlers.powerControl.postMessage(name);
+          return false;
+        });
+      }
+      addHandler("reboot");
+      addHandler("poweroff");
+    </script>
+  </body>
+</html>
+

The complete source code for this example can be found +in this Gist.

+

Going In The Other Direction

+

But how can one return values from user messages back to the JavaScript code +running in the context of the web page? Until recently, the only option +available was exposing some known function in the page’s JavaScript code, and +then using +webkit_web_view_run_javascript() +to call it from native code later on. To make this more idiomatic and allow +waiting on a Promise, an approach like the following works:

+
    +
  1. Have convenience JavaScript functions wrapping the calls to +.postMessage() which add an unique identifier as part of the message, +create a Promise, and store it in a Map indexed by the identifier. +The Promise is itself returned from the functions.
  2. +
  3. When the callback in native code handle messages, they need to take +note of the message identifier, and then use +webkit_web_view_run_javascript() to pass it back, along with the +information needed to resolve the promise.
  4. +
  5. The Javascript code running in the page takes the Promise from +the Map that corresponds to the identifier, and resolves it.
  6. +
+

To make this approach a bit more palatable, we could tell WebKit to inject a +script +along with the regular content, which would provide the helper +functions +needed to achieve this.

+

Nevertheless, the approach outlined above is cumbersome and can be +tricky to get right, not to mention that the effort needs to be duplicated in +each application. Therefore, we have recently added new API hooks to provide this +as a built-in feature, so starting in WPE WebKit 2.40 the recommended approach +involves using +webkit_user_content_manager_register_script_message_handler_with_reply() +to register handlers instead. This way, calling .postMessage() now returns a +Promise to the JavaScript code, and the callbacks connected to the +script-message-with-reply-received +signal now receive a +WebKitScriptMessageReply, +which can be used to resolve the promise—either on the spot, or +asynchronously later on.

+

Even More Ideas

+

User script messages are a powerful and rather flexible facility to make WPE +integrate web content into a complete system. The provided example is rather +simple, but as long as we do not need to pass huge amounts of data in +messages the possibilities are almost endless—especially with the +added convenience in WPE WebKit 2.40. Here are more ideas that can +be built on top of user script messages:

+
    +
  • A handler could receive requests to “monitor” some object, and +return a Promise that gets resolved when it has received changes. +For example, this could make the user interface of a smart thermostat +react to temperate updates from a sensor.
  • +
  • A generic handler that takes the message payload and converts it into +D-Bus method calls, allowing +web pages to control many aspects of a typical Linux system.
  • +
+

Wrapping Up

+

WPE has been designed from the ground up to integrate with the rest of the +system, instead of having a sole focus on rendering Web content inside a +monolithic web browser application. Accordingly, the public API must be +comprehensive enough to use it as a component of any application. This +results in features that allow plugging into the web engine at different +layers to provide custom behaviour.

+

At Igalia we have years of experience embedding WebKit into all kinds of +applications, and we are always sympathetic to the needs of such systems. If +you are interested collaborating with WPE development, or searching for a +solution that can tightly integrate web content in your device, feel free to +contact us.

+ + + + +
+
+
+
+
+
+ Head shot of Adrián Pérez + This article was written by Adrián Pérez. +
+ I have been working on WebKit since 2012, with a focus on + environment integration, embedding, and distribution. Igalia + has been a life-long project since even earlier. +
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html b/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html new file mode 100644 index 000000000..3a3dd7f3d --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html @@ -0,0 +1,677 @@ + + + + + + + + + + + + A New WPE Backend Using EGLStream + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

A New WPE Backend Using EGLStream

+ + + + + +
+ +
+ +

What is a WPE Backend?

+ +

Depending on the target hardware WPE may need to use different techniques and +technologies to ensure correct graphical rendering. To be independent of any +user-interface toolkit and windowing system, WPE WebKit delegates the rendering +to a third-party API defined in the +libwpe library. A concrete +implementation of this API is a “WPE backend”.

+

WPE WebKit is a multiprocess application, the end-user starts and controls the +web widgets in the application process (which we often call “the UI process” while the web engine itself uses +different subprocesses: WPENetworkProcess is in charge of managing network +connections and WPEWebProcess (or “web process”) in charge of the HTML and +JavaScript parsing, execution and rendering. The WPE backend is at a crossroads +between the UI process and one or more web process instances.

+
+ Diagram showing a box for the WPE backend in between the UI process and WPEWebProcess + +
+

The WPE backend is a shared library that is loaded at runtime by the web +process and by the UI process. It is used to render the visual aspect of a web +page and transfer the resulting video buffer from the web process to the +application process.

+

Backend Interfaces

+

The WPE backend shared library must export at least one symbol called +_wpe_loader_interface of type struct wpe_loader_interface as defined in +the libwpe +API. +Presently its only member is load_object, a callback function that receives a +string with an interface name and returns concrete implementations of the +following interfaces:

+ +

The names passed to the .load_object() function are the same as those of the +interface types, prefixed with an underscore. For example, a +.load_object("_wpe_renderer_host_interface") call must return a pointer to a +struct wpe_renderer_host_interface object.

+
+ Example C code for a load_object callback. + +
static struct wpe_renderer_host_interface = { /* ... */ };
+static struct wpe_renderer_backend_egl_interface = { /* ... */ };
+
+static void*
+my_backend_load_object(const char *name)
+{
+    if (!strcmp(name, "_wpe_renderer_host_interface"))
+        return &my_renderer_host;
+    if (!strcmp(name, "_wpe_renderer_backend_egl_interface"))
+        return &my_renderer_backend_egl;
+
+    /* ... */
+
+    return NULL;
+}
+
+struct wpe_loader_interface _wpe_loader_interface = {
+    .load_object = my_backend_load_object,
+};
+ +
+

Each of these interfaces follow the same base structure: the struct members +are callback functions, all interfaces have create and destroy members which +act as instance constructor and destructor, plus any additional “methods”. +The pointer returned by the create callback will be passed as the object +“instance” of the other methods:

+
struct wpe_renderer_host_interface {
+  void* (*create)(void);
+  void  (*destroy)(void *object);
+  /* ... */
+};
+

In the UI process side WPE WebKit will create:

+
    +
  • One “renderer host” instance, using wpe_renderer_host_interface.create().
  • +
  • Multiple “renderer host client” instances, using wpe_renderer_host_interface.create_client(). +These are mainly used for IPC communication, one instance gets created for +each web process launched by WebKit.
  • +
  • Multiple “view backend” instances, using wpe_view_backend_interface.create(). +One instance is created for each rendering target in the web process.
  • +
+

In each web process—there can be more than one—WPE WebKit +will create:

+
    +
  • One “renderer backend EGL” instance, using wpe_renderer_backend_egl_interface.create().
  • +
  • Multiple “renderer backend EGL target” instances, using +wpe_renderer_backend_egl_target_interface.create(). An instance is created +for each new rendering target needed by the application.
  • +
+
+ How about wpe_renderer_backend_egl_offscreen_target_interface? +
+

The rendererBackendEGLTarget instances may be created by the wpe_renderer_backend_egl_target_interface, or +the wpe_renderer_backend_egl_offscreen_target_interface depending on the interfaces implemented in the backend.

+

Here we are only focusing on the wpe_renderer_backend_egl_target_interface that is relying on a classical EGL +display (defined in the rendererBackendEGL instance). The wpe_renderer_backend_egl_offscreen_target_interface may +be used in very specific use-cases that are out of the scope of this post. You can check its usage in the WPE WebKit +source code +for more information.

+
+
+

These instances typically communicate with each others using Unix sockets for +IPC. The IPC layer must be +implemented in the WPE backend itself because the libwpe interfaces only pass +around the file descriptors to be used as communication endpoints.

+

From a topological point of view, all those instances are organized as follows:

+
+ + +
+

From an usage point of view:

+
    +
  • The rendererHost and rendererHostClient instances are only used to manage +IPC endpoints on the UI process side that are connected to each running +web process. They are not used by the graphical rendering system.
  • +
  • The rendererBackendEGL instance (one per web process) is only used to +connect to the native display for a specific platform. For example, on a +desktop Linux, the platform may be X11 where the native display would be the +result of calling XOpenDisplay(); or the platform may be Wayland and in +this case the native display would be the result of calling +wl_display_connect(); and so on.
  • +
  • The rendererBackendEGLTarget (on the web process side) and viewBackend +(on the UI process side) instances are the ones truly managing the web page +graphical rendering.
  • +
+

Graphics Rendering

+

As seen above, the interfaces in charge of the rendering are +wpe_renderer_backend_egl_target_interface and wpe_view_backend_interface. +During their creation, WPE WebKit exchanges the file descriptors used to +establish a direct IPC connection between a rendererBackendEGL (in the +web process), and a viewBackend (in the UI process).

+

During the EGL initialization phase, when a new web process is launched, WebKit +will use the native display and platform provided by the +wpe_renderer_backend_egl_interface.get_native_display() and .get_platform() +functions to create a suitable OpenGL ES context.

+

When WebKit’s +ThreadedCompositor +is ready to render a new frame (in the web process), it calls the +wpe_renderer_backend_egl_target_interface.frame_will_render() function to let +the WPE backend know that rendering is about to start. At this moment, the +previously created OpenGL ES context is made current to be used as the target +for GL drawing commands.

+

Once the threaded compositor has finished drawing, it will swap the front and +back EGL buffers and call the +wpe_renderer_backend_egl_target_interface.frame_rendered() function to signal +that the frame is ready. The compositor will then wait until the WPE backend +calls wpe_renderer_backend_egl_target_dispatch_frame_complete() to indicate +that the compositor may produce a new frame.

+

What happens inside the .frame_will_render() and .frame_rendered() +implementations is up to the WPE backend. As en example, it could +set up a Frame Buffer Object +to have the web content draw offscreen, in a texture that can be passed +back to the UI process for further processing, or use extensions like +EGLStream, +or DMA-BUF exports +to transfer the frame to the UI process without copying the pixel data.

+
+ + +
+

Typically the backend sends each new frame to the corresponding view backend in +in its .frame_rendered() function. The application can use the frame until it +sends back an IPC message to the renderer target (in the web +process) to indicate that the frame is not in use anymore and may be be freed +or recycled. Although it is not a requirement to do it at this exact point, +usually when a renderer backend receives this message it calls the +wpe_renderer_backend_egl_target_dispatch_frame_complete() function to trigger +the rendering of a new frame. As a side effect, this mechanism also allows +controlling the pace at which new frames are produced.

+

Using EGLStream

+

EGLStream is an EGL extension that defines a mechanism to transfer hardware +video buffers from one process to another efficiently, without getting them +out of GPU memory. Although the extension is supported only in Nvidia +hardware, it makes for a good example as it transparently handles some +complexities involved, like buffers with multiple planes.

+

This backend uses the EGLStream extension to transfer graphics buffers from the +web process, which acts as a producer, to the UI process acting as a consumer. +The producer extension +EGL_KHR_stream_producer_eglsurface +allows creating a surface that may be used as target for rendering, then using +eglSwapBuffers() +finishes drawing and sends the result to the consumer. Meanwhile, in the +consumer side, the +EGL_NV_stream_consumer_eglimage +extension is used to turn each buffer into an EGLImage.

+

The reference source code for this WPE backend is available in the +WPEBackend-offscreen-nvidia +repository, which has been tested with WPE WebKit 2.38.x or 2.40.x, and +libwpe version 1.14.x.

+
+ Behold, the Future Belongs to DMA-BUF! +
+

With the growing adoption of +DMA-BUF for sharing memory +buffers on modern Linux platforms, the WPE WebKit architecture will be +evolving and, in the future, the need for a WPE Backend should disappear in +most cases.

+

Ongoing work on WPE WebKit removes the need to provide a WPE backend +implementation for most hardware platforms, with a generic implementation +using DMA-BUF provided as an integral, built-in feature of WebKit. It will +still be possible to provide external implementations for platforms that +might need to use custom buffer sharing mechanisms.

+

From the application developer point of view, in most cases writing +programs that use the WPE WebKit API will be simpler, with the complexity +of the communication among multiple processes handled by WebKit.

+
+
+

Stream Setup

+

The steps needed to set up EGLStream endpoints need to be done in a particular +order:

+
    +
  1. Create the consumer.
  2. +
  3. Get the stream file descriptor for the consumer.
  4. +
  5. Send the stream file descriptor to the producer.
  6. +
  7. Create the producer.
  8. +
+

First, the consumer needs to be created:

+
EGLStream createConsumerStream(EGLDisplay eglDisplay) {
+    static const EGLint s_streamAttribs[] = {
+        EGL_STREAM_FIFO_LENGTH_KHR, 1,
+        EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR, 1000 * 1000,
+        EGL_NONE
+    };
+    return eglCreateStreamKHR(eglDisplay, s_streamAttribs);
+}
+

The EGL_STREAM_FIFO_LENGTH_KHR parameter defines the length of the EGLStream +queue. If set to zero, the stream will work in “mailbox” mode and each time the +producer has a new frame it will empty the stream content and replace the frame +by the new one. If non-zero, the stream works work in “FIFO” mode, which means that the stream queue can contain up +to EGL_STREAM_FIFO_LENGTH_KHR frames.

+

Here we configure a queue for one frame because in this case the specification +of EGL_KHR_stream_producer_eglsurface guarantees that calling +eglSwapBuffers() on the producer the call will block until the consumer +retires the previous frame from queue. This is used as implicit synchronization +between the UI process side and the web process side without needing to rely on +custom IPC, which would add a small delay between frames.

+

The EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR parameter defines the maximum +timeout in microseconds to wait on the consumer side to acquire a frame when +calling eglStreamConsumerAcquireKHR(). It is only used with the +EGL_KHR_stream_consumer_gltexture extension because the +EGL_NV_stream_consumer_eglimage extension allows setting a timeout on each +call to eglQueryStreamConsumerEventNV() function.

+

Second, to initialize the consumer using the EGL_NV_stream_consumer_eglimage +extension it is enough to call the eglStreamImageConsumerConnectNV() function.

+

Once the consumer has been initialized, you need to send the EGLStream +file descriptor to the producer process. The usual way of achieving this would +be using IPC between the two processes, sending the file descriptor in a +SCM_RIGHTS message through an Unix socket—although with recent kernels +using pidfd_getfd() may be an option if +both processes are related.

+

When the file descriptor is finally received, the producer endpoint can be +created using the EGL_KHR_stream_producer_eglsurface extension:

+
const EGLint surfaceAttribs[] = {
+    EGL_WIDTH, width,
+    EGL_HEIGHT, height,
+    EGL_NONE
+};
+EGLStream eglStream = eglCreateStreamFromFileDescriptorKHR(eglDisplay, consumerFD);
+EGLSurface eglSurface = eglCreateStreamProducerSurfaceKHR(eglDisplay, config, eglStream, surfaceAttribs);
+

As with pbuffer surfaces, the dimensions +need to be specified as surface attributes. When picking a frame buffer +configuration with eglChooseConfig() the EGL_SURFACE_TYPE attribute must +be set to EGL_STREAM_BIT_KHR. From this point onwards, rendering proceeds as +usual: the EGL surface and context are made active, and once the painting is +done a call to eglSwapBuffers() will “present” the frame, which in this case +means sending the buffer with the pixel data down the EGLStream to the +consumer.

+
+ + +
+

Consuming Frames

+

While on the producer side rendering treats the EGLStream surface like any +other, on the consumer some more work is needed to manager the lifetime of +the data received: frames have to be manually acquired and released once +they are not needed anymore.

+

The producer calls eglQueryStreamConsumerEventNV() repeatedly to retire the +next event from the stream:

+
    +
  • EGL_STREAM_IMAGE_ADD_NV indicates that there is a buffer in the stream +that has not yet been bound to an EGLImage, and the application needs to +create a new one to which the actual data will be bound later.
  • +
  • EGL_STREAM_IMAGE_AVAILABLE_NV indicates that a new frame is available +and that it can be bound to the previously created EGLImage.
  • +
  • EGL_STREAM_IMAGE_REMOVE_NV indicates that a buffer has been retired from +the stream, and that its associated EGLImage may be released once the +application has finished using it.
  • +
+

This translates roughly to the following code:

+
static constexpr EGLTime MAX_TIMEOUT_USEC = 1000 * 1000;
+EGLImage eglImage = EGL_NO_IMAGE;
+
+while (true) {
+    EGLenum event = 0;
+    EGLAttrib data = 0;
+
+    // WARNING: The specification states that the timeout is in nanoseconds
+    // (see: https://registry.khronos.org/EGL/extensions/NV/EGL_NV_stream_consumer_eglimage.txt)
+    // but in reality it is in microseconds, at least with the version 535.113.01 of the NVidia drivers.
+    if (!eglQueryStreamConsumerEventNV(display, eglStream, MAX_TIMEOUT_USEC, &event, &data))
+        break;
+
+    switch (event) {
+      case EGL_STREAM_IMAGE_ADD_NV: // Bind an incoming buffer to an EGLImage.
+          if (eglImage) eglDestroyImage(display, eglImage);
+          eglImage = eglCreateImage(display, EGL_NO_CONTEXT, EGL_STREAM_CONSUMER_IMAGE_NV,
+                                    static_cast<EGLClientBuffer>(eglStream), nullptr);
+          continue; // Handle the next event.
+
+      case EGL_STREAM_IMAGE_REMOVE_NV: // Buffer removed, EGLImage may be disposed.
+          if (data) {
+              EGLImage image = reinterpret_cast<EGLImage>(data);
+              eglDestroyImage(display, image);
+              if (image == eglImage)
+                  eglImage = EGL_NO_IMAGE;
+          }
+          continue; // Handle the next event.
+
+      case EGL_STREAM_IMAGE_AVAILABLE_NV: // New frame available.
+          if (eglStreamAcquireImageNV(display, eglStream, &eglImage, EGL_NO_SYNC))
+              break;
+
+      default:
+          continue; // Handle the next event.
+    }
+
+    /*** Use the EGLImage here ***/
+
+    eglStreamReleaseImageNV(display, eglStream, eglImage, EGL_NO_SYNC);
+}
+

The application is free to use each EGLImage as it sees fit. An obvious +example would be to use it as the contents for a texture, which then gets +painted in the “content” area of a web browser; or as the contents of the +screen for an in-game computer that the player can interact with, enabling +display of real, live web content as part of the gaming experience—now +that would be a deeply embedded browser!

+

One Last Thing

+

There is a small showstopper to have EGLStream support working: +currently +when WPE WebKit uses surfaceless EGL contexts it sets the surface type to +EGL_WINDOW_BIT attribute, while EGL_STREAM_BIT_KHR would be needed +instead. A small +patch +is enough to apply this tweak:

+
diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp
+index d5efa070..5f200edc 100644
+--- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp
++++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp
+@@ -122,9 +122,11 @@ bool GLContextEGL::getEGLConfig(EGLDisplay display, EGLConfig* config, EGLSurfac
+         attributeList[13] = EGL_PIXMAP_BIT;
+         break;
+     case GLContextEGL::WindowSurface:
+-    case GLContextEGL::Surfaceless:
+         attributeList[13] = EGL_WINDOW_BIT;
+         break;
++    case GLContextEGL::Surfaceless:
++        attributeList[13] = EGL_STREAM_BIT_KHR;
++        break;
+     }
+
+     EGLint count;
+
+ + + + +
+
+
+
+
+
+ Head shot of Loïc Le Page + This article was written by Loïc Le Page. +
+ I have worked in different industries like video games, + cinema, and multimedia—the latter being where my + focus lies at the moment. Did anyone say Web engines need + that, too? +
+
+
+
+
+ + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/1/index.html b/aperezdc/learn-discover-rework/blog/1/index.html new file mode 100644 index 000000000..0cd2c7519 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/1/index.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Blog

+

Don’t miss any news related to WPE – our blog aims to share information regarding WPE: explainers, how-to articles and general information regarding WPE, WebKit +and the Web platform. Also check out the official WebKit blog regarding news on the engine itself.

+
+
+
  1. + + +

    WPE Networking Overview

    +

    In this post we'll cover the many layers of the networking stack that WPE uses including libsoup and glib.

    +
  2. + + +

    WPE QA and tooling

    +

    In the previous posts, my colleagues Claudio and Miguel wrote respectively about the major components of the project and, specifically, the graphics architecture of WPE. Today, you'll see our efforts to improve the quality of both WPE and the experience of working and using it.

    +
  3. + + +

    WPE Graphics architecture

    +

    Following the previous post in the series about WPE where we talked about the WPE components, this post will explain briefly the WPE graphics architecture, and how the engine is able to render HTML content into the display.

    +
  4. + + +

    An overview of the WPE WebKit project

    +

    In the previous post in this series, we explained that WPE is a WebKit port optimized for embedded devices. In this post, we'll dive into a more technical overview of the different components of WPE, WebKit, and how they all fit together.

    +
  5. + + +

    Happy birthday WPE!

    +

    Welcome to the new Blog section on wpewebkit.org! Let's take some time to celebrate and recap how WPE evolved from the early prototyping days to the product empowering hundreds of millions of devices worldwide today.

    +
+ +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/2022-success-metrological.html b/aperezdc/learn-discover-rework/blog/2022-success-metrological.html new file mode 100644 index 000000000..c08d9dd7b --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/2022-success-metrological.html @@ -0,0 +1,292 @@ + + + + + + + + + + + + Success Story: Metrological + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Success Story: Metrological

+ + + + + +
+ +
+ +
+Metrological: A Comcast Company +WPE +
+

WPE WebKit brought RDK (Reference Design Kit), a modern, performant web browser, to millions of screens. It enables operators to manage devices and easily customize their UIs and apps and provides analytics to improve the customer experience and drive business results.

+

Delivering a fast and memory-efficient browser for embedded systems is a challenging task, so Igalia helped Metrological build a new full-screen browser engine which stripped away all unnecessary toolkit elements.

+

With years of experience around WebKit platform integration, Igalia worked to produce a new WebKit port, WPE, which interfaced directly with Wayland and the graphics driver. Additionally, Igalia pushed forward the implementation of a multi-platform multi-threaded compositor, enabling better performance on low-end multicore processors. WPE is an official port of WebKit.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/2023-success-digital-signage.html b/aperezdc/learn-discover-rework/blog/2023-success-digital-signage.html new file mode 100644 index 000000000..7162cbf49 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/2023-success-digital-signage.html @@ -0,0 +1,14 @@ + + + + + + + + +

If you can see this, you should be redirecting this URL to /blog/2023-use-case-digital-signage.html.

+ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/blog/2023-use-case-digital-signage.html b/aperezdc/learn-discover-rework/blog/2023-use-case-digital-signage.html new file mode 100644 index 000000000..377294151 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/2023-use-case-digital-signage.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + Use Case: WPE in digital signage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Use Case: WPE in digital signage

+ + + + + +
+ +
+ +
+WPE WebKit in digital signage +WPE +
+

Digital signage web rendering players have many advantages and are a trend nowadays. They allow to use HTML5 for composing the UI, provisioning and scheduling new contents to the screens from the cloud is simple and effortless, they provide a robust environment with an automatic crash recovery system, etc. They are also a great choice for digital signage kiosk deployments.

+

WPE WebKit is an excellent option to use as web rendering engine for Linux-based digital signage players, specially for the low-end market, where WPE Webkit allows to achieve great graphics and rendering performance in the less powerful devices like the ones based on the Raspberry Pi. As a result, WPE WebKit is naturally compatible with the hardware of the main digital signage manufactures that rely on these kind of lower-powered devices.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html b/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html new file mode 100644 index 000000000..104e6bab8 --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + Use Case: Server-side headless rendering + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Use Case: Server-side headless rendering

+ + + + + +
+ +
+ +
+WPE and server-side headless rendering +
+

In many distributed applications, it can be useful to run a light web browser on the server side to render some HTML content or process images, video and/or audio using JavaScript.

+

Some concrete use-cases can be:

+
    +
  • Video post-production using HTML overlays.
  • +
  • Easy 3D rendering with WebGL that can be broadcasted as a video stream.
  • +
  • Reusing the same JavaScript code between a frontend web application and the backend processing.
  • +
+

WPE WebKit is the perfect solution for all those use cases as it offers a lightweight solution which can run on low-end hardware or even within a container. It provides a lot of flexibility at the moment of choosing the backend infrastructure as WPE WebKit can, for instance, run from within a container with a very minimal Linux configuration (no need for any windowing system) and with full hardware acceleration and zero-copy of the video buffers between the GPU and the CPU.

+

Additionally, the fact that WPE WebKit is optimized for lower-powered devices, makes it also the perfect option for server-side rendering when scaling commercial deployments while keeping cost under control, which is yet another important factor to take into account when considering cloud rendering.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/blog/index.html b/aperezdc/learn-discover-rework/blog/index.html new file mode 100644 index 000000000..3b925336a --- /dev/null +++ b/aperezdc/learn-discover-rework/blog/index.html @@ -0,0 +1,320 @@ + + + + + + + + + + + + Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Blog

+

Don’t miss any news related to WPE – our blog aims to share information regarding WPE: explainers, how-to articles and general information regarding WPE, WebKit +and the Web platform. Also check out the official WebKit blog regarding news on the engine itself.

+
+
+
  1. + + +

    Use Case: Server-side headless rendering

    +

    Server-side rendering is another interesting use case for WPE that can unleash the potential of the Web platform for different use cases.

    +
  2. + + +

    A New WPE Backend Using EGLStream

    +

    WPE backends allow adapting the web engine to the particularities of +the graphics stack of the devices where it needs to run. In this article +we cover their basics and build a WPE WebKit backend from scratch.

    +
  3. + + +

    Integrating WPE: URI Scheme Handlers and Script Messages

    +

    This post explores some of the ways in which WPE WebKit can integrate with +its surrounding environment, in order to expose platform functionality to +Web content seamlessly.

    +
  4. + + +

    Status of the new SVG engine in WebKit

    +

    Let's take a detour from the previous WPE architecture related posts to other aspects of our work on WebKit at Igalia. Today, the status of the development of WebKits' new SVG engine is presented, along with an introduction to the topic, and an outlook for 2023.

    +
  5. + + +

    Use Case: WPE in digital signage

    +

    Digital signage web rendering players have many advantages and are a trend nowadays.

    +
  6. + + +

    Success Story: Metrological

    +

    WPE WebKit brought RDK (Reference Design Kit), a modern, performant web browser, to millions of screens.

    +
+ +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/code/index.html b/aperezdc/learn-discover-rework/code/index.html new file mode 100644 index 000000000..417091c00 --- /dev/null +++ b/aperezdc/learn-discover-rework/code/index.html @@ -0,0 +1,14 @@ + + + + + + + + +

If you can see this, you should be redirecting this URL to /about/get-wpe.html.

+ + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/css/fonts.css b/aperezdc/learn-discover-rework/css/fonts.css new file mode 100644 index 000000000..4ca2ac07a --- /dev/null +++ b/aperezdc/learn-discover-rework/css/fonts.css @@ -0,0 +1,114 @@ +/* Normal */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-variant: common-ligatures; + font-weight: 400; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro'), + local('Source Sans Pro Regular'), + local('SourceSansPro-Regular'), + local('Source Sans 3'), + local('SourceSans3-Regular'), + url('../assets/SourceSans3VF-Roman.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Roman.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Roman.ttf') format('truetype'), + url('../assets/SourceSans3VF-Roman.otf') format('opentype'); +} + +/* Bold */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-variant: common-ligatures; + font-weight: 700; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro Bold'), + local('SourceSansPro-Bold'), + local('Source Sans 3'), + local('SourceSans3-Bold'), + url('../assets/SourceSans3VF-Roman.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Roman.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Roman.ttf') format('truetype'), + url('../assets/SourceSans3VF-Roman.otf') format('opentype'); +} + +/* Light */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-variant: common-ligatures; + font-weight: 100; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro Light'), + local('SourceSansPro-Light'), + local('Source Sans 3'), + local('SourceSans3-Light'), + url('../assets/SourceSans3VF-Roman.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Roman.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Roman.ttf') format('truetype'), + url('../assets/SourceSans3VF-Roman.otf') format('opentype'); +} + +/* Italic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-variant: common-ligatures; + font-weight: 400; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro Italic'), + local('SourceSansPro-Italic'), + local('Source Sans 3'), + local('SourceSans3-Italic'), + url('../assets/SourceSans3VF-Italic.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Italic.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Italic.ttf') format('truetype'), + url('../assets/SourceSans3VF-Italic.otf') format('opentype'); +} + +/* Bold Italic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-variant: common-ligatures; + font-weight: 700; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro Bold Italic'), + local('SourceSansPro-BoldItalic'), + local('Source Sans 3'), + local('SourceSans3-BoldItalic'), + url('../assets/SourceSans3VF-Italic.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Italic.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Italic.ttf') format('truetype'), + url('../assets/SourceSans3VF-Italic.otf') format('opentype'); +} + +/* Light Italic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-variant: common-ligatures; + font-weight: 100; + src: + local('Source Sans Variable'), + local('Source Sans 3 VF'), + local('Source Sans Pro Light Italic'), + local('SourceSansPro-LightItalic'), + local('Source Sans 3'), + local('SourceSans3-LightItalic'), + url('../assets/SourceSans3VF-Italic.ttf.woff2') format('woff2'), + url('../assets/SourceSans3VF-Italic.ttf.woff') format('woff'), + url('../assets/SourceSans3VF-Italic.ttf') format('truetype'), + url('../assets/SourceSans3VF-Italic.otf') format('opentype'); +} diff --git a/aperezdc/learn-discover-rework/css/prism.css b/aperezdc/learn-discover-rework/css/prism.css new file mode 100644 index 000000000..4f42c07c4 --- /dev/null +++ b/aperezdc/learn-discover-rework/css/prism.css @@ -0,0 +1,2 @@ +/* PrismJS 1.29.0 theme from https://prismjs.com/download.html */ +code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:0.85rem;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.35;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f1f1f1}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} diff --git a/aperezdc/learn-discover-rework/css/stylish-portfolio.css b/aperezdc/learn-discover-rework/css/stylish-portfolio.css new file mode 100644 index 000000000..94c95d807 --- /dev/null +++ b/aperezdc/learn-discover-rework/css/stylish-portfolio.css @@ -0,0 +1,495 @@ +.navbar-nav { + margin-right: 4rem; +} + +strong { + font-weight: 800; +} + +body, +html { + width: 100%; + height: 100%; +} + +body { + font-family: 'Source Sans Pro'; +} + +ul { margin: 1rem auto; padding-left: 4rem; } +ul li { text-align: left; } + +.btn-xl { + padding: 1.25rem 2.5rem; +} + +.content-section { + padding-top: 7.5rem; + padding-bottom: 7.5rem; +} + +.content-section.small-section { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.content-section-heading h2 { + font-size: 3rem; +} + +.content-section-heading h3 { + font-size: 1rem; + text-transform: uppercase; +} + +.release-heading { + margin-bottom: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 700; +} + +.text-faded { + color: rgba(255, 255, 255, 0.7); +} + +/* Map */ +.map { + height: 30rem; +} + +@media (max-width: 992px) { + .map { + height: 75%; + } +} + +.map iframe { + pointer-events: none; +} + +.scroll-to-top { + position: fixed; + right: 15px; + bottom: 15px; + display: none; + width: 50px; + height: 50px; + text-align: center; + color: white; + background: rgba(52, 58, 64, 0.5); + line-height: 45px; +} + +.scroll-to-top:focus, .scroll-to-top:hover { + color: white; +} + +.scroll-to-top:hover { + background: #343a40; +} + +.scroll-to-top i { + font-weight: 800; +} + +. + +/* Side Menu */ +#sidebar-wrapper { + position: fixed; + z-index: 2; + right: 0; + width: 250px; + height: 100%; + -webkit-transition: all 0.4s ease 0s; + -moz-transition: all 0.4s ease 0s; + -ms-transition: all 0.4s ease 0s; + -o-transition: all 0.4s ease 0s; + transition: all 0.4s ease 0s; + transform: translateX(250px); + background: #1D809F; + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.sidebar-nav { + position: absolute; + top: 0; + width: 250px; + margin: 0; + padding: 0; + list-style: none; +} + +.sidebar-nav li.sidebar-nav-item a { + display: block; + text-decoration: none; + color: #fff; + padding: 15px; +} + +.sidebar-nav li a:hover { + text-decoration: none; + color: #fff; + background: rgba(255, 255, 255, 0.2); +} + +.sidebar-nav li a:active, +.sidebar-nav li a:focus { + text-decoration: none; +} + +.sidebar-nav > .sidebar-brand { + font-size: 1.2rem; + background: rgba(52, 58, 64, 0.1); + height: 80px; + line-height: 50px; + padding-top: 15px; + padding-bottom: 15px; + padding-left: 15px; +} + +.sidebar-nav > .sidebar-brand a { + color: #fff; +} + +.sidebar-nav > .sidebar-brand a:hover { + color: #fff; + background: none; +} + +#sidebar-wrapper.active { + right: 250px; + width: 250px; + -webkit-transition: all 0.4s ease 0s; + -moz-transition: all 0.4s ease 0s; + -ms-transition: all 0.4s ease 0s; + -o-transition: all 0.4s ease 0s; + transition: all 0.4s ease 0s; +} + +.menu-toggle { + position: fixed; + right: 15px; + top: 15px; + width: 50px; + height: 50px; + text-align: center; + color: #fff; + background: rgba(52, 58, 64, 0.5); + line-height: 50px; + z-index: 999; +} + +.menu-toggle:focus, .menu-toggle:hover { + color: #fff; +} + +.menu-toggle:hover { + background: #343a40; +} + +.card { + min-width: 21rem; + max-width: 100%; +} + +.service-icon { + background-color: #fff; + color: #1D809F; + height: 7rem; + width: 7rem; + display: block; + line-height: 7.5rem; + font-size: 2.25rem; + box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1); +} + +.callout { + padding: 15rem 0; + background: linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.1) 100%); + background-position: center center; + background-repeat: no-repeat; + background-size: cover; +} + +.callout h2 { + font-size: 3.5rem; + font-weight: 700; + display: block; + max-width: 30rem; +} + +.portfolio-item { + display: block; + position: relative; + overflow: hidden; + max-width: 530px; + margin: auto auto 1rem; +} + +.portfolio-item .caption { + display: flex; + height: 100%; + width: 100%; + background-color: rgba(33, 37, 41, 0.2); + position: absolute; + top: 0; + bottom: 0; + z-index: 1; +} + +.portfolio-item .caption .caption-content { + color: #fff; + margin: auto 2rem 2rem; +} + +.portfolio-item .caption .caption-content h2 { + font-size: 0.8rem; + text-transform: uppercase; +} + +.portfolio-item .caption .caption-content p { + font-weight: 300; + font-size: 1.2rem; +} + +@media (min-width: 1300px) { + .card { + min-width: 21rem !important; + } + +} +@media (min-width: 992px) { + .portfolio-item { + max-width: none; + margin: 0; + } + .portfolio-item .caption { + -webkit-transition: -webkit-clip-path 0.25s ease-out, background-color 0.7s; + -webkit-clip-path: inset(0px); + clip-path: inset(0px); + } + .portfolio-item .caption .caption-content { + transition: opacity 0.25s; + margin-left: 5rem; + margin-right: 5rem; + margin-bottom: 5rem; + } + .portfolio-item img { + -webkit-transition: -webkit-clip-path 0.25s ease-out; + -webkit-clip-path: inset(-1px); + clip-path: inset(-1px); + } + .portfolio-item:hover img { + -webkit-clip-path: inset(2rem); + clip-path: inset(2rem); + } + .portfolio-item:hover .caption { + background-color: rgba(29, 128, 159, 0.9); + -webkit-clip-path: inset(2rem); + clip-path: inset(2rem); + } + + #webkit-powers-embedded { + padding: 2rem; + background: url(https://www.igalia.com/assets/i/headers/header-industries-tv.jpg); + background-size: contain; + background-repeat: no-repeat; + background-position-y: center + } + + + .footer.footer { + grid-template-columns: 300px auto; + grid-template-rows: repeat(2,auto); + } + .footer.footer a.navbar-brand { + grid-row: 1 / -1; + } + .footer.footer nav.social { + grid-column: 2; + align-self: end; + } + .footer.footer nav.social ul { + margin: 0; + padding: 0; + } + .footer.footer li { + display: inline; + } + .footer.footer li a { + display: inline; + } +} + +table { + margin: 1em auto; + border: 1px solid #eaeaea; + background: #fafafa; +} + +table td, table th { + padding: 0.2em 0.75em; +} + +table thead, table th { + background: #eaeaea; +} + +table tr:nth-child(even) { + background: #efefef; +} + +footer.footer { + padding: 1rem; + +} + +footer.footer .social-link { + display: block; + height: 4rem; + width: 4rem; + line-height: 4.3rem; + font-size: 1.5rem; + background-color: #1D809F; + transition: background-color 0.15s ease-in-out; + box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1); +} + +footer.footer .social-link:hover { + background-color: #155d74; + text-decoration: none; +} + +a { + color: #1D809F; +} + +a:hover, a:focus, a:active { + color: #155d74; +} + +.text-faded > a { + color: rgba(255, 255, 255, 0.7); +} + +.text-faded > a:hover, .text-faded > a:focus, .text-faded > a:active { + color: rgba(230, 230, 230, 0.7); +} + +.btn-primary { + background-color: #1c77c7 !important; + border-color: #1D809F !important; + color: #fff !important; +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active { + background-color: #155d74 !important; + border-color: #155d74 !important; +} + +.btn-secondary { + background-color: #ecb807 !important; + border-color: #ecb807 !important; + color: #fff !important; +} + +.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active { + background-color: #ba9106 !important; + border-color: #ba9106 !important; +} + +.btn-dark { + color: #fff !important; +} + +.btn { + box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1); + font-weight: 700; +} + +.bg-primary { + background-color: #1593ED !important; +} + +.bg-tertiary { + background-color: black !important; +} + +.text-primary { + color: #1D809F !important; +} + +.text-secondary { + color: #ecb807 !important; +} + + +#contact { + padding-top: 1.5rem; + padding-bottom: 0.5rem; +} + +footer.footer { + padding: 1rem; + display: grid; +} + +footer .container { + display: flex; + align-self: center; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-top: 1rem; + margin-bottom: 1rem; +} + +#webkit-powers-embedded { + padding: 0 !important; +} + +#about-code-section .badge { + margin-left: 1rem; +} + +.text-light a { + color: white; +} + +blockquote { + background-color: rgba(230, 230, 230, 0.7); +} + +.author-line { + margin-top: -2rem; + border: 2px solid lightgray; + width: 100%; +} + +hr.author-line + div { + margin-top: 1.5rem; + color: #666; +} +hr.author-line + div > img.circle-mask { + margin-top: -1rem; +} + +.circle-mask { + width: 8rem; + height: auto; + float: left; + margin-right: 2rem; + margin-bottom: 2rem; + border-radius: 50%; +} diff --git a/aperezdc/learn-discover-rework/css/stylish-portfolio.min.css b/aperezdc/learn-discover-rework/css/stylish-portfolio.min.css new file mode 100644 index 000000000..e4bb538fc --- /dev/null +++ b/aperezdc/learn-discover-rework/css/stylish-portfolio.min.css @@ -0,0 +1 @@ +body,html{width:100%;height:100%}body{font-family:'Source Sans Pro'}.btn-xl{padding:1.25rem 2.5rem}.content-section{padding-top:7.5rem;padding-bottom:7.5rem}.content-section.small-section{padding-top:2rem;padding-bottom:2rem}.content-section-heading h2{font-size:3rem}.content-section-heading h3{font-size:1rem;text-transform:uppercase}h1,h2,h3,h4,h5,h6{font-weight:700}.text-faded{color:rgba(255,255,255,.7)}.map{height:30rem}@media (max-width:992px){.map{height:75%}}.map iframe{pointer-events:none}.scroll-to-top{position:fixed;right:15px;bottom:15px;display:none;width:50px;height:50px;text-align:center;color:#fff;background:rgba(52,58,64,.5);line-height:45px}.scroll-to-top:focus,.scroll-to-top:hover{color:#fff}.scroll-to-top:hover{background:#343a40}.scroll-to-top i{font-weight:800}.masthead{position:relative;display:table;width:100%;height:auto;padding-top:4rem;padding-bottom:4rem;background:linear-gradient(90deg,rgba(255,255,255,.1) 0,rgba(255,255,255,.1) 100%);background-position:center center;background-repeat:no-repeat;background-size:cover}.masthead h1{font-size:4rem;margin:0;padding:0}@media (min-width:992px){.masthead h1{font-size:5.5rem}}.masthead.small-header{padding-top:2rem;padding-bottom:2rem;min-height:10rem;height:15rem}#sidebar-wrapper{position:fixed;z-index:2;right:0;width:250px;height:100%;-webkit-transition:all .4s ease 0s;-moz-transition:all .4s ease 0s;-ms-transition:all .4s ease 0s;-o-transition:all .4s ease 0s;transition:all .4s ease 0s;transform:translateX(250px);background:#1d809f;border-left:1px solid rgba(255,255,255,.1)}.sidebar-nav{position:absolute;top:0;width:250px;margin:0;padding:0;list-style:none}.sidebar-nav li.sidebar-nav-item a{display:block;text-decoration:none;color:#fff;padding:15px}.sidebar-nav li a:hover{text-decoration:none;color:#fff;background:rgba(255,255,255,.2)}.sidebar-nav li a:active,.sidebar-nav li a:focus{text-decoration:none}.sidebar-nav>.sidebar-brand{font-size:1.2rem;background:rgba(52,58,64,.1);height:80px;line-height:50px;padding-top:15px;padding-bottom:15px;padding-left:15px}.sidebar-nav>.sidebar-brand a{color:#fff}.sidebar-nav>.sidebar-brand a:hover{color:#fff;background:0 0}#sidebar-wrapper.active{right:250px;width:250px;-webkit-transition:all .4s ease 0s;-moz-transition:all .4s ease 0s;-ms-transition:all .4s ease 0s;-o-transition:all .4s ease 0s;transition:all .4s ease 0s}.menu-toggle{position:fixed;right:15px;top:15px;width:50px;height:50px;text-align:center;color:#fff;background:rgba(52,58,64,.5);line-height:50px;z-index:999}.menu-toggle:focus,.menu-toggle:hover{color:#fff}.menu-toggle:hover{background:#343a40}.service-icon{background-color:#fff;color:#1d809f;height:7rem;width:7rem;display:block;line-height:7.5rem;font-size:2.25rem;box-shadow:0 3px 3px 0 rgba(0,0,0,.1)}.callout{padding:15rem 0;background:linear-gradient(90deg,rgba(255,255,255,.1) 0,rgba(255,255,255,.1) 100%);background-position:center center;background-repeat:no-repeat;background-size:cover}.callout h2{font-size:3.5rem;font-weight:700;display:block;max-width:30rem}.portfolio-item{display:block;position:relative;overflow:hidden;max-width:530px;margin:auto auto 1rem}.portfolio-item .caption{display:flex;height:100%;width:100%;background-color:rgba(33,37,41,.2);position:absolute;top:0;bottom:0;z-index:1}.portfolio-item .caption .caption-content{color:#fff;margin:auto 2rem 2rem}.portfolio-item .caption .caption-content h2{font-size:.8rem;text-transform:uppercase}.portfolio-item .caption .caption-content p{font-weight:300;font-size:1.2rem}@media (min-width:992px){.portfolio-item{max-width:none;margin:0}.portfolio-item .caption{-webkit-transition:-webkit-clip-path .25s ease-out,background-color .7s;-webkit-clip-path:inset(0);clip-path:inset(0)}.portfolio-item .caption .caption-content{transition:opacity .25s;margin-left:5rem;margin-right:5rem;margin-bottom:5rem}.portfolio-item img{-webkit-transition:-webkit-clip-path .25s ease-out;-webkit-clip-path:inset(-1px);clip-path:inset(-1px)}.portfolio-item:hover img{-webkit-clip-path:inset(2rem);clip-path:inset(2rem)}.portfolio-item:hover .caption{background-color:rgba(29,128,159,.9);-webkit-clip-path:inset(2rem);clip-path:inset(2rem)}}table{margin:1em auto;border:1px solid #eaeaea;background:#fafafa}table td,table th{padding:.2em .75em}table th,table thead{background:#eaeaea}table tr:nth-child(even){background:#efefef}footer.footer{padding-top:5rem;padding-bottom:5rem}footer.footer .social-link{display:block;height:4rem;width:4rem;line-height:4.3rem;font-size:1.5rem;background-color:#1d809f;transition:background-color .15s ease-in-out;box-shadow:0 3px 3px 0 rgba(0,0,0,.1)}footer.footer .social-link:hover{background-color:#155d74;text-decoration:none}a{color:#1d809f}a:active,a:focus,a:hover{color:#155d74}.text-faded>a{color:rgba(255,255,255,.7)}.text-faded>a:active,.text-faded>a:focus,.text-faded>a:hover{color:rgba(230,230,230,.7)}.btn-primary{background-color:#1d809f!important;border-color:#1d809f!important;color:#fff!important}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#155d74!important;border-color:#155d74!important}.btn-secondary{background-color:#ecb807!important;border-color:#ecb807!important;color:#fff!important}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background-color:#ba9106!important;border-color:#ba9106!important}.btn-dark{color:#fff!important}.btn{box-shadow:0 3px 3px 0 rgba(0,0,0,.1);font-weight:700}.bg-primary{background-color:#1d809f!important}.text-primary{color:#1d809f!important}.text-secondary{color:#ecb807!important} \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/css/v2.css b/aperezdc/learn-discover-rework/css/v2.css new file mode 100755 index 000000000..120b5ad45 --- /dev/null +++ b/aperezdc/learn-discover-rework/css/v2.css @@ -0,0 +1,741 @@ +img[src*="placeholder"] { +max-height: 4em; +} + +html { + --mainColMax: 75rem; +/* + --colorMain: #1593ED; +*/ + --colorMain: #0D71B9; + --dashH: linear-gradient(90deg, currentColor 25%, + transparent 25% 75%, + currentColor 75%) 0 100% / 8px 1px repeat-x; + --dashV: linear-gradient(180deg, currentColor 25%, + transparent 25% 75%, + currentColor 75%) 0 0 / 1px 8px repeat-y; + --colorCodeBg: #F1F1F1; + height: auto; + min-height: 100%; + max-width: 100vw; +} + +:target { + scroll-margin-top: 7rem; +} + +@supports not (-ms-ime-align: auto) { + /* + * Resets for
/, see: + * https://css-tricks.com/two-issues-styling-the-details-element-and-how-to-solve-them/ + */ + details > summary { + cursor: pointer; + } + details > summary > * { + display: inline; + } +} + +details { + border: 2px solid #f1f1f1; + background: #f1f1f1; + border-radius: 0.5em; +} +details > summary { + color: #555; +} +details > summary, details > div { + padding: 0.5rem 1rem; +} +details > div { + background: #fff; + border-top: 1px solid #eeeeff; +} +details > div > pre { + margin: 0; + padding: 0; + background: none; + white-space: pre-wrap; +} + +body { + min-height: 100%; + margin: 0; + padding: 5rem 0 0; +} + +:is(nav, footer).global, header.page { + grid-column: 1 / -1; +} +main { + grid-column: main; +} +main > * { + padding: 0 1rem; +} + +@media (min-width: 75rem) { + body:not(.home) { + display: grid; + grid-template-columns: 1fr [main] minmax(30rem,var(--mainColMax)) 1fr; + grid-template-rows: [main] auto [footer] min-content; + } + body:not(.home) main { + padding-inline: 5rem; + background: url(../assets/img/dash-v.svg) 0 0 / 1px 8px repeat-y; + } +} + +img { + box-sizing: border-box; + max-width: 100%; +} +a[href] { + color: var(--colorMain); + text-decoration-thickness: 0.05em; + text-underline-offset: 0.15em; +} +main a[href^="http"]:not(.btn, [href*="youtube"]) { + background: url(../assets/img/link_ext_icon.svg) 100% 50% / auto 0.9em no-repeat; + padding-right: 0.9em; +} + + +a.igalia.logo.home img { + width: 100px; + padding: 0.75em 0 0.25em; +} + +figure > img.picture { + display: block; + margin: 0 auto; + border-radius: 5px; + box-shadow: 0 4px 8px #aaa; +} + +figure > figcaption { + margin-top: 0.5rem; + text-align: center; + font-size: 80%; + font-style: italic; + color: #555; +} + +h1 {font-size: 3em; line-height: 1.2;} +h2 {font-size: 2.5em; line-height: 1.1;} +h3 {font-size: 1.6em; line-height: 1.2;} +p > big, p.leadin { + font-size: 1.67em; +} +ul.arrows { + margin: 0; + padding: 0; + padding-inline-start: 2em; + list-style: none; +} +ul.arrows li { + text-indent: -2em; +} +ul.arrows li::before { + display: inline-block; + content: url(../assets/img/list-arrow.svg); + width: 1em; + margin-inline-end: 1em; + text-indent: 0; +} + +.cta.btn { + display: inline-block; + background: var(--colorMain); + color: #FFF; + padding: 0.67em 1.33em; + border-radius: 10em; + font-weight: 700; + font-size: 1.5em; + text-decoration: none; + filter: none; +} +.currentPage .cta.btn { + box-shadow: none; +} + + +.global a.igalia.logo.home { + transform: translateX(10px); +} +@media (min-width: 80rem) { + .global a.igalia.logo.home { + transform: translateX(-30px); + } +} + +main > * { + position: relative; + border-width: 1px 0 0 1px; +} +main::before { + content: ''; + grid-column: dash; + grid-row: 1 / -1; + height: 100%; + width: 2px; +} + + + +.full-bleed { + padding-block: 2em 3em; + border-image-outset: 0 100vw; + border-image-slice: 0 fill; + border-image-width: 0; + border-image-repeat: stretch; + mix-blend-mode: multiply; + border-image-source: linear-gradient(0deg,#EAFEFE,#EAFEFE); +} +.dotsep { + padding-block: 2rem; + position: relative; +} +.full-width { + border-image: none; +} + +.dotsep::before, .full-width::before { + content: ''; + background: var(--dashH); + height: 1px; + width: 100%; +} +.full-width::after, .dotsep::after { + content: url(../assets/img/border-dot-black.svg); + position: absolute; + z-index: 1234; + width: 11px; + height: 11px; + left: -5px; + top: -5px; + font-size: 11px; +} +.dotsep::before { + position: absolute; + z-index: 1224; + top: 0; + left: 0; +} +.full-width::before { + display: block; + grid-column: 1 / -1; + grid-row: 1; + background: var(--dashH); + height: 1px; + width: 100%; +} +.full-width::after { + grid-column: dash; + grid-row: 1 / -1; + height: 100%; + background: var(--dashV); + background-position: 5px 0; +} + + +nav.global { + position: fixed; + top: 0; + left: 0; + right: 0; + width: 100%; + background: hsla(0deg,0%,100%,0.9); + z-index: 12345; + backdrop-filter: blur(10px); + height: 5rem; +} +nav.global div { + display: flex; + justify-content: space-between; + gap: 1em; + max-width: var(--mainColMax); + margin: 0 auto; + height: 100%; + background: var(--dashH); +} +nav.global ul { + margin: 0; + padding: 0; + list-style: none; +} +nav.global ul li a { + display: block; + padding: 0.5em 1em; + text-decoration: none; +} + +nav.global .cta.btn { + font-size: 1em; +} +nav.global .burger { + z-index: 9999; + height: 5em; + width: 5em; + background: url(../assets/img/menu-x.svg) center no-repeat; + background-color: hsl(205,85.7%,50.6%); + border-left: 1px solid; + color: #FFF; + text-indent: -20220930px; +} + +@media (max-width: 719px) { + nav.global ul.off { + display: none; + } + nav.global ul.off + .burger { + background-image: url(../assets/img/menu.svg); + } + nav.global ul { + font-size: 1.25em; + position: fixed; + top: 4em; + right: 0; + max-width: 67vw; + min-width: min-content; + box-shadow: 0 0 0.5em 0.5em #FFF, 0 0 1em 0.25em #FFF; + background: #FFF; + } + nav.global ul li a { + background: hsl(205,85.7%,50.6%); + color: #FFF; + border-right: 1px solid #FFF; + } + nav.global ul li + li a { + border-top: 1px solid #FFF; + } + nav.global ul li.currentPage a { + background: hsl(205,85.7%,80.6%); + color: initial; + text-indent: -1.5em; + } + nav.global ul li.currentPage a::before { + content: "➤"; + margin-inline-end: 0.5em; + text-shadow: 0 0 0.25em hsl(205,85.7%,80.6%), 0 0 0.25em hsl(205,85.7%,80.6%), 0 0 0.25em hsl(205,85.7%,80.6%); + } + nav.global ul li a.btn.cta { + display: block; + margin: 0; + padding: 0.5em 1em; + border-radius: 0; + box-shadow: none; + font-weight: normal; + } +} + +@media (min-width: 720px) { + nav.global .burger { + display: none; + } + nav.global div { + padding: 0; + } + nav.global ul { + display: flex; + } + nav.global ul li { + display: flex; + align-items: center; + } + nav.global ul li.currentPage::before { + content: ''; + position: absolute; + z-index: 1; + top: 50%; + bottom: 0; + left: 50%; + right: 0; + background: + var(--dashV), + linear-gradient(0deg, #FFFF 2px, transparent 2px) + ; + background-size: 1px 0.5em, auto; + } + nav.global ul li.currentPage { + position: relative; + } + nav.global ul li.currentPage a { + position: relative; + z-index: 2; + padding: 0; + padding-block: 0.25em; + margin: 1em; + background: var(--dashH); + background-size: 0.5em 1px; + background-position: 50% 100%; + background-color: #FFF; + color: inherit; + } + nav.global ul li.currentPage a::before { + content: ''; + } + nav.global ul li.currentPage ~ li { + background: linear-gradient(0deg, #FFFF 2px, transparent 2px); + } + nav.global .cta.btn { + padding: 0.33em 0.75em 0.25em; + margin-inline-end: 1rem; + } +} + + +nav.sidebar { + position: sticky; + z-index: 10000; + top: 5.66rem; + background: #FFFC; + backdrop-filter: blur(2rem); +} +nav.sidebar ul { + margin: 0; + padding: 0; + list-style: none; +} +nav.sidebar ul { + display: flex; + justify-content: center; + gap: 0.33em; +} +nav.sidebar a[href] { + padding: 0.5em; + margin-block: 0.5em; + border: 1px solid currentColor; + text-decoration-thickness: 1px; + text-underline-offset: 0.125em; + background: #EAFEFE; +} +@media (max-width: 30rem) { + nav.sidebar a[href] { + font-size: smaller; + white-space: pre; + } +} +nav.sidebar .currentPage a[href] { + color: #FFF; + background: #000; + text-decoration: none; +} + +@media (min-width: 86rem) { + nav.sidebar { + position: sticky; + top: 8em; + margin-left: -11rem; + height: 0; + z-index: 100; + } + nav.sidebar ul { + display: block; + width: max-content; + } + nav.sidebar a[href] { + display: block; + max-width: 15ch; + border-style: dashed; + background: #FFF; + } +} + +header.page { + position: relative; + font-size: 0.75em; +} +header.page h1 { + padding-bottom: 0.5em; + font-size: 4.5em; + background: url(../assets/img/graphic-title-blue.svg) 0 100% / 7rem auto no-repeat; +} +header.page p { + font-size: 1.6em; +} + +pre, code { + background: var(--colorCodeBg); +} + +pre { + white-space: pre-wrap; + border-radius: 0.5em; + padding-block: 1em; + padding-inline: 1.5em; +} + +code { + color: #333; + padding: 0.1em 0.3em; + border-radius: 0.25em; +} + +main section div h3 { + grid-column: 1; + grid-row: 1; +} +main section div:not(.text) > h3 { + align-self: end; +} +main section div p { + grid-column: 1; + grid-row: 2; + margin-top: 0; +} +main section div:not(.text) > p { + align-self: start; +} +main section div > :last-child { + grid-column: 2; + grid-row: 1 / -1; + justify-self: center; +} + +.explore-embedded div.text > * { + align-self: baseline; +} +.explore-embedded header { + padding-block: 4rem; +} +@media (max-width: 65rem) { + .explore-embedded header { + display: block; + } +} + + +@media (min-width: 45rem) { + .c2, .c4, .c5, + .gallery + { + display: grid; + } +} + +.c2, .c4, .c5 { + grid-template-columns: 40% 45%; + grid-template-rows: repeat(2,min-content); + gap: 0 15%; + align-items: first baseline; +} +.c2 { + grid-template-columns: repeat(2,1fr); +} +.c4 { + grid-template-columns: repeat(4,1fr); + grid-template-rows: min-content; + gap: 0 1em; +} +.c5 { + grid-template-columns: repeat(5,1fr); + gap: 2em; +} + +.gallery { + gap: 10%; + margin: 0; + padding-block: 1.5em; + padding-inline: 0; + list-style: none; + align-items: center; +} +main > .resources .gallery { + align-items: start; + padding-left: 0; +} + +@media (max-width: 45rem) { + .c4 { + display: grid; + grid-template-columns: repeat(2,1fr); + } +} + +:is(.community, .developers, .resources) header { + padding: 5em 0 2.5em; + position: relative; +} +:is(.community, .resources) header h2 { + margin-bottom: 0; +} + +header .decoration { + position: absolute; + bottom: -3px; + right: -5rem; + width: 10rem; +} +@media (max-width: 45rem) { + header .decoration { + display: none; + } +} + +.cards li { + display: flex; + flex-direction: column; + align-items: start; +} +.cards li h3 { + align-self: auto; + margin: 0.25em 0; + font-size: 1.1em; +} +.cards li > time, +.cards li > span { + font-size: smaller; +} +.cards li p { + margin-top: 0.75em; +} +.blog.cards li img { + order: -5; + height: 4em; + width: 4em; + border-radius: 9999px; +} +.blog.cards li time { + order: -4; +} +.blog.cards li h3 { + order: -3; +} +.blog.cards li span { + order: -2; +} +.blog.cards li p { + order: -1; +} + +.success-top { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 0.5rem 4rem; + padding-block: 3rem 1rem; +} +.success-top img { + height: 7rem; +} +.success-top img[alt*="WPE"] { + height: 5rem; +} + + +footer.global { + position: relative; + padding: 4rem 1rem; + background: url(../assets/img/dash-h.svg) 0 0 / 8px 1px repeat-x; + background-color: var(--colorMain); + color: #FFF; + font: 1.1em monospace; +} + +footer.global div { + display: grid; + grid-template-columns: 100px 1fr; + gap: 1em; +} +footer.global div > :last-child { + grid-column: span 2; +} + +nav.pagination { + display: block; + color: #88b; + padding: 0; + margin: 0; + text-align: center; + font-feature-settings: "pnum" 0; +} +nav.pagination > ol { + display: inline-block; + padding: 0; + margin: 0; +} +nav.pagination > ol > li { + display: inline-block; + padding: 0; + margin: 0; +} +nav.pagination > ol > li > a, +nav.pagination > ol > li > span { + display: inline; + text-decoration: none; + margin: 0; + padding: 0.35rem 0.75rem; + font-weight: normal; +} +nav.pagination > ol > li > a:hover { + background-color: #eaeaee; +} +nav.pagination > ol > li > a[aria-current="page"] { + background-color: var(--colorMain); + color: #eef; +} + +@media (min-width: 50rem) { + footer.global div { + grid-template-columns: minmax(125px, auto) repeat(2,max-content); + max-width: var(--mainColMax); + margin: 0 auto; + } + footer.global ul { + background: var(--dashV); + } + footer.global div > :last-child { + grid-column: span 1; + } +} +@media (min-width: 65rem) { + footer.global div { + grid-template-columns: repeat(2,1fr) max-content; + } +} + +footer.global a[href] { + color: inherit; +} +footer.global ul { + margin: 0; + padding: 1em; + list-style: none; +} +footer.global ul li { + margin-block: 0.33em; +} +footer.global > b { + position: absolute; + top: 0; + left: 0; + width: 100%; + display: grid; + grid-template-columns: 1fr [dash] 1px [main] minmax(30rem,var(--mainColMax)) 1px 1fr; +} +footer.global > b::before { + content: url(../assets/img/border-dot-black.svg); + grid-column: dash; + width: 11px; + height: 11px; + position: relative; + left: -5px; + top: -5px; + font-size: 11px; +} + +div.sidebar { + color: #555; + font-style: italic; + margin: 0 0 1em 2em; + padding: 0.15em 1em; + width: 33%; + min-width: 12em; + border: 1px solid #d0d0d0; + border-left: 0.25em solid #d0d0d0; + background: #f2f2f2; + float: right; +} diff --git a/aperezdc/learn-discover-rework/developers/index.html b/aperezdc/learn-discover-rework/developers/index.html new file mode 100644 index 000000000..89918e831 --- /dev/null +++ b/aperezdc/learn-discover-rework/developers/index.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + Developers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Developers

+
+
+

WPE Builds

+

While there are several simple ways for developers to experiment with and explore WPE, none are tuned for performance. Generally, shipping products for embedded systems are performance-tuned custom builds. To make this easier, there is also meta-webkit, which provides build recipes, WebKit based runtimes, and browsers for use with OpenEmbedded and/or Yocto.

+

There are also pre-built packages available for many Linux distributions.

+
+
+

Release Schedule

+

WPE WebKit follows a 6-month development cycle:

+
    +
  • There are two feature releases every year, typically in March and September.
  • +
  • Within feature releases, there may be any number of bug-fixes.
  • +
  • Development releases are the base for the feature releases that follow them. They do not follow a fixed schedule in the release cycle.
  • +
+

WPE WebKit and WebKitGTK share a fair amount of code. Therefore, both projects produce their feature releases simultaneously, and share the same release branches. For bug-fix releases, the release teams for both projects try to sync their version numbers as well as they can.

+
+
+
+

WPE Design

+

WPE is the official WebKit port for Linux-based embedded platforms. WPE is uniquely designed for embedded systems in that it doesn’t depend on any user-interface toolkits such as the traditional Cocoa, GTK, etc toolkits.

+
+ +
+
+

WPE’s Frequently Asked Questions

+

We've been collecting answers to lots of common questions we've been asked. If you've got questions, you might just find a ready answer in the FAQ.

+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/feed.xml b/aperezdc/learn-discover-rework/feed.xml new file mode 100644 index 000000000..8169a849d --- /dev/null +++ b/aperezdc/learn-discover-rework/feed.xml @@ -0,0 +1,675 @@ + + + WPEwebkit.org + Release announcements and security advisories from WPEwebkit.org. + + + 2024-02-26T00:00:00Z + https://wpewebkit.org/ + + + Cog 0.18.3 released + + 2024-02-26T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.3.html + <p>This is a bug fix release in the stable 0.18 series.</p> +<h3 id="what%E2%80%99s-new-in-cog-0.18.3%3F" tabindex="-1">What’s new in Cog 0.18.3?</h3> +<ul> +<li>drm: Fix handling of the scaling factor setting.</li> +<li>gtk4: Take scaling factor into account for pointer events.</li> +<li>launcher: Support toggling WebKit features with a new <code>--features</code>/<code>-F</code> command +line option, when built against WebKit 2.42.0 or newer.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +cog-0.18.3.tar.xz (123.9 KiB) + md5sum: e457de5b5ac8994ae9971c0a5a22b8a2 + sha1sum: 21df2a84c651b45e78d08e45e71631250a0078c3 + sha256sum: cd4ec937175a290ccd7c8ec398e4569aec04084cd94b11b2d83518778ba9d055 +</pre> + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2024-0001 + + 2024-02-05T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html + <ul> +<li> +<p>Date Reported: <strong>February 05, 2024</strong></p> +</li> +<li> +<p>Advisory ID: <strong>WSA-2024-0001</strong></p> +</li> +<li> +<p>CVE identifiers: <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2024-23222">CVE-2024-23222</a>, <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2024-23206">CVE-2024-23206</a>, +<a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2024-23213">CVE-2024-23213</a>, <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2023-40414">CVE-2023-40414</a>, +<a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2023-42833">CVE-2023-42833</a>, <a href="https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html#CVE-2014-1745">CVE-2014-1745</a>.</p> +</li> +</ul> +<p>Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.</p> +<ul> +<li> +<p><a name="CVE-2024-23222" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-23222">CVE-2024-23222</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.42.5.</li> +<li>Credit to Apple.</li> +<li>Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been exploited. Description: A type confusion issue was +addressed with improved checks.</li> +<li>WebKit Bugzilla: 267134</li> +</ul> +</li> +<li> +<p><a name="CVE-2024-23206" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-23206">CVE-2024-23206</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.42.5.</li> +<li>Credit to An anonymous researcher.</li> +<li>Impact: A maliciously crafted webpage may be able to fingerprint the +user. Description: An access issue was addressed with improved +access restrictions.</li> +<li>WebKit Bugzilla: 262699</li> +</ul> +</li> +<li> +<p><a name="CVE-2024-23213" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-23213">CVE-2024-23213</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.42.5.</li> +<li>Credit to Wangtaiyu of Zhongfu info.</li> +<li>Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.</li> +<li>WebKit Bugzilla: 266619</li> +</ul> +</li> +<li> +<p><a name="CVE-2023-40414" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-40414">CVE-2023-40414</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.42.1.</li> +<li>Credit to Francisco Alonso (@revskills).</li> +<li>Impact: Processing web content may lead to arbitrary code execution. +Description: A use-after-free issue was addressed with improved +memory management.</li> +<li>WebKit Bugzilla: 258992</li> +</ul> +</li> +<li> +<p><a name="CVE-2023-42833" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42833">CVE-2023-42833</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.38.0.</li> +<li>Credit to Dong Jun Kim (@smlijun) and Jong Seong Kim (@nevul37) of +AbyssLab.</li> +<li>Impact: Processing web content may lead to arbitrary code execution. +Description: A correctness issue was addressed with improved checks.</li> +<li>WebKit Bugzilla: 258592</li> +</ul> +</li> +<li> +<p><a name="CVE-2014-1745" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1745">CVE-2014-1745</a></p> +<ul> +<li>Versions affected: WebKitGTK and WPE WebKit before 2.42.0.</li> +<li>Credit to An anonymous researcher.</li> +<li>Impact: Processing a file may lead to a denial-of-service or +potentially disclose memory contents. Description: The issue was +addressed with improved checks.</li> +<li>WebKit Bugzilla: 249434</li> +</ul> +</li> +</ul> +<p>We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.</p> +<p>Further information about WebKitGTK and WPE WebKit security advisories can be found at: +<a href="https://webkitgtk.org/security.html">https://webkitgtk.org/security.html</a> or <a href="https://wpewebkit.org/security/">https://wpewebkit.org/security/</a>.</p> + + + + + WPE WebKit 2.42.5 released + + 2024-02-05T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.5.html + <p>This is a bug fix release in the stable 2.42 series.</p> +<h3 id="what%E2%80%99s-new-in-wpe-webkit-2.42.5%3F" tabindex="-1">What’s new in WPE WebKit 2.42.5?</h3> +<ul> +<li>Fix <code>webkit_web_context_allow_tls_certificate_for_host()</code> to handle IPv6 +URIs produced by <code>SoupURI</code>.</li> +<li>Ignore stops with offset zero before last one when rendering gradients +with Cairo.</li> +<li>Write <code>bwrapinfo.json</code> to disk for <code>xdg-desktop-portal</code>.</li> +<li>Support gamepad button sixteen (center button in center cluster).</li> +<li>Update quirks to fix compatibility issues in a number of websites, +including <code>bing.com</code>, <code>nfl.com</code>, <code>msn.com</code>, <code>bankofamerica.com</code>, +<code>outlook.live.com</code>, <code>hulu.com</code>, <code>jsfiddle.net</code>, <code>vote.gov</code>, +<code>youtube.com</code>, <code>airtable.com</code>, <code>gizmodo.com</code>, and <code>ceac.state.gov</code> +among others.</li> +<li>Fix incorrect periodic deletion of LocalStorage and IndexedDB databases +for all websites.</li> +<li>Fix several crashes and rendering issues.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +wpewebkit-2.42.5.tar.xz (31.0 MiB) + md5sum: d4bfd427199ded5a6fd91d7080290751 + sha1sum: 50a18f43452520e9f34f84c04bc0166af655ffff + sha256sum: 4dbab6c5e6dc0c65a3d7dffc1c2390be5f9abd423faf983fe3a55fe081df0532 +</pre> + + + + + Use Case: Server-side headless rendering + + 2024-02-01T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html + <div class="success-top"> +<img alt="WPE and server-side headless rendering" align="center" src="https://wpewebkit.org/assets/img/logo-server-side-rendering.png" srcset="https://wpewebkit.org/assets/img/logo-server-side-rendering@2x.png 2x" /> +</div> +<p>In many distributed applications, it can be useful to run a light web browser on the server side to render some HTML content or process images, video and/or audio using JavaScript.</p> +<p>Some concrete use-cases can be:</p> +<ul> +<li>Video post-production using HTML overlays.</li> +<li>Easy 3D rendering with WebGL that can be broadcasted as a video stream.</li> +<li>Reusing the same JavaScript code between a frontend web application and the backend processing.</li> +</ul> +<p>WPE WebKit is the perfect solution for all those use cases as it offers a lightweight solution which can run on low-end hardware or even within a container. It provides a lot of flexibility at the moment of choosing the backend infrastructure as WPE WebKit can, for instance, run from within a container with a very minimal Linux configuration (no need for any windowing system) and with full hardware acceleration and zero-copy of the video buffers between the GPU and the CPU.</p> +<p>Additionally, the fact that WPE WebKit is optimized for lower-powered devices, makes it also the perfect option for server-side rendering when scaling commercial deployments while keeping cost under control, which is yet another important factor to take into account when considering cloud rendering.</p> + + + + + A New WPE Backend Using EGLStream + + 2024-01-29T06:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html + <h2 id="what-is-a-wpe-backend%3F" tabindex="-1">What is a WPE Backend?</h2> +<div class="sidebar"> +<p>This article is a mashup of <a href="https://blogs.igalia.com/llepage/the-process-of-creating-a-new-wpe-backend/">The process of creating a new WPE +backend</a> +and <a href="https://blogs.igalia.com/llepage/use-eglstreams-in-a-wpe-webkit-backend/">Use EGLStreams in a WPE WebKit +backend</a>, +originally published at Loïc’s blog.</p> +</div> +<p>Depending on the target hardware WPE may need to use different techniques and +technologies to ensure correct graphical rendering. To be independent of any +user-interface toolkit and windowing system, WPE WebKit delegates the rendering +to a third-party API defined in the +<a href="https://github.com/WebPlatformForEmbedded/libwpe">libwpe</a> library. A concrete +implementation of this API is a “WPE backend”.</p> +<p>WPE WebKit is a multiprocess application, the end-user starts and controls the +web widgets in the application process (which we often call “the <abbr title="User Interface">UI</abbr> process” while the web engine itself uses +different subprocesses: <code>WPENetworkProcess</code> is in charge of managing network +connections and <code>WPEWebProcess</code> (or “web process”) in charge of the HTML and +JavaScript parsing, execution and rendering. The WPE backend is at a crossroads +between the UI process and one or more web process instances.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-1.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-1.svg" alt="Diagram showing a box for the WPE backend in between the UI process and WPEWebProcess" /> + </a> +</figure> +<p>The WPE backend is a shared library that is loaded at runtime by the web +process and by the UI process. It is used to render the visual aspect of a web +page and transfer the resulting video buffer from the web process to the +application process.</p> +<h2 id="backend-interfaces" tabindex="-1">Backend Interfaces</h2> +<p>The WPE backend shared library must export at least one symbol called +<code>_wpe_loader_interface</code> of type <code>struct wpe_loader_interface</code> as defined <a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/loader.h#L57">in +the <em>libwpe</em> +API</a>. +Presently its only member is <code>load_object</code>, a callback function that receives a +string with an interface name and returns concrete implementations of the +following interfaces:</p> +<ul> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-host.h#L48">struct wpe_renderer_host_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L75">struct wpe_renderer_backend_egl_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L93">struct wpe_renderer_backend_egl_target_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/renderer-backend-egl.h#L115">struct wpe_renderer_backend_egl_offscreen_target_interface</a></li> +<li><a href="https://github.com/WebPlatformForEmbedded/libwpe/blob/d7c669ca6f5ec0d544c264016d270669b336c931/include/wpe/view-backend.h#L63">struct wpe_view_backend_interface</a></li> +</ul> +<p>The names passed to the <code>.load_object()</code> function are the same as those of the +interface types, prefixed with an underscore. For example, a +<code>.load_object(&quot;_wpe_renderer_host_interface&quot;)</code> call must return a pointer to a +<code>struct wpe_renderer_host_interface</code> object.</p> +<details> + <summary>Example C code for a <code>load_object</code> callback.</summary> +<!-- load_object example <<<1 --> +<pre class="language-c"><code class="language-c"><span class="token keyword">static</span> <span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_host_interface</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">/* ... */</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> +<span class="token keyword">static</span> <span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_backend_egl_interface</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">/* ... */</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> + +<span class="token keyword">static</span> <span class="token keyword">void</span><span class="token operator">*</span> +<span class="token function">my_backend_load_object</span><span class="token punctuation">(</span><span class="token keyword">const</span> <span class="token keyword">char</span> <span class="token operator">*</span>name<span class="token punctuation">)</span> +<span class="token punctuation">{</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">strcmp</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> <span class="token string">"_wpe_renderer_host_interface"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">return</span> <span class="token operator">&amp;</span>my_renderer_host<span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">strcmp</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> <span class="token string">"_wpe_renderer_backend_egl_interface"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">return</span> <span class="token operator">&amp;</span>my_renderer_backend_egl<span class="token punctuation">;</span> + + <span class="token comment">/* ... */</span> + + <span class="token keyword">return</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span> + +<span class="token keyword">struct</span> <span class="token class-name">wpe_loader_interface</span> _wpe_loader_interface <span class="token operator">=</span> <span class="token punctuation">{</span> + <span class="token punctuation">.</span>load_object <span class="token operator">=</span> my_backend_load_object<span class="token punctuation">,</span> +<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> +<!-- 1>>> --> +</details> +<p>Each of these interfaces follow the same base structure: the <code>struct</code> members +are callback functions, all interfaces have <code>create</code> and <code>destroy</code> members which +act as instance constructor and destructor, plus any additional “methods”. +The pointer returned by the <code>create</code> callback will be passed as the <code>object</code> +“instance” of the other methods:</p> +<pre class="language-c"><code class="language-c"><span class="token keyword">struct</span> <span class="token class-name">wpe_renderer_host_interface</span> <span class="token punctuation">{</span> + <span class="token keyword">void</span><span class="token operator">*</span> <span class="token punctuation">(</span><span class="token operator">*</span>create<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">void</span> <span class="token punctuation">(</span><span class="token operator">*</span>destroy<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token keyword">void</span> <span class="token operator">*</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token comment">/* ... */</span> +<span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> +<p>In the <strong>UI process</strong> side WPE WebKit will create:</p> +<ul> +<li>One “renderer host” instance, using <code>wpe_renderer_host_interface.create()</code>.</li> +<li>Multiple “renderer host client” instances, using <code>wpe_renderer_host_interface.create_client()</code>. +These are mainly used for IPC communication, one instance gets created for +each web process launched by WebKit.</li> +<li>Multiple “view backend” instances, using <code>wpe_view_backend_interface.create()</code>. +One instance is created for each rendering target in the web process.</li> +</ul> +<p>In each <strong>web process</strong>—there can be more than one—WPE WebKit +will create:</p> +<ul> +<li>One “renderer backend EGL” instance, using <code>wpe_renderer_backend_egl_interface.create()</code>.</li> +<li>Multiple “renderer backend EGL target” instances, using +<code>wpe_renderer_backend_egl_target_interface.create()</code>. An instance is created +for each new rendering target needed by the application.</li> +</ul> +<details> + <summary>How about <code>wpe_renderer_backend_egl_offscreen_target_interface</code>?</summary> + <div> +<p>The <code>rendererBackendEGLTarget</code> instances may be created by the <code>wpe_renderer_backend_egl_target_interface</code>, or +the <code>wpe_renderer_backend_egl_offscreen_target_interface</code> depending on the interfaces implemented in the backend.</p> +<p>Here we are only focusing on the <code>wpe_renderer_backend_egl_target_interface</code> that is relying on a classical EGL +display (defined in the <code>rendererBackendEGL</code> instance). The <code>wpe_renderer_backend_egl_offscreen_target_interface</code> may +be used in very specific use-cases that are out of the scope of this post. You can check its usage in the WPE WebKit +<a href="https://github.com/WebKit/WebKit/blob/f32cd0f7cb7961420ce08ae78b8f01f287bec199/Source/WebCore/platform/graphics/egl/GLContextLibWPE.cpp#L61">source code</a> +for more information.</p> + </div> +</details> +<p>These instances typically communicate with each others using Unix sockets for +<abbr title="Inter-Process Communication">IPC</abbr>. The IPC layer must be +implemented in the WPE backend itself because the <em>libwpe</em> interfaces only pass +around the file descriptors to be used as communication endpoints.</p> +<p>From a topological point of view, all those instances are organized as follows:</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-2.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-2.svg" /> + </a> +</figure> +<p>From an usage point of view:</p> +<ul> +<li>The <code>rendererHost</code> and <code>rendererHostClient</code> instances are only used to manage +IPC endpoints on the UI process side that are connected to each running +web process. They are not used by the graphical rendering system.</li> +<li>The <code>rendererBackendEGL</code> instance (one per web process) is only used to +connect to the native display for a specific platform. For example, on a +desktop Linux, the platform may be X11 where the native display would be the +result of calling <code>XOpenDisplay()</code>; or the platform may be Wayland and in +this case the native display would be the result of calling +<code>wl_display_connect()</code>; and so on.</li> +<li>The <code>rendererBackendEGLTarget</code> (on the web process side) and <code>viewBackend</code> +(on the UI process side) instances are the ones truly managing the web page +graphical rendering.</li> +</ul> +<h2 id="graphics-rendering" tabindex="-1">Graphics Rendering</h2> +<p>As seen above, the interfaces in charge of the rendering are +<code>wpe_renderer_backend_egl_target_interface</code> and <code>wpe_view_backend_interface</code>. +During their creation, WPE WebKit exchanges the file descriptors used to +establish a direct IPC connection between a <code>rendererBackendEGL</code> (in the +web process), and a <code>viewBackend</code> (in the UI process).</p> +<p>During the EGL initialization phase, when a new web process is launched, WebKit +will use the native display and platform provided by the +<code>wpe_renderer_backend_egl_interface.get_native_display()</code> and <code>.get_platform()</code> +functions to create a suitable OpenGL ES context.</p> +<p>When WebKit’s +<a href="https://github.com/WebKit/WebKit/blob/c22f641da18b8c4eee23b8021b37aeec69268675/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp#L220">ThreadedCompositor</a> +is ready to render a new frame (in the web process), it calls the +<code>wpe_renderer_backend_egl_target_interface.frame_will_render()</code> function to let +the WPE backend know that rendering is about to start. At this moment, the +previously created OpenGL ES context is made current to be used as the target +for GL drawing commands.</p> +<p>Once the threaded compositor has finished drawing, it will swap the front and +back EGL buffers and call the +<code>wpe_renderer_backend_egl_target_interface.frame_rendered()</code> function to signal +that the frame is ready. The compositor will then wait until the WPE backend +calls <code>wpe_renderer_backend_egl_target_dispatch_frame_complete()</code> to indicate +that the compositor may produce a new frame.</p> +<p>What happens inside the <code>.frame_will_render()</code> and <code>.frame_rendered()</code> +implementations is up to the WPE backend. As en example, it could +set up a <a href="https://www.khronos.org/opengl/wiki/Framebuffer_Object">Frame Buffer Object</a> +to have the web content draw offscreen, in a texture that can be passed +back to the UI process for further processing, or use extensions like +<a href="https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_stream.txt">EGLStream</a>, +or <a href="https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt">DMA-BUF exports</a> +to transfer the frame to the UI process without copying the pixel data.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part1-basics.md-3.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part1-basics.md-3.svg" /> + </a> +</figure> +<p>Typically the backend sends each new frame to the corresponding view backend in +in its <code>.frame_rendered()</code> function. The application can use the frame until it +sends back an <abbr>IPC</abbr> message to the renderer target (in the web +process) to indicate that the frame is not in use anymore and may be be freed +or recycled. Although it is not a requirement to do it at this exact point, +usually when a renderer backend receives this message it calls the +<code>wpe_renderer_backend_egl_target_dispatch_frame_complete()</code> function to trigger +the rendering of a new frame. As a side effect, this mechanism also allows +controlling the pace at which new frames are produced.</p> +<h2 id="using-eglstream" tabindex="-1">Using EGLStream</h2> +<p>EGLStream is an EGL extension that defines a mechanism to transfer hardware +video buffers from one process to another efficiently, without getting them +out of GPU memory. Although the extension is supported only in Nvidia +hardware, it makes for a good example as it transparently handles some +complexities involved, like buffers with multiple planes.</p> +<p>This backend uses the EGLStream extension to transfer graphics buffers from the +web process, which acts as a producer, to the UI process acting as a consumer. +The producer extension +<a href="https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt">EGL_KHR_stream_producer_eglsurface</a> +allows creating a surface that may be used as target for rendering, then using +<a href="https://registry.khronos.org/EGL/sdk/docs/man/html/eglSwapBuffers.xhtml">eglSwapBuffers()</a> +finishes drawing and sends the result to the consumer. Meanwhile, in the +consumer side, the +<a href="https://registry.khronos.org/EGL/extensions/NV/EGL_NV_stream_consumer_eglimage.txt">EGL_NV_stream_consumer_eglimage</a> +extension is used to turn each buffer into an <code>EGLImage</code>.</p> +<p>The reference source code for this WPE backend is available in the +<a href="https://github.com/Igalia/WPEBackend-offscreen-nvidia">WPEBackend-offscreen-nvidia</a> +repository, which has been tested with WPE WebKit 2.38.x or 2.40.x, and +<em>libwpe</em> version 1.14.x.</p> +<details> + <summary>Behold, the Future Belongs to DMA-BUF!</summary> + <div> +<p>With the growing adoption of +<a href="https://docs.kernel.org/driver-api/dma-buf.html">DMA-BUF</a> for sharing memory +buffers on modern Linux platforms, the WPE WebKit architecture will be +evolving and, in the future, the need for a WPE Backend should disappear in +most cases.</p> +<p>Ongoing work on WPE WebKit removes the need to provide a WPE backend +implementation for most hardware platforms, with a generic implementation +using DMA-BUF provided as an integral, built-in feature of WebKit. It will +still be possible to provide external implementations for platforms that +might need to use custom buffer sharing mechanisms.</p> +<p>From the application developer point of view, in most cases writing +programs that use the WPE WebKit API will be simpler, with the complexity +of the communication among multiple processes handled by WebKit.</p> + </div> +</details> +<h3 id="stream-setup" tabindex="-1">Stream Setup</h3> +<p>The steps needed to set up EGLStream endpoints need to be done in a particular +order:</p> +<ol> +<li>Create the consumer.</li> +<li>Get the stream file descriptor for the consumer.</li> +<li>Send the stream file descriptor to the producer.</li> +<li>Create the producer.</li> +</ol> +<p><strong>First</strong>, the consumer needs to be created:</p> +<pre class="language-cpp"><code class="language-cpp">EGLStream <span class="token function">createConsumerStream</span><span class="token punctuation">(</span>EGLDisplay eglDisplay<span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token keyword">static</span> <span class="token keyword">const</span> EGLint s_streamAttribs<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span> + EGL_STREAM_FIFO_LENGTH_KHR<span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> + EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR<span class="token punctuation">,</span> <span class="token number">1000</span> <span class="token operator">*</span> <span class="token number">1000</span><span class="token punctuation">,</span> + EGL_NONE + <span class="token punctuation">}</span><span class="token punctuation">;</span> + <span class="token keyword">return</span> <span class="token function">eglCreateStreamKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> s_streamAttribs<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>The <code>EGL_STREAM_FIFO_LENGTH_KHR</code> parameter defines the length of the EGLStream +queue. If set to zero, the stream will work in “mailbox” mode and each time the +producer has a new frame it will empty the stream content and replace the frame +by the new one. If non-zero, the stream works work in “<abbr title="First-In, +First-Out">FIFO</abbr>” mode, which means that the stream queue can contain up +to <code>EGL_STREAM_FIFO_LENGTH_KHR</code> frames.</p> +<p>Here we configure a queue for one frame because in this case the specification +of <code>EGL_KHR_stream_producer_eglsurface</code> guarantees that calling +<code>eglSwapBuffers()</code> on the producer the call will block until the consumer +retires the previous frame from queue. This is used as implicit synchronization +between the UI process side and the web process side without needing to rely on +custom IPC, which would add a small delay between frames.</p> +<p>The <code>EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR</code> parameter defines the maximum +timeout in microseconds to wait on the consumer side to acquire a frame when +calling <code>eglStreamConsumerAcquireKHR()</code>. It is only used with the +<code>EGL_KHR_stream_consumer_gltexture</code> extension because the +<code>EGL_NV_stream_consumer_eglimage</code> extension allows setting a timeout on each +call to <code>eglQueryStreamConsumerEventNV()</code> function.</p> +<p><strong>Second</strong>, to initialize the consumer using the <code>EGL_NV_stream_consumer_eglimage</code> +extension it is enough to call the <code>eglStreamImageConsumerConnectNV()</code> function.</p> +<p><strong>Once the consumer has been initialized</strong>, you need to send the EGLStream +file descriptor to the producer process. The usual way of achieving this would +be using IPC between the two processes, sending the file descriptor in a +<code>SCM_RIGHTS</code> message through an Unix socket—although with recent kernels +using <a href="https://lwn.net/Articles/808997/">pidfd_getfd()</a> may be an option if +both processes are related.</p> +<p>When the file descriptor is <strong>finally</strong> received, the producer endpoint can be +created using the <code>EGL_KHR_stream_producer_eglsurface</code> extension:</p> +<pre class="language-cpp"><code class="language-cpp"><span class="token keyword">const</span> EGLint surfaceAttribs<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span> + EGL_WIDTH<span class="token punctuation">,</span> width<span class="token punctuation">,</span> + EGL_HEIGHT<span class="token punctuation">,</span> height<span class="token punctuation">,</span> + EGL_NONE +<span class="token punctuation">}</span><span class="token punctuation">;</span> +EGLStream eglStream <span class="token operator">=</span> <span class="token function">eglCreateStreamFromFileDescriptorKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> consumerFD<span class="token punctuation">)</span><span class="token punctuation">;</span> +EGLSurface eglSurface <span class="token operator">=</span> <span class="token function">eglCreateStreamProducerSurfaceKHR</span><span class="token punctuation">(</span>eglDisplay<span class="token punctuation">,</span> config<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> surfaceAttribs<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> +<p>As with <abbr title="Pixel Buffer">pbuffer</abbr> surfaces, the dimensions +need to be specified as surface attributes. When picking a frame buffer +configuration with <code>eglChooseConfig()</code> the <code>EGL_SURFACE_TYPE</code> attribute must +be set to <code>EGL_STREAM_BIT_KHR</code>. From this point onwards, rendering proceeds as +usual: the EGL surface and context are made active, and once the painting is +done a call to <code>eglSwapBuffers()</code> will “present” the frame, which in this case +means sending the buffer with the pixel data down the EGLStream to the +consumer.</p> +<figure> + <a href="https://wpewebkit.org/assets/svg/part2-eglstream.md-1.svg" target="_blank"><img src="https://wpewebkit.org/assets/svg/part2-eglstream.md-1.svg" /> + </a> +</figure> +<h3 id="consuming-frames" tabindex="-1">Consuming Frames</h3> +<p>While on the producer side rendering treats the EGLStream surface like any +other, on the consumer some more work is needed to manager the lifetime of +the data received: frames have to be manually acquired and released once +they are not needed anymore.</p> +<p>The producer calls <code>eglQueryStreamConsumerEventNV()</code> repeatedly to retire the +next event from the stream:</p> +<ul> +<li><code>EGL_STREAM_IMAGE_ADD_NV</code> indicates that there is a buffer in the stream +that has not yet been bound to an <code>EGLImage</code>, and the application needs to +create a new one to which the actual data will be bound later.</li> +<li><code>EGL_STREAM_IMAGE_AVAILABLE_NV</code> indicates that a new frame is available +and that it can be bound to the previously created <code>EGLImage</code>.</li> +<li><code>EGL_STREAM_IMAGE_REMOVE_NV</code> indicates that a buffer has been retired from +the stream, and that its associated <code>EGLImage</code> may be released once the +application has finished using it.</li> +</ul> +<p>This translates roughly to the following code:</p> +<pre class="language-cpp"><code class="language-cpp"><span class="token keyword">static</span> <span class="token keyword">constexpr</span> EGLTime MAX_TIMEOUT_USEC <span class="token operator">=</span> <span class="token number">1000</span> <span class="token operator">*</span> <span class="token number">1000</span><span class="token punctuation">;</span> +EGLImage eglImage <span class="token operator">=</span> EGL_NO_IMAGE<span class="token punctuation">;</span> + +<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + EGLenum event <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> + EGLAttrib data <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> + + <span class="token comment">// WARNING: The specification states that the timeout is in nanoseconds</span> + <span class="token comment">// (see: https://registry.khronos.org/EGL/extensions/NV/EGL_NV_stream_consumer_eglimage.txt)</span> + <span class="token comment">// but in reality it is in microseconds, at least with the version 535.113.01 of the NVidia drivers.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">eglQueryStreamConsumerEventNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> MAX_TIMEOUT_USEC<span class="token punctuation">,</span> <span class="token operator">&amp;</span>event<span class="token punctuation">,</span> <span class="token operator">&amp;</span>data<span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">break</span><span class="token punctuation">;</span> + + <span class="token keyword">switch</span> <span class="token punctuation">(</span>event<span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token keyword">case</span> EGL_STREAM_IMAGE_ADD_NV<span class="token operator">:</span> <span class="token comment">// Bind an incoming buffer to an EGLImage.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>eglImage<span class="token punctuation">)</span> <span class="token function">eglDestroyImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglImage<span class="token punctuation">)</span><span class="token punctuation">;</span> + eglImage <span class="token operator">=</span> <span class="token function">eglCreateImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> EGL_NO_CONTEXT<span class="token punctuation">,</span> EGL_STREAM_CONSUMER_IMAGE_NV<span class="token punctuation">,</span> + <span class="token generic-function"><span class="token function">static_cast</span><span class="token generic class-name"><span class="token operator">&lt;</span>EGLClientBuffer<span class="token operator">></span></span></span><span class="token punctuation">(</span>eglStream<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token keyword">nullptr</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + + <span class="token keyword">case</span> EGL_STREAM_IMAGE_REMOVE_NV<span class="token operator">:</span> <span class="token comment">// Buffer removed, EGLImage may be disposed.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>data<span class="token punctuation">)</span> <span class="token punctuation">{</span> + EGLImage image <span class="token operator">=</span> <span class="token generic-function"><span class="token function">reinterpret_cast</span><span class="token generic class-name"><span class="token operator">&lt;</span>EGLImage<span class="token operator">></span></span></span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token function">eglDestroyImage</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> image<span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span>image <span class="token operator">==</span> eglImage<span class="token punctuation">)</span> + eglImage <span class="token operator">=</span> EGL_NO_IMAGE<span class="token punctuation">;</span> + <span class="token punctuation">}</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + + <span class="token keyword">case</span> EGL_STREAM_IMAGE_AVAILABLE_NV<span class="token operator">:</span> <span class="token comment">// New frame available.</span> + <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">eglStreamAcquireImageNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> <span class="token operator">&amp;</span>eglImage<span class="token punctuation">,</span> EGL_NO_SYNC<span class="token punctuation">)</span><span class="token punctuation">)</span> + <span class="token keyword">break</span><span class="token punctuation">;</span> + + <span class="token keyword">default</span><span class="token operator">:</span> + <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token comment">// Handle the next event.</span> + <span class="token punctuation">}</span> + + <span class="token comment">/*** Use the EGLImage here ***/</span> + + <span class="token function">eglStreamReleaseImageNV</span><span class="token punctuation">(</span>display<span class="token punctuation">,</span> eglStream<span class="token punctuation">,</span> eglImage<span class="token punctuation">,</span> EGL_NO_SYNC<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> +<p>The application is free to use each <code>EGLImage</code> as it sees fit. An obvious +example would be to use it as the contents for a texture, which then gets +painted in the “content” area of a web browser; or as the contents of the +screen for an in-game computer that the player can interact with, enabling +display of real, live web content as part of the gaming experience—now +<em>that</em> would be a deeply embedded browser!</p> +<h3 id="one-last-thing" tabindex="-1">One Last Thing</h3> +<p>There is a small showstopper to have EGLStream support working: +<a href="https://github.com/WebKit/WebKit/blob/cb07c70c253a35b0e09e46e6100e1cdcebab26e2/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp#L135">currently</a> +when WPE WebKit uses surfaceless EGL contexts it sets the surface type to +<code>EGL_WINDOW_BIT</code> attribute, while <code>EGL_STREAM_BIT_KHR</code> would be needed +instead. <a href="https://github.com/Igalia/WPEBackend-offscreen-nvidia/blob/main/wpewebkit-patches/005-fix-surfaceless-egl-context-creation.patch">A small +patch</a> +is enough to apply this tweak:</p> +<pre class="language-diff"><code class="language-diff">diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp +index d5efa070..5f200edc 100644 +<span class="token coord">--- a/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</span> +<span class="token coord">+++ b/Source/WebCore/platform/graphics/egl/GLContextEGL.cpp</span> +@@ -122,9 +122,11 @@ bool GLContextEGL::getEGLConfig(EGLDisplay display, EGLConfig* config, EGLSurfac +<span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> attributeList[13] = EGL_PIXMAP_BIT; +</span><span class="token prefix unchanged"> </span><span class="token line"> break; +</span><span class="token prefix unchanged"> </span><span class="token line"> case GLContextEGL::WindowSurface: +</span></span><span class="token deleted-sign deleted"><span class="token prefix deleted">-</span><span class="token line"> case GLContextEGL::Surfaceless: +</span></span><span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> attributeList[13] = EGL_WINDOW_BIT; +</span><span class="token prefix unchanged"> </span><span class="token line"> break; +</span></span><span class="token inserted-sign inserted"><span class="token prefix inserted">+</span><span class="token line"> case GLContextEGL::Surfaceless: +</span><span class="token prefix inserted">+</span><span class="token line"> attributeList[13] = EGL_STREAM_BIT_KHR; +</span><span class="token prefix inserted">+</span><span class="token line"> break; +</span></span><span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> } +</span></span> +<span class="token unchanged"><span class="token prefix unchanged"> </span><span class="token line"> EGLint count; +</span></span></code></pre> +<!-- vim:set foldmethod=marker foldmarker=<<<,>>>: --> + + + + + libwpe 1.15.2 released + + 2024-01-25T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.15.2.html + <p>This is a development release leading towards the 1.16 series.</p> +<h3 id="what%E2%80%99s-new-in-libwpe-1.15.2%3F" tabindex="-1">What’s new in libwpe 1.15.2?</h3> +<ul> +<li>Allow resetting the fullscreen client to a null pointer.</li> +<li>Fix usage of the <code>_wpe_loader_interface</code> with the static loader.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +libwpe-1.15.2.tar.xz (62.0 KiB) + md5sum: af8b981f8c620eca9a5672cab0cdd9d4 + sha1sum: 4a1712dbf331ecc70e6e82ebce2e4602fcef35c1 + sha256sum: 6d769f64cee0fb1b5069c3b250b0f91e5cd90564cd2efdf633442bab96e5dbe8 +</pre> + + + + + libwpe 1.14.2 released + + 2024-01-25T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.14.2.html + <p>This is a bug fix release in the stable 1.14 series.</p> +<h3 id="what%E2%80%99s-new-in-libwpe-1.14.2%3F" tabindex="-1">What’s new in libwpe 1.14.2?</h3> +<ul> +<li>Allow resetting the fullscreen client to a null pointer.</li> +<li>Fix usage of the <code>_wpe_loader_interface</code> with the static loader.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +libwpe-1.14.2.tar.xz (61.6 KiB) + md5sum: 61840e24ba0a0f5828194dff28db92ee + sha1sum: 70a2b894af2b50d7082260158a89524974a480f3 + sha256sum: 8ae38022c50cb340c96fdbee1217f1e46ab57fbc1c8ba98142565abbedbe22ef +</pre> + + + + + WPE WebKit 2.42.4 released + + 2023-12-14T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.4.html + <p>This is a bug fix release in the stable 2.42 series.</p> +<h3 id="what%E2%80%99s-new-in-wpe-webkit-2.42.4%3F" tabindex="-1">What’s new in WPE WebKit 2.42.4?</h3> +<ul> +<li>Fix incorrect random images incorrectly displayed as backgrounds +of <code>&lt;div&gt;</code> elements.</li> +<li>Fix videos displayed aliased after being resized e.g. on YouTube.</li> +<li>Fix several crashes and rendering issues.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +wpewebkit-2.42.4.tar.xz (30.9 MiB) + md5sum: 154dd24d1811bd51d2dd6bb22120d283 + sha1sum: 34da38e9554586154c83fdbb5c20e353b6d97277 + sha256sum: 8836040a3687581970b47a232b713e7023c080d5613427f52db619c29fb253a4 +</pre> + + + + + Cog 0.18.2 released + + 2023-12-13T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.2.html + <p>This is a bug fix release in the stable 0.18 series.</p> +<h3 id="what%E2%80%99s-new-in-cog-0.18.2%3F" tabindex="-1">What’s new in Cog 0.18.2?</h3> +<ul> +<li>drm: Fix crash on iMX.6 (and possibly others) by improving how the CRTC +and encoder combination is chosen.</li> +<li>wl: Add support for Weston protocols version 13.</li> +<li>launcher: Handle <code>GApplication</code> activation to avoid a warning.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +cog-0.18.2.tar.xz (123.1 KiB) + md5sum: 7fbfc2e19304132be0d73f5e5512151c + sha1sum: 045294f7fa878db86e4b8a617ee4ac056a71cb75 + sha256sum: 3c4237cff6323b8c3eaf52c6f3f6415b898a22c0127c6c396c1eaa6eef46c279 +</pre> + + + + + WPE WebKit 2.42.3 released + + 2023-12-04T00:00:00Z + https://wpewebkit.org/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.3.html + <p>This is a bug fix release in the stable 2.42 series.</p> +<h3 id="what%E2%80%99s-new-in-wpe-webkit-2.42.3%3F" tabindex="-1">What’s new in WPE WebKit 2.42.3?</h3> +<ul> +<li>Fix flickering in videos when using VA-API with DMA-BUF for rendering.</li> +<li>Fix color picker being triggered in the inspector when typing <code>tan</code>.</li> +<li>Fix wrong choice of font fallback in some cases when using <code>sans</code> as +the font family.</li> +<li>Fix build failure with <code>libxml2</code> version 2.12.0 due to an API change.</li> +<li>Fix several crashes and rendering issues.</li> +</ul> +<h4 id="checksums" tabindex="-1">Checksums</h4> +<pre> +wpewebkit-2.42.3.tar.xz (30.9 MiB) + md5sum: 44b7b60d439d917d8e9b97639e7d7509 + sha1sum: 0523887944137206faca1080ab3f9e8b4cad6413 + sha256sum: 499969acf25a56b4abd3f3e68324069f579ccb34e441259a5e04031b1f564daa +</pre> + + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/index.html b/aperezdc/learn-discover-rework/index.html new file mode 100644 index 000000000..ae580346a --- /dev/null +++ b/aperezdc/learn-discover-rework/index.html @@ -0,0 +1,666 @@ + + + + + + + + + + + + + WPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

+Create simple and performant systems based on Web platform technologies. +

+

+A WebKit port for Linux-based embedded devices designed with flexibility and hardware acceleration in mind, leveraging common 3D graphics APIs for best performance. +

+Get WPE +
+
+ + +
+ +
+ +
+

Explore Embedded Browsers

+
+

The Web Platform is a frequently chosen foundational technology for many reasons, including:

+
    +
  • Web Platform technologies are built on standards, they have great longevity
  • +
  • The standards are open, embedded systems can incorporate them without licensing fees or other worries. +Open standards with great longevity allows lots more things to benefit from the same investments
  • +
  • The number of people with the basic skills to build things with web technologies is massive
  • +
+Learn more about embedded browsers +
+
+ +
+

Supported Hardware

+

WPE is currently running on a wide range of hardware. This page lists configurations which are known to work, sorted by manufacturer:

+ +
+ +
+

Why Choose WPE?

+

WPE WebKit is widely adopted by many industries, including digital signage, professional audio, home appliances, set-top-boxes, automotive, and inflight infotainment. Countless devices deployed around the globe are already using WPE WebKit as their web runtime platform, and use is growing rapidly.

+ +
+ +
+ + +
+ +
+ +

Success Story

+

Metrological

+

WPE WebKit brought RDK, a modern, performant web browser, to millions of screens. It enables operators to manage devices and easily customize their UIs and apps and provides analytics to improve the customer experience and drive business results.

+

Read More

+
+
+ +
+
+

Use Case

+

Digital Signage

+

Digital signage web rendering players have many advantages and are a trend nowadays. They feature use of HTML for composing the user interface, simple and effortless provisioning and scheduling new contents to the screen from the cloud, a robust environment with an automatic crash recovery system, and more.

+

Learn More

+
+ +
+ +
+ + +
+
+ +
+

Developers

+ +
+ +
+

WPE Design

+

WPE is the official WebKit port for embedded platforms. WPE is uniquely designed for embedded systems in that it doesn’t depend on any user-interface toolkits such as the traditional Cocoa, GTK, etc toolkits.

+ +
+ +
+

WPE’s Frequently Asked Questions

+

We’ve been collecting answers to lots of common questions we’ve been asked. If you have questions, you might find a ready answer in the FAQ.

+
+ +
+
+ +
+
+ +

Brought to you by

+Igalia + +
+Open Source Consultancy +

WPEWebKit is developed by Igalia, an open-source consultancy with a lot of experience working on the Web platform. As the maintainers of this official port of WebKit, Igalia has a great deal of experience with meeting hardware and software challenges in the embedded space and several others. Get in touch!

+igalia.com +
+ +
+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ +
+ + + + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitApplicationInfo/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitApplicationInfo/index.html new file mode 100644 index 000000000..438a522f3 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitApplicationInfo/index.html @@ -0,0 +1,354 @@ + + + + +WebKitApplicationInfo: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitApplicationInfo

+

WebKitApplicationInfo

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitApplicationInfo * + +webkit_application_info_new () +
+WebKitApplicationInfo * + +webkit_application_info_ref () +
+void + +webkit_application_info_unref () +
+void + +webkit_application_info_set_name () +
const gchar * + +webkit_application_info_get_name () +
+void + +webkit_application_info_set_version () +
+void + +webkit_application_info_get_version () +
+
+
+

Types and Values

+
++++ + + + + +
 WebKitApplicationInfo
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitApplicationInfo
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_application_info_new ()

+
WebKitApplicationInfo *
+webkit_application_info_new (void);
+

Creates a new WebKitApplicationInfo

+
+

Returns

+

the newly created WebKitApplicationInfo.

+

[transfer full]

+
+

Since: 2.18

+
+
+
+

webkit_application_info_ref ()

+
WebKitApplicationInfo *
+webkit_application_info_ref (WebKitApplicationInfo *info);
+

Atomically increments the reference count of info + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+
+

Returns

+

The passed in WebKitApplicationInfo

+
+

Since: 2.18

+
+
+
+

webkit_application_info_unref ()

+
void
+webkit_application_info_unref (WebKitApplicationInfo *info);
+

Atomically decrements the reference count of info + by one. If the +reference count drops to 0, all memory allocated by the WebKitApplicationInfo is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_set_name ()

+
void
+webkit_application_info_set_name (WebKitApplicationInfo *info,
+                                  const gchar *name);
+

Set the name of the application. If not provided, or NULL is passed, +g_get_prgname() will be used.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

name

the application name

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_get_name ()

+
const gchar *
+webkit_application_info_get_name (WebKitApplicationInfo *info);
+

Get the name of the application. If webkit_application_info_set_name() hasn't been +called with a valid name, this returns g_get_prgname().

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+
+

Returns

+

the application name

+
+

Since: 2.18

+
+
+
+

webkit_application_info_set_version ()

+
void
+webkit_application_info_set_version (WebKitApplicationInfo *info,
+                                     guint64 major,
+                                     guint64 minor,
+                                     guint64 micro);
+

Set the application version. If the application doesn't use the format +major.minor.micro you can pass 0 as the micro to use major.minor, or pass +0 as both micro and minor to use only major number. Any other format must +be converted to major.minor.micro so that it can be used in version comparisons.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

major

the major version number

 

minor

the minor version number

 

micro

the micro version number

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_get_version ()

+
void
+webkit_application_info_get_version (WebKitApplicationInfo *info,
+                                     guint64 *major,
+                                     guint64 *minor,
+                                     guint64 *micro);
+

Get the application version previously set with webkit_application_info_set_version().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

major

return location for the major version number.

[out]

minor

return location for the minor version number.

[out][allow-none]

micro

return location for the micro version number.

[out][allow-none]
+
+

Since: 2.18

+
+
+
+

Types and Values

+
+

WebKitApplicationInfo

+
typedef struct _WebKitApplicationInfo WebKitApplicationInfo;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAuthenticationRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAuthenticationRequest/index.html new file mode 100644 index 000000000..4ad444124 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAuthenticationRequest/index.html @@ -0,0 +1,915 @@ + + + + +WebKitAuthenticationRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitAuthenticationRequest

+

WebKitAuthenticationRequest — Represents an authentication request

+
+ +
+

Signals

+
+++++ + + + + + +
voidcancelledRun Last
+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitCredential
+    GObject
+    ╰── WebKitAuthenticationRequest
+
+
+
+

Description

+

Whenever a client attempts to load a page protected by HTTP +authentication, credentials will need to be provided to authorize access. +To allow the client to decide how it wishes to handle authentication, +WebKit will fire a “authenticate” signal with a +WebKitAuthenticationRequest object to provide client side +authentication support. Credentials are exposed through the +WebKitCredential object.

+

In case the client application does not wish +to handle this signal WebKit will provide a default handler. To handle +authentication asynchronously, simply increase the reference count of the +WebKitAuthenticationRequest object.

+
+
+

Functions

+
+

webkit_authentication_request_authenticate ()

+
void
+webkit_authentication_request_authenticate
+                               (WebKitAuthenticationRequest *request,
+                                WebKitCredential *credential);
+

Authenticate the WebKitAuthenticationRequest using the WebKitCredential +supplied. To continue without credentials, pass NULL as credential +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitAuthenticationRequest

 

credential

A WebKitCredential, or NULL.

[transfer none][allow-none]
+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_cancel ()

+
void
+webkit_authentication_request_cancel (WebKitAuthenticationRequest *request);
+

Cancel the authentication challenge. This will also cancel the page loading and result in a +“load-failed” signal with a WebKitNetworkError of type WEBKIT_NETWORK_ERROR_CANCELLED being emitted.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_can_save_credentials ()

+
gboolean
+webkit_authentication_request_can_save_credentials
+                               (WebKitAuthenticationRequest *request);
+

Determine whether the authentication method associated with this +WebKitAuthenticationRequest should allow the storage of credentials. +This will return FALSE if WebKit doesn't support credential storing +or if private browsing is enabled.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if WebKit can store credentials or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_host ()

+
const gchar *
+webkit_authentication_request_get_host
+                               (WebKitAuthenticationRequest *request);
+

Get the host that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The host of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_port ()

+
guint
+webkit_authentication_request_get_port
+                               (WebKitAuthenticationRequest *request);
+

Get the port that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The port of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_is_retry ()

+
gboolean
+webkit_authentication_request_is_retry
+                               (WebKitAuthenticationRequest *request);
+

Determine whether this this is a first attempt or a retry for this authentication challenge.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if authentication attempt is a retry or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_proposed_credential ()

+
WebKitCredential *
+webkit_authentication_request_get_proposed_credential
+                               (WebKitAuthenticationRequest *request);
+

Get the WebKitCredential of the proposed authentication challenge that was +stored from a previous session. The client can use this directly for +authentication or construct their own WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

A WebKitCredential encapsulating credential details +or NULL if there is no stored credential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_realm ()

+
const gchar *
+webkit_authentication_request_get_realm
+                               (WebKitAuthenticationRequest *request);
+

Get the realm that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The realm of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_scheme ()

+
WebKitAuthenticationScheme
+webkit_authentication_request_get_scheme
+                               (WebKitAuthenticationRequest *request);
+

Get the authentication scheme of the authentication challenge.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The WebKitAuthenticationScheme of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_is_for_proxy ()

+
gboolean
+webkit_authentication_request_is_for_proxy
+                               (WebKitAuthenticationRequest *request);
+

Determine whether the authentication challenge is associated with a proxy server rather than an "origin" server.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if authentication is for a proxy or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_credential_new ()

+
WebKitCredential *
+webkit_credential_new (const gchar *username,
+                       const gchar *password,
+                       WebKitCredentialPersistence persistence);
+

Create a new credential from the provided username, password and persistence mode.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

username

The username for the new credential

 

password

The password for the new credential

 

persistence

The WebKitCredentialPersistence of the new credential

 
+
+
+

Returns

+

A WebKitCredential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_credential_copy ()

+
WebKitCredential *
+webkit_credential_copy (WebKitCredential *credential);
+

Make a copy of the WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

A copy of passed in WebKitCredential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_credential_free ()

+
void
+webkit_credential_free (WebKitCredential *credential);
+

Free the WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

A WebKitCredential

 
+
+

Since: 2.2

+
+
+
+

webkit_credential_get_password ()

+
const gchar *
+webkit_credential_get_password (WebKitCredential *credential);
+

Get the password currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The password stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_get_persistence ()

+
WebKitCredentialPersistence
+webkit_credential_get_persistence (WebKitCredential *credential);
+

Get the persistence mode currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The WebKitCredentialPersistence stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_get_username ()

+
const gchar *
+webkit_credential_get_username (WebKitCredential *credential);
+

Get the username currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The username stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_has_password ()

+
gboolean
+webkit_credential_has_password (WebKitCredential *credential);
+

Determine whether this credential has a password stored.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

TRUE if the credential has a password or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WebKitAuthenticationRequest

+
struct WebKitAuthenticationRequest;
+
+
+
+

enum WebKitAuthenticationScheme

+

Enum values representing the authentication scheme.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_AUTHENTICATION_SCHEME_DEFAULT

+

The default authentication scheme of WebKit.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTTP_BASIC

+

Basic authentication scheme as defined in RFC 2617.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTTP_DIGEST

+

Digest authentication scheme as defined in RFC 2617.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTML_FORM

+

HTML Form authentication.

+
 

WEBKIT_AUTHENTICATION_SCHEME_NTLM

+

NTLM Microsoft proprietary authentication scheme.

+
 

WEBKIT_AUTHENTICATION_SCHEME_NEGOTIATE

+

Negotiate (or SPNEGO) authentication scheme as defined in RFC 4559.

+
 

WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_REQUESTED

+

Client Certificate Authentication (see RFC 2246).

+
 

WEBKIT_AUTHENTICATION_SCHEME_SERVER_TRUST_EVALUATION_REQUESTED

+

Server Trust Authentication.

+
 

WEBKIT_AUTHENTICATION_SCHEME_UNKNOWN

+

Authentication scheme unknown.

+
 
+
+

Since: 2.2

+
+
+
+

WebKitCredential

+
typedef struct _WebKitCredential WebKitCredential;
+
+
+
+

enum WebKitCredentialPersistence

+

Enum values representing the duration for which a credential persists.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_CREDENTIAL_PERSISTENCE_NONE

+

Credential does not persist

+
 

WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION

+

Credential persists for session only

+
 

WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT

+

Credential persists permanently

+
 
+
+

Since: 2.2

+
+
+
+

Signal Details

+
+

The “cancelled” signal

+
void
+user_function (WebKitAuthenticationRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when the user authentication request is +cancelled. It allows the application to dismiss its authentication +dialog in case of page load failure for example.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

the WebKitAuthenticationRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAutomationSession/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAutomationSession/index.html new file mode 100644 index 000000000..95112a530 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAutomationSession/index.html @@ -0,0 +1,294 @@ + + + + +WebKitAutomationSession: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitAutomationSession

+

WebKitAutomationSession — Automation Session

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + +
+gchar *idRead / Write / Construct Only
+
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitAutomationSession
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitAutomationSession
+
+
+
+

Description

+

WebKitAutomationSession represents an automation session of a WebKitWebContext. +When a new session is requested, a WebKitAutomationSession is created and the signal +WebKitWebContext::automation-started is emitted with the WebKitAutomationSession as +argument. Then, the automation client can request the session to create a new +WebKitWebView to interact with it. When this happens the signal “create-web-view” +is emitted.

+
+
+

Functions

+
+

webkit_automation_session_get_id ()

+
const char *
+webkit_automation_session_get_id (WebKitAutomationSession *session);
+

Get the unique identifier of a WebKitAutomationSession

+
+

Parameters

+
+++++ + + + + + +

session

a WebKitAutomationSession

 
+
+
+

Returns

+

the unique identifier of session +

+
+

Since: 2.18

+
+
+
+

webkit_automation_session_set_application_info ()

+
void
+webkit_automation_session_set_application_info
+                               (WebKitAutomationSession *session,
+                                WebKitApplicationInfo *info);
+

Set the application information to session +. This information will be used by the driver service +to match the requested capabilities with the actual application information. If this information +is not provided to the session when a new automation session is requested, the creation might fail +if the client requested a specific browser name or version. This will not have any effect when called +after the automation session has been fully created, so this must be called in the callback of +“automation-started” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

session

a WebKitAutomationSession

 

info

a WebKitApplicationInfo

 
+
+

Since: 2.18

+
+
+
+

webkit_automation_session_get_application_info ()

+
WebKitApplicationInfo *
+webkit_automation_session_get_application_info
+                               (WebKitAutomationSession *session);
+

Get the WebKitAutomationSession previously set with webkit_automation_session_set_application_info().

+
+

Parameters

+
+++++ + + + + + +

session

a WebKitAutomationSession

 
+
+
+

Returns

+

the WebKitAutomationSession of session +, or NULL if no one has been set.

+

[transfer none]

+
+

Since: 2.18

+
+
+
+

Types and Values

+
+

struct WebKitAutomationSession

+
struct WebKitAutomationSession;
+
+
+
+

Property Details

+
+

The “id” property

+
  “id”                       gchar *
+

The session unique identifier.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.18

+
+
+
+

Signal Details

+
+

The “create-web-view” signal

+
WebKitWebView*
+user_function (WebKitAutomationSession *session,
+               gpointer                 user_data)
+

This signal is emitted when the automation client requests a new +browsing context to interact with it. The callback handler should +return a WebKitWebView created with “is-controlled-by-automation” +construct property enabled. The returned WebKitWebView could be an existing +web view or a new one created and added to a new tab or window.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

session

a WebKitAutomationSession

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

a WebKitWebView widget.

+

[transfer none]

+
+

Flags: Run Last

+

Since: 2.18

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardList/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardList/index.html new file mode 100644 index 000000000..5355ef384 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardList/index.html @@ -0,0 +1,518 @@ + + + + +WebKitBackForwardList: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitBackForwardList

+

WebKitBackForwardList — List of visited pages

+
+ +
+

Signals

+
+++++ + + + + + +
voidchangedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitBackForwardList
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitBackForwardList
+
+
+
+

Description

+

WebKitBackForwardList maintains a list of visited pages used to +navigate to recent pages. Items are inserted in the list in the +order they are visited.

+

WebKitBackForwardList also maintains the notion of the current item +(which is always at index 0), the preceding item (which is at index -1), +and the following item (which is at index 1). +Methods webkit_web_view_go_back() and webkit_web_view_go_forward() move +the current item backward or forward by one. Method +webkit_web_view_go_to_back_forward_list_item() sets the current item to the +specified item. All other methods returning WebKitBackForwardListItems +do not change the value of the current item, they just return the requested +item or items.

+
+
+

Functions

+
+

webkit_back_forward_list_get_length ()

+
guint
+webkit_back_forward_list_get_length (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the length of back_forward_list +.

+
+
+
+
+

webkit_back_forward_list_get_current_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_current_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the current item in back_forward_list +.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a WebKitBackForwardListItem +or NULL if back_forward_list +is empty.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_back_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_back_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the item that precedes the current item.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the WebKitBackForwardListItem +preceding the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_forward_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_forward_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the item that follows the current item.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the WebKitBackForwardListItem +following the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_nth_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_nth_item (WebKitBackForwardList *back_forward_list,
+                                       gint index);
+

Returns the item at a given index relative to the current item.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

index

the index of the item

 
+
+
+

Returns

+

the WebKitBackForwardListItem +located at the specified index relative to the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_back_list ()

+
GList *
+webkit_back_forward_list_get_back_list
+                               (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a GList of +items preceding the current item.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_back_list_with_limit ()

+
GList *
+webkit_back_forward_list_get_back_list_with_limit
+                               (WebKitBackForwardList *back_forward_list,
+                                guint limit);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

limit

the number of items to retrieve

 
+
+
+

Returns

+

a GList of +items preceding the current item limited by limit +.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_forward_list ()

+
GList *
+webkit_back_forward_list_get_forward_list
+                               (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a GList of +items following the current item.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_forward_list_with_limit ()

+
GList *
+webkit_back_forward_list_get_forward_list_with_limit
+                               (WebKitBackForwardList *back_forward_list,
+                                guint limit);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

limit

the number of items to retrieve

 
+
+
+

Returns

+

a GList of +items following the current item limited by limit +.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

Types and Values

+
+

struct WebKitBackForwardList

+
struct WebKitBackForwardList;
+
+
+
+

Signal Details

+
+

The “changed” signal

+
void
+user_function (WebKitBackForwardList     *back_forward_list,
+               WebKitBackForwardListItem *item_added,
+               gpointer                   items_removed,
+               gpointer                   user_data)
+

This signal is emitted when back_forward_list + changes. This happens +when the current item is updated, a new item is added or one or more +items are removed. Note that both item_added + and items_removed + can +NULL when only the current item is updated. Items are only removed +when the list is cleared or the maximum items limit is reached.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

back_forward_list

the WebKitBackForwardList on which the signal was emitted

 

item_added

the WebKitBackForwardListItem added or NULL.

[allow-none]

items_removed

a GList of WebKitBackForwardListItems

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardListItem/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardListItem/index.html new file mode 100644 index 000000000..97d67015d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardListItem/index.html @@ -0,0 +1,196 @@ + + + + +WebKitBackForwardListItem: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitBackForwardListItem

+

WebKitBackForwardListItem — One item of the WebKitBackForwardList

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
const gchar * + +webkit_back_forward_list_item_get_title () +
const gchar * + +webkit_back_forward_list_item_get_uri () +
const gchar * + +webkit_back_forward_list_item_get_original_uri () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitBackForwardListItem
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── WebKitBackForwardListItem
+
+
+
+

Description

+

A history item is part of the WebKitBackForwardList and consists +out of a title and a URI.

+
+
+

Functions

+
+

webkit_back_forward_list_item_get_title ()

+
const gchar *
+webkit_back_forward_list_item_get_title
+                               (WebKitBackForwardListItem *list_item);
+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the page title of list_item +or NULL +when the title is empty.

+
+
+
+
+

webkit_back_forward_list_item_get_uri ()

+
const gchar *
+webkit_back_forward_list_item_get_uri (WebKitBackForwardListItem *list_item);
+

This URI may differ from the original URI if the page was, +for example, redirected to a new location. +See also webkit_back_forward_list_item_get_original_uri().

+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the URI of list_item +or NULL +when the URI is empty.

+
+
+
+
+

webkit_back_forward_list_item_get_original_uri ()

+
const gchar *
+webkit_back_forward_list_item_get_original_uri
+                               (WebKitBackForwardListItem *list_item);
+

See also webkit_back_forward_list_item_get_uri().

+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the original URI of list_item +or NULL +when the original URI is empty.

+
+
+
+
+

Types and Values

+
+

struct WebKitBackForwardListItem

+
struct WebKitBackForwardListItem;
+
+
+
+

See Also

+

WebKitBackForwardList

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenu/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenu/index.html new file mode 100644 index 000000000..79d16f28d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenu/index.html @@ -0,0 +1,690 @@ + + + + +WebKitContextMenu: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitContextMenu

+

WebKitContextMenu — Represents the context menu in a WebKitWebView

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitContextMenu
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitContextMenu
+
+
+
+

Description

+

WebKitContextMenu represents a context menu containing +WebKitContextMenuItems in a WebKitWebView.

+

When a WebKitWebView is about to display the context menu, it +emits the “context-menu” signal, which has the +WebKitContextMenu as an argument. You can modify it, adding new +submenus that you can create with webkit_context_menu_new(), adding +new WebKitContextMenuItems with +webkit_context_menu_prepend(), webkit_context_menu_append() or +webkit_context_menu_insert(), maybe after having removed the +existing ones with webkit_context_menu_remove_all().

+
+
+

Functions

+
+

webkit_context_menu_new ()

+
WebKitContextMenu *
+webkit_context_menu_new (void);
+

Creates a new WebKitContextMenu object to be used as a submenu of an existing +WebKitContextMenu. The context menu of a WebKitWebView is created by the view +and passed as an argument of “context-menu” signal. +To add items to the menu use webkit_context_menu_prepend(), +webkit_context_menu_append() or webkit_context_menu_insert(). +See also webkit_context_menu_new_with_items() to create a WebKitContextMenu with +a list of initial items.

+
+

Returns

+

The newly created WebKitContextMenu object

+
+
+
+
+

webkit_context_menu_new_with_items ()

+
WebKitContextMenu *
+webkit_context_menu_new_with_items (GList *items);
+

Creates a new WebKitContextMenu object to be used as a submenu of an existing +WebKitContextMenu with the given initial items. +See also webkit_context_menu_new()

+
+

Parameters

+
+++++ + + + + + +

items

a GList of WebKitContextMenuItem.

[element-type WebKitContextMenuItem]
+
+
+

Returns

+

The newly created WebKitContextMenu object

+
+
+
+
+

webkit_context_menu_prepend ()

+
void
+webkit_context_menu_prepend (WebKitContextMenu *menu,
+                             WebKitContextMenuItem *item);
+

Adds item + at the beginning of the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 
+
+
+
+
+

webkit_context_menu_append ()

+
void
+webkit_context_menu_append (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item);
+

Adds item + at the end of the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 
+
+
+
+
+

webkit_context_menu_insert ()

+
void
+webkit_context_menu_insert (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item,
+                            gint position);
+

Inserts item + into the menu + at the given position. +If position + is negative, or is larger than the number of items +in the WebKitContextMenu, the item is added on to the end of +the menu +. The first position is 0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 

position

the position to insert the item

 
+
+
+
+
+

webkit_context_menu_move_item ()

+
void
+webkit_context_menu_move_item (WebKitContextMenu *menu,
+                               WebKitContextMenuItem *item,
+                               gint position);
+

Moves item + to the given position in the menu +. +If position + is negative, or is larger than the number of items +in the WebKitContextMenu, the item is added on to the end of +the menu +. +The first position is 0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 

position

the new position to move the item

 
+
+
+
+
+

webkit_context_menu_get_items ()

+
GList *
+webkit_context_menu_get_items (WebKitContextMenu *menu);
+

Returns the item list of menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

a GList of +WebKitContextMenuItems.

+

[element-type WebKitContextMenuItem][transfer none]

+
+
+
+
+

webkit_context_menu_get_n_items ()

+
guint
+webkit_context_menu_get_n_items (WebKitContextMenu *menu);
+

Gets the length of the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the number of WebKitContextMenuItems in menu +

+
+
+
+
+

webkit_context_menu_first ()

+
WebKitContextMenuItem *
+webkit_context_menu_first (WebKitContextMenu *menu);
+

Gets the first item in the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the first WebKitContextMenuItem of menu +, +or NULL if the WebKitContextMenu is empty.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_last ()

+
WebKitContextMenuItem *
+webkit_context_menu_last (WebKitContextMenu *menu);
+

Gets the last item in the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the last WebKitContextMenuItem of menu +, +or NULL if the WebKitContextMenu is empty.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_get_item_at_position ()

+
WebKitContextMenuItem *
+webkit_context_menu_get_item_at_position
+                               (WebKitContextMenu *menu,
+                                guint position);
+

Gets the item at the given position in the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

position

the position of the item, counting from 0

 
+
+
+

Returns

+

the WebKitContextMenuItem at position position +in menu +, +or NULL if the position is off the end of the menu +.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_remove ()

+
void
+webkit_context_menu_remove (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item);
+

Removes item + from the menu +. +See also webkit_context_menu_remove_all() to remove all items.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to remove

 
+
+
+
+
+

webkit_context_menu_remove_all ()

+
void
+webkit_context_menu_remove_all (WebKitContextMenu *menu);
+

Removes all items of the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+
+
+

webkit_context_menu_set_user_data ()

+
void
+webkit_context_menu_set_user_data (WebKitContextMenu *menu,
+                                   GVariant *user_data);
+

Sets user data to menu +. +This function can be used from a Web Process extension to set user data +that can be retrieved from the UI Process using webkit_context_menu_get_user_data(). +If the user_data + GVariant is floating, it is consumed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

user_data

a GVariant

 
+
+

Since: 2.8

+
+
+
+

webkit_context_menu_get_user_data ()

+
GVariant *
+webkit_context_menu_get_user_data (WebKitContextMenu *menu);
+

Gets the user data of menu +. +This function can be used from the UI Process to get user data previously set +from the Web Process with webkit_context_menu_set_user_data().

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the user data of menu +, or NULL if menu +doesn't have user data.

+

[transfer none]

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitContextMenu

+
struct WebKitContextMenu;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenuItem/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenuItem/index.html new file mode 100644 index 000000000..372bc9d82 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenuItem/index.html @@ -0,0 +1,793 @@ + + + + +WebKitContextMenuItem: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitContextMenuItem

+

WebKitContextMenuItem — One item of the WebKitContextMenu

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitContextMenuItem
enumWebKitContextMenuAction
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── WebKitContextMenuItem
+
+
+
+

Description

+

The WebKitContextMenu is composed of WebKitContextMenuItems. These items can be created from a GtkAction, from a +WebKitContextMenuAction or from a WebKitContextMenuAction and a +label. These WebKitContextMenuActions denote stock actions +for the items. You can also create separators and submenus.

+
+
+

Functions

+
+

webkit_context_menu_item_new_from_gaction ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_gaction
+                               (GAction *action,
+                                const gchar *label,
+                                GVariant *target);
+

Creates a new WebKitContextMenuItem for the given action + and label +. On activation +target + will be passed as parameter to the callback.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

action

a GAction

 

label

the menu item label text

 

target

a GVariant to use as the action target.

[allow-none]
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+

Since: 2.18

+
+
+
+

webkit_context_menu_item_new_from_stock_action ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_stock_action
+                               (WebKitContextMenuAction action);
+

Creates a new WebKitContextMenuItem for the given stock action. +Stock actions are handled automatically by WebKit so that, for example, +when a menu item created with a WEBKIT_CONTEXT_MENU_ACTION_STOP is +activated the action associated will be handled by WebKit and the current +load operation will be stopped. You can get the GtkAction of a +WebKitContextMenuItem created with a WebKitContextMenuAction with +webkit_context_menu_item_get_action() and connect to “activate” signal +to be notified when the item is activated. But you can't prevent the associated +action from being performed.

+
+

Parameters

+
+++++ + + + + + +

action

a WebKitContextMenuAction stock action

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_from_stock_action_with_label ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_stock_action_with_label
+                               (WebKitContextMenuAction action,
+                                const gchar *label);
+

Creates a new WebKitContextMenuItem for the given stock action using the given label +. +Stock actions have a predefined label, this method can be used to create a +WebKitContextMenuItem for a WebKitContextMenuAction but using a custom label.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

action

a WebKitContextMenuAction stock action

 

label

a custom label text to use instead of the predefined one

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_with_submenu ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_with_submenu
+                               (const gchar *label,
+                                WebKitContextMenu *submenu);
+

Creates a new WebKitContextMenuItem using the given label + with a submenu.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

label

the menu item label text

 

submenu

a WebKitContextMenu to set

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_separator ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_separator
+                               (void);
+

Creates a new WebKitContextMenuItem representing a separator.

+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_get_gaction ()

+
GAction *
+webkit_context_menu_item_get_gaction (WebKitContextMenuItem *item);
+

Gets the action associated to item + as a GAction.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the GAction associated to the WebKitContextMenuItem, +or NULL if item +is a separator.

+

[transfer none]

+
+

Since: 2.18

+
+
+
+

webkit_context_menu_item_get_stock_action ()

+
WebKitContextMenuAction
+webkit_context_menu_item_get_stock_action
+                               (WebKitContextMenuItem *item);
+

Gets the WebKitContextMenuAction of item +. If the WebKitContextMenuItem was not +created for a stock action WEBKIT_CONTEXT_MENU_ACTION_CUSTOM will be +returned. If the WebKitContextMenuItem is a separator WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION +will be returned.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the WebKitContextMenuAction of item +

+
+
+
+
+

webkit_context_menu_item_is_separator ()

+
gboolean
+webkit_context_menu_item_is_separator (WebKitContextMenuItem *item);
+

Checks whether item + is a separator.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

TRUE is item +is a separator or FALSE otherwise

+
+
+
+
+

webkit_context_menu_item_set_submenu ()

+
void
+webkit_context_menu_item_set_submenu (WebKitContextMenuItem *item,
+                                      WebKitContextMenu *submenu);
+

Sets or replaces the item + submenu. If submenu + is NULL the current +submenu of item + is removed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

item

a WebKitContextMenuItem

 

submenu

a WebKitContextMenu.

[allow-none]
+
+
+
+
+

webkit_context_menu_item_get_submenu ()

+
WebKitContextMenu *
+webkit_context_menu_item_get_submenu (WebKitContextMenuItem *item);
+

Gets the submenu of item +.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the WebKitContextMenu representing the submenu of +item +or NULL if item +doesn't have a submenu.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

WebKitContextMenuItem

+
typedef struct _WebKitContextMenuItem WebKitContextMenuItem;
+
+
+
+

enum WebKitContextMenuAction

+

Enum values used to denote the stock actions for +WebKitContextMenuItems

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION

+

No action, used by separator menu items.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK

+

Open current link.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW

+

Open current link in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK

+

Download link destination.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD

+

Copy link location to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW

+

Open current image in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK

+

Download current image.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD

+

Copy current image to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW

+

Open current frame in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_GO_BACK

+

Load the previous history item.

+
 

WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD

+

Load the next history item.

+
 

WEBKIT_CONTEXT_MENU_ACTION_STOP

+

Stop any ongoing loading operation.

+
 

WEBKIT_CONTEXT_MENU_ACTION_RELOAD

+

Reload the contents of current view.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY

+

Copy current selection the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_CUT

+

Cut current selection to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_PASTE

+

Paste clipboard contents.

+
 

WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS

+

A proposed replacement for a misspelled word.

+
 

WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND

+

An indicator that spellchecking found no proposed replacements.

+
 

WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING

+

Causes the spellchecker to ignore the word for this session.

+
 

WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING

+

Causes the spellchecker to add the word to the dictionary.

+
 

WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR

+

Ignore grammar.

+
 

WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU

+

Font options menu.

+
 

WEBKIT_CONTEXT_MENU_ACTION_BOLD

+

Bold.

+
 

WEBKIT_CONTEXT_MENU_ACTION_ITALIC

+

Italic.

+
 

WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE

+

Underline.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OUTLINE

+

Outline.

+
 

WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT

+

Open current element in the inspector.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW

+

Open current video element in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW

+

Open current audio element in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD

+

Copy video link location in to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD

+

Copy audio link location in to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS

+

Enable or disable media controls.

+
 

WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP

+

Enable or disable media loop.

+
 

WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN

+

Show current video element in fullscreen mode.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY

+

Play current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE

+

Pause current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE

+

Mute current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK

+

Download video to disk. Since 2.2

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK

+

Download audio to disk. Since 2.2

+
 

WEBKIT_CONTEXT_MENU_ACTION_CUSTOM

+

Custom action defined by applications.

+
 
+
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitCookieManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitCookieManager/index.html new file mode 100644 index 000000000..c31789042 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitCookieManager/index.html @@ -0,0 +1,755 @@ + + + + +WebKitCookieManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitCookieManager

+

WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext

+
+ +
+

Signals

+
+++++ + + + + + +
voidchangedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
structWebKitCookieManager
enumWebKitCookiePersistentStorage
enumWebKitCookieAcceptPolicy
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitCookieManager
+
+
+
+

Description

+

The WebKitCookieManager defines how to set up and handle cookies. +You can get it from a WebKitWebsiteDataManager with +webkit_website_data_manager_get_cookie_manager(), and use it to set where to +store cookies with webkit_cookie_manager_set_persistent_storage(), +or to set the acceptance policy, with webkit_cookie_manager_get_accept_policy().

+
+
+

Functions

+
+

webkit_cookie_manager_set_persistent_storage ()

+
void
+webkit_cookie_manager_set_persistent_storage
+                               (WebKitCookieManager *cookie_manager,
+                                const gchar *filename,
+                                WebKitCookiePersistentStorage storage);
+

Set the filename + where non-session cookies are stored persistently using +storage + as the format to read/write the cookies. +Cookies are initially read from filename + to create an initial set of cookies. +Then, non-session cookies will be written to filename + when the WebKitCookieManager::changed +signal is emitted. +By default, cookie_manager + doesn't store the cookies persistently, so you need to call this +method to keep cookies saved across sessions.

+

This method should never be called on a WebKitCookieManager associated to an ephemeral WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

filename

the filename to read to/write from

 

storage

a WebKitCookiePersistentStorage

 
+
+
+
+
+

webkit_cookie_manager_set_accept_policy ()

+
void
+webkit_cookie_manager_set_accept_policy
+                               (WebKitCookieManager *cookie_manager,
+                                WebKitCookieAcceptPolicy policy);
+

Set the cookie acceptance policy of cookie_manager + as policy +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

policy

a WebKitCookieAcceptPolicy

 
+
+
+
+
+

webkit_cookie_manager_get_accept_policy ()

+
void
+webkit_cookie_manager_get_accept_policy
+                               (WebKitCookieManager *cookie_manager,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously get the cookie acceptance policy of cookie_manager +.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_get_accept_policy_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_cookie_manager_get_accept_policy_finish ()

+
WebKitCookieAcceptPolicy
+webkit_cookie_manager_get_accept_policy_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_get_accept_policy().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

the cookie acceptance policy of cookie_manager +as a WebKitCookieAcceptPolicy.

+
+
+
+
+

webkit_cookie_manager_add_cookie ()

+
void
+webkit_cookie_manager_add_cookie (WebKitCookieManager *cookie_manager,
+                                  SoupCookie *cookie,
+                                  GCancellable *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer user_data);
+

Asynchronously add a SoupCookie to the underlying storage.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_add_cookie_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cookie

the SoupCookie to be added

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_add_cookie_finish ()

+
gboolean
+webkit_cookie_manager_add_cookie_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_add_cookie().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the cookie was added or FALSE in case of error.

+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_get_cookies ()

+
void
+webkit_cookie_manager_get_cookies (WebKitCookieManager *cookie_manager,
+                                   const gchar *uri,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously get a list of SoupCookie from cookie_manager + associated with uri +, which +must be either an HTTP or an HTTPS URL.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_get_cookies_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

uri

the URI associated to the cookies to be retrieved

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_get_cookies_finish ()

+
GList *
+webkit_cookie_manager_get_cookies_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_get_cookies(). +The return value is a GSList of SoupCookie instances which should be released +with g_list_free_full() and soup_cookie_free().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

A GList of SoupCookie instances.

+

[element-type SoupCookie][transfer full]

+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_delete_cookie ()

+
void
+webkit_cookie_manager_delete_cookie (WebKitCookieManager *cookie_manager,
+                                     SoupCookie *cookie,
+                                     GCancellable *cancellable,
+                                     GAsyncReadyCallback callback,
+                                     gpointer user_data);
+

Asynchronously delete a SoupCookie from the current session.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_delete_cookie_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cookie

the SoupCookie to be deleted

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_delete_cookie_finish ()

+
gboolean
+webkit_cookie_manager_delete_cookie_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_delete_cookie().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the cookie was deleted or FALSE in case of error.

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

struct WebKitCookieManager

+
struct WebKitCookieManager;
+
+
+
+

enum WebKitCookiePersistentStorage

+

Enum values used to denote the cookie persistent storage types.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT

+

Cookies are stored in a text + file in the Mozilla "cookies.txt" format.

+
 

WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE

+

Cookies are stored in a SQLite + file in the current Mozilla format.

+
 
+
+
+
+
+

enum WebKitCookieAcceptPolicy

+

Enum values used to denote the cookie acceptance policies.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS

+

Accept all cookies unconditionally.

+
 

WEBKIT_COOKIE_POLICY_ACCEPT_NEVER

+

Reject all cookies unconditionally.

+
 

WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY

+

Accept only cookies set by the main document loaded.

+
 
+
+
+
+
+

Signal Details

+
+

The “changed” signal

+
void
+user_function (WebKitCookieManager *cookie_manager,
+               gpointer             user_data)
+

This signal is emitted when cookies are added, removed or modified.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cookie_manager

the WebKitCookieManager

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitDownload/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitDownload/index.html new file mode 100644 index 000000000..c541fd71d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitDownload/index.html @@ -0,0 +1,825 @@ + + + + +WebKitDownload: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDownload

+

WebKitDownload — Object used to communicate with the application when downloading

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
gbooleanallow-overwriteRead / Write
+gchar *destinationRead
gdoubleestimated-progressRead
+WebKitURIResponse *responseRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidcreated-destinationRun Last
gbooleandecide-destinationRun Last
voidfailedRun Last
voidfinishedRun Last
voidreceived-dataRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitDownload
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDownload
+
+
+
+

Description

+

WebKitDownload carries information about a download request and +response, including a WebKitURIRequest and a WebKitURIResponse +objects. The application may use this object to control the +download process, or to simply figure out what is to be downloaded, +and handle the download process itself.

+
+
+

Functions

+
+

webkit_download_get_request ()

+
WebKitURIRequest *
+webkit_download_get_request (WebKitDownload *download);
+

Retrieves the WebKitURIRequest object that backs the download +process.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitURIRequest of download +.

+

[transfer none]

+
+
+
+
+

webkit_download_get_destination ()

+
const gchar *
+webkit_download_get_destination (WebKitDownload *download);
+

Obtains the URI to which the downloaded file will be written. You +can connect to “created-destination” to make +sure this method returns a valid destination.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the destination URI or NULL

+
+
+
+
+

webkit_download_set_destination ()

+
void
+webkit_download_set_destination (WebKitDownload *download,
+                                 const gchar *uri);
+

Sets the URI to which the downloaded file will be written. +This method should be called before the download transfer +starts or it will not have any effect on the ongoing download +operation. To set the destination using the filename suggested +by the server connect to “decide-destination” +signal and call webkit_download_set_destination(). If you want to +set a fixed destination URI that doesn't depend on the suggested +filename you can connect to notify::response signal and call +webkit_download_set_destination(). +If “decide-destination” signal is not handled +and destination URI is not set when the download transfer starts, +the file will be saved with the filename suggested by the server in +G_USER_DIRECTORY_DOWNLOAD directory.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

a WebKitDownload

 

uri

the destination URI

 
+
+
+
+
+

webkit_download_get_response ()

+
WebKitURIResponse *
+webkit_download_get_response (WebKitDownload *download);
+

Retrieves the WebKitURIResponse object that backs the download +process. This method returns NULL if called before the response +is received from the server. You can connect to notify::response +signal to be notified when the response is received.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitURIResponse, or NULL if +the response hasn't been received yet.

+

[transfer none]

+
+
+
+
+

webkit_download_cancel ()

+
void
+webkit_download_cancel (WebKitDownload *download);
+

Cancels the download. When the ongoing download +operation is effectively cancelled the signal +“failed” is emitted with +WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER error.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+
+
+

webkit_download_get_estimated_progress ()

+
gdouble
+webkit_download_get_estimated_progress
+                               (WebKitDownload *download);
+

Gets the value of the “estimated-progress” property. +You can monitor the estimated progress of the download operation by +connecting to the notify::estimated-progress signal of download +.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

an estimate of the of the percent complete for a download +as a range from 0.0 to 1.0.

+
+
+
+
+

webkit_download_get_elapsed_time ()

+
gdouble
+webkit_download_get_elapsed_time (WebKitDownload *download);
+

Gets the elapsed time in seconds, including any fractional part. +If the download finished, had an error or was cancelled this is +the time between its start and the event.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

seconds since the download was started

+
+
+
+
+

webkit_download_get_received_data_length ()

+
guint64
+webkit_download_get_received_data_length
+                               (WebKitDownload *download);
+

Gets the length of the data already downloaded for download + +in bytes.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the amount of bytes already downloaded.

+
+
+
+
+

webkit_download_get_web_view ()

+
WebKitWebView *
+webkit_download_get_web_view (WebKitDownload *download);
+

Get the WebKitWebView that initiated the download.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitWebView that initiated download +, +or NULL if download +was not initiated by a WebKitWebView.

+

[transfer none]

+
+
+
+
+

webkit_download_get_allow_overwrite ()

+
gboolean
+webkit_download_get_allow_overwrite (WebKitDownload *download);
+

Returns the current value of the “allow-overwrite” property, +which determines whether the download will overwrite an existing file on +disk, or if it will fail if the destination already exists.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the current value of the “allow-overwrite” property

+
+

Since: 2.6

+
+
+
+

webkit_download_set_allow_overwrite ()

+
void
+webkit_download_set_allow_overwrite (WebKitDownload *download,
+                                     gboolean allowed);
+

Sets the “allow-overwrite” property, which determines whether +the download may overwrite an existing file on disk, or if it will fail if +the destination already exists.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

a WebKitDownload

 

allowed

the new value for the “allow-overwrite” property

 
+
+

Since: 2.6

+
+
+
+

Types and Values

+
+

struct WebKitDownload

+
struct WebKitDownload;
+
+
+
+

Property Details

+
+

The “allow-overwrite” property

+
  “allow-overwrite”          gboolean
+

Whether or not the download is allowed to overwrite an existing file on +disk. If this property is FALSE and the destination already exists, +the download will fail.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 2.6

+
+
+
+

The “destination” property

+
  “destination”              gchar *
+

The local URI to where the download will be saved.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “estimated-progress” property

+
  “estimated-progress”       gdouble
+

An estimate of the percent completion for the download operation. +This value will range from 0.0 to 1.0. The value is an estimate +based on the total number of bytes expected to be received for +a download. +If you need a more accurate progress information you can connect to +“received-data” signal to track the progress.

+

Flags: Read

+

Allowed values: [0,1]

+

Default value: 1

+
+
+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

The WebKitURIResponse associated with this download.

+

Flags: Read

+
+
+
+

Signal Details

+
+

The “created-destination” signal

+
void
+user_function (WebKitDownload *download,
+               gchar          *destination,
+               gpointer        user_data)
+

This signal is emitted after “decide-destination” and before +“received-data” to notify that destination file has been +created successfully at destination +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

destination

the destination URI

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “decide-destination” signal

+
gboolean
+user_function (WebKitDownload *download,
+               gchar          *suggested_filename,
+               gpointer        user_data)
+

This signal is emitted after response is received to +decide a destination URI for the download. If this signal is not +handled the file will be downloaded to G_USER_DIRECTORY_DOWNLOAD +directory using suggested_filename +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

suggested_filename

the filename suggested for the download

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “failed” signal

+
void
+user_function (WebKitDownload *download,
+               GError         *error,
+               gpointer        user_data)
+

This signal is emitted when an error occurs during the download +operation. The given error +, of the domain WEBKIT_DOWNLOAD_ERROR, +contains further details of the failure. If the download is cancelled +with webkit_download_cancel(), this signal is emitted with error +WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER. The download operation finishes +after an error and “finished” signal is emitted after this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “finished” signal

+
void
+user_function (WebKitDownload *download,
+               gpointer        user_data)
+

This signal is emitted when download finishes successfully or due to an error. +In case of errors “failed” signal is emitted before this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

the WebKitDownload

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “received-data” signal

+
void
+user_function (WebKitDownload *download,
+               guint64         data_length,
+               gpointer        user_data)
+

This signal is emitted after response is received, +every time new data has been written to the destination. It's +useful to know the progress of the download operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

data_length

the length of data received in bytes

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitEditorState/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitEditorState/index.html new file mode 100644 index 000000000..3b7f9774f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitEditorState/index.html @@ -0,0 +1,391 @@ + + + + +WebKitEditorState: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitEditorState

+

WebKitEditorState — Web editor state

+
+ +
+

Properties

+
+++++ + + + + + +
guinttyping-attributesRead
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitEditorState
enumWebKitEditorTypingAttributes
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitEditorState
+
+
+
+

Description

+

WebKitEditorState represents the state of a WebKitWebView editor. +Use webkit_web_view_get_editor_state() to get the WebKitEditorState +of a WebKitWebView.

+
+
+

Functions

+
+

webkit_editor_state_get_typing_attributes ()

+
guint
+webkit_editor_state_get_typing_attributes
+                               (WebKitEditorState *editor_state);
+

Gets the typing attributes at the current cursor position. +If there is a selection, this returns the typing attributes +of the selected text. Note that in case of a selection, +typing attributes are considered active only when they are +present throughout the selection.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

a bitmask of WebKitEditorTypingAttributes flags

+
+

Since: 2.10

+
+
+
+

webkit_editor_state_is_cut_available ()

+
gboolean
+webkit_editor_state_is_cut_available (WebKitEditorState *editor_state);
+

Gets whether a cut command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if cut is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_copy_available ()

+
gboolean
+webkit_editor_state_is_copy_available (WebKitEditorState *editor_state);
+

Gets whether a copy command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if copy is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_paste_available ()

+
gboolean
+webkit_editor_state_is_paste_available
+                               (WebKitEditorState *editor_state);
+

Gets whether a paste command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if paste is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_undo_available ()

+
gboolean
+webkit_editor_state_is_undo_available (WebKitEditorState *editor_state);
+

Gets whether an undo command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if undo is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_redo_available ()

+
gboolean
+webkit_editor_state_is_redo_available (WebKitEditorState *editor_state);
+

Gets whether a redo command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if redo is currently available

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

struct WebKitEditorState

+
struct WebKitEditorState;
+
+
+
+

enum WebKitEditorTypingAttributes

+

Enum values with flags representing typing attributes.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_EDITOR_TYPING_ATTRIBUTE_NONE

+

No typing attributes.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_BOLD

+

Bold typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_ITALIC

+

Italic typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_UNDERLINE

+

Underline typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_STRIKETHROUGH

+

Strikethrough typing attribute.

+
 
+
+

Since: 2.10

+
+
+
+

Property Details

+
+

The “typing-attributes” property

+
  “typing-attributes”        guint
+

Bitmask of WebKitEditorTypingAttributes flags. +See webkit_editor_state_get_typing_attributes() for more information.

+

Flags: Read

+

Default value: 0

+

Since: 2.10

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFaviconDatabase/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFaviconDatabase/index.html new file mode 100644 index 000000000..aa34033e8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFaviconDatabase/index.html @@ -0,0 +1,289 @@ + + + + +WebKitFaviconDatabase: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFaviconDatabase

+

WebKitFaviconDatabase — A WebKit favicon database

+
+
+

Functions

+
++++ + + + + + + + + + + +
+gchar * + +webkit_favicon_database_get_favicon_uri () +
+void + +webkit_favicon_database_clear () +
+
+
+

Signals

+
+++++ + + + + + +
voidfavicon-changedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
structWebKitFaviconDatabase
#defineWEBKIT_FAVICON_DATABASE_ERROR
enumWebKitFaviconDatabaseError
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFaviconDatabase
+
+
+
+

Description

+

WebKitFaviconDatabase provides access to the icons associated with +web sites.

+

WebKit will automatically look for available icons in <link> +elements on opened pages as well as an existing favicon.ico and +load the images found into a memory cache if possible. That cache +is frozen to an on-disk database for persistence.

+

If “enable-private-browsing” is TRUE, new icons +won't be added to the on-disk database and no existing icons will +be deleted from it. Nevertheless, WebKit will still store them in +the in-memory cache during the current execution.

+
+
+

Functions

+
+

webkit_favicon_database_get_favicon_uri ()

+
gchar *
+webkit_favicon_database_get_favicon_uri
+                               (WebKitFaviconDatabase *database,
+                                const gchar *page_uri);
+

Obtains the URI of the favicon for the given page_uri +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

database

a WebKitFaviconDatabase

 

page_uri

URI of the page containing the icon

 
+
+
+

Returns

+

a newly allocated URI for the favicon, or NULL if the +database doesn't have a favicon for page_uri +.

+
+
+
+
+

webkit_favicon_database_clear ()

+
void
+webkit_favicon_database_clear (WebKitFaviconDatabase *database);
+

Clears all icons from the database.

+
+

Parameters

+
+++++ + + + + + +

database

a WebKitFaviconDatabase

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFaviconDatabase

+
struct WebKitFaviconDatabase;
+
+
+
+

WEBKIT_FAVICON_DATABASE_ERROR

+
#define WEBKIT_FAVICON_DATABASE_ERROR           (webkit_favicon_database_error_quark())
+
+
+
+
+

enum WebKitFaviconDatabaseError

+

Enum values used to denote the various errors related to the WebKitFaviconDatabase.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED

+

The WebKitFaviconDatabase has not been initialized yet

+
 

WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND

+

There is not an icon available for the requested URL

+
 

WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN

+

There might be an icon for the requested URL, but its data is unknown at the moment

+
 
+
+
+
+
+

Signal Details

+
+

The “favicon-changed” signal

+
void
+user_function (WebKitFaviconDatabase *database,
+               gchar                 *page_uri,
+               gchar                 *favicon_uri,
+               gpointer               user_data)
+

This signal is emitted when the favicon URI of page_uri + has +been changed to favicon_uri + in the database. You can connect +to this signal and call webkit_favicon_database_get_favicon() +to get the favicon. If you are interested in the favicon of a +WebKitWebView it's easier to use the “favicon” +property. See webkit_web_view_get_favicon() for more details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

database

the object on which the signal is emitted

 

page_uri

the URI of the Web page containing the icon

 

favicon_uri

the URI of the favicon

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFileChooserRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFileChooserRequest/index.html new file mode 100644 index 000000000..47030b6a2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFileChooserRequest/index.html @@ -0,0 +1,361 @@ + + + + +WebKitFileChooserRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFileChooserRequest

+

WebKitFileChooserRequest — A request to open a file chooser

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + +
GStrvmime-typesRead
gbooleanselect-multipleRead
GStrvselected-filesRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitFileChooserRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFileChooserRequest
+
+
+
+

Description

+

Whenever the user interacts with an <input type='file' /> +HTML element, WebKit will need to show a dialog to choose one or +more files to be uploaded to the server along with the rest of the +form data. For that to happen in a general way, instead of just +opening a GtkFileChooserDialog (which might be not desirable in +some cases, which could prefer to use their own file chooser +dialog), WebKit will fire the “run-file-chooser” +signal with a WebKitFileChooserRequest object, which will allow +the client application to specify the files to be selected, to +inspect the details of the request (e.g. if multiple selection +should be allowed) and to cancel the request, in case nothing was +selected.

+

In case the client application does not wish to handle this signal, +WebKit will provide a default handler which will asynchronously run +a regular GtkFileChooserDialog for the user to interact with.

+
+
+

Functions

+
+

webkit_file_chooser_request_get_mime_types ()

+
const gchar * const *
+webkit_file_chooser_request_get_mime_types
+                               (WebKitFileChooserRequest *request);
+

Get the list of MIME types the file chooser dialog should handle, +in the format specified in RFC 2046 for "media types". Its contents +depend on the value of the 'accept' attribute for HTML input +elements. This function should normally be called before presenting +the file chooser dialog to the user, to decide whether to allow the +user to select multiple files at once or only one.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

a +NULL-terminated array of strings if a list of accepted MIME types +is defined or NULL otherwise, meaning that any MIME type should be +accepted. This array and its contents are owned by WebKit and +should not be modified or freed.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

webkit_file_chooser_request_get_select_multiple ()

+
gboolean
+webkit_file_chooser_request_get_select_multiple
+                               (WebKitFileChooserRequest *request);
+

Determine whether the file chooser associated to this +WebKitFileChooserRequest should allow selecting multiple files, +which depends on the HTML input element having a 'multiple' +attribute defined.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

TRUE if the file chooser should allow selecting multiple files or FALSE otherwise.

+
+
+
+
+

webkit_file_chooser_request_select_files ()

+
void
+webkit_file_chooser_request_select_files
+                               (WebKitFileChooserRequest *request,
+                                const gchar * const *files);
+

Ask WebKit to select local files for upload and complete the +request.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitFileChooserRequest

 

files

a +NULL-terminated array of strings, containing paths to local files.

[array zero-terminated=1][transfer none]
+
+
+
+
+

webkit_file_chooser_request_get_selected_files ()

+
const gchar * const *
+webkit_file_chooser_request_get_selected_files
+                               (WebKitFileChooserRequest *request);
+

Get the list of selected files currently associated to the +request. Initially, the return value of this method contains any +files selected in previous file chooser requests for this HTML +input element. Once webkit_file_chooser_request_select_files, the +value will reflect whatever files are given.

+

This function should normally be called only before presenting the +file chooser dialog to the user, to decide whether to perform some +extra action, like pre-selecting the files from a previous request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

a +NULL-terminated array of strings if there are selected files +associated with the request or NULL otherwise. This array and its +contents are owned by WebKit and should not be modified or +freed.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

webkit_file_chooser_request_cancel ()

+
void
+webkit_file_chooser_request_cancel (WebKitFileChooserRequest *request);
+

Ask WebKit to cancel the request. It's important to do this in case +no selection has been made in the client, otherwise the request +won't be properly completed and the browser will keep the request +pending forever, which might cause the browser to hang.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFileChooserRequest

+
struct WebKitFileChooserRequest;
+
+
+
+

Property Details

+
+

The “mime-types” property

+
  “mime-types”               GStrv
+

A NULL-terminated array of strings containing the list of MIME +types the file chooser dialog should handle. See +webkit_file_chooser_request_get_mime_types() for more details.

+

Flags: Read

+
+
+
+

The “select-multiple” property

+
  “select-multiple”          gboolean
+

Whether the file chooser should allow selecting multiple +files. See +webkit_file_chooser_request_get_select_multiple() for +more details.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “selected-files” property

+
  “selected-files”           GStrv
+

A NULL-terminated array of strings containing the list of +selected files associated to the current request. See +webkit_file_chooser_request_get_selected_files() for more details.

+

Flags: Read

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFindController/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFindController/index.html new file mode 100644 index 000000000..5cdd0b9f2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFindController/index.html @@ -0,0 +1,743 @@ + + + + +WebKitFindController: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFindController

+

WebKitFindController — Controls text search in a WebKitWebView

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
guintmax-match-countRead
WebKitFindOptionsoptionsRead
+gchar *textRead
+WebKitWebView *web-viewRead / Write / Construct Only
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + +
voidcounted-matchesRun Last
voidfailed-to-find-textRun Last
voidfound-textRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitFindController
enumWebKitFindOptions
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFindController
+
+
+
+

Description

+

A WebKitFindController is used to search text in a WebKitWebView. You +can get a WebKitWebView's WebKitFindController with +webkit_web_view_get_find_controller(), and later use it to search +for text using webkit_find_controller_search(), or get the +number of matches using webkit_find_controller_count_matches(). The +operations are asynchronous and trigger signals when ready, such as +“found-text”, +“failed-to-find-text” or +“counted-matches”.

+
+
+

Functions

+
+

webkit_find_controller_search ()

+
void
+webkit_find_controller_search (WebKitFindController *find_controller,
+                               const gchar *search_text,
+                               guint32 find_options,
+                               guint max_match_count);
+

Looks for search_text + in the WebKitWebView associated with +find_controller + since the beginning of the document highlighting +up to max_match_count + matches. The outcome of the search will be +asynchronously provided by the “found-text” +and “failed-to-find-text” signals.

+

To look for the next or previous occurrences of the same text +with the same find options use webkit_find_controller_search_next() +and/or webkit_find_controller_search_previous(). The +WebKitFindController will use the same text and options for the +following searches unless they are modified by another call to this +method.

+

Note that if the number of matches is higher than max_match_count + +then “found-text” will report G_MAXUINT matches +instead of the actual number.

+

Callers should call webkit_find_controller_search_finish() to +finish the current search operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

search_text

the text to look for

 

find_options

a bitmask with the WebKitFindOptions used in the search

 

max_match_count

the maximum number of matches allowed in the search

 
+
+
+
+
+

webkit_find_controller_search_finish ()

+
void
+webkit_find_controller_search_finish (WebKitFindController *find_controller);
+

Finishes a find operation started by +webkit_find_controller_search(). It will basically unhighlight +every text match found.

+

This method will be typically called when the search UI is +closed/hidden by the client application.

+
+

Parameters

+
+++++ + + + + + +

find_controller

a WebKitFindController

 
+
+
+
+
+

webkit_find_controller_search_next ()

+
void
+webkit_find_controller_search_next (WebKitFindController *find_controller);
+

Looks for the next occurrence of the search text.

+

Calling this method before webkit_find_controller_search() or +webkit_find_controller_count_matches() is a programming error.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+
+
+

webkit_find_controller_search_previous ()

+
void
+webkit_find_controller_search_previous
+                               (WebKitFindController *find_controller);
+

Looks for the previous occurrence of the search text.

+

Calling this method before webkit_find_controller_search() or +webkit_find_controller_count_matches() is a programming error.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+
+
+

webkit_find_controller_get_search_text ()

+
const gchar *
+webkit_find_controller_get_search_text
+                               (WebKitFindController *find_controller);
+

Gets the text that find_controller + is currently searching +for. This text is passed to either +webkit_find_controller_search() or +webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the text to look for in the WebKitWebView.

+
+
+
+
+

webkit_find_controller_count_matches ()

+
void
+webkit_find_controller_count_matches (WebKitFindController *find_controller,
+                                      const gchar *search_text,
+                                      guint32 find_options,
+                                      guint max_match_count);
+

Counts the number of matches for search_text + found in the +WebKitWebView with the provided find_options +. The number of +matches will be provided by the +“counted-matches” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

search_text

the text to look for

 

find_options

a bitmask with the WebKitFindOptions used in the search

 

max_match_count

the maximum number of matches allowed in the search

 
+
+
+
+
+

webkit_find_controller_get_options ()

+
guint32
+webkit_find_controller_get_options (WebKitFindController *find_controller);
+

Gets a bitmask containing the WebKitFindOptions associated with +the current search.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

a bitmask containing the WebKitFindOptions associated +with the current search.

+
+
+
+
+

webkit_find_controller_get_max_match_count ()

+
guint
+webkit_find_controller_get_max_match_count
+                               (WebKitFindController *find_controller);
+

Gets the maximum number of matches to report during a text +lookup. This number is passed as the last argument of +webkit_find_controller_search() or +webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the maximum number of matches to report.

+
+
+
+
+

webkit_find_controller_get_web_view ()

+
WebKitWebView *
+webkit_find_controller_get_web_view (WebKitFindController *find_controller);
+

Gets the WebKitWebView this find controller is associated to. Do +not dereference the returned instance as it belongs to the +WebKitFindController.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the WebKitWebView.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitFindController

+
struct WebKitFindController;
+
+
+
+

enum WebKitFindOptions

+

Enum values used to specify search options.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_FIND_OPTIONS_NONE

+

no search flags, this means a case + sensitive, no wrap, forward only search.

+
 

WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE

+

case insensitive search.

+
 

WEBKIT_FIND_OPTIONS_AT_WORD_STARTS

+

search text only at the + begining of the words.

+
 

WEBKIT_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START

+

treat + capital letters in the middle of words as word start.

+
 

WEBKIT_FIND_OPTIONS_BACKWARDS

+

search backwards.

+
 

WEBKIT_FIND_OPTIONS_WRAP_AROUND

+

if not present search will stop + at the end of the document.

+
 
+
+
+
+
+

Property Details

+
+

The “max-match-count” property

+
  “max-match-count”          guint
+

The maximum number of matches to report for a given search.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “options” property

+
  “options”                  WebKitFindOptions
+

The options to be used in the search operation.

+

Flags: Read

+
+
+
+

The “text” property

+
  “text”                     gchar *
+

The current search text for this WebKitFindController.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “web-view” property

+
  “web-view”                 WebKitWebView *
+

The WebKitWebView this controller is associated to.

+

Flags: Read / Write / Construct Only

+
+
+
+

Signal Details

+
+

The “counted-matches” signal

+
void
+user_function (WebKitFindController *find_controller,
+               guint                 match_count,
+               gpointer              user_data)
+

This signal is emitted when the WebKitFindController has +counted the number of matches for a given text after a call +to webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

match_count

the number of matches of the search text

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “failed-to-find-text” signal

+
void
+user_function (WebKitFindController *find_controller,
+               gpointer              user_data)
+

This signal is emitted when a search operation does not find +any result for the given text. It will be issued if the text +is not found asynchronously after a call to +webkit_find_controller_search(), webkit_find_controller_search_next() +or webkit_find_controller_search_previous().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “found-text” signal

+
void
+user_function (WebKitFindController *find_controller,
+               guint                 match_count,
+               gpointer              user_data)
+

This signal is emitted when a given text is found in the web +page text. It will be issued if the text is found +asynchronously after a call to webkit_find_controller_search(), +webkit_find_controller_search_next() or +webkit_find_controller_search_previous().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

match_count

the number of matches found of the search text

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFormSubmissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFormSubmissionRequest/index.html new file mode 100644 index 000000000..530217a3c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFormSubmissionRequest/index.html @@ -0,0 +1,174 @@ + + + + +WebKitFormSubmissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFormSubmissionRequest

+

WebKitFormSubmissionRequest — Represents a form submission request

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitFormSubmissionRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFormSubmissionRequest
+
+
+
+

Description

+

When a form is about to be submitted in a WebKitWebView, the +“submit-form” signal is emitted. Its request argument +contains information about the text fields of the form, that are +typically used to store login information, returned as lists by +webkit_form_submission_request_list_text_fields(). You can submit the +form with webkit_form_submission_request_submit().

+
+
+

Functions

+
+

webkit_form_submission_request_list_text_fields ()

+
gboolean
+webkit_form_submission_request_list_text_fields
+                               (WebKitFormSubmissionRequest *request,
+                                GPtrArray **field_names,
+                                GPtrArray **field_values);
+

Get lists with the names and values of the text fields contained in +the form associated to request +. Note that names and values may be +NULL.

+

If this function returns FALSE, then both field_names + and +field_values + will be empty.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

request

a WebKitFormSubmissionRequest

 

field_names

names of the text fields in the form.

[out][optional][element-type utf8][transfer none]

field_values

values of the text fields in the form.

[out][optional][element-type utf8][transfer none]
+
+
+

Returns

+

TRUE if the form contains text fields, or FALSE otherwise

+
+

Since: 2.20

+
+
+
+

webkit_form_submission_request_submit ()

+
void
+webkit_form_submission_request_submit (WebKitFormSubmissionRequest *request);
+

Continue the form submission.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFormSubmissionRequest

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFormSubmissionRequest

+
struct WebKitFormSubmissionRequest;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitGeolocationPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitGeolocationPermissionRequest/index.html new file mode 100644 index 000000000..b3af395cf --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitGeolocationPermissionRequest/index.html @@ -0,0 +1,101 @@ + + + + +WebKitGeolocationPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitGeolocationPermissionRequest

+

WebKitGeolocationPermissionRequest — A permission request for sharing user's location

+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitGeolocationPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitGeolocationPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitGeolocationPermissionRequest represents a request for +permission to decide whether WebKit should provide the user's +location to a website when requested through the Geolocation API.

+

When a WebKitGeolocationPermissionRequest is not handled by the user, +it is denied by default.

+

When embedding web views in your application, you *must* configure an +application identifier to allow web content to use geolocation services. +The identifier *must* match the name of the .desktop file which describes +the application, sans the suffix.

+

If your application uses GApplication (or any subclass like +GtkApplication), WebKit will automatically use the identifier returned by +g_application_get_application_id(). This is the recommended approach for +enabling geolocation in applications.

+

If an identifier cannot be obtained through GApplication, the value +returned by g_get_prgname() will be used instead as a fallback. For +programs which cannot use GApplication, calling g_set_prgname() early +during initialization is needed when the name of the executable on disk +does not match the name of a valid .desktop file.

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitGeolocationPermissionRequest

+
struct WebKitGeolocationPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitHitTestResult/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitHitTestResult/index.html new file mode 100644 index 000000000..1ac5b1141 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitHitTestResult/index.html @@ -0,0 +1,714 @@ + + + + +WebKitHitTestResult: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitHitTestResult

+

WebKitHitTestResult — Result of a Hit Test

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
guintcontextRead / Write / Construct Only
+gchar *image-uriRead / Write / Construct Only
+gchar *link-labelRead / Write / Construct Only
+gchar *link-titleRead / Write / Construct Only
+gchar *link-uriRead / Write / Construct Only
+gchar *media-uriRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitHitTestResult
enumWebKitHitTestResultContext
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitHitTestResult
+
+
+
+

Description

+

A Hit Test is an operation to get context information about a given +point in a WebKitWebView. WebKitHitTestResult represents the +result of a Hit Test. It provides context information about what is +at the coordinates of the Hit Test, such as if there's a link, +an image or a media.

+

You can get the context of the HitTestResult with +webkit_hit_test_result_get_context() that returns a bitmask of +WebKitHitTestResultContext flags. You can also use +webkit_hit_test_result_context_is_link(), webkit_hit_test_result_context_is_image() and +webkit_hit_test_result_context_is_media() to determine whether there's +a link, image or a media element at the coordinates of the Hit Test. +Note that it's possible that several WebKitHitTestResultContext flags +are active at the same time, for example if there's a link containing an image.

+

When the mouse is moved over a WebKitWebView a Hit Test is performed +for the mouse coordinates and “mouse-target-changed” +signal is emitted with a WebKitHitTestResult.

+
+
+

Functions

+
+

webkit_hit_test_result_get_context ()

+
guint
+webkit_hit_test_result_get_context (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “context” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

a bitmask of WebKitHitTestResultContext flags

+
+
+
+
+

webkit_hit_test_result_context_is_link ()

+
gboolean
+webkit_hit_test_result_context_is_link
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a link element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_image ()

+
gboolean
+webkit_hit_test_result_context_is_image
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's an image element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_media ()

+
gboolean
+webkit_hit_test_result_context_is_media
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a media element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_editable ()

+
gboolean
+webkit_hit_test_result_context_is_editable
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's an editable element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_selection ()

+
gboolean
+webkit_hit_test_result_context_is_selection
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a selected element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+

Since: 2.8

+
+
+
+

webkit_hit_test_result_context_is_scrollbar ()

+
gboolean
+webkit_hit_test_result_context_is_scrollbar
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a scrollbar element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_get_link_uri ()

+
const gchar *
+webkit_hit_test_result_get_link_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context

+
+
+
+
+

webkit_hit_test_result_get_link_title ()

+
const gchar *
+webkit_hit_test_result_get_link_title (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-title” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the title of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context or the +link element doesn't have a title

+
+
+
+
+

webkit_hit_test_result_get_link_label ()

+
const gchar *
+webkit_hit_test_result_get_link_label (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-label” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the label of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context or the +link element doesn't have a label

+
+
+
+
+

webkit_hit_test_result_get_image_uri ()

+
const gchar *
+webkit_hit_test_result_get_image_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “image-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the image element in the coordinates of the Hit Test, +or NULL if there isn't an image element in hit_test_result +context

+
+
+
+
+

webkit_hit_test_result_get_media_uri ()

+
const gchar *
+webkit_hit_test_result_get_media_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “media-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the media element in the coordinates of the Hit Test, +or NULL if there isn't a media element in hit_test_result +context

+
+
+
+
+

Types and Values

+
+

struct WebKitHitTestResult

+
struct WebKitHitTestResult;
+
+
+
+

enum WebKitHitTestResultContext

+

Enum values with flags representing the context of a WebKitHitTestResult.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT

+

anywhere in the document.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK

+

a hyperlink element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE

+

an image element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA

+

a video or audio element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE

+

an editable element

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR

+

a scrollbar element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION

+

a selected element. Since 2.8

+
 
+
+
+
+
+

Property Details

+
+

The “context” property

+
  “context”                  guint
+

Bitmask of WebKitHitTestResultContext flags representing +the context of the WebKitHitTestResult.

+

Flags: Read / Write / Construct Only

+

Default value: 0

+
+
+
+

The “image-uri” property

+
  “image-uri”                gchar *
+

The URI of the image if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-label” property

+
  “link-label”               gchar *
+

The label of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-title” property

+
  “link-title”               gchar *
+

The title of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-uri” property

+
  “link-uri”                 gchar *
+

The URI of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “media-uri” property

+
  “media-uri”                gchar *
+

The URI of the media if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitInstallMissingMediaPluginsPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitInstallMissingMediaPluginsPermissionRequest/index.html new file mode 100644 index 000000000..20ab0fb11 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitInstallMissingMediaPluginsPermissionRequest/index.html @@ -0,0 +1,131 @@ + + + + +WebKitInstallMissingMediaPluginsPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitInstallMissingMediaPluginsPermissionRequest

+

WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitInstallMissingMediaPluginsPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitInstallMissingMediaPluginsPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitInstallMissingMediaPluginsPermissionRequest represents a request for +permission to decide whether WebKit should try to start a helper application to +install missing media plugins when the media backend couldn't play a media because +the required plugins were not available.

+

When a WebKitInstallMissingMediaPluginsPermissionRequest is not handled by the user, +it is allowed by default.

+
+
+

Functions

+
+

webkit_install_missing_media_plugins_permission_request_get_description ()

+
const gchar *
+webkit_install_missing_media_plugins_permission_request_get_description
+                               (WebKitInstallMissingMediaPluginsPermissionRequest *request);
+

Gets the description about the missing plugins provided by the media backend when a media couldn't be played.

+
+

Parameters

+ +
+
+

Returns

+

a string with the description provided by the media backend.

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

struct WebKitInstallMissingMediaPluginsPermissionRequest

+
struct WebKitInstallMissingMediaPluginsPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationAction/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationAction/index.html new file mode 100644 index 000000000..bc7759f30 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationAction/index.html @@ -0,0 +1,372 @@ + + + + +WebKitNavigationAction: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNavigationAction

+

WebKitNavigationAction

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitNavigationAction
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitNavigationAction
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_navigation_action_copy ()

+
WebKitNavigationAction *
+webkit_navigation_action_copy (WebKitNavigationAction *navigation);
+

Make a copy of navigation +.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

A copy of passed in WebKitNavigationAction.

+

[transfer full]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_free ()

+
void
+webkit_navigation_action_free (WebKitNavigationAction *navigation);
+

Free the WebKitNavigationAction

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_navigation_type ()

+
WebKitNavigationType
+webkit_navigation_action_get_navigation_type
+                               (WebKitNavigationAction *navigation);
+

Return the type of action that triggered the navigation.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

a WebKitNavigationType

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_mouse_button ()

+
guint
+webkit_navigation_action_get_mouse_button
+                               (WebKitNavigationAction *navigation);
+

Return the number of the mouse button that triggered the navigation, or 0 if +the navigation was not started by a mouse event.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

the mouse button number or 0

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_modifiers ()

+
guint
+webkit_navigation_action_get_modifiers
+                               (WebKitNavigationAction *navigation);
+

Return a bitmask of GdkModifierType values describing the modifier keys that were in effect +when the navigation was requested

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

the modifier keys

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_request ()

+
WebKitURIRequest *
+webkit_navigation_action_get_request (WebKitNavigationAction *navigation);
+

Return the WebKitURIRequest associated with the navigation action. +Modifications to the returned object are not taken +into account when the request is sent over the network, and is intended +only to aid in evaluating whether a navigation action should be taken or +not. To modify requests before they are sent over the network the +“send-request” signal can be used instead.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

a WebKitURIRequest.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_is_user_gesture ()

+
gboolean
+webkit_navigation_action_is_user_gesture
+                               (WebKitNavigationAction *navigation);
+

Return whether the navigation was triggered by a user gesture like a mouse click.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

whether navigation action is a user gesture

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_is_redirect ()

+
gboolean
+webkit_navigation_action_is_redirect (WebKitNavigationAction *navigation);
+

Returns whether the navigation + was redirected.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

TRUE if the original navigation was redirected, FALSE otherwise.

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

WebKitNavigationAction

+
typedef struct _WebKitNavigationAction WebKitNavigationAction;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationPolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationPolicyDecision/index.html new file mode 100644 index 000000000..577271f3c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationPolicyDecision/index.html @@ -0,0 +1,271 @@ + + + + +WebKitNavigationPolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNavigationPolicyDecision

+

WebKitNavigationPolicyDecision — A policy decision for navigation actions

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+gchar *frame-nameRead
+WebKitNavigationAction *navigation-actionRead
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitNavigationPolicyDecision
enumWebKitNavigationType
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ╰── WebKitNavigationPolicyDecision
+
+
+
+

Description

+

WebKitNavigationPolicyDecision represents a policy decision for events associated with +navigations. If the value of “mouse-button” is not 0, then +the navigation was triggered by a mouse event.

+
+
+

Functions

+
+

webkit_navigation_policy_decision_get_navigation_action ()

+
WebKitNavigationAction *
+webkit_navigation_policy_decision_get_navigation_action
+                               (WebKitNavigationPolicyDecision *decision);
+

Gets the value of the “navigation-action” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitNavigationPolicyDecision

 
+
+
+

Returns

+

The WebKitNavigationAction triggering this policy decision.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_policy_decision_get_frame_name ()

+
const gchar *
+webkit_navigation_policy_decision_get_frame_name
+                               (WebKitNavigationPolicyDecision *decision);
+

Gets the value of the “frame-name” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitNavigationPolicyDecision

 
+
+
+

Returns

+

The name of the new frame this navigation action targets or NULL

+
+
+
+
+

Types and Values

+
+

struct WebKitNavigationPolicyDecision

+
struct WebKitNavigationPolicyDecision;
+
+
+
+

enum WebKitNavigationType

+

Enum values used to denote the various navigation types.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_NAVIGATION_TYPE_LINK_CLICKED

+

The navigation was triggered by clicking a link.

+
 

WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED

+

The navigation was triggered by submitting a form.

+
 

WEBKIT_NAVIGATION_TYPE_BACK_FORWARD

+

The navigation was triggered by navigating forward or backward.

+
 

WEBKIT_NAVIGATION_TYPE_RELOAD

+

The navigation was triggered by reloading.

+
 

WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED

+

The navigation was triggered by resubmitting a form.

+
 

WEBKIT_NAVIGATION_TYPE_OTHER

+

The navigation was triggered by some other action.

+
 
+
+
+
+
+

Property Details

+
+

The “frame-name” property

+
  “frame-name”               gchar *
+

If this navigation request targets a new frame, this property contains +the name of that frame. For example if the decision was triggered by clicking a +link with a target attribute equal to "_blank", this property will contain the +value of that attribute. In all other cases, this value will be NULL.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “navigation-action” property

+
  “navigation-action”        WebKitNavigationAction *
+

The WebKitNavigationAction that triggered this policy decision.

+

Flags: Read

+

Since: 2.6

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNetworkProxySettings/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNetworkProxySettings/index.html new file mode 100644 index 000000000..3da844752 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNetworkProxySettings/index.html @@ -0,0 +1,284 @@ + + + + +WebKitNetworkProxySettings: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNetworkProxySettings

+

WebKitNetworkProxySettings — Network Proxy Settings

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitNetworkProxySettings
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitNetworkProxySettings
+
+
+
+

Description

+

WebKitNetworkProxySettings can be used to provide a custom proxy configuration +to a WebKitWebContext. You need to call webkit_web_context_set_network_proxy_settings() +with WEBKIT_NETWORK_PROXY_MODE_CUSTOM and a WebKitNetworkProxySettings.

+
+
+

Functions

+
+

webkit_network_proxy_settings_new ()

+
WebKitNetworkProxySettings *
+webkit_network_proxy_settings_new (const gchar *default_proxy_uri,
+                                   const gchar * const *ignore_hosts);
+

Create a new WebKitNetworkProxySettings with the given default_proxy_uri + and ignore_hosts +.

+

The default proxy URI will be used for any URI that doesn't match ignore_hosts +, and doesn't match any +of the schemes added with webkit_network_proxy_settings_add_proxy_for_scheme(). +If default_proxy_uri + starts with "socks://", it will be treated as referring to all three of the +socks5, socks4a, and socks4 proxy types.

+

ignore_hosts + is a list of hostnames and IP addresses that the resolver should allow direct connections to. +Entries can be in one of 4 formats:

+
    +
  • +A hostname, such as "example.com", ".example.com", or "*.example.com", any of which match "example.com" or +any subdomain of it. +

  • +
  • +An IPv4 or IPv6 address, such as "192.168.1.1", which matches only that address. +

  • +
  • +A hostname or IP address followed by a port, such as "example.com:80", which matches whatever the hostname or IP +address would match, but only for URLs with the (explicitly) indicated port. In the case of an IPv6 address, the address +part must appear in brackets: "[::1]:443" +

  • +
  • +An IP address range, given by a base address and prefix length, such as "fe80::/10", which matches any address in that range. +

  • +
+

Note that when dealing with Unicode hostnames, the matching is done against the ASCII form of the name. +Also note that hostname exclusions apply only to connections made to hosts identified by name, and IP address exclusions apply only +to connections made to hosts identified by address. That is, if example.com has an address of 192.168.1.1, and ignore_hosts + +contains only "192.168.1.1", then a connection to "example.com" will use the proxy, and a connection to 192.168.1.1" will not.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

default_proxy_uri

the default proxy URI to use, or NULL.

[allow-none]

ignore_hosts

an optional list of hosts/IP addresses to not use a proxy for.

[allow-none][array zero-terminated=1]
+
+
+

Returns

+

A new WebKitNetworkProxySettings.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_copy ()

+
WebKitNetworkProxySettings *
+webkit_network_proxy_settings_copy (WebKitNetworkProxySettings *proxy_settings);
+

Make a copy of the WebKitNetworkProxySettings.

+
+

Parameters

+
+++++ + + + + + +

proxy_settings

a WebKitNetworkProxySettings

 
+
+
+

Returns

+

A copy of passed in WebKitNetworkProxySettings.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_free ()

+
void
+webkit_network_proxy_settings_free (WebKitNetworkProxySettings *proxy_settings);
+

Free the WebKitNetworkProxySettings.

+
+

Parameters

+
+++++ + + + + + +

proxy_settings

A WebKitNetworkProxySettings

 
+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_add_proxy_for_scheme ()

+
void
+webkit_network_proxy_settings_add_proxy_for_scheme
+                               (WebKitNetworkProxySettings *proxy_settings,
+                                const gchar *scheme,
+                                const gchar *proxy_uri);
+

Adds a URI-scheme-specific proxy. URIs whose scheme matches uri_scheme + will be proxied via proxy_uri +. +As with the default proxy URI, if proxy_uri + starts with "socks://", it will be treated as referring to +all three of the socks5, socks4a, and socks4 proxy types.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy_settings

a WebKitNetworkProxySettings

 

scheme

the URI scheme to add a proxy for

 

proxy_uri

the proxy URI to use for uri_scheme +

 
+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitNetworkProxySettings

+
typedef struct _WebKitNetworkProxySettings WebKitNetworkProxySettings;
+
+
+
+

See Also

+

WebKitWebContext

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotification/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotification/index.html new file mode 100644 index 000000000..3488a0fd1 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotification/index.html @@ -0,0 +1,447 @@ + + + + +WebKitNotification: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNotification

+

WebKitNotification — Object used to hold information about a notification that should be shown to the user.

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+guint64 + +webkit_notification_get_id () +
const gchar * + +webkit_notification_get_title () +
const gchar * + +webkit_notification_get_body () +
const gchar * + +webkit_notification_get_tag () +
+void + +webkit_notification_close () +
+void + +webkit_notification_clicked () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
+gchar *bodyRead
guint64idRead
+gchar *tagRead
+gchar *titleRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + +
voidclickedRun Last
voidclosedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitNotification
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitNotification
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_notification_get_id ()

+
guint64
+webkit_notification_get_id (WebKitNotification *notification);
+

Obtains the unique id for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the unique id for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_title ()

+
const gchar *
+webkit_notification_get_title (WebKitNotification *notification);
+

Obtains the title for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the title for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_body ()

+
const gchar *
+webkit_notification_get_body (WebKitNotification *notification);
+

Obtains the body for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the body for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_tag ()

+
const gchar *
+webkit_notification_get_tag (WebKitNotification *notification);
+

Obtains the tag identifier for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the tag for the notification.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_notification_close ()

+
void
+webkit_notification_close (WebKitNotification *notification);
+

Closes the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+

Since: 2.8

+
+
+
+

webkit_notification_clicked ()

+
void
+webkit_notification_clicked (WebKitNotification *notification);
+

Tells WebKit the notification has been clicked. This will emit the +“clicked” signal.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

struct WebKitNotification

+
struct WebKitNotification;
+
+
+
+

Property Details

+
+

The “body” property

+
  “body”                     gchar *
+

The body for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.8

+
+
+
+

The “id” property

+
  “id”                       guint64
+

The unique id for the notification.

+

Flags: Read

+

Default value: 0

+

Since: 2.8

+
+
+
+

The “tag” property

+
  “tag”                      gchar *
+

The tag identifier for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.16

+
+
+
+

The “title” property

+
  “title”                    gchar *
+

The title for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.8

+
+
+
+

Signal Details

+
+

The “clicked” signal

+
void
+user_function (WebKitNotification *notification,
+               gpointer            user_data)
+

Emitted when a notification has been clicked. See webkit_notification_clicked().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

notification

the WebKitNotification on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.12

+
+
+
+

The “closed” signal

+
void
+user_function (WebKitNotification *notification,
+               gpointer            user_data)
+

Emitted when a notification has been withdrawn.

+

The default handler will close the notification using libnotify, if built with +support for it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

notification

the WebKitNotification on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotificationPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotificationPermissionRequest/index.html new file mode 100644 index 000000000..4eb113afa --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotificationPermissionRequest/index.html @@ -0,0 +1,88 @@ + + + + +WebKitNotificationPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNotificationPermissionRequest

+

WebKitNotificationPermissionRequest — A permission request for displaying web notifications

+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitNotificationPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitNotificationPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitNotificationPermissionRequest represents a request for +permission to decide whether WebKit should provide the user with +notifications through the Web Notification API.

+

When a WebKitNotificationPermissionRequest is not handled by the user, +it is denied by default.

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitNotificationPermissionRequest

+
struct WebKitNotificationPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPermissionRequest/index.html new file mode 100644 index 000000000..ab12dfe0f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPermissionRequest/index.html @@ -0,0 +1,165 @@ + + + + +WebKitPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPermissionRequest

+

WebKitPermissionRequest — A permission request

+
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +webkit_permission_request_allow () +
+void + +webkit_permission_request_deny () +
+
+
+

Types and Values

+
++++ + + + + +
 WebKitPermissionRequest
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── WebKitPermissionRequest
+
+
+
+

Prerequisites

+

+WebKitPermissionRequest requires + GObject.

+
+
+

Known Implementations

+

+WebKitPermissionRequest is implemented by + WebKitDeviceInfoPermissionRequest, WebKitGeolocationPermissionRequest, WebKitInstallMissingMediaPluginsPermissionRequest, WebKitNotificationPermissionRequest and WebKitUserMediaPermissionRequest.

+
+
+

Description

+

There are situations where an embedder would need to ask the user +for permission to do certain types of operations, such as switching +to fullscreen mode or reporting the user's location through the +standard Geolocation API. In those cases, WebKit will emit a +“permission-request” signal with a +WebKitPermissionRequest object attached to it.

+
+
+

Functions

+
+

webkit_permission_request_allow ()

+
void
+webkit_permission_request_allow (WebKitPermissionRequest *request);
+

Allow the action which triggered this request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitPermissionRequest

 
+
+
+
+
+

webkit_permission_request_deny ()

+
void
+webkit_permission_request_deny (WebKitPermissionRequest *request);
+

Deny the action which triggered this request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitPermissionRequest

 
+
+
+
+
+

Types and Values

+
+

WebKitPermissionRequest

+
typedef struct _WebKitPermissionRequest WebKitPermissionRequest;
+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPlugin/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPlugin/index.html new file mode 100644 index 000000000..c2501b43b --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPlugin/index.html @@ -0,0 +1,405 @@ + + + + +WebKitPlugin: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPlugin

+

WebKitPlugin — Represents a plugin, enabling fine-grained control

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_plugin_get_name () +
const gchar * + +webkit_plugin_get_description () +
const gchar * + +webkit_plugin_get_path () +
+GList * + +webkit_plugin_get_mime_info_list () +
+WebKitMimeInfo * + +webkit_mime_info_ref () +
+void + +webkit_mime_info_unref () +
const gchar * + +webkit_mime_info_get_mime_type () +
const gchar * + +webkit_mime_info_get_description () +
const gchar * const * + +webkit_mime_info_get_extensions () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitPlugin
 WebKitMimeInfo
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitMimeInfo
+    GObject
+    ╰── WebKitPlugin
+
+
+
+

Description

+

This object represents a single plugin, found while scanning the +various platform plugin directories. This object can be used to get +more information about a plugin, and enable/disable it, allowing +fine-grained control of plugins. The list of available plugins can +be obtained from the WebKitWebContext, with +webkit_web_context_get_plugins().

+
+
+

Functions

+
+

webkit_plugin_get_name ()

+
const gchar *
+webkit_plugin_get_name (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the name of the plugin.

+
+
+
+
+

webkit_plugin_get_description ()

+
const gchar *
+webkit_plugin_get_description (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the description of the plugin.

+
+
+
+
+

webkit_plugin_get_path ()

+
const gchar *
+webkit_plugin_get_path (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the absolute path where the plugin is installed.

+
+
+
+
+

webkit_plugin_get_mime_info_list ()

+
GList *
+webkit_plugin_get_mime_info_list (WebKitPlugin *plugin);
+

Get information about MIME types handled by the plugin, +as a list of WebKitMimeInfo.

+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

a GList of WebKitMimeInfo.

+

[element-type WebKitMimeInfo][transfer none]

+
+
+
+
+

webkit_mime_info_ref ()

+
WebKitMimeInfo *
+webkit_mime_info_ref (WebKitMimeInfo *info);
+

Atomically increments the reference count of info + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

The passed in WebKitMimeInfo

+
+
+
+
+

webkit_mime_info_unref ()

+
void
+webkit_mime_info_unref (WebKitMimeInfo *info);
+

Atomically decrements the reference count of info + by one. If the +reference count drops to 0, all memory allocated by the WebKitMimeInfo is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+
+
+

webkit_mime_info_get_mime_type ()

+
const gchar *
+webkit_mime_info_get_mime_type (WebKitMimeInfo *info);
+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

the MIME type of info +

+
+
+
+
+

webkit_mime_info_get_description ()

+
const gchar *
+webkit_mime_info_get_description (WebKitMimeInfo *info);
+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

the description of the MIME type of info +

+
+
+
+
+

webkit_mime_info_get_extensions ()

+
const gchar * const *
+webkit_mime_info_get_extensions (WebKitMimeInfo *info);
+

Get the list of file extensions associated to the +MIME type of info +

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

a +NULL-terminated array of strings.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitPlugin

+
struct WebKitPlugin;
+
+
+
+

WebKitMimeInfo

+
typedef struct _WebKitMimeInfo WebKitMimeInfo;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPolicyDecision/index.html new file mode 100644 index 000000000..ba3bfb688 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPolicyDecision/index.html @@ -0,0 +1,187 @@ + + + + +WebKitPolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPolicyDecision

+

WebKitPolicyDecision — A pending policy decision

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
+void + +webkit_policy_decision_download () +
+void + +webkit_policy_decision_ignore () +
+void + +webkit_policy_decision_use () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitPolicyDecision
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ├── WebKitNavigationPolicyDecision
+        ╰── WebKitResponsePolicyDecision
+
+
+
+

Description

+

Often WebKit allows the client to decide the policy for certain +operations. For instance, a client may want to open a link in a new +tab, block a navigation entirely, query the user or trigger a download +instead of a navigation. In these cases WebKit will fire the +“decide-policy” signal with a WebKitPolicyDecision +object. If the signal handler does nothing, WebKit will act as if +webkit_policy_decision_use() was called as soon as signal handling +completes. To make a policy decision asynchronously, simply increment +the reference count of the WebKitPolicyDecision object.

+
+
+

Functions

+
+

webkit_policy_decision_download ()

+
void
+webkit_policy_decision_download (WebKitPolicyDecision *decision);
+

Spawn a download from this decision.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

webkit_policy_decision_ignore ()

+
void
+webkit_policy_decision_ignore (WebKitPolicyDecision *decision);
+

Ignore the action which triggered this decision. For instance, for a +WebKitResponsePolicyDecision, this would cancel the request.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

webkit_policy_decision_use ()

+
void
+webkit_policy_decision_use (WebKitPolicyDecision *decision);
+

Accept the action which triggered this decision.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

Types and Values

+
+

struct WebKitPolicyDecision

+
struct WebKitPolicyDecision;
+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitResponsePolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitResponsePolicyDecision/index.html new file mode 100644 index 000000000..88f8b75d2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitResponsePolicyDecision/index.html @@ -0,0 +1,248 @@ + + + + +WebKitResponsePolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitResponsePolicyDecision

+

WebKitResponsePolicyDecision — A policy decision for resource responses

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+WebKitURIRequest *requestRead
+WebKitURIResponse *responseRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitResponsePolicyDecision
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ╰── WebKitResponsePolicyDecision
+
+
+
+

Description

+

WebKitResponsePolicyDecision represents a policy decision for a +resource response, whether from the network or the local system. +A very common use case for these types of decision is deciding +whether or not to download a particular resource or to load it +normally.

+
+
+

Functions

+
+

webkit_response_policy_decision_get_request ()

+
WebKitURIRequest *
+webkit_response_policy_decision_get_request
+                               (WebKitResponsePolicyDecision *decision);
+

Return the WebKitURIRequest associated with the response decision. +Modifications to the returned object are not taken +into account when the request is sent over the network, and is intended +only to aid in evaluating whether a response decision should be taken or +not. To modify requests before they are sent over the network the +“send-request” signal can be used instead.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

The URI request that is associated with this policy decision.

+

[transfer none]

+
+
+
+
+

webkit_response_policy_decision_get_response ()

+
WebKitURIResponse *
+webkit_response_policy_decision_get_response
+                               (WebKitResponsePolicyDecision *decision);
+

Gets the value of the “response” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

The URI response that is associated with this policy decision.

+

[transfer none]

+
+
+
+
+

webkit_response_policy_decision_is_mime_type_supported ()

+
gboolean
+webkit_response_policy_decision_is_mime_type_supported
+                               (WebKitResponsePolicyDecision *decision);
+

Gets whether the MIME type of the response can be displayed in the WebKitWebView +that triggered this policy decision request. See also webkit_web_view_can_show_mime_type().

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

TRUE if the MIME type of the response is supported or FALSE otherwise

+
+

Since: 2.4

+
+
+
+

Types and Values

+
+

struct WebKitResponsePolicyDecision

+
struct WebKitResponsePolicyDecision;
+
+
+
+

Property Details

+
+

The “request” property

+
  “request”                  WebKitURIRequest *
+

This property contains the WebKitURIRequest associated with this +policy decision.

+

Flags: Read

+
+
+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

This property contains the WebKitURIResponse associated with this +policy decision.

+

Flags: Read

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityManager/index.html new file mode 100644 index 000000000..3cdbcb31f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityManager/index.html @@ -0,0 +1,610 @@ + + + + +WebKitSecurityManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSecurityManager

+

WebKitSecurityManager — Controls security settings in a WebKitWebContext

+
+ +
+

Types and Values

+
++++ + + + + +
structWebKitSecurityManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitSecurityManager
+
+
+
+

Description

+

The WebKitSecurityManager defines security settings for URI +schemes in a WebKitWebContext. Get it from the context with +webkit_web_context_get_security_manager(), and use it to register a +URI scheme with a certain security level, or to check if it already +has it.

+
+
+

Functions

+
+

webkit_security_manager_register_uri_scheme_as_local ()

+
void
+webkit_security_manager_register_uri_scheme_as_local
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a local scheme. This means that other non-local pages +cannot link to or access URIs of this scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_local ()

+
gboolean
+webkit_security_manager_uri_scheme_is_local
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a local scheme. +See also webkit_security_manager_register_uri_scheme_as_local().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a local scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_no_access ()

+
void
+webkit_security_manager_register_uri_scheme_as_no_access
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a no-access scheme. This means that pages loaded +with this URI scheme cannot access pages loaded with any other URI scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_no_access ()

+
gboolean
+webkit_security_manager_uri_scheme_is_no_access
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a no-access scheme. +See also webkit_security_manager_register_uri_scheme_as_no_access().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a no-access scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_display_isolated ()

+
void
+webkit_security_manager_register_uri_scheme_as_display_isolated
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a display isolated scheme. This means that pages cannot +display these URIs unless they are from the same scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_display_isolated ()

+
gboolean
+webkit_security_manager_uri_scheme_is_display_isolated
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a display isolated scheme. +See also webkit_security_manager_register_uri_scheme_as_display_isolated().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a display isolated scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_secure ()

+
void
+webkit_security_manager_register_uri_scheme_as_secure
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a secure scheme. This means that mixed +content warnings won't be generated for this scheme when +included by an HTTPS page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_secure ()

+
gboolean
+webkit_security_manager_uri_scheme_is_secure
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a secure scheme. +See also webkit_security_manager_register_uri_scheme_as_secure().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a secure scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_cors_enabled ()

+
void
+webkit_security_manager_register_uri_scheme_as_cors_enabled
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a CORS (Cross-origin resource sharing) enabled scheme. +This means that CORS requests are allowed. See W3C CORS specification +http://www.w3.org/TR/cors/.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_cors_enabled ()

+
gboolean
+webkit_security_manager_uri_scheme_is_cors_enabled
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a CORS enabled scheme. +See also webkit_security_manager_register_uri_scheme_as_cors_enabled().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a CORS enabled scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_empty_document ()

+
void
+webkit_security_manager_register_uri_scheme_as_empty_document
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as an empty document scheme. This means that +they are allowed to commit synchronously.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_empty_document ()

+
gboolean
+webkit_security_manager_uri_scheme_is_empty_document
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as an empty document scheme. +See also webkit_security_manager_register_uri_scheme_as_empty_document().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is an empty document scheme or FALSE otherwise.

+
+
+
+
+

Types and Values

+
+

struct WebKitSecurityManager

+
struct WebKitSecurityManager;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityOrigin/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityOrigin/index.html new file mode 100644 index 000000000..e4a7ede12 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityOrigin/index.html @@ -0,0 +1,448 @@ + + + + +WebKitSecurityOrigin: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSecurityOrigin

+

WebKitSecurityOrigin — A security boundary for websites

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitSecurityOrigin
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitSecurityOrigin
+
+
+
+

Description

+

WebKitSecurityOrigin is a representation of a security domain +defined by websites. A security origin normally consists of a +protocol, a hostname, and a port number. It is also possible for a +security origin to be opaque, as defined by the HTML standard, in +which case it has no associated protocol, host, or port.

+

Websites with the same security origin can access each other's +resources for client-side scripting or database access.

+
+
+

Functions

+
+

webkit_security_origin_new ()

+
WebKitSecurityOrigin *
+webkit_security_origin_new (const gchar *protocol,
+                            const gchar *host,
+                            guint16 port);
+

Create a new security origin from the provided protocol, host and +port.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

protocol

The protocol for the new origin

 

host

The host for the new origin

 

port

The port number for the new origin, or 0 to indicate the +default port for protocol +

 
+
+
+

Returns

+

A WebKitSecurityOrigin.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_new_for_uri ()

+
WebKitSecurityOrigin *
+webkit_security_origin_new_for_uri (const gchar *uri);
+

Create a new security origin from the provided URI. Components of +uri + other than protocol, host, and port do not affect the created +WebKitSecurityOrigin.

+
+

Parameters

+
+++++ + + + + + +

uri

The URI for the new origin

 
+
+
+

Returns

+

A WebKitSecurityOrigin.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_ref ()

+
WebKitSecurityOrigin *
+webkit_security_origin_ref (WebKitSecurityOrigin *origin);
+

Atomically increments the reference count of origin + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The passed WebKitSecurityOrigin

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_unref ()

+
void
+webkit_security_origin_unref (WebKitSecurityOrigin *origin);
+

Atomically decrements the reference count of origin + by one. +If the reference count drops to 0, all memory allocated by +WebKitSecurityOrigin is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

origin

A WebKitSecurityOrigin

 
+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_protocol ()

+
const gchar *
+webkit_security_origin_get_protocol (WebKitSecurityOrigin *origin);
+

Gets the protocol of origin +, or NULL if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The protocol of the WebKitSecurityOrigin.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_host ()

+
const gchar *
+webkit_security_origin_get_host (WebKitSecurityOrigin *origin);
+

Gets the hostname of origin +, or NULL if origin + is opaque or if its +protocol does not require a host component.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The host of the WebKitSecurityOrigin.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_port ()

+
guint16
+webkit_security_origin_get_port (WebKitSecurityOrigin *origin);
+

Gets the port of origin +. This function will always return 0 if the +port is the default port for the given protocol. For example, +http://example.com has the same security origin as +http://example.com:80, and this function will return 0 for a +WebKitSecurityOrigin constructed from either URI. It will also +return 0 if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The port of the WebKitSecurityOrigin.

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_is_opaque ()

+
gboolean
+webkit_security_origin_is_opaque (WebKitSecurityOrigin *origin);
+

Gets whether origin + is an opaque security origin, which does not +possess an associated protocol, host, or port.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

TRUE if origin +is opaque.

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_to_string ()

+
gchar *
+webkit_security_origin_to_string (WebKitSecurityOrigin *origin);
+

Gets a string representation of origin +. The string representation +is a valid URI with only protocol, host, and port components. It may +be NULL, but usually only if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

a URI representing origin +.

+

[allow-none][transfer full]

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitSecurityOrigin

+
typedef struct _WebKitSecurityOrigin WebKitSecurityOrigin;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSettings/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSettings/index.html new file mode 100644 index 000000000..080267614 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSettings/index.html @@ -0,0 +1,4936 @@ + + + + +WebKitSettings: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSettings

+

WebKitSettings — Control the behaviour of a WebKitWebView

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitSettings * + +webkit_settings_new () +
+WebKitSettings * + +webkit_settings_new_with_settings () +
+gboolean + +webkit_settings_get_auto_load_images () +
+void + +webkit_settings_set_auto_load_images () +
+gboolean + +webkit_settings_get_enable_frame_flattening () +
+void + +webkit_settings_set_enable_frame_flattening () +
+gboolean + +webkit_settings_get_enable_html5_database () +
+void + +webkit_settings_set_enable_html5_database () +
+gboolean + +webkit_settings_get_enable_html5_local_storage () +
+void + +webkit_settings_set_enable_html5_local_storage () +
+gboolean + +webkit_settings_get_enable_hyperlink_auditing () +
+void + +webkit_settings_set_enable_hyperlink_auditing () +
+gboolean + +webkit_settings_get_enable_java () +
+void + +webkit_settings_set_enable_java () +
+gboolean + +webkit_settings_get_enable_javascript () +
+void + +webkit_settings_set_enable_javascript () +
+gboolean + +webkit_settings_get_enable_javascript_markup () +
+void + +webkit_settings_set_enable_javascript_markup () +
+gboolean + +webkit_settings_get_enable_offline_web_application_cache () +
+void + +webkit_settings_set_enable_offline_web_application_cache () +
+gboolean + +webkit_settings_get_enable_plugins () +
+void + +webkit_settings_set_enable_plugins () +
+gboolean + +webkit_settings_get_enable_xss_auditor () +
+void + +webkit_settings_set_enable_xss_auditor () +
+gboolean + +webkit_settings_get_javascript_can_open_windows_automatically () +
+void + +webkit_settings_set_javascript_can_open_windows_automatically () +
+gboolean + +webkit_settings_get_load_icons_ignoring_image_load_setting () +
+void + +webkit_settings_set_load_icons_ignoring_image_load_setting () +
const gchar * + +webkit_settings_get_default_font_family () +
+void + +webkit_settings_set_default_font_family () +
const gchar * + +webkit_settings_get_monospace_font_family () +
+void + +webkit_settings_set_monospace_font_family () +
const gchar * + +webkit_settings_get_serif_font_family () +
+void + +webkit_settings_set_serif_font_family () +
const gchar * + +webkit_settings_get_sans_serif_font_family () +
+void + +webkit_settings_set_sans_serif_font_family () +
const gchar * + +webkit_settings_get_cursive_font_family () +
+void + +webkit_settings_set_cursive_font_family () +
const gchar * + +webkit_settings_get_fantasy_font_family () +
+void + +webkit_settings_set_fantasy_font_family () +
const gchar * + +webkit_settings_get_pictograph_font_family () +
+void + +webkit_settings_set_pictograph_font_family () +
+guint32 + +webkit_settings_get_default_font_size () +
+void + +webkit_settings_set_default_font_size () +
+guint32 + +webkit_settings_get_default_monospace_font_size () +
+void + +webkit_settings_set_default_monospace_font_size () +
+guint32 + +webkit_settings_get_minimum_font_size () +
+void + +webkit_settings_set_minimum_font_size () +
const gchar * + +webkit_settings_get_default_charset () +
+void + +webkit_settings_set_default_charset () +
+gboolean + +webkit_settings_get_enable_developer_extras () +
+void + +webkit_settings_set_enable_developer_extras () +
+gboolean + +webkit_settings_get_enable_resizable_text_areas () +
+void + +webkit_settings_set_enable_resizable_text_areas () +
+gboolean + +webkit_settings_get_enable_tabs_to_links () +
+void + +webkit_settings_set_enable_tabs_to_links () +
+gboolean + +webkit_settings_get_enable_dns_prefetching () +
+void + +webkit_settings_set_enable_dns_prefetching () +
+gboolean + +webkit_settings_get_enable_caret_browsing () +
+void + +webkit_settings_set_enable_caret_browsing () +
+gboolean + +webkit_settings_get_enable_fullscreen () +
+void + +webkit_settings_set_enable_fullscreen () +
+gboolean + +webkit_settings_get_print_backgrounds () +
+void + +webkit_settings_set_print_backgrounds () +
+gboolean + +webkit_settings_get_enable_webaudio () +
+void + +webkit_settings_set_enable_webaudio () +
+gboolean + +webkit_settings_get_enable_webgl () +
+void + +webkit_settings_set_enable_webgl () +
+void + +webkit_settings_set_allow_modal_dialogs () +
+gboolean + +webkit_settings_get_allow_modal_dialogs () +
+gboolean + +webkit_settings_get_zoom_text_only () +
+void + +webkit_settings_set_zoom_text_only () +
+gboolean + +webkit_settings_get_javascript_can_access_clipboard () +
+void + +webkit_settings_set_javascript_can_access_clipboard () +
+gboolean + +webkit_settings_get_media_playback_requires_user_gesture () +
+void + +webkit_settings_set_media_playback_requires_user_gesture () +
+gboolean + +webkit_settings_get_media_playback_allows_inline () +
+void + +webkit_settings_set_media_playback_allows_inline () +
+gboolean + +webkit_settings_get_draw_compositing_indicators () +
+void + +webkit_settings_set_draw_compositing_indicators () +
+gboolean + +webkit_settings_get_enable_site_specific_quirks () +
+void + +webkit_settings_set_enable_site_specific_quirks () +
+gboolean + +webkit_settings_get_enable_page_cache () +
+void + +webkit_settings_set_enable_page_cache () +
const gchar * + +webkit_settings_get_user_agent () +
+void + +webkit_settings_set_user_agent () +
+void + +webkit_settings_set_user_agent_with_application_details () +
+gboolean + +webkit_settings_get_enable_smooth_scrolling () +
+void + +webkit_settings_set_enable_smooth_scrolling () +
+gboolean + +webkit_settings_get_enable_accelerated_2d_canvas () +
+void + +webkit_settings_set_enable_accelerated_2d_canvas () +
+gboolean + +webkit_settings_get_enable_write_console_messages_to_stdout () +
+void + +webkit_settings_set_enable_write_console_messages_to_stdout () +
+gboolean + +webkit_settings_get_enable_media_stream () +
+void + +webkit_settings_set_enable_media_stream () +
+gboolean + +webkit_settings_get_enable_mock_capture_devices () +
+void + +webkit_settings_set_enable_mock_capture_devices () +
+gboolean + +webkit_settings_get_enable_spatial_navigation () +
+void + +webkit_settings_set_enable_spatial_navigation () +
+gboolean + +webkit_settings_get_enable_mediasource () +
+void + +webkit_settings_set_enable_mediasource () +
+gboolean + +webkit_settings_get_enable_encrypted_media () +
+void + +webkit_settings_set_enable_encrypted_media () +
+gboolean + +webkit_settings_get_enable_media_capabilities () +
+void + +webkit_settings_set_enable_media_capabilities () +
+gboolean + +webkit_settings_get_allow_file_access_from_file_urls () +
+void + +webkit_settings_set_allow_file_access_from_file_urls () +
+gboolean + +webkit_settings_get_allow_universal_access_from_file_urls () +
+void + +webkit_settings_set_allow_universal_access_from_file_urls () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
gbooleanallow-file-access-from-file-urlsRead / Write / Construct
gbooleanallow-modal-dialogsRead / Write / Construct
gbooleanallow-universal-access-from-file-urlsRead / Write / Construct
gbooleanauto-load-imagesRead / Write / Construct
+gchar *cursive-font-familyRead / Write / Construct
+gchar *default-charsetRead / Write / Construct
+gchar *default-font-familyRead / Write / Construct
guintdefault-font-sizeRead / Write / Construct
guintdefault-monospace-font-sizeRead / Write / Construct
gbooleandraw-compositing-indicatorsRead / Write / Construct
gbooleanenable-accelerated-2d-canvasRead / Write / Construct
gbooleanenable-caret-browsingRead / Write / Construct
gbooleanenable-developer-extrasRead / Write / Construct
gbooleanenable-dns-prefetchingRead / Write / Construct
gbooleanenable-encrypted-mediaRead / Write / Construct
gbooleanenable-frame-flatteningRead / Write / Construct
gbooleanenable-fullscreenRead / Write / Construct
gbooleanenable-html5-databaseRead / Write / Construct
gbooleanenable-html5-local-storageRead / Write / Construct
gbooleanenable-hyperlink-auditingRead / Write / Construct
gbooleanenable-javaRead / Write / Construct
gbooleanenable-javascriptRead / Write / Construct
gbooleanenable-javascript-markupRead / Write / Construct
gbooleanenable-media-capabilitiesRead / Write / Construct
gbooleanenable-media-streamRead / Write / Construct
gbooleanenable-mediasourceRead / Write / Construct
gbooleanenable-mock-capture-devicesRead / Write / Construct
gbooleanenable-offline-web-application-cacheRead / Write / Construct
gbooleanenable-page-cacheRead / Write / Construct
gbooleanenable-pluginsRead / Write / Construct
gbooleanenable-resizable-text-areasRead / Write / Construct
gbooleanenable-site-specific-quirksRead / Write / Construct
gbooleanenable-smooth-scrollingRead / Write / Construct
gbooleanenable-spatial-navigationRead / Write / Construct
gbooleanenable-tabs-to-linksRead / Write / Construct
gbooleanenable-webaudioRead / Write / Construct
gbooleanenable-webglRead / Write / Construct
gbooleanenable-write-console-messages-to-stdoutRead / Write / Construct
gbooleanenable-xss-auditorRead / Write / Construct
+gchar *fantasy-font-familyRead / Write / Construct
gbooleanjavascript-can-access-clipboardRead / Write / Construct
gbooleanjavascript-can-open-windows-automaticallyRead / Write / Construct
gbooleanload-icons-ignoring-image-load-settingRead / Write / Construct
gbooleanmedia-playback-allows-inlineRead / Write / Construct
gbooleanmedia-playback-requires-user-gestureRead / Write / Construct
guintminimum-font-sizeRead / Write / Construct
+gchar *monospace-font-familyRead / Write / Construct
+gchar *pictograph-font-familyRead / Write / Construct
gbooleanprint-backgroundsRead / Write / Construct
+gchar *sans-serif-font-familyRead / Write / Construct
+gchar *serif-font-familyRead / Write / Construct
+gchar *user-agentRead / Write / Construct
gbooleanzoom-text-onlyRead / Write / Construct
+
+
+

Types and Values

+
++++ + + + + +
structWebKitSettings
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitSettings
+
+
+
+

Description

+

WebKitSettings can be applied to a WebKitWebView to control text charset, +color, font sizes, printing mode, script support, loading of images and various +other things on a WebKitWebView. After creation, a WebKitSettings object +contains default settings.

+
+ + + + + + + +
1
+2
+3
/* Disable JavaScript. */
+WebKitSettings *settings = webkit_web_view_group_get_settings (my_view_group);
+webkit_settings_set_enable_javascript (settings, FALSE);
+
+ +
+
+

Functions

+
+

webkit_settings_new ()

+
WebKitSettings *
+webkit_settings_new (void);
+

Creates a new WebKitSettings instance with default values. It must +be manually attached to a WebKitWebView. +See also webkit_settings_new_with_settings().

+
+

Returns

+

a new WebKitSettings instance.

+
+
+
+
+

webkit_settings_new_with_settings ()

+
WebKitSettings *
+webkit_settings_new_with_settings (const gchar *first_setting_name,
+                                   ...);
+

Creates a new WebKitSettings instance with the given settings. It must +be manually attached to a WebKitWebView.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

first_setting_name

name of first setting to set

 

...

value of first setting, followed by more settings, +NULL-terminated

 
+
+
+

Returns

+

a new WebKitSettings instance.

+
+
+
+
+

webkit_settings_get_auto_load_images ()

+
gboolean
+webkit_settings_get_auto_load_images (WebKitSettings *settings);
+

Get the “auto-load-images” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If auto loading of images is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_auto_load_images ()

+
void
+webkit_settings_set_auto_load_images (WebKitSettings *settings,
+                                      gboolean enabled);
+

Set the “auto-load-images” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_frame_flattening ()

+
gboolean
+webkit_settings_get_enable_frame_flattening
+                               (WebKitSettings *settings);
+

Get the “enable-frame-flattening” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If frame flattening is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_frame_flattening ()

+
void
+webkit_settings_set_enable_frame_flattening
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-frame-flattening” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_html5_database ()

+
gboolean
+webkit_settings_get_enable_html5_database
+                               (WebKitSettings *settings);
+

Get the “enable-html5-database” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 database support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_html5_database ()

+
void
+webkit_settings_set_enable_html5_database
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-html5-database” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_html5_local_storage ()

+
gboolean
+webkit_settings_get_enable_html5_local_storage
+                               (WebKitSettings *settings);
+

Get the “enable-html5-local-storage” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 local storage support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_html5_local_storage ()

+
void
+webkit_settings_set_enable_html5_local_storage
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-html5-local-storage” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_hyperlink_auditing ()

+
gboolean
+webkit_settings_get_enable_hyperlink_auditing
+                               (WebKitSettings *settings);
+

Get the “enable-hyperlink-auditing” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If hyper link auditing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_hyperlink_auditing ()

+
void
+webkit_settings_set_enable_hyperlink_auditing
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-hyperlink-auditing” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_java ()

+
gboolean
+webkit_settings_get_enable_java (WebKitSettings *settings);
+

Get the “enable-java” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If Java is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_java ()

+
void
+webkit_settings_set_enable_java (WebKitSettings *settings,
+                                 gboolean enabled);
+

Set the “enable-java” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_javascript ()

+
gboolean
+webkit_settings_get_enable_javascript (WebKitSettings *settings);
+

Get the “enable-javascript” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If JavaScript is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_javascript ()

+
void
+webkit_settings_set_enable_javascript (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-javascript” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_javascript_markup ()

+
gboolean
+webkit_settings_get_enable_javascript_markup
+                               (WebKitSettings *settings);
+

Get the “enable-javascript-markup” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if JavaScript markup is enabled or FALSE otherwise.

+
+

Since: 2.24

+
+
+
+

webkit_settings_set_enable_javascript_markup ()

+
void
+webkit_settings_set_enable_javascript_markup
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-javascript-markup” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.24

+
+
+
+

webkit_settings_get_enable_offline_web_application_cache ()

+
gboolean
+webkit_settings_get_enable_offline_web_application_cache
+                               (WebKitSettings *settings);
+

Get the “enable-offline-web-application-cache” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 offline web application cache support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_offline_web_application_cache ()

+
void
+webkit_settings_set_enable_offline_web_application_cache
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-offline-web-application-cache” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_plugins ()

+
gboolean
+webkit_settings_get_enable_plugins (WebKitSettings *settings);
+

Get the “enable-plugins” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If plugins are enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_plugins ()

+
void
+webkit_settings_set_enable_plugins (WebKitSettings *settings,
+                                    gboolean enabled);
+

Set the “enable-plugins” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_xss_auditor ()

+
gboolean
+webkit_settings_get_enable_xss_auditor
+                               (WebKitSettings *settings);
+

Get the “enable-xss-auditor” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If XSS auditing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_xss_auditor ()

+
void
+webkit_settings_set_enable_xss_auditor
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-xss-auditor” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_javascript_can_open_windows_automatically ()

+
gboolean
+webkit_settings_get_javascript_can_open_windows_automatically
+                               (WebKitSettings *settings);
+

Get the “javascript-can-open-windows-automatically” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If JavaScript can open window automatically or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_javascript_can_open_windows_automatically ()

+
void
+webkit_settings_set_javascript_can_open_windows_automatically
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “javascript-can-open-windows-automatically” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_load_icons_ignoring_image_load_setting ()

+
gboolean
+webkit_settings_get_load_icons_ignoring_image_load_setting
+                               (WebKitSettings *settings);
+

Get the “load-icons-ignoring-image-load-setting” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If site icon can be loaded irrespective of image loading preference or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_load_icons_ignoring_image_load_setting ()

+
void
+webkit_settings_set_load_icons_ignoring_image_load_setting
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “load-icons-ignoring-image-load-setting” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_default_font_family ()

+
const gchar *
+webkit_settings_get_default_font_family
+                               (WebKitSettings *settings);
+
+
+
+

webkit_settings_set_default_font_family ()

+
void
+webkit_settings_set_default_font_family
+                               (WebKitSettings *settings,
+                                const gchar *default_font_family);
+

Set the “default-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

default_font_family

the new default font family

 
+
+
+
+
+

webkit_settings_get_monospace_font_family ()

+
const gchar *
+webkit_settings_get_monospace_font_family
+                               (WebKitSettings *settings);
+

Gets the “monospace-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default font family used to display content marked with monospace font.

+
+
+
+
+

webkit_settings_set_monospace_font_family ()

+
void
+webkit_settings_set_monospace_font_family
+                               (WebKitSettings *settings,
+                                const gchar *monospace_font_family);
+

Set the “monospace-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

monospace_font_family

the new default monospace font family

 
+
+
+
+
+

webkit_settings_get_serif_font_family ()

+
const gchar *
+webkit_settings_get_serif_font_family (WebKitSettings *settings);
+

Gets the “serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with serif font.

+
+
+
+
+

webkit_settings_set_serif_font_family ()

+
void
+webkit_settings_set_serif_font_family (WebKitSettings *settings,
+                                       const gchar *serif_font_family);
+

Set the “serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

serif_font_family

the new default serif font family

 
+
+
+
+
+

webkit_settings_get_sans_serif_font_family ()

+
const gchar *
+webkit_settings_get_sans_serif_font_family
+                               (WebKitSettings *settings);
+

Gets the “sans-serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with sans-serif font.

+
+
+
+
+

webkit_settings_set_sans_serif_font_family ()

+
void
+webkit_settings_set_sans_serif_font_family
+                               (WebKitSettings *settings,
+                                const gchar *sans_serif_font_family);
+

Set the “sans-serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

sans_serif_font_family

the new default sans-serif font family

 
+
+
+
+
+

webkit_settings_get_cursive_font_family ()

+
const gchar *
+webkit_settings_get_cursive_font_family
+                               (WebKitSettings *settings);
+

Gets the “cursive-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with cursive font.

+
+
+
+
+

webkit_settings_set_cursive_font_family ()

+
void
+webkit_settings_set_cursive_font_family
+                               (WebKitSettings *settings,
+                                const gchar *cursive_font_family);
+

Set the “cursive-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

cursive_font_family

the new default cursive font family

 
+
+
+
+
+

webkit_settings_get_fantasy_font_family ()

+
const gchar *
+webkit_settings_get_fantasy_font_family
+                               (WebKitSettings *settings);
+

Gets the “fantasy-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with fantasy font.

+
+
+
+
+

webkit_settings_set_fantasy_font_family ()

+
void
+webkit_settings_set_fantasy_font_family
+                               (WebKitSettings *settings,
+                                const gchar *fantasy_font_family);
+

Set the “fantasy-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

fantasy_font_family

the new default fantasy font family

 
+
+
+
+
+

webkit_settings_get_pictograph_font_family ()

+
const gchar *
+webkit_settings_get_pictograph_font_family
+                               (WebKitSettings *settings);
+

Gets the “pictograph-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with pictograph font.

+
+
+
+
+

webkit_settings_set_pictograph_font_family ()

+
void
+webkit_settings_set_pictograph_font_family
+                               (WebKitSettings *settings,
+                                const gchar *pictograph_font_family);
+

Set the “pictograph-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

pictograph_font_family

the new default pictograph font family

 
+
+
+
+
+

webkit_settings_get_default_font_size ()

+
guint32
+webkit_settings_get_default_font_size (WebKitSettings *settings);
+

Gets the “default-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font size, in pixels.

+
+
+
+
+

webkit_settings_set_default_font_size ()

+
void
+webkit_settings_set_default_font_size (WebKitSettings *settings,
+                                       guint32 font_size);
+

Set the “default-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

default font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_default_monospace_font_size ()

+
guint32
+webkit_settings_get_default_monospace_font_size
+                               (WebKitSettings *settings);
+

Gets the “default-monospace-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default monospace font size, in pixels.

+
+
+
+
+

webkit_settings_set_default_monospace_font_size ()

+
void
+webkit_settings_set_default_monospace_font_size
+                               (WebKitSettings *settings,
+                                guint32 font_size);
+

Set the “default-monospace-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

default monospace font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_minimum_font_size ()

+
guint32
+webkit_settings_get_minimum_font_size (WebKitSettings *settings);
+

Gets the “minimum-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Minimum font size, in pixels.

+
+
+
+
+

webkit_settings_set_minimum_font_size ()

+
void
+webkit_settings_set_minimum_font_size (WebKitSettings *settings,
+                                       guint32 font_size);
+

Set the “minimum-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

minimum font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_default_charset ()

+
const gchar *
+webkit_settings_get_default_charset (WebKitSettings *settings);
+

Gets the “default-charset” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default charset.

+
+
+
+
+

webkit_settings_set_default_charset ()

+
void
+webkit_settings_set_default_charset (WebKitSettings *settings,
+                                     const gchar *default_charset);
+

Set the “default-charset” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

default_charset

default charset to be set

 
+
+
+
+
+

webkit_settings_get_enable_developer_extras ()

+
gboolean
+webkit_settings_get_enable_developer_extras
+                               (WebKitSettings *settings);
+

Get the “enable-developer-extras” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If developer extras is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_developer_extras ()

+
void
+webkit_settings_set_enable_developer_extras
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-developer-extras” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_resizable_text_areas ()

+
gboolean
+webkit_settings_get_enable_resizable_text_areas
+                               (WebKitSettings *settings);
+

Get the “enable-resizable-text-areas” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If text areas can be resized or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_resizable_text_areas ()

+
void
+webkit_settings_set_enable_resizable_text_areas
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-resizable-text-areas” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_tabs_to_links ()

+
gboolean
+webkit_settings_get_enable_tabs_to_links
+                               (WebKitSettings *settings);
+

Get the “enable-tabs-to-links” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If tabs to link is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_tabs_to_links ()

+
void
+webkit_settings_set_enable_tabs_to_links
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-tabs-to-links” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_dns_prefetching ()

+
gboolean
+webkit_settings_get_enable_dns_prefetching
+                               (WebKitSettings *settings);
+

Get the “enable-dns-prefetching” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If DNS prefetching is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_dns_prefetching ()

+
void
+webkit_settings_set_enable_dns_prefetching
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-dns-prefetching” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_caret_browsing ()

+
gboolean
+webkit_settings_get_enable_caret_browsing
+                               (WebKitSettings *settings);
+

Get the “enable-caret-browsing” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If caret browsing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_caret_browsing ()

+
void
+webkit_settings_set_enable_caret_browsing
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-caret-browsing” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_fullscreen ()

+
gboolean
+webkit_settings_get_enable_fullscreen (WebKitSettings *settings);
+

Get the “enable-fullscreen” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If fullscreen support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_fullscreen ()

+
void
+webkit_settings_set_enable_fullscreen (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-fullscreen” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_print_backgrounds ()

+
gboolean
+webkit_settings_get_print_backgrounds (WebKitSettings *settings);
+

Get the “print-backgrounds” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If background images should be printed or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_print_backgrounds ()

+
void
+webkit_settings_set_print_backgrounds (WebKitSettings *settings,
+                                       gboolean print_backgrounds);
+

Set the “print-backgrounds” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

print_backgrounds

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_webaudio ()

+
gboolean
+webkit_settings_get_enable_webaudio (WebKitSettings *settings);
+

Get the “enable-webaudio” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If webaudio support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_webaudio ()

+
void
+webkit_settings_set_enable_webaudio (WebKitSettings *settings,
+                                     gboolean enabled);
+

Set the “enable-webaudio” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_webgl ()

+
gboolean
+webkit_settings_get_enable_webgl (WebKitSettings *settings);
+

Get the “enable-webgl” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If WebGL support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_webgl ()

+
void
+webkit_settings_set_enable_webgl (WebKitSettings *settings,
+                                  gboolean enabled);
+

Set the “enable-webgl” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_set_allow_modal_dialogs ()

+
void
+webkit_settings_set_allow_modal_dialogs
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-modal-dialogs” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+
+
+
+

webkit_settings_get_allow_modal_dialogs ()

+
gboolean
+webkit_settings_get_allow_modal_dialogs
+                               (WebKitSettings *settings);
+

Get the “allow-modal-dialogs” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if it's allowed to create and run modal dialogs or FALSE otherwise.

+
+
+
+
+

webkit_settings_get_zoom_text_only ()

+
gboolean
+webkit_settings_get_zoom_text_only (WebKitSettings *settings);
+

Get the “zoom-text-only” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If zoom level of the view should only affect the text +or FALSE if all view contents should be scaled.

+
+
+
+
+

webkit_settings_set_zoom_text_only ()

+
void
+webkit_settings_set_zoom_text_only (WebKitSettings *settings,
+                                    gboolean zoom_text_only);
+

Set the “zoom-text-only” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

zoom_text_only

Value to be set

 
+
+
+
+
+

webkit_settings_get_javascript_can_access_clipboard ()

+
gboolean
+webkit_settings_get_javascript_can_access_clipboard
+                               (WebKitSettings *settings);
+

Get the “javascript-can-access-clipboard” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If javascript-can-access-clipboard is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_javascript_can_access_clipboard ()

+
void
+webkit_settings_set_javascript_can_access_clipboard
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “javascript-can-access-clipboard” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_media_playback_requires_user_gesture ()

+
gboolean
+webkit_settings_get_media_playback_requires_user_gesture
+                               (WebKitSettings *settings);
+

Get the “media-playback-requires-user-gesture” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If an user gesture is needed to play or load media +or FALSE if no user gesture is needed.

+
+
+
+
+

webkit_settings_set_media_playback_requires_user_gesture ()

+
void
+webkit_settings_set_media_playback_requires_user_gesture
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “media-playback-requires-user-gesture” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_media_playback_allows_inline ()

+
gboolean
+webkit_settings_get_media_playback_allows_inline
+                               (WebKitSettings *settings);
+

Get the “media-playback-allows-inline” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If inline playback is allowed for media +or FALSE if only fullscreen playback is allowed.

+
+
+
+
+

webkit_settings_set_media_playback_allows_inline ()

+
void
+webkit_settings_set_media_playback_allows_inline
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “media-playback-allows-inline” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_draw_compositing_indicators ()

+
gboolean
+webkit_settings_get_draw_compositing_indicators
+                               (WebKitSettings *settings);
+

Get the “draw-compositing-indicators” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If compositing borders are drawn or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_draw_compositing_indicators ()

+
void
+webkit_settings_set_draw_compositing_indicators
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “draw-compositing-indicators” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_site_specific_quirks ()

+
gboolean
+webkit_settings_get_enable_site_specific_quirks
+                               (WebKitSettings *settings);
+

Get the “enable-site-specific-quirks” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if site specific quirks are enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_site_specific_quirks ()

+
void
+webkit_settings_set_enable_site_specific_quirks
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-site-specific-quirks” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_page_cache ()

+
gboolean
+webkit_settings_get_enable_page_cache (WebKitSettings *settings);
+

Get the “enable-page-cache” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if page cache enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_page_cache ()

+
void
+webkit_settings_set_enable_page_cache (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-page-cache” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_user_agent ()

+
const gchar *
+webkit_settings_get_user_agent (WebKitSettings *settings);
+

Get the “user-agent” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The current value of the user-agent property.

+
+
+
+
+

webkit_settings_set_user_agent ()

+
void
+webkit_settings_set_user_agent (WebKitSettings *settings,
+                                const gchar *user_agent);
+

Set the “user-agent” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

user_agent

The new custom user agent string or NULL to use the default user agent.

[allow-none]
+
+
+
+
+

webkit_settings_set_user_agent_with_application_details ()

+
void
+webkit_settings_set_user_agent_with_application_details
+                               (WebKitSettings *settings,
+                                const gchar *application_name,
+                                const gchar *application_version);
+

Set the “user-agent” property by appending the application details to the default user +agent. If no application name or version is given, the default user agent used will be used. If only +the version is given, the default engine version is used with the given application name.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

settings

a WebKitSettings

 

application_name

The application name used for the user agent or NULL to use the default user agent.

[allow-none]

application_version

The application version for the user agent or NULL to user the default version.

[allow-none]
+
+
+
+
+

webkit_settings_get_enable_smooth_scrolling ()

+
gboolean
+webkit_settings_get_enable_smooth_scrolling
+                               (WebKitSettings *settings);
+

Get the “enable-smooth-scrolling” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if smooth scrolling is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_smooth_scrolling ()

+
void
+webkit_settings_set_enable_smooth_scrolling
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-smooth-scrolling” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_accelerated_2d_canvas ()

+
gboolean
+webkit_settings_get_enable_accelerated_2d_canvas
+                               (WebKitSettings *settings);
+

Get the “enable-accelerated-2d-canvas” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if accelerated 2D canvas is enabled or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_accelerated_2d_canvas ()

+
void
+webkit_settings_set_enable_accelerated_2d_canvas
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-accelerated-2d-canvas” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_write_console_messages_to_stdout ()

+
gboolean
+webkit_settings_get_enable_write_console_messages_to_stdout
+                               (WebKitSettings *settings);
+

Get the “enable-write-console-messages-to-stdout” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if writing console messages to stdout is enabled or FALSE +otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_write_console_messages_to_stdout ()

+
void
+webkit_settings_set_enable_write_console_messages_to_stdout
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-write-console-messages-to-stdout” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_media_stream ()

+
gboolean
+webkit_settings_get_enable_media_stream
+                               (WebKitSettings *settings);
+

Get the “enable-media-stream” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If mediastream support is enabled or FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

webkit_settings_set_enable_media_stream ()

+
void
+webkit_settings_set_enable_media_stream
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-media-stream” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_mock_capture_devices ()

+
gboolean
+webkit_settings_get_enable_mock_capture_devices
+                               (WebKitSettings *settings);
+

Get the “enable-mock-capture-devices” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If mock capture devices is enabled or FALSE otherwise.

+
+

Since: 2.24

+
+
+
+

webkit_settings_set_enable_mock_capture_devices ()

+
void
+webkit_settings_set_enable_mock_capture_devices
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-mock-capture-devices” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_spatial_navigation ()

+
gboolean
+webkit_settings_get_enable_spatial_navigation
+                               (WebKitSettings *settings);
+

Get the “enable-spatial-navigation” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 spatial navigation support is enabled or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_spatial_navigation ()

+
void
+webkit_settings_set_enable_spatial_navigation
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-spatial-navigation” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_mediasource ()

+
gboolean
+webkit_settings_get_enable_mediasource
+                               (WebKitSettings *settings);
+

Get the “enable-mediasource” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If MediaSource support is enabled or FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

webkit_settings_set_enable_mediasource ()

+
void
+webkit_settings_set_enable_mediasource
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-mediasource” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_encrypted_media ()

+
gboolean
+webkit_settings_get_enable_encrypted_media
+                               (WebKitSettings *settings);
+

Get the “enable-encrypted-media” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if EncryptedMedia support is enabled or FALSE otherwise.

+
+

Since: 2.20

+
+
+
+

webkit_settings_set_enable_encrypted_media ()

+
void
+webkit_settings_set_enable_encrypted_media
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-encrypted-media” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.20

+
+
+
+

webkit_settings_get_enable_media_capabilities ()

+
gboolean
+webkit_settings_get_enable_media_capabilities
+                               (WebKitSettings *settings);
+

Get the “enable-media-capabilities” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if MediaCapabilities support is enabled or FALSE otherwise.

+
+

Since: 2.22

+
+
+
+

webkit_settings_set_enable_media_capabilities ()

+
void
+webkit_settings_set_enable_media_capabilities
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-media-capabilities” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.22

+
+
+
+

webkit_settings_get_allow_file_access_from_file_urls ()

+
gboolean
+webkit_settings_get_allow_file_access_from_file_urls
+                               (WebKitSettings *settings);
+

Get the “allow-file-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If file access from file URLs is allowed or FALSE otherwise.

+
+

Since: 2.10

+
+
+
+

webkit_settings_set_allow_file_access_from_file_urls ()

+
void
+webkit_settings_set_allow_file_access_from_file_urls
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-file-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+

Since: 2.10

+
+
+
+

webkit_settings_get_allow_universal_access_from_file_urls ()

+
gboolean
+webkit_settings_get_allow_universal_access_from_file_urls
+                               (WebKitSettings *settings);
+

Get the “allow-universal-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If universal access from file URLs is allowed or FALSE otherwise.

+
+

Since: 2.14

+
+
+
+

webkit_settings_set_allow_universal_access_from_file_urls ()

+
void
+webkit_settings_set_allow_universal_access_from_file_urls
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-universal-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+

Since: 2.14

+
+
+
+

Types and Values

+
+

struct WebKitSettings

+
struct WebKitSettings;
+
+
+
+

Property Details

+
+

The “allow-file-access-from-file-urls” property

+
  “allow-file-access-from-file-urls” gboolean
+

Whether file access is allowed from file URLs. By default, when +something is loaded in a WebKitWebView using a file URI, cross +origin requests to other file resources are not allowed. This +setting allows you to change that behaviour, so that it would be +possible to do a XMLHttpRequest of a local file, for example.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.10

+
+
+
+

The “allow-modal-dialogs” property

+
  “allow-modal-dialogs”      gboolean
+

Determine whether it's allowed to create and run modal dialogs +from a WebKitWebView through JavaScript with +window.showModalDialog. If it's set to +FALSE, the associated WebKitWebView won't be able to create +new modal dialogs, so not even the “create” +signal will be emitted.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “allow-universal-access-from-file-urls” property

+
  “allow-universal-access-from-file-urls” gboolean
+

Whether or not JavaScript running in the context of a file scheme URL +should be allowed to access content from any origin. By default, when +something is loaded in a WebKitWebView using a file scheme URL, +access to the local file system and arbitrary local storage is not +allowed. This setting allows you to change that behaviour, so that +it would be possible to use local storage, for example.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.14

+
+
+
+

The “auto-load-images” property

+
  “auto-load-images”         gboolean
+

Determines whether images should be automatically loaded or not. +On devices where network bandwidth is of concern, it might be +useful to turn this property off.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “cursive-font-family” property

+
  “cursive-font-family”      gchar *
+

The font family used as the default for content using a cursive font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “default-charset” property

+
  “default-charset”          gchar *
+

The default text charset used when interpreting content with an unspecified charset.

+

Flags: Read / Write / Construct

+

Default value: "iso-8859-1"

+
+
+
+

The “default-font-family” property

+
  “default-font-family”      gchar *
+

The font family to use as the default for content that does not specify a font.

+

Flags: Read / Write / Construct

+

Default value: "sans-serif"

+
+
+
+

The “default-font-size” property

+
  “default-font-size”        guint
+

The default font size in pixels to use for content displayed if +no font size is specified.

+

Flags: Read / Write / Construct

+

Default value: 16

+
+
+
+

The “default-monospace-font-size” property

+
  “default-monospace-font-size” guint
+

The default font size in pixels to use for content displayed in +monospace font if no font size is specified.

+

Flags: Read / Write / Construct

+

Default value: 13

+
+
+
+

The “draw-compositing-indicators” property

+
  “draw-compositing-indicators” gboolean
+

Whether to draw compositing borders and repaint counters on layers drawn +with accelerated compositing. This is useful for debugging issues related +to web content that is composited with the GPU.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-accelerated-2d-canvas” property

+
  “enable-accelerated-2d-canvas” gboolean
+

Enable or disable accelerated 2D canvas. Accelerated 2D canvas is only available +if WebKit was compiled with a version of Cairo including the unstable CairoGL API. +When accelerated 2D canvas is enabled, WebKit may render some 2D canvas content +using hardware accelerated drawing operations.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.2

+
+
+
+

The “enable-caret-browsing” property

+
  “enable-caret-browsing”    gboolean
+

Whether to enable accessibility enhanced keyboard navigation.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-developer-extras” property

+
  “enable-developer-extras”  gboolean
+

Determines whether or not developer tools, such as the Web Inspector, are enabled.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-dns-prefetching” property

+
  “enable-dns-prefetching”   gboolean
+

Determines whether or not to prefetch domain names. DNS prefetching attempts +to resolve domain names before a user tries to follow a link.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-encrypted-media” property

+
  “enable-encrypted-media”   gboolean
+

Enable or disable support for Encrypted Media API on pages. +EncryptedMedia is an experimental JavaScript API for playing encrypted media in HTML. +This property will only work as intended if the EncryptedMedia feature is enabled at build time +with the ENABLE_ENCRYPTED_MEDIA flag.

+

See https://www.w3.org/TR/encrypted-media/

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.20

+
+
+
+

The “enable-frame-flattening” property

+
  “enable-frame-flattening”  gboolean
+

Whether to enable the frame flattening. With this setting each subframe is expanded +to its contents, which will flatten all the frames to become one scrollable page. +On touch devices scrollable subframes on a page can result in a confusing user experience.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-fullscreen” property

+
  “enable-fullscreen”        gboolean
+

Whether to enable the Javascript Fullscreen API. The API +allows any HTML element to request fullscreen display. See also +the current draft of the spec: +http://www.w3.org/TR/fullscreen/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-html5-database” property

+
  “enable-html5-database”    gboolean
+

Whether to enable HTML5 client-side SQL database support. Client-side +SQL database allows web pages to store structured data and be able to +use SQL to manipulate that data asynchronously.

+

HTML5 database specification is available at +http://www.w3.org/TR/webdatabase/.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-html5-local-storage” property

+
  “enable-html5-local-storage” gboolean
+

Whether to enable HTML5 local storage support. Local storage provides +simple synchronous storage access.

+

HTML5 local storage specification is available at +http://dev.w3.org/html5/webstorage/.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-hyperlink-auditing” property

+
  “enable-hyperlink-auditing” gboolean
+

Determines whether or not hyperlink auditing is enabled.

+

The hyperlink auditing specification is available at +http://www.whatwg.org/specs/web-apps/current-work/multipage/links.htmlhyperlink-auditing.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-java” property

+
  “enable-java”              gboolean
+

Determines whether or not Java is enabled on the page.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-javascript” property

+
  “enable-javascript”        gboolean
+

Determines whether or not JavaScript executes within a page.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-javascript-markup” property

+
  “enable-javascript-markup” gboolean
+

Determines whether or not JavaScript markup is allowed in document. When this setting is disabled, +all JavaScript-related elements and attributes are removed from the document during parsing. Note that +executing JavaScript is still allowed if “enable-javascript” is TRUE.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+

Since: 2.24

+
+
+
+

The “enable-media-capabilities” property

+
  “enable-media-capabilities” gboolean
+

Enable or disable support for MediaCapabilities on pages. This +specification intends to provide APIs to allow websites to make an optimal +decision when picking media content for the user. The APIs will expose +information about the decoding and encoding capabilities for a given format +but also output capabilities to find the best match based on the device’s +display.

+

See also https://wicg.github.io/media-capabilities/

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.22

+
+
+
+

The “enable-media-stream” property

+
  “enable-media-stream”      gboolean
+

Enable or disable support for MediaStream on pages. MediaStream +is an experimental proposal for allowing web pages to access +audio and video devices for capture.

+

See also http://dev.w3.org/2011/webrtc/editor/getusermedia.html

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.4

+
+
+
+

The “enable-mediasource” property

+
  “enable-mediasource”       gboolean
+

Enable or disable support for MediaSource on pages. MediaSource +extends HTMLMediaElement to allow JavaScript to generate media +streams for playback.

+

See also http://www.w3.org/TR/media-source/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+

Since: 2.4

+
+
+
+

The “enable-mock-capture-devices” property

+
  “enable-mock-capture-devices” gboolean
+

Enable or disable the Mock Capture Devices. Those are fake +Microphone and Camera devices to be used as MediaStream +sources.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.24

+
+
+
+

The “enable-offline-web-application-cache” property

+
  “enable-offline-web-application-cache” gboolean
+

Whether to enable HTML5 offline web application cache support. Offline +web application cache allows web applications to run even when +the user is not connected to the network.

+

HTML5 offline web application specification is available at +http://dev.w3.org/html5/spec/offline.html.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-page-cache” property

+
  “enable-page-cache”        gboolean
+

Enable or disable the page cache. Disabling the page cache is +generally only useful for special circumstances like low-memory +scenarios or special purpose applications like static HTML +viewers. This setting only controls the Page Cache, this cache +is different than the disk-based or memory-based traditional +resource caches, its point is to make going back and forth +between pages much faster. For details about the different types +of caches and their purposes see: +http://webkit.org/blog/427/webkit-page-cache-i-the-basics/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-plugins” property

+
  “enable-plugins”           gboolean
+

Determines whether or not plugins on the page are enabled.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-resizable-text-areas” property

+
  “enable-resizable-text-areas” gboolean
+

Determines whether or not text areas can be resized.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-site-specific-quirks” property

+
  “enable-site-specific-quirks” gboolean
+

Whether to turn on site-specific quirks. Turning this on will +tell WebKit to use some site-specific workarounds for +better web compatibility. For example, older versions of +MediaWiki will incorrectly send to WebKit a CSS file with KHTML +workarounds. By turning on site-specific quirks, WebKit will +special-case this and other cases to make some specific sites work.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-smooth-scrolling” property

+
  “enable-smooth-scrolling”  gboolean
+

Enable or disable smooth scrolling.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-spatial-navigation” property

+
  “enable-spatial-navigation” gboolean
+

Whether to enable Spatial Navigation. This feature consists in the ability +to navigate between focusable elements in a Web page, such as hyperlinks +and form controls, by using Left, Right, Up and Down arrow keys. +For example, if an user presses the Right key, heuristics determine whether +there is an element they might be trying to reach towards the right, and if +there are multiple elements, which element they probably wants.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.4

+
+
+
+

The “enable-tabs-to-links” property

+
  “enable-tabs-to-links”     gboolean
+

Determines whether the tab key cycles through the elements on the page. +When this setting is enabled, users will be able to focus the next element +in the page by pressing the tab key. If the selected element is editable, +then pressing tab key will insert the tab character.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-webaudio” property

+
  “enable-webaudio”          gboolean
+

Enable or disable support for WebAudio on pages. WebAudio is an +experimental proposal for allowing web pages to generate Audio +WAVE data from JavaScript. The standard is currently a +work-in-progress by the W3C Audio Working Group.

+

See also https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-webgl” property

+
  “enable-webgl”             gboolean
+

Enable or disable support for WebGL on pages. WebGL is an experimental +proposal for allowing web pages to use OpenGL ES-like calls directly. The +standard is currently a work-in-progress by the Khronos Group.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-write-console-messages-to-stdout” property

+
  “enable-write-console-messages-to-stdout” gboolean
+

Enable or disable writing console messages to stdout. These are messages +sent to the console with console.log and related methods.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.2

+
+
+
+

The “enable-xss-auditor” property

+
  “enable-xss-auditor”       gboolean
+

Whether to enable the XSS auditor. This feature filters some kinds of +reflective XSS attacks on vulnerable web sites.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “fantasy-font-family” property

+
  “fantasy-font-family”      gchar *
+

The font family used as the default for content using a fantasy font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “javascript-can-access-clipboard” property

+
  “javascript-can-access-clipboard” gboolean
+

Whether JavaScript can access the clipboard. The default value is FALSE. If +set to TRUE, document.execCommand() allows cut, copy and paste commands.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “javascript-can-open-windows-automatically” property

+
  “javascript-can-open-windows-automatically” gboolean
+

Whether JavaScript can open popup windows automatically without user +intervention.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “load-icons-ignoring-image-load-setting” property

+
  “load-icons-ignoring-image-load-setting” gboolean
+

Determines whether a site can load favicons irrespective +of the value of “auto-load-images”.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “media-playback-allows-inline” property

+
  “media-playback-allows-inline” gboolean
+

Whether media playback is full-screen only or inline playback is allowed. +This is TRUE by default, so media playback can be inline. Setting it to +FALSE allows specifying that media playback should be always fullscreen.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “media-playback-requires-user-gesture” property

+
  “media-playback-requires-user-gesture” gboolean
+

Whether a user gesture (such as clicking the play button) +would be required to start media playback or load media. This is off +by default, so media playback could start automatically. +Setting it on requires a gesture by the user to start playback, or to +load the media.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “minimum-font-size” property

+
  “minimum-font-size”        guint
+

The minimum font size in pixels used to display text. This setting +controls the absolute smallest size. Values other than 0 can +potentially break page layouts.

+

Flags: Read / Write / Construct

+

Default value: 0

+
+
+
+

The “monospace-font-family” property

+
  “monospace-font-family”    gchar *
+

The font family used as the default for content using a monospace font.

+

Flags: Read / Write / Construct

+

Default value: "monospace"

+
+
+
+

The “pictograph-font-family” property

+
  “pictograph-font-family”   gchar *
+

The font family used as the default for content using a pictograph font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “print-backgrounds” property

+
  “print-backgrounds”        gboolean
+

Whether background images should be drawn during printing.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “sans-serif-font-family” property

+
  “sans-serif-font-family”   gchar *
+

The font family used as the default for content using a sans-serif font.

+

Flags: Read / Write / Construct

+

Default value: "sans-serif"

+
+
+
+

The “serif-font-family” property

+
  “serif-font-family”        gchar *
+

The font family used as the default for content using a serif font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “user-agent” property

+
  “user-agent”               gchar *
+

The user-agent string used by WebKit. Unusual user-agent strings may cause web +content to render incorrectly or fail to run, as many web pages are written to +parse the user-agent strings of only the most popular browsers. Therefore, it's +typically better to not completely override the standard user-agent, but to use +webkit_settings_set_user_agent_with_application_details() instead.

+

If this property is set to the empty string or NULL, it will revert to the standard +user-agent.

+

Flags: Read / Write / Construct

+

Default value: NULL

+
+
+
+

The “zoom-text-only” property

+
  “zoom-text-only”           gboolean
+

Whether “zoom-level” affects only the +text of the page or all the contents. Other contents containing text +like form controls will be also affected by zoom factor when +this property is enabled.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIRequest/index.html new file mode 100644 index 000000000..2507de05c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIRequest/index.html @@ -0,0 +1,289 @@ + + + + +WebKitURIRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIRequest

+

WebKitURIRequest — Represents a URI request

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitURIRequest * + +webkit_uri_request_new () +
const gchar * + +webkit_uri_request_get_uri () +
+void + +webkit_uri_request_set_uri () +
const gchar * + +webkit_uri_request_get_http_method () +
+SoupMessageHeaders * + +webkit_uri_request_get_http_headers () +
+
+
+

Properties

+
+++++ + + + + + +
+gchar *uriRead / Write / Construct
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURIRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURIRequest
+
+
+
+

Description

+

A WebKitURIRequest can be created with a URI using the +webkit_uri_request_new() method, and you can get the URI of an +existing request with the webkit_uri_request_get_uri() one.

+
+
+

Functions

+
+

webkit_uri_request_new ()

+
WebKitURIRequest *
+webkit_uri_request_new (const gchar *uri);
+

Creates a new WebKitURIRequest for the given URI.

+
+

Parameters

+
+++++ + + + + + +

uri

an URI

 
+
+
+

Returns

+

a new WebKitURIRequest

+
+
+
+
+

webkit_uri_request_get_uri ()

+
const gchar *
+webkit_uri_request_get_uri (WebKitURIRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

the uri of the WebKitURIRequest

+
+
+
+
+

webkit_uri_request_set_uri ()

+
void
+webkit_uri_request_set_uri (WebKitURIRequest *request,
+                            const gchar *uri);
+

Set the URI of request +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitURIRequest

 

uri

an URI

 
+
+
+
+
+

webkit_uri_request_get_http_method ()

+
const gchar *
+webkit_uri_request_get_http_method (WebKitURIRequest *request);
+

Get the HTTP method of the WebKitURIRequest.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

the HTTP method of the WebKitURIRequest or NULL if request +is not +an HTTP request.

+
+

Since: 2.12

+
+
+
+

webkit_uri_request_get_http_headers ()

+
SoupMessageHeaders *
+webkit_uri_request_get_http_headers (WebKitURIRequest *request);
+

Get the HTTP headers of a WebKitURIRequest as a SoupMessageHeaders.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

a SoupMessageHeaders with the HTTP headers of request +or NULL if request +is not an HTTP request.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitURIRequest

+
struct WebKitURIRequest;
+
+
+
+

Property Details

+
+

The “uri” property

+
  “uri”                      gchar *
+

The URI to which the request will be made.

+

Flags: Read / Write / Construct

+

Default value: "about:blank"

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIResponse/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIResponse/index.html new file mode 100644 index 000000000..11b19c1e3 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIResponse/index.html @@ -0,0 +1,397 @@ + + + + +WebKitURIResponse: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIResponse

+

WebKitURIResponse — Represents a URI response

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
guint64content-lengthRead
+SoupMessageHeaders *http-headersRead
+gchar *mime-typeRead
guintstatus-codeRead
+gchar *suggested-filenameRead
+gchar *uriRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURIResponse
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURIResponse
+
+
+
+

Description

+

A WebKitURIResponse contains information such as the URI, the +status code, the content length, the mime type, the HTTP status or +the suggested filename.

+
+
+

Functions

+
+

webkit_uri_response_get_uri ()

+
const gchar *
+webkit_uri_response_get_uri (WebKitURIResponse *response);
+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the uri of the WebKitURIResponse

+
+
+
+
+

webkit_uri_response_get_status_code ()

+
guint
+webkit_uri_response_get_status_code (WebKitURIResponse *response);
+

Get the status code of the WebKitURIResponse as returned by +the server. It will normally be a SoupKnownStatusCode, for +example SOUP_STATUS_OK, though the server can respond with any +unsigned integer.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the status code of response +

+
+
+
+
+

webkit_uri_response_get_content_length ()

+
guint64
+webkit_uri_response_get_content_length
+                               (WebKitURIResponse *response);
+

Get the expected content length of the WebKitURIResponse. It can +be 0 if the server provided an incorrect or missing Content-Length.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the expected content length of response +.

+
+
+
+
+

webkit_uri_response_get_mime_type ()

+
const gchar *
+webkit_uri_response_get_mime_type (WebKitURIResponse *response);
+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the MIME type of the WebKitURIResponse

+
+
+
+
+

webkit_uri_response_get_suggested_filename ()

+
const gchar *
+webkit_uri_response_get_suggested_filename
+                               (WebKitURIResponse *response);
+

Get the suggested filename for response +, as specified by +the 'Content-Disposition' HTTP header, or NULL if it's not +present.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the suggested filename or NULL if +the 'Content-Disposition' HTTP header is not present.

+

[transfer none]

+
+
+
+
+

webkit_uri_response_get_http_headers ()

+
SoupMessageHeaders *
+webkit_uri_response_get_http_headers (WebKitURIResponse *response);
+

Get the HTTP headers of a WebKitURIResponse as a SoupMessageHeaders.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

a SoupMessageHeaders with the HTTP headers of response +or NULL if response +is not an HTTP response.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

Types and Values

+
+

struct WebKitURIResponse

+
struct WebKitURIResponse;
+
+
+
+

Property Details

+
+

The “content-length” property

+
  “content-length”           guint64
+

The expected content length of the response.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “http-headers” property

+
  “http-headers”             SoupMessageHeaders *
+

The HTTP headers of the response, or NULL if the response is not an HTTP response.

+

Flags: Read

+

Since: 2.6

+
+
+
+

The “mime-type” property

+
  “mime-type”                gchar *
+

The MIME type of the response.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “status-code” property

+
  “status-code”              guint
+

The status code of the response as returned by the server.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “suggested-filename” property

+
  “suggested-filename”       gchar *
+

The suggested filename for the URI response.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The URI for which the response was made.

+

Flags: Read

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURISchemeRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURISchemeRequest/index.html new file mode 100644 index 000000000..65bf20e0d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURISchemeRequest/index.html @@ -0,0 +1,321 @@ + + + + +WebKitURISchemeRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURISchemeRequest

+

WebKitURISchemeRequest — Represents a URI scheme request

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_uri_scheme_request_get_scheme () +
const gchar * + +webkit_uri_scheme_request_get_uri () +
const gchar * + +webkit_uri_scheme_request_get_path () +
+WebKitWebView * + +webkit_uri_scheme_request_get_web_view () +
+void + +webkit_uri_scheme_request_finish () +
+void + +webkit_uri_scheme_request_finish_error () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURISchemeRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURISchemeRequest
+
+
+
+

Description

+

If you register a particular URI scheme in a WebKitWebContext, +using webkit_web_context_register_uri_scheme(), you have to provide +a WebKitURISchemeRequestCallback. After that, when a URI request +is made with that particular scheme, your callback will be +called. There you will be able to access properties such as the +scheme, the URI and path, and the WebKitWebView that initiated the +request, and also finish the request with +webkit_uri_scheme_request_finish().

+
+
+

Functions

+
+

webkit_uri_scheme_request_get_scheme ()

+
const gchar *
+webkit_uri_scheme_request_get_scheme (WebKitURISchemeRequest *request);
+

Get the URI scheme of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the URI scheme of request +

+
+
+
+
+

webkit_uri_scheme_request_get_uri ()

+
const gchar *
+webkit_uri_scheme_request_get_uri (WebKitURISchemeRequest *request);
+

Get the URI of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the full URI of request +

+
+
+
+
+

webkit_uri_scheme_request_get_path ()

+
const gchar *
+webkit_uri_scheme_request_get_path (WebKitURISchemeRequest *request);
+

Get the URI path of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the URI path of request +

+
+
+
+
+

webkit_uri_scheme_request_get_web_view ()

+
WebKitWebView *
+webkit_uri_scheme_request_get_web_view
+                               (WebKitURISchemeRequest *request);
+

Get the WebKitWebView that initiated the request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the WebKitWebView that initiated request +.

+

[transfer none]

+
+
+
+
+

webkit_uri_scheme_request_finish ()

+
void
+webkit_uri_scheme_request_finish (WebKitURISchemeRequest *request,
+                                  GInputStream *stream,
+                                  gint64 stream_length,
+                                  const gchar *mime_type);
+

Finish a WebKitURISchemeRequest by setting the contents of the request and its mime type.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

request

a WebKitURISchemeRequest

 

stream

a GInputStream to read the contents of the request

 

stream_length

the length of the stream or -1 if not known

 

mime_type

the content type of the stream or NULL if not known.

[allow-none]
+
+
+
+
+

webkit_uri_scheme_request_finish_error ()

+
void
+webkit_uri_scheme_request_finish_error
+                               (WebKitURISchemeRequest *request,
+                                GError *error);
+

Finish a WebKitURISchemeRequest with a GError.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitURISchemeRequest

 

error

a GError that will be passed to the WebKitWebView

 
+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WebKitURISchemeRequest

+
struct WebKitURISchemeRequest;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserContentManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserContentManager/index.html new file mode 100644 index 000000000..51f73cf13 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserContentManager/index.html @@ -0,0 +1,655 @@ + + + + +WebKitUserContentManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitUserContentManager

+

WebKitUserContentManager — Manages user-defined content which affects web pages.

+
+ +
+

Signals

+
+++++ + + + + + +
voidscript-message-receivedHas Details
+
+
+

Types and Values

+
++++ + + + + +
structWebKitUserContentManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitUserContentManager
+
+
+
+

Description

+

Using a WebKitUserContentManager user CSS style sheets can be set to +be injected in the web pages loaded by a WebKitWebView, by +webkit_user_content_manager_add_style_sheet().

+

To use a WebKitUserContentManager, it must be created using +webkit_user_content_manager_new(), and then passed to +webkit_web_view_new_with_user_content_manager(). User style +sheets can be created with webkit_user_style_sheet_new().

+

User style sheets can be added and removed at any time, but +they will affect the web pages loaded afterwards.

+
+
+

Functions

+
+

webkit_user_content_manager_new ()

+
WebKitUserContentManager *
+webkit_user_content_manager_new (void);
+

Creates a new user content manager.

+
+

Returns

+

A WebKitUserContentManager

+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_add_style_sheet ()

+
void
+webkit_user_content_manager_add_style_sheet
+                               (WebKitUserContentManager *manager,
+                                WebKitUserStyleSheet *stylesheet);
+

Adds a WebKitUserStyleSheet to the given WebKitUserContentManager. +The same WebKitUserStyleSheet can be reused with multiple +WebKitUserContentManager instances.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

stylesheet

A WebKitUserStyleSheet

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_remove_all_style_sheets ()

+
void
+webkit_user_content_manager_remove_all_style_sheets
+                               (WebKitUserContentManager *manager);
+

Removes all user style sheets from the given WebKitUserContentManager.

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_add_script ()

+
void
+webkit_user_content_manager_add_script
+                               (WebKitUserContentManager *manager,
+                                WebKitUserScript *script);
+

Adds a WebKitUserScript to the given WebKitUserContentManager. +The same WebKitUserScript can be reused with multiple +WebKitUserContentManager instances.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

script

A WebKitUserScript

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_remove_all_scripts ()

+
void
+webkit_user_content_manager_remove_all_scripts
+                               (WebKitUserContentManager *manager);
+

Removes all user scripts from the given WebKitUserContentManager

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_register_script_message_handler ()

+
gboolean
+webkit_user_content_manager_register_script_message_handler
+                               (WebKitUserContentManager *manager,
+                                const gchar *name);
+

Registers a new user script message handler. After it is registered, +scripts can use window.webkit.messageHandlers.&lt;name&gt;.postMessage(value) +to send messages. Those messages are received by connecting handlers +to the “script-message-received” signal. The +handler name is used as the detail of the signal. To avoid race +conditions between registering the handler name, and starting to +receive the signals, it is recommended to connect to the signal +*before* registering the handler name:

+
+ + + + + + + +
1
+2
+3
+4
+5
WebKitWebView *view = webkit_web_view_new ();
+WebKitUserContentManager *manager = webkit_web_view_get_user_content_manager ();
+g_signal_connect (manager, "script-message-received::foobar",
+                  G_CALLBACK (handle_script_message), NULL);
+webkit_user_content_manager_register_script_message_handler (manager, "foobar");
+
+ +

Registering a script message handler will fail if the requested +name has been already registered before.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 
+
+
+

Returns

+

TRUE if message handler was registered successfully, or FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

webkit_user_content_manager_unregister_script_message_handler ()

+
void
+webkit_user_content_manager_unregister_script_message_handler
+                               (WebKitUserContentManager *manager,
+                                const gchar *name);
+

Unregisters a previously registered message handler.

+

Note that this does *not* disconnect handlers for the +“script-message-received” signal; +they will be kept connected, but the signal will not be emitted +unless the handler name is registered again.

+

See also webkit_user_content_manager_register_script_message_handler().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 
+
+

Since: 2.8

+
+
+
+

webkit_user_content_manager_register_script_message_handler_in_world ()

+
gboolean
+webkit_user_content_manager_register_script_message_handler_in_world
+                               (WebKitUserContentManager *manager,
+                                const gchar *name,
+                                const gchar *world_name);
+

Registers a new user script message handler in script world with name world_name +. +See webkit_user_content_manager_register_script_message_handler() for full description.

+

Registering a script message handler will fail if the requested +name has been already registered before.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 

world_name

the name of a WebKitScriptWorld

 
+
+
+

Returns

+

TRUE if message handler was registered successfully, or FALSE otherwise.

+
+

Since: 2.22

+
+
+
+

webkit_user_content_manager_unregister_script_message_handler_in_world ()

+
void
+webkit_user_content_manager_unregister_script_message_handler_in_world
+                               (WebKitUserContentManager *manager,
+                                const gchar *name,
+                                const gchar *world_name);
+

Unregisters a previously registered message handler in script world with name world_name +.

+

Note that this does *not* disconnect handlers for the +“script-message-received” signal; +they will be kept connected, but the signal will not be emitted +unless the handler name is registered again.

+

See also webkit_user_content_manager_register_script_message_handler_in_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 

world_name

the name of a WebKitScriptWorld

 
+
+

Since: 2.22

+
+
+
+

webkit_user_content_manager_add_filter ()

+
void
+webkit_user_content_manager_add_filter
+                               (WebKitUserContentManager *manager,
+                                WebKitUserContentFilter *filter);
+

Adds a WebKitUserContentFilter to the given WebKitUserContentManager. +The same WebKitUserContentFilter can be reused with multiple +WebKitUserContentManager instances.

+

Filters need to be saved and loaded from WebKitUserContentFilterStore.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_manager_remove_filter ()

+
void
+webkit_user_content_manager_remove_filter
+                               (WebKitUserContentManager *manager,
+                                WebKitUserContentFilter *filter);
+

Removes a filter from the given WebKitUserContentManager.

+

Since 2.24

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

filter

A WebKitUserContentFilter

 
+
+
+
+
+

webkit_user_content_manager_remove_all_filters ()

+
void
+webkit_user_content_manager_remove_all_filters
+                               (WebKitUserContentManager *manager);
+

Removes all content filters from the given WebKitUserContentManager.

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.24

+
+
+
+

Types and Values

+
+

struct WebKitUserContentManager

+
struct WebKitUserContentManager;
+
+
+
+

Signal Details

+
+

The “script-message-received” signal

+
void
+user_function (WebKitUserContentManager *manager,
+               WebKitJavascriptResult   *js_result,
+               gpointer                  user_data)
+

This signal is emitted when JavaScript in a web view calls

+window.webkit.messageHandlers.<name>.postMessage(), after registering +<name> using +

webkit_user_content_manager_register_script_message_handler()

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

the WebKitUserContentManager

 

js_result

the WebKitJavascriptResult holding the value received from the JavaScript world.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Has Details

+

Since: 2.8

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserMediaPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserMediaPermissionRequest/index.html new file mode 100644 index 000000000..dceea5542 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserMediaPermissionRequest/index.html @@ -0,0 +1,208 @@ + + + + +WebKitUserMediaPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitUserMediaPermissionRequest

+

WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices.

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanis-for-audio-deviceRead
gbooleanis-for-video-deviceRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitUserMediaPermissionRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitUserMediaPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitUserMediaPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitUserMediaPermissionRequest represents a request for +permission to decide whether WebKit should be allowed to access the user's +audio and video source devices when requested through the getUserMedia API.

+

When a WebKitUserMediaPermissionRequest is not handled by the user, +it is denied by default.

+
+
+

Functions

+
+

webkit_user_media_permission_is_for_audio_device ()

+
gboolean
+webkit_user_media_permission_is_for_audio_device
+                               (WebKitUserMediaPermissionRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitUserMediaPermissionRequest

 
+
+
+

Returns

+

TRUE if access to an audio device was requested.

+
+

Since: 2.8

+
+
+
+

webkit_user_media_permission_is_for_video_device ()

+
gboolean
+webkit_user_media_permission_is_for_video_device
+                               (WebKitUserMediaPermissionRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitUserMediaPermissionRequest

 
+
+
+

Returns

+

TRUE if access to a video device was requested.

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitUserMediaPermissionRequest

+
struct WebKitUserMediaPermissionRequest;
+
+
+
+

Property Details

+
+

The “is-for-audio-device” property

+
  “is-for-audio-device”      gboolean
+

Whether the media device to which the permission was requested has a microphone or not.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “is-for-video-device” property

+
  “is-for-video-device”      gboolean
+

Whether the media device to which the permission was requested has a video capture capability or not.

+

Flags: Read

+

Default value: FALSE

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebContext/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebContext/index.html new file mode 100644 index 000000000..3e3cb36aa --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebContext/index.html @@ -0,0 +1,2204 @@ + + + + +WebKitWebContext: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebContext

+

WebKitWebContext — Manages aspects common to all WebKitWebViews

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebContext * + +webkit_web_context_get_default () +
+WebKitWebContext * + +webkit_web_context_new () +
+WebKitWebContext * + +webkit_web_context_new_ephemeral () +
+WebKitWebContext * + +webkit_web_context_new_with_website_data_manager () +
+gboolean + +webkit_web_context_is_ephemeral () +
+gboolean + +webkit_web_context_is_automation_allowed () +
+void + +webkit_web_context_set_automation_allowed () +
+WebKitWebsiteDataManager * + +webkit_web_context_get_website_data_manager () +
+WebKitCacheModel + +webkit_web_context_get_cache_model () +
+void + +webkit_web_context_set_cache_model () +
+guint + +webkit_web_context_get_web_process_count_limit () +
+void + +webkit_web_context_set_web_process_count_limit () +
+void + +webkit_web_context_clear_cache () +
+void + +webkit_web_context_set_network_proxy_settings () +
+WebKitDownload * + +webkit_web_context_download_uri () +
+WebKitCookieManager * + +webkit_web_context_get_cookie_manager () +
+WebKitFaviconDatabase * + +webkit_web_context_get_favicon_database () +
+void + +webkit_web_context_set_favicon_database_directory () +
const gchar * + +webkit_web_context_get_favicon_database_directory () +
+WebKitSecurityManager * + +webkit_web_context_get_security_manager () +
+void + +webkit_web_context_set_additional_plugins_directory () +
+void + +webkit_web_context_get_plugins () +
+GList * + +webkit_web_context_get_plugins_finish () +
+gboolean + +webkit_web_context_get_spell_checking_enabled () +
+void + +webkit_web_context_set_spell_checking_enabled () +
const gchar * const * + +webkit_web_context_get_spell_checking_languages () +
+void + +webkit_web_context_set_spell_checking_languages () +
+void + +webkit_web_context_set_preferred_languages () +
+void + +webkit_web_context_set_tls_errors_policy () +
+WebKitTLSErrorsPolicy + +webkit_web_context_get_tls_errors_policy () +
+void + +webkit_web_context_set_web_extensions_directory () +
+void + +webkit_web_context_set_web_extensions_initialization_user_data () +
+void + +webkit_web_context_prefetch_dns () +
+void + +webkit_web_context_allow_tls_certificate_for_host () +
+WebKitProcessModel + +webkit_web_context_get_process_model () +
+void + +webkit_web_context_set_process_model () +
+void + +webkit_web_context_initialize_notification_permissions () +
+void + +(*WebKitURISchemeRequestCallback) () +
+void + +webkit_web_context_register_uri_scheme () +
+
+
+

Properties

+
+++++ + + + + + +
+WebKitWebsiteDataManager *website-data-managerRead / Write / Construct Only
+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
structWebKitWebContext
enumWebKitCacheModel
enumWebKitProcessModel
enumWebKitTLSErrorsPolicy
enumWebKitNetworkProxyMode
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebContext
+
+
+
+

Description

+

The WebKitWebContext manages all aspects common to all +WebKitWebViews.

+

You can define the WebKitCacheModel and WebKitProcessModel with +webkit_web_context_set_cache_model() and +webkit_web_context_set_process_model(), depending on the needs of +your application. You can access the WebKitSecurityManager to specify +the behaviour of your application regarding security using +webkit_web_context_get_security_manager().

+

It is also possible to change your preferred language or enable +spell checking, using webkit_web_context_set_preferred_languages(), +webkit_web_context_set_spell_checking_languages() and +webkit_web_context_set_spell_checking_enabled().

+

You can use webkit_web_context_register_uri_scheme() to register +custom URI schemes, and manage several other settings.

+

TLS certificate validation failure is now treated as a transport +error by default. To handle TLS failures differently, you can +connect to “load-failed-with-tls-errors”. +Alternatively, you can use webkit_web_context_set_tls_errors_policy() +to set the policy WEBKIT_TLS_ERRORS_POLICY_IGNORE; however, this is +not appropriate for Internet applications.

+
+
+

Functions

+
+

webkit_web_context_get_default ()

+
WebKitWebContext *
+webkit_web_context_get_default (void);
+

Gets the default web context

+
+

Returns

+

a WebKitWebContext.

+

[transfer none]

+
+
+
+
+

webkit_web_context_new ()

+
WebKitWebContext *
+webkit_web_context_new (void);
+

Create a new WebKitWebContext

+
+

Returns

+

a newly created WebKitWebContext.

+

[transfer full]

+
+

Since: 2.8

+
+
+
+

webkit_web_context_new_ephemeral ()

+
WebKitWebContext *
+webkit_web_context_new_ephemeral (void);
+

Create a new ephemeral WebKitWebContext. An ephemeral WebKitWebContext is a context +created with an ephemeral WebKitWebsiteDataManager. This is just a convenient method +to create ephemeral contexts without having to create your own WebKitWebsiteDataManager. +All WebKitWebViews associated with this context will also be ephemeral. Websites will +not store any data in the client storage. +This is normally used to implement private instances.

+
+

Returns

+

a new ephemeral WebKitWebContext.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_web_context_new_with_website_data_manager ()

+
WebKitWebContext *
+webkit_web_context_new_with_website_data_manager
+                               (WebKitWebsiteDataManager *manager);
+

Create a new WebKitWebContext with a WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

a newly created WebKitWebContext.

+

[transfer full]

+
+

Since: 2.10

+
+
+
+

webkit_web_context_is_ephemeral ()

+
gboolean
+webkit_web_context_is_ephemeral (WebKitWebContext *context);
+

Get whether a WebKitWebContext is ephemeral.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

TRUE if context +is ephemeral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_web_context_is_automation_allowed ()

+
gboolean
+webkit_web_context_is_automation_allowed
+                               (WebKitWebContext *context);
+

Get whether automation is allowed in context +. +See also webkit_web_context_set_automation_allowed().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

TRUE if automation is allowed or FALSE otherwise.

+
+

Since: 2.18

+
+
+
+

webkit_web_context_set_automation_allowed ()

+
void
+webkit_web_context_set_automation_allowed
+                               (WebKitWebContext *context,
+                                gboolean allowed);
+

Set whether automation is allowed in context +. When automation is enabled the browser could +be controlled by another process by requesting an automation session. When a new automation +session is requested the signal “automation-started” is emitted. +Automation is disabled by default, so you need to explicitly call this method passing TRUE +to enable it.

+

Note that only one WebKitWebContext can have automation enabled, so this will do nothing +if there's another WebKitWebContext with automation already enabled.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

allowed

value to set

 
+
+

Since: 2.18

+
+
+
+

webkit_web_context_get_website_data_manager ()

+
WebKitWebsiteDataManager *
+webkit_web_context_get_website_data_manager
+                               (WebKitWebContext *context);
+

Get the WebKitWebsiteDataManager of context +.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

a WebKitWebsiteDataManager.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

webkit_web_context_get_cache_model ()

+
WebKitCacheModel
+webkit_web_context_get_cache_model (WebKitWebContext *context);
+

Returns the current cache model. For more information about this +value check the documentation of the function +webkit_web_context_set_cache_model().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the current WebKitCacheModel

+
+
+
+
+

webkit_web_context_set_cache_model ()

+
void
+webkit_web_context_set_cache_model (WebKitWebContext *context,
+                                    WebKitCacheModel cache_model);
+

Specifies a usage model for WebViews, which WebKit will use to +determine its caching behavior. All web views follow the cache +model. This cache model determines the RAM and disk space to use +for caching previously viewed content .

+

Research indicates that users tend to browse within clusters of +documents that hold resources in common, and to revisit previously +visited documents. WebKit and the frameworks below it include +built-in caches that take advantage of these patterns, +substantially improving document load speed in browsing +situations. The WebKit cache model controls the behaviors of all of +these caches, including various WebCore caches.

+

Browsers can improve document load speed substantially by +specifying WEBKIT_CACHE_MODEL_WEB_BROWSER. Applications without a +browsing interface can reduce memory usage substantially by +specifying WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER. The default value is +WEBKIT_CACHE_MODEL_WEB_BROWSER.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

cache_model

a WebKitCacheModel

 
+
+
+
+
+

webkit_web_context_get_web_process_count_limit ()

+
guint
+webkit_web_context_get_web_process_count_limit
+                               (WebKitWebContext *context);
+

Gets the maximum number of web processes that can be created at the same time for the context +.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the maximum limit of web processes, or 0 if there isn't a limit.

+
+

Since: 2.10

+
+
+
+

webkit_web_context_set_web_process_count_limit ()

+
void
+webkit_web_context_set_web_process_count_limit
+                               (WebKitWebContext *context,
+                                guint limit);
+

Sets the maximum number of web processes that can be created at the same time for the context +. +The default value is 0 and means no limit.

+

This method **must be called before any web process has been created**, +as early as possible in your application. Calling it later will make +your application crash.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

limit

the maximum number of web processes

 
+
+

Since: 2.10

+
+
+
+

webkit_web_context_clear_cache ()

+
void
+webkit_web_context_clear_cache (WebKitWebContext *context);
+

Clears all resources currently cached. +See also webkit_web_context_set_cache_model().

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+
+
+

webkit_web_context_set_network_proxy_settings ()

+
void
+webkit_web_context_set_network_proxy_settings
+                               (WebKitWebContext *context,
+                                WebKitNetworkProxyMode proxy_mode,
+                                WebKitNetworkProxySettings *proxy_settings);
+

Set the network proxy settings to be used by connections started in context +. +By default WEBKIT_NETWORK_PROXY_MODE_DEFAULT is used, which means that the +system settings will be used (g_proxy_resolver_get_default()). +If you want to override the system default settings, you can either use +WEBKIT_NETWORK_PROXY_MODE_NO_PROXY to make sure no proxies are used at all, +or WEBKIT_NETWORK_PROXY_MODE_CUSTOM to provide your own proxy settings. +When proxy_mode + is WEBKIT_NETWORK_PROXY_MODE_CUSTOM proxy_settings + must be +a valid WebKitNetworkProxySettings; otherwise, proxy_settings + must be NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

proxy_mode

a WebKitNetworkProxyMode

 

proxy_settings

a WebKitNetworkProxySettings, or NULL.

[allow-none]
+
+

Since: 2.16

+
+
+
+

webkit_web_context_download_uri ()

+
WebKitDownload *
+webkit_web_context_download_uri (WebKitWebContext *context,
+                                 const gchar *uri);
+

Requests downloading of the specified URI string. The download operation +will not be associated to any WebKitWebView, if you are interested in +starting a download from a particular WebKitWebView use +webkit_web_view_download_uri() instead.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

uri

the URI to download

 
+
+
+

Returns

+

a new WebKitDownload representing +the download operation.

+

[transfer full]

+
+
+
+
+

webkit_web_context_get_cookie_manager ()

+
WebKitCookieManager *
+webkit_web_context_get_cookie_manager (WebKitWebContext *context);
+

Get the WebKitCookieManager of the context +'s WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitCookieManager of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_get_favicon_database ()

+
WebKitFaviconDatabase *
+webkit_web_context_get_favicon_database
+                               (WebKitWebContext *context);
+

Get the WebKitFaviconDatabase associated with context +.

+

To initialize the database you need to call +webkit_web_context_set_favicon_database_directory().

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitFaviconDatabase of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_set_favicon_database_directory ()

+
void
+webkit_web_context_set_favicon_database_directory
+                               (WebKitWebContext *context,
+                                const gchar *path);
+

Set the directory path to be used to store the favicons database +for context + on disk. Passing NULL as path + means using the +default directory for the platform (see g_get_user_cache_dir()).

+

Calling this method also means enabling the favicons database for +its use from the applications, so that's why it's expected to be +called only once. Further calls for the same instance of +WebKitWebContext won't cause any effect.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

path

an absolute path to the icon database +directory or NULL to use the defaults.

[allow-none]
+
+
+
+
+

webkit_web_context_get_favicon_database_directory ()

+
const gchar *
+webkit_web_context_get_favicon_database_directory
+                               (WebKitWebContext *context);
+

Get the directory path being used to store the favicons database +for context +, or NULL if +webkit_web_context_set_favicon_database_directory() hasn't been +called yet.

+

This function will always return the same path after having called +webkit_web_context_set_favicon_database_directory() for the first +time.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the path of the directory of the favicons +database associated with context +, or NULL.

+

[transfer none]

+
+
+
+
+

webkit_web_context_get_security_manager ()

+
WebKitSecurityManager *
+webkit_web_context_get_security_manager
+                               (WebKitWebContext *context);
+

Get the WebKitSecurityManager of context +.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitSecurityManager of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_set_additional_plugins_directory ()

+
void
+webkit_web_context_set_additional_plugins_directory
+                               (WebKitWebContext *context,
+                                const gchar *directory);
+

Set an additional directory where WebKit will look for plugins.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

directory

the directory to add

 
+
+
+
+
+

webkit_web_context_get_plugins ()

+
void
+webkit_web_context_get_plugins (WebKitWebContext *context,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously get the list of installed plugins.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_context_get_plugins_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_context_get_plugins_finish ()

+
GList *
+webkit_web_context_get_plugins_finish (WebKitWebContext *context,
+                                       GAsyncResult *result,
+                                       GError **error);
+

Finish an asynchronous operation started with webkit_web_context_get_plugins.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GList of WebKitPlugin. You must free the GList with +g_list_free() and unref the WebKitPlugins with g_object_unref() when you're done with them.

+

[element-type WebKitPlugin][transfer full]

+
+
+
+
+

webkit_web_context_get_spell_checking_enabled ()

+
gboolean
+webkit_web_context_get_spell_checking_enabled
+                               (WebKitWebContext *context);
+

Get whether spell checking feature is currently enabled.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

TRUE If spell checking is enabled, or FALSE otherwise.

+
+
+
+
+

webkit_web_context_set_spell_checking_enabled ()

+
void
+webkit_web_context_set_spell_checking_enabled
+                               (WebKitWebContext *context,
+                                gboolean enabled);
+

Enable or disable the spell checking feature.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

enabled

Value to be set

 
+
+
+
+
+

webkit_web_context_get_spell_checking_languages ()

+
const gchar * const *
+webkit_web_context_get_spell_checking_languages
+                               (WebKitWebContext *context);
+

Get the the list of spell checking languages associated with +context +, or NULL if no languages have been previously set.

+

See webkit_web_context_set_spell_checking_languages() for more +details on the format of the languages in the list.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

A NULL-terminated +array of languages if available, or NULL otherwise.

+

[array zero-terminated=1][element-type utf8][transfer none]

+
+
+
+
+

webkit_web_context_set_spell_checking_languages ()

+
void
+webkit_web_context_set_spell_checking_languages
+                               (WebKitWebContext *context,
+                                const gchar * const *languages);
+

Set the list of spell checking languages to be used for spell +checking.

+

The locale string typically is in the form lang_COUNTRY, where lang +is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. +For instance, sv_FI for Swedish as written in Finland or pt_BR +for Portuguese as written in Brazil.

+

You need to call this function with a valid list of languages at +least once in order to properly enable the spell checking feature +in WebKit.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

languages

a NULL-terminated list of spell checking languages.

[array zero-terminated=1][transfer none]
+
+
+
+
+

webkit_web_context_set_preferred_languages ()

+
void
+webkit_web_context_set_preferred_languages
+                               (WebKitWebContext *context,
+                                const gchar * const *languages);
+

Set the list of preferred languages, sorted from most desirable +to least desirable. The list will be used to build the "Accept-Language" +header that will be included in the network requests started by +the WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

languages

a NULL-terminated list of language identifiers.

[allow-none][array zero-terminated=1][element-type utf8][transfer none]
+
+
+
+
+

webkit_web_context_set_tls_errors_policy ()

+
void
+webkit_web_context_set_tls_errors_policy
+                               (WebKitWebContext *context,
+                                WebKitTLSErrorsPolicy policy);
+

Set the TLS errors policy of context + as policy +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

policy

a WebKitTLSErrorsPolicy

 
+
+
+
+
+

webkit_web_context_get_tls_errors_policy ()

+
WebKitTLSErrorsPolicy
+webkit_web_context_get_tls_errors_policy
+                               (WebKitWebContext *context);
+

Get the TLS errors policy of context +

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

a WebKitTLSErrorsPolicy

+
+
+
+
+

webkit_web_context_set_web_extensions_directory ()

+
void
+webkit_web_context_set_web_extensions_directory
+                               (WebKitWebContext *context,
+                                const gchar *directory);
+

Set the directory where WebKit will look for Web Extensions. +This method must be called before loading anything in this context, +otherwise it will not have any effect. You can connect to +“initialize-web-extensions” to call this method +before anything is loaded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

directory

the directory to add

 
+
+
+
+
+

webkit_web_context_set_web_extensions_initialization_user_data ()

+
void
+webkit_web_context_set_web_extensions_initialization_user_data
+                               (WebKitWebContext *context,
+                                GVariant *user_data);
+

Set user data to be passed to Web Extensions on initialization. +The data will be passed to the +WebKitWebExtensionInitializeWithUserDataFunction. +This method must be called before loading anything in this context, +otherwise it will not have any effect. You can connect to +“initialize-web-extensions” to call this method +before anything is loaded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

user_data

a GVariant

 
+
+

Since: 2.4

+
+
+
+

webkit_web_context_prefetch_dns ()

+
void
+webkit_web_context_prefetch_dns (WebKitWebContext *context,
+                                 const gchar *hostname);
+

Resolve the domain name of the given hostname + in advance, so that if a URI +of hostname + is requested the load will be performed more quickly.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

hostname

a hostname to be resolved

 
+
+
+
+
+

webkit_web_context_allow_tls_certificate_for_host ()

+
void
+webkit_web_context_allow_tls_certificate_for_host
+                               (WebKitWebContext *context,
+                                GTlsCertificate *certificate,
+                                const gchar *host);
+

Ignore further TLS errors on the host + for the certificate present in info +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

certificate

a GTlsCertificate

 

host

the host for which a certificate is to be allowed

 
+
+

Since: 2.6

+
+
+
+

webkit_web_context_get_process_model ()

+
WebKitProcessModel
+webkit_web_context_get_process_model (WebKitWebContext *context);
+

Returns the current process model. For more information about this value +see webkit_web_context_set_process_model().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the current WebKitProcessModel

+
+

Since: 2.4

+
+
+
+

webkit_web_context_set_process_model ()

+
void
+webkit_web_context_set_process_model (WebKitWebContext *context,
+                                      WebKitProcessModel process_model);
+

Specifies a process model for WebViews, which WebKit will use to +determine how auxiliary processes are handled. The default setting +(WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS) is suitable for most +applications which embed a small amount of WebViews, or are used to +display documents which are considered safe — like local files.

+

Applications which may potentially use a large amount of WebViews +—for example a multi-tabbed web browser— may want to use +WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES, which will use +one process per view most of the time, while still allowing for web +views to share a process when needed (for example when different +views interact with each other). Using this model, when a process +hangs or crashes, only the WebViews using it stop working, while +the rest of the WebViews in the application will still function +normally.

+

This method **must be called before any web process has been created**, +as early as possible in your application. Calling it later will make +your application crash.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

process_model

a WebKitProcessModel

 
+
+

Since: 2.4

+
+
+
+

webkit_web_context_initialize_notification_permissions ()

+
void
+webkit_web_context_initialize_notification_permissions
+                               (WebKitWebContext *context,
+                                GList *allowed_origins,
+                                GList *disallowed_origins);
+

Sets initial desktop notification permissions for the context +. +allowed_origins + and disallowed_origins + must each be GList of +WebKitSecurityOrigin objects representing origins that will, +respectively, either always or never have permission to show desktop +notifications. No WebKitNotificationPermissionRequest will ever be +generated for any of the security origins represented in +allowed_origins + or disallowed_origins +. This function is necessary +because some webpages proactively check whether they have permission +to display notifications without ever creating a permission request.

+

This function only affects web processes that have not already been +created. The best time to call it is when handling +“initialize-notification-permissions” so as to +ensure that new web processes receive the most recent set of +permissions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

allowed_origins

a GList of security origins.

[element-type WebKitSecurityOrigin]

disallowed_origins

a GList of security origins.

[element-type WebKitSecurityOrigin]
+
+

Since: 2.16

+
+
+
+

WebKitURISchemeRequestCallback ()

+
void
+(*WebKitURISchemeRequestCallback) (WebKitURISchemeRequest *request,
+                                   gpointer user_data);
+

Type definition for a function that will be called back when an URI request is +made for a user registered URI scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

the WebKitURISchemeRequest

 

user_data

user data passed to the callback

 
+
+
+
+
+

webkit_web_context_register_uri_scheme ()

+
void
+webkit_web_context_register_uri_scheme
+                               (WebKitWebContext *context,
+                                const gchar *scheme,
+                                WebKitURISchemeRequestCallback callback,
+                                gpointer user_data,
+                                GDestroyNotify user_data_destroy_func);
+

Register scheme + in context +, so that when an URI request with scheme + is made in the +WebKitWebContext, the WebKitURISchemeRequestCallback registered will be called with a +WebKitURISchemeRequest. +It is possible to handle URI scheme requests asynchronously, by calling g_object_ref() on the +WebKitURISchemeRequest and calling webkit_uri_scheme_request_finish() later +when the data of the request is available or +webkit_uri_scheme_request_finish_error() in case of error.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
static void
+about_uri_scheme_request_cb (WebKitURISchemeRequest *request,
+                             gpointer                user_data)
+{
+    GInputStream *stream;
+    gsize         stream_length;
+    const gchar  *path;
+
+    path = webkit_uri_scheme_request_get_path (request);
+    if (!g_strcmp0 (path, "plugins")) {
+        /* Create a GInputStream with the contents of plugins about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "memory")) {
+        /* Create a GInputStream with the contents of memory about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "applications")) {
+        /* Create a GInputStream with the contents of applications about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "example")) {
+        gchar *contents;
+
+        contents = g_strdup_printf ("<html><body><p>Example about page</p></body></html>");
+        stream_length = strlen (contents);
+        stream = g_memory_input_stream_new_from_data (contents, stream_length, g_free);
+    } else {
+        GError *error;
+
+        error = g_error_new (ABOUT_HANDLER_ERROR, ABOUT_HANDLER_ERROR_INVALID, "Invalid about:%s page.", path);
+        webkit_uri_scheme_request_finish_error (request, error);
+        g_error_free (error);
+        return;
+    }
+    webkit_uri_scheme_request_finish (request, stream, stream_length, "text/html");
+    g_object_unref (stream);
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

scheme

the network scheme to register

 

callback

a WebKitURISchemeRequestCallback.

[scope async]

user_data

data to pass to callback function

 

user_data_destroy_func

destroy notify for user_data +

 
+
+
+
+
+

Types and Values

+
+

struct WebKitWebContext

+
struct WebKitWebContext;
+
+
+
+

enum WebKitCacheModel

+

Enum values used for determining the WebKitWebContext cache model.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER

+

Disable the cache completely, which + substantially reduces memory usage. Useful for applications that only + access a single local file, with no navigation to other pages. No remote + resources will be cached.

+
 

WEBKIT_CACHE_MODEL_WEB_BROWSER

+

Improve document load speed substantially + by caching a very large number of resources and previously viewed content.

+
 

WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER

+

A cache model optimized for viewing + a series of local files -- for example, a documentation viewer or a website + designer. WebKit will cache a moderate number of resources.

+
 
+
+
+
+
+

enum WebKitProcessModel

+

Enum values used for determining the WebKitWebContext process model.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS

+

Use a single process to + perform content rendering. The process is shared among all the + WebKitWebView instances created by the application: if the process + hangs or crashes all the web views in the application will be affected. + This is the default process model, and it should suffice for most cases.

+
 

WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES

+

Use one process + for each WebKitWebView, while still allowing for some of them to + share a process in certain situations. The main advantage + of this process model is that the rendering process for a web view + can crash while the rest of the views keep working normally. This + process model is indicated for applications which may use a number + of web views and the content of in each must not interfere with the + rest — for example a full-fledged web browser with support for + multiple tabs.

+
 
+
+

Since: 2.4

+
+
+
+

enum WebKitTLSErrorsPolicy

+

Enum values used to denote the TLS errors policy.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_TLS_ERRORS_POLICY_IGNORE

+

Ignore TLS errors.

+
 

WEBKIT_TLS_ERRORS_POLICY_FAIL

+

TLS errors will emit + “load-failed-with-tls-errors” and, if the signal is handled, + finish the load. In case the signal is not handled, + “load-failed” is emitted before the load finishes.

+
 
+
+
+
+
+

enum WebKitNetworkProxyMode

+

Enum values used to set the network proxy mode.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_NETWORK_PROXY_MODE_DEFAULT

+

Use the default proxy of the system.

+
 

WEBKIT_NETWORK_PROXY_MODE_NO_PROXY

+

Do not use any proxy.

+
 

WEBKIT_NETWORK_PROXY_MODE_CUSTOM

+

Use custom proxy settings.

+
 
+
+

Since: 2.16

+
+
+
+

Property Details

+
+

The “website-data-manager” property

+
  “website-data-manager”     WebKitWebsiteDataManager *
+

The WebKitWebsiteDataManager associated with this context.

+

Flags: Read / Write / Construct Only

+

Since: 2.10

+
+
+
+

Signal Details

+
+

The “automation-started” signal

+
void
+user_function (WebKitWebContext        *context,
+               WebKitAutomationSession *session,
+               gpointer                 user_data)
+

This signal is emitted when a new automation request is made. +Note that it will never be emitted if automation is not enabled in context +, +see webkit_web_context_set_automation_allowed() for more details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

session

the WebKitAutomationSession associated with this event

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.18

+
+
+
+

The “download-started” signal

+
void
+user_function (WebKitWebContext *context,
+               WebKitDownload   *download,
+               gpointer          user_data)
+

This signal is emitted when a new download request is made.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

download

the WebKitDownload associated with this event

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “initialize-notification-permissions” signal

+
void
+user_function (WebKitWebContext *context,
+               gpointer          user_data)
+

This signal is emitted when a WebKitWebContext needs to set +initial notification permissions for a web process. It is emitted +when a new web process is about to be launched, and signals the +most appropriate moment to use +webkit_web_context_initialize_notification_permissions(). If no +notification permissions have changed since the last time this +signal was emitted, then there is no need to call +webkit_web_context_initialize_notification_permissions() again.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.16

+
+
+
+

The “initialize-web-extensions” signal

+
void
+user_function (WebKitWebContext *context,
+               gpointer          user_data)
+

This signal is emitted when a new web process is about to be +launched. It signals the most appropriate moment to use +webkit_web_context_set_web_extensions_initialization_user_data() +and webkit_web_context_set_web_extensions_directory().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.4

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebResource/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebResource/index.html new file mode 100644 index 000000000..a7bd6c25e --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebResource/index.html @@ -0,0 +1,587 @@ + + + + +WebKitWebResource: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebResource

+

WebKitWebResource — Represents a resource at the end of a URI

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_web_resource_get_uri () +
+WebKitURIResponse * + +webkit_web_resource_get_response () +
+void + +webkit_web_resource_get_data () +
+guchar * + +webkit_web_resource_get_data_finish () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
+WebKitURIResponse *responseRead
+gchar *uriRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidfailedRun Last
voidfailed-with-tls-errorsRun Last
voidfinishedRun Last
voidreceived-dataRun Last
voidsent-requestRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebResource
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebResource
+
+
+
+

Description

+

A WebKitWebResource encapsulates content for each resource at the +end of a particular URI. For example, one WebKitWebResource will +be created for each separate image and stylesheet when a page is +loaded.

+

You can access the response and the URI for a given +WebKitWebResource, using webkit_web_resource_get_uri() and +webkit_web_resource_get_response(), as well as the raw data, using +webkit_web_resource_get_data().

+
+
+

Functions

+
+

webkit_web_resource_get_uri ()

+
const gchar *
+webkit_web_resource_get_uri (WebKitWebResource *resource);
+

Returns the current active URI of resource +. The active URI might change during +a load operation:

+
    +
  1. + When the resource load starts, the active URI is the requested URI +

  2. +
  3. + When the initial request is sent to the server, “sent-request” + signal is emitted without a redirected response, the active URI is the URI of + the request sent to the server. +

  4. +
  5. + In case of a server redirection, “sent-request” signal + is emitted again with a redirected response, the active URI is the URI the request + was redirected to. +

  6. +
  7. + When the response is received from the server, the active URI is the final + one and it will not change again. +

  8. +
+

You can monitor the active URI by connecting to the notify::uri +signal of resource +.

+
+

Parameters

+
+++++ + + + + + +

resource

a WebKitWebResource

 
+
+
+

Returns

+

the current active URI of resource +

+
+
+
+
+

webkit_web_resource_get_response ()

+
WebKitURIResponse *
+webkit_web_resource_get_response (WebKitWebResource *resource);
+

Retrieves the WebKitURIResponse of the resource load operation. +This method returns NULL if called before the response +is received from the server. You can connect to notify::response +signal to be notified when the response is received.

+
+

Parameters

+
+++++ + + + + + +

resource

a WebKitWebResource

 
+
+
+

Returns

+

the WebKitURIResponse, or NULL if +the response hasn't been received yet.

+

[transfer none]

+
+
+
+
+

webkit_web_resource_get_data ()

+
void
+webkit_web_resource_get_data (WebKitWebResource *resource,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously get the raw data for resource +.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_resource_get_data_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

a WebKitWebResource

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_resource_get_data_finish ()

+
guchar *
+webkit_web_resource_get_data_finish (WebKitWebResource *resource,
+                                     GAsyncResult *result,
+                                     gsize *length,
+                                     GError **error);
+

Finish an asynchronous operation started with webkit_web_resource_get_data().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

a WebKitWebResource

 

result

a GAsyncResult

 

length

return location for the length of the resource data.

[out][allow-none]

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a +string with the data of resource +, or NULL in case of error. if length +is not NULL, the size of the data will be assigned to it.

+

[transfer full][array length=length][element-type guint8]

+
+
+
+
+

Types and Values

+
+

struct WebKitWebResource

+
struct WebKitWebResource;
+
+
+
+

Property Details

+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

The WebKitURIResponse associated with this resource.

+

Flags: Read

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebResource. +See webkit_web_resource_get_uri() for more details.

+

Flags: Read

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “failed” signal

+
void
+user_function (WebKitWebResource *resource,
+               GError            *error,
+               gpointer           user_data)
+

This signal is emitted when an error occurs during the resource +load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “failed-with-tls-errors” signal

+
void
+user_function (WebKitWebResource   *resource,
+               GTlsCertificate     *certificate,
+               GTlsCertificateFlags errors,
+               gpointer             user_data)
+

This signal is emitted when a TLS error occurs during the resource load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

certificate

a GTlsCertificate

 

errors

a GTlsCertificateFlags with the verification status of certificate +

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “finished” signal

+
void
+user_function (WebKitWebResource *resource,
+               gpointer           user_data)
+

This signal is emitted when the resource load finishes successfully +or due to an error. In case of errors “failed” signal +is emitted before this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

resource

the WebKitWebResource

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “received-data” signal

+
void
+user_function (WebKitWebResource *resource,
+               guint64            data_length,
+               gpointer           user_data)
+

This signal is emitted after response is received, +every time new data has been received. It's +useful to know the progress of the resource load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

data_length

the length of data received in bytes

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “sent-request” signal

+
void
+user_function (WebKitWebResource *resource,
+               WebKitURIRequest  *request,
+               WebKitURIResponse *redirected_response,
+               gpointer           user_data)
+

This signal is emitted when request + has been sent to the +server. In case of a server redirection this signal is +emitted again with the request + argument containing the new +request sent to the server due to the redirection and the +redirected_response + parameter containing the response +received by the server for the initial request.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

request

a WebKitURIRequest

 

redirected_response

a WebKitURIResponse, or NULL

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebView/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebView/index.html new file mode 100644 index 000000000..f0a793a04 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebView/index.html @@ -0,0 +1,5724 @@ + + + + +WebKitWebView: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebView

+

WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +(*WebKitFrameDisplayedCallback) () +
+WebKitWebView * + +webkit_web_view_new () +
+WebKitWebView * + +webkit_web_view_new_with_context () +
+WebKitWebView * + +webkit_web_view_new_with_related_view () +
+WebKitWebView * + +webkit_web_view_new_with_settings () +
+WebKitWebView * + +webkit_web_view_new_with_user_content_manager () +
+WebKitWebViewBackend * + +webkit_web_view_get_backend () +
+gboolean + +webkit_web_view_is_ephemeral () +
+gboolean + +webkit_web_view_is_controlled_by_automation () +
+WebKitWebContext * + +webkit_web_view_get_context () +
+WebKitUserContentManager * + +webkit_web_view_get_user_content_manager () +
+WebKitWebsiteDataManager * + +webkit_web_view_get_website_data_manager () +
+void + +webkit_web_view_try_close () +
+void + +webkit_web_view_load_uri () +
+void + +webkit_web_view_load_html () +
+void + +webkit_web_view_load_alternate_html () +
+void + +webkit_web_view_load_plain_text () +
+void + +webkit_web_view_load_bytes () +
+void + +webkit_web_view_load_request () +
+gboolean + +webkit_web_view_can_go_back () +
+void + +webkit_web_view_go_back () +
+gboolean + +webkit_web_view_can_go_forward () +
+void + +webkit_web_view_go_forward () +
const gchar * + +webkit_web_view_get_title () +
+guint64 + +webkit_web_view_get_page_id () +
+void + +webkit_web_view_reload () +
+void + +webkit_web_view_reload_bypass_cache () +
+void + +webkit_web_view_stop_loading () +
+gboolean + +webkit_web_view_is_loading () +
+gboolean + +webkit_web_view_is_playing_audio () +
+gdouble + +webkit_web_view_get_estimated_load_progress () +
const gchar * + +webkit_web_view_get_custom_charset () +
+void + +webkit_web_view_set_custom_charset () +
+WebKitBackForwardList * + +webkit_web_view_get_back_forward_list () +
+void + +webkit_web_view_go_to_back_forward_list_item () +
const gchar * + +webkit_web_view_get_uri () +
+void + +webkit_web_view_set_settings () +
+WebKitSettings * + +webkit_web_view_get_settings () +
+WebKitWindowProperties * + +webkit_web_view_get_window_properties () +
+void + +webkit_web_view_set_zoom_level () +
+gdouble + +webkit_web_view_get_zoom_level () +
+void + +webkit_web_view_can_execute_editing_command () +
+gboolean + +webkit_web_view_can_execute_editing_command_finish () +
+void + +webkit_web_view_execute_editing_command () +
+void + +webkit_web_view_execute_editing_command_with_argument () +
+WebKitFindController * + +webkit_web_view_get_find_controller () +
+void + +webkit_web_view_run_javascript () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_finish () +
+void + +webkit_web_view_run_javascript_in_world () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_in_world_finish () +
+void + +webkit_web_view_run_javascript_from_gresource () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_from_gresource_finish () +
+gboolean + +webkit_web_view_can_show_mime_type () +
+void + +webkit_web_view_save () +
+GInputStream * + +webkit_web_view_save_finish () +
+void + +webkit_web_view_save_to_file () +
+gboolean + +webkit_web_view_save_to_file_finish () +
+WebKitDownload * + +webkit_web_view_download_uri () +
+gboolean + +webkit_web_view_get_tls_info () +
+void + +webkit_web_view_set_editable () +
+gboolean + +webkit_web_view_is_editable () +
+WebKitEditorState * + +webkit_web_view_get_editor_state () +
+WebKitWebViewSessionState * + +webkit_web_view_get_session_state () +
+void + +webkit_web_view_restore_session_state () +
+WebKitWebResource * + +webkit_web_view_get_main_resource () +
+guint + +webkit_web_view_add_frame_displayed_callback () +
+void + +webkit_web_view_remove_frame_displayed_callback () +
+WebKitJavascriptResult * + +webkit_javascript_result_ref () +
+void + +webkit_javascript_result_unref () +
+JSCValue * + +webkit_javascript_result_get_js_value () +
+WebKitScriptDialog * + +webkit_script_dialog_ref () +
+void + +webkit_script_dialog_unref () +
+WebKitScriptDialogType + +webkit_script_dialog_get_dialog_type () +
const gchar * + +webkit_script_dialog_get_message () +
+void + +webkit_script_dialog_confirm_set_confirmed () +
const gchar * + +webkit_script_dialog_prompt_get_default_text () +
+void + +webkit_script_dialog_prompt_set_text () +
+void + +webkit_script_dialog_close () +
+WebKitWebViewSessionState * + +webkit_web_view_session_state_new () +
+WebKitWebViewSessionState * + +webkit_web_view_session_state_ref () +
+void + +webkit_web_view_session_state_unref () +
+GBytes * + +webkit_web_view_session_state_serialize () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebViewBackend *backendRead / Write / Construct Only
gbooleaneditableRead / Write
gdoubleestimated-load-progressRead
gbooleanis-controlled-by-automationRead / Write / Construct Only
gbooleanis-ephemeralRead / Write / Construct Only
gbooleanis-loadingRead
gbooleanis-playing-audioRead
+WebKitWebView *related-viewWrite / Construct Only
+WebKitSettings *settingsWrite / Construct
+gchar *titleRead
+gchar *uriRead
+WebKitUserContentManager *user-content-managerRead / Write / Construct Only
+WebKitWebContext *web-contextRead / Write / Construct Only
gdoublezoom-levelRead / Write
+
+ + +
+

Object Hierarchy

+
    GBoxed
+    ├── WebKitJavascriptResult
+    ├── WebKitScriptDialog
+    ╰── WebKitWebViewSessionState
+    GObject
+    ╰── WebKitWebView
+
+
+
+

Description

+

WebKitWebView is the central class of the WPE WebKit and WebKitGTK +APIs. It is responsible for managing the drawing of the content and +forwarding of events. You can load any URI into the WebKitWebView or +a data string. With WebKitSettings you can control various aspects +of the rendering and loading of the content.

+

Note that in WebKitGTK, WebKitWebView is scrollable by itself, so +you don't need to embed it in a GtkScrolledWindow.

+
+
+

Functions

+
+

WebKitFrameDisplayedCallback ()

+
void
+(*WebKitFrameDisplayedCallback) (WebKitWebView *web_view,
+                                 gpointer user_data);
+

Callback to be called when a frame is displayed in a webKitWebView.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

user_data

user data

 
+
+

Since: 2.24

+
+
+
+

webkit_web_view_new ()

+
WebKitWebView *
+webkit_web_view_new (WebKitWebViewBackend *backend);
+
+
+
+

webkit_web_view_new_with_context ()

+
WebKitWebView *
+webkit_web_view_new_with_context (WebKitWebViewBackend *backend,
+                                  WebKitWebContext *context);
+
+
+
+

webkit_web_view_new_with_related_view ()

+
WebKitWebView *
+webkit_web_view_new_with_related_view (WebKitWebViewBackend *backend,
+                                       WebKitWebView *web_view);
+
+
+
+

webkit_web_view_new_with_settings ()

+
WebKitWebView *
+webkit_web_view_new_with_settings (WebKitWebViewBackend *backend,
+                                   WebKitSettings *settings);
+
+
+
+

webkit_web_view_new_with_user_content_manager ()

+
WebKitWebView *
+webkit_web_view_new_with_user_content_manager
+                               (WebKitWebViewBackend *backend,
+                                WebKitUserContentManager *user_content_manager);
+
+
+
+

webkit_web_view_get_backend ()

+
WebKitWebViewBackend *
+webkit_web_view_get_backend (WebKitWebView *web_view);
+

Get the WebKitWebViewBackend of web_view +

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWebViewBackend of web_view +.

+

[transfer none]

+
+

Since: 2.20

+
+
+
+

webkit_web_view_is_ephemeral ()

+
gboolean
+webkit_web_view_is_ephemeral (WebKitWebView *web_view);
+

Get whether a WebKitWebView is ephemeral. To create an ephemeral WebKitWebView you need to +use g_object_new() and pass is-ephemeral property with TRUE value. See +“is-ephemeral” for more details. +If web_view + was created with a ephemeral “related-view” or an +ephemeral “web-context” it will also be ephemeral.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is ephemeral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_web_view_is_controlled_by_automation ()

+
gboolean
+webkit_web_view_is_controlled_by_automation
+                               (WebKitWebView *web_view);
+

Get whether a WebKitWebView was created with “is-controlled-by-automation” +property enabled. Only WebKitWebViews controlled by automation can be used in an +automation session.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is controlled by automation, or FALSE otherwise.

+
+

Since: 2.18

+
+
+
+

webkit_web_view_get_context ()

+
WebKitWebContext *
+webkit_web_view_get_context (WebKitWebView *web_view);
+

Gets the web context of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWebContext of the view.

+

[transfer none]

+
+
+
+
+

webkit_web_view_get_user_content_manager ()

+
WebKitUserContentManager *
+webkit_web_view_get_user_content_manager
+                               (WebKitWebView *web_view);
+

Gets the user content manager associated to web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitUserContentManager associated with the view.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_web_view_get_website_data_manager ()

+
WebKitWebsiteDataManager *
+webkit_web_view_get_website_data_manager
+                               (WebKitWebView *web_view);
+

Get the WebKitWebsiteDataManager associated to web_view +. If web_view + is not ephemeral, +the returned WebKitWebsiteDataManager will be the same as the WebKitWebsiteDataManager +of web_view +'s WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

a WebKitWebsiteDataManager.

+

[transfer none]

+
+

Since: 2.16

+
+
+
+

webkit_web_view_try_close ()

+
void
+webkit_web_view_try_close (WebKitWebView *web_view);
+

Tries to close the web_view +. This will fire the onbeforeunload event +to ask the user for confirmation to close the page. If there isn't an +onbeforeunload event handler or the user confirms to close the page, +the “close” signal is emitted, otherwise nothing happens.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_load_uri ()

+
void
+webkit_web_view_load_uri (WebKitWebView *web_view,
+                          const gchar *uri);
+

Requests loading of the specified URI string. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

uri

an URI string

 
+
+
+
+
+

webkit_web_view_load_html ()

+
void
+webkit_web_view_load_html (WebKitWebView *web_view,
+                           const gchar *content,
+                           const gchar *base_uri);
+

Load the given content + string with the specified base_uri +. +If base_uri + is not NULL, relative URLs in the content + will be +resolved against base_uri + and absolute local paths must be children of the base_uri +. +For security reasons absolute local paths that are not children of base_uri + +will cause the web process to terminate. +If you need to include URLs in content + that are local paths in a different +directory than base_uri + you can build a data URI for them. When base_uri + is NULL, +it defaults to "about:blank". The mime type of the document will be "text/html". +You can monitor the load operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

content

The HTML string to load

 

base_uri

The base URI for relative locations or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_load_alternate_html ()

+
void
+webkit_web_view_load_alternate_html (WebKitWebView *web_view,
+                                     const gchar *content,
+                                     const gchar *content_uri,
+                                     const gchar *base_uri);
+

Load the given content + string for the URI content_uri +. +This allows clients to display page-loading errors in the WebKitWebView itself. +When this method is called from “load-failed” signal to show an +error page, then the back-forward list is maintained appropriately. +For everything else this method works the same way as webkit_web_view_load_html().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

content

the new content to display as the main page of the web_view +

 

content_uri

the URI for the alternate page content

 

base_uri

the base URI for relative locations or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_load_plain_text ()

+
void
+webkit_web_view_load_plain_text (WebKitWebView *web_view,
+                                 const gchar *plain_text);
+

Load the specified plain_text + string into web_view +. The mime type of +document will be "text/plain". You can monitor the load +operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

plain_text

The plain text to load

 
+
+
+
+
+

webkit_web_view_load_bytes ()

+
void
+webkit_web_view_load_bytes (WebKitWebView *web_view,
+                            GBytes *bytes,
+                            const gchar *mime_type,
+                            const gchar *encoding,
+                            const gchar *base_uri);
+

Load the specified bytes + into web_view + using the given mime_type + and encoding +. +When mime_type + is NULL, it defaults to "text/html". +When encoding + is NULL, it defaults to "UTF-8". +When base_uri + is NULL, it defaults to "about:blank". +You can monitor the load operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

bytes

input data to load

 

mime_type

the MIME type of bytes +, or NULL.

[allow-none]

encoding

the character encoding of bytes +, or NULL.

[allow-none]

base_uri

the base URI for relative locations or NULL.

[allow-none]
+
+

Since: 2.6

+
+
+
+

webkit_web_view_load_request ()

+
void
+webkit_web_view_load_request (WebKitWebView *web_view,
+                              WebKitURIRequest *request);
+

Requests loading of the specified WebKitURIRequest. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

request

a WebKitURIRequest to load

 
+
+
+
+
+

webkit_web_view_can_go_back ()

+
gboolean
+webkit_web_view_can_go_back (WebKitWebView *web_view);
+

Determines whether web_view + has a previous history item.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if able to move back or FALSE otherwise.

+
+
+
+
+

webkit_web_view_go_back ()

+
void
+webkit_web_view_go_back (WebKitWebView *web_view);
+

Loads the previous history item. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_can_go_forward ()

+
gboolean
+webkit_web_view_can_go_forward (WebKitWebView *web_view);
+

Determines whether web_view + has a next history item.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if able to move forward or FALSE otherwise.

+
+
+
+
+

webkit_web_view_go_forward ()

+
void
+webkit_web_view_go_forward (WebKitWebView *web_view);
+

Loads the next history item. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_get_title ()

+
const gchar *
+webkit_web_view_get_title (WebKitWebView *web_view);
+

Gets the value of the “title” property. +You can connect to notify::title signal of web_view + to +be notified when the title has been received.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

The main frame document title of web_view +.

+
+
+
+
+

webkit_web_view_get_page_id ()

+
guint64
+webkit_web_view_get_page_id (WebKitWebView *web_view);
+

Get the identifier of the WebKitWebPage corresponding to +the WebKitWebView

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the page ID of web_view +.

+
+
+
+
+

webkit_web_view_reload ()

+
void
+webkit_web_view_reload (WebKitWebView *web_view);
+

Reloads the current contents of web_view +. +See also webkit_web_view_reload_bypass_cache().

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_reload_bypass_cache ()

+
void
+webkit_web_view_reload_bypass_cache (WebKitWebView *web_view);
+

Reloads the current contents of web_view + without +using any cached data.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_stop_loading ()

+
void
+webkit_web_view_stop_loading (WebKitWebView *web_view);
+

Stops any ongoing loading operation in web_view +. +This method does nothing if no content is being loaded. +If there is a loading operation in progress, it will be cancelled and +“load-failed” signal will be emitted with +WEBKIT_NETWORK_ERROR_CANCELLED error.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_is_loading ()

+
gboolean
+webkit_web_view_is_loading (WebKitWebView *web_view);
+

Gets the value of the “is-loading” property. +You can monitor when a WebKitWebView is loading a page by connecting to +notify::is-loading signal of web_view +. This is useful when you are +interesting in knowing when the view is loading something but not in the +details about the status of the load operation, for example to start a spinner +when the view is loading a page and stop it when it finishes.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is loading a page or FALSE otherwise.

+
+
+
+
+

webkit_web_view_is_playing_audio ()

+
gboolean
+webkit_web_view_is_playing_audio (WebKitWebView *web_view);
+

Gets the value of the “is-playing-audio” property. +You can monitor when a page in a WebKitWebView is playing audio by +connecting to the notify::is-playing-audio signal of web_view +. This +is useful when the application wants to provide visual feedback when a +page is producing sound.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if a page in web_view +is playing audio or FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

webkit_web_view_get_estimated_load_progress ()

+
gdouble
+webkit_web_view_get_estimated_load_progress
+                               (WebKitWebView *web_view);
+

Gets the value of the “estimated-load-progress” property. +You can monitor the estimated progress of a load operation by +connecting to the notify::estimated-load-progress signal of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

an estimate of the of the percent complete for a document +load as a range from 0.0 to 1.0.

+
+
+
+
+

webkit_web_view_get_custom_charset ()

+
const gchar *
+webkit_web_view_get_custom_charset (WebKitWebView *web_view);
+

Returns the current custom character encoding name of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current custom character encoding name or NULL if no +custom character encoding has been set.

+
+
+
+
+

webkit_web_view_set_custom_charset ()

+
void
+webkit_web_view_set_custom_charset (WebKitWebView *web_view,
+                                    const gchar *charset);
+

Sets the current custom character encoding override of web_view +. The custom +character encoding will override any text encoding detected via HTTP headers or +META tags. Calling this method will stop any current load operation and reload the +current page. Setting the custom character encoding to NULL removes the character +encoding override.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

charset

a character encoding name or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_get_back_forward_list ()

+
WebKitBackForwardList *
+webkit_web_view_get_back_forward_list (WebKitWebView *web_view);
+

Obtains the WebKitBackForwardList associated with the given WebKitWebView. The +WebKitBackForwardList is owned by the WebKitWebView.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitBackForwardList.

+

[transfer none]

+
+
+
+
+

webkit_web_view_go_to_back_forward_list_item ()

+
void
+webkit_web_view_go_to_back_forward_list_item
+                               (WebKitWebView *web_view,
+                                WebKitBackForwardListItem *list_item);
+

Loads the specific history item list_item +. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

list_item

a WebKitBackForwardListItem

 
+
+
+
+
+

webkit_web_view_get_uri ()

+
const gchar *
+webkit_web_view_get_uri (WebKitWebView *web_view);
+

Returns the current active URI of web_view +. The active URI might change during +a load operation:

+
    +
  1. + When nothing has been loaded yet on web_view the active URI is NULL. +

  2. +
  3. +

    + When a new load operation starts the active URI is the requested URI: +

    +
    +

    +

    +
  4. +
  5. + If there is a server redirection during the load operation, + the active URI is the redirected URI. When the signal + “load-changed” is emitted with WEBKIT_LOAD_REDIRECTED + event, the active URI is already updated to the redirected URI. +

  6. +
  7. + When the signal “load-changed” is emitted + with WEBKIT_LOAD_COMMITTED event, the active URI is the final + one and it will not change unless a new load operation is started + or a navigation action within the same page is performed. +

  8. +
+

You can monitor the active URI by connecting to the notify::uri +signal of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current active URI of web_view +or NULL +if nothing has been loaded yet.

+
+
+
+
+

webkit_web_view_set_settings ()

+
void
+webkit_web_view_set_settings (WebKitWebView *web_view,
+                              WebKitSettings *settings);
+

Sets the WebKitSettings to be applied to web_view +. The +existing WebKitSettings of web_view + will be replaced by +settings +. New settings are applied immediately on web_view +. +The same WebKitSettings object can be shared +by multiple WebKitWebViews.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

settings

a WebKitSettings

 
+
+
+
+
+

webkit_web_view_get_settings ()

+
WebKitSettings *
+webkit_web_view_get_settings (WebKitWebView *web_view);
+

Gets the WebKitSettings currently applied to web_view +. +If no other WebKitSettings have been explicitly applied to +web_view + with webkit_web_view_set_settings(), the default +WebKitSettings will be returned. This method always returns +a valid WebKitSettings object. +To modify any of the web_view + settings, you can either create +a new WebKitSettings object with webkit_settings_new(), setting +the desired preferences, and then replace the existing web_view + +settings with webkit_web_view_set_settings() or get the existing +web_view + settings and update it directly. WebKitSettings objects +can be shared by multiple WebKitWebViews, so modifying +the settings of a WebKitWebView would affect other +WebKitWebViews using the same WebKitSettings.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitSettings attached to web_view +.

+

[transfer none]

+
+
+
+
+

webkit_web_view_get_window_properties ()

+
WebKitWindowProperties *
+webkit_web_view_get_window_properties (WebKitWebView *web_view);
+

Get the WebKitWindowProperties object containing the properties +that the window containing web_view + should have.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWindowProperties of web_view +.

+

[transfer none]

+
+
+
+
+

webkit_web_view_set_zoom_level ()

+
void
+webkit_web_view_set_zoom_level (WebKitWebView *web_view,
+                                gdouble zoom_level);
+

Set the zoom level of web_view +, i.e. the factor by which the +view contents are scaled with respect to their original size.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

zoom_level

the zoom level

 
+
+
+
+
+

webkit_web_view_get_zoom_level ()

+
gdouble
+webkit_web_view_get_zoom_level (WebKitWebView *web_view);
+

Get the zoom level of web_view +, i.e. the factor by which the +view contents are scaled with respect to their original size.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current zoom level of web_view +

+
+
+
+
+

webkit_web_view_can_execute_editing_command ()

+
void
+webkit_web_view_can_execute_editing_command
+                               (WebKitWebView *web_view,
+                                const gchar *command,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously check if it is possible to execute the given editing command.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_can_execute_editing_command_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to check

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_can_execute_editing_command_finish ()

+
gboolean
+webkit_web_view_can_execute_editing_command_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_can_execute_editing_command().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the editing command can be executed or FALSE otherwise

+
+
+
+
+

webkit_web_view_execute_editing_command ()

+
void
+webkit_web_view_execute_editing_command
+                               (WebKitWebView *web_view,
+                                const gchar *command);
+

Request to execute the given command + for web_view +. You can use +webkit_web_view_can_execute_editing_command() to check whether +it's possible to execute the command.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to execute

 
+
+
+
+
+

webkit_web_view_execute_editing_command_with_argument ()

+
void
+webkit_web_view_execute_editing_command_with_argument
+                               (WebKitWebView *web_view,
+                                const char *command,
+                                const char *argument);
+

Request to execute the given command + with argument + for web_view +. You can use +webkit_web_view_can_execute_editing_command() to check whether +it's possible to execute the command.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to execute

 

argument

the command argument

 
+
+

Since: 2.10

+
+
+
+

webkit_web_view_get_find_controller ()

+
WebKitFindController *
+webkit_web_view_get_find_controller (WebKitWebView *web_view);
+

Gets the WebKitFindController that will allow the caller to query +the WebKitWebView for the text to look for.

+
+

Parameters

+
+++++ + + + + + +

web_view

the WebKitWebView

 
+
+
+

Returns

+

the WebKitFindController associated to +this particular WebKitWebView.

+

[transfer none]

+
+
+
+
+

webkit_web_view_run_javascript ()

+
void
+webkit_web_view_run_javascript (WebKitWebView *web_view,
+                                const gchar *script,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run script + in the context of the current page in web_view +. If +WebKitSettings:enable-javascript is FALSE, this method will do nothing.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_run_javascript_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

script

the script to run

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_run_javascript_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_finish (WebKitWebView *web_view,
+                                       GAsyncResult *result,
+                                       GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript().

+

This is an example of using webkit_web_view_run_javascript() with a script returning +a string:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
static void
+web_view_javascript_finished (GObject      *object,
+                              GAsyncResult *result,
+                              gpointer      user_data)
+{
+    WebKitJavascriptResult *js_result;
+    JSCValue               *value;
+    GError                 *error = NULL;
+
+    js_result = webkit_web_view_run_javascript_finish (WEBKIT_WEB_VIEW (object), result, &error);
+    if (!js_result) {
+        g_warning ("Error running javascript: %s", error->message);
+        g_error_free (error);
+        return;
+    }
+
+    value = webkit_javascript_result_get_js_value (js_result);
+    if (jsc_value_is_string (value)) {
+        JSCException *exception;
+        gchar        *str_value;
+
+        str_value = jsc_value_to_string (value);
+        exception = jsc_context_get_exception (jsc_value_get_context (value));
+        if (exception)
+            g_warning ("Error running javascript: %s", jsc_exception_get_message (exception));
+        else
+            g_print ("Script result: %s\n", str_value);
+        g_free (str_value);
+    } else {
+        g_warning ("Error running javascript: unexpected return value");
+    }
+    webkit_javascript_result_unref (js_result);
+}
+
+static void
+web_view_get_link_url (WebKitWebView *web_view,
+                       const gchar   *link_id)
+{
+    gchar *script;
+
+    script = g_strdup_printf ("window.document.getElementById('%s').href;", link_id);
+    webkit_web_view_run_javascript (web_view, script, NULL, web_view_javascript_finished, NULL);
+    g_free (script);
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_run_javascript_in_world ()

+
void
+webkit_web_view_run_javascript_in_world
+                               (WebKitWebView *web_view,
+                                const gchar *script,
+                                const gchar *world_name,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run script + in the script world with name world_name + of the current page context in web_view +. +If WebKitSettings:enable-javascript is FALSE, this method will do nothing.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_run_javascript_in_world_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

script

the script to run

 

world_name

the name of a WebKitScriptWorld

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.22

+
+
+
+

webkit_web_view_run_javascript_in_world_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_in_world_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript_in_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_web_view_run_javascript_from_gresource ()

+
void
+webkit_web_view_run_javascript_from_gresource
+                               (WebKitWebView *web_view,
+                                const gchar *resource,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run the script from resource + in the context of the +current page in web_view +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_run_javascript_from_gresource_finish() to get the result +of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

resource

the location of the resource to load

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_run_javascript_from_gresource_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_from_gresource_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript_from_gresource().

+

Check webkit_web_view_run_javascript_finish() for a usage example.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_can_show_mime_type ()

+
gboolean
+webkit_web_view_can_show_mime_type (WebKitWebView *web_view,
+                                    const gchar *mime_type);
+

Whether or not a MIME type can be displayed in web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

mime_type

a MIME type

 
+
+
+

Returns

+

TRUE if the MIME type mime_type +can be displayed or FALSE otherwise

+
+
+
+
+

webkit_web_view_save ()

+
void
+webkit_web_view_save (WebKitWebView *web_view,
+                      WebKitSaveMode save_mode,
+                      GCancellable *cancellable,
+                      GAsyncReadyCallback callback,
+                      gpointer user_data);
+

Asynchronously save the current web page associated to the +WebKitWebView into a self-contained format using the mode +specified in save_mode +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_save_finish() to get the result of the +operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

save_mode

the WebKitSaveMode specifying how the web page should be saved.

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_save_finish ()

+
GInputStream *
+webkit_web_view_save_finish (WebKitWebView *web_view,
+                             GAsyncResult *result,
+                             GError **error);
+

Finish an asynchronous operation started with webkit_web_view_save().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GInputStream with the result of saving +the current web page or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_save_to_file ()

+
void
+webkit_web_view_save_to_file (WebKitWebView *web_view,
+                              GFile *file,
+                              WebKitSaveMode save_mode,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously save the current web page associated to the +WebKitWebView into a self-contained format using the mode +specified in save_mode + and writing it to file +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_save_to_file_finish() to get the result of the +operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

file

the GFile where the current web page should be saved to.

 

save_mode

the WebKitSaveMode specifying how the web page should be saved.

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_save_to_file_finish ()

+
gboolean
+webkit_web_view_save_to_file_finish (WebKitWebView *web_view,
+                                     GAsyncResult *result,
+                                     GError **error);
+

Finish an asynchronous operation started with webkit_web_view_save_to_file().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the web page was successfully saved to a file or FALSE otherwise.

+
+
+
+
+

webkit_web_view_download_uri ()

+
WebKitDownload *
+webkit_web_view_download_uri (WebKitWebView *web_view,
+                              const char *uri);
+

Requests downloading of the specified URI string for web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

uri

the URI to download

 
+
+
+

Returns

+

a new WebKitDownload representing +the download operation.

+

[transfer full]

+
+
+
+
+

webkit_web_view_get_tls_info ()

+
gboolean
+webkit_web_view_get_tls_info (WebKitWebView *web_view,
+                              GTlsCertificate **certificate,
+                              GTlsCertificateFlags *errors);
+

Retrieves the GTlsCertificate associated with the main resource of web_view +, +and the GTlsCertificateFlags showing what problems, if any, have been found +with that certificate. +If the connection is not HTTPS, this function returns FALSE. +This function should be called after a response has been received from the +server, so you can connect to “load-changed” and call this function +when it's emitted with WEBKIT_LOAD_COMMITTED event.

+

Note that this function provides no information about the security of the web +page if the current WebKitTLSErrorsPolicy is WEBKIT_TLS_ERRORS_POLICY_IGNORE +, +as subresources of the page may be controlled by an attacker. This function +may safely be used to determine the security status of the current page only +if the current WebKitTLSErrorsPolicy is WEBKIT_TLS_ERRORS_POLICY_FAIL +, in +which case subresources that fail certificate verification will be blocked.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

certificate

return location for a GTlsCertificate.

[out][transfer none]

errors

return location for a GTlsCertificateFlags the verification status of certificate +.

[out]
+
+
+

Returns

+

TRUE if the web_view +connection uses HTTPS and a response has been received +from the server, or FALSE otherwise.

+
+
+
+
+

webkit_web_view_set_editable ()

+
void
+webkit_web_view_set_editable (WebKitWebView *web_view,
+                              gboolean editable);
+

Sets whether the user is allowed to edit the HTML document.

+

If editable + is TRUE, web_view + allows the user to edit the HTML document. If +editable + is FALSE, an element in web_view +'s document can only be edited if the +CONTENTEDITABLE attribute has been set on the element or one of its parent +elements. By default a WebKitWebView is not editable.

+

Normally, a HTML document is not editable unless the elements within the +document are editable. This function provides a way to make the contents +of a WebKitWebView editable without altering the document or DOM structure.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

editable

a gboolean indicating the editable state

 
+
+

Since: 2.8

+
+
+
+

webkit_web_view_is_editable ()

+
gboolean
+webkit_web_view_is_editable (WebKitWebView *web_view);
+
+
+
+

webkit_web_view_get_editor_state ()

+
WebKitEditorState *
+webkit_web_view_get_editor_state (WebKitWebView *web_view);
+

Gets the web editor state of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitEditorState of the view.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

webkit_web_view_get_session_state ()

+
WebKitWebViewSessionState *
+webkit_web_view_get_session_state (WebKitWebView *web_view);
+

Gets the current session state of web_view +

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

a WebKitWebViewSessionState.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_web_view_restore_session_state ()

+
void
+webkit_web_view_restore_session_state (WebKitWebView *web_view,
+                                       WebKitWebViewSessionState *state);
+

Restore the web_view + session state from state +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

state

a WebKitWebViewSessionState

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_get_main_resource ()

+
WebKitWebResource *
+webkit_web_view_get_main_resource (WebKitWebView *web_view);
+

Return the main resource of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the main WebKitWebResource of the view +or NULL if nothing has been loaded.

+

[transfer none]

+
+
+
+
+

webkit_web_view_add_frame_displayed_callback ()

+
guint
+webkit_web_view_add_frame_displayed_callback
+                               (WebKitWebView *web_view,
+                                WebKitFrameDisplayedCallback callback,
+                                gpointer user_data,
+                                GDestroyNotify destroy_notify);
+

Add a callback to be called when the backend notifies that a frame has been displayed in web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

callback

a WebKitFrameDisplayedCallback

 

user_data

user data to pass to callback +.

[closure]

destroy_notify

destroy notifier for user_data +.

[nullable]
+
+
+

Returns

+

an identifier that should be passed to webkit_web_view_remove_frame_displayed_callback() +to remove the callback.

+
+

Since: 2.24

+
+
+
+

webkit_web_view_remove_frame_displayed_callback ()

+
void
+webkit_web_view_remove_frame_displayed_callback
+                               (WebKitWebView *web_view,
+                                guint id);
+

Removes a WebKitFrameDisplayedCallback previously added to web_view + with +webkit_web_view_add_frame_displayed_callback().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

id

an identifier

 
+
+

Since: 2.24

+
+
+
+

webkit_javascript_result_ref ()

+
WebKitJavascriptResult *
+webkit_javascript_result_ref (WebKitJavascriptResult *js_result);
+

Atomically increments the reference count of js_result + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+

Returns

+

The passed in WebKitJavascriptResult

+
+
+
+
+

webkit_javascript_result_unref ()

+
void
+webkit_javascript_result_unref (WebKitJavascriptResult *js_result);
+

Atomically decrements the reference count of js_result + by one. If the +reference count drops to 0, all memory allocated by the WebKitJavascriptResult is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+
+
+

webkit_javascript_result_get_js_value ()

+
JSCValue *
+webkit_javascript_result_get_js_value (WebKitJavascriptResult *js_result);
+

Get the JSCValue of js_result +.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+

Returns

+

the JSCValue of the WebKitJavascriptResult.

+

[transfer none]

+
+

Since: 2.22

+
+
+
+

webkit_script_dialog_ref ()

+
WebKitScriptDialog *
+webkit_script_dialog_ref (WebKitScriptDialog *dialog);
+

Atomically increments the reference count of dialog + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

The passed in WebKitScriptDialog

+
+

Since: 2.24

+
+
+
+

webkit_script_dialog_unref ()

+
void
+webkit_script_dialog_unref (WebKitScriptDialog *dialog);
+

Atomically decrements the reference count of dialog + by one. If the +reference count drops to 0, all memory allocated by the WebKitScriptdialog is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+

Since: 2.24

+
+
+
+

webkit_script_dialog_get_dialog_type ()

+
WebKitScriptDialogType
+webkit_script_dialog_get_dialog_type (WebKitScriptDialog *dialog);
+

Get the dialog type of a WebKitScriptDialog.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the WebKitScriptDialogType of dialog +

+
+
+
+
+

webkit_script_dialog_get_message ()

+
const gchar *
+webkit_script_dialog_get_message (WebKitScriptDialog *dialog);
+

Get the message of a WebKitScriptDialog.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the message of dialog +.

+
+
+
+
+

webkit_script_dialog_confirm_set_confirmed ()

+
void
+webkit_script_dialog_confirm_set_confirmed
+                               (WebKitScriptDialog *dialog,
+                                gboolean confirmed);
+

This method is used for WEBKIT_SCRIPT_DIALOG_CONFIRM and WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM dialogs when +“script-dialog” signal is emitted to set whether the user +confirmed the dialog or not. The default implementation of “script-dialog” +signal sets TRUE when the OK or Stay buttons are clicked and FALSE otherwise. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_CONFIRM or WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dialog

a WebKitScriptDialog

 

confirmed

whether user confirmed the dialog

 
+
+
+
+
+

webkit_script_dialog_prompt_get_default_text ()

+
const gchar *
+webkit_script_dialog_prompt_get_default_text
+                               (WebKitScriptDialog *dialog);
+

Get the default text of a WebKitScriptDialog of type WEBKIT_SCRIPT_DIALOG_PROMPT. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_PROMPT.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the default text of dialog +

+
+
+
+
+

webkit_script_dialog_prompt_set_text ()

+
void
+webkit_script_dialog_prompt_set_text (WebKitScriptDialog *dialog,
+                                      const gchar *text);
+

This method is used for WEBKIT_SCRIPT_DIALOG_PROMPT dialogs when +“script-dialog” signal is emitted to set the text +entered by the user. The default implementation of “script-dialog” +signal sets the text of the entry form when OK button is clicked, otherwise NULL is set. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_PROMPT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dialog

a WebKitScriptDialog

 

text

the text to set

 
+
+
+
+
+

webkit_script_dialog_close ()

+
void
+webkit_script_dialog_close (WebKitScriptDialog *dialog);
+

Close dialog +. When handling a WebKitScriptDialog asynchronously (webkit_script_dialog_ref() +was called in “script-dialog” callback), this function needs to be called to notify +that we are done with the script dialog. The dialog will be closed on destruction if this function +hasn't been called before.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+

Since: 2.24

+
+
+
+

webkit_web_view_session_state_new ()

+
WebKitWebViewSessionState *
+webkit_web_view_session_state_new (GBytes *data);
+

Creates a new WebKitWebViewSessionState from serialized data.

+
+

Parameters

+
+++++ + + + + + +

data

a GBytes

 
+
+
+

Returns

+

a new WebKitWebViewSessionState, or NULL if data +doesn't contain a +valid serialized WebKitWebViewSessionState.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_ref ()

+
WebKitWebViewSessionState *
+webkit_web_view_session_state_ref (WebKitWebViewSessionState *state);
+

Atomically increments the reference count of state + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+
+

Returns

+

The passed in WebKitWebViewSessionState

+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_unref ()

+
void
+webkit_web_view_session_state_unref (WebKitWebViewSessionState *state);
+

Atomically decrements the reference count of state + by one. If the +reference count drops to 0, all memory allocated by the WebKitWebViewSessionState is +released. This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_serialize ()

+
GBytes *
+webkit_web_view_session_state_serialize
+                               (WebKitWebViewSessionState *state);
+

Serializes a WebKitWebViewSessionState.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+
+

Returns

+

a GBytes containing the state +serialized.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

WebKitWebView

+
typedef struct _WebKitWebView WebKitWebView;
+
+
+
+

enum WebKitLoadEvent

+

Enum values used to denote the different events that happen during a +WebKitWebView load operation.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_LOAD_STARTED

+

A new load request has been made. +No data has been received yet, empty structures have +been allocated to perform the load; the load may still +fail due to transport issues such as not being able to +resolve a name, or connect to a port.

+
 

WEBKIT_LOAD_REDIRECTED

+

A provisional data source received +a server redirect.

+
 

WEBKIT_LOAD_COMMITTED

+

The content started arriving for a page load. +The necessary transport requirements are established, and the +load is being performed.

+
 

WEBKIT_LOAD_FINISHED

+

Load completed. All resources are done loading +or there was an error during the load operation.

+
 
+
+
+
+
+

enum WebKitPolicyDecisionType

+

Enum values used for determining the type of a policy decision during +“decide-policy”.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION

+

This type of policy decision + is requested when WebKit is about to navigate to a new page in either the + main frame or a subframe. Acceptable policy decisions are either + webkit_policy_decision_use() or webkit_policy_decision_ignore(). This + type of policy decision is always a WebKitNavigationPolicyDecision.

+
 

WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION

+

This type of policy decision + is requested when WebKit is about to create a new window. Acceptable policy + decisions are either webkit_policy_decision_use() or + webkit_policy_decision_ignore(). This type of policy decision is always + a WebKitNavigationPolicyDecision. These decisions are useful for implementing + special actions for new windows, such as forcing the new window to open + in a tab when a keyboard modifier is active or handling a special + target attribute on <a> elements.

+
 

WEBKIT_POLICY_DECISION_TYPE_RESPONSE

+

This type of decision is used when WebKit has + received a response for a network resource and is about to start the load. + Note that these resources include all subresources of a page such as images + and stylesheets as well as main documents. Appropriate policy responses to + this decision are webkit_policy_decision_use(), webkit_policy_decision_ignore(), + or webkit_policy_decision_download(). This type of policy decision is always + a WebKitResponsePolicyDecision. This decision is useful for forcing + some types of resources to be downloaded rather than rendered in the WebView + or to block the transfer of resources entirely.

+
 
+
+
+
+
+

enum WebKitSaveMode

+

Enum values to specify the different ways in which a WebKitWebView +can save its current web page into a self-contained file.

+
+

Members

+
+++++ + + + + + +

WEBKIT_SAVE_MODE_MHTML

+

Save the current page using the MHTML format.

+
 
+
+
+
+
+

enum WebKitInsecureContentEvent

+

Enum values used to denote the different events which can trigger +the detection of insecure content.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_INSECURE_CONTENT_RUN

+

Insecure content has been detected by +trying to execute any kind of logic (e.g. a script) from an +untrusted source.

+
 

WEBKIT_INSECURE_CONTENT_DISPLAYED

+

Insecure content has been +detected by trying to display any kind of resource (e.g. an image) +from an untrusted source.

+
 
+
+
+
+
+

enum WebKitWebProcessTerminationReason

+

Enum values used to specify the reason why the web process terminated abnormally.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_WEB_PROCESS_CRASHED

+

the web process crashed.

+
 

WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT

+

the web process exceeded the memory limit.

+
 
+
+

Since: 2.20

+
+
+
+

WEBKIT_EDITING_COMMAND_CUT

+
#define WEBKIT_EDITING_COMMAND_CUT "Cut"
+
+

The cut clipboard command. Copies the current selection inside +a WebKitWebView to the clipboard and deletes the selected content. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's +possible to cut to the clipboard when the WebKitWebView content is +editable and there is an active selection.

+
+
+
+

WEBKIT_EDITING_COMMAND_COPY

+
#define WEBKIT_EDITING_COMMAND_COPY "Copy"
+
+

The copy clipboard command. Copies the current selection inside +a WebKitWebView to the clipboard. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's +possible to copy to the clipboard when there is an active selection +inside the WebKitWebView.

+
+
+
+

WEBKIT_EDITING_COMMAND_PASTE

+
#define WEBKIT_EDITING_COMMAND_PASTE "Paste"
+
+

The paste clipboard command. Pastes the contents of the clipboard to +a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's possible +to paste from the clipboard when the WebKitWebView content is editable +and clipboard is not empty.

+
+
+
+

WEBKIT_EDITING_COMMAND_SELECT_ALL

+
#define WEBKIT_EDITING_COMMAND_SELECT_ALL "SelectAll"
+
+

The select all command. Selects all the content of the current text field in +a WebKitWebView. +It is always possible to select all text, no matter whether the +WebKitWebView content is editable or not. You can still check it +with webkit_web_view_can_execute_editing_command().

+
+
+
+

WEBKIT_EDITING_COMMAND_UNDO

+
#define WEBKIT_EDITING_COMMAND_UNDO "Undo"
+
+

The undo command. Undoes the last editing command in a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). It's only possible +to undo a command after a previously executed editing operation.

+
+
+
+

WEBKIT_EDITING_COMMAND_REDO

+
#define WEBKIT_EDITING_COMMAND_REDO "Redo"
+
+

The redo command. Redoes a previously undone editing command in +a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). It's only possible +to redo a command when it has been previously undone.

+
+
+
+

WEBKIT_EDITING_COMMAND_INSERT_IMAGE

+
#define WEBKIT_EDITING_COMMAND_INSERT_IMAGE "InsertImage"
+
+

The insert image command. Creates an image element that is inserted at +the current cursor position. It receives an URI as argument, +that is used as the image source. This command should be executed with +webkit_web_view_execute_editing_command_with_argument().

+

Since: 2.10

+
+
+
+

WEBKIT_EDITING_COMMAND_CREATE_LINK

+
#define WEBKIT_EDITING_COMMAND_CREATE_LINK "CreateLink"
+
+

The create link command. Creates a link element that is inserted at +the current cursor position. If there's a selection, the selected text +will be used as the link text, otherwise the URL itself will be used. +It receives the link URL as argument. This command should be executed +with webkit_web_view_execute_editing_command_with_argument()

+

Since: 2.10

+
+
+
+

WebKitJavascriptResult

+
typedef struct _WebKitJavascriptResult WebKitJavascriptResult;
+
+
+
+

WebKitScriptDialog

+
typedef struct _WebKitScriptDialog WebKitScriptDialog;
+
+
+
+

enum WebKitScriptDialogType

+

Enum values used for determining the type of WebKitScriptDialog

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_SCRIPT_DIALOG_ALERT

+

Alert script dialog, used to show a +message to the user.

+
 

WEBKIT_SCRIPT_DIALOG_CONFIRM

+

Confirm script dialog, used to ask +confirmation to the user.

+
 

WEBKIT_SCRIPT_DIALOG_PROMPT

+

Prompt script dialog, used to ask +information to the user.

+
 

WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM

+

Before unload confirm dialog, +used to ask confirmation to leave the current page to the user. Since 2.12

+
 
+
+
+
+
+

WebKitWebViewSessionState

+
typedef struct _WebKitWebViewSessionState WebKitWebViewSessionState;
+
+
+
+

Property Details

+
+

The “backend” property

+
  “backend”                  WebKitWebViewBackend *
+

The WebKitWebViewBackend of the view.

+

Flags: Read / Write / Construct Only

+

Since: 2.20

+
+
+
+

The “editable” property

+
  “editable”                 gboolean
+

Whether the pages loaded inside WebKitWebView are editable. For more +information see webkit_web_view_set_editable().

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 2.8

+
+
+
+

The “estimated-load-progress” property

+
  “estimated-load-progress”  gdouble
+

An estimate of the percent completion for the current loading operation. +This value will range from 0.0 to 1.0 and, once a load completes, +will remain at 1.0 until a new load starts, at which point it +will be reset to 0.0. +The value is an estimate based on the total number of bytes expected +to be received for a document, including all its possible subresources +and child documents.

+

Flags: Read

+

Allowed values: [0,1]

+

Default value: 0

+
+
+
+

The “is-controlled-by-automation” property

+
  “is-controlled-by-automation” gboolean
+

Whether the WebKitWebView is controlled by automation. This should only be used when +creating a new WebKitWebView as a response to “create-web-view” +signal request.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.18

+
+
+
+

The “is-ephemeral” property

+
  “is-ephemeral”             gboolean
+

Whether the WebKitWebView is ephemeral. An ephemeral web view never writes +website data to the client storage, no matter what WebKitWebsiteDataManager +its context is using. This is normally used to implement private browsing mode. +This is a G_PARAM_CONSTRUCT_ONLY property, so you have to create a ephemeral +WebKitWebView and it can't be changed. Note that all WebKitWebViews +created with an ephemeral WebKitWebContext will be ephemeral automatically. +See also webkit_web_context_new_ephemeral().

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.16

+
+
+
+

The “is-loading” property

+
  “is-loading”               gboolean
+

Whether the WebKitWebView is currently loading a page. This property becomes +TRUE as soon as a new load operation is requested and before the +“load-changed” signal is emitted with WEBKIT_LOAD_STARTED and +at that point the active URI is the requested one. +When the load operation finishes the property is set to FALSE before +“load-changed” is emitted with WEBKIT_LOAD_FINISHED.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “is-playing-audio” property

+
  “is-playing-audio”         gboolean
+

Whether the WebKitWebView is currently playing audio from a page. +This property becomes TRUE as soon as web content starts playing any +kind of audio. When a page is no longer playing any kind of sound, +the property is set back to FALSE.

+

Flags: Read

+

Default value: FALSE

+

Since: 2.8

+
+
+
+

The “related-view” property

+
  “related-view”             WebKitWebView *
+

The related WebKitWebView used when creating the view to share the +same web process. This property is not readable because the related +web view is only valid during the object construction.

+

Flags: Write / Construct Only

+

Since: 2.4

+
+
+
+

The “settings” property

+
  “settings”                 WebKitSettings *
+

The WebKitSettings of the view.

+

Flags: Write / Construct

+

Since: 2.6

+
+
+
+

The “title” property

+
  “title”                    gchar *
+

The main frame document title of this WebKitWebView. If +the title has not been received yet, it will be NULL.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebView. +See webkit_web_view_get_uri() for more details.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “user-content-manager” property

+
  “user-content-manager”     WebKitUserContentManager *
+

The WebKitUserContentManager of the view.

+

Flags: Read / Write / Construct Only

+

Since: 2.6

+
+
+
+

The “web-context” property

+
  “web-context”              WebKitWebContext *
+

The WebKitWebContext of the view.

+

Flags: Read / Write / Construct Only

+
+
+
+

The “zoom-level” property

+
  “zoom-level”               gdouble
+

The zoom level of the WebKitWebView content. +See webkit_web_view_set_zoom_level() for more details.

+

Flags: Read / Write

+

Allowed values: >= 0

+

Default value: 1

+
+
+
+

Signal Details

+
+

The “authenticate” signal

+
gboolean
+user_function (WebKitWebView               *web_view,
+               WebKitAuthenticationRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when the user is challenged with HTTP +authentication. To let the application access or supply +the credentials as well as to allow the client application +to either cancel the request or perform the authentication, +the signal will pass an instance of the +WebKitAuthenticationRequest in the request + argument. +To handle this signal asynchronously you should keep a ref +of the request and return TRUE. To disable HTTP authentication +entirely, connect to this signal and simply return TRUE.

+

The default signal handler will run a default authentication +dialog asynchronously for the user to interact with.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitAuthenticationRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+

The “close” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when closing a WebKitWebView is requested. This occurs when a +call is made from JavaScript's window.close function or +after trying to close the web_view + with webkit_web_view_try_close(). +It is the owner's responsibility to handle this signal to hide or +destroy the WebKitWebView, if necessary.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “context-menu” signal

+
gboolean
+user_function (WebKitWebView       *web_view,
+               WebKitContextMenu   *context_menu,
+               gpointer             event,
+               WebKitHitTestResult *hit_test_result,
+               gpointer             user_data)
+

Emitted when a context menu is about to be displayed to give the application +a chance to customize the proposed menu, prevent the menu from being displayed, +or build its own context menu.

+
+

The event + is expected to be one of the following types:

+
+

If the signal handler returns FALSE the context menu represented by context_menu + +will be shown, if it return TRUE the context menu will not be shown.

+

The proposed WebKitContextMenu passed in context_menu + argument is only valid +during the signal emission.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

context_menu

the proposed WebKitContextMenu

 

event

the GdkEvent that triggered the context menu

 

hit_test_result

a WebKitHitTestResult

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “context-menu-dismissed” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “context-menu” signal, if the context menu is shown, +to notify that the context menu is dismissed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “create” signal

+
WebKitWebView*
+user_function (WebKitWebView          *web_view,
+               WebKitNavigationAction *navigation_action,
+               gpointer                user_data)
+

Emitted when the creation of a new WebKitWebView is requested. +If this signal is handled the signal handler should return the +newly created WebKitWebView.

+

The WebKitNavigationAction parameter contains information about the +navigation action that triggered this signal.

+

When using WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES +process model, the new WebKitWebView should be related to +web_view + to share the same web process, see webkit_web_view_new_with_related_view() +for more details.

+

The new WebKitWebView should not be displayed to the user +until the “ready-to-show” signal is emitted.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

navigation_action

a WebKitNavigationAction

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

a newly allocated WebKitWebView widget +or NULL to propagate the event further.

+

[transfer full]

+
+

Flags: Run Last

+
+
+
+

The “decide-policy” signal

+
gboolean
+user_function (WebKitWebView           *web_view,
+               WebKitPolicyDecision    *decision,
+               WebKitPolicyDecisionType decision_type,
+               gpointer                 user_data)
+

This signal is emitted when WebKit is requesting the client to decide a policy +decision, such as whether to navigate to a page, open a new window or whether or +not to download a resource. The WebKitNavigationPolicyDecision passed in the +decision + argument is a generic type, but should be casted to a more +specific type when making the decision. For example:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
static gboolean
+decide_policy_cb (WebKitWebView *web_view,
+                  WebKitPolicyDecision *decision,
+                  WebKitPolicyDecisionType type)
+{
+    switch (type) {
+    case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION: {
+        WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    }
+    case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION: {
+        WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    }
+    case WEBKIT_POLICY_DECISION_TYPE_RESPONSE:
+        WebKitResponsePolicyDecision *response = WEBKIT_RESPONSE_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    default:
+        /* Making no decision results in webkit_policy_decision_use(). */
+        return FALSE;
+    }
+    return TRUE;
+}
+
+ +

It is possible to make policy decision asynchronously, by simply calling g_object_ref() +on the decision + argument and returning TRUE to block the default signal handler. +If the last reference is removed on a WebKitPolicyDecision and no decision has been +made explicitly, webkit_policy_decision_use() will be the default policy decision. The +default signal handler will simply call webkit_policy_decision_use(). Only the first +policy decision chosen for a given WebKitPolicyDecision will have any affect.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

decision

the WebKitPolicyDecision

 

decision_type

a WebKitPolicyDecisionType denoting the type of decision +

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “enter-fullscreen” signal

+
gboolean
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when JavaScript code calls +element.webkitRequestFullScreen. If the +signal is not handled the WebKitWebView will proceed to full screen +its top level window. This signal can be used by client code to +request permission to the user prior doing the full screen +transition and eventually prepare the top-level window +(e.g. hide some widgets that would otherwise be part of the +full screen window).

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “insecure-content-detected” signal

+
void
+user_function (WebKitWebView             *web_view,
+               WebKitInsecureContentEvent event,
+               gpointer                   user_data)
+

This signal is emitted when insecure content has been detected +in a page loaded through a secure connection. This typically +means that a external resource from an unstrusted source has +been run or displayed, resulting in a mix of HTTPS and +non-HTTPS content.

+

You can check the event + parameter to know exactly which kind +of event has been detected (see WebKitInsecureContentEvent).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

event

the WebKitInsecureContentEvent

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “leave-fullscreen” signal

+
gboolean
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when the WebKitWebView is about to restore its top level +window out of its full screen state. This signal can be used by +client code to restore widgets hidden during the +“enter-fullscreen” stage for instance.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “load-changed” signal

+
void
+user_function (WebKitWebView  *web_view,
+               WebKitLoadEvent load_event,
+               gpointer        user_data)
+

Emitted when a load operation in web_view + changes. +The signal is always emitted with WEBKIT_LOAD_STARTED when a +new load request is made and WEBKIT_LOAD_FINISHED when the load +finishes successfully or due to an error. When the ongoing load +operation fails “load-failed” signal is emitted +before “load-changed” is emitted with +WEBKIT_LOAD_FINISHED. +If a redirection is received from the server, this signal is emitted +with WEBKIT_LOAD_REDIRECTED after the initial emission with +WEBKIT_LOAD_STARTED and before WEBKIT_LOAD_COMMITTED. +When the page content starts arriving the signal is emitted with +WEBKIT_LOAD_COMMITTED event.

+

You can handle this signal and use a switch to track any ongoing +load operation.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
static void web_view_load_changed (WebKitWebView  *web_view,
+                                   WebKitLoadEvent load_event,
+                                   gpointer        user_data)
+{
+    switch (load_event) {
+    case WEBKIT_LOAD_STARTED:
+        /* New load, we have now a provisional URI */
+        provisional_uri = webkit_web_view_get_uri (web_view);
+        /* Here we could start a spinner or update the
+         * location bar with the provisional URI */
+        break;
+    case WEBKIT_LOAD_REDIRECTED:
+        redirected_uri = webkit_web_view_get_uri (web_view);
+        break;
+    case WEBKIT_LOAD_COMMITTED:
+        /* The load is being performed. Current URI is
+         * the final one and it won't change unless a new
+         * load is requested or a navigation within the
+         * same page is performed */
+        uri = webkit_web_view_get_uri (web_view);
+        break;
+    case WEBKIT_LOAD_FINISHED:
+        /* Load finished, we can now stop the spinner */
+        break;
+    }
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

load_event

the WebKitLoadEvent

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “load-failed” signal

+
gboolean
+user_function (WebKitWebView  *web_view,
+               WebKitLoadEvent load_event,
+               gchar          *failing_uri,
+               GError         *error,
+               gpointer        user_data)
+

Emitted when an error occurs during a load operation. +If the error happened when starting to load data for a page +load_event + will be WEBKIT_LOAD_STARTED. If it happened while +loading a committed data source load_event + will be WEBKIT_LOAD_COMMITTED. +Since a load error causes the load operation to finish, the signal +WebKitWebView::load-changed will always be emitted with +WEBKIT_LOAD_FINISHED event right after this one.

+

By default, if the signal is not handled, a stock error page will be displayed. +You need to handle the signal if you want to provide your own error page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

load_event

the WebKitLoadEvent of the load operation

 

failing_uri

the URI that failed to load

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “load-failed-with-tls-errors” signal

+
gboolean
+user_function (WebKitWebView       *web_view,
+               gchar               *failing_uri,
+               GTlsCertificate     *certificate,
+               GTlsCertificateFlags errors,
+               gpointer             user_data)
+

Emitted when a TLS error occurs during a load operation. +To allow an exception for this certificate + +and the host of failing_uri + use webkit_web_context_allow_tls_certificate_for_host().

+

To handle this signal asynchronously you should call g_object_ref() on certificate + +and return TRUE.

+

If FALSE is returned, “load-failed” will be emitted. The load +will finish regardless of the returned value.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

failing_uri

the URI that failed to load

 

certificate

a GTlsCertificate

 

errors

a GTlsCertificateFlags with the verification status of certificate +

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+

Since: 2.6

+
+
+
+

The “mouse-target-changed” signal

+
void
+user_function (WebKitWebView       *web_view,
+               WebKitHitTestResult *hit_test_result,
+               guint                modifiers,
+               gpointer             user_data)
+

This signal is emitted when the mouse cursor moves over an +element such as a link, image or a media element. To determine +what type of element the mouse cursor is over, a Hit Test is performed +on the current mouse coordinates and the result is passed in the +hit_test_result + argument. The modifiers + argument is a bitmask of +GdkModifierType flags indicating the state of modifier keys. +The signal is emitted again when the mouse is moved out of the +current element with a new hit_test_result +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

hit_test_result

a WebKitHitTestResult

 

modifiers

a bitmask of GdkModifierType

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “permission-request” signal

+
gboolean
+user_function (WebKitWebView           *web_view,
+               WebKitPermissionRequest *request,
+               gpointer                 user_data)
+

This signal is emitted when WebKit is requesting the client to +decide about a permission request, such as allowing the browser +to switch to fullscreen mode, sharing its location or similar +operations.

+

A possible way to use this signal could be through a dialog +allowing the user decide what to do with the request:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
static gboolean permission_request_cb (WebKitWebView *web_view,
+                                       WebKitPermissionRequest *request,
+                                       GtkWindow *parent_window)
+{
+    GtkWidget *dialog = gtk_message_dialog_new (parent_window,
+                                                GTK_DIALOG_MODAL,
+                                                GTK_MESSAGE_QUESTION,
+                                                GTK_BUTTONS_YES_NO,
+                                                "Allow Permission Request?");
+    gtk_widget_show (dialog);
+    gint result = gtk_dialog_run (GTK_DIALOG (dialog));
+
+    switch (result) {
+    case GTK_RESPONSE_YES:
+        webkit_permission_request_allow (request);
+        break;
+    default:
+        webkit_permission_request_deny (request);
+        break;
+    }
+    gtk_widget_destroy (dialog);
+
+    return TRUE;
+}
+
+ +

It is possible to handle permission requests asynchronously, by +simply calling g_object_ref() on the request + argument and +returning TRUE to block the default signal handler. If the +last reference is removed on a WebKitPermissionRequest and the +request has not been handled, webkit_permission_request_deny() +will be the default action.

+

If the signal is not handled, the request + will be completed automatically +by the specific WebKitPermissionRequest that could allow or deny it. Check the +documentation of classes implementing WebKitPermissionRequest interface to know +their default action.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

the WebKitPermissionRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “ready-to-show” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “create” on the newly created WebKitWebView +when it should be displayed to the user. When this signal is emitted +all the information about how the window should look, including +size, position, whether the location, status and scrollbars +should be displayed, is already set on the WebKitWindowProperties +of web_view +. See also webkit_web_view_get_window_properties().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “resource-load-started” signal

+
void
+user_function (WebKitWebView     *web_view,
+               WebKitWebResource *resource,
+               WebKitURIRequest  *request,
+               gpointer           user_data)
+

Emitted when a new resource is going to be loaded. The request + parameter +contains the WebKitURIRequest that will be sent to the server. +You can monitor the load operation by connecting to the different signals +of resource +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

resource

a WebKitWebResource

 

request

a WebKitURIRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “run-as-modal” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “ready-to-show” on the newly +created WebKitWebView when JavaScript code calls +window.showModalDialog. The purpose of +this signal is to allow the client application to prepare the +new view to behave as modal. Once the signal is emitted a new +main loop will be run to block user interaction in the parent +WebKitWebView until the new dialog is closed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “run-file-chooser” signal

+
gboolean
+user_function (WebKitWebView            *web_view,
+               WebKitFileChooserRequest *request,
+               gpointer                  user_data)
+

This signal is emitted when the user interacts with a <input +type='file' /> HTML element, requesting from WebKit to show +a dialog to select one or more files to be uploaded. To let the +application know the details of the file chooser, as well as to +allow the client application to either cancel the request or +perform an actual selection of files, the signal will pass an +instance of the WebKitFileChooserRequest in the request + +argument.

+

The default signal handler will asynchronously run a regular +GtkFileChooserDialog for the user to interact with.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitFileChooserRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “script-dialog” signal

+
gboolean
+user_function (WebKitWebView      *web_view,
+               WebKitScriptDialog *dialog,
+               gpointer            user_data)
+

Emitted when JavaScript code calls window.alert, +window.confirm or window.prompt, +or when onbeforeunload event is fired. +The dialog + parameter should be used to build the dialog. +If the signal is not handled a different dialog will be built and shown depending +on the dialog type:

+
+

It is possible to handle the script dialog request asynchronously, by simply +caling webkit_script_dialog_ref() on the dialog + argument and calling +webkit_script_dialog_close() when done. +If the last reference is removed on a WebKitScriptDialog and the dialog has not been +closed, webkit_script_dialog_close() will be called.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

dialog

the WebKitScriptDialog to show

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “show-notification” signal

+
gboolean
+user_function (WebKitWebView      *web_view,
+               WebKitNotification *notification,
+               gpointer            user_data)
+

This signal is emitted when a notification should be presented to the +user. The notification + is kept alive until either: 1) the web page cancels it +or 2) a navigation happens.

+

The default handler will emit a notification using libnotify, if built with +support for it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView

 

notification

a WebKitNotification

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked. FALSE otherwise.

+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “submit-form” signal

+
void
+user_function (WebKitWebView               *web_view,
+               WebKitFormSubmissionRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when a form is about to be submitted. The request + +argument passed contains information about the text fields of the form. This +is typically used to store login information that can be used later to +pre-fill the form. +The form will not be submitted until webkit_form_submission_request_submit() is called.

+

It is possible to handle the form submission request asynchronously, by +simply calling g_object_ref() on the request + argument and calling +webkit_form_submission_request_submit() when done to continue with the form submission. +If the last reference is removed on a WebKitFormSubmissionRequest and the +form has not been submitted, webkit_form_submission_request_submit() will be called.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitFormSubmissionRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “web-process-terminated” signal

+
void
+user_function (WebKitWebView                    *web_view,
+               WebKitWebProcessTerminationReason reason,
+               gpointer                          user_data)
+

This signal is emitted when the web process terminates abnormally due +to reason +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView

 

reason

the a WebKitWebProcessTerminationReason

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebViewBackend/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebViewBackend/index.html new file mode 100644 index 000000000..47a5653ac --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebViewBackend/index.html @@ -0,0 +1,195 @@ + + + + +WebKitWebViewBackend: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebViewBackend

+

WebKitWebViewBackend — A web view backend

+
+
+

Functions

+
++++ + + + + + + + + + + +
struct wpe_view_backend * + +webkit_web_view_backend_get_wpe_backend () +
+WebKitWebViewBackend * + +webkit_web_view_backend_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineWEBKIT_TYPE_WEB_VIEW_BACKEND
 WebKitWebViewBackend
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitWebViewBackend
+
+
+
+

Description

+

A WebKitWebViewBackend is a boxed type wrapping a WPE backend used to create a +WebKitWebView. A WebKitWebViewBackend is created with webkit_web_view_backend_new() +and it should be passed to a WebKitWebView constructor that will take the ownership.

+
+
+

Functions

+
+

webkit_web_view_backend_get_wpe_backend ()

+
struct wpe_view_backend *
+webkit_web_view_backend_get_wpe_backend
+                               (WebKitWebViewBackend *view_backend);
+

Get the WPE backend of view_backend +

+
+

Parameters

+
+++++ + + + + + +

view_backend

a WebKitWebViewBackend

 
+
+
+

Returns

+

the wpe_view_backend.

+

[transfer none]

+
+

Since: 2.20

+
+
+
+

webkit_web_view_backend_new ()

+
WebKitWebViewBackend *
+webkit_web_view_backend_new (struct wpe_view_backend *backend,
+                             GDestroyNotify notify,
+                             gpointer user_data);
+

Create a new WebKitWebViewBackend for the given WPE backend +. You can pass a GDestroyNotify +that will be called when the object is destroyed passing user_data + as the argument. If notify + +is NULL, wpe_view_backend_destroy() will be used with backend + as argument. +The returned WebKitWebViewBackend should never be freed by the user; it must be passed to a +WebKitWebView constructor that will take the ownership.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

backend

a wpe_view_backend.

[transfer full]

notify

a GDestroyNotify, or NULL.

[nullable]

user_data

user data to pass to notify +

 
+
+
+

Returns

+

a newly created WebKitWebViewBackend

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

WEBKIT_TYPE_WEB_VIEW_BACKEND

+
#define WEBKIT_TYPE_WEB_VIEW_BACKEND (webkit_web_view_backend_get_type())
+
+
+
+
+

WebKitWebViewBackend

+
typedef struct _WebKitWebViewBackend WebKitWebViewBackend;
+
+
+
+

See Also

+

WebKitWebView.

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteData/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteData/index.html new file mode 100644 index 000000000..6a4536202 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteData/index.html @@ -0,0 +1,391 @@ + + + + +WebKitWebsiteData: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebsiteData

+

WebKitWebsiteData — Website data

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebsiteData * + +webkit_website_data_ref () +
+void + +webkit_website_data_unref () +
const char * + +webkit_website_data_get_name () +
+WebKitWebsiteDataTypes + +webkit_website_data_get_types () +
+guint64 + +webkit_website_data_get_size () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitWebsiteData
enumWebKitWebsiteDataTypes
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitWebsiteData
+
+
+
+

Description

+

WebKitWebsiteData represents data stored in the client by a particular website. +A website is normally a set of URLs grouped by domain name. You can get the website name, +which is usually the domain, with webkit_website_data_get_name(). +Documents loaded from the file system, like file:// URIs, are all grouped in the same WebKitWebsiteData +with the name "Local files".

+

A website can store different types of data in the client side. WebKitWebsiteDataTypes is an enum containing +all the possible data types; use webkit_website_data_get_types() to get the bitmask of data types. +It's also possible to know the size of the data stored for some of the WebKitWebsiteDataTypes by using +webkit_website_data_get_size().

+

A list of WebKitWebsiteData can be retrieved with webkit_website_data_manager_fetch(). See WebKitWebsiteDataManager +for more information.

+
+
+

Functions

+
+

webkit_website_data_ref ()

+
WebKitWebsiteData *
+webkit_website_data_ref (WebKitWebsiteData *website_data);
+

Atomically increments the reference count of website_data + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

The passed WebKitWebsiteData

+
+

Since: 2.16

+
+
+
+

webkit_website_data_unref ()

+
void
+webkit_website_data_unref (WebKitWebsiteData *website_data);
+

Atomically decrements the reference count of website_data + by one. +If the reference count drops to 0, all memory allocated by +WebKitWebsiteData is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

website_data

A WebKitWebsiteData

 
+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_name ()

+
const char *
+webkit_website_data_get_name (WebKitWebsiteData *website_data);
+

Gets the name of WebKitWebsiteData. This is the website name, normally represented by +a domain or host name. All local documents are grouped in the same WebKitWebsiteData using +the name "Local files".

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

the website name of website_data +.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_types ()

+
WebKitWebsiteDataTypes
+webkit_website_data_get_types (WebKitWebsiteData *website_data);
+

Gets the types of data stored in the client for a WebKitWebsiteData. These are the +types actually present, not the types queried with webkit_website_data_manager_fetch().

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

a bitmask of WebKitWebsiteDataTypes in website_data +

+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_size ()

+
guint64
+webkit_website_data_get_size (WebKitWebsiteData *website_data,
+                              WebKitWebsiteDataTypes types);
+

Gets the size of the data of types types + in a WebKitWebsiteData. +Note that currently the data size is only known for WEBKIT_WEBSITE_DATA_DISK_CACHE data type +so for all other types 0 will be returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

website_data

a WebKitWebsiteData

 

types

a bitmask of WebKitWebsiteDataTypes

 
+
+
+

Returns

+

the size of website_data +for the given types +.

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitWebsiteData

+
typedef struct _WebKitWebsiteData WebKitWebsiteData;
+
+
+
+

enum WebKitWebsiteDataTypes

+

Enum values with flags representing types of Website data.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_WEBSITE_DATA_MEMORY_CACHE

+

Memory cache.

+
 

WEBKIT_WEBSITE_DATA_DISK_CACHE

+

HTTP disk cache.

+
 

WEBKIT_WEBSITE_DATA_OFFLINE_APPLICATION_CACHE

+

Offline web application cache.

+
 

WEBKIT_WEBSITE_DATA_SESSION_STORAGE

+

Session storage data.

+
 

WEBKIT_WEBSITE_DATA_LOCAL_STORAGE

+

Local storage data.

+
 

WEBKIT_WEBSITE_DATA_WEBSQL_DATABASES

+

WebSQL databases.

+
 

WEBKIT_WEBSITE_DATA_INDEXEDDB_DATABASES

+

IndexedDB databases.

+
 

WEBKIT_WEBSITE_DATA_PLUGIN_DATA

+

Plugins data.

+
 

WEBKIT_WEBSITE_DATA_COOKIES

+

Cookies.

+
 

WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT

+

Hash salt used to generate the device ids used by webpages. Since 2.24

+
 

WEBKIT_WEBSITE_DATA_ALL

+

All types.

+
 
+
+

Since: 2.16

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteDataManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteDataManager/index.html new file mode 100644 index 000000000..92be21e98 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteDataManager/index.html @@ -0,0 +1,1010 @@ + + + + +WebKitWebsiteDataManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebsiteDataManager

+

WebKitWebsiteDataManager — Website data manager

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+gchar *base-cache-directoryRead / Write / Construct Only
+gchar *base-data-directoryRead / Write / Construct Only
+gchar *disk-cache-directoryRead / Write / Construct Only
+gchar *indexeddb-directoryRead / Write / Construct Only
gbooleanis-ephemeralRead / Write / Construct Only
+gchar *local-storage-directoryRead / Write / Construct Only
+gchar *offline-application-cache-directoryRead / Write / Construct Only
+gchar *websql-directoryRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebsiteDataManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebsiteDataManager
+
+
+
+

Description

+

WebKitWebsiteDataManager allows you to manage the data that websites +can store in the client file system like databases or caches. +You can use WebKitWebsiteDataManager to configure the local directories +where the Website data will be stored, by creating a new manager with +webkit_website_data_manager_new() passing the values you want to set. +You can set all the possible configuration values or only some of them, +a default value will be used automatically for the configuration options +not provided. “base-data-directory” and +“base-cache-directory” are two special properties +that can be used to set a common base directory for all Website data and +caches. It's possible to provide both, a base directory and a specific value, +but in that case, the specific value takes precedence over the base directory. +The newly created WebKitWebsiteDataManager must be passed as a construct property +to a WebKitWebContext, you can use webkit_web_context_new_with_website_data_manager() +to create a new WebKitWebContext with a WebKitWebsiteDataManager. +In case you don't want to set any specific configuration, you don't need to create +a WebKitWebsiteDataManager, the WebKitWebContext will create a WebKitWebsiteDataManager +with the default configuration. To get the WebKitWebsiteDataManager of a WebKitWebContext +you can use webkit_web_context_get_website_data_manager().

+

A WebKitWebsiteDataManager can also be ephemeral and then all the directories configuration +is not needed because website data will never persist. You can create an ephemeral WebKitWebsiteDataManager +with webkit_website_data_manager_new_ephemeral(). Then you can pass an ephemeral WebKitWebsiteDataManager to +a WebKitWebContext to make it ephemeral or use webkit_web_context_new_ephemeral() and the WebKitWebsiteDataManager +will be automatically created by the WebKitWebContext.

+

WebKitWebsiteDataManager can also be used to fetch websites data, remove data +stored by particular websites, or clear data for all websites modified since a given +period of time.

+
+
+

Functions

+
+

webkit_website_data_manager_new ()

+
WebKitWebsiteDataManager *
+webkit_website_data_manager_new (const gchar *first_option_name,
+                                 ...);
+

Creates a new WebKitWebsiteDataManager with the given options. It must +be passed as construction parameter of a WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

first_option_name

name of the first option to set

 

...

value of first option, followed by more options, NULL-terminated

 
+
+
+

Returns

+

the newly created WebKitWebsiteDataManager.

+

[transfer full]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_new_ephemeral ()

+
WebKitWebsiteDataManager *
+webkit_website_data_manager_new_ephemeral
+                               (void);
+

Creates an ephemeral WebKitWebsiteDataManager. See “is-ephemeral” for more details.

+
+

Returns

+

a new ephemeral WebKitWebsiteDataManager.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_is_ephemeral ()

+
gboolean
+webkit_website_data_manager_is_ephemeral
+                               (WebKitWebsiteDataManager *manager);
+

Get whether a WebKitWebsiteDataManager is ephemeral. See “is-ephemeral” for more details.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

TRUE if manager +is epheral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_get_base_data_directory ()

+
const gchar *
+webkit_website_data_manager_get_base_data_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “base-data-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the base directory for Website data, or NULL if +“base-data-directory” was not provided or manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_base_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_base_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “base-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the base directory for Website cache, or NULL if +“base-cache-directory” was not provided or manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_local_storage_directory ()

+
const gchar *
+webkit_website_data_manager_get_local_storage_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “local-storage-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where local storage data is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_disk_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_disk_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “disk-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where HTTP disk cache is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_offline_application_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_offline_application_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “offline-application-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where offline web application cache is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_indexeddb_directory ()

+
const gchar *
+webkit_website_data_manager_get_indexeddb_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “indexeddb-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where IndexedDB databases are stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_websql_directory ()

+
const gchar *
+webkit_website_data_manager_get_websql_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “websql-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where WebSQL databases are stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_cookie_manager ()

+
WebKitCookieManager *
+webkit_website_data_manager_get_cookie_manager
+                               (WebKitWebsiteDataManager *manager);
+

Get the WebKitCookieManager of manager +.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

a WebKitCookieManager.

+

[transfer none]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_fetch ()

+
void
+webkit_website_data_manager_fetch (WebKitWebsiteDataManager *manager,
+                                   WebKitWebsiteDataTypes types,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously get the list of WebKitWebsiteData for the given types +.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_fetch_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_fetch_finish ()

+
GList *
+webkit_website_data_manager_fetch_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_fetch().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GList of WebKitWebsiteData. You must free the GList with +g_list_free() and unref the WebKitWebsiteDatas with webkit_website_data_unref() when you're done with them.

+

[element-type WebKitWebsiteData][transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_remove ()

+
void
+webkit_website_data_manager_remove (WebKitWebsiteDataManager *manager,
+                                    WebKitWebsiteDataTypes types,
+                                    GList *website_data,
+                                    GCancellable *cancellable,
+                                    GAsyncReadyCallback callback,
+                                    gpointer user_data);
+

Asynchronously removes the website data of the for the given types + for websites in the given website_data + list. +Use webkit_website_data_manager_clear() if you want to remove the website data for all sites.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_remove_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

website_data

a GList of WebKitWebsiteData.

[element-type WebKitWebsiteData]

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_remove_finish ()

+
gboolean
+webkit_website_data_manager_remove_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_remove().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if website data resources were successfully removed, or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_clear ()

+
void
+webkit_website_data_manager_clear (WebKitWebsiteDataManager *manager,
+                                   WebKitWebsiteDataTypes types,
+                                   GTimeSpan timespan,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously clear the website data of the given types + modified in the past timespan +. +If timespan + is 0, all website data will be removed.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_clear_finish() to get the result of the operation.

+

Due to implementation limitations, this function does not currently delete +any stored cookies if timespan + is nonzero. This behavior may change in the +future.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

timespan

a GTimeSpan

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_clear_finish ()

+
gboolean
+webkit_website_data_manager_clear_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_clear()

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if website data was successfully cleared, or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

struct WebKitWebsiteDataManager

+
struct WebKitWebsiteDataManager;
+
+
+
+

Property Details

+
+

The “base-cache-directory” property

+
  “base-cache-directory”     gchar *
+

The base directory for Website cache. This is used as a base directory +for any Website cache when no specific cache directory has been provided.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “base-data-directory” property

+
  “base-data-directory”      gchar *
+

The base directory for Website data. This is used as a base directory +for any Website data when no specific data directory has been provided.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “disk-cache-directory” property

+
  “disk-cache-directory”     gchar *
+

The directory where HTTP disk cache will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “indexeddb-directory” property

+
  “indexeddb-directory”      gchar *
+

The directory where IndexedDB databases will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “is-ephemeral” property

+
  “is-ephemeral”             gboolean
+

Whether the WebKitWebsiteDataManager is ephemeral. An ephemeral WebKitWebsiteDataManager +handles all websites data as non-persistent, and nothing will be written to the client +storage. Note that if you create an ephemeral WebKitWebsiteDataManager all other construction +parameters to configure data directories will be ignored.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.16

+
+
+
+

The “local-storage-directory” property

+
  “local-storage-directory”  gchar *
+

The directory where local storage data will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “offline-application-cache-directory” property

+
  “offline-application-cache-directory” gchar *
+

The directory where offline web application cache will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “websql-directory” property

+
  “websql-directory”         gchar *
+

The directory where WebSQL databases will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWindowProperties/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWindowProperties/index.html new file mode 100644 index 000000000..45c4ed95d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWindowProperties/index.html @@ -0,0 +1,537 @@ + + + + +WebKitWindowProperties: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWindowProperties

+

WebKitWindowProperties — Window properties of a WebKitWebView

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
gbooleanfullscreenRead / Write / Construct Only
gbooleanlocationbar-visibleRead / Write / Construct Only
gbooleanmenubar-visibleRead / Write / Construct Only
gbooleanresizableRead / Write / Construct Only
gbooleanscrollbars-visibleRead / Write / Construct Only
gbooleanstatusbar-visibleRead / Write / Construct Only
gbooleantoolbar-visibleRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWindowProperties
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWindowProperties
+
+
+
+

Description

+

The content of a WebKitWebView can request to change certain +properties of the window containing the view. This can include the x, y position +of the window, the width and height but also if a toolbar, +scrollbar, statusbar, locationbar should be visible to the user, +and the request to show the WebKitWebView fullscreen.

+

The “ready-to-show” signal handler is the proper place +to apply the initial window properties. Then you can monitor the +WebKitWindowProperties by connecting to ::notify signal.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
static void ready_to_show_cb (WebKitWebView *web_view, gpointer user_data)
+{
+    GtkWidget *window;
+    WebKitWindowProperties *window_properties;
+    gboolean visible;
+
+    /* Create the window to contain the WebKitWebView */
+    window = browser_window_new ();
+    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (web_view));
+    gtk_widget_show (GTK_WIDGET (web_view));
+
+    /* Get the WebKitWindowProperties of the web view and monitor it */
+    window_properties = webkit_web_view_get_window_properties (web_view);
+    g_signal_connect (window_properties, "notify::geometry",
+                      G_CALLBACK (window_geometry_changed), window);
+    g_signal_connect (window_properties, "notify::toolbar-visible",
+                      G_CALLBACK (window_toolbar_visibility_changed), window);
+    g_signal_connect (window_properties, "notify::menubar-visible",
+                      G_CALLBACK (window_menubar_visibility_changed), window);
+    ....
+
+    /* Apply the window properties before showing the window */
+    visible = webkit_window_properties_get_toolbar_visible (window_properties);
+    browser_window_set_toolbar_visible (BROWSER_WINDOW (window), visible);
+    visible = webkit_window_properties_get_menubar_visible (window_properties);
+    browser_window_set_menubar_visible (BROWSER_WINDOW (window), visible);
+    ....
+
+    if (webkit_window_properties_get_fullscreen (window_properties)) {
+        gtk_window_fullscreen (GTK_WINDOW (window));
+    } else {
+        GdkRectangle geometry;
+
+        gtk_window_set_resizable (GTK_WINDOW (window),
+                                  webkit_window_properties_get_resizable (window_properties));
+        webkit_window_properties_get_geometry (window_properties, &geometry);
+        gtk_window_move (GTK_WINDOW (window), geometry.x, geometry.y);
+        gtk_window_resize (GTK_WINDOW (window), geometry.width, geometry.height);
+    }
+
+    gtk_widget_show (window);
+}
+
+ +
+
+

Functions

+
+

webkit_window_properties_get_toolbar_visible ()

+
gboolean
+webkit_window_properties_get_toolbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the toolbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if toolbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_statusbar_visible ()

+
gboolean
+webkit_window_properties_get_statusbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the statusbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if statusbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_scrollbars_visible ()

+
gboolean
+webkit_window_properties_get_scrollbars_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the scrollbars visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if scrollbars should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_menubar_visible ()

+
gboolean
+webkit_window_properties_get_menubar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the menubar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if menubar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_locationbar_visible ()

+
gboolean
+webkit_window_properties_get_locationbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the locationbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if locationbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_resizable ()

+
gboolean
+webkit_window_properties_get_resizable
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should be resizable by the user or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if the window should be resizable or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_fullscreen ()

+
gboolean
+webkit_window_properties_get_fullscreen
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should be shown in fullscreen state or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if the window should be fullscreen or FALSE otherwise.

+
+
+
+
+

Types and Values

+
+

struct WebKitWindowProperties

+
struct WebKitWindowProperties;
+
+
+
+

Property Details

+
+

The “fullscreen” property

+
  “fullscreen”               gboolean
+

Whether window will be displayed fullscreen.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+
+
+
+

The “locationbar-visible” property

+
  “locationbar-visible”      gboolean
+

Whether the locationbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “menubar-visible” property

+
  “menubar-visible”          gboolean
+

Whether the menubar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “resizable” property

+
  “resizable”                gboolean
+

Whether the window can be resized.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “scrollbars-visible” property

+
  “scrollbars-visible”       gboolean
+

Whether the scrollbars should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “statusbar-visible” property

+
  “statusbar-visible”        gboolean
+

Whether the statusbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “toolbar-visible” property

+
  “toolbar-visible”          gboolean
+

Whether the toolbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

See Also

+

“ready-to-show”

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/annotation-glossary/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/annotation-glossary/index.html new file mode 100644 index 000000000..4c719ff17 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/annotation-glossary/index.html @@ -0,0 +1,69 @@ + + + + +Annotation Glossary: WPE Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

A

+
allow-none
+

NULL is OK, both for passing and for returning.

+
array
+

Parameter points to an array of items.

+

C

+
closure
+

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

N

+
nullable
+

NULL may be passed as the value in, out, in-out; or as a return value.

+

O

+
optional
+

NULL may be passed instead of a pointer to a location.

+
out
+

Parameter for returning results. Default is transfer full.

+

S

+
scope async
+

The callback is valid until first called.

+

T

+
transfer container
+

Free data container after the code is done.

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch01/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch01/index.html new file mode 100644 index 000000000..a7db63d57 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch01/index.html @@ -0,0 +1,160 @@ + + + + +Class Overview: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Class Overview

+
+
+WebKitWebContext — Manages aspects common to all WebKitWebViews +
+
+WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs +
+
+WebKitWebViewBackend — A web view backend +
+
+WebKitAuthenticationRequest — Represents an authentication request +
+
+WebKitBackForwardList — List of visited pages +
+
+WebKitBackForwardListItem — One item of the WebKitBackForwardList +
+
+WebKitSettings — Control the behaviour of a WebKitWebView +
+
+WebKitURIRequest — Represents a URI request +
+
+WebKitURIResponse — Represents a URI response +
+
+WebKitWindowProperties — Window properties of a WebKitWebView +
+
+WebKitDownload — Object used to communicate with the application when downloading +
+
+WebKitPermissionRequest — A permission request +
+
+WebKitGeolocationPermissionRequest — A permission request for sharing user's location +
+
+WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins +
+
+WebKitNavigationAction +
+
+WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices. +
+
+WebKitPolicyDecision — A pending policy decision +
+
+WebKitNavigationPolicyDecision — A policy decision for navigation actions +
+
+WebKitResponsePolicyDecision — A policy decision for resource responses +
+
+WebKitHitTestResult — Result of a Hit Test +
+
+WebKitEditorState — Web editor state +
+
+WebKitWebResource — Represents a resource at the end of a URI +
+
+WebKitError — Categorized WebKit errors +
+
+WebKitFaviconDatabase — A WebKit favicon database +
+
+WebKitFileChooserRequest — A request to open a file chooser +
+
+WebKitFindController — Controls text search in a WebKitWebView +
+
+WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext +
+
+WebKitPlugin — Represents a plugin, enabling fine-grained control +
+
+WebKitURISchemeRequest — Represents a URI scheme request +
+
+WebKitContextMenu — Represents the context menu in a WebKitWebView +
+
+WebKitContextMenuItem — One item of the WebKitContextMenu +
+
+WebKitFormSubmissionRequest — Represents a form submission request +
+
+WebKitSecurityManager — Controls security settings in a WebKitWebContext +
+
+WebKitUserContentManager — Manages user-defined content which affects web pages. +
+
+User content — Defines user content types which affect web pages. +
+
+WebKitNotification — Object used to hold information about a notification that should be shown to the user. +
+
+WebKitNotificationPermissionRequest — A permission request for displaying web notifications +
+
+WebKitSecurityOrigin — A security boundary for websites +
+
+WebKitWebsiteDataManager — Website data manager +
+
+WebKitWebsiteData — Website data +
+
+WebKitNetworkProxySettings — Network Proxy Settings +
+
+WebKitAutomationSession — Automation Session +
+
+WebKitApplicationInfo +
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch02/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch02/index.html new file mode 100644 index 000000000..04a0c96ff --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch02/index.html @@ -0,0 +1,32 @@ + + + + +Utilities: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Utilities

+
+WebKitURIUtilities — Utility functions to manipulate URIs +
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index-all/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index-all/index.html new file mode 100644 index 000000000..d29d23b74 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index-all/index.html @@ -0,0 +1,1642 @@ + + + + +Index: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Index

+
+
+

A

+
+
WebKitApplicationInfo, WebKitApplicationInfo +
+
webkit_application_info_get_name, webkit_application_info_get_name () +
+
webkit_application_info_get_version, webkit_application_info_get_version () +
+
webkit_application_info_new, webkit_application_info_new () +
+
webkit_application_info_ref, webkit_application_info_ref () +
+
webkit_application_info_set_name, webkit_application_info_set_name () +
+
webkit_application_info_set_version, webkit_application_info_set_version () +
+
webkit_application_info_unref, webkit_application_info_unref () +
+
WebKitAuthenticationRequest, struct WebKitAuthenticationRequest +
+
WebKitAuthenticationRequest::cancelled, The “cancelled” signal +
+
WebKitAuthenticationScheme, enum WebKitAuthenticationScheme +
+
webkit_authentication_request_authenticate, webkit_authentication_request_authenticate () +
+
webkit_authentication_request_cancel, webkit_authentication_request_cancel () +
+
webkit_authentication_request_can_save_credentials, webkit_authentication_request_can_save_credentials () +
+
webkit_authentication_request_get_host, webkit_authentication_request_get_host () +
+
webkit_authentication_request_get_port, webkit_authentication_request_get_port () +
+
webkit_authentication_request_get_proposed_credential, webkit_authentication_request_get_proposed_credential () +
+
webkit_authentication_request_get_realm, webkit_authentication_request_get_realm () +
+
webkit_authentication_request_get_scheme, webkit_authentication_request_get_scheme () +
+
webkit_authentication_request_is_for_proxy, webkit_authentication_request_is_for_proxy () +
+
webkit_authentication_request_is_retry, webkit_authentication_request_is_retry () +
+
WebKitAutomationSession, struct WebKitAutomationSession +
+
WebKitAutomationSession::create-web-view, The “create-web-view” signal +
+
WebKitAutomationSession:id, The “id” property +
+
webkit_automation_session_get_application_info, webkit_automation_session_get_application_info () +
+
webkit_automation_session_get_id, webkit_automation_session_get_id () +
+
webkit_automation_session_set_application_info, webkit_automation_session_set_application_info () +
+
+
+
+

B

+
+
WebKitBackForwardList, struct WebKitBackForwardList +
+
WebKitBackForwardList::changed, The “changed” signal +
+
WebKitBackForwardListItem, struct WebKitBackForwardListItem +
+
webkit_back_forward_list_get_back_item, webkit_back_forward_list_get_back_item () +
+
webkit_back_forward_list_get_back_list, webkit_back_forward_list_get_back_list () +
+
webkit_back_forward_list_get_back_list_with_limit, webkit_back_forward_list_get_back_list_with_limit () +
+
webkit_back_forward_list_get_current_item, webkit_back_forward_list_get_current_item () +
+
webkit_back_forward_list_get_forward_item, webkit_back_forward_list_get_forward_item () +
+
webkit_back_forward_list_get_forward_list, webkit_back_forward_list_get_forward_list () +
+
webkit_back_forward_list_get_forward_list_with_limit, webkit_back_forward_list_get_forward_list_with_limit () +
+
webkit_back_forward_list_get_length, webkit_back_forward_list_get_length () +
+
webkit_back_forward_list_get_nth_item, webkit_back_forward_list_get_nth_item () +
+
webkit_back_forward_list_item_get_original_uri, webkit_back_forward_list_item_get_original_uri () +
+
webkit_back_forward_list_item_get_title, webkit_back_forward_list_item_get_title () +
+
webkit_back_forward_list_item_get_uri, webkit_back_forward_list_item_get_uri () +
+
+
+
+

C

+
+
WebKitCacheModel, enum WebKitCacheModel +
+
WebKitContextMenu, struct WebKitContextMenu +
+
WebKitContextMenuAction, enum WebKitContextMenuAction +
+
WebKitContextMenuItem, WebKitContextMenuItem +
+
webkit_context_menu_append, webkit_context_menu_append () +
+
webkit_context_menu_first, webkit_context_menu_first () +
+
webkit_context_menu_get_items, webkit_context_menu_get_items () +
+
webkit_context_menu_get_item_at_position, webkit_context_menu_get_item_at_position () +
+
webkit_context_menu_get_n_items, webkit_context_menu_get_n_items () +
+
webkit_context_menu_get_user_data, webkit_context_menu_get_user_data () +
+
webkit_context_menu_insert, webkit_context_menu_insert () +
+
webkit_context_menu_item_get_gaction, webkit_context_menu_item_get_gaction () +
+
webkit_context_menu_item_get_stock_action, webkit_context_menu_item_get_stock_action () +
+
webkit_context_menu_item_get_submenu, webkit_context_menu_item_get_submenu () +
+
webkit_context_menu_item_is_separator, webkit_context_menu_item_is_separator () +
+
webkit_context_menu_item_new_from_gaction, webkit_context_menu_item_new_from_gaction () +
+
webkit_context_menu_item_new_from_stock_action, webkit_context_menu_item_new_from_stock_action () +
+
webkit_context_menu_item_new_from_stock_action_with_label, webkit_context_menu_item_new_from_stock_action_with_label () +
+
webkit_context_menu_item_new_separator, webkit_context_menu_item_new_separator () +
+
webkit_context_menu_item_new_with_submenu, webkit_context_menu_item_new_with_submenu () +
+
webkit_context_menu_item_set_submenu, webkit_context_menu_item_set_submenu () +
+
webkit_context_menu_last, webkit_context_menu_last () +
+
webkit_context_menu_move_item, webkit_context_menu_move_item () +
+
webkit_context_menu_new, webkit_context_menu_new () +
+
webkit_context_menu_new_with_items, webkit_context_menu_new_with_items () +
+
webkit_context_menu_prepend, webkit_context_menu_prepend () +
+
webkit_context_menu_remove, webkit_context_menu_remove () +
+
webkit_context_menu_remove_all, webkit_context_menu_remove_all () +
+
webkit_context_menu_set_user_data, webkit_context_menu_set_user_data () +
+
WebKitCookieAcceptPolicy, enum WebKitCookieAcceptPolicy +
+
WebKitCookieManager, struct WebKitCookieManager +
+
WebKitCookieManager::changed, The “changed” signal +
+
WebKitCookiePersistentStorage, enum WebKitCookiePersistentStorage +
+
webkit_cookie_manager_add_cookie, webkit_cookie_manager_add_cookie () +
+
webkit_cookie_manager_add_cookie_finish, webkit_cookie_manager_add_cookie_finish () +
+
webkit_cookie_manager_delete_cookie, webkit_cookie_manager_delete_cookie () +
+
webkit_cookie_manager_delete_cookie_finish, webkit_cookie_manager_delete_cookie_finish () +
+
webkit_cookie_manager_get_accept_policy, webkit_cookie_manager_get_accept_policy () +
+
webkit_cookie_manager_get_accept_policy_finish, webkit_cookie_manager_get_accept_policy_finish () +
+
webkit_cookie_manager_get_cookies, webkit_cookie_manager_get_cookies () +
+
webkit_cookie_manager_get_cookies_finish, webkit_cookie_manager_get_cookies_finish () +
+
webkit_cookie_manager_set_accept_policy, webkit_cookie_manager_set_accept_policy () +
+
webkit_cookie_manager_set_persistent_storage, webkit_cookie_manager_set_persistent_storage () +
+
WebKitCredential, WebKitCredential +
+
WebKitCredentialPersistence, enum WebKitCredentialPersistence +
+
webkit_credential_copy, webkit_credential_copy () +
+
webkit_credential_free, webkit_credential_free () +
+
webkit_credential_get_password, webkit_credential_get_password () +
+
webkit_credential_get_persistence, webkit_credential_get_persistence () +
+
webkit_credential_get_username, webkit_credential_get_username () +
+
webkit_credential_has_password, webkit_credential_has_password () +
+
webkit_credential_new, webkit_credential_new () +
+
+
+
+

D

+
+
WebKitDownload, struct WebKitDownload +
+
WebKitDownload::created-destination, The “created-destination” signal +
+
WebKitDownload::decide-destination, The “decide-destination” signal +
+
WebKitDownload::failed, The “failed” signal +
+
WebKitDownload::finished, The “finished” signal +
+
WebKitDownload::received-data, The “received-data” signal +
+
WebKitDownload:allow-overwrite, The “allow-overwrite” property +
+
WebKitDownload:destination, The “destination” property +
+
WebKitDownload:estimated-progress, The “estimated-progress” property +
+
WebKitDownload:response, The “response” property +
+
WebKitDownloadError, enum WebKitDownloadError +
+
webkit_download_cancel, webkit_download_cancel () +
+
WEBKIT_DOWNLOAD_ERROR, WEBKIT_DOWNLOAD_ERROR +
+
webkit_download_error_quark, webkit_download_error_quark () +
+
webkit_download_get_allow_overwrite, webkit_download_get_allow_overwrite () +
+
webkit_download_get_destination, webkit_download_get_destination () +
+
webkit_download_get_elapsed_time, webkit_download_get_elapsed_time () +
+
webkit_download_get_estimated_progress, webkit_download_get_estimated_progress () +
+
webkit_download_get_received_data_length, webkit_download_get_received_data_length () +
+
webkit_download_get_request, webkit_download_get_request () +
+
webkit_download_get_response, webkit_download_get_response () +
+
webkit_download_get_web_view, webkit_download_get_web_view () +
+
webkit_download_set_allow_overwrite, webkit_download_set_allow_overwrite () +
+
webkit_download_set_destination, webkit_download_set_destination () +
+
+
+
+

E

+
+
WEBKIT_EDITING_COMMAND_COPY, WEBKIT_EDITING_COMMAND_COPY +
+
WEBKIT_EDITING_COMMAND_CREATE_LINK, WEBKIT_EDITING_COMMAND_CREATE_LINK +
+
WEBKIT_EDITING_COMMAND_CUT, WEBKIT_EDITING_COMMAND_CUT +
+
WEBKIT_EDITING_COMMAND_INSERT_IMAGE, WEBKIT_EDITING_COMMAND_INSERT_IMAGE +
+
WEBKIT_EDITING_COMMAND_PASTE, WEBKIT_EDITING_COMMAND_PASTE +
+
WEBKIT_EDITING_COMMAND_REDO, WEBKIT_EDITING_COMMAND_REDO +
+
WEBKIT_EDITING_COMMAND_SELECT_ALL, WEBKIT_EDITING_COMMAND_SELECT_ALL +
+
WEBKIT_EDITING_COMMAND_UNDO, WEBKIT_EDITING_COMMAND_UNDO +
+
WebKitEditorState, struct WebKitEditorState +
+
WebKitEditorState:typing-attributes, The “typing-attributes” property +
+
WebKitEditorTypingAttributes, enum WebKitEditorTypingAttributes +
+
webkit_editor_state_get_typing_attributes, webkit_editor_state_get_typing_attributes () +
+
webkit_editor_state_is_copy_available, webkit_editor_state_is_copy_available () +
+
webkit_editor_state_is_cut_available, webkit_editor_state_is_cut_available () +
+
webkit_editor_state_is_paste_available, webkit_editor_state_is_paste_available () +
+
webkit_editor_state_is_redo_available, webkit_editor_state_is_redo_available () +
+
webkit_editor_state_is_undo_available, webkit_editor_state_is_undo_available () +
+
+
+
+

F

+
+
WebKitFaviconDatabase, struct WebKitFaviconDatabase +
+
WebKitFaviconDatabase::favicon-changed, The “favicon-changed” signal +
+
WebKitFaviconDatabaseError, enum WebKitFaviconDatabaseError +
+
webkit_favicon_database_clear, webkit_favicon_database_clear () +
+
WEBKIT_FAVICON_DATABASE_ERROR, WEBKIT_FAVICON_DATABASE_ERROR +
+
webkit_favicon_database_get_favicon_uri, webkit_favicon_database_get_favicon_uri () +
+
WebKitFileChooserRequest, struct WebKitFileChooserRequest +
+
WebKitFileChooserRequest:mime-types, The “mime-types” property +
+
WebKitFileChooserRequest:select-multiple, The “select-multiple” property +
+
WebKitFileChooserRequest:selected-files, The “selected-files” property +
+
webkit_file_chooser_request_cancel, webkit_file_chooser_request_cancel () +
+
webkit_file_chooser_request_get_mime_types, webkit_file_chooser_request_get_mime_types () +
+
webkit_file_chooser_request_get_selected_files, webkit_file_chooser_request_get_selected_files () +
+
webkit_file_chooser_request_get_select_multiple, webkit_file_chooser_request_get_select_multiple () +
+
webkit_file_chooser_request_select_files, webkit_file_chooser_request_select_files () +
+
WebKitFindController, struct WebKitFindController +
+
WebKitFindController::counted-matches, The “counted-matches” signal +
+
WebKitFindController::failed-to-find-text, The “failed-to-find-text” signal +
+
WebKitFindController::found-text, The “found-text” signal +
+
WebKitFindController:max-match-count, The “max-match-count” property +
+
WebKitFindController:options, The “options” property +
+
WebKitFindController:text, The “text” property +
+
WebKitFindController:web-view, The “web-view” property +
+
WebKitFindOptions, enum WebKitFindOptions +
+
webkit_find_controller_count_matches, webkit_find_controller_count_matches () +
+
webkit_find_controller_get_max_match_count, webkit_find_controller_get_max_match_count () +
+
webkit_find_controller_get_options, webkit_find_controller_get_options () +
+
webkit_find_controller_get_search_text, webkit_find_controller_get_search_text () +
+
webkit_find_controller_get_web_view, webkit_find_controller_get_web_view () +
+
webkit_find_controller_search, webkit_find_controller_search () +
+
webkit_find_controller_search_finish, webkit_find_controller_search_finish () +
+
webkit_find_controller_search_next, webkit_find_controller_search_next () +
+
webkit_find_controller_search_previous, webkit_find_controller_search_previous () +
+
WebKitFormSubmissionRequest, struct WebKitFormSubmissionRequest +
+
webkit_form_submission_request_list_text_fields, webkit_form_submission_request_list_text_fields () +
+
webkit_form_submission_request_submit, webkit_form_submission_request_submit () +
+
WebKitFrameDisplayedCallback, WebKitFrameDisplayedCallback () +
+
+
+
+

G

+
WebKitGeolocationPermissionRequest, struct WebKitGeolocationPermissionRequest +
+
+
+

H

+
+
WebKitHitTestResult, struct WebKitHitTestResult +
+
WebKitHitTestResult:context, The “context” property +
+
WebKitHitTestResult:image-uri, The “image-uri” property +
+
WebKitHitTestResult:link-label, The “link-label” property +
+
WebKitHitTestResult:link-title, The “link-title” property +
+
WebKitHitTestResult:link-uri, The “link-uri” property +
+
WebKitHitTestResult:media-uri, The “media-uri” property +
+
WebKitHitTestResultContext, enum WebKitHitTestResultContext +
+
webkit_hit_test_result_context_is_editable, webkit_hit_test_result_context_is_editable () +
+
webkit_hit_test_result_context_is_image, webkit_hit_test_result_context_is_image () +
+
webkit_hit_test_result_context_is_link, webkit_hit_test_result_context_is_link () +
+
webkit_hit_test_result_context_is_media, webkit_hit_test_result_context_is_media () +
+
webkit_hit_test_result_context_is_scrollbar, webkit_hit_test_result_context_is_scrollbar () +
+
webkit_hit_test_result_context_is_selection, webkit_hit_test_result_context_is_selection () +
+
webkit_hit_test_result_get_context, webkit_hit_test_result_get_context () +
+
webkit_hit_test_result_get_image_uri, webkit_hit_test_result_get_image_uri () +
+
webkit_hit_test_result_get_link_label, webkit_hit_test_result_get_link_label () +
+
webkit_hit_test_result_get_link_title, webkit_hit_test_result_get_link_title () +
+
webkit_hit_test_result_get_link_uri, webkit_hit_test_result_get_link_uri () +
+
webkit_hit_test_result_get_media_uri, webkit_hit_test_result_get_media_uri () +
+
+
+
+

I

+
+
WebKitInsecureContentEvent, enum WebKitInsecureContentEvent +
+
WebKitInstallMissingMediaPluginsPermissionRequest, struct WebKitInstallMissingMediaPluginsPermissionRequest +
+
webkit_install_missing_media_plugins_permission_request_get_description, webkit_install_missing_media_plugins_permission_request_get_description () +
+
+
+
+

J

+
+
WebKitJavascriptError, enum WebKitJavascriptError +
+
WebKitJavascriptResult, WebKitJavascriptResult +
+
WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR +
+
webkit_javascript_error_quark, webkit_javascript_error_quark () +
+
webkit_javascript_result_get_js_value, webkit_javascript_result_get_js_value () +
+
webkit_javascript_result_ref, webkit_javascript_result_ref () +
+
webkit_javascript_result_unref, webkit_javascript_result_unref () +
+
+
+
+

L

+
WebKitLoadEvent, enum WebKitLoadEvent +
+
+
+

M

+
+
WebKitMimeInfo, WebKitMimeInfo +
+
webkit_mime_info_get_description, webkit_mime_info_get_description () +
+
webkit_mime_info_get_extensions, webkit_mime_info_get_extensions () +
+
webkit_mime_info_get_mime_type, webkit_mime_info_get_mime_type () +
+
webkit_mime_info_ref, webkit_mime_info_ref () +
+
webkit_mime_info_unref, webkit_mime_info_unref () +
+
+
+
+

N

+
+
WebKitNavigationAction, WebKitNavigationAction +
+
WebKitNavigationPolicyDecision, struct WebKitNavigationPolicyDecision +
+
WebKitNavigationPolicyDecision:frame-name, The “frame-name” property +
+
WebKitNavigationPolicyDecision:navigation-action, The “navigation-action” property +
+
WebKitNavigationType, enum WebKitNavigationType +
+
webkit_navigation_action_copy, webkit_navigation_action_copy () +
+
webkit_navigation_action_free, webkit_navigation_action_free () +
+
webkit_navigation_action_get_modifiers, webkit_navigation_action_get_modifiers () +
+
webkit_navigation_action_get_mouse_button, webkit_navigation_action_get_mouse_button () +
+
webkit_navigation_action_get_navigation_type, webkit_navigation_action_get_navigation_type () +
+
webkit_navigation_action_get_request, webkit_navigation_action_get_request () +
+
webkit_navigation_action_is_redirect, webkit_navigation_action_is_redirect () +
+
webkit_navigation_action_is_user_gesture, webkit_navigation_action_is_user_gesture () +
+
webkit_navigation_policy_decision_get_frame_name, webkit_navigation_policy_decision_get_frame_name () +
+
webkit_navigation_policy_decision_get_navigation_action, webkit_navigation_policy_decision_get_navigation_action () +
+
WebKitNetworkError, enum WebKitNetworkError +
+
WebKitNetworkProxyMode, enum WebKitNetworkProxyMode +
+
WebKitNetworkProxySettings, WebKitNetworkProxySettings +
+
WEBKIT_NETWORK_ERROR, WEBKIT_NETWORK_ERROR +
+
webkit_network_error_quark, webkit_network_error_quark () +
+
webkit_network_proxy_settings_add_proxy_for_scheme, webkit_network_proxy_settings_add_proxy_for_scheme () +
+
webkit_network_proxy_settings_copy, webkit_network_proxy_settings_copy () +
+
webkit_network_proxy_settings_free, webkit_network_proxy_settings_free () +
+
webkit_network_proxy_settings_new, webkit_network_proxy_settings_new () +
+
WebKitNotification, struct WebKitNotification +
+
WebKitNotification::clicked, The “clicked” signal +
+
WebKitNotification::closed, The “closed” signal +
+
WebKitNotification:body, The “body” property +
+
WebKitNotification:id, The “id” property +
+
WebKitNotification:tag, The “tag” property +
+
WebKitNotification:title, The “title” property +
+
WebKitNotificationPermissionRequest, struct WebKitNotificationPermissionRequest +
+
webkit_notification_clicked, webkit_notification_clicked () +
+
webkit_notification_close, webkit_notification_close () +
+
webkit_notification_get_body, webkit_notification_get_body () +
+
webkit_notification_get_id, webkit_notification_get_id () +
+
webkit_notification_get_tag, webkit_notification_get_tag () +
+
webkit_notification_get_title, webkit_notification_get_title () +
+
+
+
+

P

+
+
WebKitPermissionRequest, WebKitPermissionRequest +
+
webkit_permission_request_allow, webkit_permission_request_allow () +
+
webkit_permission_request_deny, webkit_permission_request_deny () +
+
WebKitPlugin, struct WebKitPlugin +
+
WebKitPluginError, enum WebKitPluginError +
+
WEBKIT_PLUGIN_ERROR, WEBKIT_PLUGIN_ERROR +
+
webkit_plugin_error_quark, webkit_plugin_error_quark () +
+
webkit_plugin_get_description, webkit_plugin_get_description () +
+
webkit_plugin_get_mime_info_list, webkit_plugin_get_mime_info_list () +
+
webkit_plugin_get_name, webkit_plugin_get_name () +
+
webkit_plugin_get_path, webkit_plugin_get_path () +
+
WebKitPolicyDecision, struct WebKitPolicyDecision +
+
WebKitPolicyDecisionType, enum WebKitPolicyDecisionType +
+
WebKitPolicyError, enum WebKitPolicyError +
+
webkit_policy_decision_download, webkit_policy_decision_download () +
+
webkit_policy_decision_ignore, webkit_policy_decision_ignore () +
+
webkit_policy_decision_use, webkit_policy_decision_use () +
+
WEBKIT_POLICY_ERROR, WEBKIT_POLICY_ERROR +
+
webkit_policy_error_quark, webkit_policy_error_quark () +
+
WebKitProcessModel, enum WebKitProcessModel +
+
+
+
+

R

+
+
WebKitResponsePolicyDecision, struct WebKitResponsePolicyDecision +
+
WebKitResponsePolicyDecision:request, The “request” property +
+
WebKitResponsePolicyDecision:response, The “response” property +
+
webkit_response_policy_decision_get_request, webkit_response_policy_decision_get_request () +
+
webkit_response_policy_decision_get_response, webkit_response_policy_decision_get_response () +
+
webkit_response_policy_decision_is_mime_type_supported, webkit_response_policy_decision_is_mime_type_supported () +
+
+
+
+

S

+
+
WebKitSaveMode, enum WebKitSaveMode +
+
WebKitScriptDialog, WebKitScriptDialog +
+
WebKitScriptDialogType, enum WebKitScriptDialogType +
+
webkit_script_dialog_close, webkit_script_dialog_close () +
+
webkit_script_dialog_confirm_set_confirmed, webkit_script_dialog_confirm_set_confirmed () +
+
webkit_script_dialog_get_dialog_type, webkit_script_dialog_get_dialog_type () +
+
webkit_script_dialog_get_message, webkit_script_dialog_get_message () +
+
webkit_script_dialog_prompt_get_default_text, webkit_script_dialog_prompt_get_default_text () +
+
webkit_script_dialog_prompt_set_text, webkit_script_dialog_prompt_set_text () +
+
webkit_script_dialog_ref, webkit_script_dialog_ref () +
+
webkit_script_dialog_unref, webkit_script_dialog_unref () +
+
WebKitSecurityManager, struct WebKitSecurityManager +
+
WebKitSecurityOrigin, WebKitSecurityOrigin +
+
webkit_security_manager_register_uri_scheme_as_cors_enabled, webkit_security_manager_register_uri_scheme_as_cors_enabled () +
+
webkit_security_manager_register_uri_scheme_as_display_isolated, webkit_security_manager_register_uri_scheme_as_display_isolated () +
+
webkit_security_manager_register_uri_scheme_as_empty_document, webkit_security_manager_register_uri_scheme_as_empty_document () +
+
webkit_security_manager_register_uri_scheme_as_local, webkit_security_manager_register_uri_scheme_as_local () +
+
webkit_security_manager_register_uri_scheme_as_no_access, webkit_security_manager_register_uri_scheme_as_no_access () +
+
webkit_security_manager_register_uri_scheme_as_secure, webkit_security_manager_register_uri_scheme_as_secure () +
+
webkit_security_manager_uri_scheme_is_cors_enabled, webkit_security_manager_uri_scheme_is_cors_enabled () +
+
webkit_security_manager_uri_scheme_is_display_isolated, webkit_security_manager_uri_scheme_is_display_isolated () +
+
webkit_security_manager_uri_scheme_is_empty_document, webkit_security_manager_uri_scheme_is_empty_document () +
+
webkit_security_manager_uri_scheme_is_local, webkit_security_manager_uri_scheme_is_local () +
+
webkit_security_manager_uri_scheme_is_no_access, webkit_security_manager_uri_scheme_is_no_access () +
+
webkit_security_manager_uri_scheme_is_secure, webkit_security_manager_uri_scheme_is_secure () +
+
webkit_security_origin_get_host, webkit_security_origin_get_host () +
+
webkit_security_origin_get_port, webkit_security_origin_get_port () +
+
webkit_security_origin_get_protocol, webkit_security_origin_get_protocol () +
+
webkit_security_origin_is_opaque, webkit_security_origin_is_opaque () +
+
webkit_security_origin_new, webkit_security_origin_new () +
+
webkit_security_origin_new_for_uri, webkit_security_origin_new_for_uri () +
+
webkit_security_origin_ref, webkit_security_origin_ref () +
+
webkit_security_origin_to_string, webkit_security_origin_to_string () +
+
webkit_security_origin_unref, webkit_security_origin_unref () +
+
WebKitSettings, struct WebKitSettings +
+
WebKitSettings:allow-file-access-from-file-urls, The “allow-file-access-from-file-urls” property +
+
WebKitSettings:allow-modal-dialogs, The “allow-modal-dialogs” property +
+
WebKitSettings:allow-universal-access-from-file-urls, The “allow-universal-access-from-file-urls” property +
+
WebKitSettings:auto-load-images, The “auto-load-images” property +
+
WebKitSettings:cursive-font-family, The “cursive-font-family” property +
+
WebKitSettings:default-charset, The “default-charset” property +
+
WebKitSettings:default-font-family, The “default-font-family” property +
+
WebKitSettings:default-font-size, The “default-font-size” property +
+
WebKitSettings:default-monospace-font-size, The “default-monospace-font-size” property +
+
WebKitSettings:draw-compositing-indicators, The “draw-compositing-indicators” property +
+
WebKitSettings:enable-accelerated-2d-canvas, The “enable-accelerated-2d-canvas” property +
+
WebKitSettings:enable-caret-browsing, The “enable-caret-browsing” property +
+
WebKitSettings:enable-developer-extras, The “enable-developer-extras” property +
+
WebKitSettings:enable-dns-prefetching, The “enable-dns-prefetching” property +
+
WebKitSettings:enable-encrypted-media, The “enable-encrypted-media” property +
+
WebKitSettings:enable-frame-flattening, The “enable-frame-flattening” property +
+
WebKitSettings:enable-fullscreen, The “enable-fullscreen” property +
+
WebKitSettings:enable-html5-database, The “enable-html5-database” property +
+
WebKitSettings:enable-html5-local-storage, The “enable-html5-local-storage” property +
+
WebKitSettings:enable-hyperlink-auditing, The “enable-hyperlink-auditing” property +
+
WebKitSettings:enable-java, The “enable-java” property +
+
WebKitSettings:enable-javascript, The “enable-javascript” property +
+
WebKitSettings:enable-javascript-markup, The “enable-javascript-markup” property +
+
WebKitSettings:enable-media-capabilities, The “enable-media-capabilities” property +
+
WebKitSettings:enable-media-stream, The “enable-media-stream” property +
+
WebKitSettings:enable-mediasource, The “enable-mediasource” property +
+
WebKitSettings:enable-mock-capture-devices, The “enable-mock-capture-devices” property +
+
WebKitSettings:enable-offline-web-application-cache, The “enable-offline-web-application-cache” property +
+
WebKitSettings:enable-page-cache, The “enable-page-cache” property +
+
WebKitSettings:enable-plugins, The “enable-plugins” property +
+
WebKitSettings:enable-resizable-text-areas, The “enable-resizable-text-areas” property +
+
WebKitSettings:enable-site-specific-quirks, The “enable-site-specific-quirks” property +
+
WebKitSettings:enable-smooth-scrolling, The “enable-smooth-scrolling” property +
+
WebKitSettings:enable-spatial-navigation, The “enable-spatial-navigation” property +
+
WebKitSettings:enable-tabs-to-links, The “enable-tabs-to-links” property +
+
WebKitSettings:enable-webaudio, The “enable-webaudio” property +
+
WebKitSettings:enable-webgl, The “enable-webgl” property +
+
WebKitSettings:enable-write-console-messages-to-stdout, The “enable-write-console-messages-to-stdout” property +
+
WebKitSettings:enable-xss-auditor, The “enable-xss-auditor” property +
+
WebKitSettings:fantasy-font-family, The “fantasy-font-family” property +
+
WebKitSettings:javascript-can-access-clipboard, The “javascript-can-access-clipboard” property +
+
WebKitSettings:javascript-can-open-windows-automatically, The “javascript-can-open-windows-automatically” property +
+
WebKitSettings:load-icons-ignoring-image-load-setting, The “load-icons-ignoring-image-load-setting” property +
+
WebKitSettings:media-playback-allows-inline, The “media-playback-allows-inline” property +
+
WebKitSettings:media-playback-requires-user-gesture, The “media-playback-requires-user-gesture” property +
+
WebKitSettings:minimum-font-size, The “minimum-font-size” property +
+
WebKitSettings:monospace-font-family, The “monospace-font-family” property +
+
WebKitSettings:pictograph-font-family, The “pictograph-font-family” property +
+
WebKitSettings:print-backgrounds, The “print-backgrounds” property +
+
WebKitSettings:sans-serif-font-family, The “sans-serif-font-family” property +
+
WebKitSettings:serif-font-family, The “serif-font-family” property +
+
WebKitSettings:user-agent, The “user-agent” property +
+
WebKitSettings:zoom-text-only, The “zoom-text-only” property +
+
webkit_settings_get_allow_file_access_from_file_urls, webkit_settings_get_allow_file_access_from_file_urls () +
+
webkit_settings_get_allow_modal_dialogs, webkit_settings_get_allow_modal_dialogs () +
+
webkit_settings_get_allow_universal_access_from_file_urls, webkit_settings_get_allow_universal_access_from_file_urls () +
+
webkit_settings_get_auto_load_images, webkit_settings_get_auto_load_images () +
+
webkit_settings_get_cursive_font_family, webkit_settings_get_cursive_font_family () +
+
webkit_settings_get_default_charset, webkit_settings_get_default_charset () +
+
webkit_settings_get_default_font_family, webkit_settings_get_default_font_family () +
+
webkit_settings_get_default_font_size, webkit_settings_get_default_font_size () +
+
webkit_settings_get_default_monospace_font_size, webkit_settings_get_default_monospace_font_size () +
+
webkit_settings_get_draw_compositing_indicators, webkit_settings_get_draw_compositing_indicators () +
+
webkit_settings_get_enable_accelerated_2d_canvas, webkit_settings_get_enable_accelerated_2d_canvas () +
+
webkit_settings_get_enable_caret_browsing, webkit_settings_get_enable_caret_browsing () +
+
webkit_settings_get_enable_developer_extras, webkit_settings_get_enable_developer_extras () +
+
webkit_settings_get_enable_dns_prefetching, webkit_settings_get_enable_dns_prefetching () +
+
webkit_settings_get_enable_encrypted_media, webkit_settings_get_enable_encrypted_media () +
+
webkit_settings_get_enable_frame_flattening, webkit_settings_get_enable_frame_flattening () +
+
webkit_settings_get_enable_fullscreen, webkit_settings_get_enable_fullscreen () +
+
webkit_settings_get_enable_html5_database, webkit_settings_get_enable_html5_database () +
+
webkit_settings_get_enable_html5_local_storage, webkit_settings_get_enable_html5_local_storage () +
+
webkit_settings_get_enable_hyperlink_auditing, webkit_settings_get_enable_hyperlink_auditing () +
+
webkit_settings_get_enable_java, webkit_settings_get_enable_java () +
+
webkit_settings_get_enable_javascript, webkit_settings_get_enable_javascript () +
+
webkit_settings_get_enable_javascript_markup, webkit_settings_get_enable_javascript_markup () +
+
webkit_settings_get_enable_mediasource, webkit_settings_get_enable_mediasource () +
+
webkit_settings_get_enable_media_capabilities, webkit_settings_get_enable_media_capabilities () +
+
webkit_settings_get_enable_media_stream, webkit_settings_get_enable_media_stream () +
+
webkit_settings_get_enable_mock_capture_devices, webkit_settings_get_enable_mock_capture_devices () +
+
webkit_settings_get_enable_offline_web_application_cache, webkit_settings_get_enable_offline_web_application_cache () +
+
webkit_settings_get_enable_page_cache, webkit_settings_get_enable_page_cache () +
+
webkit_settings_get_enable_plugins, webkit_settings_get_enable_plugins () +
+
webkit_settings_get_enable_resizable_text_areas, webkit_settings_get_enable_resizable_text_areas () +
+
webkit_settings_get_enable_site_specific_quirks, webkit_settings_get_enable_site_specific_quirks () +
+
webkit_settings_get_enable_smooth_scrolling, webkit_settings_get_enable_smooth_scrolling () +
+
webkit_settings_get_enable_spatial_navigation, webkit_settings_get_enable_spatial_navigation () +
+
webkit_settings_get_enable_tabs_to_links, webkit_settings_get_enable_tabs_to_links () +
+
webkit_settings_get_enable_webaudio, webkit_settings_get_enable_webaudio () +
+
webkit_settings_get_enable_webgl, webkit_settings_get_enable_webgl () +
+
webkit_settings_get_enable_write_console_messages_to_stdout, webkit_settings_get_enable_write_console_messages_to_stdout () +
+
webkit_settings_get_enable_xss_auditor, webkit_settings_get_enable_xss_auditor () +
+
webkit_settings_get_fantasy_font_family, webkit_settings_get_fantasy_font_family () +
+
webkit_settings_get_javascript_can_access_clipboard, webkit_settings_get_javascript_can_access_clipboard () +
+
webkit_settings_get_javascript_can_open_windows_automatically, webkit_settings_get_javascript_can_open_windows_automatically () +
+
webkit_settings_get_load_icons_ignoring_image_load_setting, webkit_settings_get_load_icons_ignoring_image_load_setting () +
+
webkit_settings_get_media_playback_allows_inline, webkit_settings_get_media_playback_allows_inline () +
+
webkit_settings_get_media_playback_requires_user_gesture, webkit_settings_get_media_playback_requires_user_gesture () +
+
webkit_settings_get_minimum_font_size, webkit_settings_get_minimum_font_size () +
+
webkit_settings_get_monospace_font_family, webkit_settings_get_monospace_font_family () +
+
webkit_settings_get_pictograph_font_family, webkit_settings_get_pictograph_font_family () +
+
webkit_settings_get_print_backgrounds, webkit_settings_get_print_backgrounds () +
+
webkit_settings_get_sans_serif_font_family, webkit_settings_get_sans_serif_font_family () +
+
webkit_settings_get_serif_font_family, webkit_settings_get_serif_font_family () +
+
webkit_settings_get_user_agent, webkit_settings_get_user_agent () +
+
webkit_settings_get_zoom_text_only, webkit_settings_get_zoom_text_only () +
+
webkit_settings_new, webkit_settings_new () +
+
webkit_settings_new_with_settings, webkit_settings_new_with_settings () +
+
webkit_settings_set_allow_file_access_from_file_urls, webkit_settings_set_allow_file_access_from_file_urls () +
+
webkit_settings_set_allow_modal_dialogs, webkit_settings_set_allow_modal_dialogs () +
+
webkit_settings_set_allow_universal_access_from_file_urls, webkit_settings_set_allow_universal_access_from_file_urls () +
+
webkit_settings_set_auto_load_images, webkit_settings_set_auto_load_images () +
+
webkit_settings_set_cursive_font_family, webkit_settings_set_cursive_font_family () +
+
webkit_settings_set_default_charset, webkit_settings_set_default_charset () +
+
webkit_settings_set_default_font_family, webkit_settings_set_default_font_family () +
+
webkit_settings_set_default_font_size, webkit_settings_set_default_font_size () +
+
webkit_settings_set_default_monospace_font_size, webkit_settings_set_default_monospace_font_size () +
+
webkit_settings_set_draw_compositing_indicators, webkit_settings_set_draw_compositing_indicators () +
+
webkit_settings_set_enable_accelerated_2d_canvas, webkit_settings_set_enable_accelerated_2d_canvas () +
+
webkit_settings_set_enable_caret_browsing, webkit_settings_set_enable_caret_browsing () +
+
webkit_settings_set_enable_developer_extras, webkit_settings_set_enable_developer_extras () +
+
webkit_settings_set_enable_dns_prefetching, webkit_settings_set_enable_dns_prefetching () +
+
webkit_settings_set_enable_encrypted_media, webkit_settings_set_enable_encrypted_media () +
+
webkit_settings_set_enable_frame_flattening, webkit_settings_set_enable_frame_flattening () +
+
webkit_settings_set_enable_fullscreen, webkit_settings_set_enable_fullscreen () +
+
webkit_settings_set_enable_html5_database, webkit_settings_set_enable_html5_database () +
+
webkit_settings_set_enable_html5_local_storage, webkit_settings_set_enable_html5_local_storage () +
+
webkit_settings_set_enable_hyperlink_auditing, webkit_settings_set_enable_hyperlink_auditing () +
+
webkit_settings_set_enable_java, webkit_settings_set_enable_java () +
+
webkit_settings_set_enable_javascript, webkit_settings_set_enable_javascript () +
+
webkit_settings_set_enable_javascript_markup, webkit_settings_set_enable_javascript_markup () +
+
webkit_settings_set_enable_mediasource, webkit_settings_set_enable_mediasource () +
+
webkit_settings_set_enable_media_capabilities, webkit_settings_set_enable_media_capabilities () +
+
webkit_settings_set_enable_media_stream, webkit_settings_set_enable_media_stream () +
+
webkit_settings_set_enable_mock_capture_devices, webkit_settings_set_enable_mock_capture_devices () +
+
webkit_settings_set_enable_offline_web_application_cache, webkit_settings_set_enable_offline_web_application_cache () +
+
webkit_settings_set_enable_page_cache, webkit_settings_set_enable_page_cache () +
+
webkit_settings_set_enable_plugins, webkit_settings_set_enable_plugins () +
+
webkit_settings_set_enable_resizable_text_areas, webkit_settings_set_enable_resizable_text_areas () +
+
webkit_settings_set_enable_site_specific_quirks, webkit_settings_set_enable_site_specific_quirks () +
+
webkit_settings_set_enable_smooth_scrolling, webkit_settings_set_enable_smooth_scrolling () +
+
webkit_settings_set_enable_spatial_navigation, webkit_settings_set_enable_spatial_navigation () +
+
webkit_settings_set_enable_tabs_to_links, webkit_settings_set_enable_tabs_to_links () +
+
webkit_settings_set_enable_webaudio, webkit_settings_set_enable_webaudio () +
+
webkit_settings_set_enable_webgl, webkit_settings_set_enable_webgl () +
+
webkit_settings_set_enable_write_console_messages_to_stdout, webkit_settings_set_enable_write_console_messages_to_stdout () +
+
webkit_settings_set_enable_xss_auditor, webkit_settings_set_enable_xss_auditor () +
+
webkit_settings_set_fantasy_font_family, webkit_settings_set_fantasy_font_family () +
+
webkit_settings_set_javascript_can_access_clipboard, webkit_settings_set_javascript_can_access_clipboard () +
+
webkit_settings_set_javascript_can_open_windows_automatically, webkit_settings_set_javascript_can_open_windows_automatically () +
+
webkit_settings_set_load_icons_ignoring_image_load_setting, webkit_settings_set_load_icons_ignoring_image_load_setting () +
+
webkit_settings_set_media_playback_allows_inline, webkit_settings_set_media_playback_allows_inline () +
+
webkit_settings_set_media_playback_requires_user_gesture, webkit_settings_set_media_playback_requires_user_gesture () +
+
webkit_settings_set_minimum_font_size, webkit_settings_set_minimum_font_size () +
+
webkit_settings_set_monospace_font_family, webkit_settings_set_monospace_font_family () +
+
webkit_settings_set_pictograph_font_family, webkit_settings_set_pictograph_font_family () +
+
webkit_settings_set_print_backgrounds, webkit_settings_set_print_backgrounds () +
+
webkit_settings_set_sans_serif_font_family, webkit_settings_set_sans_serif_font_family () +
+
webkit_settings_set_serif_font_family, webkit_settings_set_serif_font_family () +
+
webkit_settings_set_user_agent, webkit_settings_set_user_agent () +
+
webkit_settings_set_user_agent_with_application_details, webkit_settings_set_user_agent_with_application_details () +
+
webkit_settings_set_zoom_text_only, webkit_settings_set_zoom_text_only () +
+
WebKitSnapshotError, enum WebKitSnapshotError +
+
WEBKIT_SNAPSHOT_ERROR, WEBKIT_SNAPSHOT_ERROR +
+
webkit_snapshot_error_quark, webkit_snapshot_error_quark () +
+
+
+
+

T

+
+
WebKitTLSErrorsPolicy, enum WebKitTLSErrorsPolicy +
+
WEBKIT_TYPE_WEB_VIEW_BACKEND, WEBKIT_TYPE_WEB_VIEW_BACKEND +
+
+
+
+

U

+
+
WebKitURIRequest, struct WebKitURIRequest +
+
WebKitURIRequest:uri, The “uri” property +
+
WebKitURIResponse, struct WebKitURIResponse +
+
WebKitURIResponse:content-length, The “content-length” property +
+
WebKitURIResponse:http-headers, The “http-headers” property +
+
WebKitURIResponse:mime-type, The “mime-type” property +
+
WebKitURIResponse:status-code, The “status-code” property +
+
WebKitURIResponse:suggested-filename, The “suggested-filename” property +
+
WebKitURIResponse:uri, The “uri” property +
+
WebKitURISchemeRequest, struct WebKitURISchemeRequest +
+
WebKitURISchemeRequestCallback, WebKitURISchemeRequestCallback () +
+
webkit_uri_for_display, webkit_uri_for_display () +
+
webkit_uri_request_get_http_headers, webkit_uri_request_get_http_headers () +
+
webkit_uri_request_get_http_method, webkit_uri_request_get_http_method () +
+
webkit_uri_request_get_uri, webkit_uri_request_get_uri () +
+
webkit_uri_request_new, webkit_uri_request_new () +
+
webkit_uri_request_set_uri, webkit_uri_request_set_uri () +
+
webkit_uri_response_get_content_length, webkit_uri_response_get_content_length () +
+
webkit_uri_response_get_http_headers, webkit_uri_response_get_http_headers () +
+
webkit_uri_response_get_mime_type, webkit_uri_response_get_mime_type () +
+
webkit_uri_response_get_status_code, webkit_uri_response_get_status_code () +
+
webkit_uri_response_get_suggested_filename, webkit_uri_response_get_suggested_filename () +
+
webkit_uri_response_get_uri, webkit_uri_response_get_uri () +
+
webkit_uri_scheme_request_finish, webkit_uri_scheme_request_finish () +
+
webkit_uri_scheme_request_finish_error, webkit_uri_scheme_request_finish_error () +
+
webkit_uri_scheme_request_get_path, webkit_uri_scheme_request_get_path () +
+
webkit_uri_scheme_request_get_scheme, webkit_uri_scheme_request_get_scheme () +
+
webkit_uri_scheme_request_get_uri, webkit_uri_scheme_request_get_uri () +
+
webkit_uri_scheme_request_get_web_view, webkit_uri_scheme_request_get_web_view () +
+
WebKitUserContentFilter, WebKitUserContentFilter +
+
WebKitUserContentFilterError, enum WebKitUserContentFilterError +
+
WebKitUserContentInjectedFrames, enum WebKitUserContentInjectedFrames +
+
WebKitUserContentManager, struct WebKitUserContentManager +
+
WebKitUserContentManager::script-message-received, The “script-message-received” signal +
+
WebKitUserMediaPermissionRequest, struct WebKitUserMediaPermissionRequest +
+
WebKitUserMediaPermissionRequest:is-for-audio-device, The “is-for-audio-device” property +
+
WebKitUserMediaPermissionRequest:is-for-video-device, The “is-for-video-device” property +
+
WebKitUserScript, WebKitUserScript +
+
WebKitUserScriptInjectionTime, enum WebKitUserScriptInjectionTime +
+
WebKitUserStyleLevel, enum WebKitUserStyleLevel +
+
WebKitUserStyleSheet, WebKitUserStyleSheet +
+
WEBKIT_USER_CONTENT_FILTER_ERROR, WEBKIT_USER_CONTENT_FILTER_ERROR +
+
webkit_user_content_filter_error_quark, webkit_user_content_filter_error_quark () +
+
webkit_user_content_filter_get_identifier, webkit_user_content_filter_get_identifier () +
+
webkit_user_content_filter_ref, webkit_user_content_filter_ref () +
+
webkit_user_content_filter_unref, webkit_user_content_filter_unref () +
+
webkit_user_content_manager_add_filter, webkit_user_content_manager_add_filter () +
+
webkit_user_content_manager_add_script, webkit_user_content_manager_add_script () +
+
webkit_user_content_manager_add_style_sheet, webkit_user_content_manager_add_style_sheet () +
+
webkit_user_content_manager_new, webkit_user_content_manager_new () +
+
webkit_user_content_manager_register_script_message_handler, webkit_user_content_manager_register_script_message_handler () +
+
webkit_user_content_manager_register_script_message_handler_in_world, webkit_user_content_manager_register_script_message_handler_in_world () +
+
webkit_user_content_manager_remove_all_filters, webkit_user_content_manager_remove_all_filters () +
+
webkit_user_content_manager_remove_all_scripts, webkit_user_content_manager_remove_all_scripts () +
+
webkit_user_content_manager_remove_all_style_sheets, webkit_user_content_manager_remove_all_style_sheets () +
+
webkit_user_content_manager_remove_filter, webkit_user_content_manager_remove_filter () +
+
webkit_user_content_manager_unregister_script_message_handler, webkit_user_content_manager_unregister_script_message_handler () +
+
webkit_user_content_manager_unregister_script_message_handler_in_world, webkit_user_content_manager_unregister_script_message_handler_in_world () +
+
webkit_user_media_permission_is_for_audio_device, webkit_user_media_permission_is_for_audio_device () +
+
webkit_user_media_permission_is_for_video_device, webkit_user_media_permission_is_for_video_device () +
+
webkit_user_script_new, webkit_user_script_new () +
+
webkit_user_script_new_for_world, webkit_user_script_new_for_world () +
+
webkit_user_script_ref, webkit_user_script_ref () +
+
webkit_user_script_unref, webkit_user_script_unref () +
+
webkit_user_style_sheet_new, webkit_user_style_sheet_new () +
+
webkit_user_style_sheet_new_for_world, webkit_user_style_sheet_new_for_world () +
+
webkit_user_style_sheet_ref, webkit_user_style_sheet_ref () +
+
webkit_user_style_sheet_unref, webkit_user_style_sheet_unref () +
+
+
+
+

W

+
+
WebKitWebContext, struct WebKitWebContext +
+
WebKitWebContext::automation-started, The “automation-started” signal +
+
WebKitWebContext::download-started, The “download-started” signal +
+
WebKitWebContext::initialize-notification-permissions, The “initialize-notification-permissions” signal +
+
WebKitWebContext::initialize-web-extensions, The “initialize-web-extensions” signal +
+
WebKitWebContext:website-data-manager, The “website-data-manager” property +
+
WebKitWebProcessTerminationReason, enum WebKitWebProcessTerminationReason +
+
WebKitWebResource, struct WebKitWebResource +
+
WebKitWebResource::failed, The “failed” signal +
+
WebKitWebResource::failed-with-tls-errors, The “failed-with-tls-errors” signal +
+
WebKitWebResource::finished, The “finished” signal +
+
WebKitWebResource::received-data, The “received-data” signal +
+
WebKitWebResource::sent-request, The “sent-request” signal +
+
WebKitWebResource:response, The “response” property +
+
WebKitWebResource:uri, The “uri” property +
+
WebKitWebsiteData, WebKitWebsiteData +
+
WebKitWebsiteDataManager, struct WebKitWebsiteDataManager +
+
WebKitWebsiteDataManager:base-cache-directory, The “base-cache-directory” property +
+
WebKitWebsiteDataManager:base-data-directory, The “base-data-directory” property +
+
WebKitWebsiteDataManager:disk-cache-directory, The “disk-cache-directory” property +
+
WebKitWebsiteDataManager:indexeddb-directory, The “indexeddb-directory” property +
+
WebKitWebsiteDataManager:is-ephemeral, The “is-ephemeral” property +
+
WebKitWebsiteDataManager:local-storage-directory, The “local-storage-directory” property +
+
WebKitWebsiteDataManager:offline-application-cache-directory, The “offline-application-cache-directory” property +
+
WebKitWebsiteDataManager:websql-directory, The “websql-directory” property +
+
WebKitWebsiteDataTypes, enum WebKitWebsiteDataTypes +
+
webkit_website_data_get_name, webkit_website_data_get_name () +
+
webkit_website_data_get_size, webkit_website_data_get_size () +
+
webkit_website_data_get_types, webkit_website_data_get_types () +
+
webkit_website_data_manager_clear, webkit_website_data_manager_clear () +
+
webkit_website_data_manager_clear_finish, webkit_website_data_manager_clear_finish () +
+
webkit_website_data_manager_fetch, webkit_website_data_manager_fetch () +
+
webkit_website_data_manager_fetch_finish, webkit_website_data_manager_fetch_finish () +
+
webkit_website_data_manager_get_base_cache_directory, webkit_website_data_manager_get_base_cache_directory () +
+
webkit_website_data_manager_get_base_data_directory, webkit_website_data_manager_get_base_data_directory () +
+
webkit_website_data_manager_get_cookie_manager, webkit_website_data_manager_get_cookie_manager () +
+
webkit_website_data_manager_get_disk_cache_directory, webkit_website_data_manager_get_disk_cache_directory () +
+
webkit_website_data_manager_get_indexeddb_directory, webkit_website_data_manager_get_indexeddb_directory () +
+
webkit_website_data_manager_get_local_storage_directory, webkit_website_data_manager_get_local_storage_directory () +
+
webkit_website_data_manager_get_offline_application_cache_directory, webkit_website_data_manager_get_offline_application_cache_directory () +
+
webkit_website_data_manager_get_websql_directory, webkit_website_data_manager_get_websql_directory () +
+
webkit_website_data_manager_is_ephemeral, webkit_website_data_manager_is_ephemeral () +
+
webkit_website_data_manager_new, webkit_website_data_manager_new () +
+
webkit_website_data_manager_new_ephemeral, webkit_website_data_manager_new_ephemeral () +
+
webkit_website_data_manager_remove, webkit_website_data_manager_remove () +
+
webkit_website_data_manager_remove_finish, webkit_website_data_manager_remove_finish () +
+
webkit_website_data_ref, webkit_website_data_ref () +
+
webkit_website_data_unref, webkit_website_data_unref () +
+
WebKitWebView, WebKitWebView +
+
WebKitWebView::authenticate, The “authenticate” signal +
+
WebKitWebView::close, The “close” signal +
+
WebKitWebView::context-menu, The “context-menu” signal +
+
WebKitWebView::context-menu-dismissed, The “context-menu-dismissed” signal +
+
WebKitWebView::create, The “create” signal +
+
WebKitWebView::decide-policy, The “decide-policy” signal +
+
WebKitWebView::enter-fullscreen, The “enter-fullscreen” signal +
+
WebKitWebView::insecure-content-detected, The “insecure-content-detected” signal +
+
WebKitWebView::leave-fullscreen, The “leave-fullscreen” signal +
+
WebKitWebView::load-changed, The “load-changed” signal +
+
WebKitWebView::load-failed, The “load-failed” signal +
+
WebKitWebView::load-failed-with-tls-errors, The “load-failed-with-tls-errors” signal +
+
WebKitWebView::mouse-target-changed, The “mouse-target-changed” signal +
+
WebKitWebView::permission-request, The “permission-request” signal +
+
WebKitWebView::ready-to-show, The “ready-to-show” signal +
+
WebKitWebView::resource-load-started, The “resource-load-started” signal +
+
WebKitWebView::run-as-modal, The “run-as-modal” signal +
+
WebKitWebView::run-file-chooser, The “run-file-chooser” signal +
+
WebKitWebView::script-dialog, The “script-dialog” signal +
+
WebKitWebView::show-notification, The “show-notification” signal +
+
WebKitWebView::submit-form, The “submit-form” signal +
+
WebKitWebView::web-process-terminated, The “web-process-terminated” signal +
+
WebKitWebView:backend, The “backend” property +
+
WebKitWebView:editable, The “editable” property +
+
WebKitWebView:estimated-load-progress, The “estimated-load-progress” property +
+
WebKitWebView:is-controlled-by-automation, The “is-controlled-by-automation” property +
+
WebKitWebView:is-ephemeral, The “is-ephemeral” property +
+
WebKitWebView:is-loading, The “is-loading” property +
+
WebKitWebView:is-playing-audio, The “is-playing-audio” property +
+
WebKitWebView:related-view, The “related-view” property +
+
WebKitWebView:settings, The “settings” property +
+
WebKitWebView:title, The “title” property +
+
WebKitWebView:uri, The “uri” property +
+
WebKitWebView:user-content-manager, The “user-content-manager” property +
+
WebKitWebView:web-context, The “web-context” property +
+
WebKitWebView:zoom-level, The “zoom-level” property +
+
WebKitWebViewBackend, WebKitWebViewBackend +
+
WebKitWebViewSessionState, WebKitWebViewSessionState +
+
webkit_web_context_allow_tls_certificate_for_host, webkit_web_context_allow_tls_certificate_for_host () +
+
webkit_web_context_clear_cache, webkit_web_context_clear_cache () +
+
webkit_web_context_download_uri, webkit_web_context_download_uri () +
+
webkit_web_context_get_cache_model, webkit_web_context_get_cache_model () +
+
webkit_web_context_get_cookie_manager, webkit_web_context_get_cookie_manager () +
+
webkit_web_context_get_default, webkit_web_context_get_default () +
+
webkit_web_context_get_favicon_database, webkit_web_context_get_favicon_database () +
+
webkit_web_context_get_favicon_database_directory, webkit_web_context_get_favicon_database_directory () +
+
webkit_web_context_get_plugins, webkit_web_context_get_plugins () +
+
webkit_web_context_get_plugins_finish, webkit_web_context_get_plugins_finish () +
+
webkit_web_context_get_process_model, webkit_web_context_get_process_model () +
+
webkit_web_context_get_security_manager, webkit_web_context_get_security_manager () +
+
webkit_web_context_get_spell_checking_enabled, webkit_web_context_get_spell_checking_enabled () +
+
webkit_web_context_get_spell_checking_languages, webkit_web_context_get_spell_checking_languages () +
+
webkit_web_context_get_tls_errors_policy, webkit_web_context_get_tls_errors_policy () +
+
webkit_web_context_get_website_data_manager, webkit_web_context_get_website_data_manager () +
+
webkit_web_context_get_web_process_count_limit, webkit_web_context_get_web_process_count_limit () +
+
webkit_web_context_initialize_notification_permissions, webkit_web_context_initialize_notification_permissions () +
+
webkit_web_context_is_automation_allowed, webkit_web_context_is_automation_allowed () +
+
webkit_web_context_is_ephemeral, webkit_web_context_is_ephemeral () +
+
webkit_web_context_new, webkit_web_context_new () +
+
webkit_web_context_new_ephemeral, webkit_web_context_new_ephemeral () +
+
webkit_web_context_new_with_website_data_manager, webkit_web_context_new_with_website_data_manager () +
+
webkit_web_context_prefetch_dns, webkit_web_context_prefetch_dns () +
+
webkit_web_context_register_uri_scheme, webkit_web_context_register_uri_scheme () +
+
webkit_web_context_set_additional_plugins_directory, webkit_web_context_set_additional_plugins_directory () +
+
webkit_web_context_set_automation_allowed, webkit_web_context_set_automation_allowed () +
+
webkit_web_context_set_cache_model, webkit_web_context_set_cache_model () +
+
webkit_web_context_set_favicon_database_directory, webkit_web_context_set_favicon_database_directory () +
+
webkit_web_context_set_network_proxy_settings, webkit_web_context_set_network_proxy_settings () +
+
webkit_web_context_set_preferred_languages, webkit_web_context_set_preferred_languages () +
+
webkit_web_context_set_process_model, webkit_web_context_set_process_model () +
+
webkit_web_context_set_spell_checking_enabled, webkit_web_context_set_spell_checking_enabled () +
+
webkit_web_context_set_spell_checking_languages, webkit_web_context_set_spell_checking_languages () +
+
webkit_web_context_set_tls_errors_policy, webkit_web_context_set_tls_errors_policy () +
+
webkit_web_context_set_web_extensions_directory, webkit_web_context_set_web_extensions_directory () +
+
webkit_web_context_set_web_extensions_initialization_user_data, webkit_web_context_set_web_extensions_initialization_user_data () +
+
webkit_web_context_set_web_process_count_limit, webkit_web_context_set_web_process_count_limit () +
+
webkit_web_resource_get_data, webkit_web_resource_get_data () +
+
webkit_web_resource_get_data_finish, webkit_web_resource_get_data_finish () +
+
webkit_web_resource_get_response, webkit_web_resource_get_response () +
+
webkit_web_resource_get_uri, webkit_web_resource_get_uri () +
+
webkit_web_view_add_frame_displayed_callback, webkit_web_view_add_frame_displayed_callback () +
+
webkit_web_view_backend_get_wpe_backend, webkit_web_view_backend_get_wpe_backend () +
+
webkit_web_view_backend_new, webkit_web_view_backend_new () +
+
webkit_web_view_can_execute_editing_command, webkit_web_view_can_execute_editing_command () +
+
webkit_web_view_can_execute_editing_command_finish, webkit_web_view_can_execute_editing_command_finish () +
+
webkit_web_view_can_go_back, webkit_web_view_can_go_back () +
+
webkit_web_view_can_go_forward, webkit_web_view_can_go_forward () +
+
webkit_web_view_can_show_mime_type, webkit_web_view_can_show_mime_type () +
+
webkit_web_view_download_uri, webkit_web_view_download_uri () +
+
webkit_web_view_execute_editing_command, webkit_web_view_execute_editing_command () +
+
webkit_web_view_execute_editing_command_with_argument, webkit_web_view_execute_editing_command_with_argument () +
+
webkit_web_view_get_backend, webkit_web_view_get_backend () +
+
webkit_web_view_get_back_forward_list, webkit_web_view_get_back_forward_list () +
+
webkit_web_view_get_context, webkit_web_view_get_context () +
+
webkit_web_view_get_custom_charset, webkit_web_view_get_custom_charset () +
+
webkit_web_view_get_editor_state, webkit_web_view_get_editor_state () +
+
webkit_web_view_get_estimated_load_progress, webkit_web_view_get_estimated_load_progress () +
+
webkit_web_view_get_find_controller, webkit_web_view_get_find_controller () +
+
webkit_web_view_get_main_resource, webkit_web_view_get_main_resource () +
+
webkit_web_view_get_page_id, webkit_web_view_get_page_id () +
+
webkit_web_view_get_session_state, webkit_web_view_get_session_state () +
+
webkit_web_view_get_settings, webkit_web_view_get_settings () +
+
webkit_web_view_get_title, webkit_web_view_get_title () +
+
webkit_web_view_get_tls_info, webkit_web_view_get_tls_info () +
+
webkit_web_view_get_uri, webkit_web_view_get_uri () +
+
webkit_web_view_get_user_content_manager, webkit_web_view_get_user_content_manager () +
+
webkit_web_view_get_website_data_manager, webkit_web_view_get_website_data_manager () +
+
webkit_web_view_get_window_properties, webkit_web_view_get_window_properties () +
+
webkit_web_view_get_zoom_level, webkit_web_view_get_zoom_level () +
+
webkit_web_view_go_back, webkit_web_view_go_back () +
+
webkit_web_view_go_forward, webkit_web_view_go_forward () +
+
webkit_web_view_go_to_back_forward_list_item, webkit_web_view_go_to_back_forward_list_item () +
+
webkit_web_view_is_controlled_by_automation, webkit_web_view_is_controlled_by_automation () +
+
webkit_web_view_is_editable, webkit_web_view_is_editable () +
+
webkit_web_view_is_ephemeral, webkit_web_view_is_ephemeral () +
+
webkit_web_view_is_loading, webkit_web_view_is_loading () +
+
webkit_web_view_is_playing_audio, webkit_web_view_is_playing_audio () +
+
webkit_web_view_load_alternate_html, webkit_web_view_load_alternate_html () +
+
webkit_web_view_load_bytes, webkit_web_view_load_bytes () +
+
webkit_web_view_load_html, webkit_web_view_load_html () +
+
webkit_web_view_load_plain_text, webkit_web_view_load_plain_text () +
+
webkit_web_view_load_request, webkit_web_view_load_request () +
+
webkit_web_view_load_uri, webkit_web_view_load_uri () +
+
webkit_web_view_new, webkit_web_view_new () +
+
webkit_web_view_new_with_context, webkit_web_view_new_with_context () +
+
webkit_web_view_new_with_related_view, webkit_web_view_new_with_related_view () +
+
webkit_web_view_new_with_settings, webkit_web_view_new_with_settings () +
+
webkit_web_view_new_with_user_content_manager, webkit_web_view_new_with_user_content_manager () +
+
webkit_web_view_reload, webkit_web_view_reload () +
+
webkit_web_view_reload_bypass_cache, webkit_web_view_reload_bypass_cache () +
+
webkit_web_view_remove_frame_displayed_callback, webkit_web_view_remove_frame_displayed_callback () +
+
webkit_web_view_restore_session_state, webkit_web_view_restore_session_state () +
+
webkit_web_view_run_javascript, webkit_web_view_run_javascript () +
+
webkit_web_view_run_javascript_finish, webkit_web_view_run_javascript_finish () +
+
webkit_web_view_run_javascript_from_gresource, webkit_web_view_run_javascript_from_gresource () +
+
webkit_web_view_run_javascript_from_gresource_finish, webkit_web_view_run_javascript_from_gresource_finish () +
+
webkit_web_view_run_javascript_in_world, webkit_web_view_run_javascript_in_world () +
+
webkit_web_view_run_javascript_in_world_finish, webkit_web_view_run_javascript_in_world_finish () +
+
webkit_web_view_save, webkit_web_view_save () +
+
webkit_web_view_save_finish, webkit_web_view_save_finish () +
+
webkit_web_view_save_to_file, webkit_web_view_save_to_file () +
+
webkit_web_view_save_to_file_finish, webkit_web_view_save_to_file_finish () +
+
webkit_web_view_session_state_new, webkit_web_view_session_state_new () +
+
webkit_web_view_session_state_ref, webkit_web_view_session_state_ref () +
+
webkit_web_view_session_state_serialize, webkit_web_view_session_state_serialize () +
+
webkit_web_view_session_state_unref, webkit_web_view_session_state_unref () +
+
webkit_web_view_set_custom_charset, webkit_web_view_set_custom_charset () +
+
webkit_web_view_set_editable, webkit_web_view_set_editable () +
+
webkit_web_view_set_settings, webkit_web_view_set_settings () +
+
webkit_web_view_set_zoom_level, webkit_web_view_set_zoom_level () +
+
webkit_web_view_stop_loading, webkit_web_view_stop_loading () +
+
webkit_web_view_try_close, webkit_web_view_try_close () +
+
WebKitWindowProperties, struct WebKitWindowProperties +
+
WebKitWindowProperties:fullscreen, The “fullscreen” property +
+
WebKitWindowProperties:locationbar-visible, The “locationbar-visible” property +
+
WebKitWindowProperties:menubar-visible, The “menubar-visible” property +
+
WebKitWindowProperties:resizable, The “resizable” property +
+
WebKitWindowProperties:scrollbars-visible, The “scrollbars-visible” property +
+
WebKitWindowProperties:statusbar-visible, The “statusbar-visible” property +
+
WebKitWindowProperties:toolbar-visible, The “toolbar-visible” property +
+
webkit_window_properties_get_fullscreen, webkit_window_properties_get_fullscreen () +
+
webkit_window_properties_get_locationbar_visible, webkit_window_properties_get_locationbar_visible () +
+
webkit_window_properties_get_menubar_visible, webkit_window_properties_get_menubar_visible () +
+
webkit_window_properties_get_resizable, webkit_window_properties_get_resizable () +
+
webkit_window_properties_get_scrollbars_visible, webkit_window_properties_get_scrollbars_visible () +
+
webkit_window_properties_get_statusbar_visible, webkit_window_properties_get_statusbar_visible () +
+
webkit_window_properties_get_toolbar_visible, webkit_window_properties_get_toolbar_visible () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index.html new file mode 100644 index 000000000..ef4b2a36e --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index.html @@ -0,0 +1,165 @@ + + + + +WPE Reference Manual: WPE Reference Manual + + + + + + + +
+
+
+
+

for WPE WebKit 2.23.90

+
+
+
+
+
Class Overview
+
+
+WebKitWebContext — Manages aspects common to all WebKitWebViews +
+
+WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs +
+
+WebKitWebViewBackend — A web view backend +
+
+WebKitAuthenticationRequest — Represents an authentication request +
+
+WebKitBackForwardList — List of visited pages +
+
+WebKitBackForwardListItem — One item of the WebKitBackForwardList +
+
+WebKitSettings — Control the behaviour of a WebKitWebView +
+
+WebKitURIRequest — Represents a URI request +
+
+WebKitURIResponse — Represents a URI response +
+
+WebKitWindowProperties — Window properties of a WebKitWebView +
+
+WebKitDownload — Object used to communicate with the application when downloading +
+
+WebKitPermissionRequest — A permission request +
+
+WebKitGeolocationPermissionRequest — A permission request for sharing user's location +
+
+WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins +
+
+WebKitNavigationAction +
+
+WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices. +
+
+WebKitPolicyDecision — A pending policy decision +
+
+WebKitNavigationPolicyDecision — A policy decision for navigation actions +
+
+WebKitResponsePolicyDecision — A policy decision for resource responses +
+
+WebKitHitTestResult — Result of a Hit Test +
+
+WebKitEditorState — Web editor state +
+
+WebKitWebResource — Represents a resource at the end of a URI +
+
+WebKitError — Categorized WebKit errors +
+
+WebKitFaviconDatabase — A WebKit favicon database +
+
+WebKitFileChooserRequest — A request to open a file chooser +
+
+WebKitFindController — Controls text search in a WebKitWebView +
+
+WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext +
+
+WebKitPlugin — Represents a plugin, enabling fine-grained control +
+
+WebKitURISchemeRequest — Represents a URI scheme request +
+
+WebKitContextMenu — Represents the context menu in a WebKitWebView +
+
+WebKitContextMenuItem — One item of the WebKitContextMenu +
+
+WebKitFormSubmissionRequest — Represents a form submission request +
+
+WebKitSecurityManager — Controls security settings in a WebKitWebContext +
+
+WebKitUserContentManager — Manages user-defined content which affects web pages. +
+
+User content — Defines user content types which affect web pages. +
+
+WebKitNotification — Object used to hold information about a notification that should be shown to the user. +
+
+WebKitNotificationPermissionRequest — A permission request for displaying web notifications +
+
+WebKitSecurityOrigin — A security boundary for websites +
+
+WebKitWebsiteDataManager — Website data manager +
+
+WebKitWebsiteData — Website data +
+
+WebKitNetworkProxySettings — Network Proxy Settings +
+
+WebKitAutomationSession — Automation Session +
+
+WebKitApplicationInfo +
+
+
Utilities
+
+WebKitURIUtilities — Utility functions to manipulate URIs +
+
Index
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitError/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitError/index.html new file mode 100644 index 000000000..6896c061a --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitError/index.html @@ -0,0 +1,541 @@ + + + + +WebKitError: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitError

+

WebKitError — Categorized WebKit errors

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#defineWEBKIT_NETWORK_ERROR
#defineWEBKIT_PLUGIN_ERROR
#defineWEBKIT_POLICY_ERROR
#defineWEBKIT_DOWNLOAD_ERROR
#defineWEBKIT_JAVASCRIPT_ERROR
#defineWEBKIT_SNAPSHOT_ERROR
#defineWEBKIT_USER_CONTENT_FILTER_ERROR
enumWebKitNetworkError
enumWebKitPluginError
enumWebKitPolicyError
enumWebKitDownloadError
enumWebKitJavascriptError
enumWebKitSnapshotError
enumWebKitUserContentFilterError
+
+
+

Description

+

Categorized WebKit errors.

+
+
+

Functions

+
+

webkit_network_error_quark ()

+
GQuark
+webkit_network_error_quark (void);
+
+
+
+

webkit_plugin_error_quark ()

+
GQuark
+webkit_plugin_error_quark (void);
+
+
+
+

webkit_policy_error_quark ()

+
GQuark
+webkit_policy_error_quark (void);
+
+
+
+

webkit_download_error_quark ()

+
GQuark
+webkit_download_error_quark (void);
+
+
+
+

webkit_javascript_error_quark ()

+
GQuark
+webkit_javascript_error_quark (void);
+
+
+
+

webkit_snapshot_error_quark ()

+
GQuark
+webkit_snapshot_error_quark (void);
+
+
+
+

webkit_user_content_filter_error_quark ()

+
GQuark
+webkit_user_content_filter_error_quark
+                               (void);
+
+
+
+

Types and Values

+
+

WEBKIT_NETWORK_ERROR

+
#define WEBKIT_NETWORK_ERROR             webkit_network_error_quark ()
+
+
+
+
+

WEBKIT_PLUGIN_ERROR

+
#define WEBKIT_PLUGIN_ERROR              webkit_plugin_error_quark ()
+
+
+
+
+

WEBKIT_POLICY_ERROR

+
#define WEBKIT_POLICY_ERROR              webkit_policy_error_quark ()
+
+
+
+
+

WEBKIT_DOWNLOAD_ERROR

+
#define WEBKIT_DOWNLOAD_ERROR            webkit_download_error_quark ()
+
+
+
+
+

WEBKIT_JAVASCRIPT_ERROR

+
#define WEBKIT_JAVASCRIPT_ERROR          webkit_javascript_error_quark ()
+
+
+
+
+

WEBKIT_SNAPSHOT_ERROR

+
#define WEBKIT_SNAPSHOT_ERROR            webkit_snapshot_error_quark ()
+
+
+
+
+

WEBKIT_USER_CONTENT_FILTER_ERROR

+
#define WEBKIT_USER_CONTENT_FILTER_ERROR webkit_user_content_filter_error_quark ()
+
+
+
+
+

enum WebKitNetworkError

+

Enum values used to denote the various network errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_NETWORK_ERROR_FAILED

+

Generic load failure

+
 

WEBKIT_NETWORK_ERROR_TRANSPORT

+

Load failure due to transport error

+
 

WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL

+

Load failure due to unknown protocol

+
 

WEBKIT_NETWORK_ERROR_CANCELLED

+

Load failure due to cancellation

+
 

WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST

+

Load failure due to missing file

+
 
+
+
+
+
+

enum WebKitPluginError

+

Enum values used to denote the various plugin errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_PLUGIN_ERROR_FAILED

+

Generic plugin load failure

+
 

WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN

+

Load failure due to missing plugin

+
 

WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN

+

Load failure due to inability to load plugin

+
 

WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE

+

Load failure due to missing Java support that is required to load plugin

+
 

WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED

+

Load failure due to connection cancellation

+
 

WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD

+

Load failure since plugin handles the load

+
 
+
+
+
+
+

enum WebKitPolicyError

+

Enum values used to denote the various policy errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_POLICY_ERROR_FAILED

+

Generic load failure due to policy error

+
 

WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE

+

Load failure due to unsupported mime type

+
 

WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI

+

Load failure due to URI that can not be shown

+
 

WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE

+

Load failure due to frame load interruption by policy change

+
 

WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT

+

Load failure due to port restriction

+
 
+
+
+
+
+

enum WebKitDownloadError

+

Enum values used to denote the various download errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_DOWNLOAD_ERROR_NETWORK

+

Download failure due to network error

+
 

WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER

+

Download was cancelled by user

+
 

WEBKIT_DOWNLOAD_ERROR_DESTINATION

+

Download failure due to destination error

+
 
+
+
+
+
+

enum WebKitJavascriptError

+

Enum values used to denote errors happening when executing JavaScript

+
+

Members

+
+++++ + + + + + +

WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED

+

An exception was raised in JavaScript execution

+
 
+
+
+
+
+

enum WebKitSnapshotError

+

Enum values used to denote errors happening when creating snapshots of WebKitWebView

+
+

Members

+
+++++ + + + + + +

WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE

+

An error occurred when creating a webpage snapshot.

+
 
+
+
+
+
+

enum WebKitUserContentFilterError

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE

+

The JSON source for a content filter is invalid.

+
 

WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND

+

The requested content filter could not be found.

+
 
+
+

Since: 2.24

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitURIUtilities/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitURIUtilities/index.html new file mode 100644 index 000000000..e1b43a69c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitURIUtilities/index.html @@ -0,0 +1,97 @@ + + + + +WebKitURIUtilities: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIUtilities

+

WebKitURIUtilities — Utility functions to manipulate URIs

+
+
+

Functions

+
++++ + + + + +
+gchar * + +webkit_uri_for_display () +
+
+
+

Description

+
+
+

Functions

+
+

webkit_uri_for_display ()

+
gchar *
+webkit_uri_for_display (const gchar *uri);
+

Use this function to format a URI for display. The URIs used internally by +WebKit may contain percent-encoded characters or Punycode, which are not +generally suitable to display to users. This function provides protection +against IDN homograph attacks, so in some cases the host part of the returned +URI may be in Punycode if the safety check fails.

+
+

Parameters

+
+++++ + + + + + +

uri

the URI to be converted

 
+
+
+

Returns

+

uri +suitable for display, or NULL in +case of error.

+

[nullable][transfer full]

+
+

Since: 2.24

+
+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitUserContent/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitUserContent/index.html new file mode 100644 index 000000000..52d259d99 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitUserContent/index.html @@ -0,0 +1,747 @@ + + + + +User content: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

User content

+

User content — Defines user content types which affect web pages.

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ├── WebKitUserContentFilter
+    ├── WebKitUserScript
+    ╰── WebKitUserStyleSheet
+
+
+
+

Description

+

See also: WebKitUserContentManager

+
+
+

Functions

+
+

webkit_user_style_sheet_ref ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_ref (WebKitUserStyleSheet *user_style_sheet);
+

Atomically increments the reference count of user_style_sheet + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_style_sheet

a WebKitUserStyleSheet

 
+
+
+

Returns

+

The passed WebKitUserStyleSheet

+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_unref ()

+
void
+webkit_user_style_sheet_unref (WebKitUserStyleSheet *user_style_sheet);
+

Atomically decrements the reference count of user_style_sheet + by one. +If the reference count drops to 0, all memory allocated by +WebKitUserStyleSheet is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_style_sheet

a WebKitUserStyleSheet

 
+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_new ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_new (const gchar *source,
+                             WebKitUserContentInjectedFrames injected_frames,
+                             WebKitUserStyleLevel level,
+                             const gchar * const *whitelist,
+                             const gchar * const *blacklist);
+

Creates a new user style sheet. Style sheets can be applied to some URIs +only by passing non-null values for whitelist + or blacklist +. Passing a +NULL whitelist implies that all URIs are on the whitelist. The style +sheet is applied if an URI matches the whitelist and not the blacklist. +URI patterns must be of the form [protocol]://[host]/[path], where the +*host* and *path* components can contain the wildcard character (*) to +represent zero or more other characters.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user style sheet.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

level

A WebKitUserStyleLevel

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserStyleSheet

+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_new_for_world ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_new_for_world (const gchar *source,
+                                       WebKitUserContentInjectedFrames injected_frames,
+                                       WebKitUserStyleLevel level,
+                                       const gchar *world_name,
+                                       const gchar * const *whitelist,
+                                       const gchar * const *blacklist);
+

Creates a new user style sheet for script world with name world_name +. +See webkit_user_style_sheet_new() for a full description.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user style sheet.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

level

A WebKitUserStyleLevel

 

world_name

the name of a WebKitScriptWorld

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserStyleSheet

+
+

Since: 2.22

+
+
+
+

webkit_user_script_ref ()

+
WebKitUserScript *
+webkit_user_script_ref (WebKitUserScript *user_script);
+

Atomically increments the reference count of user_script + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_script

a WebKitUserScript

 
+
+
+

Returns

+

The passed WebKitUserScript

+
+

Since: 2.6

+
+
+
+

webkit_user_script_unref ()

+
void
+webkit_user_script_unref (WebKitUserScript *user_script);
+

Atomically decrements the reference count of user_script + by one. +If the reference count drops to 0, all memory allocated by +WebKitUserScript is released. This function is MT-safe and may be called +from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_script

a WebKitUserScript

 
+
+

Since: 2.6

+
+
+
+

webkit_user_script_new ()

+
WebKitUserScript *
+webkit_user_script_new (const gchar *source,
+                        WebKitUserContentInjectedFrames injected_frames,
+                        WebKitUserScriptInjectionTime injection_time,
+                        const gchar * const *whitelist,
+                        const gchar * const *blacklist);
+

Creates a new user script. Scripts can be applied to some URIs +only by passing non-null values for whitelist + or blacklist +. Passing a +NULL whitelist implies that all URIs are on the whitelist. The script +is applied if an URI matches the whitelist and not the blacklist. +URI patterns must be of the form [protocol]://[host]/[path], where the +*host* and *path* components can contain the wildcard character (*) to +represent zero or more other characters.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user script.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

injection_time

A WebKitUserScriptInjectionTime value

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserScript

+
+

Since: 2.6

+
+
+
+

webkit_user_script_new_for_world ()

+
WebKitUserScript *
+webkit_user_script_new_for_world (const gchar *source,
+                                  WebKitUserContentInjectedFrames injected_frames,
+                                  WebKitUserScriptInjectionTime injection_time,
+                                  const gchar *world_name,
+                                  const gchar * const *whitelist,
+                                  const gchar * const *blacklist);
+

Creates a new user script for script world with name world_name +. +See webkit_user_script_new() for a full description.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user script.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

injection_time

A WebKitUserScriptInjectionTime value

 

world_name

the name of a WebKitScriptWorld

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserScript

+
+

Since: 2.22

+
+
+
+

webkit_user_content_filter_ref ()

+
WebKitUserContentFilter *
+webkit_user_content_filter_ref (WebKitUserContentFilter *user_content_filter);
+

Atomically increments the reference count of user_content_filter + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_filter_unref ()

+
void
+webkit_user_content_filter_unref (WebKitUserContentFilter *user_content_filter);
+

Atomically decrements the reference count of user_content_filter + by one. +If the reference count drops to 0, all the memory allocated by the +WebKitUserContentFilter is released. This function is MT-safe and may +be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_filter_get_identifier ()

+
const char *
+webkit_user_content_filter_get_identifier
+                               (WebKitUserContentFilter *user_content_filter);
+

Obtain the identifier previously used to save the user_content_filter + in the +WebKitUserContentFilterStore.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+
+

Returns

+

the identifier for the filter.

+

[transfer none]

+
+

Since: 2.24

+
+
+
+

Types and Values

+
+

WebKitUserStyleSheet

+
typedef struct _WebKitUserStyleSheet WebKitUserStyleSheet;
+
+
+
+

WebKitUserScript

+
typedef struct _WebKitUserScript WebKitUserScript;
+
+
+
+

enum WebKitUserContentInjectedFrames

+

Specifies in which frames user style sheets are to be inserted in.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES

+

Insert the user style + sheet in all the frames loaded by the web view, including + nested frames. This is the default.

+
 

WEBKIT_USER_CONTENT_INJECT_TOP_FRAME

+

Insert the user style + sheet *only* in the top-level frame loaded by the web view, + and *not* in the nested frames.

+
 
+
+

Since: 2.6

+
+
+
+

enum WebKitUserStyleLevel

+

Specifies how to treat an user style sheet.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_STYLE_LEVEL_USER

+

The style sheet is an user style sheet, + its contents always override other style sheets. This is the default.

+
 

WEBKIT_USER_STYLE_LEVEL_AUTHOR

+

The style sheet will be treated as if + it was provided by the loaded documents. That means other user style + sheets may still override it.

+
 
+
+

Since: 2.6

+
+
+
+

enum WebKitUserScriptInjectionTime

+

Specifies at which place of documents an user script will be inserted.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START

+

Insert the code of the user + script at the beginning of loaded documents. This is the default.

+
 

WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END

+

Insert the code of the user + script at the end of the loaded documents.

+
 
+
+

Since: 2.6

+
+
+
+

WebKitUserContentFilter

+
typedef struct _WebKitUserContentFilter WebKitUserContentFilter;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitApplicationInfo/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitApplicationInfo/index.html new file mode 100644 index 000000000..438a522f3 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitApplicationInfo/index.html @@ -0,0 +1,354 @@ + + + + +WebKitApplicationInfo: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitApplicationInfo

+

WebKitApplicationInfo

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitApplicationInfo * + +webkit_application_info_new () +
+WebKitApplicationInfo * + +webkit_application_info_ref () +
+void + +webkit_application_info_unref () +
+void + +webkit_application_info_set_name () +
const gchar * + +webkit_application_info_get_name () +
+void + +webkit_application_info_set_version () +
+void + +webkit_application_info_get_version () +
+
+
+

Types and Values

+
++++ + + + + +
 WebKitApplicationInfo
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitApplicationInfo
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_application_info_new ()

+
WebKitApplicationInfo *
+webkit_application_info_new (void);
+

Creates a new WebKitApplicationInfo

+
+

Returns

+

the newly created WebKitApplicationInfo.

+

[transfer full]

+
+

Since: 2.18

+
+
+
+

webkit_application_info_ref ()

+
WebKitApplicationInfo *
+webkit_application_info_ref (WebKitApplicationInfo *info);
+

Atomically increments the reference count of info + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+
+

Returns

+

The passed in WebKitApplicationInfo

+
+

Since: 2.18

+
+
+
+

webkit_application_info_unref ()

+
void
+webkit_application_info_unref (WebKitApplicationInfo *info);
+

Atomically decrements the reference count of info + by one. If the +reference count drops to 0, all memory allocated by the WebKitApplicationInfo is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_set_name ()

+
void
+webkit_application_info_set_name (WebKitApplicationInfo *info,
+                                  const gchar *name);
+

Set the name of the application. If not provided, or NULL is passed, +g_get_prgname() will be used.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

name

the application name

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_get_name ()

+
const gchar *
+webkit_application_info_get_name (WebKitApplicationInfo *info);
+

Get the name of the application. If webkit_application_info_set_name() hasn't been +called with a valid name, this returns g_get_prgname().

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitApplicationInfo

 
+
+
+

Returns

+

the application name

+
+

Since: 2.18

+
+
+
+

webkit_application_info_set_version ()

+
void
+webkit_application_info_set_version (WebKitApplicationInfo *info,
+                                     guint64 major,
+                                     guint64 minor,
+                                     guint64 micro);
+

Set the application version. If the application doesn't use the format +major.minor.micro you can pass 0 as the micro to use major.minor, or pass +0 as both micro and minor to use only major number. Any other format must +be converted to major.minor.micro so that it can be used in version comparisons.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

major

the major version number

 

minor

the minor version number

 

micro

the micro version number

 
+
+

Since: 2.18

+
+
+
+

webkit_application_info_get_version ()

+
void
+webkit_application_info_get_version (WebKitApplicationInfo *info,
+                                     guint64 *major,
+                                     guint64 *minor,
+                                     guint64 *micro);
+

Get the application version previously set with webkit_application_info_set_version().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

info

a WebKitApplicationInfo

 

major

return location for the major version number.

[out]

minor

return location for the minor version number.

[out][allow-none]

micro

return location for the micro version number.

[out][allow-none]
+
+

Since: 2.18

+
+
+
+

Types and Values

+
+

WebKitApplicationInfo

+
typedef struct _WebKitApplicationInfo WebKitApplicationInfo;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAuthenticationRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAuthenticationRequest/index.html new file mode 100644 index 000000000..4ad444124 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAuthenticationRequest/index.html @@ -0,0 +1,915 @@ + + + + +WebKitAuthenticationRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitAuthenticationRequest

+

WebKitAuthenticationRequest — Represents an authentication request

+
+ +
+

Signals

+
+++++ + + + + + +
voidcancelledRun Last
+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitCredential
+    GObject
+    ╰── WebKitAuthenticationRequest
+
+
+
+

Description

+

Whenever a client attempts to load a page protected by HTTP +authentication, credentials will need to be provided to authorize access. +To allow the client to decide how it wishes to handle authentication, +WebKit will fire a “authenticate” signal with a +WebKitAuthenticationRequest object to provide client side +authentication support. Credentials are exposed through the +WebKitCredential object.

+

In case the client application does not wish +to handle this signal WebKit will provide a default handler. To handle +authentication asynchronously, simply increase the reference count of the +WebKitAuthenticationRequest object.

+
+
+

Functions

+
+

webkit_authentication_request_authenticate ()

+
void
+webkit_authentication_request_authenticate
+                               (WebKitAuthenticationRequest *request,
+                                WebKitCredential *credential);
+

Authenticate the WebKitAuthenticationRequest using the WebKitCredential +supplied. To continue without credentials, pass NULL as credential +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitAuthenticationRequest

 

credential

A WebKitCredential, or NULL.

[transfer none][allow-none]
+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_cancel ()

+
void
+webkit_authentication_request_cancel (WebKitAuthenticationRequest *request);
+

Cancel the authentication challenge. This will also cancel the page loading and result in a +“load-failed” signal with a WebKitNetworkError of type WEBKIT_NETWORK_ERROR_CANCELLED being emitted.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_can_save_credentials ()

+
gboolean
+webkit_authentication_request_can_save_credentials
+                               (WebKitAuthenticationRequest *request);
+

Determine whether the authentication method associated with this +WebKitAuthenticationRequest should allow the storage of credentials. +This will return FALSE if WebKit doesn't support credential storing +or if private browsing is enabled.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if WebKit can store credentials or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_host ()

+
const gchar *
+webkit_authentication_request_get_host
+                               (WebKitAuthenticationRequest *request);
+

Get the host that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The host of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_port ()

+
guint
+webkit_authentication_request_get_port
+                               (WebKitAuthenticationRequest *request);
+

Get the port that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The port of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_is_retry ()

+
gboolean
+webkit_authentication_request_is_retry
+                               (WebKitAuthenticationRequest *request);
+

Determine whether this this is a first attempt or a retry for this authentication challenge.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if authentication attempt is a retry or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_proposed_credential ()

+
WebKitCredential *
+webkit_authentication_request_get_proposed_credential
+                               (WebKitAuthenticationRequest *request);
+

Get the WebKitCredential of the proposed authentication challenge that was +stored from a previous session. The client can use this directly for +authentication or construct their own WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

A WebKitCredential encapsulating credential details +or NULL if there is no stored credential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_realm ()

+
const gchar *
+webkit_authentication_request_get_realm
+                               (WebKitAuthenticationRequest *request);
+

Get the realm that this authentication challenge is applicable to.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The realm of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_get_scheme ()

+
WebKitAuthenticationScheme
+webkit_authentication_request_get_scheme
+                               (WebKitAuthenticationRequest *request);
+

Get the authentication scheme of the authentication challenge.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

The WebKitAuthenticationScheme of request +.

+
+

Since: 2.2

+
+
+
+

webkit_authentication_request_is_for_proxy ()

+
gboolean
+webkit_authentication_request_is_for_proxy
+                               (WebKitAuthenticationRequest *request);
+

Determine whether the authentication challenge is associated with a proxy server rather than an "origin" server.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitAuthenticationRequest

 
+
+
+

Returns

+

TRUE if authentication is for a proxy or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_credential_new ()

+
WebKitCredential *
+webkit_credential_new (const gchar *username,
+                       const gchar *password,
+                       WebKitCredentialPersistence persistence);
+

Create a new credential from the provided username, password and persistence mode.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

username

The username for the new credential

 

password

The password for the new credential

 

persistence

The WebKitCredentialPersistence of the new credential

 
+
+
+

Returns

+

A WebKitCredential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_credential_copy ()

+
WebKitCredential *
+webkit_credential_copy (WebKitCredential *credential);
+

Make a copy of the WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

A copy of passed in WebKitCredential.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_credential_free ()

+
void
+webkit_credential_free (WebKitCredential *credential);
+

Free the WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

A WebKitCredential

 
+
+

Since: 2.2

+
+
+
+

webkit_credential_get_password ()

+
const gchar *
+webkit_credential_get_password (WebKitCredential *credential);
+

Get the password currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The password stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_get_persistence ()

+
WebKitCredentialPersistence
+webkit_credential_get_persistence (WebKitCredential *credential);
+

Get the persistence mode currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The WebKitCredentialPersistence stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_get_username ()

+
const gchar *
+webkit_credential_get_username (WebKitCredential *credential);
+

Get the username currently held by this WebKitCredential.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

The username stored in the WebKitCredential.

+
+

Since: 2.2

+
+
+
+

webkit_credential_has_password ()

+
gboolean
+webkit_credential_has_password (WebKitCredential *credential);
+

Determine whether this credential has a password stored.

+
+

Parameters

+
+++++ + + + + + +

credential

a WebKitCredential

 
+
+
+

Returns

+

TRUE if the credential has a password or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WebKitAuthenticationRequest

+
struct WebKitAuthenticationRequest;
+
+
+
+

enum WebKitAuthenticationScheme

+

Enum values representing the authentication scheme.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_AUTHENTICATION_SCHEME_DEFAULT

+

The default authentication scheme of WebKit.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTTP_BASIC

+

Basic authentication scheme as defined in RFC 2617.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTTP_DIGEST

+

Digest authentication scheme as defined in RFC 2617.

+
 

WEBKIT_AUTHENTICATION_SCHEME_HTML_FORM

+

HTML Form authentication.

+
 

WEBKIT_AUTHENTICATION_SCHEME_NTLM

+

NTLM Microsoft proprietary authentication scheme.

+
 

WEBKIT_AUTHENTICATION_SCHEME_NEGOTIATE

+

Negotiate (or SPNEGO) authentication scheme as defined in RFC 4559.

+
 

WEBKIT_AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE_REQUESTED

+

Client Certificate Authentication (see RFC 2246).

+
 

WEBKIT_AUTHENTICATION_SCHEME_SERVER_TRUST_EVALUATION_REQUESTED

+

Server Trust Authentication.

+
 

WEBKIT_AUTHENTICATION_SCHEME_UNKNOWN

+

Authentication scheme unknown.

+
 
+
+

Since: 2.2

+
+
+
+

WebKitCredential

+
typedef struct _WebKitCredential WebKitCredential;
+
+
+
+

enum WebKitCredentialPersistence

+

Enum values representing the duration for which a credential persists.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_CREDENTIAL_PERSISTENCE_NONE

+

Credential does not persist

+
 

WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION

+

Credential persists for session only

+
 

WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT

+

Credential persists permanently

+
 
+
+

Since: 2.2

+
+
+
+

Signal Details

+
+

The “cancelled” signal

+
void
+user_function (WebKitAuthenticationRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when the user authentication request is +cancelled. It allows the application to dismiss its authentication +dialog in case of page load failure for example.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

the WebKitAuthenticationRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAutomationSession/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAutomationSession/index.html new file mode 100644 index 000000000..95112a530 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAutomationSession/index.html @@ -0,0 +1,294 @@ + + + + +WebKitAutomationSession: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitAutomationSession

+

WebKitAutomationSession — Automation Session

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + +
+gchar *idRead / Write / Construct Only
+
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitAutomationSession
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitAutomationSession
+
+
+
+

Description

+

WebKitAutomationSession represents an automation session of a WebKitWebContext. +When a new session is requested, a WebKitAutomationSession is created and the signal +WebKitWebContext::automation-started is emitted with the WebKitAutomationSession as +argument. Then, the automation client can request the session to create a new +WebKitWebView to interact with it. When this happens the signal “create-web-view” +is emitted.

+
+
+

Functions

+
+

webkit_automation_session_get_id ()

+
const char *
+webkit_automation_session_get_id (WebKitAutomationSession *session);
+

Get the unique identifier of a WebKitAutomationSession

+
+

Parameters

+
+++++ + + + + + +

session

a WebKitAutomationSession

 
+
+
+

Returns

+

the unique identifier of session +

+
+

Since: 2.18

+
+
+
+

webkit_automation_session_set_application_info ()

+
void
+webkit_automation_session_set_application_info
+                               (WebKitAutomationSession *session,
+                                WebKitApplicationInfo *info);
+

Set the application information to session +. This information will be used by the driver service +to match the requested capabilities with the actual application information. If this information +is not provided to the session when a new automation session is requested, the creation might fail +if the client requested a specific browser name or version. This will not have any effect when called +after the automation session has been fully created, so this must be called in the callback of +“automation-started” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

session

a WebKitAutomationSession

 

info

a WebKitApplicationInfo

 
+
+

Since: 2.18

+
+
+
+

webkit_automation_session_get_application_info ()

+
WebKitApplicationInfo *
+webkit_automation_session_get_application_info
+                               (WebKitAutomationSession *session);
+

Get the WebKitAutomationSession previously set with webkit_automation_session_set_application_info().

+
+

Parameters

+
+++++ + + + + + +

session

a WebKitAutomationSession

 
+
+
+

Returns

+

the WebKitAutomationSession of session +, or NULL if no one has been set.

+

[transfer none]

+
+

Since: 2.18

+
+
+
+

Types and Values

+
+

struct WebKitAutomationSession

+
struct WebKitAutomationSession;
+
+
+
+

Property Details

+
+

The “id” property

+
  “id”                       gchar *
+

The session unique identifier.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.18

+
+
+
+

Signal Details

+
+

The “create-web-view” signal

+
WebKitWebView*
+user_function (WebKitAutomationSession *session,
+               gpointer                 user_data)
+

This signal is emitted when the automation client requests a new +browsing context to interact with it. The callback handler should +return a WebKitWebView created with “is-controlled-by-automation” +construct property enabled. The returned WebKitWebView could be an existing +web view or a new one created and added to a new tab or window.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

session

a WebKitAutomationSession

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

a WebKitWebView widget.

+

[transfer none]

+
+

Flags: Run Last

+

Since: 2.18

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardList/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardList/index.html new file mode 100644 index 000000000..5355ef384 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardList/index.html @@ -0,0 +1,518 @@ + + + + +WebKitBackForwardList: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitBackForwardList

+

WebKitBackForwardList — List of visited pages

+
+ +
+

Signals

+
+++++ + + + + + +
voidchangedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitBackForwardList
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitBackForwardList
+
+
+
+

Description

+

WebKitBackForwardList maintains a list of visited pages used to +navigate to recent pages. Items are inserted in the list in the +order they are visited.

+

WebKitBackForwardList also maintains the notion of the current item +(which is always at index 0), the preceding item (which is at index -1), +and the following item (which is at index 1). +Methods webkit_web_view_go_back() and webkit_web_view_go_forward() move +the current item backward or forward by one. Method +webkit_web_view_go_to_back_forward_list_item() sets the current item to the +specified item. All other methods returning WebKitBackForwardListItems +do not change the value of the current item, they just return the requested +item or items.

+
+
+

Functions

+
+

webkit_back_forward_list_get_length ()

+
guint
+webkit_back_forward_list_get_length (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the length of back_forward_list +.

+
+
+
+
+

webkit_back_forward_list_get_current_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_current_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the current item in back_forward_list +.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a WebKitBackForwardListItem +or NULL if back_forward_list +is empty.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_back_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_back_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the item that precedes the current item.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the WebKitBackForwardListItem +preceding the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_forward_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_forward_item
+                               (WebKitBackForwardList *back_forward_list);
+

Returns the item that follows the current item.

+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

the WebKitBackForwardListItem +following the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_nth_item ()

+
WebKitBackForwardListItem *
+webkit_back_forward_list_get_nth_item (WebKitBackForwardList *back_forward_list,
+                                       gint index);
+

Returns the item at a given index relative to the current item.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

index

the index of the item

 
+
+
+

Returns

+

the WebKitBackForwardListItem +located at the specified index relative to the current item or NULL.

+

[nullable][transfer none]

+
+
+
+
+

webkit_back_forward_list_get_back_list ()

+
GList *
+webkit_back_forward_list_get_back_list
+                               (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a GList of +items preceding the current item.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_back_list_with_limit ()

+
GList *
+webkit_back_forward_list_get_back_list_with_limit
+                               (WebKitBackForwardList *back_forward_list,
+                                guint limit);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

limit

the number of items to retrieve

 
+
+
+

Returns

+

a GList of +items preceding the current item limited by limit +.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_forward_list ()

+
GList *
+webkit_back_forward_list_get_forward_list
+                               (WebKitBackForwardList *back_forward_list);
+
+

Parameters

+
+++++ + + + + + +

back_forward_list

a WebKitBackForwardList

 
+
+
+

Returns

+

a GList of +items following the current item.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

webkit_back_forward_list_get_forward_list_with_limit ()

+
GList *
+webkit_back_forward_list_get_forward_list_with_limit
+                               (WebKitBackForwardList *back_forward_list,
+                                guint limit);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

back_forward_list

a WebKitBackForwardList

 

limit

the number of items to retrieve

 
+
+
+

Returns

+

a GList of +items following the current item limited by limit +.

+

[element-type WebKit2.BackForwardListItem][transfer container]

+
+
+
+
+

Types and Values

+
+

struct WebKitBackForwardList

+
struct WebKitBackForwardList;
+
+
+
+

Signal Details

+
+

The “changed” signal

+
void
+user_function (WebKitBackForwardList     *back_forward_list,
+               WebKitBackForwardListItem *item_added,
+               gpointer                   items_removed,
+               gpointer                   user_data)
+

This signal is emitted when back_forward_list + changes. This happens +when the current item is updated, a new item is added or one or more +items are removed. Note that both item_added + and items_removed + can +NULL when only the current item is updated. Items are only removed +when the list is cleared or the maximum items limit is reached.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

back_forward_list

the WebKitBackForwardList on which the signal was emitted

 

item_added

the WebKitBackForwardListItem added or NULL.

[allow-none]

items_removed

a GList of WebKitBackForwardListItems

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardListItem/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardListItem/index.html new file mode 100644 index 000000000..97d67015d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardListItem/index.html @@ -0,0 +1,196 @@ + + + + +WebKitBackForwardListItem: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitBackForwardListItem

+

WebKitBackForwardListItem — One item of the WebKitBackForwardList

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
const gchar * + +webkit_back_forward_list_item_get_title () +
const gchar * + +webkit_back_forward_list_item_get_uri () +
const gchar * + +webkit_back_forward_list_item_get_original_uri () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitBackForwardListItem
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── WebKitBackForwardListItem
+
+
+
+

Description

+

A history item is part of the WebKitBackForwardList and consists +out of a title and a URI.

+
+
+

Functions

+
+

webkit_back_forward_list_item_get_title ()

+
const gchar *
+webkit_back_forward_list_item_get_title
+                               (WebKitBackForwardListItem *list_item);
+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the page title of list_item +or NULL +when the title is empty.

+
+
+
+
+

webkit_back_forward_list_item_get_uri ()

+
const gchar *
+webkit_back_forward_list_item_get_uri (WebKitBackForwardListItem *list_item);
+

This URI may differ from the original URI if the page was, +for example, redirected to a new location. +See also webkit_back_forward_list_item_get_original_uri().

+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the URI of list_item +or NULL +when the URI is empty.

+
+
+
+
+

webkit_back_forward_list_item_get_original_uri ()

+
const gchar *
+webkit_back_forward_list_item_get_original_uri
+                               (WebKitBackForwardListItem *list_item);
+

See also webkit_back_forward_list_item_get_uri().

+
+

Parameters

+
+++++ + + + + + +

list_item

a WebKitBackForwardListItem

 
+
+
+

Returns

+

the original URI of list_item +or NULL +when the original URI is empty.

+
+
+
+
+

Types and Values

+
+

struct WebKitBackForwardListItem

+
struct WebKitBackForwardListItem;
+
+
+
+

See Also

+

WebKitBackForwardList

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenu/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenu/index.html new file mode 100644 index 000000000..79d16f28d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenu/index.html @@ -0,0 +1,690 @@ + + + + +WebKitContextMenu: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitContextMenu

+

WebKitContextMenu — Represents the context menu in a WebKitWebView

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitContextMenu
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitContextMenu
+
+
+
+

Description

+

WebKitContextMenu represents a context menu containing +WebKitContextMenuItems in a WebKitWebView.

+

When a WebKitWebView is about to display the context menu, it +emits the “context-menu” signal, which has the +WebKitContextMenu as an argument. You can modify it, adding new +submenus that you can create with webkit_context_menu_new(), adding +new WebKitContextMenuItems with +webkit_context_menu_prepend(), webkit_context_menu_append() or +webkit_context_menu_insert(), maybe after having removed the +existing ones with webkit_context_menu_remove_all().

+
+
+

Functions

+
+

webkit_context_menu_new ()

+
WebKitContextMenu *
+webkit_context_menu_new (void);
+

Creates a new WebKitContextMenu object to be used as a submenu of an existing +WebKitContextMenu. The context menu of a WebKitWebView is created by the view +and passed as an argument of “context-menu” signal. +To add items to the menu use webkit_context_menu_prepend(), +webkit_context_menu_append() or webkit_context_menu_insert(). +See also webkit_context_menu_new_with_items() to create a WebKitContextMenu with +a list of initial items.

+
+

Returns

+

The newly created WebKitContextMenu object

+
+
+
+
+

webkit_context_menu_new_with_items ()

+
WebKitContextMenu *
+webkit_context_menu_new_with_items (GList *items);
+

Creates a new WebKitContextMenu object to be used as a submenu of an existing +WebKitContextMenu with the given initial items. +See also webkit_context_menu_new()

+
+

Parameters

+
+++++ + + + + + +

items

a GList of WebKitContextMenuItem.

[element-type WebKitContextMenuItem]
+
+
+

Returns

+

The newly created WebKitContextMenu object

+
+
+
+
+

webkit_context_menu_prepend ()

+
void
+webkit_context_menu_prepend (WebKitContextMenu *menu,
+                             WebKitContextMenuItem *item);
+

Adds item + at the beginning of the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 
+
+
+
+
+

webkit_context_menu_append ()

+
void
+webkit_context_menu_append (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item);
+

Adds item + at the end of the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 
+
+
+
+
+

webkit_context_menu_insert ()

+
void
+webkit_context_menu_insert (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item,
+                            gint position);
+

Inserts item + into the menu + at the given position. +If position + is negative, or is larger than the number of items +in the WebKitContextMenu, the item is added on to the end of +the menu +. The first position is 0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 

position

the position to insert the item

 
+
+
+
+
+

webkit_context_menu_move_item ()

+
void
+webkit_context_menu_move_item (WebKitContextMenu *menu,
+                               WebKitContextMenuItem *item,
+                               gint position);
+

Moves item + to the given position in the menu +. +If position + is negative, or is larger than the number of items +in the WebKitContextMenu, the item is added on to the end of +the menu +. +The first position is 0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to add

 

position

the new position to move the item

 
+
+
+
+
+

webkit_context_menu_get_items ()

+
GList *
+webkit_context_menu_get_items (WebKitContextMenu *menu);
+

Returns the item list of menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

a GList of +WebKitContextMenuItems.

+

[element-type WebKitContextMenuItem][transfer none]

+
+
+
+
+

webkit_context_menu_get_n_items ()

+
guint
+webkit_context_menu_get_n_items (WebKitContextMenu *menu);
+

Gets the length of the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the number of WebKitContextMenuItems in menu +

+
+
+
+
+

webkit_context_menu_first ()

+
WebKitContextMenuItem *
+webkit_context_menu_first (WebKitContextMenu *menu);
+

Gets the first item in the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the first WebKitContextMenuItem of menu +, +or NULL if the WebKitContextMenu is empty.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_last ()

+
WebKitContextMenuItem *
+webkit_context_menu_last (WebKitContextMenu *menu);
+

Gets the last item in the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the last WebKitContextMenuItem of menu +, +or NULL if the WebKitContextMenu is empty.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_get_item_at_position ()

+
WebKitContextMenuItem *
+webkit_context_menu_get_item_at_position
+                               (WebKitContextMenu *menu,
+                                guint position);
+

Gets the item at the given position in the menu +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

position

the position of the item, counting from 0

 
+
+
+

Returns

+

the WebKitContextMenuItem at position position +in menu +, +or NULL if the position is off the end of the menu +.

+

[transfer none]

+
+
+
+
+

webkit_context_menu_remove ()

+
void
+webkit_context_menu_remove (WebKitContextMenu *menu,
+                            WebKitContextMenuItem *item);
+

Removes item + from the menu +. +See also webkit_context_menu_remove_all() to remove all items.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

item

the WebKitContextMenuItem to remove

 
+
+
+
+
+

webkit_context_menu_remove_all ()

+
void
+webkit_context_menu_remove_all (WebKitContextMenu *menu);
+

Removes all items of the menu +.

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+
+
+

webkit_context_menu_set_user_data ()

+
void
+webkit_context_menu_set_user_data (WebKitContextMenu *menu,
+                                   GVariant *user_data);
+

Sets user data to menu +. +This function can be used from a Web Process extension to set user data +that can be retrieved from the UI Process using webkit_context_menu_get_user_data(). +If the user_data + GVariant is floating, it is consumed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

menu

a WebKitContextMenu

 

user_data

a GVariant

 
+
+

Since: 2.8

+
+
+
+

webkit_context_menu_get_user_data ()

+
GVariant *
+webkit_context_menu_get_user_data (WebKitContextMenu *menu);
+

Gets the user data of menu +. +This function can be used from the UI Process to get user data previously set +from the Web Process with webkit_context_menu_set_user_data().

+
+

Parameters

+
+++++ + + + + + +

menu

a WebKitContextMenu

 
+
+
+

Returns

+

the user data of menu +, or NULL if menu +doesn't have user data.

+

[transfer none]

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitContextMenu

+
struct WebKitContextMenu;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenuItem/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenuItem/index.html new file mode 100644 index 000000000..372bc9d82 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenuItem/index.html @@ -0,0 +1,793 @@ + + + + +WebKitContextMenuItem: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitContextMenuItem

+

WebKitContextMenuItem — One item of the WebKitContextMenu

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitContextMenuItem
enumWebKitContextMenuAction
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── WebKitContextMenuItem
+
+
+
+

Description

+

The WebKitContextMenu is composed of WebKitContextMenuItems. These items can be created from a GtkAction, from a +WebKitContextMenuAction or from a WebKitContextMenuAction and a +label. These WebKitContextMenuActions denote stock actions +for the items. You can also create separators and submenus.

+
+
+

Functions

+
+

webkit_context_menu_item_new_from_gaction ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_gaction
+                               (GAction *action,
+                                const gchar *label,
+                                GVariant *target);
+

Creates a new WebKitContextMenuItem for the given action + and label +. On activation +target + will be passed as parameter to the callback.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

action

a GAction

 

label

the menu item label text

 

target

a GVariant to use as the action target.

[allow-none]
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+

Since: 2.18

+
+
+
+

webkit_context_menu_item_new_from_stock_action ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_stock_action
+                               (WebKitContextMenuAction action);
+

Creates a new WebKitContextMenuItem for the given stock action. +Stock actions are handled automatically by WebKit so that, for example, +when a menu item created with a WEBKIT_CONTEXT_MENU_ACTION_STOP is +activated the action associated will be handled by WebKit and the current +load operation will be stopped. You can get the GtkAction of a +WebKitContextMenuItem created with a WebKitContextMenuAction with +webkit_context_menu_item_get_action() and connect to “activate” signal +to be notified when the item is activated. But you can't prevent the associated +action from being performed.

+
+

Parameters

+
+++++ + + + + + +

action

a WebKitContextMenuAction stock action

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_from_stock_action_with_label ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_from_stock_action_with_label
+                               (WebKitContextMenuAction action,
+                                const gchar *label);
+

Creates a new WebKitContextMenuItem for the given stock action using the given label +. +Stock actions have a predefined label, this method can be used to create a +WebKitContextMenuItem for a WebKitContextMenuAction but using a custom label.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

action

a WebKitContextMenuAction stock action

 

label

a custom label text to use instead of the predefined one

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_with_submenu ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_with_submenu
+                               (const gchar *label,
+                                WebKitContextMenu *submenu);
+

Creates a new WebKitContextMenuItem using the given label + with a submenu.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

label

the menu item label text

 

submenu

a WebKitContextMenu to set

 
+
+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_new_separator ()

+
WebKitContextMenuItem *
+webkit_context_menu_item_new_separator
+                               (void);
+

Creates a new WebKitContextMenuItem representing a separator.

+
+

Returns

+

the newly created WebKitContextMenuItem object.

+
+
+
+
+

webkit_context_menu_item_get_gaction ()

+
GAction *
+webkit_context_menu_item_get_gaction (WebKitContextMenuItem *item);
+

Gets the action associated to item + as a GAction.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the GAction associated to the WebKitContextMenuItem, +or NULL if item +is a separator.

+

[transfer none]

+
+

Since: 2.18

+
+
+
+

webkit_context_menu_item_get_stock_action ()

+
WebKitContextMenuAction
+webkit_context_menu_item_get_stock_action
+                               (WebKitContextMenuItem *item);
+

Gets the WebKitContextMenuAction of item +. If the WebKitContextMenuItem was not +created for a stock action WEBKIT_CONTEXT_MENU_ACTION_CUSTOM will be +returned. If the WebKitContextMenuItem is a separator WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION +will be returned.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the WebKitContextMenuAction of item +

+
+
+
+
+

webkit_context_menu_item_is_separator ()

+
gboolean
+webkit_context_menu_item_is_separator (WebKitContextMenuItem *item);
+

Checks whether item + is a separator.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

TRUE is item +is a separator or FALSE otherwise

+
+
+
+
+

webkit_context_menu_item_set_submenu ()

+
void
+webkit_context_menu_item_set_submenu (WebKitContextMenuItem *item,
+                                      WebKitContextMenu *submenu);
+

Sets or replaces the item + submenu. If submenu + is NULL the current +submenu of item + is removed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

item

a WebKitContextMenuItem

 

submenu

a WebKitContextMenu.

[allow-none]
+
+
+
+
+

webkit_context_menu_item_get_submenu ()

+
WebKitContextMenu *
+webkit_context_menu_item_get_submenu (WebKitContextMenuItem *item);
+

Gets the submenu of item +.

+
+

Parameters

+
+++++ + + + + + +

item

a WebKitContextMenuItem

 
+
+
+

Returns

+

the WebKitContextMenu representing the submenu of +item +or NULL if item +doesn't have a submenu.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

WebKitContextMenuItem

+
typedef struct _WebKitContextMenuItem WebKitContextMenuItem;
+
+
+
+

enum WebKitContextMenuAction

+

Enum values used to denote the stock actions for +WebKitContextMenuItems

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION

+

No action, used by separator menu items.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK

+

Open current link.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW

+

Open current link in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK

+

Download link destination.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD

+

Copy link location to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW

+

Open current image in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK

+

Download current image.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD

+

Copy current image to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW

+

Open current frame in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_GO_BACK

+

Load the previous history item.

+
 

WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD

+

Load the next history item.

+
 

WEBKIT_CONTEXT_MENU_ACTION_STOP

+

Stop any ongoing loading operation.

+
 

WEBKIT_CONTEXT_MENU_ACTION_RELOAD

+

Reload the contents of current view.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY

+

Copy current selection the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_CUT

+

Cut current selection to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_PASTE

+

Paste clipboard contents.

+
 

WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS

+

A proposed replacement for a misspelled word.

+
 

WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND

+

An indicator that spellchecking found no proposed replacements.

+
 

WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING

+

Causes the spellchecker to ignore the word for this session.

+
 

WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING

+

Causes the spellchecker to add the word to the dictionary.

+
 

WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR

+

Ignore grammar.

+
 

WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU

+

Font options menu.

+
 

WEBKIT_CONTEXT_MENU_ACTION_BOLD

+

Bold.

+
 

WEBKIT_CONTEXT_MENU_ACTION_ITALIC

+

Italic.

+
 

WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE

+

Underline.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OUTLINE

+

Outline.

+
 

WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT

+

Open current element in the inspector.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW

+

Open current video element in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW

+

Open current audio element in a new window.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD

+

Copy video link location in to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD

+

Copy audio link location in to the clipboard.

+
 

WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS

+

Enable or disable media controls.

+
 

WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP

+

Enable or disable media loop.

+
 

WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN

+

Show current video element in fullscreen mode.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY

+

Play current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE

+

Pause current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE

+

Mute current media element.

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_VIDEO_TO_DISK

+

Download video to disk. Since 2.2

+
 

WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_AUDIO_TO_DISK

+

Download audio to disk. Since 2.2

+
 

WEBKIT_CONTEXT_MENU_ACTION_CUSTOM

+

Custom action defined by applications.

+
 
+
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitCookieManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitCookieManager/index.html new file mode 100644 index 000000000..c31789042 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitCookieManager/index.html @@ -0,0 +1,755 @@ + + + + +WebKitCookieManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitCookieManager

+

WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext

+
+ +
+

Signals

+
+++++ + + + + + +
voidchangedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
structWebKitCookieManager
enumWebKitCookiePersistentStorage
enumWebKitCookieAcceptPolicy
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitCookieManager
+
+
+
+

Description

+

The WebKitCookieManager defines how to set up and handle cookies. +You can get it from a WebKitWebsiteDataManager with +webkit_website_data_manager_get_cookie_manager(), and use it to set where to +store cookies with webkit_cookie_manager_set_persistent_storage(), +or to set the acceptance policy, with webkit_cookie_manager_get_accept_policy().

+
+
+

Functions

+
+

webkit_cookie_manager_set_persistent_storage ()

+
void
+webkit_cookie_manager_set_persistent_storage
+                               (WebKitCookieManager *cookie_manager,
+                                const gchar *filename,
+                                WebKitCookiePersistentStorage storage);
+

Set the filename + where non-session cookies are stored persistently using +storage + as the format to read/write the cookies. +Cookies are initially read from filename + to create an initial set of cookies. +Then, non-session cookies will be written to filename + when the WebKitCookieManager::changed +signal is emitted. +By default, cookie_manager + doesn't store the cookies persistently, so you need to call this +method to keep cookies saved across sessions.

+

This method should never be called on a WebKitCookieManager associated to an ephemeral WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

filename

the filename to read to/write from

 

storage

a WebKitCookiePersistentStorage

 
+
+
+
+
+

webkit_cookie_manager_set_accept_policy ()

+
void
+webkit_cookie_manager_set_accept_policy
+                               (WebKitCookieManager *cookie_manager,
+                                WebKitCookieAcceptPolicy policy);
+

Set the cookie acceptance policy of cookie_manager + as policy +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

policy

a WebKitCookieAcceptPolicy

 
+
+
+
+
+

webkit_cookie_manager_get_accept_policy ()

+
void
+webkit_cookie_manager_get_accept_policy
+                               (WebKitCookieManager *cookie_manager,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously get the cookie acceptance policy of cookie_manager +.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_get_accept_policy_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_cookie_manager_get_accept_policy_finish ()

+
WebKitCookieAcceptPolicy
+webkit_cookie_manager_get_accept_policy_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_get_accept_policy().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

the cookie acceptance policy of cookie_manager +as a WebKitCookieAcceptPolicy.

+
+
+
+
+

webkit_cookie_manager_add_cookie ()

+
void
+webkit_cookie_manager_add_cookie (WebKitCookieManager *cookie_manager,
+                                  SoupCookie *cookie,
+                                  GCancellable *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer user_data);
+

Asynchronously add a SoupCookie to the underlying storage.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_add_cookie_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cookie

the SoupCookie to be added

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_add_cookie_finish ()

+
gboolean
+webkit_cookie_manager_add_cookie_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_add_cookie().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the cookie was added or FALSE in case of error.

+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_get_cookies ()

+
void
+webkit_cookie_manager_get_cookies (WebKitCookieManager *cookie_manager,
+                                   const gchar *uri,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously get a list of SoupCookie from cookie_manager + associated with uri +, which +must be either an HTTP or an HTTPS URL.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_get_cookies_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

uri

the URI associated to the cookies to be retrieved

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_get_cookies_finish ()

+
GList *
+webkit_cookie_manager_get_cookies_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_get_cookies(). +The return value is a GSList of SoupCookie instances which should be released +with g_list_free_full() and soup_cookie_free().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

A GList of SoupCookie instances.

+

[element-type SoupCookie][transfer full]

+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_delete_cookie ()

+
void
+webkit_cookie_manager_delete_cookie (WebKitCookieManager *cookie_manager,
+                                     SoupCookie *cookie,
+                                     GCancellable *cancellable,
+                                     GAsyncReadyCallback callback,
+                                     gpointer user_data);
+

Asynchronously delete a SoupCookie from the current session.

+

When the operation is finished, callback + will be called. You can then call +webkit_cookie_manager_delete_cookie_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

cookie

the SoupCookie to be deleted

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.20

+
+
+
+

webkit_cookie_manager_delete_cookie_finish ()

+
gboolean
+webkit_cookie_manager_delete_cookie_finish
+                               (WebKitCookieManager *cookie_manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_cookie_manager_delete_cookie().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cookie_manager

a WebKitCookieManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the cookie was deleted or FALSE in case of error.

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

struct WebKitCookieManager

+
struct WebKitCookieManager;
+
+
+
+

enum WebKitCookiePersistentStorage

+

Enum values used to denote the cookie persistent storage types.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT

+

Cookies are stored in a text + file in the Mozilla "cookies.txt" format.

+
 

WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE

+

Cookies are stored in a SQLite + file in the current Mozilla format.

+
 
+
+
+
+
+

enum WebKitCookieAcceptPolicy

+

Enum values used to denote the cookie acceptance policies.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS

+

Accept all cookies unconditionally.

+
 

WEBKIT_COOKIE_POLICY_ACCEPT_NEVER

+

Reject all cookies unconditionally.

+
 

WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY

+

Accept only cookies set by the main document loaded.

+
 
+
+
+
+
+

Signal Details

+
+

The “changed” signal

+
void
+user_function (WebKitCookieManager *cookie_manager,
+               gpointer             user_data)
+

This signal is emitted when cookies are added, removed or modified.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cookie_manager

the WebKitCookieManager

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitDownload/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitDownload/index.html new file mode 100644 index 000000000..c541fd71d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitDownload/index.html @@ -0,0 +1,825 @@ + + + + +WebKitDownload: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDownload

+

WebKitDownload — Object used to communicate with the application when downloading

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
gbooleanallow-overwriteRead / Write
+gchar *destinationRead
gdoubleestimated-progressRead
+WebKitURIResponse *responseRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidcreated-destinationRun Last
gbooleandecide-destinationRun Last
voidfailedRun Last
voidfinishedRun Last
voidreceived-dataRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitDownload
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDownload
+
+
+
+

Description

+

WebKitDownload carries information about a download request and +response, including a WebKitURIRequest and a WebKitURIResponse +objects. The application may use this object to control the +download process, or to simply figure out what is to be downloaded, +and handle the download process itself.

+
+
+

Functions

+
+

webkit_download_get_request ()

+
WebKitURIRequest *
+webkit_download_get_request (WebKitDownload *download);
+

Retrieves the WebKitURIRequest object that backs the download +process.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitURIRequest of download +.

+

[transfer none]

+
+
+
+
+

webkit_download_get_destination ()

+
const gchar *
+webkit_download_get_destination (WebKitDownload *download);
+

Obtains the URI to which the downloaded file will be written. You +can connect to “created-destination” to make +sure this method returns a valid destination.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the destination URI or NULL

+
+
+
+
+

webkit_download_set_destination ()

+
void
+webkit_download_set_destination (WebKitDownload *download,
+                                 const gchar *uri);
+

Sets the URI to which the downloaded file will be written. +This method should be called before the download transfer +starts or it will not have any effect on the ongoing download +operation. To set the destination using the filename suggested +by the server connect to “decide-destination” +signal and call webkit_download_set_destination(). If you want to +set a fixed destination URI that doesn't depend on the suggested +filename you can connect to notify::response signal and call +webkit_download_set_destination(). +If “decide-destination” signal is not handled +and destination URI is not set when the download transfer starts, +the file will be saved with the filename suggested by the server in +G_USER_DIRECTORY_DOWNLOAD directory.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

a WebKitDownload

 

uri

the destination URI

 
+
+
+
+
+

webkit_download_get_response ()

+
WebKitURIResponse *
+webkit_download_get_response (WebKitDownload *download);
+

Retrieves the WebKitURIResponse object that backs the download +process. This method returns NULL if called before the response +is received from the server. You can connect to notify::response +signal to be notified when the response is received.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitURIResponse, or NULL if +the response hasn't been received yet.

+

[transfer none]

+
+
+
+
+

webkit_download_cancel ()

+
void
+webkit_download_cancel (WebKitDownload *download);
+

Cancels the download. When the ongoing download +operation is effectively cancelled the signal +“failed” is emitted with +WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER error.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+
+
+

webkit_download_get_estimated_progress ()

+
gdouble
+webkit_download_get_estimated_progress
+                               (WebKitDownload *download);
+

Gets the value of the “estimated-progress” property. +You can monitor the estimated progress of the download operation by +connecting to the notify::estimated-progress signal of download +.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

an estimate of the of the percent complete for a download +as a range from 0.0 to 1.0.

+
+
+
+
+

webkit_download_get_elapsed_time ()

+
gdouble
+webkit_download_get_elapsed_time (WebKitDownload *download);
+

Gets the elapsed time in seconds, including any fractional part. +If the download finished, had an error or was cancelled this is +the time between its start and the event.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

seconds since the download was started

+
+
+
+
+

webkit_download_get_received_data_length ()

+
guint64
+webkit_download_get_received_data_length
+                               (WebKitDownload *download);
+

Gets the length of the data already downloaded for download + +in bytes.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the amount of bytes already downloaded.

+
+
+
+
+

webkit_download_get_web_view ()

+
WebKitWebView *
+webkit_download_get_web_view (WebKitDownload *download);
+

Get the WebKitWebView that initiated the download.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the WebKitWebView that initiated download +, +or NULL if download +was not initiated by a WebKitWebView.

+

[transfer none]

+
+
+
+
+

webkit_download_get_allow_overwrite ()

+
gboolean
+webkit_download_get_allow_overwrite (WebKitDownload *download);
+

Returns the current value of the “allow-overwrite” property, +which determines whether the download will overwrite an existing file on +disk, or if it will fail if the destination already exists.

+
+

Parameters

+
+++++ + + + + + +

download

a WebKitDownload

 
+
+
+

Returns

+

the current value of the “allow-overwrite” property

+
+

Since: 2.6

+
+
+
+

webkit_download_set_allow_overwrite ()

+
void
+webkit_download_set_allow_overwrite (WebKitDownload *download,
+                                     gboolean allowed);
+

Sets the “allow-overwrite” property, which determines whether +the download may overwrite an existing file on disk, or if it will fail if +the destination already exists.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

a WebKitDownload

 

allowed

the new value for the “allow-overwrite” property

 
+
+

Since: 2.6

+
+
+
+

Types and Values

+
+

struct WebKitDownload

+
struct WebKitDownload;
+
+
+
+

Property Details

+
+

The “allow-overwrite” property

+
  “allow-overwrite”          gboolean
+

Whether or not the download is allowed to overwrite an existing file on +disk. If this property is FALSE and the destination already exists, +the download will fail.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 2.6

+
+
+
+

The “destination” property

+
  “destination”              gchar *
+

The local URI to where the download will be saved.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “estimated-progress” property

+
  “estimated-progress”       gdouble
+

An estimate of the percent completion for the download operation. +This value will range from 0.0 to 1.0. The value is an estimate +based on the total number of bytes expected to be received for +a download. +If you need a more accurate progress information you can connect to +“received-data” signal to track the progress.

+

Flags: Read

+

Allowed values: [0,1]

+

Default value: 1

+
+
+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

The WebKitURIResponse associated with this download.

+

Flags: Read

+
+
+
+

Signal Details

+
+

The “created-destination” signal

+
void
+user_function (WebKitDownload *download,
+               gchar          *destination,
+               gpointer        user_data)
+

This signal is emitted after “decide-destination” and before +“received-data” to notify that destination file has been +created successfully at destination +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

destination

the destination URI

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “decide-destination” signal

+
gboolean
+user_function (WebKitDownload *download,
+               gchar          *suggested_filename,
+               gpointer        user_data)
+

This signal is emitted after response is received to +decide a destination URI for the download. If this signal is not +handled the file will be downloaded to G_USER_DIRECTORY_DOWNLOAD +directory using suggested_filename +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

suggested_filename

the filename suggested for the download

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “failed” signal

+
void
+user_function (WebKitDownload *download,
+               GError         *error,
+               gpointer        user_data)
+

This signal is emitted when an error occurs during the download +operation. The given error +, of the domain WEBKIT_DOWNLOAD_ERROR, +contains further details of the failure. If the download is cancelled +with webkit_download_cancel(), this signal is emitted with error +WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER. The download operation finishes +after an error and “finished” signal is emitted after this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “finished” signal

+
void
+user_function (WebKitDownload *download,
+               gpointer        user_data)
+

This signal is emitted when download finishes successfully or due to an error. +In case of errors “failed” signal is emitted before this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

download

the WebKitDownload

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “received-data” signal

+
void
+user_function (WebKitDownload *download,
+               guint64         data_length,
+               gpointer        user_data)
+

This signal is emitted after response is received, +every time new data has been written to the destination. It's +useful to know the progress of the download operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

download

the WebKitDownload

 

data_length

the length of data received in bytes

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitEditorState/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitEditorState/index.html new file mode 100644 index 000000000..3b7f9774f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitEditorState/index.html @@ -0,0 +1,391 @@ + + + + +WebKitEditorState: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitEditorState

+

WebKitEditorState — Web editor state

+
+ +
+

Properties

+
+++++ + + + + + +
guinttyping-attributesRead
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitEditorState
enumWebKitEditorTypingAttributes
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitEditorState
+
+
+
+

Description

+

WebKitEditorState represents the state of a WebKitWebView editor. +Use webkit_web_view_get_editor_state() to get the WebKitEditorState +of a WebKitWebView.

+
+
+

Functions

+
+

webkit_editor_state_get_typing_attributes ()

+
guint
+webkit_editor_state_get_typing_attributes
+                               (WebKitEditorState *editor_state);
+

Gets the typing attributes at the current cursor position. +If there is a selection, this returns the typing attributes +of the selected text. Note that in case of a selection, +typing attributes are considered active only when they are +present throughout the selection.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

a bitmask of WebKitEditorTypingAttributes flags

+
+

Since: 2.10

+
+
+
+

webkit_editor_state_is_cut_available ()

+
gboolean
+webkit_editor_state_is_cut_available (WebKitEditorState *editor_state);
+

Gets whether a cut command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if cut is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_copy_available ()

+
gboolean
+webkit_editor_state_is_copy_available (WebKitEditorState *editor_state);
+

Gets whether a copy command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if copy is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_paste_available ()

+
gboolean
+webkit_editor_state_is_paste_available
+                               (WebKitEditorState *editor_state);
+

Gets whether a paste command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if paste is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_undo_available ()

+
gboolean
+webkit_editor_state_is_undo_available (WebKitEditorState *editor_state);
+

Gets whether an undo command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if undo is currently available

+
+

Since: 2.20

+
+
+
+

webkit_editor_state_is_redo_available ()

+
gboolean
+webkit_editor_state_is_redo_available (WebKitEditorState *editor_state);
+

Gets whether a redo command can be issued.

+
+

Parameters

+
+++++ + + + + + +

editor_state

a WebKitEditorState

 
+
+
+

Returns

+

TRUE if redo is currently available

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

struct WebKitEditorState

+
struct WebKitEditorState;
+
+
+
+

enum WebKitEditorTypingAttributes

+

Enum values with flags representing typing attributes.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_EDITOR_TYPING_ATTRIBUTE_NONE

+

No typing attributes.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_BOLD

+

Bold typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_ITALIC

+

Italic typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_UNDERLINE

+

Underline typing attribute.

+
 

WEBKIT_EDITOR_TYPING_ATTRIBUTE_STRIKETHROUGH

+

Strikethrough typing attribute.

+
 
+
+

Since: 2.10

+
+
+
+

Property Details

+
+

The “typing-attributes” property

+
  “typing-attributes”        guint
+

Bitmask of WebKitEditorTypingAttributes flags. +See webkit_editor_state_get_typing_attributes() for more information.

+

Flags: Read

+

Default value: 0

+

Since: 2.10

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFaviconDatabase/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFaviconDatabase/index.html new file mode 100644 index 000000000..aa34033e8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFaviconDatabase/index.html @@ -0,0 +1,289 @@ + + + + +WebKitFaviconDatabase: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFaviconDatabase

+

WebKitFaviconDatabase — A WebKit favicon database

+
+
+

Functions

+
++++ + + + + + + + + + + +
+gchar * + +webkit_favicon_database_get_favicon_uri () +
+void + +webkit_favicon_database_clear () +
+
+
+

Signals

+
+++++ + + + + + +
voidfavicon-changedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
structWebKitFaviconDatabase
#defineWEBKIT_FAVICON_DATABASE_ERROR
enumWebKitFaviconDatabaseError
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFaviconDatabase
+
+
+
+

Description

+

WebKitFaviconDatabase provides access to the icons associated with +web sites.

+

WebKit will automatically look for available icons in <link> +elements on opened pages as well as an existing favicon.ico and +load the images found into a memory cache if possible. That cache +is frozen to an on-disk database for persistence.

+

If “enable-private-browsing” is TRUE, new icons +won't be added to the on-disk database and no existing icons will +be deleted from it. Nevertheless, WebKit will still store them in +the in-memory cache during the current execution.

+
+
+

Functions

+
+

webkit_favicon_database_get_favicon_uri ()

+
gchar *
+webkit_favicon_database_get_favicon_uri
+                               (WebKitFaviconDatabase *database,
+                                const gchar *page_uri);
+

Obtains the URI of the favicon for the given page_uri +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

database

a WebKitFaviconDatabase

 

page_uri

URI of the page containing the icon

 
+
+
+

Returns

+

a newly allocated URI for the favicon, or NULL if the +database doesn't have a favicon for page_uri +.

+
+
+
+
+

webkit_favicon_database_clear ()

+
void
+webkit_favicon_database_clear (WebKitFaviconDatabase *database);
+

Clears all icons from the database.

+
+

Parameters

+
+++++ + + + + + +

database

a WebKitFaviconDatabase

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFaviconDatabase

+
struct WebKitFaviconDatabase;
+
+
+
+

WEBKIT_FAVICON_DATABASE_ERROR

+
#define WEBKIT_FAVICON_DATABASE_ERROR           (webkit_favicon_database_error_quark())
+
+
+
+
+

enum WebKitFaviconDatabaseError

+

Enum values used to denote the various errors related to the WebKitFaviconDatabase.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED

+

The WebKitFaviconDatabase has not been initialized yet

+
 

WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND

+

There is not an icon available for the requested URL

+
 

WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN

+

There might be an icon for the requested URL, but its data is unknown at the moment

+
 
+
+
+
+
+

Signal Details

+
+

The “favicon-changed” signal

+
void
+user_function (WebKitFaviconDatabase *database,
+               gchar                 *page_uri,
+               gchar                 *favicon_uri,
+               gpointer               user_data)
+

This signal is emitted when the favicon URI of page_uri + has +been changed to favicon_uri + in the database. You can connect +to this signal and call webkit_favicon_database_get_favicon() +to get the favicon. If you are interested in the favicon of a +WebKitWebView it's easier to use the “favicon” +property. See webkit_web_view_get_favicon() for more details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

database

the object on which the signal is emitted

 

page_uri

the URI of the Web page containing the icon

 

favicon_uri

the URI of the favicon

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFileChooserRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFileChooserRequest/index.html new file mode 100644 index 000000000..47030b6a2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFileChooserRequest/index.html @@ -0,0 +1,361 @@ + + + + +WebKitFileChooserRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFileChooserRequest

+

WebKitFileChooserRequest — A request to open a file chooser

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + +
GStrvmime-typesRead
gbooleanselect-multipleRead
GStrvselected-filesRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitFileChooserRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFileChooserRequest
+
+
+
+

Description

+

Whenever the user interacts with an <input type='file' /> +HTML element, WebKit will need to show a dialog to choose one or +more files to be uploaded to the server along with the rest of the +form data. For that to happen in a general way, instead of just +opening a GtkFileChooserDialog (which might be not desirable in +some cases, which could prefer to use their own file chooser +dialog), WebKit will fire the “run-file-chooser” +signal with a WebKitFileChooserRequest object, which will allow +the client application to specify the files to be selected, to +inspect the details of the request (e.g. if multiple selection +should be allowed) and to cancel the request, in case nothing was +selected.

+

In case the client application does not wish to handle this signal, +WebKit will provide a default handler which will asynchronously run +a regular GtkFileChooserDialog for the user to interact with.

+
+
+

Functions

+
+

webkit_file_chooser_request_get_mime_types ()

+
const gchar * const *
+webkit_file_chooser_request_get_mime_types
+                               (WebKitFileChooserRequest *request);
+

Get the list of MIME types the file chooser dialog should handle, +in the format specified in RFC 2046 for "media types". Its contents +depend on the value of the 'accept' attribute for HTML input +elements. This function should normally be called before presenting +the file chooser dialog to the user, to decide whether to allow the +user to select multiple files at once or only one.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

a +NULL-terminated array of strings if a list of accepted MIME types +is defined or NULL otherwise, meaning that any MIME type should be +accepted. This array and its contents are owned by WebKit and +should not be modified or freed.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

webkit_file_chooser_request_get_select_multiple ()

+
gboolean
+webkit_file_chooser_request_get_select_multiple
+                               (WebKitFileChooserRequest *request);
+

Determine whether the file chooser associated to this +WebKitFileChooserRequest should allow selecting multiple files, +which depends on the HTML input element having a 'multiple' +attribute defined.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

TRUE if the file chooser should allow selecting multiple files or FALSE otherwise.

+
+
+
+
+

webkit_file_chooser_request_select_files ()

+
void
+webkit_file_chooser_request_select_files
+                               (WebKitFileChooserRequest *request,
+                                const gchar * const *files);
+

Ask WebKit to select local files for upload and complete the +request.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitFileChooserRequest

 

files

a +NULL-terminated array of strings, containing paths to local files.

[array zero-terminated=1][transfer none]
+
+
+
+
+

webkit_file_chooser_request_get_selected_files ()

+
const gchar * const *
+webkit_file_chooser_request_get_selected_files
+                               (WebKitFileChooserRequest *request);
+

Get the list of selected files currently associated to the +request. Initially, the return value of this method contains any +files selected in previous file chooser requests for this HTML +input element. Once webkit_file_chooser_request_select_files, the +value will reflect whatever files are given.

+

This function should normally be called only before presenting the +file chooser dialog to the user, to decide whether to perform some +extra action, like pre-selecting the files from a previous request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+

Returns

+

a +NULL-terminated array of strings if there are selected files +associated with the request or NULL otherwise. This array and its +contents are owned by WebKit and should not be modified or +freed.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

webkit_file_chooser_request_cancel ()

+
void
+webkit_file_chooser_request_cancel (WebKitFileChooserRequest *request);
+

Ask WebKit to cancel the request. It's important to do this in case +no selection has been made in the client, otherwise the request +won't be properly completed and the browser will keep the request +pending forever, which might cause the browser to hang.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFileChooserRequest

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFileChooserRequest

+
struct WebKitFileChooserRequest;
+
+
+
+

Property Details

+
+

The “mime-types” property

+
  “mime-types”               GStrv
+

A NULL-terminated array of strings containing the list of MIME +types the file chooser dialog should handle. See +webkit_file_chooser_request_get_mime_types() for more details.

+

Flags: Read

+
+
+
+

The “select-multiple” property

+
  “select-multiple”          gboolean
+

Whether the file chooser should allow selecting multiple +files. See +webkit_file_chooser_request_get_select_multiple() for +more details.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “selected-files” property

+
  “selected-files”           GStrv
+

A NULL-terminated array of strings containing the list of +selected files associated to the current request. See +webkit_file_chooser_request_get_selected_files() for more details.

+

Flags: Read

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFindController/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFindController/index.html new file mode 100644 index 000000000..5cdd0b9f2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFindController/index.html @@ -0,0 +1,743 @@ + + + + +WebKitFindController: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFindController

+

WebKitFindController — Controls text search in a WebKitWebView

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
guintmax-match-countRead
WebKitFindOptionsoptionsRead
+gchar *textRead
+WebKitWebView *web-viewRead / Write / Construct Only
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + +
voidcounted-matchesRun Last
voidfailed-to-find-textRun Last
voidfound-textRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitFindController
enumWebKitFindOptions
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFindController
+
+
+
+

Description

+

A WebKitFindController is used to search text in a WebKitWebView. You +can get a WebKitWebView's WebKitFindController with +webkit_web_view_get_find_controller(), and later use it to search +for text using webkit_find_controller_search(), or get the +number of matches using webkit_find_controller_count_matches(). The +operations are asynchronous and trigger signals when ready, such as +“found-text”, +“failed-to-find-text” or +“counted-matches”.

+
+
+

Functions

+
+

webkit_find_controller_search ()

+
void
+webkit_find_controller_search (WebKitFindController *find_controller,
+                               const gchar *search_text,
+                               guint32 find_options,
+                               guint max_match_count);
+

Looks for search_text + in the WebKitWebView associated with +find_controller + since the beginning of the document highlighting +up to max_match_count + matches. The outcome of the search will be +asynchronously provided by the “found-text” +and “failed-to-find-text” signals.

+

To look for the next or previous occurrences of the same text +with the same find options use webkit_find_controller_search_next() +and/or webkit_find_controller_search_previous(). The +WebKitFindController will use the same text and options for the +following searches unless they are modified by another call to this +method.

+

Note that if the number of matches is higher than max_match_count + +then “found-text” will report G_MAXUINT matches +instead of the actual number.

+

Callers should call webkit_find_controller_search_finish() to +finish the current search operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

search_text

the text to look for

 

find_options

a bitmask with the WebKitFindOptions used in the search

 

max_match_count

the maximum number of matches allowed in the search

 
+
+
+
+
+

webkit_find_controller_search_finish ()

+
void
+webkit_find_controller_search_finish (WebKitFindController *find_controller);
+

Finishes a find operation started by +webkit_find_controller_search(). It will basically unhighlight +every text match found.

+

This method will be typically called when the search UI is +closed/hidden by the client application.

+
+

Parameters

+
+++++ + + + + + +

find_controller

a WebKitFindController

 
+
+
+
+
+

webkit_find_controller_search_next ()

+
void
+webkit_find_controller_search_next (WebKitFindController *find_controller);
+

Looks for the next occurrence of the search text.

+

Calling this method before webkit_find_controller_search() or +webkit_find_controller_count_matches() is a programming error.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+
+
+

webkit_find_controller_search_previous ()

+
void
+webkit_find_controller_search_previous
+                               (WebKitFindController *find_controller);
+

Looks for the previous occurrence of the search text.

+

Calling this method before webkit_find_controller_search() or +webkit_find_controller_count_matches() is a programming error.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+
+
+

webkit_find_controller_get_search_text ()

+
const gchar *
+webkit_find_controller_get_search_text
+                               (WebKitFindController *find_controller);
+

Gets the text that find_controller + is currently searching +for. This text is passed to either +webkit_find_controller_search() or +webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the text to look for in the WebKitWebView.

+
+
+
+
+

webkit_find_controller_count_matches ()

+
void
+webkit_find_controller_count_matches (WebKitFindController *find_controller,
+                                      const gchar *search_text,
+                                      guint32 find_options,
+                                      guint max_match_count);
+

Counts the number of matches for search_text + found in the +WebKitWebView with the provided find_options +. The number of +matches will be provided by the +“counted-matches” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

search_text

the text to look for

 

find_options

a bitmask with the WebKitFindOptions used in the search

 

max_match_count

the maximum number of matches allowed in the search

 
+
+
+
+
+

webkit_find_controller_get_options ()

+
guint32
+webkit_find_controller_get_options (WebKitFindController *find_controller);
+

Gets a bitmask containing the WebKitFindOptions associated with +the current search.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

a bitmask containing the WebKitFindOptions associated +with the current search.

+
+
+
+
+

webkit_find_controller_get_max_match_count ()

+
guint
+webkit_find_controller_get_max_match_count
+                               (WebKitFindController *find_controller);
+

Gets the maximum number of matches to report during a text +lookup. This number is passed as the last argument of +webkit_find_controller_search() or +webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the maximum number of matches to report.

+
+
+
+
+

webkit_find_controller_get_web_view ()

+
WebKitWebView *
+webkit_find_controller_get_web_view (WebKitFindController *find_controller);
+

Gets the WebKitWebView this find controller is associated to. Do +not dereference the returned instance as it belongs to the +WebKitFindController.

+
+

Parameters

+
+++++ + + + + + +

find_controller

the WebKitFindController

 
+
+
+

Returns

+

the WebKitWebView.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitFindController

+
struct WebKitFindController;
+
+
+
+

enum WebKitFindOptions

+

Enum values used to specify search options.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_FIND_OPTIONS_NONE

+

no search flags, this means a case + sensitive, no wrap, forward only search.

+
 

WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE

+

case insensitive search.

+
 

WEBKIT_FIND_OPTIONS_AT_WORD_STARTS

+

search text only at the + begining of the words.

+
 

WEBKIT_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START

+

treat + capital letters in the middle of words as word start.

+
 

WEBKIT_FIND_OPTIONS_BACKWARDS

+

search backwards.

+
 

WEBKIT_FIND_OPTIONS_WRAP_AROUND

+

if not present search will stop + at the end of the document.

+
 
+
+
+
+
+

Property Details

+
+

The “max-match-count” property

+
  “max-match-count”          guint
+

The maximum number of matches to report for a given search.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “options” property

+
  “options”                  WebKitFindOptions
+

The options to be used in the search operation.

+

Flags: Read

+
+
+
+

The “text” property

+
  “text”                     gchar *
+

The current search text for this WebKitFindController.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “web-view” property

+
  “web-view”                 WebKitWebView *
+

The WebKitWebView this controller is associated to.

+

Flags: Read / Write / Construct Only

+
+
+
+

Signal Details

+
+

The “counted-matches” signal

+
void
+user_function (WebKitFindController *find_controller,
+               guint                 match_count,
+               gpointer              user_data)
+

This signal is emitted when the WebKitFindController has +counted the number of matches for a given text after a call +to webkit_find_controller_count_matches().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

match_count

the number of matches of the search text

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “failed-to-find-text” signal

+
void
+user_function (WebKitFindController *find_controller,
+               gpointer              user_data)
+

This signal is emitted when a search operation does not find +any result for the given text. It will be issued if the text +is not found asynchronously after a call to +webkit_find_controller_search(), webkit_find_controller_search_next() +or webkit_find_controller_search_previous().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “found-text” signal

+
void
+user_function (WebKitFindController *find_controller,
+               guint                 match_count,
+               gpointer              user_data)
+

This signal is emitted when a given text is found in the web +page text. It will be issued if the text is found +asynchronously after a call to webkit_find_controller_search(), +webkit_find_controller_search_next() or +webkit_find_controller_search_previous().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

find_controller

the WebKitFindController

 

match_count

the number of matches found of the search text

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFormSubmissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFormSubmissionRequest/index.html new file mode 100644 index 000000000..530217a3c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFormSubmissionRequest/index.html @@ -0,0 +1,174 @@ + + + + +WebKitFormSubmissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFormSubmissionRequest

+

WebKitFormSubmissionRequest — Represents a form submission request

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
structWebKitFormSubmissionRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFormSubmissionRequest
+
+
+
+

Description

+

When a form is about to be submitted in a WebKitWebView, the +“submit-form” signal is emitted. Its request argument +contains information about the text fields of the form, that are +typically used to store login information, returned as lists by +webkit_form_submission_request_list_text_fields(). You can submit the +form with webkit_form_submission_request_submit().

+
+
+

Functions

+
+

webkit_form_submission_request_list_text_fields ()

+
gboolean
+webkit_form_submission_request_list_text_fields
+                               (WebKitFormSubmissionRequest *request,
+                                GPtrArray **field_names,
+                                GPtrArray **field_values);
+

Get lists with the names and values of the text fields contained in +the form associated to request +. Note that names and values may be +NULL.

+

If this function returns FALSE, then both field_names + and +field_values + will be empty.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

request

a WebKitFormSubmissionRequest

 

field_names

names of the text fields in the form.

[out][optional][element-type utf8][transfer none]

field_values

values of the text fields in the form.

[out][optional][element-type utf8][transfer none]
+
+
+

Returns

+

TRUE if the form contains text fields, or FALSE otherwise

+
+

Since: 2.20

+
+
+
+

webkit_form_submission_request_submit ()

+
void
+webkit_form_submission_request_submit (WebKitFormSubmissionRequest *request);
+

Continue the form submission.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitFormSubmissionRequest

 
+
+
+
+
+

Types and Values

+
+

struct WebKitFormSubmissionRequest

+
struct WebKitFormSubmissionRequest;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitGeolocationPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitGeolocationPermissionRequest/index.html new file mode 100644 index 000000000..b3af395cf --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitGeolocationPermissionRequest/index.html @@ -0,0 +1,101 @@ + + + + +WebKitGeolocationPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitGeolocationPermissionRequest

+

WebKitGeolocationPermissionRequest — A permission request for sharing user's location

+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitGeolocationPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitGeolocationPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitGeolocationPermissionRequest represents a request for +permission to decide whether WebKit should provide the user's +location to a website when requested through the Geolocation API.

+

When a WebKitGeolocationPermissionRequest is not handled by the user, +it is denied by default.

+

When embedding web views in your application, you *must* configure an +application identifier to allow web content to use geolocation services. +The identifier *must* match the name of the .desktop file which describes +the application, sans the suffix.

+

If your application uses GApplication (or any subclass like +GtkApplication), WebKit will automatically use the identifier returned by +g_application_get_application_id(). This is the recommended approach for +enabling geolocation in applications.

+

If an identifier cannot be obtained through GApplication, the value +returned by g_get_prgname() will be used instead as a fallback. For +programs which cannot use GApplication, calling g_set_prgname() early +during initialization is needed when the name of the executable on disk +does not match the name of a valid .desktop file.

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitGeolocationPermissionRequest

+
struct WebKitGeolocationPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitHitTestResult/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitHitTestResult/index.html new file mode 100644 index 000000000..1ac5b1141 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitHitTestResult/index.html @@ -0,0 +1,714 @@ + + + + +WebKitHitTestResult: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitHitTestResult

+

WebKitHitTestResult — Result of a Hit Test

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
guintcontextRead / Write / Construct Only
+gchar *image-uriRead / Write / Construct Only
+gchar *link-labelRead / Write / Construct Only
+gchar *link-titleRead / Write / Construct Only
+gchar *link-uriRead / Write / Construct Only
+gchar *media-uriRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitHitTestResult
enumWebKitHitTestResultContext
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitHitTestResult
+
+
+
+

Description

+

A Hit Test is an operation to get context information about a given +point in a WebKitWebView. WebKitHitTestResult represents the +result of a Hit Test. It provides context information about what is +at the coordinates of the Hit Test, such as if there's a link, +an image or a media.

+

You can get the context of the HitTestResult with +webkit_hit_test_result_get_context() that returns a bitmask of +WebKitHitTestResultContext flags. You can also use +webkit_hit_test_result_context_is_link(), webkit_hit_test_result_context_is_image() and +webkit_hit_test_result_context_is_media() to determine whether there's +a link, image or a media element at the coordinates of the Hit Test. +Note that it's possible that several WebKitHitTestResultContext flags +are active at the same time, for example if there's a link containing an image.

+

When the mouse is moved over a WebKitWebView a Hit Test is performed +for the mouse coordinates and “mouse-target-changed” +signal is emitted with a WebKitHitTestResult.

+
+
+

Functions

+
+

webkit_hit_test_result_get_context ()

+
guint
+webkit_hit_test_result_get_context (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “context” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

a bitmask of WebKitHitTestResultContext flags

+
+
+
+
+

webkit_hit_test_result_context_is_link ()

+
gboolean
+webkit_hit_test_result_context_is_link
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a link element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_image ()

+
gboolean
+webkit_hit_test_result_context_is_image
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's an image element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_media ()

+
gboolean
+webkit_hit_test_result_context_is_media
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a media element in the coordinates of the Hit Test, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_editable ()

+
gboolean
+webkit_hit_test_result_context_is_editable
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's an editable element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_context_is_selection ()

+
gboolean
+webkit_hit_test_result_context_is_selection
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a selected element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+

Since: 2.8

+
+
+
+

webkit_hit_test_result_context_is_scrollbar ()

+
gboolean
+webkit_hit_test_result_context_is_scrollbar
+                               (WebKitHitTestResult *hit_test_result);
+

Gets whether WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR flag is present in +“context”.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

TRUE if there's a scrollbar element at the coordinates of the hit_test_result +, +or FALSE otherwise

+
+
+
+
+

webkit_hit_test_result_get_link_uri ()

+
const gchar *
+webkit_hit_test_result_get_link_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context

+
+
+
+
+

webkit_hit_test_result_get_link_title ()

+
const gchar *
+webkit_hit_test_result_get_link_title (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-title” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the title of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context or the +link element doesn't have a title

+
+
+
+
+

webkit_hit_test_result_get_link_label ()

+
const gchar *
+webkit_hit_test_result_get_link_label (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “link-label” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the label of the link element in the coordinates of the Hit Test, +or NULL if there isn't a link element in hit_test_result +context or the +link element doesn't have a label

+
+
+
+
+

webkit_hit_test_result_get_image_uri ()

+
const gchar *
+webkit_hit_test_result_get_image_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “image-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the image element in the coordinates of the Hit Test, +or NULL if there isn't an image element in hit_test_result +context

+
+
+
+
+

webkit_hit_test_result_get_media_uri ()

+
const gchar *
+webkit_hit_test_result_get_media_uri (WebKitHitTestResult *hit_test_result);
+

Gets the value of the “media-uri” property.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitHitTestResult

 
+
+
+

Returns

+

the URI of the media element in the coordinates of the Hit Test, +or NULL if there isn't a media element in hit_test_result +context

+
+
+
+
+

Types and Values

+
+

struct WebKitHitTestResult

+
struct WebKitHitTestResult;
+
+
+
+

enum WebKitHitTestResultContext

+

Enum values with flags representing the context of a WebKitHitTestResult.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT

+

anywhere in the document.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK

+

a hyperlink element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE

+

an image element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA

+

a video or audio element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE

+

an editable element

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR

+

a scrollbar element.

+
 

WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION

+

a selected element. Since 2.8

+
 
+
+
+
+
+

Property Details

+
+

The “context” property

+
  “context”                  guint
+

Bitmask of WebKitHitTestResultContext flags representing +the context of the WebKitHitTestResult.

+

Flags: Read / Write / Construct Only

+

Default value: 0

+
+
+
+

The “image-uri” property

+
  “image-uri”                gchar *
+

The URI of the image if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-label” property

+
  “link-label”               gchar *
+

The label of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-title” property

+
  “link-title”               gchar *
+

The title of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “link-uri” property

+
  “link-uri”                 gchar *
+

The URI of the link if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

The “media-uri” property

+
  “media-uri”                gchar *
+

The URI of the media if flag WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA +is present in “context”

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitInstallMissingMediaPluginsPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitInstallMissingMediaPluginsPermissionRequest/index.html new file mode 100644 index 000000000..20ab0fb11 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitInstallMissingMediaPluginsPermissionRequest/index.html @@ -0,0 +1,131 @@ + + + + +WebKitInstallMissingMediaPluginsPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitInstallMissingMediaPluginsPermissionRequest

+

WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitInstallMissingMediaPluginsPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitInstallMissingMediaPluginsPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitInstallMissingMediaPluginsPermissionRequest represents a request for +permission to decide whether WebKit should try to start a helper application to +install missing media plugins when the media backend couldn't play a media because +the required plugins were not available.

+

When a WebKitInstallMissingMediaPluginsPermissionRequest is not handled by the user, +it is allowed by default.

+
+
+

Functions

+
+

webkit_install_missing_media_plugins_permission_request_get_description ()

+
const gchar *
+webkit_install_missing_media_plugins_permission_request_get_description
+                               (WebKitInstallMissingMediaPluginsPermissionRequest *request);
+

Gets the description about the missing plugins provided by the media backend when a media couldn't be played.

+
+

Parameters

+ +
+
+

Returns

+

a string with the description provided by the media backend.

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

struct WebKitInstallMissingMediaPluginsPermissionRequest

+
struct WebKitInstallMissingMediaPluginsPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationAction/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationAction/index.html new file mode 100644 index 000000000..bc7759f30 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationAction/index.html @@ -0,0 +1,372 @@ + + + + +WebKitNavigationAction: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNavigationAction

+

WebKitNavigationAction

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitNavigationAction
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitNavigationAction
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_navigation_action_copy ()

+
WebKitNavigationAction *
+webkit_navigation_action_copy (WebKitNavigationAction *navigation);
+

Make a copy of navigation +.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

A copy of passed in WebKitNavigationAction.

+

[transfer full]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_free ()

+
void
+webkit_navigation_action_free (WebKitNavigationAction *navigation);
+

Free the WebKitNavigationAction

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_navigation_type ()

+
WebKitNavigationType
+webkit_navigation_action_get_navigation_type
+                               (WebKitNavigationAction *navigation);
+

Return the type of action that triggered the navigation.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

a WebKitNavigationType

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_mouse_button ()

+
guint
+webkit_navigation_action_get_mouse_button
+                               (WebKitNavigationAction *navigation);
+

Return the number of the mouse button that triggered the navigation, or 0 if +the navigation was not started by a mouse event.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

the mouse button number or 0

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_modifiers ()

+
guint
+webkit_navigation_action_get_modifiers
+                               (WebKitNavigationAction *navigation);
+

Return a bitmask of GdkModifierType values describing the modifier keys that were in effect +when the navigation was requested

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

the modifier keys

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_get_request ()

+
WebKitURIRequest *
+webkit_navigation_action_get_request (WebKitNavigationAction *navigation);
+

Return the WebKitURIRequest associated with the navigation action. +Modifications to the returned object are not taken +into account when the request is sent over the network, and is intended +only to aid in evaluating whether a navigation action should be taken or +not. To modify requests before they are sent over the network the +“send-request” signal can be used instead.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

a WebKitURIRequest.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_is_user_gesture ()

+
gboolean
+webkit_navigation_action_is_user_gesture
+                               (WebKitNavigationAction *navigation);
+

Return whether the navigation was triggered by a user gesture like a mouse click.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

whether navigation action is a user gesture

+
+

Since: 2.6

+
+
+
+

webkit_navigation_action_is_redirect ()

+
gboolean
+webkit_navigation_action_is_redirect (WebKitNavigationAction *navigation);
+

Returns whether the navigation + was redirected.

+
+

Parameters

+
+++++ + + + + + +

navigation

a WebKitNavigationAction

 
+
+
+

Returns

+

TRUE if the original navigation was redirected, FALSE otherwise.

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

WebKitNavigationAction

+
typedef struct _WebKitNavigationAction WebKitNavigationAction;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationPolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationPolicyDecision/index.html new file mode 100644 index 000000000..577271f3c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationPolicyDecision/index.html @@ -0,0 +1,271 @@ + + + + +WebKitNavigationPolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNavigationPolicyDecision

+

WebKitNavigationPolicyDecision — A policy decision for navigation actions

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+gchar *frame-nameRead
+WebKitNavigationAction *navigation-actionRead
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitNavigationPolicyDecision
enumWebKitNavigationType
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ╰── WebKitNavigationPolicyDecision
+
+
+
+

Description

+

WebKitNavigationPolicyDecision represents a policy decision for events associated with +navigations. If the value of “mouse-button” is not 0, then +the navigation was triggered by a mouse event.

+
+
+

Functions

+
+

webkit_navigation_policy_decision_get_navigation_action ()

+
WebKitNavigationAction *
+webkit_navigation_policy_decision_get_navigation_action
+                               (WebKitNavigationPolicyDecision *decision);
+

Gets the value of the “navigation-action” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitNavigationPolicyDecision

 
+
+
+

Returns

+

The WebKitNavigationAction triggering this policy decision.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_navigation_policy_decision_get_frame_name ()

+
const gchar *
+webkit_navigation_policy_decision_get_frame_name
+                               (WebKitNavigationPolicyDecision *decision);
+

Gets the value of the “frame-name” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitNavigationPolicyDecision

 
+
+
+

Returns

+

The name of the new frame this navigation action targets or NULL

+
+
+
+
+

Types and Values

+
+

struct WebKitNavigationPolicyDecision

+
struct WebKitNavigationPolicyDecision;
+
+
+
+

enum WebKitNavigationType

+

Enum values used to denote the various navigation types.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_NAVIGATION_TYPE_LINK_CLICKED

+

The navigation was triggered by clicking a link.

+
 

WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED

+

The navigation was triggered by submitting a form.

+
 

WEBKIT_NAVIGATION_TYPE_BACK_FORWARD

+

The navigation was triggered by navigating forward or backward.

+
 

WEBKIT_NAVIGATION_TYPE_RELOAD

+

The navigation was triggered by reloading.

+
 

WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED

+

The navigation was triggered by resubmitting a form.

+
 

WEBKIT_NAVIGATION_TYPE_OTHER

+

The navigation was triggered by some other action.

+
 
+
+
+
+
+

Property Details

+
+

The “frame-name” property

+
  “frame-name”               gchar *
+

If this navigation request targets a new frame, this property contains +the name of that frame. For example if the decision was triggered by clicking a +link with a target attribute equal to "_blank", this property will contain the +value of that attribute. In all other cases, this value will be NULL.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “navigation-action” property

+
  “navigation-action”        WebKitNavigationAction *
+

The WebKitNavigationAction that triggered this policy decision.

+

Flags: Read

+

Since: 2.6

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNetworkProxySettings/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNetworkProxySettings/index.html new file mode 100644 index 000000000..3da844752 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNetworkProxySettings/index.html @@ -0,0 +1,284 @@ + + + + +WebKitNetworkProxySettings: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNetworkProxySettings

+

WebKitNetworkProxySettings — Network Proxy Settings

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitNetworkProxySettings
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitNetworkProxySettings
+
+
+
+

Description

+

WebKitNetworkProxySettings can be used to provide a custom proxy configuration +to a WebKitWebContext. You need to call webkit_web_context_set_network_proxy_settings() +with WEBKIT_NETWORK_PROXY_MODE_CUSTOM and a WebKitNetworkProxySettings.

+
+
+

Functions

+
+

webkit_network_proxy_settings_new ()

+
WebKitNetworkProxySettings *
+webkit_network_proxy_settings_new (const gchar *default_proxy_uri,
+                                   const gchar * const *ignore_hosts);
+

Create a new WebKitNetworkProxySettings with the given default_proxy_uri + and ignore_hosts +.

+

The default proxy URI will be used for any URI that doesn't match ignore_hosts +, and doesn't match any +of the schemes added with webkit_network_proxy_settings_add_proxy_for_scheme(). +If default_proxy_uri + starts with "socks://", it will be treated as referring to all three of the +socks5, socks4a, and socks4 proxy types.

+

ignore_hosts + is a list of hostnames and IP addresses that the resolver should allow direct connections to. +Entries can be in one of 4 formats:

+
    +
  • +A hostname, such as "example.com", ".example.com", or "*.example.com", any of which match "example.com" or +any subdomain of it. +

  • +
  • +An IPv4 or IPv6 address, such as "192.168.1.1", which matches only that address. +

  • +
  • +A hostname or IP address followed by a port, such as "example.com:80", which matches whatever the hostname or IP +address would match, but only for URLs with the (explicitly) indicated port. In the case of an IPv6 address, the address +part must appear in brackets: "[::1]:443" +

  • +
  • +An IP address range, given by a base address and prefix length, such as "fe80::/10", which matches any address in that range. +

  • +
+

Note that when dealing with Unicode hostnames, the matching is done against the ASCII form of the name. +Also note that hostname exclusions apply only to connections made to hosts identified by name, and IP address exclusions apply only +to connections made to hosts identified by address. That is, if example.com has an address of 192.168.1.1, and ignore_hosts + +contains only "192.168.1.1", then a connection to "example.com" will use the proxy, and a connection to 192.168.1.1" will not.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

default_proxy_uri

the default proxy URI to use, or NULL.

[allow-none]

ignore_hosts

an optional list of hosts/IP addresses to not use a proxy for.

[allow-none][array zero-terminated=1]
+
+
+

Returns

+

A new WebKitNetworkProxySettings.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_copy ()

+
WebKitNetworkProxySettings *
+webkit_network_proxy_settings_copy (WebKitNetworkProxySettings *proxy_settings);
+

Make a copy of the WebKitNetworkProxySettings.

+
+

Parameters

+
+++++ + + + + + +

proxy_settings

a WebKitNetworkProxySettings

 
+
+
+

Returns

+

A copy of passed in WebKitNetworkProxySettings.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_free ()

+
void
+webkit_network_proxy_settings_free (WebKitNetworkProxySettings *proxy_settings);
+

Free the WebKitNetworkProxySettings.

+
+

Parameters

+
+++++ + + + + + +

proxy_settings

A WebKitNetworkProxySettings

 
+
+

Since: 2.16

+
+
+
+

webkit_network_proxy_settings_add_proxy_for_scheme ()

+
void
+webkit_network_proxy_settings_add_proxy_for_scheme
+                               (WebKitNetworkProxySettings *proxy_settings,
+                                const gchar *scheme,
+                                const gchar *proxy_uri);
+

Adds a URI-scheme-specific proxy. URIs whose scheme matches uri_scheme + will be proxied via proxy_uri +. +As with the default proxy URI, if proxy_uri + starts with "socks://", it will be treated as referring to +all three of the socks5, socks4a, and socks4 proxy types.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy_settings

a WebKitNetworkProxySettings

 

scheme

the URI scheme to add a proxy for

 

proxy_uri

the proxy URI to use for uri_scheme +

 
+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitNetworkProxySettings

+
typedef struct _WebKitNetworkProxySettings WebKitNetworkProxySettings;
+
+
+
+

See Also

+

WebKitWebContext

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotification/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotification/index.html new file mode 100644 index 000000000..3488a0fd1 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotification/index.html @@ -0,0 +1,447 @@ + + + + +WebKitNotification: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNotification

+

WebKitNotification — Object used to hold information about a notification that should be shown to the user.

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+guint64 + +webkit_notification_get_id () +
const gchar * + +webkit_notification_get_title () +
const gchar * + +webkit_notification_get_body () +
const gchar * + +webkit_notification_get_tag () +
+void + +webkit_notification_close () +
+void + +webkit_notification_clicked () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
+gchar *bodyRead
guint64idRead
+gchar *tagRead
+gchar *titleRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + +
voidclickedRun Last
voidclosedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitNotification
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitNotification
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_notification_get_id ()

+
guint64
+webkit_notification_get_id (WebKitNotification *notification);
+

Obtains the unique id for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the unique id for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_title ()

+
const gchar *
+webkit_notification_get_title (WebKitNotification *notification);
+

Obtains the title for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the title for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_body ()

+
const gchar *
+webkit_notification_get_body (WebKitNotification *notification);
+

Obtains the body for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the body for the notification

+
+

Since: 2.8

+
+
+
+

webkit_notification_get_tag ()

+
const gchar *
+webkit_notification_get_tag (WebKitNotification *notification);
+

Obtains the tag identifier for the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+
+

Returns

+

the tag for the notification.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_notification_close ()

+
void
+webkit_notification_close (WebKitNotification *notification);
+

Closes the notification.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+

Since: 2.8

+
+
+
+

webkit_notification_clicked ()

+
void
+webkit_notification_clicked (WebKitNotification *notification);
+

Tells WebKit the notification has been clicked. This will emit the +“clicked” signal.

+
+

Parameters

+
+++++ + + + + + +

notification

a WebKitNotification

 
+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

struct WebKitNotification

+
struct WebKitNotification;
+
+
+
+

Property Details

+
+

The “body” property

+
  “body”                     gchar *
+

The body for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.8

+
+
+
+

The “id” property

+
  “id”                       guint64
+

The unique id for the notification.

+

Flags: Read

+

Default value: 0

+

Since: 2.8

+
+
+
+

The “tag” property

+
  “tag”                      gchar *
+

The tag identifier for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.16

+
+
+
+

The “title” property

+
  “title”                    gchar *
+

The title for the notification.

+

Flags: Read

+

Default value: NULL

+

Since: 2.8

+
+
+
+

Signal Details

+
+

The “clicked” signal

+
void
+user_function (WebKitNotification *notification,
+               gpointer            user_data)
+

Emitted when a notification has been clicked. See webkit_notification_clicked().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

notification

the WebKitNotification on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.12

+
+
+
+

The “closed” signal

+
void
+user_function (WebKitNotification *notification,
+               gpointer            user_data)
+

Emitted when a notification has been withdrawn.

+

The default handler will close the notification using libnotify, if built with +support for it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

notification

the WebKitNotification on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotificationPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotificationPermissionRequest/index.html new file mode 100644 index 000000000..4eb113afa --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotificationPermissionRequest/index.html @@ -0,0 +1,88 @@ + + + + +WebKitNotificationPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitNotificationPermissionRequest

+

WebKitNotificationPermissionRequest — A permission request for displaying web notifications

+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitNotificationPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitNotificationPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitNotificationPermissionRequest represents a request for +permission to decide whether WebKit should provide the user with +notifications through the Web Notification API.

+

When a WebKitNotificationPermissionRequest is not handled by the user, +it is denied by default.

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitNotificationPermissionRequest

+
struct WebKitNotificationPermissionRequest;
+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPermissionRequest/index.html new file mode 100644 index 000000000..ab12dfe0f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPermissionRequest/index.html @@ -0,0 +1,165 @@ + + + + +WebKitPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPermissionRequest

+

WebKitPermissionRequest — A permission request

+
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +webkit_permission_request_allow () +
+void + +webkit_permission_request_deny () +
+
+
+

Types and Values

+
++++ + + + + +
 WebKitPermissionRequest
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── WebKitPermissionRequest
+
+
+
+

Prerequisites

+

+WebKitPermissionRequest requires + GObject.

+
+
+

Known Implementations

+

+WebKitPermissionRequest is implemented by + WebKitDeviceInfoPermissionRequest, WebKitGeolocationPermissionRequest, WebKitInstallMissingMediaPluginsPermissionRequest, WebKitNotificationPermissionRequest and WebKitUserMediaPermissionRequest.

+
+
+

Description

+

There are situations where an embedder would need to ask the user +for permission to do certain types of operations, such as switching +to fullscreen mode or reporting the user's location through the +standard Geolocation API. In those cases, WebKit will emit a +“permission-request” signal with a +WebKitPermissionRequest object attached to it.

+
+
+

Functions

+
+

webkit_permission_request_allow ()

+
void
+webkit_permission_request_allow (WebKitPermissionRequest *request);
+

Allow the action which triggered this request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitPermissionRequest

 
+
+
+
+
+

webkit_permission_request_deny ()

+
void
+webkit_permission_request_deny (WebKitPermissionRequest *request);
+

Deny the action which triggered this request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitPermissionRequest

 
+
+
+
+
+

Types and Values

+
+

WebKitPermissionRequest

+
typedef struct _WebKitPermissionRequest WebKitPermissionRequest;
+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPlugin/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPlugin/index.html new file mode 100644 index 000000000..c2501b43b --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPlugin/index.html @@ -0,0 +1,405 @@ + + + + +WebKitPlugin: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPlugin

+

WebKitPlugin — Represents a plugin, enabling fine-grained control

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_plugin_get_name () +
const gchar * + +webkit_plugin_get_description () +
const gchar * + +webkit_plugin_get_path () +
+GList * + +webkit_plugin_get_mime_info_list () +
+WebKitMimeInfo * + +webkit_mime_info_ref () +
+void + +webkit_mime_info_unref () +
const gchar * + +webkit_mime_info_get_mime_type () +
const gchar * + +webkit_mime_info_get_description () +
const gchar * const * + +webkit_mime_info_get_extensions () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWebKitPlugin
 WebKitMimeInfo
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitMimeInfo
+    GObject
+    ╰── WebKitPlugin
+
+
+
+

Description

+

This object represents a single plugin, found while scanning the +various platform plugin directories. This object can be used to get +more information about a plugin, and enable/disable it, allowing +fine-grained control of plugins. The list of available plugins can +be obtained from the WebKitWebContext, with +webkit_web_context_get_plugins().

+
+
+

Functions

+
+

webkit_plugin_get_name ()

+
const gchar *
+webkit_plugin_get_name (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the name of the plugin.

+
+
+
+
+

webkit_plugin_get_description ()

+
const gchar *
+webkit_plugin_get_description (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the description of the plugin.

+
+
+
+
+

webkit_plugin_get_path ()

+
const gchar *
+webkit_plugin_get_path (WebKitPlugin *plugin);
+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

the absolute path where the plugin is installed.

+
+
+
+
+

webkit_plugin_get_mime_info_list ()

+
GList *
+webkit_plugin_get_mime_info_list (WebKitPlugin *plugin);
+

Get information about MIME types handled by the plugin, +as a list of WebKitMimeInfo.

+
+

Parameters

+
+++++ + + + + + +

plugin

a WebKitPlugin

 
+
+
+

Returns

+

a GList of WebKitMimeInfo.

+

[element-type WebKitMimeInfo][transfer none]

+
+
+
+
+

webkit_mime_info_ref ()

+
WebKitMimeInfo *
+webkit_mime_info_ref (WebKitMimeInfo *info);
+

Atomically increments the reference count of info + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

The passed in WebKitMimeInfo

+
+
+
+
+

webkit_mime_info_unref ()

+
void
+webkit_mime_info_unref (WebKitMimeInfo *info);
+

Atomically decrements the reference count of info + by one. If the +reference count drops to 0, all memory allocated by the WebKitMimeInfo is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+
+
+

webkit_mime_info_get_mime_type ()

+
const gchar *
+webkit_mime_info_get_mime_type (WebKitMimeInfo *info);
+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

the MIME type of info +

+
+
+
+
+

webkit_mime_info_get_description ()

+
const gchar *
+webkit_mime_info_get_description (WebKitMimeInfo *info);
+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

the description of the MIME type of info +

+
+
+
+
+

webkit_mime_info_get_extensions ()

+
const gchar * const *
+webkit_mime_info_get_extensions (WebKitMimeInfo *info);
+

Get the list of file extensions associated to the +MIME type of info +

+
+

Parameters

+
+++++ + + + + + +

info

a WebKitMimeInfo

 
+
+
+

Returns

+

a +NULL-terminated array of strings.

+

[array zero-terminated=1][transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitPlugin

+
struct WebKitPlugin;
+
+
+
+

WebKitMimeInfo

+
typedef struct _WebKitMimeInfo WebKitMimeInfo;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPolicyDecision/index.html new file mode 100644 index 000000000..ba3bfb688 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPolicyDecision/index.html @@ -0,0 +1,187 @@ + + + + +WebKitPolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitPolicyDecision

+

WebKitPolicyDecision — A pending policy decision

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
+void + +webkit_policy_decision_download () +
+void + +webkit_policy_decision_ignore () +
+void + +webkit_policy_decision_use () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitPolicyDecision
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ├── WebKitNavigationPolicyDecision
+        ╰── WebKitResponsePolicyDecision
+
+
+
+

Description

+

Often WebKit allows the client to decide the policy for certain +operations. For instance, a client may want to open a link in a new +tab, block a navigation entirely, query the user or trigger a download +instead of a navigation. In these cases WebKit will fire the +“decide-policy” signal with a WebKitPolicyDecision +object. If the signal handler does nothing, WebKit will act as if +webkit_policy_decision_use() was called as soon as signal handling +completes. To make a policy decision asynchronously, simply increment +the reference count of the WebKitPolicyDecision object.

+
+
+

Functions

+
+

webkit_policy_decision_download ()

+
void
+webkit_policy_decision_download (WebKitPolicyDecision *decision);
+

Spawn a download from this decision.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

webkit_policy_decision_ignore ()

+
void
+webkit_policy_decision_ignore (WebKitPolicyDecision *decision);
+

Ignore the action which triggered this decision. For instance, for a +WebKitResponsePolicyDecision, this would cancel the request.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

webkit_policy_decision_use ()

+
void
+webkit_policy_decision_use (WebKitPolicyDecision *decision);
+

Accept the action which triggered this decision.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitPolicyDecision

 
+
+
+
+
+

Types and Values

+
+

struct WebKitPolicyDecision

+
struct WebKitPolicyDecision;
+
+
+
+

See Also

+

WebKitWebView

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitResponsePolicyDecision/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitResponsePolicyDecision/index.html new file mode 100644 index 000000000..88f8b75d2 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitResponsePolicyDecision/index.html @@ -0,0 +1,248 @@ + + + + +WebKitResponsePolicyDecision: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitResponsePolicyDecision

+

WebKitResponsePolicyDecision — A policy decision for resource responses

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+WebKitURIRequest *requestRead
+WebKitURIResponse *responseRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitResponsePolicyDecision
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitPolicyDecision
+        ╰── WebKitResponsePolicyDecision
+
+
+
+

Description

+

WebKitResponsePolicyDecision represents a policy decision for a +resource response, whether from the network or the local system. +A very common use case for these types of decision is deciding +whether or not to download a particular resource or to load it +normally.

+
+
+

Functions

+
+

webkit_response_policy_decision_get_request ()

+
WebKitURIRequest *
+webkit_response_policy_decision_get_request
+                               (WebKitResponsePolicyDecision *decision);
+

Return the WebKitURIRequest associated with the response decision. +Modifications to the returned object are not taken +into account when the request is sent over the network, and is intended +only to aid in evaluating whether a response decision should be taken or +not. To modify requests before they are sent over the network the +“send-request” signal can be used instead.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

The URI request that is associated with this policy decision.

+

[transfer none]

+
+
+
+
+

webkit_response_policy_decision_get_response ()

+
WebKitURIResponse *
+webkit_response_policy_decision_get_response
+                               (WebKitResponsePolicyDecision *decision);
+

Gets the value of the “response” property.

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

The URI response that is associated with this policy decision.

+

[transfer none]

+
+
+
+
+

webkit_response_policy_decision_is_mime_type_supported ()

+
gboolean
+webkit_response_policy_decision_is_mime_type_supported
+                               (WebKitResponsePolicyDecision *decision);
+

Gets whether the MIME type of the response can be displayed in the WebKitWebView +that triggered this policy decision request. See also webkit_web_view_can_show_mime_type().

+
+

Parameters

+
+++++ + + + + + +

decision

a WebKitResponsePolicyDecision

 
+
+
+

Returns

+

TRUE if the MIME type of the response is supported or FALSE otherwise

+
+

Since: 2.4

+
+
+
+

Types and Values

+
+

struct WebKitResponsePolicyDecision

+
struct WebKitResponsePolicyDecision;
+
+
+
+

Property Details

+
+

The “request” property

+
  “request”                  WebKitURIRequest *
+

This property contains the WebKitURIRequest associated with this +policy decision.

+

Flags: Read

+
+
+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

This property contains the WebKitURIResponse associated with this +policy decision.

+

Flags: Read

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityManager/index.html new file mode 100644 index 000000000..3cdbcb31f --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityManager/index.html @@ -0,0 +1,610 @@ + + + + +WebKitSecurityManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSecurityManager

+

WebKitSecurityManager — Controls security settings in a WebKitWebContext

+
+ +
+

Types and Values

+
++++ + + + + +
structWebKitSecurityManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitSecurityManager
+
+
+
+

Description

+

The WebKitSecurityManager defines security settings for URI +schemes in a WebKitWebContext. Get it from the context with +webkit_web_context_get_security_manager(), and use it to register a +URI scheme with a certain security level, or to check if it already +has it.

+
+
+

Functions

+
+

webkit_security_manager_register_uri_scheme_as_local ()

+
void
+webkit_security_manager_register_uri_scheme_as_local
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a local scheme. This means that other non-local pages +cannot link to or access URIs of this scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_local ()

+
gboolean
+webkit_security_manager_uri_scheme_is_local
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a local scheme. +See also webkit_security_manager_register_uri_scheme_as_local().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a local scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_no_access ()

+
void
+webkit_security_manager_register_uri_scheme_as_no_access
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a no-access scheme. This means that pages loaded +with this URI scheme cannot access pages loaded with any other URI scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_no_access ()

+
gboolean
+webkit_security_manager_uri_scheme_is_no_access
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a no-access scheme. +See also webkit_security_manager_register_uri_scheme_as_no_access().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a no-access scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_display_isolated ()

+
void
+webkit_security_manager_register_uri_scheme_as_display_isolated
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a display isolated scheme. This means that pages cannot +display these URIs unless they are from the same scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_display_isolated ()

+
gboolean
+webkit_security_manager_uri_scheme_is_display_isolated
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a display isolated scheme. +See also webkit_security_manager_register_uri_scheme_as_display_isolated().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a display isolated scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_secure ()

+
void
+webkit_security_manager_register_uri_scheme_as_secure
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a secure scheme. This means that mixed +content warnings won't be generated for this scheme when +included by an HTTPS page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_secure ()

+
gboolean
+webkit_security_manager_uri_scheme_is_secure
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a secure scheme. +See also webkit_security_manager_register_uri_scheme_as_secure().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a secure scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_cors_enabled ()

+
void
+webkit_security_manager_register_uri_scheme_as_cors_enabled
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as a CORS (Cross-origin resource sharing) enabled scheme. +This means that CORS requests are allowed. See W3C CORS specification +http://www.w3.org/TR/cors/.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_cors_enabled ()

+
gboolean
+webkit_security_manager_uri_scheme_is_cors_enabled
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as a CORS enabled scheme. +See also webkit_security_manager_register_uri_scheme_as_cors_enabled().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is a CORS enabled scheme or FALSE otherwise.

+
+
+
+
+

webkit_security_manager_register_uri_scheme_as_empty_document ()

+
void
+webkit_security_manager_register_uri_scheme_as_empty_document
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Register scheme + as an empty document scheme. This means that +they are allowed to commit synchronously.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+
+
+

webkit_security_manager_uri_scheme_is_empty_document ()

+
gboolean
+webkit_security_manager_uri_scheme_is_empty_document
+                               (WebKitSecurityManager *security_manager,
+                                const gchar *scheme);
+

Whether scheme + is considered as an empty document scheme. +See also webkit_security_manager_register_uri_scheme_as_empty_document().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

security_manager

a WebKitSecurityManager

 

scheme

a URI scheme

 
+
+
+

Returns

+

TRUE if scheme +is an empty document scheme or FALSE otherwise.

+
+
+
+
+

Types and Values

+
+

struct WebKitSecurityManager

+
struct WebKitSecurityManager;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityOrigin/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityOrigin/index.html new file mode 100644 index 000000000..e4a7ede12 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityOrigin/index.html @@ -0,0 +1,448 @@ + + + + +WebKitSecurityOrigin: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSecurityOrigin

+

WebKitSecurityOrigin — A security boundary for websites

+
+ +
+

Types and Values

+
++++ + + + + +
 WebKitSecurityOrigin
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitSecurityOrigin
+
+
+
+

Description

+

WebKitSecurityOrigin is a representation of a security domain +defined by websites. A security origin normally consists of a +protocol, a hostname, and a port number. It is also possible for a +security origin to be opaque, as defined by the HTML standard, in +which case it has no associated protocol, host, or port.

+

Websites with the same security origin can access each other's +resources for client-side scripting or database access.

+
+
+

Functions

+
+

webkit_security_origin_new ()

+
WebKitSecurityOrigin *
+webkit_security_origin_new (const gchar *protocol,
+                            const gchar *host,
+                            guint16 port);
+

Create a new security origin from the provided protocol, host and +port.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

protocol

The protocol for the new origin

 

host

The host for the new origin

 

port

The port number for the new origin, or 0 to indicate the +default port for protocol +

 
+
+
+

Returns

+

A WebKitSecurityOrigin.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_new_for_uri ()

+
WebKitSecurityOrigin *
+webkit_security_origin_new_for_uri (const gchar *uri);
+

Create a new security origin from the provided URI. Components of +uri + other than protocol, host, and port do not affect the created +WebKitSecurityOrigin.

+
+

Parameters

+
+++++ + + + + + +

uri

The URI for the new origin

 
+
+
+

Returns

+

A WebKitSecurityOrigin.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_ref ()

+
WebKitSecurityOrigin *
+webkit_security_origin_ref (WebKitSecurityOrigin *origin);
+

Atomically increments the reference count of origin + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The passed WebKitSecurityOrigin

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_unref ()

+
void
+webkit_security_origin_unref (WebKitSecurityOrigin *origin);
+

Atomically decrements the reference count of origin + by one. +If the reference count drops to 0, all memory allocated by +WebKitSecurityOrigin is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

origin

A WebKitSecurityOrigin

 
+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_protocol ()

+
const gchar *
+webkit_security_origin_get_protocol (WebKitSecurityOrigin *origin);
+

Gets the protocol of origin +, or NULL if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The protocol of the WebKitSecurityOrigin.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_host ()

+
const gchar *
+webkit_security_origin_get_host (WebKitSecurityOrigin *origin);
+

Gets the hostname of origin +, or NULL if origin + is opaque or if its +protocol does not require a host component.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The host of the WebKitSecurityOrigin.

+

[allow-none]

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_get_port ()

+
guint16
+webkit_security_origin_get_port (WebKitSecurityOrigin *origin);
+

Gets the port of origin +. This function will always return 0 if the +port is the default port for the given protocol. For example, +http://example.com has the same security origin as +http://example.com:80, and this function will return 0 for a +WebKitSecurityOrigin constructed from either URI. It will also +return 0 if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

The port of the WebKitSecurityOrigin.

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_is_opaque ()

+
gboolean
+webkit_security_origin_is_opaque (WebKitSecurityOrigin *origin);
+

Gets whether origin + is an opaque security origin, which does not +possess an associated protocol, host, or port.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

TRUE if origin +is opaque.

+
+

Since: 2.16

+
+
+
+

webkit_security_origin_to_string ()

+
gchar *
+webkit_security_origin_to_string (WebKitSecurityOrigin *origin);
+

Gets a string representation of origin +. The string representation +is a valid URI with only protocol, host, and port components. It may +be NULL, but usually only if origin + is opaque.

+
+

Parameters

+
+++++ + + + + + +

origin

a WebKitSecurityOrigin

 
+
+
+

Returns

+

a URI representing origin +.

+

[allow-none][transfer full]

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitSecurityOrigin

+
typedef struct _WebKitSecurityOrigin WebKitSecurityOrigin;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSettings/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSettings/index.html new file mode 100644 index 000000000..080267614 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSettings/index.html @@ -0,0 +1,4936 @@ + + + + +WebKitSettings: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitSettings

+

WebKitSettings — Control the behaviour of a WebKitWebView

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitSettings * + +webkit_settings_new () +
+WebKitSettings * + +webkit_settings_new_with_settings () +
+gboolean + +webkit_settings_get_auto_load_images () +
+void + +webkit_settings_set_auto_load_images () +
+gboolean + +webkit_settings_get_enable_frame_flattening () +
+void + +webkit_settings_set_enable_frame_flattening () +
+gboolean + +webkit_settings_get_enable_html5_database () +
+void + +webkit_settings_set_enable_html5_database () +
+gboolean + +webkit_settings_get_enable_html5_local_storage () +
+void + +webkit_settings_set_enable_html5_local_storage () +
+gboolean + +webkit_settings_get_enable_hyperlink_auditing () +
+void + +webkit_settings_set_enable_hyperlink_auditing () +
+gboolean + +webkit_settings_get_enable_java () +
+void + +webkit_settings_set_enable_java () +
+gboolean + +webkit_settings_get_enable_javascript () +
+void + +webkit_settings_set_enable_javascript () +
+gboolean + +webkit_settings_get_enable_javascript_markup () +
+void + +webkit_settings_set_enable_javascript_markup () +
+gboolean + +webkit_settings_get_enable_offline_web_application_cache () +
+void + +webkit_settings_set_enable_offline_web_application_cache () +
+gboolean + +webkit_settings_get_enable_plugins () +
+void + +webkit_settings_set_enable_plugins () +
+gboolean + +webkit_settings_get_enable_xss_auditor () +
+void + +webkit_settings_set_enable_xss_auditor () +
+gboolean + +webkit_settings_get_javascript_can_open_windows_automatically () +
+void + +webkit_settings_set_javascript_can_open_windows_automatically () +
+gboolean + +webkit_settings_get_load_icons_ignoring_image_load_setting () +
+void + +webkit_settings_set_load_icons_ignoring_image_load_setting () +
const gchar * + +webkit_settings_get_default_font_family () +
+void + +webkit_settings_set_default_font_family () +
const gchar * + +webkit_settings_get_monospace_font_family () +
+void + +webkit_settings_set_monospace_font_family () +
const gchar * + +webkit_settings_get_serif_font_family () +
+void + +webkit_settings_set_serif_font_family () +
const gchar * + +webkit_settings_get_sans_serif_font_family () +
+void + +webkit_settings_set_sans_serif_font_family () +
const gchar * + +webkit_settings_get_cursive_font_family () +
+void + +webkit_settings_set_cursive_font_family () +
const gchar * + +webkit_settings_get_fantasy_font_family () +
+void + +webkit_settings_set_fantasy_font_family () +
const gchar * + +webkit_settings_get_pictograph_font_family () +
+void + +webkit_settings_set_pictograph_font_family () +
+guint32 + +webkit_settings_get_default_font_size () +
+void + +webkit_settings_set_default_font_size () +
+guint32 + +webkit_settings_get_default_monospace_font_size () +
+void + +webkit_settings_set_default_monospace_font_size () +
+guint32 + +webkit_settings_get_minimum_font_size () +
+void + +webkit_settings_set_minimum_font_size () +
const gchar * + +webkit_settings_get_default_charset () +
+void + +webkit_settings_set_default_charset () +
+gboolean + +webkit_settings_get_enable_developer_extras () +
+void + +webkit_settings_set_enable_developer_extras () +
+gboolean + +webkit_settings_get_enable_resizable_text_areas () +
+void + +webkit_settings_set_enable_resizable_text_areas () +
+gboolean + +webkit_settings_get_enable_tabs_to_links () +
+void + +webkit_settings_set_enable_tabs_to_links () +
+gboolean + +webkit_settings_get_enable_dns_prefetching () +
+void + +webkit_settings_set_enable_dns_prefetching () +
+gboolean + +webkit_settings_get_enable_caret_browsing () +
+void + +webkit_settings_set_enable_caret_browsing () +
+gboolean + +webkit_settings_get_enable_fullscreen () +
+void + +webkit_settings_set_enable_fullscreen () +
+gboolean + +webkit_settings_get_print_backgrounds () +
+void + +webkit_settings_set_print_backgrounds () +
+gboolean + +webkit_settings_get_enable_webaudio () +
+void + +webkit_settings_set_enable_webaudio () +
+gboolean + +webkit_settings_get_enable_webgl () +
+void + +webkit_settings_set_enable_webgl () +
+void + +webkit_settings_set_allow_modal_dialogs () +
+gboolean + +webkit_settings_get_allow_modal_dialogs () +
+gboolean + +webkit_settings_get_zoom_text_only () +
+void + +webkit_settings_set_zoom_text_only () +
+gboolean + +webkit_settings_get_javascript_can_access_clipboard () +
+void + +webkit_settings_set_javascript_can_access_clipboard () +
+gboolean + +webkit_settings_get_media_playback_requires_user_gesture () +
+void + +webkit_settings_set_media_playback_requires_user_gesture () +
+gboolean + +webkit_settings_get_media_playback_allows_inline () +
+void + +webkit_settings_set_media_playback_allows_inline () +
+gboolean + +webkit_settings_get_draw_compositing_indicators () +
+void + +webkit_settings_set_draw_compositing_indicators () +
+gboolean + +webkit_settings_get_enable_site_specific_quirks () +
+void + +webkit_settings_set_enable_site_specific_quirks () +
+gboolean + +webkit_settings_get_enable_page_cache () +
+void + +webkit_settings_set_enable_page_cache () +
const gchar * + +webkit_settings_get_user_agent () +
+void + +webkit_settings_set_user_agent () +
+void + +webkit_settings_set_user_agent_with_application_details () +
+gboolean + +webkit_settings_get_enable_smooth_scrolling () +
+void + +webkit_settings_set_enable_smooth_scrolling () +
+gboolean + +webkit_settings_get_enable_accelerated_2d_canvas () +
+void + +webkit_settings_set_enable_accelerated_2d_canvas () +
+gboolean + +webkit_settings_get_enable_write_console_messages_to_stdout () +
+void + +webkit_settings_set_enable_write_console_messages_to_stdout () +
+gboolean + +webkit_settings_get_enable_media_stream () +
+void + +webkit_settings_set_enable_media_stream () +
+gboolean + +webkit_settings_get_enable_mock_capture_devices () +
+void + +webkit_settings_set_enable_mock_capture_devices () +
+gboolean + +webkit_settings_get_enable_spatial_navigation () +
+void + +webkit_settings_set_enable_spatial_navigation () +
+gboolean + +webkit_settings_get_enable_mediasource () +
+void + +webkit_settings_set_enable_mediasource () +
+gboolean + +webkit_settings_get_enable_encrypted_media () +
+void + +webkit_settings_set_enable_encrypted_media () +
+gboolean + +webkit_settings_get_enable_media_capabilities () +
+void + +webkit_settings_set_enable_media_capabilities () +
+gboolean + +webkit_settings_get_allow_file_access_from_file_urls () +
+void + +webkit_settings_set_allow_file_access_from_file_urls () +
+gboolean + +webkit_settings_get_allow_universal_access_from_file_urls () +
+void + +webkit_settings_set_allow_universal_access_from_file_urls () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
gbooleanallow-file-access-from-file-urlsRead / Write / Construct
gbooleanallow-modal-dialogsRead / Write / Construct
gbooleanallow-universal-access-from-file-urlsRead / Write / Construct
gbooleanauto-load-imagesRead / Write / Construct
+gchar *cursive-font-familyRead / Write / Construct
+gchar *default-charsetRead / Write / Construct
+gchar *default-font-familyRead / Write / Construct
guintdefault-font-sizeRead / Write / Construct
guintdefault-monospace-font-sizeRead / Write / Construct
gbooleandraw-compositing-indicatorsRead / Write / Construct
gbooleanenable-accelerated-2d-canvasRead / Write / Construct
gbooleanenable-caret-browsingRead / Write / Construct
gbooleanenable-developer-extrasRead / Write / Construct
gbooleanenable-dns-prefetchingRead / Write / Construct
gbooleanenable-encrypted-mediaRead / Write / Construct
gbooleanenable-frame-flatteningRead / Write / Construct
gbooleanenable-fullscreenRead / Write / Construct
gbooleanenable-html5-databaseRead / Write / Construct
gbooleanenable-html5-local-storageRead / Write / Construct
gbooleanenable-hyperlink-auditingRead / Write / Construct
gbooleanenable-javaRead / Write / Construct
gbooleanenable-javascriptRead / Write / Construct
gbooleanenable-javascript-markupRead / Write / Construct
gbooleanenable-media-capabilitiesRead / Write / Construct
gbooleanenable-media-streamRead / Write / Construct
gbooleanenable-mediasourceRead / Write / Construct
gbooleanenable-mock-capture-devicesRead / Write / Construct
gbooleanenable-offline-web-application-cacheRead / Write / Construct
gbooleanenable-page-cacheRead / Write / Construct
gbooleanenable-pluginsRead / Write / Construct
gbooleanenable-resizable-text-areasRead / Write / Construct
gbooleanenable-site-specific-quirksRead / Write / Construct
gbooleanenable-smooth-scrollingRead / Write / Construct
gbooleanenable-spatial-navigationRead / Write / Construct
gbooleanenable-tabs-to-linksRead / Write / Construct
gbooleanenable-webaudioRead / Write / Construct
gbooleanenable-webglRead / Write / Construct
gbooleanenable-write-console-messages-to-stdoutRead / Write / Construct
gbooleanenable-xss-auditorRead / Write / Construct
+gchar *fantasy-font-familyRead / Write / Construct
gbooleanjavascript-can-access-clipboardRead / Write / Construct
gbooleanjavascript-can-open-windows-automaticallyRead / Write / Construct
gbooleanload-icons-ignoring-image-load-settingRead / Write / Construct
gbooleanmedia-playback-allows-inlineRead / Write / Construct
gbooleanmedia-playback-requires-user-gestureRead / Write / Construct
guintminimum-font-sizeRead / Write / Construct
+gchar *monospace-font-familyRead / Write / Construct
+gchar *pictograph-font-familyRead / Write / Construct
gbooleanprint-backgroundsRead / Write / Construct
+gchar *sans-serif-font-familyRead / Write / Construct
+gchar *serif-font-familyRead / Write / Construct
+gchar *user-agentRead / Write / Construct
gbooleanzoom-text-onlyRead / Write / Construct
+
+
+

Types and Values

+
++++ + + + + +
structWebKitSettings
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitSettings
+
+
+
+

Description

+

WebKitSettings can be applied to a WebKitWebView to control text charset, +color, font sizes, printing mode, script support, loading of images and various +other things on a WebKitWebView. After creation, a WebKitSettings object +contains default settings.

+
+ + + + + + + +
1
+2
+3
/* Disable JavaScript. */
+WebKitSettings *settings = webkit_web_view_group_get_settings (my_view_group);
+webkit_settings_set_enable_javascript (settings, FALSE);
+
+ +
+
+

Functions

+
+

webkit_settings_new ()

+
WebKitSettings *
+webkit_settings_new (void);
+

Creates a new WebKitSettings instance with default values. It must +be manually attached to a WebKitWebView. +See also webkit_settings_new_with_settings().

+
+

Returns

+

a new WebKitSettings instance.

+
+
+
+
+

webkit_settings_new_with_settings ()

+
WebKitSettings *
+webkit_settings_new_with_settings (const gchar *first_setting_name,
+                                   ...);
+

Creates a new WebKitSettings instance with the given settings. It must +be manually attached to a WebKitWebView.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

first_setting_name

name of first setting to set

 

...

value of first setting, followed by more settings, +NULL-terminated

 
+
+
+

Returns

+

a new WebKitSettings instance.

+
+
+
+
+

webkit_settings_get_auto_load_images ()

+
gboolean
+webkit_settings_get_auto_load_images (WebKitSettings *settings);
+

Get the “auto-load-images” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If auto loading of images is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_auto_load_images ()

+
void
+webkit_settings_set_auto_load_images (WebKitSettings *settings,
+                                      gboolean enabled);
+

Set the “auto-load-images” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_frame_flattening ()

+
gboolean
+webkit_settings_get_enable_frame_flattening
+                               (WebKitSettings *settings);
+

Get the “enable-frame-flattening” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If frame flattening is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_frame_flattening ()

+
void
+webkit_settings_set_enable_frame_flattening
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-frame-flattening” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_html5_database ()

+
gboolean
+webkit_settings_get_enable_html5_database
+                               (WebKitSettings *settings);
+

Get the “enable-html5-database” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 database support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_html5_database ()

+
void
+webkit_settings_set_enable_html5_database
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-html5-database” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_html5_local_storage ()

+
gboolean
+webkit_settings_get_enable_html5_local_storage
+                               (WebKitSettings *settings);
+

Get the “enable-html5-local-storage” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 local storage support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_html5_local_storage ()

+
void
+webkit_settings_set_enable_html5_local_storage
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-html5-local-storage” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_hyperlink_auditing ()

+
gboolean
+webkit_settings_get_enable_hyperlink_auditing
+                               (WebKitSettings *settings);
+

Get the “enable-hyperlink-auditing” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If hyper link auditing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_hyperlink_auditing ()

+
void
+webkit_settings_set_enable_hyperlink_auditing
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-hyperlink-auditing” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_java ()

+
gboolean
+webkit_settings_get_enable_java (WebKitSettings *settings);
+

Get the “enable-java” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If Java is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_java ()

+
void
+webkit_settings_set_enable_java (WebKitSettings *settings,
+                                 gboolean enabled);
+

Set the “enable-java” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_javascript ()

+
gboolean
+webkit_settings_get_enable_javascript (WebKitSettings *settings);
+

Get the “enable-javascript” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If JavaScript is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_javascript ()

+
void
+webkit_settings_set_enable_javascript (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-javascript” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_javascript_markup ()

+
gboolean
+webkit_settings_get_enable_javascript_markup
+                               (WebKitSettings *settings);
+

Get the “enable-javascript-markup” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if JavaScript markup is enabled or FALSE otherwise.

+
+

Since: 2.24

+
+
+
+

webkit_settings_set_enable_javascript_markup ()

+
void
+webkit_settings_set_enable_javascript_markup
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-javascript-markup” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.24

+
+
+
+

webkit_settings_get_enable_offline_web_application_cache ()

+
gboolean
+webkit_settings_get_enable_offline_web_application_cache
+                               (WebKitSettings *settings);
+

Get the “enable-offline-web-application-cache” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 offline web application cache support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_offline_web_application_cache ()

+
void
+webkit_settings_set_enable_offline_web_application_cache
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-offline-web-application-cache” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_plugins ()

+
gboolean
+webkit_settings_get_enable_plugins (WebKitSettings *settings);
+

Get the “enable-plugins” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If plugins are enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_plugins ()

+
void
+webkit_settings_set_enable_plugins (WebKitSettings *settings,
+                                    gboolean enabled);
+

Set the “enable-plugins” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_xss_auditor ()

+
gboolean
+webkit_settings_get_enable_xss_auditor
+                               (WebKitSettings *settings);
+

Get the “enable-xss-auditor” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If XSS auditing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_xss_auditor ()

+
void
+webkit_settings_set_enable_xss_auditor
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-xss-auditor” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_javascript_can_open_windows_automatically ()

+
gboolean
+webkit_settings_get_javascript_can_open_windows_automatically
+                               (WebKitSettings *settings);
+

Get the “javascript-can-open-windows-automatically” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If JavaScript can open window automatically or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_javascript_can_open_windows_automatically ()

+
void
+webkit_settings_set_javascript_can_open_windows_automatically
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “javascript-can-open-windows-automatically” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_load_icons_ignoring_image_load_setting ()

+
gboolean
+webkit_settings_get_load_icons_ignoring_image_load_setting
+                               (WebKitSettings *settings);
+

Get the “load-icons-ignoring-image-load-setting” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If site icon can be loaded irrespective of image loading preference or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_load_icons_ignoring_image_load_setting ()

+
void
+webkit_settings_set_load_icons_ignoring_image_load_setting
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “load-icons-ignoring-image-load-setting” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_default_font_family ()

+
const gchar *
+webkit_settings_get_default_font_family
+                               (WebKitSettings *settings);
+
+
+
+

webkit_settings_set_default_font_family ()

+
void
+webkit_settings_set_default_font_family
+                               (WebKitSettings *settings,
+                                const gchar *default_font_family);
+

Set the “default-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

default_font_family

the new default font family

 
+
+
+
+
+

webkit_settings_get_monospace_font_family ()

+
const gchar *
+webkit_settings_get_monospace_font_family
+                               (WebKitSettings *settings);
+

Gets the “monospace-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default font family used to display content marked with monospace font.

+
+
+
+
+

webkit_settings_set_monospace_font_family ()

+
void
+webkit_settings_set_monospace_font_family
+                               (WebKitSettings *settings,
+                                const gchar *monospace_font_family);
+

Set the “monospace-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

monospace_font_family

the new default monospace font family

 
+
+
+
+
+

webkit_settings_get_serif_font_family ()

+
const gchar *
+webkit_settings_get_serif_font_family (WebKitSettings *settings);
+

Gets the “serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with serif font.

+
+
+
+
+

webkit_settings_set_serif_font_family ()

+
void
+webkit_settings_set_serif_font_family (WebKitSettings *settings,
+                                       const gchar *serif_font_family);
+

Set the “serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

serif_font_family

the new default serif font family

 
+
+
+
+
+

webkit_settings_get_sans_serif_font_family ()

+
const gchar *
+webkit_settings_get_sans_serif_font_family
+                               (WebKitSettings *settings);
+

Gets the “sans-serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with sans-serif font.

+
+
+
+
+

webkit_settings_set_sans_serif_font_family ()

+
void
+webkit_settings_set_sans_serif_font_family
+                               (WebKitSettings *settings,
+                                const gchar *sans_serif_font_family);
+

Set the “sans-serif-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

sans_serif_font_family

the new default sans-serif font family

 
+
+
+
+
+

webkit_settings_get_cursive_font_family ()

+
const gchar *
+webkit_settings_get_cursive_font_family
+                               (WebKitSettings *settings);
+

Gets the “cursive-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with cursive font.

+
+
+
+
+

webkit_settings_set_cursive_font_family ()

+
void
+webkit_settings_set_cursive_font_family
+                               (WebKitSettings *settings,
+                                const gchar *cursive_font_family);
+

Set the “cursive-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

cursive_font_family

the new default cursive font family

 
+
+
+
+
+

webkit_settings_get_fantasy_font_family ()

+
const gchar *
+webkit_settings_get_fantasy_font_family
+                               (WebKitSettings *settings);
+

Gets the “fantasy-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with fantasy font.

+
+
+
+
+

webkit_settings_set_fantasy_font_family ()

+
void
+webkit_settings_set_fantasy_font_family
+                               (WebKitSettings *settings,
+                                const gchar *fantasy_font_family);
+

Set the “fantasy-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

fantasy_font_family

the new default fantasy font family

 
+
+
+
+
+

webkit_settings_get_pictograph_font_family ()

+
const gchar *
+webkit_settings_get_pictograph_font_family
+                               (WebKitSettings *settings);
+

Gets the “pictograph-font-family” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font family used to display content marked with pictograph font.

+
+
+
+
+

webkit_settings_set_pictograph_font_family ()

+
void
+webkit_settings_set_pictograph_font_family
+                               (WebKitSettings *settings,
+                                const gchar *pictograph_font_family);
+

Set the “pictograph-font-family” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

pictograph_font_family

the new default pictograph font family

 
+
+
+
+
+

webkit_settings_get_default_font_size ()

+
guint32
+webkit_settings_get_default_font_size (WebKitSettings *settings);
+

Gets the “default-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The default font size, in pixels.

+
+
+
+
+

webkit_settings_set_default_font_size ()

+
void
+webkit_settings_set_default_font_size (WebKitSettings *settings,
+                                       guint32 font_size);
+

Set the “default-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

default font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_default_monospace_font_size ()

+
guint32
+webkit_settings_get_default_monospace_font_size
+                               (WebKitSettings *settings);
+

Gets the “default-monospace-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default monospace font size, in pixels.

+
+
+
+
+

webkit_settings_set_default_monospace_font_size ()

+
void
+webkit_settings_set_default_monospace_font_size
+                               (WebKitSettings *settings,
+                                guint32 font_size);
+

Set the “default-monospace-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

default monospace font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_minimum_font_size ()

+
guint32
+webkit_settings_get_minimum_font_size (WebKitSettings *settings);
+

Gets the “minimum-font-size” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Minimum font size, in pixels.

+
+
+
+
+

webkit_settings_set_minimum_font_size ()

+
void
+webkit_settings_set_minimum_font_size (WebKitSettings *settings,
+                                       guint32 font_size);
+

Set the “minimum-font-size” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

font_size

minimum font size to be set in pixels

 
+
+
+
+
+

webkit_settings_get_default_charset ()

+
const gchar *
+webkit_settings_get_default_charset (WebKitSettings *settings);
+

Gets the “default-charset” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

Default charset.

+
+
+
+
+

webkit_settings_set_default_charset ()

+
void
+webkit_settings_set_default_charset (WebKitSettings *settings,
+                                     const gchar *default_charset);
+

Set the “default-charset” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

default_charset

default charset to be set

 
+
+
+
+
+

webkit_settings_get_enable_developer_extras ()

+
gboolean
+webkit_settings_get_enable_developer_extras
+                               (WebKitSettings *settings);
+

Get the “enable-developer-extras” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If developer extras is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_developer_extras ()

+
void
+webkit_settings_set_enable_developer_extras
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-developer-extras” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_resizable_text_areas ()

+
gboolean
+webkit_settings_get_enable_resizable_text_areas
+                               (WebKitSettings *settings);
+

Get the “enable-resizable-text-areas” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If text areas can be resized or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_resizable_text_areas ()

+
void
+webkit_settings_set_enable_resizable_text_areas
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-resizable-text-areas” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_tabs_to_links ()

+
gboolean
+webkit_settings_get_enable_tabs_to_links
+                               (WebKitSettings *settings);
+

Get the “enable-tabs-to-links” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If tabs to link is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_tabs_to_links ()

+
void
+webkit_settings_set_enable_tabs_to_links
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-tabs-to-links” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_dns_prefetching ()

+
gboolean
+webkit_settings_get_enable_dns_prefetching
+                               (WebKitSettings *settings);
+

Get the “enable-dns-prefetching” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If DNS prefetching is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_dns_prefetching ()

+
void
+webkit_settings_set_enable_dns_prefetching
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-dns-prefetching” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_caret_browsing ()

+
gboolean
+webkit_settings_get_enable_caret_browsing
+                               (WebKitSettings *settings);
+

Get the “enable-caret-browsing” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If caret browsing is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_caret_browsing ()

+
void
+webkit_settings_set_enable_caret_browsing
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-caret-browsing” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_fullscreen ()

+
gboolean
+webkit_settings_get_enable_fullscreen (WebKitSettings *settings);
+

Get the “enable-fullscreen” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If fullscreen support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_fullscreen ()

+
void
+webkit_settings_set_enable_fullscreen (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-fullscreen” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_print_backgrounds ()

+
gboolean
+webkit_settings_get_print_backgrounds (WebKitSettings *settings);
+

Get the “print-backgrounds” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If background images should be printed or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_print_backgrounds ()

+
void
+webkit_settings_set_print_backgrounds (WebKitSettings *settings,
+                                       gboolean print_backgrounds);
+

Set the “print-backgrounds” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

print_backgrounds

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_webaudio ()

+
gboolean
+webkit_settings_get_enable_webaudio (WebKitSettings *settings);
+

Get the “enable-webaudio” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If webaudio support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_webaudio ()

+
void
+webkit_settings_set_enable_webaudio (WebKitSettings *settings,
+                                     gboolean enabled);
+

Set the “enable-webaudio” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_webgl ()

+
gboolean
+webkit_settings_get_enable_webgl (WebKitSettings *settings);
+

Get the “enable-webgl” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If WebGL support is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_webgl ()

+
void
+webkit_settings_set_enable_webgl (WebKitSettings *settings,
+                                  gboolean enabled);
+

Set the “enable-webgl” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_set_allow_modal_dialogs ()

+
void
+webkit_settings_set_allow_modal_dialogs
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-modal-dialogs” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+
+
+
+

webkit_settings_get_allow_modal_dialogs ()

+
gboolean
+webkit_settings_get_allow_modal_dialogs
+                               (WebKitSettings *settings);
+

Get the “allow-modal-dialogs” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if it's allowed to create and run modal dialogs or FALSE otherwise.

+
+
+
+
+

webkit_settings_get_zoom_text_only ()

+
gboolean
+webkit_settings_get_zoom_text_only (WebKitSettings *settings);
+

Get the “zoom-text-only” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If zoom level of the view should only affect the text +or FALSE if all view contents should be scaled.

+
+
+
+
+

webkit_settings_set_zoom_text_only ()

+
void
+webkit_settings_set_zoom_text_only (WebKitSettings *settings,
+                                    gboolean zoom_text_only);
+

Set the “zoom-text-only” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

zoom_text_only

Value to be set

 
+
+
+
+
+

webkit_settings_get_javascript_can_access_clipboard ()

+
gboolean
+webkit_settings_get_javascript_can_access_clipboard
+                               (WebKitSettings *settings);
+

Get the “javascript-can-access-clipboard” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If javascript-can-access-clipboard is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_javascript_can_access_clipboard ()

+
void
+webkit_settings_set_javascript_can_access_clipboard
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “javascript-can-access-clipboard” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_media_playback_requires_user_gesture ()

+
gboolean
+webkit_settings_get_media_playback_requires_user_gesture
+                               (WebKitSettings *settings);
+

Get the “media-playback-requires-user-gesture” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If an user gesture is needed to play or load media +or FALSE if no user gesture is needed.

+
+
+
+
+

webkit_settings_set_media_playback_requires_user_gesture ()

+
void
+webkit_settings_set_media_playback_requires_user_gesture
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “media-playback-requires-user-gesture” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_media_playback_allows_inline ()

+
gboolean
+webkit_settings_get_media_playback_allows_inline
+                               (WebKitSettings *settings);
+

Get the “media-playback-allows-inline” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If inline playback is allowed for media +or FALSE if only fullscreen playback is allowed.

+
+
+
+
+

webkit_settings_set_media_playback_allows_inline ()

+
void
+webkit_settings_set_media_playback_allows_inline
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “media-playback-allows-inline” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_draw_compositing_indicators ()

+
gboolean
+webkit_settings_get_draw_compositing_indicators
+                               (WebKitSettings *settings);
+

Get the “draw-compositing-indicators” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If compositing borders are drawn or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_draw_compositing_indicators ()

+
void
+webkit_settings_set_draw_compositing_indicators
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “draw-compositing-indicators” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_site_specific_quirks ()

+
gboolean
+webkit_settings_get_enable_site_specific_quirks
+                               (WebKitSettings *settings);
+

Get the “enable-site-specific-quirks” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if site specific quirks are enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_site_specific_quirks ()

+
void
+webkit_settings_set_enable_site_specific_quirks
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-site-specific-quirks” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_page_cache ()

+
gboolean
+webkit_settings_get_enable_page_cache (WebKitSettings *settings);
+

Get the “enable-page-cache” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if page cache enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_page_cache ()

+
void
+webkit_settings_set_enable_page_cache (WebKitSettings *settings,
+                                       gboolean enabled);
+

Set the “enable-page-cache” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_user_agent ()

+
const gchar *
+webkit_settings_get_user_agent (WebKitSettings *settings);
+

Get the “user-agent” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

The current value of the user-agent property.

+
+
+
+
+

webkit_settings_set_user_agent ()

+
void
+webkit_settings_set_user_agent (WebKitSettings *settings,
+                                const gchar *user_agent);
+

Set the “user-agent” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

user_agent

The new custom user agent string or NULL to use the default user agent.

[allow-none]
+
+
+
+
+

webkit_settings_set_user_agent_with_application_details ()

+
void
+webkit_settings_set_user_agent_with_application_details
+                               (WebKitSettings *settings,
+                                const gchar *application_name,
+                                const gchar *application_version);
+

Set the “user-agent” property by appending the application details to the default user +agent. If no application name or version is given, the default user agent used will be used. If only +the version is given, the default engine version is used with the given application name.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

settings

a WebKitSettings

 

application_name

The application name used for the user agent or NULL to use the default user agent.

[allow-none]

application_version

The application version for the user agent or NULL to user the default version.

[allow-none]
+
+
+
+
+

webkit_settings_get_enable_smooth_scrolling ()

+
gboolean
+webkit_settings_get_enable_smooth_scrolling
+                               (WebKitSettings *settings);
+

Get the “enable-smooth-scrolling” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if smooth scrolling is enabled or FALSE otherwise.

+
+
+
+
+

webkit_settings_set_enable_smooth_scrolling ()

+
void
+webkit_settings_set_enable_smooth_scrolling
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-smooth-scrolling” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+
+
+
+

webkit_settings_get_enable_accelerated_2d_canvas ()

+
gboolean
+webkit_settings_get_enable_accelerated_2d_canvas
+                               (WebKitSettings *settings);
+

Get the “enable-accelerated-2d-canvas” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if accelerated 2D canvas is enabled or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_accelerated_2d_canvas ()

+
void
+webkit_settings_set_enable_accelerated_2d_canvas
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-accelerated-2d-canvas” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_write_console_messages_to_stdout ()

+
gboolean
+webkit_settings_get_enable_write_console_messages_to_stdout
+                               (WebKitSettings *settings);
+

Get the “enable-write-console-messages-to-stdout” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if writing console messages to stdout is enabled or FALSE +otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_write_console_messages_to_stdout ()

+
void
+webkit_settings_set_enable_write_console_messages_to_stdout
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-write-console-messages-to-stdout” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_media_stream ()

+
gboolean
+webkit_settings_get_enable_media_stream
+                               (WebKitSettings *settings);
+

Get the “enable-media-stream” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If mediastream support is enabled or FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

webkit_settings_set_enable_media_stream ()

+
void
+webkit_settings_set_enable_media_stream
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-media-stream” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_mock_capture_devices ()

+
gboolean
+webkit_settings_get_enable_mock_capture_devices
+                               (WebKitSettings *settings);
+

Get the “enable-mock-capture-devices” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If mock capture devices is enabled or FALSE otherwise.

+
+

Since: 2.24

+
+
+
+

webkit_settings_set_enable_mock_capture_devices ()

+
void
+webkit_settings_set_enable_mock_capture_devices
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-mock-capture-devices” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_spatial_navigation ()

+
gboolean
+webkit_settings_get_enable_spatial_navigation
+                               (WebKitSettings *settings);
+

Get the “enable-spatial-navigation” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If HTML5 spatial navigation support is enabled or FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

webkit_settings_set_enable_spatial_navigation ()

+
void
+webkit_settings_set_enable_spatial_navigation
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-spatial-navigation” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.2

+
+
+
+

webkit_settings_get_enable_mediasource ()

+
gboolean
+webkit_settings_get_enable_mediasource
+                               (WebKitSettings *settings);
+

Get the “enable-mediasource” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If MediaSource support is enabled or FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

webkit_settings_set_enable_mediasource ()

+
void
+webkit_settings_set_enable_mediasource
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-mediasource” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.4

+
+
+
+

webkit_settings_get_enable_encrypted_media ()

+
gboolean
+webkit_settings_get_enable_encrypted_media
+                               (WebKitSettings *settings);
+

Get the “enable-encrypted-media” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if EncryptedMedia support is enabled or FALSE otherwise.

+
+

Since: 2.20

+
+
+
+

webkit_settings_set_enable_encrypted_media ()

+
void
+webkit_settings_set_enable_encrypted_media
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-encrypted-media” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.20

+
+
+
+

webkit_settings_get_enable_media_capabilities ()

+
gboolean
+webkit_settings_get_enable_media_capabilities
+                               (WebKitSettings *settings);
+

Get the “enable-media-capabilities” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE if MediaCapabilities support is enabled or FALSE otherwise.

+
+

Since: 2.22

+
+
+
+

webkit_settings_set_enable_media_capabilities ()

+
void
+webkit_settings_set_enable_media_capabilities
+                               (WebKitSettings *settings,
+                                gboolean enabled);
+

Set the “enable-media-capabilities” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

enabled

Value to be set

 
+
+

Since: 2.22

+
+
+
+

webkit_settings_get_allow_file_access_from_file_urls ()

+
gboolean
+webkit_settings_get_allow_file_access_from_file_urls
+                               (WebKitSettings *settings);
+

Get the “allow-file-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If file access from file URLs is allowed or FALSE otherwise.

+
+

Since: 2.10

+
+
+
+

webkit_settings_set_allow_file_access_from_file_urls ()

+
void
+webkit_settings_set_allow_file_access_from_file_urls
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-file-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+

Since: 2.10

+
+
+
+

webkit_settings_get_allow_universal_access_from_file_urls ()

+
gboolean
+webkit_settings_get_allow_universal_access_from_file_urls
+                               (WebKitSettings *settings);
+

Get the “allow-universal-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + +

settings

a WebKitSettings

 
+
+
+

Returns

+

TRUE If universal access from file URLs is allowed or FALSE otherwise.

+
+

Since: 2.14

+
+
+
+

webkit_settings_set_allow_universal_access_from_file_urls ()

+
void
+webkit_settings_set_allow_universal_access_from_file_urls
+                               (WebKitSettings *settings,
+                                gboolean allowed);
+

Set the “allow-universal-access-from-file-urls” property.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

settings

a WebKitSettings

 

allowed

Value to be set

 
+
+

Since: 2.14

+
+
+
+

Types and Values

+
+

struct WebKitSettings

+
struct WebKitSettings;
+
+
+
+

Property Details

+
+

The “allow-file-access-from-file-urls” property

+
  “allow-file-access-from-file-urls” gboolean
+

Whether file access is allowed from file URLs. By default, when +something is loaded in a WebKitWebView using a file URI, cross +origin requests to other file resources are not allowed. This +setting allows you to change that behaviour, so that it would be +possible to do a XMLHttpRequest of a local file, for example.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.10

+
+
+
+

The “allow-modal-dialogs” property

+
  “allow-modal-dialogs”      gboolean
+

Determine whether it's allowed to create and run modal dialogs +from a WebKitWebView through JavaScript with +window.showModalDialog. If it's set to +FALSE, the associated WebKitWebView won't be able to create +new modal dialogs, so not even the “create” +signal will be emitted.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “allow-universal-access-from-file-urls” property

+
  “allow-universal-access-from-file-urls” gboolean
+

Whether or not JavaScript running in the context of a file scheme URL +should be allowed to access content from any origin. By default, when +something is loaded in a WebKitWebView using a file scheme URL, +access to the local file system and arbitrary local storage is not +allowed. This setting allows you to change that behaviour, so that +it would be possible to use local storage, for example.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.14

+
+
+
+

The “auto-load-images” property

+
  “auto-load-images”         gboolean
+

Determines whether images should be automatically loaded or not. +On devices where network bandwidth is of concern, it might be +useful to turn this property off.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “cursive-font-family” property

+
  “cursive-font-family”      gchar *
+

The font family used as the default for content using a cursive font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “default-charset” property

+
  “default-charset”          gchar *
+

The default text charset used when interpreting content with an unspecified charset.

+

Flags: Read / Write / Construct

+

Default value: "iso-8859-1"

+
+
+
+

The “default-font-family” property

+
  “default-font-family”      gchar *
+

The font family to use as the default for content that does not specify a font.

+

Flags: Read / Write / Construct

+

Default value: "sans-serif"

+
+
+
+

The “default-font-size” property

+
  “default-font-size”        guint
+

The default font size in pixels to use for content displayed if +no font size is specified.

+

Flags: Read / Write / Construct

+

Default value: 16

+
+
+
+

The “default-monospace-font-size” property

+
  “default-monospace-font-size” guint
+

The default font size in pixels to use for content displayed in +monospace font if no font size is specified.

+

Flags: Read / Write / Construct

+

Default value: 13

+
+
+
+

The “draw-compositing-indicators” property

+
  “draw-compositing-indicators” gboolean
+

Whether to draw compositing borders and repaint counters on layers drawn +with accelerated compositing. This is useful for debugging issues related +to web content that is composited with the GPU.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-accelerated-2d-canvas” property

+
  “enable-accelerated-2d-canvas” gboolean
+

Enable or disable accelerated 2D canvas. Accelerated 2D canvas is only available +if WebKit was compiled with a version of Cairo including the unstable CairoGL API. +When accelerated 2D canvas is enabled, WebKit may render some 2D canvas content +using hardware accelerated drawing operations.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.2

+
+
+
+

The “enable-caret-browsing” property

+
  “enable-caret-browsing”    gboolean
+

Whether to enable accessibility enhanced keyboard navigation.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-developer-extras” property

+
  “enable-developer-extras”  gboolean
+

Determines whether or not developer tools, such as the Web Inspector, are enabled.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-dns-prefetching” property

+
  “enable-dns-prefetching”   gboolean
+

Determines whether or not to prefetch domain names. DNS prefetching attempts +to resolve domain names before a user tries to follow a link.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-encrypted-media” property

+
  “enable-encrypted-media”   gboolean
+

Enable or disable support for Encrypted Media API on pages. +EncryptedMedia is an experimental JavaScript API for playing encrypted media in HTML. +This property will only work as intended if the EncryptedMedia feature is enabled at build time +with the ENABLE_ENCRYPTED_MEDIA flag.

+

See https://www.w3.org/TR/encrypted-media/

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.20

+
+
+
+

The “enable-frame-flattening” property

+
  “enable-frame-flattening”  gboolean
+

Whether to enable the frame flattening. With this setting each subframe is expanded +to its contents, which will flatten all the frames to become one scrollable page. +On touch devices scrollable subframes on a page can result in a confusing user experience.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-fullscreen” property

+
  “enable-fullscreen”        gboolean
+

Whether to enable the Javascript Fullscreen API. The API +allows any HTML element to request fullscreen display. See also +the current draft of the spec: +http://www.w3.org/TR/fullscreen/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-html5-database” property

+
  “enable-html5-database”    gboolean
+

Whether to enable HTML5 client-side SQL database support. Client-side +SQL database allows web pages to store structured data and be able to +use SQL to manipulate that data asynchronously.

+

HTML5 database specification is available at +http://www.w3.org/TR/webdatabase/.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-html5-local-storage” property

+
  “enable-html5-local-storage” gboolean
+

Whether to enable HTML5 local storage support. Local storage provides +simple synchronous storage access.

+

HTML5 local storage specification is available at +http://dev.w3.org/html5/webstorage/.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-hyperlink-auditing” property

+
  “enable-hyperlink-auditing” gboolean
+

Determines whether or not hyperlink auditing is enabled.

+

The hyperlink auditing specification is available at +http://www.whatwg.org/specs/web-apps/current-work/multipage/links.htmlhyperlink-auditing.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-java” property

+
  “enable-java”              gboolean
+

Determines whether or not Java is enabled on the page.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-javascript” property

+
  “enable-javascript”        gboolean
+

Determines whether or not JavaScript executes within a page.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-javascript-markup” property

+
  “enable-javascript-markup” gboolean
+

Determines whether or not JavaScript markup is allowed in document. When this setting is disabled, +all JavaScript-related elements and attributes are removed from the document during parsing. Note that +executing JavaScript is still allowed if “enable-javascript” is TRUE.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+

Since: 2.24

+
+
+
+

The “enable-media-capabilities” property

+
  “enable-media-capabilities” gboolean
+

Enable or disable support for MediaCapabilities on pages. This +specification intends to provide APIs to allow websites to make an optimal +decision when picking media content for the user. The APIs will expose +information about the decoding and encoding capabilities for a given format +but also output capabilities to find the best match based on the device’s +display.

+

See also https://wicg.github.io/media-capabilities/

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.22

+
+
+
+

The “enable-media-stream” property

+
  “enable-media-stream”      gboolean
+

Enable or disable support for MediaStream on pages. MediaStream +is an experimental proposal for allowing web pages to access +audio and video devices for capture.

+

See also http://dev.w3.org/2011/webrtc/editor/getusermedia.html

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.4

+
+
+
+

The “enable-mediasource” property

+
  “enable-mediasource”       gboolean
+

Enable or disable support for MediaSource on pages. MediaSource +extends HTMLMediaElement to allow JavaScript to generate media +streams for playback.

+

See also http://www.w3.org/TR/media-source/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+

Since: 2.4

+
+
+
+

The “enable-mock-capture-devices” property

+
  “enable-mock-capture-devices” gboolean
+

Enable or disable the Mock Capture Devices. Those are fake +Microphone and Camera devices to be used as MediaStream +sources.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.24

+
+
+
+

The “enable-offline-web-application-cache” property

+
  “enable-offline-web-application-cache” gboolean
+

Whether to enable HTML5 offline web application cache support. Offline +web application cache allows web applications to run even when +the user is not connected to the network.

+

HTML5 offline web application specification is available at +http://dev.w3.org/html5/spec/offline.html.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-page-cache” property

+
  “enable-page-cache”        gboolean
+

Enable or disable the page cache. Disabling the page cache is +generally only useful for special circumstances like low-memory +scenarios or special purpose applications like static HTML +viewers. This setting only controls the Page Cache, this cache +is different than the disk-based or memory-based traditional +resource caches, its point is to make going back and forth +between pages much faster. For details about the different types +of caches and their purposes see: +http://webkit.org/blog/427/webkit-page-cache-i-the-basics/

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-plugins” property

+
  “enable-plugins”           gboolean
+

Determines whether or not plugins on the page are enabled.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-resizable-text-areas” property

+
  “enable-resizable-text-areas” gboolean
+

Determines whether or not text areas can be resized.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-site-specific-quirks” property

+
  “enable-site-specific-quirks” gboolean
+

Whether to turn on site-specific quirks. Turning this on will +tell WebKit to use some site-specific workarounds for +better web compatibility. For example, older versions of +MediaWiki will incorrectly send to WebKit a CSS file with KHTML +workarounds. By turning on site-specific quirks, WebKit will +special-case this and other cases to make some specific sites work.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-smooth-scrolling” property

+
  “enable-smooth-scrolling”  gboolean
+

Enable or disable smooth scrolling.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-spatial-navigation” property

+
  “enable-spatial-navigation” gboolean
+

Whether to enable Spatial Navigation. This feature consists in the ability +to navigate between focusable elements in a Web page, such as hyperlinks +and form controls, by using Left, Right, Up and Down arrow keys. +For example, if an user presses the Right key, heuristics determine whether +there is an element they might be trying to reach towards the right, and if +there are multiple elements, which element they probably wants.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.4

+
+
+
+

The “enable-tabs-to-links” property

+
  “enable-tabs-to-links”     gboolean
+

Determines whether the tab key cycles through the elements on the page. +When this setting is enabled, users will be able to focus the next element +in the page by pressing the tab key. If the selected element is editable, +then pressing tab key will insert the tab character.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “enable-webaudio” property

+
  “enable-webaudio”          gboolean
+

Enable or disable support for WebAudio on pages. WebAudio is an +experimental proposal for allowing web pages to generate Audio +WAVE data from JavaScript. The standard is currently a +work-in-progress by the W3C Audio Working Group.

+

See also https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-webgl” property

+
  “enable-webgl”             gboolean
+

Enable or disable support for WebGL on pages. WebGL is an experimental +proposal for allowing web pages to use OpenGL ES-like calls directly. The +standard is currently a work-in-progress by the Khronos Group.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “enable-write-console-messages-to-stdout” property

+
  “enable-write-console-messages-to-stdout” gboolean
+

Enable or disable writing console messages to stdout. These are messages +sent to the console with console.log and related methods.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+

Since: 2.2

+
+
+
+

The “enable-xss-auditor” property

+
  “enable-xss-auditor”       gboolean
+

Whether to enable the XSS auditor. This feature filters some kinds of +reflective XSS attacks on vulnerable web sites.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “fantasy-font-family” property

+
  “fantasy-font-family”      gchar *
+

The font family used as the default for content using a fantasy font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “javascript-can-access-clipboard” property

+
  “javascript-can-access-clipboard” gboolean
+

Whether JavaScript can access the clipboard. The default value is FALSE. If +set to TRUE, document.execCommand() allows cut, copy and paste commands.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “javascript-can-open-windows-automatically” property

+
  “javascript-can-open-windows-automatically” gboolean
+

Whether JavaScript can open popup windows automatically without user +intervention.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “load-icons-ignoring-image-load-setting” property

+
  “load-icons-ignoring-image-load-setting” gboolean
+

Determines whether a site can load favicons irrespective +of the value of “auto-load-images”.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “media-playback-allows-inline” property

+
  “media-playback-allows-inline” gboolean
+

Whether media playback is full-screen only or inline playback is allowed. +This is TRUE by default, so media playback can be inline. Setting it to +FALSE allows specifying that media playback should be always fullscreen.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “media-playback-requires-user-gesture” property

+
  “media-playback-requires-user-gesture” gboolean
+

Whether a user gesture (such as clicking the play button) +would be required to start media playback or load media. This is off +by default, so media playback could start automatically. +Setting it on requires a gesture by the user to start playback, or to +load the media.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+

The “minimum-font-size” property

+
  “minimum-font-size”        guint
+

The minimum font size in pixels used to display text. This setting +controls the absolute smallest size. Values other than 0 can +potentially break page layouts.

+

Flags: Read / Write / Construct

+

Default value: 0

+
+
+
+

The “monospace-font-family” property

+
  “monospace-font-family”    gchar *
+

The font family used as the default for content using a monospace font.

+

Flags: Read / Write / Construct

+

Default value: "monospace"

+
+
+
+

The “pictograph-font-family” property

+
  “pictograph-font-family”   gchar *
+

The font family used as the default for content using a pictograph font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “print-backgrounds” property

+
  “print-backgrounds”        gboolean
+

Whether background images should be drawn during printing.

+

Flags: Read / Write / Construct

+

Default value: TRUE

+
+
+
+

The “sans-serif-font-family” property

+
  “sans-serif-font-family”   gchar *
+

The font family used as the default for content using a sans-serif font.

+

Flags: Read / Write / Construct

+

Default value: "sans-serif"

+
+
+
+

The “serif-font-family” property

+
  “serif-font-family”        gchar *
+

The font family used as the default for content using a serif font.

+

Flags: Read / Write / Construct

+

Default value: "serif"

+
+
+
+

The “user-agent” property

+
  “user-agent”               gchar *
+

The user-agent string used by WebKit. Unusual user-agent strings may cause web +content to render incorrectly or fail to run, as many web pages are written to +parse the user-agent strings of only the most popular browsers. Therefore, it's +typically better to not completely override the standard user-agent, but to use +webkit_settings_set_user_agent_with_application_details() instead.

+

If this property is set to the empty string or NULL, it will revert to the standard +user-agent.

+

Flags: Read / Write / Construct

+

Default value: NULL

+
+
+
+

The “zoom-text-only” property

+
  “zoom-text-only”           gboolean
+

Whether “zoom-level” affects only the +text of the page or all the contents. Other contents containing text +like form controls will be also affected by zoom factor when +this property is enabled.

+

Flags: Read / Write / Construct

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIRequest/index.html new file mode 100644 index 000000000..2507de05c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIRequest/index.html @@ -0,0 +1,289 @@ + + + + +WebKitURIRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIRequest

+

WebKitURIRequest — Represents a URI request

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitURIRequest * + +webkit_uri_request_new () +
const gchar * + +webkit_uri_request_get_uri () +
+void + +webkit_uri_request_set_uri () +
const gchar * + +webkit_uri_request_get_http_method () +
+SoupMessageHeaders * + +webkit_uri_request_get_http_headers () +
+
+
+

Properties

+
+++++ + + + + + +
+gchar *uriRead / Write / Construct
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURIRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURIRequest
+
+
+
+

Description

+

A WebKitURIRequest can be created with a URI using the +webkit_uri_request_new() method, and you can get the URI of an +existing request with the webkit_uri_request_get_uri() one.

+
+
+

Functions

+
+

webkit_uri_request_new ()

+
WebKitURIRequest *
+webkit_uri_request_new (const gchar *uri);
+

Creates a new WebKitURIRequest for the given URI.

+
+

Parameters

+
+++++ + + + + + +

uri

an URI

 
+
+
+

Returns

+

a new WebKitURIRequest

+
+
+
+
+

webkit_uri_request_get_uri ()

+
const gchar *
+webkit_uri_request_get_uri (WebKitURIRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

the uri of the WebKitURIRequest

+
+
+
+
+

webkit_uri_request_set_uri ()

+
void
+webkit_uri_request_set_uri (WebKitURIRequest *request,
+                            const gchar *uri);
+

Set the URI of request +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitURIRequest

 

uri

an URI

 
+
+
+
+
+

webkit_uri_request_get_http_method ()

+
const gchar *
+webkit_uri_request_get_http_method (WebKitURIRequest *request);
+

Get the HTTP method of the WebKitURIRequest.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

the HTTP method of the WebKitURIRequest or NULL if request +is not +an HTTP request.

+
+

Since: 2.12

+
+
+
+

webkit_uri_request_get_http_headers ()

+
SoupMessageHeaders *
+webkit_uri_request_get_http_headers (WebKitURIRequest *request);
+

Get the HTTP headers of a WebKitURIRequest as a SoupMessageHeaders.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURIRequest

 
+
+
+

Returns

+

a SoupMessageHeaders with the HTTP headers of request +or NULL if request +is not an HTTP request.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitURIRequest

+
struct WebKitURIRequest;
+
+
+
+

Property Details

+
+

The “uri” property

+
  “uri”                      gchar *
+

The URI to which the request will be made.

+

Flags: Read / Write / Construct

+

Default value: "about:blank"

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIResponse/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIResponse/index.html new file mode 100644 index 000000000..11b19c1e3 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIResponse/index.html @@ -0,0 +1,397 @@ + + + + +WebKitURIResponse: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIResponse

+

WebKitURIResponse — Represents a URI response

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
guint64content-lengthRead
+SoupMessageHeaders *http-headersRead
+gchar *mime-typeRead
guintstatus-codeRead
+gchar *suggested-filenameRead
+gchar *uriRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURIResponse
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURIResponse
+
+
+
+

Description

+

A WebKitURIResponse contains information such as the URI, the +status code, the content length, the mime type, the HTTP status or +the suggested filename.

+
+
+

Functions

+
+

webkit_uri_response_get_uri ()

+
const gchar *
+webkit_uri_response_get_uri (WebKitURIResponse *response);
+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the uri of the WebKitURIResponse

+
+
+
+
+

webkit_uri_response_get_status_code ()

+
guint
+webkit_uri_response_get_status_code (WebKitURIResponse *response);
+

Get the status code of the WebKitURIResponse as returned by +the server. It will normally be a SoupKnownStatusCode, for +example SOUP_STATUS_OK, though the server can respond with any +unsigned integer.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the status code of response +

+
+
+
+
+

webkit_uri_response_get_content_length ()

+
guint64
+webkit_uri_response_get_content_length
+                               (WebKitURIResponse *response);
+

Get the expected content length of the WebKitURIResponse. It can +be 0 if the server provided an incorrect or missing Content-Length.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the expected content length of response +.

+
+
+
+
+

webkit_uri_response_get_mime_type ()

+
const gchar *
+webkit_uri_response_get_mime_type (WebKitURIResponse *response);
+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the MIME type of the WebKitURIResponse

+
+
+
+
+

webkit_uri_response_get_suggested_filename ()

+
const gchar *
+webkit_uri_response_get_suggested_filename
+                               (WebKitURIResponse *response);
+

Get the suggested filename for response +, as specified by +the 'Content-Disposition' HTTP header, or NULL if it's not +present.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

the suggested filename or NULL if +the 'Content-Disposition' HTTP header is not present.

+

[transfer none]

+
+
+
+
+

webkit_uri_response_get_http_headers ()

+
SoupMessageHeaders *
+webkit_uri_response_get_http_headers (WebKitURIResponse *response);
+

Get the HTTP headers of a WebKitURIResponse as a SoupMessageHeaders.

+
+

Parameters

+
+++++ + + + + + +

response

a WebKitURIResponse

 
+
+
+

Returns

+

a SoupMessageHeaders with the HTTP headers of response +or NULL if response +is not an HTTP response.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

Types and Values

+
+

struct WebKitURIResponse

+
struct WebKitURIResponse;
+
+
+
+

Property Details

+
+

The “content-length” property

+
  “content-length”           guint64
+

The expected content length of the response.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “http-headers” property

+
  “http-headers”             SoupMessageHeaders *
+

The HTTP headers of the response, or NULL if the response is not an HTTP response.

+

Flags: Read

+

Since: 2.6

+
+
+
+

The “mime-type” property

+
  “mime-type”                gchar *
+

The MIME type of the response.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “status-code” property

+
  “status-code”              guint
+

The status code of the response as returned by the server.

+

Flags: Read

+

Default value: 0

+
+
+
+

The “suggested-filename” property

+
  “suggested-filename”       gchar *
+

The suggested filename for the URI response.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The URI for which the response was made.

+

Flags: Read

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURISchemeRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURISchemeRequest/index.html new file mode 100644 index 000000000..65bf20e0d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURISchemeRequest/index.html @@ -0,0 +1,321 @@ + + + + +WebKitURISchemeRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURISchemeRequest

+

WebKitURISchemeRequest — Represents a URI scheme request

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_uri_scheme_request_get_scheme () +
const gchar * + +webkit_uri_scheme_request_get_uri () +
const gchar * + +webkit_uri_scheme_request_get_path () +
+WebKitWebView * + +webkit_uri_scheme_request_get_web_view () +
+void + +webkit_uri_scheme_request_finish () +
+void + +webkit_uri_scheme_request_finish_error () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitURISchemeRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitURISchemeRequest
+
+
+
+

Description

+

If you register a particular URI scheme in a WebKitWebContext, +using webkit_web_context_register_uri_scheme(), you have to provide +a WebKitURISchemeRequestCallback. After that, when a URI request +is made with that particular scheme, your callback will be +called. There you will be able to access properties such as the +scheme, the URI and path, and the WebKitWebView that initiated the +request, and also finish the request with +webkit_uri_scheme_request_finish().

+
+
+

Functions

+
+

webkit_uri_scheme_request_get_scheme ()

+
const gchar *
+webkit_uri_scheme_request_get_scheme (WebKitURISchemeRequest *request);
+

Get the URI scheme of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the URI scheme of request +

+
+
+
+
+

webkit_uri_scheme_request_get_uri ()

+
const gchar *
+webkit_uri_scheme_request_get_uri (WebKitURISchemeRequest *request);
+

Get the URI of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the full URI of request +

+
+
+
+
+

webkit_uri_scheme_request_get_path ()

+
const gchar *
+webkit_uri_scheme_request_get_path (WebKitURISchemeRequest *request);
+

Get the URI path of request +

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the URI path of request +

+
+
+
+
+

webkit_uri_scheme_request_get_web_view ()

+
WebKitWebView *
+webkit_uri_scheme_request_get_web_view
+                               (WebKitURISchemeRequest *request);
+

Get the WebKitWebView that initiated the request.

+
+

Parameters

+
+++++ + + + + + +

request

a WebKitURISchemeRequest

 
+
+
+

Returns

+

the WebKitWebView that initiated request +.

+

[transfer none]

+
+
+
+
+

webkit_uri_scheme_request_finish ()

+
void
+webkit_uri_scheme_request_finish (WebKitURISchemeRequest *request,
+                                  GInputStream *stream,
+                                  gint64 stream_length,
+                                  const gchar *mime_type);
+

Finish a WebKitURISchemeRequest by setting the contents of the request and its mime type.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

request

a WebKitURISchemeRequest

 

stream

a GInputStream to read the contents of the request

 

stream_length

the length of the stream or -1 if not known

 

mime_type

the content type of the stream or NULL if not known.

[allow-none]
+
+
+
+
+

webkit_uri_scheme_request_finish_error ()

+
void
+webkit_uri_scheme_request_finish_error
+                               (WebKitURISchemeRequest *request,
+                                GError *error);
+

Finish a WebKitURISchemeRequest with a GError.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

a WebKitURISchemeRequest

 

error

a GError that will be passed to the WebKitWebView

 
+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WebKitURISchemeRequest

+
struct WebKitURISchemeRequest;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserContentManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserContentManager/index.html new file mode 100644 index 000000000..51f73cf13 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserContentManager/index.html @@ -0,0 +1,655 @@ + + + + +WebKitUserContentManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitUserContentManager

+

WebKitUserContentManager — Manages user-defined content which affects web pages.

+
+ +
+

Signals

+
+++++ + + + + + +
voidscript-message-receivedHas Details
+
+
+

Types and Values

+
++++ + + + + +
structWebKitUserContentManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitUserContentManager
+
+
+
+

Description

+

Using a WebKitUserContentManager user CSS style sheets can be set to +be injected in the web pages loaded by a WebKitWebView, by +webkit_user_content_manager_add_style_sheet().

+

To use a WebKitUserContentManager, it must be created using +webkit_user_content_manager_new(), and then passed to +webkit_web_view_new_with_user_content_manager(). User style +sheets can be created with webkit_user_style_sheet_new().

+

User style sheets can be added and removed at any time, but +they will affect the web pages loaded afterwards.

+
+
+

Functions

+
+

webkit_user_content_manager_new ()

+
WebKitUserContentManager *
+webkit_user_content_manager_new (void);
+

Creates a new user content manager.

+
+

Returns

+

A WebKitUserContentManager

+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_add_style_sheet ()

+
void
+webkit_user_content_manager_add_style_sheet
+                               (WebKitUserContentManager *manager,
+                                WebKitUserStyleSheet *stylesheet);
+

Adds a WebKitUserStyleSheet to the given WebKitUserContentManager. +The same WebKitUserStyleSheet can be reused with multiple +WebKitUserContentManager instances.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

stylesheet

A WebKitUserStyleSheet

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_remove_all_style_sheets ()

+
void
+webkit_user_content_manager_remove_all_style_sheets
+                               (WebKitUserContentManager *manager);
+

Removes all user style sheets from the given WebKitUserContentManager.

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_add_script ()

+
void
+webkit_user_content_manager_add_script
+                               (WebKitUserContentManager *manager,
+                                WebKitUserScript *script);
+

Adds a WebKitUserScript to the given WebKitUserContentManager. +The same WebKitUserScript can be reused with multiple +WebKitUserContentManager instances.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

script

A WebKitUserScript

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_remove_all_scripts ()

+
void
+webkit_user_content_manager_remove_all_scripts
+                               (WebKitUserContentManager *manager);
+

Removes all user scripts from the given WebKitUserContentManager

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.6

+
+
+
+

webkit_user_content_manager_register_script_message_handler ()

+
gboolean
+webkit_user_content_manager_register_script_message_handler
+                               (WebKitUserContentManager *manager,
+                                const gchar *name);
+

Registers a new user script message handler. After it is registered, +scripts can use window.webkit.messageHandlers.&lt;name&gt;.postMessage(value) +to send messages. Those messages are received by connecting handlers +to the “script-message-received” signal. The +handler name is used as the detail of the signal. To avoid race +conditions between registering the handler name, and starting to +receive the signals, it is recommended to connect to the signal +*before* registering the handler name:

+
+ + + + + + + +
1
+2
+3
+4
+5
WebKitWebView *view = webkit_web_view_new ();
+WebKitUserContentManager *manager = webkit_web_view_get_user_content_manager ();
+g_signal_connect (manager, "script-message-received::foobar",
+                  G_CALLBACK (handle_script_message), NULL);
+webkit_user_content_manager_register_script_message_handler (manager, "foobar");
+
+ +

Registering a script message handler will fail if the requested +name has been already registered before.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 
+
+
+

Returns

+

TRUE if message handler was registered successfully, or FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

webkit_user_content_manager_unregister_script_message_handler ()

+
void
+webkit_user_content_manager_unregister_script_message_handler
+                               (WebKitUserContentManager *manager,
+                                const gchar *name);
+

Unregisters a previously registered message handler.

+

Note that this does *not* disconnect handlers for the +“script-message-received” signal; +they will be kept connected, but the signal will not be emitted +unless the handler name is registered again.

+

See also webkit_user_content_manager_register_script_message_handler().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 
+
+

Since: 2.8

+
+
+
+

webkit_user_content_manager_register_script_message_handler_in_world ()

+
gboolean
+webkit_user_content_manager_register_script_message_handler_in_world
+                               (WebKitUserContentManager *manager,
+                                const gchar *name,
+                                const gchar *world_name);
+

Registers a new user script message handler in script world with name world_name +. +See webkit_user_content_manager_register_script_message_handler() for full description.

+

Registering a script message handler will fail if the requested +name has been already registered before.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 

world_name

the name of a WebKitScriptWorld

 
+
+
+

Returns

+

TRUE if message handler was registered successfully, or FALSE otherwise.

+
+

Since: 2.22

+
+
+
+

webkit_user_content_manager_unregister_script_message_handler_in_world ()

+
void
+webkit_user_content_manager_unregister_script_message_handler_in_world
+                               (WebKitUserContentManager *manager,
+                                const gchar *name,
+                                const gchar *world_name);
+

Unregisters a previously registered message handler in script world with name world_name +.

+

Note that this does *not* disconnect handlers for the +“script-message-received” signal; +they will be kept connected, but the signal will not be emitted +unless the handler name is registered again.

+

See also webkit_user_content_manager_register_script_message_handler_in_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

name

Name of the script message channel

 

world_name

the name of a WebKitScriptWorld

 
+
+

Since: 2.22

+
+
+
+

webkit_user_content_manager_add_filter ()

+
void
+webkit_user_content_manager_add_filter
+                               (WebKitUserContentManager *manager,
+                                WebKitUserContentFilter *filter);
+

Adds a WebKitUserContentFilter to the given WebKitUserContentManager. +The same WebKitUserContentFilter can be reused with multiple +WebKitUserContentManager instances.

+

Filters need to be saved and loaded from WebKitUserContentFilterStore.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_manager_remove_filter ()

+
void
+webkit_user_content_manager_remove_filter
+                               (WebKitUserContentManager *manager,
+                                WebKitUserContentFilter *filter);
+

Removes a filter from the given WebKitUserContentManager.

+

Since 2.24

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

manager

A WebKitUserContentManager

 

filter

A WebKitUserContentFilter

 
+
+
+
+
+

webkit_user_content_manager_remove_all_filters ()

+
void
+webkit_user_content_manager_remove_all_filters
+                               (WebKitUserContentManager *manager);
+

Removes all content filters from the given WebKitUserContentManager.

+
+

Parameters

+
+++++ + + + + + +

manager

A WebKitUserContentManager

 
+
+

Since: 2.24

+
+
+
+

Types and Values

+
+

struct WebKitUserContentManager

+
struct WebKitUserContentManager;
+
+
+
+

Signal Details

+
+

The “script-message-received” signal

+
void
+user_function (WebKitUserContentManager *manager,
+               WebKitJavascriptResult   *js_result,
+               gpointer                  user_data)
+

This signal is emitted when JavaScript in a web view calls

+window.webkit.messageHandlers.<name>.postMessage(), after registering +<name> using +

webkit_user_content_manager_register_script_message_handler()

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

the WebKitUserContentManager

 

js_result

the WebKitJavascriptResult holding the value received from the JavaScript world.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Has Details

+

Since: 2.8

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserMediaPermissionRequest/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserMediaPermissionRequest/index.html new file mode 100644 index 000000000..dceea5542 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserMediaPermissionRequest/index.html @@ -0,0 +1,208 @@ + + + + +WebKitUserMediaPermissionRequest: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitUserMediaPermissionRequest

+

WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices.

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanis-for-audio-deviceRead
gbooleanis-for-video-deviceRead
+
+
+

Types and Values

+
++++ + + + + +
structWebKitUserMediaPermissionRequest
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitUserMediaPermissionRequest
+
+
+
+

Implemented Interfaces

+

+WebKitUserMediaPermissionRequest implements + WebKitPermissionRequest.

+
+
+

Description

+

WebKitUserMediaPermissionRequest represents a request for +permission to decide whether WebKit should be allowed to access the user's +audio and video source devices when requested through the getUserMedia API.

+

When a WebKitUserMediaPermissionRequest is not handled by the user, +it is denied by default.

+
+
+

Functions

+
+

webkit_user_media_permission_is_for_audio_device ()

+
gboolean
+webkit_user_media_permission_is_for_audio_device
+                               (WebKitUserMediaPermissionRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitUserMediaPermissionRequest

 
+
+
+

Returns

+

TRUE if access to an audio device was requested.

+
+

Since: 2.8

+
+
+
+

webkit_user_media_permission_is_for_video_device ()

+
gboolean
+webkit_user_media_permission_is_for_video_device
+                               (WebKitUserMediaPermissionRequest *request);
+
+

Parameters

+
+++++ + + + + + +

request

a WebKitUserMediaPermissionRequest

 
+
+
+

Returns

+

TRUE if access to a video device was requested.

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitUserMediaPermissionRequest

+
struct WebKitUserMediaPermissionRequest;
+
+
+
+

Property Details

+
+

The “is-for-audio-device” property

+
  “is-for-audio-device”      gboolean
+

Whether the media device to which the permission was requested has a microphone or not.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “is-for-video-device” property

+
  “is-for-video-device”      gboolean
+

Whether the media device to which the permission was requested has a video capture capability or not.

+

Flags: Read

+

Default value: FALSE

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebContext/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebContext/index.html new file mode 100644 index 000000000..3e3cb36aa --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebContext/index.html @@ -0,0 +1,2204 @@ + + + + +WebKitWebContext: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebContext

+

WebKitWebContext — Manages aspects common to all WebKitWebViews

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebContext * + +webkit_web_context_get_default () +
+WebKitWebContext * + +webkit_web_context_new () +
+WebKitWebContext * + +webkit_web_context_new_ephemeral () +
+WebKitWebContext * + +webkit_web_context_new_with_website_data_manager () +
+gboolean + +webkit_web_context_is_ephemeral () +
+gboolean + +webkit_web_context_is_automation_allowed () +
+void + +webkit_web_context_set_automation_allowed () +
+WebKitWebsiteDataManager * + +webkit_web_context_get_website_data_manager () +
+WebKitCacheModel + +webkit_web_context_get_cache_model () +
+void + +webkit_web_context_set_cache_model () +
+guint + +webkit_web_context_get_web_process_count_limit () +
+void + +webkit_web_context_set_web_process_count_limit () +
+void + +webkit_web_context_clear_cache () +
+void + +webkit_web_context_set_network_proxy_settings () +
+WebKitDownload * + +webkit_web_context_download_uri () +
+WebKitCookieManager * + +webkit_web_context_get_cookie_manager () +
+WebKitFaviconDatabase * + +webkit_web_context_get_favicon_database () +
+void + +webkit_web_context_set_favicon_database_directory () +
const gchar * + +webkit_web_context_get_favicon_database_directory () +
+WebKitSecurityManager * + +webkit_web_context_get_security_manager () +
+void + +webkit_web_context_set_additional_plugins_directory () +
+void + +webkit_web_context_get_plugins () +
+GList * + +webkit_web_context_get_plugins_finish () +
+gboolean + +webkit_web_context_get_spell_checking_enabled () +
+void + +webkit_web_context_set_spell_checking_enabled () +
const gchar * const * + +webkit_web_context_get_spell_checking_languages () +
+void + +webkit_web_context_set_spell_checking_languages () +
+void + +webkit_web_context_set_preferred_languages () +
+void + +webkit_web_context_set_tls_errors_policy () +
+WebKitTLSErrorsPolicy + +webkit_web_context_get_tls_errors_policy () +
+void + +webkit_web_context_set_web_extensions_directory () +
+void + +webkit_web_context_set_web_extensions_initialization_user_data () +
+void + +webkit_web_context_prefetch_dns () +
+void + +webkit_web_context_allow_tls_certificate_for_host () +
+WebKitProcessModel + +webkit_web_context_get_process_model () +
+void + +webkit_web_context_set_process_model () +
+void + +webkit_web_context_initialize_notification_permissions () +
+void + +(*WebKitURISchemeRequestCallback) () +
+void + +webkit_web_context_register_uri_scheme () +
+
+
+

Properties

+
+++++ + + + + + +
+WebKitWebsiteDataManager *website-data-managerRead / Write / Construct Only
+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
structWebKitWebContext
enumWebKitCacheModel
enumWebKitProcessModel
enumWebKitTLSErrorsPolicy
enumWebKitNetworkProxyMode
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebContext
+
+
+
+

Description

+

The WebKitWebContext manages all aspects common to all +WebKitWebViews.

+

You can define the WebKitCacheModel and WebKitProcessModel with +webkit_web_context_set_cache_model() and +webkit_web_context_set_process_model(), depending on the needs of +your application. You can access the WebKitSecurityManager to specify +the behaviour of your application regarding security using +webkit_web_context_get_security_manager().

+

It is also possible to change your preferred language or enable +spell checking, using webkit_web_context_set_preferred_languages(), +webkit_web_context_set_spell_checking_languages() and +webkit_web_context_set_spell_checking_enabled().

+

You can use webkit_web_context_register_uri_scheme() to register +custom URI schemes, and manage several other settings.

+

TLS certificate validation failure is now treated as a transport +error by default. To handle TLS failures differently, you can +connect to “load-failed-with-tls-errors”. +Alternatively, you can use webkit_web_context_set_tls_errors_policy() +to set the policy WEBKIT_TLS_ERRORS_POLICY_IGNORE; however, this is +not appropriate for Internet applications.

+
+
+

Functions

+
+

webkit_web_context_get_default ()

+
WebKitWebContext *
+webkit_web_context_get_default (void);
+

Gets the default web context

+
+

Returns

+

a WebKitWebContext.

+

[transfer none]

+
+
+
+
+

webkit_web_context_new ()

+
WebKitWebContext *
+webkit_web_context_new (void);
+

Create a new WebKitWebContext

+
+

Returns

+

a newly created WebKitWebContext.

+

[transfer full]

+
+

Since: 2.8

+
+
+
+

webkit_web_context_new_ephemeral ()

+
WebKitWebContext *
+webkit_web_context_new_ephemeral (void);
+

Create a new ephemeral WebKitWebContext. An ephemeral WebKitWebContext is a context +created with an ephemeral WebKitWebsiteDataManager. This is just a convenient method +to create ephemeral contexts without having to create your own WebKitWebsiteDataManager. +All WebKitWebViews associated with this context will also be ephemeral. Websites will +not store any data in the client storage. +This is normally used to implement private instances.

+
+

Returns

+

a new ephemeral WebKitWebContext.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_web_context_new_with_website_data_manager ()

+
WebKitWebContext *
+webkit_web_context_new_with_website_data_manager
+                               (WebKitWebsiteDataManager *manager);
+

Create a new WebKitWebContext with a WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

a newly created WebKitWebContext.

+

[transfer full]

+
+

Since: 2.10

+
+
+
+

webkit_web_context_is_ephemeral ()

+
gboolean
+webkit_web_context_is_ephemeral (WebKitWebContext *context);
+

Get whether a WebKitWebContext is ephemeral.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

TRUE if context +is ephemeral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_web_context_is_automation_allowed ()

+
gboolean
+webkit_web_context_is_automation_allowed
+                               (WebKitWebContext *context);
+

Get whether automation is allowed in context +. +See also webkit_web_context_set_automation_allowed().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

TRUE if automation is allowed or FALSE otherwise.

+
+

Since: 2.18

+
+
+
+

webkit_web_context_set_automation_allowed ()

+
void
+webkit_web_context_set_automation_allowed
+                               (WebKitWebContext *context,
+                                gboolean allowed);
+

Set whether automation is allowed in context +. When automation is enabled the browser could +be controlled by another process by requesting an automation session. When a new automation +session is requested the signal “automation-started” is emitted. +Automation is disabled by default, so you need to explicitly call this method passing TRUE +to enable it.

+

Note that only one WebKitWebContext can have automation enabled, so this will do nothing +if there's another WebKitWebContext with automation already enabled.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

allowed

value to set

 
+
+

Since: 2.18

+
+
+
+

webkit_web_context_get_website_data_manager ()

+
WebKitWebsiteDataManager *
+webkit_web_context_get_website_data_manager
+                               (WebKitWebContext *context);
+

Get the WebKitWebsiteDataManager of context +.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

a WebKitWebsiteDataManager.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

webkit_web_context_get_cache_model ()

+
WebKitCacheModel
+webkit_web_context_get_cache_model (WebKitWebContext *context);
+

Returns the current cache model. For more information about this +value check the documentation of the function +webkit_web_context_set_cache_model().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the current WebKitCacheModel

+
+
+
+
+

webkit_web_context_set_cache_model ()

+
void
+webkit_web_context_set_cache_model (WebKitWebContext *context,
+                                    WebKitCacheModel cache_model);
+

Specifies a usage model for WebViews, which WebKit will use to +determine its caching behavior. All web views follow the cache +model. This cache model determines the RAM and disk space to use +for caching previously viewed content .

+

Research indicates that users tend to browse within clusters of +documents that hold resources in common, and to revisit previously +visited documents. WebKit and the frameworks below it include +built-in caches that take advantage of these patterns, +substantially improving document load speed in browsing +situations. The WebKit cache model controls the behaviors of all of +these caches, including various WebCore caches.

+

Browsers can improve document load speed substantially by +specifying WEBKIT_CACHE_MODEL_WEB_BROWSER. Applications without a +browsing interface can reduce memory usage substantially by +specifying WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER. The default value is +WEBKIT_CACHE_MODEL_WEB_BROWSER.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

cache_model

a WebKitCacheModel

 
+
+
+
+
+

webkit_web_context_get_web_process_count_limit ()

+
guint
+webkit_web_context_get_web_process_count_limit
+                               (WebKitWebContext *context);
+

Gets the maximum number of web processes that can be created at the same time for the context +.

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the maximum limit of web processes, or 0 if there isn't a limit.

+
+

Since: 2.10

+
+
+
+

webkit_web_context_set_web_process_count_limit ()

+
void
+webkit_web_context_set_web_process_count_limit
+                               (WebKitWebContext *context,
+                                guint limit);
+

Sets the maximum number of web processes that can be created at the same time for the context +. +The default value is 0 and means no limit.

+

This method **must be called before any web process has been created**, +as early as possible in your application. Calling it later will make +your application crash.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

limit

the maximum number of web processes

 
+
+

Since: 2.10

+
+
+
+

webkit_web_context_clear_cache ()

+
void
+webkit_web_context_clear_cache (WebKitWebContext *context);
+

Clears all resources currently cached. +See also webkit_web_context_set_cache_model().

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+
+
+

webkit_web_context_set_network_proxy_settings ()

+
void
+webkit_web_context_set_network_proxy_settings
+                               (WebKitWebContext *context,
+                                WebKitNetworkProxyMode proxy_mode,
+                                WebKitNetworkProxySettings *proxy_settings);
+

Set the network proxy settings to be used by connections started in context +. +By default WEBKIT_NETWORK_PROXY_MODE_DEFAULT is used, which means that the +system settings will be used (g_proxy_resolver_get_default()). +If you want to override the system default settings, you can either use +WEBKIT_NETWORK_PROXY_MODE_NO_PROXY to make sure no proxies are used at all, +or WEBKIT_NETWORK_PROXY_MODE_CUSTOM to provide your own proxy settings. +When proxy_mode + is WEBKIT_NETWORK_PROXY_MODE_CUSTOM proxy_settings + must be +a valid WebKitNetworkProxySettings; otherwise, proxy_settings + must be NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

proxy_mode

a WebKitNetworkProxyMode

 

proxy_settings

a WebKitNetworkProxySettings, or NULL.

[allow-none]
+
+

Since: 2.16

+
+
+
+

webkit_web_context_download_uri ()

+
WebKitDownload *
+webkit_web_context_download_uri (WebKitWebContext *context,
+                                 const gchar *uri);
+

Requests downloading of the specified URI string. The download operation +will not be associated to any WebKitWebView, if you are interested in +starting a download from a particular WebKitWebView use +webkit_web_view_download_uri() instead.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

uri

the URI to download

 
+
+
+

Returns

+

a new WebKitDownload representing +the download operation.

+

[transfer full]

+
+
+
+
+

webkit_web_context_get_cookie_manager ()

+
WebKitCookieManager *
+webkit_web_context_get_cookie_manager (WebKitWebContext *context);
+

Get the WebKitCookieManager of the context +'s WebKitWebsiteDataManager.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitCookieManager of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_get_favicon_database ()

+
WebKitFaviconDatabase *
+webkit_web_context_get_favicon_database
+                               (WebKitWebContext *context);
+

Get the WebKitFaviconDatabase associated with context +.

+

To initialize the database you need to call +webkit_web_context_set_favicon_database_directory().

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitFaviconDatabase of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_set_favicon_database_directory ()

+
void
+webkit_web_context_set_favicon_database_directory
+                               (WebKitWebContext *context,
+                                const gchar *path);
+

Set the directory path to be used to store the favicons database +for context + on disk. Passing NULL as path + means using the +default directory for the platform (see g_get_user_cache_dir()).

+

Calling this method also means enabling the favicons database for +its use from the applications, so that's why it's expected to be +called only once. Further calls for the same instance of +WebKitWebContext won't cause any effect.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

path

an absolute path to the icon database +directory or NULL to use the defaults.

[allow-none]
+
+
+
+
+

webkit_web_context_get_favicon_database_directory ()

+
const gchar *
+webkit_web_context_get_favicon_database_directory
+                               (WebKitWebContext *context);
+

Get the directory path being used to store the favicons database +for context +, or NULL if +webkit_web_context_set_favicon_database_directory() hasn't been +called yet.

+

This function will always return the same path after having called +webkit_web_context_set_favicon_database_directory() for the first +time.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the path of the directory of the favicons +database associated with context +, or NULL.

+

[transfer none]

+
+
+
+
+

webkit_web_context_get_security_manager ()

+
WebKitSecurityManager *
+webkit_web_context_get_security_manager
+                               (WebKitWebContext *context);
+

Get the WebKitSecurityManager of context +.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

the WebKitSecurityManager of context +.

+

[transfer none]

+
+
+
+
+

webkit_web_context_set_additional_plugins_directory ()

+
void
+webkit_web_context_set_additional_plugins_directory
+                               (WebKitWebContext *context,
+                                const gchar *directory);
+

Set an additional directory where WebKit will look for plugins.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

directory

the directory to add

 
+
+
+
+
+

webkit_web_context_get_plugins ()

+
void
+webkit_web_context_get_plugins (WebKitWebContext *context,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously get the list of installed plugins.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_context_get_plugins_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_context_get_plugins_finish ()

+
GList *
+webkit_web_context_get_plugins_finish (WebKitWebContext *context,
+                                       GAsyncResult *result,
+                                       GError **error);
+

Finish an asynchronous operation started with webkit_web_context_get_plugins.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GList of WebKitPlugin. You must free the GList with +g_list_free() and unref the WebKitPlugins with g_object_unref() when you're done with them.

+

[element-type WebKitPlugin][transfer full]

+
+
+
+
+

webkit_web_context_get_spell_checking_enabled ()

+
gboolean
+webkit_web_context_get_spell_checking_enabled
+                               (WebKitWebContext *context);
+

Get whether spell checking feature is currently enabled.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

TRUE If spell checking is enabled, or FALSE otherwise.

+
+
+
+
+

webkit_web_context_set_spell_checking_enabled ()

+
void
+webkit_web_context_set_spell_checking_enabled
+                               (WebKitWebContext *context,
+                                gboolean enabled);
+

Enable or disable the spell checking feature.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

enabled

Value to be set

 
+
+
+
+
+

webkit_web_context_get_spell_checking_languages ()

+
const gchar * const *
+webkit_web_context_get_spell_checking_languages
+                               (WebKitWebContext *context);
+

Get the the list of spell checking languages associated with +context +, or NULL if no languages have been previously set.

+

See webkit_web_context_set_spell_checking_languages() for more +details on the format of the languages in the list.

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

A NULL-terminated +array of languages if available, or NULL otherwise.

+

[array zero-terminated=1][element-type utf8][transfer none]

+
+
+
+
+

webkit_web_context_set_spell_checking_languages ()

+
void
+webkit_web_context_set_spell_checking_languages
+                               (WebKitWebContext *context,
+                                const gchar * const *languages);
+

Set the list of spell checking languages to be used for spell +checking.

+

The locale string typically is in the form lang_COUNTRY, where lang +is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. +For instance, sv_FI for Swedish as written in Finland or pt_BR +for Portuguese as written in Brazil.

+

You need to call this function with a valid list of languages at +least once in order to properly enable the spell checking feature +in WebKit.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

languages

a NULL-terminated list of spell checking languages.

[array zero-terminated=1][transfer none]
+
+
+
+
+

webkit_web_context_set_preferred_languages ()

+
void
+webkit_web_context_set_preferred_languages
+                               (WebKitWebContext *context,
+                                const gchar * const *languages);
+

Set the list of preferred languages, sorted from most desirable +to least desirable. The list will be used to build the "Accept-Language" +header that will be included in the network requests started by +the WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

languages

a NULL-terminated list of language identifiers.

[allow-none][array zero-terminated=1][element-type utf8][transfer none]
+
+
+
+
+

webkit_web_context_set_tls_errors_policy ()

+
void
+webkit_web_context_set_tls_errors_policy
+                               (WebKitWebContext *context,
+                                WebKitTLSErrorsPolicy policy);
+

Set the TLS errors policy of context + as policy +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

policy

a WebKitTLSErrorsPolicy

 
+
+
+
+
+

webkit_web_context_get_tls_errors_policy ()

+
WebKitTLSErrorsPolicy
+webkit_web_context_get_tls_errors_policy
+                               (WebKitWebContext *context);
+

Get the TLS errors policy of context +

+
+

Parameters

+
+++++ + + + + + +

context

a WebKitWebContext

 
+
+
+

Returns

+

a WebKitTLSErrorsPolicy

+
+
+
+
+

webkit_web_context_set_web_extensions_directory ()

+
void
+webkit_web_context_set_web_extensions_directory
+                               (WebKitWebContext *context,
+                                const gchar *directory);
+

Set the directory where WebKit will look for Web Extensions. +This method must be called before loading anything in this context, +otherwise it will not have any effect. You can connect to +“initialize-web-extensions” to call this method +before anything is loaded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

directory

the directory to add

 
+
+
+
+
+

webkit_web_context_set_web_extensions_initialization_user_data ()

+
void
+webkit_web_context_set_web_extensions_initialization_user_data
+                               (WebKitWebContext *context,
+                                GVariant *user_data);
+

Set user data to be passed to Web Extensions on initialization. +The data will be passed to the +WebKitWebExtensionInitializeWithUserDataFunction. +This method must be called before loading anything in this context, +otherwise it will not have any effect. You can connect to +“initialize-web-extensions” to call this method +before anything is loaded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

user_data

a GVariant

 
+
+

Since: 2.4

+
+
+
+

webkit_web_context_prefetch_dns ()

+
void
+webkit_web_context_prefetch_dns (WebKitWebContext *context,
+                                 const gchar *hostname);
+

Resolve the domain name of the given hostname + in advance, so that if a URI +of hostname + is requested the load will be performed more quickly.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

a WebKitWebContext

 

hostname

a hostname to be resolved

 
+
+
+
+
+

webkit_web_context_allow_tls_certificate_for_host ()

+
void
+webkit_web_context_allow_tls_certificate_for_host
+                               (WebKitWebContext *context,
+                                GTlsCertificate *certificate,
+                                const gchar *host);
+

Ignore further TLS errors on the host + for the certificate present in info +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

certificate

a GTlsCertificate

 

host

the host for which a certificate is to be allowed

 
+
+

Since: 2.6

+
+
+
+

webkit_web_context_get_process_model ()

+
WebKitProcessModel
+webkit_web_context_get_process_model (WebKitWebContext *context);
+

Returns the current process model. For more information about this value +see webkit_web_context_set_process_model().

+
+

Parameters

+
+++++ + + + + + +

context

the WebKitWebContext

 
+
+
+

Returns

+

the current WebKitProcessModel

+
+

Since: 2.4

+
+
+
+

webkit_web_context_set_process_model ()

+
void
+webkit_web_context_set_process_model (WebKitWebContext *context,
+                                      WebKitProcessModel process_model);
+

Specifies a process model for WebViews, which WebKit will use to +determine how auxiliary processes are handled. The default setting +(WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS) is suitable for most +applications which embed a small amount of WebViews, or are used to +display documents which are considered safe — like local files.

+

Applications which may potentially use a large amount of WebViews +—for example a multi-tabbed web browser— may want to use +WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES, which will use +one process per view most of the time, while still allowing for web +views to share a process when needed (for example when different +views interact with each other). Using this model, when a process +hangs or crashes, only the WebViews using it stop working, while +the rest of the WebViews in the application will still function +normally.

+

This method **must be called before any web process has been created**, +as early as possible in your application. Calling it later will make +your application crash.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

process_model

a WebKitProcessModel

 
+
+

Since: 2.4

+
+
+
+

webkit_web_context_initialize_notification_permissions ()

+
void
+webkit_web_context_initialize_notification_permissions
+                               (WebKitWebContext *context,
+                                GList *allowed_origins,
+                                GList *disallowed_origins);
+

Sets initial desktop notification permissions for the context +. +allowed_origins + and disallowed_origins + must each be GList of +WebKitSecurityOrigin objects representing origins that will, +respectively, either always or never have permission to show desktop +notifications. No WebKitNotificationPermissionRequest will ever be +generated for any of the security origins represented in +allowed_origins + or disallowed_origins +. This function is necessary +because some webpages proactively check whether they have permission +to display notifications without ever creating a permission request.

+

This function only affects web processes that have not already been +created. The best time to call it is when handling +“initialize-notification-permissions” so as to +ensure that new web processes receive the most recent set of +permissions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

allowed_origins

a GList of security origins.

[element-type WebKitSecurityOrigin]

disallowed_origins

a GList of security origins.

[element-type WebKitSecurityOrigin]
+
+

Since: 2.16

+
+
+
+

WebKitURISchemeRequestCallback ()

+
void
+(*WebKitURISchemeRequestCallback) (WebKitURISchemeRequest *request,
+                                   gpointer user_data);
+

Type definition for a function that will be called back when an URI request is +made for a user registered URI scheme.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

request

the WebKitURISchemeRequest

 

user_data

user data passed to the callback

 
+
+
+
+
+

webkit_web_context_register_uri_scheme ()

+
void
+webkit_web_context_register_uri_scheme
+                               (WebKitWebContext *context,
+                                const gchar *scheme,
+                                WebKitURISchemeRequestCallback callback,
+                                gpointer user_data,
+                                GDestroyNotify user_data_destroy_func);
+

Register scheme + in context +, so that when an URI request with scheme + is made in the +WebKitWebContext, the WebKitURISchemeRequestCallback registered will be called with a +WebKitURISchemeRequest. +It is possible to handle URI scheme requests asynchronously, by calling g_object_ref() on the +WebKitURISchemeRequest and calling webkit_uri_scheme_request_finish() later +when the data of the request is available or +webkit_uri_scheme_request_finish_error() in case of error.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
static void
+about_uri_scheme_request_cb (WebKitURISchemeRequest *request,
+                             gpointer                user_data)
+{
+    GInputStream *stream;
+    gsize         stream_length;
+    const gchar  *path;
+
+    path = webkit_uri_scheme_request_get_path (request);
+    if (!g_strcmp0 (path, "plugins")) {
+        /* Create a GInputStream with the contents of plugins about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "memory")) {
+        /* Create a GInputStream with the contents of memory about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "applications")) {
+        /* Create a GInputStream with the contents of applications about page, and set its length to stream_length */
+    } else if (!g_strcmp0 (path, "example")) {
+        gchar *contents;
+
+        contents = g_strdup_printf ("<html><body><p>Example about page</p></body></html>");
+        stream_length = strlen (contents);
+        stream = g_memory_input_stream_new_from_data (contents, stream_length, g_free);
+    } else {
+        GError *error;
+
+        error = g_error_new (ABOUT_HANDLER_ERROR, ABOUT_HANDLER_ERROR_INVALID, "Invalid about:%s page.", path);
+        webkit_uri_scheme_request_finish_error (request, error);
+        g_error_free (error);
+        return;
+    }
+    webkit_uri_scheme_request_finish (request, stream, stream_length, "text/html");
+    g_object_unref (stream);
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

context

a WebKitWebContext

 

scheme

the network scheme to register

 

callback

a WebKitURISchemeRequestCallback.

[scope async]

user_data

data to pass to callback function

 

user_data_destroy_func

destroy notify for user_data +

 
+
+
+
+
+

Types and Values

+
+

struct WebKitWebContext

+
struct WebKitWebContext;
+
+
+
+

enum WebKitCacheModel

+

Enum values used for determining the WebKitWebContext cache model.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER

+

Disable the cache completely, which + substantially reduces memory usage. Useful for applications that only + access a single local file, with no navigation to other pages. No remote + resources will be cached.

+
 

WEBKIT_CACHE_MODEL_WEB_BROWSER

+

Improve document load speed substantially + by caching a very large number of resources and previously viewed content.

+
 

WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER

+

A cache model optimized for viewing + a series of local files -- for example, a documentation viewer or a website + designer. WebKit will cache a moderate number of resources.

+
 
+
+
+
+
+

enum WebKitProcessModel

+

Enum values used for determining the WebKitWebContext process model.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS

+

Use a single process to + perform content rendering. The process is shared among all the + WebKitWebView instances created by the application: if the process + hangs or crashes all the web views in the application will be affected. + This is the default process model, and it should suffice for most cases.

+
 

WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES

+

Use one process + for each WebKitWebView, while still allowing for some of them to + share a process in certain situations. The main advantage + of this process model is that the rendering process for a web view + can crash while the rest of the views keep working normally. This + process model is indicated for applications which may use a number + of web views and the content of in each must not interfere with the + rest — for example a full-fledged web browser with support for + multiple tabs.

+
 
+
+

Since: 2.4

+
+
+
+

enum WebKitTLSErrorsPolicy

+

Enum values used to denote the TLS errors policy.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_TLS_ERRORS_POLICY_IGNORE

+

Ignore TLS errors.

+
 

WEBKIT_TLS_ERRORS_POLICY_FAIL

+

TLS errors will emit + “load-failed-with-tls-errors” and, if the signal is handled, + finish the load. In case the signal is not handled, + “load-failed” is emitted before the load finishes.

+
 
+
+
+
+
+

enum WebKitNetworkProxyMode

+

Enum values used to set the network proxy mode.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_NETWORK_PROXY_MODE_DEFAULT

+

Use the default proxy of the system.

+
 

WEBKIT_NETWORK_PROXY_MODE_NO_PROXY

+

Do not use any proxy.

+
 

WEBKIT_NETWORK_PROXY_MODE_CUSTOM

+

Use custom proxy settings.

+
 
+
+

Since: 2.16

+
+
+
+

Property Details

+
+

The “website-data-manager” property

+
  “website-data-manager”     WebKitWebsiteDataManager *
+

The WebKitWebsiteDataManager associated with this context.

+

Flags: Read / Write / Construct Only

+

Since: 2.10

+
+
+
+

Signal Details

+
+

The “automation-started” signal

+
void
+user_function (WebKitWebContext        *context,
+               WebKitAutomationSession *session,
+               gpointer                 user_data)
+

This signal is emitted when a new automation request is made. +Note that it will never be emitted if automation is not enabled in context +, +see webkit_web_context_set_automation_allowed() for more details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

session

the WebKitAutomationSession associated with this event

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.18

+
+
+
+

The “download-started” signal

+
void
+user_function (WebKitWebContext *context,
+               WebKitDownload   *download,
+               gpointer          user_data)
+

This signal is emitted when a new download request is made.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

context

the WebKitWebContext

 

download

the WebKitDownload associated with this event

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “initialize-notification-permissions” signal

+
void
+user_function (WebKitWebContext *context,
+               gpointer          user_data)
+

This signal is emitted when a WebKitWebContext needs to set +initial notification permissions for a web process. It is emitted +when a new web process is about to be launched, and signals the +most appropriate moment to use +webkit_web_context_initialize_notification_permissions(). If no +notification permissions have changed since the last time this +signal was emitted, then there is no need to call +webkit_web_context_initialize_notification_permissions() again.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.16

+
+
+
+

The “initialize-web-extensions” signal

+
void
+user_function (WebKitWebContext *context,
+               gpointer          user_data)
+

This signal is emitted when a new web process is about to be +launched. It signals the most appropriate moment to use +webkit_web_context_set_web_extensions_initialization_user_data() +and webkit_web_context_set_web_extensions_directory().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

context

the WebKitWebContext

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.4

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebResource/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebResource/index.html new file mode 100644 index 000000000..a7bd6c25e --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebResource/index.html @@ -0,0 +1,587 @@ + + + + +WebKitWebResource: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebResource

+

WebKitWebResource — Represents a resource at the end of a URI

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + +
const gchar * + +webkit_web_resource_get_uri () +
+WebKitURIResponse * + +webkit_web_resource_get_response () +
+void + +webkit_web_resource_get_data () +
+guchar * + +webkit_web_resource_get_data_finish () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
+WebKitURIResponse *responseRead
+gchar *uriRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidfailedRun Last
voidfailed-with-tls-errorsRun Last
voidfinishedRun Last
voidreceived-dataRun Last
voidsent-requestRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebResource
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebResource
+
+
+
+

Description

+

A WebKitWebResource encapsulates content for each resource at the +end of a particular URI. For example, one WebKitWebResource will +be created for each separate image and stylesheet when a page is +loaded.

+

You can access the response and the URI for a given +WebKitWebResource, using webkit_web_resource_get_uri() and +webkit_web_resource_get_response(), as well as the raw data, using +webkit_web_resource_get_data().

+
+
+

Functions

+
+

webkit_web_resource_get_uri ()

+
const gchar *
+webkit_web_resource_get_uri (WebKitWebResource *resource);
+

Returns the current active URI of resource +. The active URI might change during +a load operation:

+
    +
  1. + When the resource load starts, the active URI is the requested URI +

  2. +
  3. + When the initial request is sent to the server, “sent-request” + signal is emitted without a redirected response, the active URI is the URI of + the request sent to the server. +

  4. +
  5. + In case of a server redirection, “sent-request” signal + is emitted again with a redirected response, the active URI is the URI the request + was redirected to. +

  6. +
  7. + When the response is received from the server, the active URI is the final + one and it will not change again. +

  8. +
+

You can monitor the active URI by connecting to the notify::uri +signal of resource +.

+
+

Parameters

+
+++++ + + + + + +

resource

a WebKitWebResource

 
+
+
+

Returns

+

the current active URI of resource +

+
+
+
+
+

webkit_web_resource_get_response ()

+
WebKitURIResponse *
+webkit_web_resource_get_response (WebKitWebResource *resource);
+

Retrieves the WebKitURIResponse of the resource load operation. +This method returns NULL if called before the response +is received from the server. You can connect to notify::response +signal to be notified when the response is received.

+
+

Parameters

+
+++++ + + + + + +

resource

a WebKitWebResource

 
+
+
+

Returns

+

the WebKitURIResponse, or NULL if +the response hasn't been received yet.

+

[transfer none]

+
+
+
+
+

webkit_web_resource_get_data ()

+
void
+webkit_web_resource_get_data (WebKitWebResource *resource,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously get the raw data for resource +.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_resource_get_data_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

a WebKitWebResource

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_resource_get_data_finish ()

+
guchar *
+webkit_web_resource_get_data_finish (WebKitWebResource *resource,
+                                     GAsyncResult *result,
+                                     gsize *length,
+                                     GError **error);
+

Finish an asynchronous operation started with webkit_web_resource_get_data().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

a WebKitWebResource

 

result

a GAsyncResult

 

length

return location for the length of the resource data.

[out][allow-none]

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a +string with the data of resource +, or NULL in case of error. if length +is not NULL, the size of the data will be assigned to it.

+

[transfer full][array length=length][element-type guint8]

+
+
+
+
+

Types and Values

+
+

struct WebKitWebResource

+
struct WebKitWebResource;
+
+
+
+

Property Details

+
+

The “response” property

+
  “response”                 WebKitURIResponse *
+

The WebKitURIResponse associated with this resource.

+

Flags: Read

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebResource. +See webkit_web_resource_get_uri() for more details.

+

Flags: Read

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “failed” signal

+
void
+user_function (WebKitWebResource *resource,
+               GError            *error,
+               gpointer           user_data)
+

This signal is emitted when an error occurs during the resource +load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “failed-with-tls-errors” signal

+
void
+user_function (WebKitWebResource   *resource,
+               GTlsCertificate     *certificate,
+               GTlsCertificateFlags errors,
+               gpointer             user_data)
+

This signal is emitted when a TLS error occurs during the resource load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

certificate

a GTlsCertificate

 

errors

a GTlsCertificateFlags with the verification status of certificate +

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “finished” signal

+
void
+user_function (WebKitWebResource *resource,
+               gpointer           user_data)
+

This signal is emitted when the resource load finishes successfully +or due to an error. In case of errors “failed” signal +is emitted before this one.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

resource

the WebKitWebResource

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “received-data” signal

+
void
+user_function (WebKitWebResource *resource,
+               guint64            data_length,
+               gpointer           user_data)
+

This signal is emitted after response is received, +every time new data has been received. It's +useful to know the progress of the resource load operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

data_length

the length of data received in bytes

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “sent-request” signal

+
void
+user_function (WebKitWebResource *resource,
+               WebKitURIRequest  *request,
+               WebKitURIResponse *redirected_response,
+               gpointer           user_data)
+

This signal is emitted when request + has been sent to the +server. In case of a server redirection this signal is +emitted again with the request + argument containing the new +request sent to the server due to the redirection and the +redirected_response + parameter containing the response +received by the server for the initial request.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

resource

the WebKitWebResource

 

request

a WebKitURIRequest

 

redirected_response

a WebKitURIResponse, or NULL

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebView/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebView/index.html new file mode 100644 index 000000000..f0a793a04 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebView/index.html @@ -0,0 +1,5724 @@ + + + + +WebKitWebView: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebView

+

WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +(*WebKitFrameDisplayedCallback) () +
+WebKitWebView * + +webkit_web_view_new () +
+WebKitWebView * + +webkit_web_view_new_with_context () +
+WebKitWebView * + +webkit_web_view_new_with_related_view () +
+WebKitWebView * + +webkit_web_view_new_with_settings () +
+WebKitWebView * + +webkit_web_view_new_with_user_content_manager () +
+WebKitWebViewBackend * + +webkit_web_view_get_backend () +
+gboolean + +webkit_web_view_is_ephemeral () +
+gboolean + +webkit_web_view_is_controlled_by_automation () +
+WebKitWebContext * + +webkit_web_view_get_context () +
+WebKitUserContentManager * + +webkit_web_view_get_user_content_manager () +
+WebKitWebsiteDataManager * + +webkit_web_view_get_website_data_manager () +
+void + +webkit_web_view_try_close () +
+void + +webkit_web_view_load_uri () +
+void + +webkit_web_view_load_html () +
+void + +webkit_web_view_load_alternate_html () +
+void + +webkit_web_view_load_plain_text () +
+void + +webkit_web_view_load_bytes () +
+void + +webkit_web_view_load_request () +
+gboolean + +webkit_web_view_can_go_back () +
+void + +webkit_web_view_go_back () +
+gboolean + +webkit_web_view_can_go_forward () +
+void + +webkit_web_view_go_forward () +
const gchar * + +webkit_web_view_get_title () +
+guint64 + +webkit_web_view_get_page_id () +
+void + +webkit_web_view_reload () +
+void + +webkit_web_view_reload_bypass_cache () +
+void + +webkit_web_view_stop_loading () +
+gboolean + +webkit_web_view_is_loading () +
+gboolean + +webkit_web_view_is_playing_audio () +
+gdouble + +webkit_web_view_get_estimated_load_progress () +
const gchar * + +webkit_web_view_get_custom_charset () +
+void + +webkit_web_view_set_custom_charset () +
+WebKitBackForwardList * + +webkit_web_view_get_back_forward_list () +
+void + +webkit_web_view_go_to_back_forward_list_item () +
const gchar * + +webkit_web_view_get_uri () +
+void + +webkit_web_view_set_settings () +
+WebKitSettings * + +webkit_web_view_get_settings () +
+WebKitWindowProperties * + +webkit_web_view_get_window_properties () +
+void + +webkit_web_view_set_zoom_level () +
+gdouble + +webkit_web_view_get_zoom_level () +
+void + +webkit_web_view_can_execute_editing_command () +
+gboolean + +webkit_web_view_can_execute_editing_command_finish () +
+void + +webkit_web_view_execute_editing_command () +
+void + +webkit_web_view_execute_editing_command_with_argument () +
+WebKitFindController * + +webkit_web_view_get_find_controller () +
+void + +webkit_web_view_run_javascript () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_finish () +
+void + +webkit_web_view_run_javascript_in_world () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_in_world_finish () +
+void + +webkit_web_view_run_javascript_from_gresource () +
+WebKitJavascriptResult * + +webkit_web_view_run_javascript_from_gresource_finish () +
+gboolean + +webkit_web_view_can_show_mime_type () +
+void + +webkit_web_view_save () +
+GInputStream * + +webkit_web_view_save_finish () +
+void + +webkit_web_view_save_to_file () +
+gboolean + +webkit_web_view_save_to_file_finish () +
+WebKitDownload * + +webkit_web_view_download_uri () +
+gboolean + +webkit_web_view_get_tls_info () +
+void + +webkit_web_view_set_editable () +
+gboolean + +webkit_web_view_is_editable () +
+WebKitEditorState * + +webkit_web_view_get_editor_state () +
+WebKitWebViewSessionState * + +webkit_web_view_get_session_state () +
+void + +webkit_web_view_restore_session_state () +
+WebKitWebResource * + +webkit_web_view_get_main_resource () +
+guint + +webkit_web_view_add_frame_displayed_callback () +
+void + +webkit_web_view_remove_frame_displayed_callback () +
+WebKitJavascriptResult * + +webkit_javascript_result_ref () +
+void + +webkit_javascript_result_unref () +
+JSCValue * + +webkit_javascript_result_get_js_value () +
+WebKitScriptDialog * + +webkit_script_dialog_ref () +
+void + +webkit_script_dialog_unref () +
+WebKitScriptDialogType + +webkit_script_dialog_get_dialog_type () +
const gchar * + +webkit_script_dialog_get_message () +
+void + +webkit_script_dialog_confirm_set_confirmed () +
const gchar * + +webkit_script_dialog_prompt_get_default_text () +
+void + +webkit_script_dialog_prompt_set_text () +
+void + +webkit_script_dialog_close () +
+WebKitWebViewSessionState * + +webkit_web_view_session_state_new () +
+WebKitWebViewSessionState * + +webkit_web_view_session_state_ref () +
+void + +webkit_web_view_session_state_unref () +
+GBytes * + +webkit_web_view_session_state_serialize () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebViewBackend *backendRead / Write / Construct Only
gbooleaneditableRead / Write
gdoubleestimated-load-progressRead
gbooleanis-controlled-by-automationRead / Write / Construct Only
gbooleanis-ephemeralRead / Write / Construct Only
gbooleanis-loadingRead
gbooleanis-playing-audioRead
+WebKitWebView *related-viewWrite / Construct Only
+WebKitSettings *settingsWrite / Construct
+gchar *titleRead
+gchar *uriRead
+WebKitUserContentManager *user-content-managerRead / Write / Construct Only
+WebKitWebContext *web-contextRead / Write / Construct Only
gdoublezoom-levelRead / Write
+
+ + +
+

Object Hierarchy

+
    GBoxed
+    ├── WebKitJavascriptResult
+    ├── WebKitScriptDialog
+    ╰── WebKitWebViewSessionState
+    GObject
+    ╰── WebKitWebView
+
+
+
+

Description

+

WebKitWebView is the central class of the WPE WebKit and WebKitGTK +APIs. It is responsible for managing the drawing of the content and +forwarding of events. You can load any URI into the WebKitWebView or +a data string. With WebKitSettings you can control various aspects +of the rendering and loading of the content.

+

Note that in WebKitGTK, WebKitWebView is scrollable by itself, so +you don't need to embed it in a GtkScrolledWindow.

+
+
+

Functions

+
+

WebKitFrameDisplayedCallback ()

+
void
+(*WebKitFrameDisplayedCallback) (WebKitWebView *web_view,
+                                 gpointer user_data);
+

Callback to be called when a frame is displayed in a webKitWebView.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

user_data

user data

 
+
+

Since: 2.24

+
+
+
+

webkit_web_view_new ()

+
WebKitWebView *
+webkit_web_view_new (WebKitWebViewBackend *backend);
+
+
+
+

webkit_web_view_new_with_context ()

+
WebKitWebView *
+webkit_web_view_new_with_context (WebKitWebViewBackend *backend,
+                                  WebKitWebContext *context);
+
+
+
+

webkit_web_view_new_with_related_view ()

+
WebKitWebView *
+webkit_web_view_new_with_related_view (WebKitWebViewBackend *backend,
+                                       WebKitWebView *web_view);
+
+
+
+

webkit_web_view_new_with_settings ()

+
WebKitWebView *
+webkit_web_view_new_with_settings (WebKitWebViewBackend *backend,
+                                   WebKitSettings *settings);
+
+
+
+

webkit_web_view_new_with_user_content_manager ()

+
WebKitWebView *
+webkit_web_view_new_with_user_content_manager
+                               (WebKitWebViewBackend *backend,
+                                WebKitUserContentManager *user_content_manager);
+
+
+
+

webkit_web_view_get_backend ()

+
WebKitWebViewBackend *
+webkit_web_view_get_backend (WebKitWebView *web_view);
+

Get the WebKitWebViewBackend of web_view +

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWebViewBackend of web_view +.

+

[transfer none]

+
+

Since: 2.20

+
+
+
+

webkit_web_view_is_ephemeral ()

+
gboolean
+webkit_web_view_is_ephemeral (WebKitWebView *web_view);
+

Get whether a WebKitWebView is ephemeral. To create an ephemeral WebKitWebView you need to +use g_object_new() and pass is-ephemeral property with TRUE value. See +“is-ephemeral” for more details. +If web_view + was created with a ephemeral “related-view” or an +ephemeral “web-context” it will also be ephemeral.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is ephemeral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_web_view_is_controlled_by_automation ()

+
gboolean
+webkit_web_view_is_controlled_by_automation
+                               (WebKitWebView *web_view);
+

Get whether a WebKitWebView was created with “is-controlled-by-automation” +property enabled. Only WebKitWebViews controlled by automation can be used in an +automation session.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is controlled by automation, or FALSE otherwise.

+
+

Since: 2.18

+
+
+
+

webkit_web_view_get_context ()

+
WebKitWebContext *
+webkit_web_view_get_context (WebKitWebView *web_view);
+

Gets the web context of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWebContext of the view.

+

[transfer none]

+
+
+
+
+

webkit_web_view_get_user_content_manager ()

+
WebKitUserContentManager *
+webkit_web_view_get_user_content_manager
+                               (WebKitWebView *web_view);
+

Gets the user content manager associated to web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitUserContentManager associated with the view.

+

[transfer none]

+
+

Since: 2.6

+
+
+
+

webkit_web_view_get_website_data_manager ()

+
WebKitWebsiteDataManager *
+webkit_web_view_get_website_data_manager
+                               (WebKitWebView *web_view);
+

Get the WebKitWebsiteDataManager associated to web_view +. If web_view + is not ephemeral, +the returned WebKitWebsiteDataManager will be the same as the WebKitWebsiteDataManager +of web_view +'s WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

a WebKitWebsiteDataManager.

+

[transfer none]

+
+

Since: 2.16

+
+
+
+

webkit_web_view_try_close ()

+
void
+webkit_web_view_try_close (WebKitWebView *web_view);
+

Tries to close the web_view +. This will fire the onbeforeunload event +to ask the user for confirmation to close the page. If there isn't an +onbeforeunload event handler or the user confirms to close the page, +the “close” signal is emitted, otherwise nothing happens.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_load_uri ()

+
void
+webkit_web_view_load_uri (WebKitWebView *web_view,
+                          const gchar *uri);
+

Requests loading of the specified URI string. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

uri

an URI string

 
+
+
+
+
+

webkit_web_view_load_html ()

+
void
+webkit_web_view_load_html (WebKitWebView *web_view,
+                           const gchar *content,
+                           const gchar *base_uri);
+

Load the given content + string with the specified base_uri +. +If base_uri + is not NULL, relative URLs in the content + will be +resolved against base_uri + and absolute local paths must be children of the base_uri +. +For security reasons absolute local paths that are not children of base_uri + +will cause the web process to terminate. +If you need to include URLs in content + that are local paths in a different +directory than base_uri + you can build a data URI for them. When base_uri + is NULL, +it defaults to "about:blank". The mime type of the document will be "text/html". +You can monitor the load operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

content

The HTML string to load

 

base_uri

The base URI for relative locations or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_load_alternate_html ()

+
void
+webkit_web_view_load_alternate_html (WebKitWebView *web_view,
+                                     const gchar *content,
+                                     const gchar *content_uri,
+                                     const gchar *base_uri);
+

Load the given content + string for the URI content_uri +. +This allows clients to display page-loading errors in the WebKitWebView itself. +When this method is called from “load-failed” signal to show an +error page, then the back-forward list is maintained appropriately. +For everything else this method works the same way as webkit_web_view_load_html().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

content

the new content to display as the main page of the web_view +

 

content_uri

the URI for the alternate page content

 

base_uri

the base URI for relative locations or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_load_plain_text ()

+
void
+webkit_web_view_load_plain_text (WebKitWebView *web_view,
+                                 const gchar *plain_text);
+

Load the specified plain_text + string into web_view +. The mime type of +document will be "text/plain". You can monitor the load +operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

plain_text

The plain text to load

 
+
+
+
+
+

webkit_web_view_load_bytes ()

+
void
+webkit_web_view_load_bytes (WebKitWebView *web_view,
+                            GBytes *bytes,
+                            const gchar *mime_type,
+                            const gchar *encoding,
+                            const gchar *base_uri);
+

Load the specified bytes + into web_view + using the given mime_type + and encoding +. +When mime_type + is NULL, it defaults to "text/html". +When encoding + is NULL, it defaults to "UTF-8". +When base_uri + is NULL, it defaults to "about:blank". +You can monitor the load operation by connecting to “load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

bytes

input data to load

 

mime_type

the MIME type of bytes +, or NULL.

[allow-none]

encoding

the character encoding of bytes +, or NULL.

[allow-none]

base_uri

the base URI for relative locations or NULL.

[allow-none]
+
+

Since: 2.6

+
+
+
+

webkit_web_view_load_request ()

+
void
+webkit_web_view_load_request (WebKitWebView *web_view,
+                              WebKitURIRequest *request);
+

Requests loading of the specified WebKitURIRequest. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

request

a WebKitURIRequest to load

 
+
+
+
+
+

webkit_web_view_can_go_back ()

+
gboolean
+webkit_web_view_can_go_back (WebKitWebView *web_view);
+

Determines whether web_view + has a previous history item.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if able to move back or FALSE otherwise.

+
+
+
+
+

webkit_web_view_go_back ()

+
void
+webkit_web_view_go_back (WebKitWebView *web_view);
+

Loads the previous history item. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_can_go_forward ()

+
gboolean
+webkit_web_view_can_go_forward (WebKitWebView *web_view);
+

Determines whether web_view + has a next history item.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if able to move forward or FALSE otherwise.

+
+
+
+
+

webkit_web_view_go_forward ()

+
void
+webkit_web_view_go_forward (WebKitWebView *web_view);
+

Loads the next history item. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_get_title ()

+
const gchar *
+webkit_web_view_get_title (WebKitWebView *web_view);
+

Gets the value of the “title” property. +You can connect to notify::title signal of web_view + to +be notified when the title has been received.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

The main frame document title of web_view +.

+
+
+
+
+

webkit_web_view_get_page_id ()

+
guint64
+webkit_web_view_get_page_id (WebKitWebView *web_view);
+

Get the identifier of the WebKitWebPage corresponding to +the WebKitWebView

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the page ID of web_view +.

+
+
+
+
+

webkit_web_view_reload ()

+
void
+webkit_web_view_reload (WebKitWebView *web_view);
+

Reloads the current contents of web_view +. +See also webkit_web_view_reload_bypass_cache().

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_reload_bypass_cache ()

+
void
+webkit_web_view_reload_bypass_cache (WebKitWebView *web_view);
+

Reloads the current contents of web_view + without +using any cached data.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_stop_loading ()

+
void
+webkit_web_view_stop_loading (WebKitWebView *web_view);
+

Stops any ongoing loading operation in web_view +. +This method does nothing if no content is being loaded. +If there is a loading operation in progress, it will be cancelled and +“load-failed” signal will be emitted with +WEBKIT_NETWORK_ERROR_CANCELLED error.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+
+
+

webkit_web_view_is_loading ()

+
gboolean
+webkit_web_view_is_loading (WebKitWebView *web_view);
+

Gets the value of the “is-loading” property. +You can monitor when a WebKitWebView is loading a page by connecting to +notify::is-loading signal of web_view +. This is useful when you are +interesting in knowing when the view is loading something but not in the +details about the status of the load operation, for example to start a spinner +when the view is loading a page and stop it when it finishes.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if web_view +is loading a page or FALSE otherwise.

+
+
+
+
+

webkit_web_view_is_playing_audio ()

+
gboolean
+webkit_web_view_is_playing_audio (WebKitWebView *web_view);
+

Gets the value of the “is-playing-audio” property. +You can monitor when a page in a WebKitWebView is playing audio by +connecting to the notify::is-playing-audio signal of web_view +. This +is useful when the application wants to provide visual feedback when a +page is producing sound.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

TRUE if a page in web_view +is playing audio or FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

webkit_web_view_get_estimated_load_progress ()

+
gdouble
+webkit_web_view_get_estimated_load_progress
+                               (WebKitWebView *web_view);
+

Gets the value of the “estimated-load-progress” property. +You can monitor the estimated progress of a load operation by +connecting to the notify::estimated-load-progress signal of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

an estimate of the of the percent complete for a document +load as a range from 0.0 to 1.0.

+
+
+
+
+

webkit_web_view_get_custom_charset ()

+
const gchar *
+webkit_web_view_get_custom_charset (WebKitWebView *web_view);
+

Returns the current custom character encoding name of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current custom character encoding name or NULL if no +custom character encoding has been set.

+
+
+
+
+

webkit_web_view_set_custom_charset ()

+
void
+webkit_web_view_set_custom_charset (WebKitWebView *web_view,
+                                    const gchar *charset);
+

Sets the current custom character encoding override of web_view +. The custom +character encoding will override any text encoding detected via HTTP headers or +META tags. Calling this method will stop any current load operation and reload the +current page. Setting the custom character encoding to NULL removes the character +encoding override.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

charset

a character encoding name or NULL.

[allow-none]
+
+
+
+
+

webkit_web_view_get_back_forward_list ()

+
WebKitBackForwardList *
+webkit_web_view_get_back_forward_list (WebKitWebView *web_view);
+

Obtains the WebKitBackForwardList associated with the given WebKitWebView. The +WebKitBackForwardList is owned by the WebKitWebView.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitBackForwardList.

+

[transfer none]

+
+
+
+
+

webkit_web_view_go_to_back_forward_list_item ()

+
void
+webkit_web_view_go_to_back_forward_list_item
+                               (WebKitWebView *web_view,
+                                WebKitBackForwardListItem *list_item);
+

Loads the specific history item list_item +. +You can monitor the load operation by connecting to +“load-changed” signal.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

list_item

a WebKitBackForwardListItem

 
+
+
+
+
+

webkit_web_view_get_uri ()

+
const gchar *
+webkit_web_view_get_uri (WebKitWebView *web_view);
+

Returns the current active URI of web_view +. The active URI might change during +a load operation:

+
    +
  1. + When nothing has been loaded yet on web_view the active URI is NULL. +

  2. +
  3. +

    + When a new load operation starts the active URI is the requested URI: +

    +
    +

    +

    +
  4. +
  5. + If there is a server redirection during the load operation, + the active URI is the redirected URI. When the signal + “load-changed” is emitted with WEBKIT_LOAD_REDIRECTED + event, the active URI is already updated to the redirected URI. +

  6. +
  7. + When the signal “load-changed” is emitted + with WEBKIT_LOAD_COMMITTED event, the active URI is the final + one and it will not change unless a new load operation is started + or a navigation action within the same page is performed. +

  8. +
+

You can monitor the active URI by connecting to the notify::uri +signal of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current active URI of web_view +or NULL +if nothing has been loaded yet.

+
+
+
+
+

webkit_web_view_set_settings ()

+
void
+webkit_web_view_set_settings (WebKitWebView *web_view,
+                              WebKitSettings *settings);
+

Sets the WebKitSettings to be applied to web_view +. The +existing WebKitSettings of web_view + will be replaced by +settings +. New settings are applied immediately on web_view +. +The same WebKitSettings object can be shared +by multiple WebKitWebViews.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

settings

a WebKitSettings

 
+
+
+
+
+

webkit_web_view_get_settings ()

+
WebKitSettings *
+webkit_web_view_get_settings (WebKitWebView *web_view);
+

Gets the WebKitSettings currently applied to web_view +. +If no other WebKitSettings have been explicitly applied to +web_view + with webkit_web_view_set_settings(), the default +WebKitSettings will be returned. This method always returns +a valid WebKitSettings object. +To modify any of the web_view + settings, you can either create +a new WebKitSettings object with webkit_settings_new(), setting +the desired preferences, and then replace the existing web_view + +settings with webkit_web_view_set_settings() or get the existing +web_view + settings and update it directly. WebKitSettings objects +can be shared by multiple WebKitWebViews, so modifying +the settings of a WebKitWebView would affect other +WebKitWebViews using the same WebKitSettings.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitSettings attached to web_view +.

+

[transfer none]

+
+
+
+
+

webkit_web_view_get_window_properties ()

+
WebKitWindowProperties *
+webkit_web_view_get_window_properties (WebKitWebView *web_view);
+

Get the WebKitWindowProperties object containing the properties +that the window containing web_view + should have.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitWindowProperties of web_view +.

+

[transfer none]

+
+
+
+
+

webkit_web_view_set_zoom_level ()

+
void
+webkit_web_view_set_zoom_level (WebKitWebView *web_view,
+                                gdouble zoom_level);
+

Set the zoom level of web_view +, i.e. the factor by which the +view contents are scaled with respect to their original size.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

zoom_level

the zoom level

 
+
+
+
+
+

webkit_web_view_get_zoom_level ()

+
gdouble
+webkit_web_view_get_zoom_level (WebKitWebView *web_view);
+

Get the zoom level of web_view +, i.e. the factor by which the +view contents are scaled with respect to their original size.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the current zoom level of web_view +

+
+
+
+
+

webkit_web_view_can_execute_editing_command ()

+
void
+webkit_web_view_can_execute_editing_command
+                               (WebKitWebView *web_view,
+                                const gchar *command,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously check if it is possible to execute the given editing command.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_can_execute_editing_command_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to check

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_can_execute_editing_command_finish ()

+
gboolean
+webkit_web_view_can_execute_editing_command_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_can_execute_editing_command().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the editing command can be executed or FALSE otherwise

+
+
+
+
+

webkit_web_view_execute_editing_command ()

+
void
+webkit_web_view_execute_editing_command
+                               (WebKitWebView *web_view,
+                                const gchar *command);
+

Request to execute the given command + for web_view +. You can use +webkit_web_view_can_execute_editing_command() to check whether +it's possible to execute the command.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to execute

 
+
+
+
+
+

webkit_web_view_execute_editing_command_with_argument ()

+
void
+webkit_web_view_execute_editing_command_with_argument
+                               (WebKitWebView *web_view,
+                                const char *command,
+                                const char *argument);
+

Request to execute the given command + with argument + for web_view +. You can use +webkit_web_view_can_execute_editing_command() to check whether +it's possible to execute the command.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

command

the command to execute

 

argument

the command argument

 
+
+

Since: 2.10

+
+
+
+

webkit_web_view_get_find_controller ()

+
WebKitFindController *
+webkit_web_view_get_find_controller (WebKitWebView *web_view);
+

Gets the WebKitFindController that will allow the caller to query +the WebKitWebView for the text to look for.

+
+

Parameters

+
+++++ + + + + + +

web_view

the WebKitWebView

 
+
+
+

Returns

+

the WebKitFindController associated to +this particular WebKitWebView.

+

[transfer none]

+
+
+
+
+

webkit_web_view_run_javascript ()

+
void
+webkit_web_view_run_javascript (WebKitWebView *web_view,
+                                const gchar *script,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run script + in the context of the current page in web_view +. If +WebKitSettings:enable-javascript is FALSE, this method will do nothing.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_run_javascript_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

script

the script to run

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_run_javascript_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_finish (WebKitWebView *web_view,
+                                       GAsyncResult *result,
+                                       GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript().

+

This is an example of using webkit_web_view_run_javascript() with a script returning +a string:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
static void
+web_view_javascript_finished (GObject      *object,
+                              GAsyncResult *result,
+                              gpointer      user_data)
+{
+    WebKitJavascriptResult *js_result;
+    JSCValue               *value;
+    GError                 *error = NULL;
+
+    js_result = webkit_web_view_run_javascript_finish (WEBKIT_WEB_VIEW (object), result, &error);
+    if (!js_result) {
+        g_warning ("Error running javascript: %s", error->message);
+        g_error_free (error);
+        return;
+    }
+
+    value = webkit_javascript_result_get_js_value (js_result);
+    if (jsc_value_is_string (value)) {
+        JSCException *exception;
+        gchar        *str_value;
+
+        str_value = jsc_value_to_string (value);
+        exception = jsc_context_get_exception (jsc_value_get_context (value));
+        if (exception)
+            g_warning ("Error running javascript: %s", jsc_exception_get_message (exception));
+        else
+            g_print ("Script result: %s\n", str_value);
+        g_free (str_value);
+    } else {
+        g_warning ("Error running javascript: unexpected return value");
+    }
+    webkit_javascript_result_unref (js_result);
+}
+
+static void
+web_view_get_link_url (WebKitWebView *web_view,
+                       const gchar   *link_id)
+{
+    gchar *script;
+
+    script = g_strdup_printf ("window.document.getElementById('%s').href;", link_id);
+    webkit_web_view_run_javascript (web_view, script, NULL, web_view_javascript_finished, NULL);
+    g_free (script);
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_run_javascript_in_world ()

+
void
+webkit_web_view_run_javascript_in_world
+                               (WebKitWebView *web_view,
+                                const gchar *script,
+                                const gchar *world_name,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run script + in the script world with name world_name + of the current page context in web_view +. +If WebKitSettings:enable-javascript is FALSE, this method will do nothing.

+

When the operation is finished, callback + will be called. You can then call +webkit_web_view_run_javascript_in_world_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

script

the script to run

 

world_name

the name of a WebKitScriptWorld

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.22

+
+
+
+

webkit_web_view_run_javascript_in_world_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_in_world_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript_in_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_web_view_run_javascript_from_gresource ()

+
void
+webkit_web_view_run_javascript_from_gresource
+                               (WebKitWebView *web_view,
+                                const gchar *resource,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously run the script from resource + in the context of the +current page in web_view +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_run_javascript_from_gresource_finish() to get the result +of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

resource

the location of the resource to load

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the script finished.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_run_javascript_from_gresource_finish ()

+
WebKitJavascriptResult *
+webkit_web_view_run_javascript_from_gresource_finish
+                               (WebKitWebView *web_view,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_web_view_run_javascript_from_gresource().

+

Check webkit_web_view_run_javascript_finish() for a usage example.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a WebKitJavascriptResult with the result of the last executed statement in script +or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_can_show_mime_type ()

+
gboolean
+webkit_web_view_can_show_mime_type (WebKitWebView *web_view,
+                                    const gchar *mime_type);
+

Whether or not a MIME type can be displayed in web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

mime_type

a MIME type

 
+
+
+

Returns

+

TRUE if the MIME type mime_type +can be displayed or FALSE otherwise

+
+
+
+
+

webkit_web_view_save ()

+
void
+webkit_web_view_save (WebKitWebView *web_view,
+                      WebKitSaveMode save_mode,
+                      GCancellable *cancellable,
+                      GAsyncReadyCallback callback,
+                      gpointer user_data);
+

Asynchronously save the current web page associated to the +WebKitWebView into a self-contained format using the mode +specified in save_mode +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_save_finish() to get the result of the +operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

save_mode

the WebKitSaveMode specifying how the web page should be saved.

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_save_finish ()

+
GInputStream *
+webkit_web_view_save_finish (WebKitWebView *web_view,
+                             GAsyncResult *result,
+                             GError **error);
+

Finish an asynchronous operation started with webkit_web_view_save().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GInputStream with the result of saving +the current web page or NULL in case of error.

+

[transfer full]

+
+
+
+
+

webkit_web_view_save_to_file ()

+
void
+webkit_web_view_save_to_file (WebKitWebView *web_view,
+                              GFile *file,
+                              WebKitSaveMode save_mode,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously save the current web page associated to the +WebKitWebView into a self-contained format using the mode +specified in save_mode + and writing it to file +.

+

When the operation is finished, callback + will be called. You can +then call webkit_web_view_save_to_file_finish() to get the result of the +operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

file

the GFile where the current web page should be saved to.

 

save_mode

the WebKitSaveMode specifying how the web page should be saved.

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+
+
+
+

webkit_web_view_save_to_file_finish ()

+
gboolean
+webkit_web_view_save_to_file_finish (WebKitWebView *web_view,
+                                     GAsyncResult *result,
+                                     GError **error);
+

Finish an asynchronous operation started with webkit_web_view_save_to_file().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if the web page was successfully saved to a file or FALSE otherwise.

+
+
+
+
+

webkit_web_view_download_uri ()

+
WebKitDownload *
+webkit_web_view_download_uri (WebKitWebView *web_view,
+                              const char *uri);
+

Requests downloading of the specified URI string for web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

uri

the URI to download

 
+
+
+

Returns

+

a new WebKitDownload representing +the download operation.

+

[transfer full]

+
+
+
+
+

webkit_web_view_get_tls_info ()

+
gboolean
+webkit_web_view_get_tls_info (WebKitWebView *web_view,
+                              GTlsCertificate **certificate,
+                              GTlsCertificateFlags *errors);
+

Retrieves the GTlsCertificate associated with the main resource of web_view +, +and the GTlsCertificateFlags showing what problems, if any, have been found +with that certificate. +If the connection is not HTTPS, this function returns FALSE. +This function should be called after a response has been received from the +server, so you can connect to “load-changed” and call this function +when it's emitted with WEBKIT_LOAD_COMMITTED event.

+

Note that this function provides no information about the security of the web +page if the current WebKitTLSErrorsPolicy is WEBKIT_TLS_ERRORS_POLICY_IGNORE +, +as subresources of the page may be controlled by an attacker. This function +may safely be used to determine the security status of the current page only +if the current WebKitTLSErrorsPolicy is WEBKIT_TLS_ERRORS_POLICY_FAIL +, in +which case subresources that fail certificate verification will be blocked.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

certificate

return location for a GTlsCertificate.

[out][transfer none]

errors

return location for a GTlsCertificateFlags the verification status of certificate +.

[out]
+
+
+

Returns

+

TRUE if the web_view +connection uses HTTPS and a response has been received +from the server, or FALSE otherwise.

+
+
+
+
+

webkit_web_view_set_editable ()

+
void
+webkit_web_view_set_editable (WebKitWebView *web_view,
+                              gboolean editable);
+

Sets whether the user is allowed to edit the HTML document.

+

If editable + is TRUE, web_view + allows the user to edit the HTML document. If +editable + is FALSE, an element in web_view +'s document can only be edited if the +CONTENTEDITABLE attribute has been set on the element or one of its parent +elements. By default a WebKitWebView is not editable.

+

Normally, a HTML document is not editable unless the elements within the +document are editable. This function provides a way to make the contents +of a WebKitWebView editable without altering the document or DOM structure.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

editable

a gboolean indicating the editable state

 
+
+

Since: 2.8

+
+
+
+

webkit_web_view_is_editable ()

+
gboolean
+webkit_web_view_is_editable (WebKitWebView *web_view);
+
+
+
+

webkit_web_view_get_editor_state ()

+
WebKitEditorState *
+webkit_web_view_get_editor_state (WebKitWebView *web_view);
+

Gets the web editor state of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the WebKitEditorState of the view.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

webkit_web_view_get_session_state ()

+
WebKitWebViewSessionState *
+webkit_web_view_get_session_state (WebKitWebView *web_view);
+

Gets the current session state of web_view +

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

a WebKitWebViewSessionState.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_web_view_restore_session_state ()

+
void
+webkit_web_view_restore_session_state (WebKitWebView *web_view,
+                                       WebKitWebViewSessionState *state);
+

Restore the web_view + session state from state +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

state

a WebKitWebViewSessionState

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_get_main_resource ()

+
WebKitWebResource *
+webkit_web_view_get_main_resource (WebKitWebView *web_view);
+

Return the main resource of web_view +.

+
+

Parameters

+
+++++ + + + + + +

web_view

a WebKitWebView

 
+
+
+

Returns

+

the main WebKitWebResource of the view +or NULL if nothing has been loaded.

+

[transfer none]

+
+
+
+
+

webkit_web_view_add_frame_displayed_callback ()

+
guint
+webkit_web_view_add_frame_displayed_callback
+                               (WebKitWebView *web_view,
+                                WebKitFrameDisplayedCallback callback,
+                                gpointer user_data,
+                                GDestroyNotify destroy_notify);
+

Add a callback to be called when the backend notifies that a frame has been displayed in web_view +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

a WebKitWebView

 

callback

a WebKitFrameDisplayedCallback

 

user_data

user data to pass to callback +.

[closure]

destroy_notify

destroy notifier for user_data +.

[nullable]
+
+
+

Returns

+

an identifier that should be passed to webkit_web_view_remove_frame_displayed_callback() +to remove the callback.

+
+

Since: 2.24

+
+
+
+

webkit_web_view_remove_frame_displayed_callback ()

+
void
+webkit_web_view_remove_frame_displayed_callback
+                               (WebKitWebView *web_view,
+                                guint id);
+

Removes a WebKitFrameDisplayedCallback previously added to web_view + with +webkit_web_view_add_frame_displayed_callback().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

a WebKitWebView

 

id

an identifier

 
+
+

Since: 2.24

+
+
+
+

webkit_javascript_result_ref ()

+
WebKitJavascriptResult *
+webkit_javascript_result_ref (WebKitJavascriptResult *js_result);
+

Atomically increments the reference count of js_result + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+

Returns

+

The passed in WebKitJavascriptResult

+
+
+
+
+

webkit_javascript_result_unref ()

+
void
+webkit_javascript_result_unref (WebKitJavascriptResult *js_result);
+

Atomically decrements the reference count of js_result + by one. If the +reference count drops to 0, all memory allocated by the WebKitJavascriptResult is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+
+
+

webkit_javascript_result_get_js_value ()

+
JSCValue *
+webkit_javascript_result_get_js_value (WebKitJavascriptResult *js_result);
+

Get the JSCValue of js_result +.

+
+

Parameters

+
+++++ + + + + + +

js_result

a WebKitJavascriptResult

 
+
+
+

Returns

+

the JSCValue of the WebKitJavascriptResult.

+

[transfer none]

+
+

Since: 2.22

+
+
+
+

webkit_script_dialog_ref ()

+
WebKitScriptDialog *
+webkit_script_dialog_ref (WebKitScriptDialog *dialog);
+

Atomically increments the reference count of dialog + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

The passed in WebKitScriptDialog

+
+

Since: 2.24

+
+
+
+

webkit_script_dialog_unref ()

+
void
+webkit_script_dialog_unref (WebKitScriptDialog *dialog);
+

Atomically decrements the reference count of dialog + by one. If the +reference count drops to 0, all memory allocated by the WebKitScriptdialog is +released. This function is MT-safe and may be called from any +thread.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+

Since: 2.24

+
+
+
+

webkit_script_dialog_get_dialog_type ()

+
WebKitScriptDialogType
+webkit_script_dialog_get_dialog_type (WebKitScriptDialog *dialog);
+

Get the dialog type of a WebKitScriptDialog.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the WebKitScriptDialogType of dialog +

+
+
+
+
+

webkit_script_dialog_get_message ()

+
const gchar *
+webkit_script_dialog_get_message (WebKitScriptDialog *dialog);
+

Get the message of a WebKitScriptDialog.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the message of dialog +.

+
+
+
+
+

webkit_script_dialog_confirm_set_confirmed ()

+
void
+webkit_script_dialog_confirm_set_confirmed
+                               (WebKitScriptDialog *dialog,
+                                gboolean confirmed);
+

This method is used for WEBKIT_SCRIPT_DIALOG_CONFIRM and WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM dialogs when +“script-dialog” signal is emitted to set whether the user +confirmed the dialog or not. The default implementation of “script-dialog” +signal sets TRUE when the OK or Stay buttons are clicked and FALSE otherwise. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_CONFIRM or WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dialog

a WebKitScriptDialog

 

confirmed

whether user confirmed the dialog

 
+
+
+
+
+

webkit_script_dialog_prompt_get_default_text ()

+
const gchar *
+webkit_script_dialog_prompt_get_default_text
+                               (WebKitScriptDialog *dialog);
+

Get the default text of a WebKitScriptDialog of type WEBKIT_SCRIPT_DIALOG_PROMPT. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_PROMPT.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+
+

Returns

+

the default text of dialog +

+
+
+
+
+

webkit_script_dialog_prompt_set_text ()

+
void
+webkit_script_dialog_prompt_set_text (WebKitScriptDialog *dialog,
+                                      const gchar *text);
+

This method is used for WEBKIT_SCRIPT_DIALOG_PROMPT dialogs when +“script-dialog” signal is emitted to set the text +entered by the user. The default implementation of “script-dialog” +signal sets the text of the entry form when OK button is clicked, otherwise NULL is set. +It's an error to use this method with a WebKitScriptDialog that is not of type +WEBKIT_SCRIPT_DIALOG_PROMPT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dialog

a WebKitScriptDialog

 

text

the text to set

 
+
+
+
+
+

webkit_script_dialog_close ()

+
void
+webkit_script_dialog_close (WebKitScriptDialog *dialog);
+

Close dialog +. When handling a WebKitScriptDialog asynchronously (webkit_script_dialog_ref() +was called in “script-dialog” callback), this function needs to be called to notify +that we are done with the script dialog. The dialog will be closed on destruction if this function +hasn't been called before.

+
+

Parameters

+
+++++ + + + + + +

dialog

a WebKitScriptDialog

 
+
+

Since: 2.24

+
+
+
+

webkit_web_view_session_state_new ()

+
WebKitWebViewSessionState *
+webkit_web_view_session_state_new (GBytes *data);
+

Creates a new WebKitWebViewSessionState from serialized data.

+
+

Parameters

+
+++++ + + + + + +

data

a GBytes

 
+
+
+

Returns

+

a new WebKitWebViewSessionState, or NULL if data +doesn't contain a +valid serialized WebKitWebViewSessionState.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_ref ()

+
WebKitWebViewSessionState *
+webkit_web_view_session_state_ref (WebKitWebViewSessionState *state);
+

Atomically increments the reference count of state + by one. This +function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+
+

Returns

+

The passed in WebKitWebViewSessionState

+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_unref ()

+
void
+webkit_web_view_session_state_unref (WebKitWebViewSessionState *state);
+

Atomically decrements the reference count of state + by one. If the +reference count drops to 0, all memory allocated by the WebKitWebViewSessionState is +released. This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+

Since: 2.12

+
+
+
+

webkit_web_view_session_state_serialize ()

+
GBytes *
+webkit_web_view_session_state_serialize
+                               (WebKitWebViewSessionState *state);
+

Serializes a WebKitWebViewSessionState.

+
+

Parameters

+
+++++ + + + + + +

state

a WebKitWebViewSessionState

 
+
+
+

Returns

+

a GBytes containing the state +serialized.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

WebKitWebView

+
typedef struct _WebKitWebView WebKitWebView;
+
+
+
+

enum WebKitLoadEvent

+

Enum values used to denote the different events that happen during a +WebKitWebView load operation.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_LOAD_STARTED

+

A new load request has been made. +No data has been received yet, empty structures have +been allocated to perform the load; the load may still +fail due to transport issues such as not being able to +resolve a name, or connect to a port.

+
 

WEBKIT_LOAD_REDIRECTED

+

A provisional data source received +a server redirect.

+
 

WEBKIT_LOAD_COMMITTED

+

The content started arriving for a page load. +The necessary transport requirements are established, and the +load is being performed.

+
 

WEBKIT_LOAD_FINISHED

+

Load completed. All resources are done loading +or there was an error during the load operation.

+
 
+
+
+
+
+

enum WebKitPolicyDecisionType

+

Enum values used for determining the type of a policy decision during +“decide-policy”.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION

+

This type of policy decision + is requested when WebKit is about to navigate to a new page in either the + main frame or a subframe. Acceptable policy decisions are either + webkit_policy_decision_use() or webkit_policy_decision_ignore(). This + type of policy decision is always a WebKitNavigationPolicyDecision.

+
 

WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION

+

This type of policy decision + is requested when WebKit is about to create a new window. Acceptable policy + decisions are either webkit_policy_decision_use() or + webkit_policy_decision_ignore(). This type of policy decision is always + a WebKitNavigationPolicyDecision. These decisions are useful for implementing + special actions for new windows, such as forcing the new window to open + in a tab when a keyboard modifier is active or handling a special + target attribute on <a> elements.

+
 

WEBKIT_POLICY_DECISION_TYPE_RESPONSE

+

This type of decision is used when WebKit has + received a response for a network resource and is about to start the load. + Note that these resources include all subresources of a page such as images + and stylesheets as well as main documents. Appropriate policy responses to + this decision are webkit_policy_decision_use(), webkit_policy_decision_ignore(), + or webkit_policy_decision_download(). This type of policy decision is always + a WebKitResponsePolicyDecision. This decision is useful for forcing + some types of resources to be downloaded rather than rendered in the WebView + or to block the transfer of resources entirely.

+
 
+
+
+
+
+

enum WebKitSaveMode

+

Enum values to specify the different ways in which a WebKitWebView +can save its current web page into a self-contained file.

+
+

Members

+
+++++ + + + + + +

WEBKIT_SAVE_MODE_MHTML

+

Save the current page using the MHTML format.

+
 
+
+
+
+
+

enum WebKitInsecureContentEvent

+

Enum values used to denote the different events which can trigger +the detection of insecure content.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_INSECURE_CONTENT_RUN

+

Insecure content has been detected by +trying to execute any kind of logic (e.g. a script) from an +untrusted source.

+
 

WEBKIT_INSECURE_CONTENT_DISPLAYED

+

Insecure content has been +detected by trying to display any kind of resource (e.g. an image) +from an untrusted source.

+
 
+
+
+
+
+

enum WebKitWebProcessTerminationReason

+

Enum values used to specify the reason why the web process terminated abnormally.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_WEB_PROCESS_CRASHED

+

the web process crashed.

+
 

WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT

+

the web process exceeded the memory limit.

+
 
+
+

Since: 2.20

+
+
+
+

WEBKIT_EDITING_COMMAND_CUT

+
#define WEBKIT_EDITING_COMMAND_CUT "Cut"
+
+

The cut clipboard command. Copies the current selection inside +a WebKitWebView to the clipboard and deletes the selected content. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's +possible to cut to the clipboard when the WebKitWebView content is +editable and there is an active selection.

+
+
+
+

WEBKIT_EDITING_COMMAND_COPY

+
#define WEBKIT_EDITING_COMMAND_COPY "Copy"
+
+

The copy clipboard command. Copies the current selection inside +a WebKitWebView to the clipboard. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's +possible to copy to the clipboard when there is an active selection +inside the WebKitWebView.

+
+
+
+

WEBKIT_EDITING_COMMAND_PASTE

+
#define WEBKIT_EDITING_COMMAND_PASTE "Paste"
+
+

The paste clipboard command. Pastes the contents of the clipboard to +a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). In general it's possible +to paste from the clipboard when the WebKitWebView content is editable +and clipboard is not empty.

+
+
+
+

WEBKIT_EDITING_COMMAND_SELECT_ALL

+
#define WEBKIT_EDITING_COMMAND_SELECT_ALL "SelectAll"
+
+

The select all command. Selects all the content of the current text field in +a WebKitWebView. +It is always possible to select all text, no matter whether the +WebKitWebView content is editable or not. You can still check it +with webkit_web_view_can_execute_editing_command().

+
+
+
+

WEBKIT_EDITING_COMMAND_UNDO

+
#define WEBKIT_EDITING_COMMAND_UNDO "Undo"
+
+

The undo command. Undoes the last editing command in a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). It's only possible +to undo a command after a previously executed editing operation.

+
+
+
+

WEBKIT_EDITING_COMMAND_REDO

+
#define WEBKIT_EDITING_COMMAND_REDO "Redo"
+
+

The redo command. Redoes a previously undone editing command in +a WebKitWebView. +You can check whether it's possible to execute the command with +webkit_web_view_can_execute_editing_command(). It's only possible +to redo a command when it has been previously undone.

+
+
+
+

WEBKIT_EDITING_COMMAND_INSERT_IMAGE

+
#define WEBKIT_EDITING_COMMAND_INSERT_IMAGE "InsertImage"
+
+

The insert image command. Creates an image element that is inserted at +the current cursor position. It receives an URI as argument, +that is used as the image source. This command should be executed with +webkit_web_view_execute_editing_command_with_argument().

+

Since: 2.10

+
+
+
+

WEBKIT_EDITING_COMMAND_CREATE_LINK

+
#define WEBKIT_EDITING_COMMAND_CREATE_LINK "CreateLink"
+
+

The create link command. Creates a link element that is inserted at +the current cursor position. If there's a selection, the selected text +will be used as the link text, otherwise the URL itself will be used. +It receives the link URL as argument. This command should be executed +with webkit_web_view_execute_editing_command_with_argument()

+

Since: 2.10

+
+
+
+

WebKitJavascriptResult

+
typedef struct _WebKitJavascriptResult WebKitJavascriptResult;
+
+
+
+

WebKitScriptDialog

+
typedef struct _WebKitScriptDialog WebKitScriptDialog;
+
+
+
+

enum WebKitScriptDialogType

+

Enum values used for determining the type of WebKitScriptDialog

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_SCRIPT_DIALOG_ALERT

+

Alert script dialog, used to show a +message to the user.

+
 

WEBKIT_SCRIPT_DIALOG_CONFIRM

+

Confirm script dialog, used to ask +confirmation to the user.

+
 

WEBKIT_SCRIPT_DIALOG_PROMPT

+

Prompt script dialog, used to ask +information to the user.

+
 

WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM

+

Before unload confirm dialog, +used to ask confirmation to leave the current page to the user. Since 2.12

+
 
+
+
+
+
+

WebKitWebViewSessionState

+
typedef struct _WebKitWebViewSessionState WebKitWebViewSessionState;
+
+
+
+

Property Details

+
+

The “backend” property

+
  “backend”                  WebKitWebViewBackend *
+

The WebKitWebViewBackend of the view.

+

Flags: Read / Write / Construct Only

+

Since: 2.20

+
+
+
+

The “editable” property

+
  “editable”                 gboolean
+

Whether the pages loaded inside WebKitWebView are editable. For more +information see webkit_web_view_set_editable().

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 2.8

+
+
+
+

The “estimated-load-progress” property

+
  “estimated-load-progress”  gdouble
+

An estimate of the percent completion for the current loading operation. +This value will range from 0.0 to 1.0 and, once a load completes, +will remain at 1.0 until a new load starts, at which point it +will be reset to 0.0. +The value is an estimate based on the total number of bytes expected +to be received for a document, including all its possible subresources +and child documents.

+

Flags: Read

+

Allowed values: [0,1]

+

Default value: 0

+
+
+
+

The “is-controlled-by-automation” property

+
  “is-controlled-by-automation” gboolean
+

Whether the WebKitWebView is controlled by automation. This should only be used when +creating a new WebKitWebView as a response to “create-web-view” +signal request.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.18

+
+
+
+

The “is-ephemeral” property

+
  “is-ephemeral”             gboolean
+

Whether the WebKitWebView is ephemeral. An ephemeral web view never writes +website data to the client storage, no matter what WebKitWebsiteDataManager +its context is using. This is normally used to implement private browsing mode. +This is a G_PARAM_CONSTRUCT_ONLY property, so you have to create a ephemeral +WebKitWebView and it can't be changed. Note that all WebKitWebViews +created with an ephemeral WebKitWebContext will be ephemeral automatically. +See also webkit_web_context_new_ephemeral().

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.16

+
+
+
+

The “is-loading” property

+
  “is-loading”               gboolean
+

Whether the WebKitWebView is currently loading a page. This property becomes +TRUE as soon as a new load operation is requested and before the +“load-changed” signal is emitted with WEBKIT_LOAD_STARTED and +at that point the active URI is the requested one. +When the load operation finishes the property is set to FALSE before +“load-changed” is emitted with WEBKIT_LOAD_FINISHED.

+

Flags: Read

+

Default value: FALSE

+
+
+
+

The “is-playing-audio” property

+
  “is-playing-audio”         gboolean
+

Whether the WebKitWebView is currently playing audio from a page. +This property becomes TRUE as soon as web content starts playing any +kind of audio. When a page is no longer playing any kind of sound, +the property is set back to FALSE.

+

Flags: Read

+

Default value: FALSE

+

Since: 2.8

+
+
+
+

The “related-view” property

+
  “related-view”             WebKitWebView *
+

The related WebKitWebView used when creating the view to share the +same web process. This property is not readable because the related +web view is only valid during the object construction.

+

Flags: Write / Construct Only

+

Since: 2.4

+
+
+
+

The “settings” property

+
  “settings”                 WebKitSettings *
+

The WebKitSettings of the view.

+

Flags: Write / Construct

+

Since: 2.6

+
+
+
+

The “title” property

+
  “title”                    gchar *
+

The main frame document title of this WebKitWebView. If +the title has not been received yet, it will be NULL.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebView. +See webkit_web_view_get_uri() for more details.

+

Flags: Read

+

Default value: NULL

+
+
+
+

The “user-content-manager” property

+
  “user-content-manager”     WebKitUserContentManager *
+

The WebKitUserContentManager of the view.

+

Flags: Read / Write / Construct Only

+

Since: 2.6

+
+
+
+

The “web-context” property

+
  “web-context”              WebKitWebContext *
+

The WebKitWebContext of the view.

+

Flags: Read / Write / Construct Only

+
+
+
+

The “zoom-level” property

+
  “zoom-level”               gdouble
+

The zoom level of the WebKitWebView content. +See webkit_web_view_set_zoom_level() for more details.

+

Flags: Read / Write

+

Allowed values: >= 0

+

Default value: 1

+
+
+
+

Signal Details

+
+

The “authenticate” signal

+
gboolean
+user_function (WebKitWebView               *web_view,
+               WebKitAuthenticationRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when the user is challenged with HTTP +authentication. To let the application access or supply +the credentials as well as to allow the client application +to either cancel the request or perform the authentication, +the signal will pass an instance of the +WebKitAuthenticationRequest in the request + argument. +To handle this signal asynchronously you should keep a ref +of the request and return TRUE. To disable HTTP authentication +entirely, connect to this signal and simply return TRUE.

+

The default signal handler will run a default authentication +dialog asynchronously for the user to interact with.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitAuthenticationRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+

The “close” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when closing a WebKitWebView is requested. This occurs when a +call is made from JavaScript's window.close function or +after trying to close the web_view + with webkit_web_view_try_close(). +It is the owner's responsibility to handle this signal to hide or +destroy the WebKitWebView, if necessary.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “context-menu” signal

+
gboolean
+user_function (WebKitWebView       *web_view,
+               WebKitContextMenu   *context_menu,
+               gpointer             event,
+               WebKitHitTestResult *hit_test_result,
+               gpointer             user_data)
+

Emitted when a context menu is about to be displayed to give the application +a chance to customize the proposed menu, prevent the menu from being displayed, +or build its own context menu.

+
+

The event + is expected to be one of the following types:

+
+

If the signal handler returns FALSE the context menu represented by context_menu + +will be shown, if it return TRUE the context menu will not be shown.

+

The proposed WebKitContextMenu passed in context_menu + argument is only valid +during the signal emission.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

context_menu

the proposed WebKitContextMenu

 

event

the GdkEvent that triggered the context menu

 

hit_test_result

a WebKitHitTestResult

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “context-menu-dismissed” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “context-menu” signal, if the context menu is shown, +to notify that the context menu is dismissed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “create” signal

+
WebKitWebView*
+user_function (WebKitWebView          *web_view,
+               WebKitNavigationAction *navigation_action,
+               gpointer                user_data)
+

Emitted when the creation of a new WebKitWebView is requested. +If this signal is handled the signal handler should return the +newly created WebKitWebView.

+

The WebKitNavigationAction parameter contains information about the +navigation action that triggered this signal.

+

When using WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES +process model, the new WebKitWebView should be related to +web_view + to share the same web process, see webkit_web_view_new_with_related_view() +for more details.

+

The new WebKitWebView should not be displayed to the user +until the “ready-to-show” signal is emitted.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

navigation_action

a WebKitNavigationAction

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

a newly allocated WebKitWebView widget +or NULL to propagate the event further.

+

[transfer full]

+
+

Flags: Run Last

+
+
+
+

The “decide-policy” signal

+
gboolean
+user_function (WebKitWebView           *web_view,
+               WebKitPolicyDecision    *decision,
+               WebKitPolicyDecisionType decision_type,
+               gpointer                 user_data)
+

This signal is emitted when WebKit is requesting the client to decide a policy +decision, such as whether to navigate to a page, open a new window or whether or +not to download a resource. The WebKitNavigationPolicyDecision passed in the +decision + argument is a generic type, but should be casted to a more +specific type when making the decision. For example:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
static gboolean
+decide_policy_cb (WebKitWebView *web_view,
+                  WebKitPolicyDecision *decision,
+                  WebKitPolicyDecisionType type)
+{
+    switch (type) {
+    case WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION: {
+        WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    }
+    case WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION: {
+        WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    }
+    case WEBKIT_POLICY_DECISION_TYPE_RESPONSE:
+        WebKitResponsePolicyDecision *response = WEBKIT_RESPONSE_POLICY_DECISION (decision);
+        /* Make a policy decision here. */
+        break;
+    default:
+        /* Making no decision results in webkit_policy_decision_use(). */
+        return FALSE;
+    }
+    return TRUE;
+}
+
+ +

It is possible to make policy decision asynchronously, by simply calling g_object_ref() +on the decision + argument and returning TRUE to block the default signal handler. +If the last reference is removed on a WebKitPolicyDecision and no decision has been +made explicitly, webkit_policy_decision_use() will be the default policy decision. The +default signal handler will simply call webkit_policy_decision_use(). Only the first +policy decision chosen for a given WebKitPolicyDecision will have any affect.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

decision

the WebKitPolicyDecision

 

decision_type

a WebKitPolicyDecisionType denoting the type of decision +

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “enter-fullscreen” signal

+
gboolean
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when JavaScript code calls +element.webkitRequestFullScreen. If the +signal is not handled the WebKitWebView will proceed to full screen +its top level window. This signal can be used by client code to +request permission to the user prior doing the full screen +transition and eventually prepare the top-level window +(e.g. hide some widgets that would otherwise be part of the +full screen window).

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “insecure-content-detected” signal

+
void
+user_function (WebKitWebView             *web_view,
+               WebKitInsecureContentEvent event,
+               gpointer                   user_data)
+

This signal is emitted when insecure content has been detected +in a page loaded through a secure connection. This typically +means that a external resource from an unstrusted source has +been run or displayed, resulting in a mix of HTTPS and +non-HTTPS content.

+

You can check the event + parameter to know exactly which kind +of event has been detected (see WebKitInsecureContentEvent).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

event

the WebKitInsecureContentEvent

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “leave-fullscreen” signal

+
gboolean
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted when the WebKitWebView is about to restore its top level +window out of its full screen state. This signal can be used by +client code to restore widgets hidden during the +“enter-fullscreen” stage for instance.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “load-changed” signal

+
void
+user_function (WebKitWebView  *web_view,
+               WebKitLoadEvent load_event,
+               gpointer        user_data)
+

Emitted when a load operation in web_view + changes. +The signal is always emitted with WEBKIT_LOAD_STARTED when a +new load request is made and WEBKIT_LOAD_FINISHED when the load +finishes successfully or due to an error. When the ongoing load +operation fails “load-failed” signal is emitted +before “load-changed” is emitted with +WEBKIT_LOAD_FINISHED. +If a redirection is received from the server, this signal is emitted +with WEBKIT_LOAD_REDIRECTED after the initial emission with +WEBKIT_LOAD_STARTED and before WEBKIT_LOAD_COMMITTED. +When the page content starts arriving the signal is emitted with +WEBKIT_LOAD_COMMITTED event.

+

You can handle this signal and use a switch to track any ongoing +load operation.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
static void web_view_load_changed (WebKitWebView  *web_view,
+                                   WebKitLoadEvent load_event,
+                                   gpointer        user_data)
+{
+    switch (load_event) {
+    case WEBKIT_LOAD_STARTED:
+        /* New load, we have now a provisional URI */
+        provisional_uri = webkit_web_view_get_uri (web_view);
+        /* Here we could start a spinner or update the
+         * location bar with the provisional URI */
+        break;
+    case WEBKIT_LOAD_REDIRECTED:
+        redirected_uri = webkit_web_view_get_uri (web_view);
+        break;
+    case WEBKIT_LOAD_COMMITTED:
+        /* The load is being performed. Current URI is
+         * the final one and it won't change unless a new
+         * load is requested or a navigation within the
+         * same page is performed */
+        uri = webkit_web_view_get_uri (web_view);
+        break;
+    case WEBKIT_LOAD_FINISHED:
+        /* Load finished, we can now stop the spinner */
+        break;
+    }
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

load_event

the WebKitLoadEvent

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “load-failed” signal

+
gboolean
+user_function (WebKitWebView  *web_view,
+               WebKitLoadEvent load_event,
+               gchar          *failing_uri,
+               GError         *error,
+               gpointer        user_data)
+

Emitted when an error occurs during a load operation. +If the error happened when starting to load data for a page +load_event + will be WEBKIT_LOAD_STARTED. If it happened while +loading a committed data source load_event + will be WEBKIT_LOAD_COMMITTED. +Since a load error causes the load operation to finish, the signal +WebKitWebView::load-changed will always be emitted with +WEBKIT_LOAD_FINISHED event right after this one.

+

By default, if the signal is not handled, a stock error page will be displayed. +You need to handle the signal if you want to provide your own error page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

load_event

the WebKitLoadEvent of the load operation

 

failing_uri

the URI that failed to load

 

error

the GError that was triggered

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “load-failed-with-tls-errors” signal

+
gboolean
+user_function (WebKitWebView       *web_view,
+               gchar               *failing_uri,
+               GTlsCertificate     *certificate,
+               GTlsCertificateFlags errors,
+               gpointer             user_data)
+

Emitted when a TLS error occurs during a load operation. +To allow an exception for this certificate + +and the host of failing_uri + use webkit_web_context_allow_tls_certificate_for_host().

+

To handle this signal asynchronously you should call g_object_ref() on certificate + +and return TRUE.

+

If FALSE is returned, “load-failed” will be emitted. The load +will finish regardless of the returned value.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

failing_uri

the URI that failed to load

 

certificate

a GTlsCertificate

 

errors

a GTlsCertificateFlags with the verification status of certificate +

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+

Since: 2.6

+
+
+
+

The “mouse-target-changed” signal

+
void
+user_function (WebKitWebView       *web_view,
+               WebKitHitTestResult *hit_test_result,
+               guint                modifiers,
+               gpointer             user_data)
+

This signal is emitted when the mouse cursor moves over an +element such as a link, image or a media element. To determine +what type of element the mouse cursor is over, a Hit Test is performed +on the current mouse coordinates and the result is passed in the +hit_test_result + argument. The modifiers + argument is a bitmask of +GdkModifierType flags indicating the state of modifier keys. +The signal is emitted again when the mouse is moved out of the +current element with a new hit_test_result +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

hit_test_result

a WebKitHitTestResult

 

modifiers

a bitmask of GdkModifierType

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “permission-request” signal

+
gboolean
+user_function (WebKitWebView           *web_view,
+               WebKitPermissionRequest *request,
+               gpointer                 user_data)
+

This signal is emitted when WebKit is requesting the client to +decide about a permission request, such as allowing the browser +to switch to fullscreen mode, sharing its location or similar +operations.

+

A possible way to use this signal could be through a dialog +allowing the user decide what to do with the request:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
static gboolean permission_request_cb (WebKitWebView *web_view,
+                                       WebKitPermissionRequest *request,
+                                       GtkWindow *parent_window)
+{
+    GtkWidget *dialog = gtk_message_dialog_new (parent_window,
+                                                GTK_DIALOG_MODAL,
+                                                GTK_MESSAGE_QUESTION,
+                                                GTK_BUTTONS_YES_NO,
+                                                "Allow Permission Request?");
+    gtk_widget_show (dialog);
+    gint result = gtk_dialog_run (GTK_DIALOG (dialog));
+
+    switch (result) {
+    case GTK_RESPONSE_YES:
+        webkit_permission_request_allow (request);
+        break;
+    default:
+        webkit_permission_request_deny (request);
+        break;
+    }
+    gtk_widget_destroy (dialog);
+
+    return TRUE;
+}
+
+ +

It is possible to handle permission requests asynchronously, by +simply calling g_object_ref() on the request + argument and +returning TRUE to block the default signal handler. If the +last reference is removed on a WebKitPermissionRequest and the +request has not been handled, webkit_permission_request_deny() +will be the default action.

+

If the signal is not handled, the request + will be completed automatically +by the specific WebKitPermissionRequest that could allow or deny it. Check the +documentation of classes implementing WebKitPermissionRequest interface to know +their default action.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

the WebKitPermissionRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “ready-to-show” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “create” on the newly created WebKitWebView +when it should be displayed to the user. When this signal is emitted +all the information about how the window should look, including +size, position, whether the location, status and scrollbars +should be displayed, is already set on the WebKitWindowProperties +of web_view +. See also webkit_web_view_get_window_properties().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “resource-load-started” signal

+
void
+user_function (WebKitWebView     *web_view,
+               WebKitWebResource *resource,
+               WebKitURIRequest  *request,
+               gpointer           user_data)
+

Emitted when a new resource is going to be loaded. The request + parameter +contains the WebKitURIRequest that will be sent to the server. +You can monitor the load operation by connecting to the different signals +of resource +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

resource

a WebKitWebResource

 

request

a WebKitURIRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “run-as-modal” signal

+
void
+user_function (WebKitWebView *web_view,
+               gpointer       user_data)
+

Emitted after “ready-to-show” on the newly +created WebKitWebView when JavaScript code calls +window.showModalDialog. The purpose of +this signal is to allow the client application to prepare the +new view to behave as modal. Once the signal is emitted a new +main loop will be run to block user interaction in the parent +WebKitWebView until the new dialog is closed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “run-file-chooser” signal

+
gboolean
+user_function (WebKitWebView            *web_view,
+               WebKitFileChooserRequest *request,
+               gpointer                  user_data)
+

This signal is emitted when the user interacts with a <input +type='file' /> HTML element, requesting from WebKit to show +a dialog to select one or more files to be uploaded. To let the +application know the details of the file chooser, as well as to +allow the client application to either cancel the request or +perform an actual selection of files, the signal will pass an +instance of the WebKitFileChooserRequest in the request + +argument.

+

The default signal handler will asynchronously run a regular +GtkFileChooserDialog for the user to interact with.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitFileChooserRequest

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “script-dialog” signal

+
gboolean
+user_function (WebKitWebView      *web_view,
+               WebKitScriptDialog *dialog,
+               gpointer            user_data)
+

Emitted when JavaScript code calls window.alert, +window.confirm or window.prompt, +or when onbeforeunload event is fired. +The dialog + parameter should be used to build the dialog. +If the signal is not handled a different dialog will be built and shown depending +on the dialog type:

+
+

It is possible to handle the script dialog request asynchronously, by simply +caling webkit_script_dialog_ref() on the dialog + argument and calling +webkit_script_dialog_close() when done. +If the last reference is removed on a WebKitScriptDialog and the dialog has not been +closed, webkit_script_dialog_close() will be called.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

dialog

the WebKitScriptDialog to show

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to propagate the event further.

+
+

Flags: Run Last

+
+
+
+

The “show-notification” signal

+
gboolean
+user_function (WebKitWebView      *web_view,
+               WebKitNotification *notification,
+               gpointer            user_data)
+

This signal is emitted when a notification should be presented to the +user. The notification + is kept alive until either: 1) the web page cancels it +or 2) a navigation happens.

+

The default handler will emit a notification using libnotify, if built with +support for it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView

 

notification

a WebKitNotification

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked. FALSE otherwise.

+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “submit-form” signal

+
void
+user_function (WebKitWebView               *web_view,
+               WebKitFormSubmissionRequest *request,
+               gpointer                     user_data)
+

This signal is emitted when a form is about to be submitted. The request + +argument passed contains information about the text fields of the form. This +is typically used to store login information that can be used later to +pre-fill the form. +The form will not be submitted until webkit_form_submission_request_submit() is called.

+

It is possible to handle the form submission request asynchronously, by +simply calling g_object_ref() on the request + argument and calling +webkit_form_submission_request_submit() when done to continue with the form submission. +If the last reference is removed on a WebKitFormSubmissionRequest and the +form has not been submitted, webkit_form_submission_request_submit() will be called.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView on which the signal is emitted

 

request

a WebKitFormSubmissionRequest

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “web-process-terminated” signal

+
void
+user_function (WebKitWebView                    *web_view,
+               WebKitWebProcessTerminationReason reason,
+               gpointer                          user_data)
+

This signal is emitted when the web process terminates abnormally due +to reason +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_view

the WebKitWebView

 

reason

the a WebKitWebProcessTerminationReason

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebViewBackend/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebViewBackend/index.html new file mode 100644 index 000000000..47a5653ac --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebViewBackend/index.html @@ -0,0 +1,195 @@ + + + + +WebKitWebViewBackend: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebViewBackend

+

WebKitWebViewBackend — A web view backend

+
+
+

Functions

+
++++ + + + + + + + + + + +
struct wpe_view_backend * + +webkit_web_view_backend_get_wpe_backend () +
+WebKitWebViewBackend * + +webkit_web_view_backend_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineWEBKIT_TYPE_WEB_VIEW_BACKEND
 WebKitWebViewBackend
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitWebViewBackend
+
+
+
+

Description

+

A WebKitWebViewBackend is a boxed type wrapping a WPE backend used to create a +WebKitWebView. A WebKitWebViewBackend is created with webkit_web_view_backend_new() +and it should be passed to a WebKitWebView constructor that will take the ownership.

+
+
+

Functions

+
+

webkit_web_view_backend_get_wpe_backend ()

+
struct wpe_view_backend *
+webkit_web_view_backend_get_wpe_backend
+                               (WebKitWebViewBackend *view_backend);
+

Get the WPE backend of view_backend +

+
+

Parameters

+
+++++ + + + + + +

view_backend

a WebKitWebViewBackend

 
+
+
+

Returns

+

the wpe_view_backend.

+

[transfer none]

+
+

Since: 2.20

+
+
+
+

webkit_web_view_backend_new ()

+
WebKitWebViewBackend *
+webkit_web_view_backend_new (struct wpe_view_backend *backend,
+                             GDestroyNotify notify,
+                             gpointer user_data);
+

Create a new WebKitWebViewBackend for the given WPE backend +. You can pass a GDestroyNotify +that will be called when the object is destroyed passing user_data + as the argument. If notify + +is NULL, wpe_view_backend_destroy() will be used with backend + as argument. +The returned WebKitWebViewBackend should never be freed by the user; it must be passed to a +WebKitWebView constructor that will take the ownership.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

backend

a wpe_view_backend.

[transfer full]

notify

a GDestroyNotify, or NULL.

[nullable]

user_data

user data to pass to notify +

 
+
+
+

Returns

+

a newly created WebKitWebViewBackend

+
+

Since: 2.20

+
+
+
+

Types and Values

+
+

WEBKIT_TYPE_WEB_VIEW_BACKEND

+
#define WEBKIT_TYPE_WEB_VIEW_BACKEND (webkit_web_view_backend_get_type())
+
+
+
+
+

WebKitWebViewBackend

+
typedef struct _WebKitWebViewBackend WebKitWebViewBackend;
+
+
+
+

See Also

+

WebKitWebView.

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteData/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteData/index.html new file mode 100644 index 000000000..6a4536202 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteData/index.html @@ -0,0 +1,391 @@ + + + + +WebKitWebsiteData: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebsiteData

+

WebKitWebsiteData — Website data

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitWebsiteData * + +webkit_website_data_ref () +
+void + +webkit_website_data_unref () +
const char * + +webkit_website_data_get_name () +
+WebKitWebsiteDataTypes + +webkit_website_data_get_types () +
+guint64 + +webkit_website_data_get_size () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitWebsiteData
enumWebKitWebsiteDataTypes
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitWebsiteData
+
+
+
+

Description

+

WebKitWebsiteData represents data stored in the client by a particular website. +A website is normally a set of URLs grouped by domain name. You can get the website name, +which is usually the domain, with webkit_website_data_get_name(). +Documents loaded from the file system, like file:// URIs, are all grouped in the same WebKitWebsiteData +with the name "Local files".

+

A website can store different types of data in the client side. WebKitWebsiteDataTypes is an enum containing +all the possible data types; use webkit_website_data_get_types() to get the bitmask of data types. +It's also possible to know the size of the data stored for some of the WebKitWebsiteDataTypes by using +webkit_website_data_get_size().

+

A list of WebKitWebsiteData can be retrieved with webkit_website_data_manager_fetch(). See WebKitWebsiteDataManager +for more information.

+
+
+

Functions

+
+

webkit_website_data_ref ()

+
WebKitWebsiteData *
+webkit_website_data_ref (WebKitWebsiteData *website_data);
+

Atomically increments the reference count of website_data + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

The passed WebKitWebsiteData

+
+

Since: 2.16

+
+
+
+

webkit_website_data_unref ()

+
void
+webkit_website_data_unref (WebKitWebsiteData *website_data);
+

Atomically decrements the reference count of website_data + by one. +If the reference count drops to 0, all memory allocated by +WebKitWebsiteData is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

website_data

A WebKitWebsiteData

 
+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_name ()

+
const char *
+webkit_website_data_get_name (WebKitWebsiteData *website_data);
+

Gets the name of WebKitWebsiteData. This is the website name, normally represented by +a domain or host name. All local documents are grouped in the same WebKitWebsiteData using +the name "Local files".

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

the website name of website_data +.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_types ()

+
WebKitWebsiteDataTypes
+webkit_website_data_get_types (WebKitWebsiteData *website_data);
+

Gets the types of data stored in the client for a WebKitWebsiteData. These are the +types actually present, not the types queried with webkit_website_data_manager_fetch().

+
+

Parameters

+
+++++ + + + + + +

website_data

a WebKitWebsiteData

 
+
+
+

Returns

+

a bitmask of WebKitWebsiteDataTypes in website_data +

+
+

Since: 2.16

+
+
+
+

webkit_website_data_get_size ()

+
guint64
+webkit_website_data_get_size (WebKitWebsiteData *website_data,
+                              WebKitWebsiteDataTypes types);
+

Gets the size of the data of types types + in a WebKitWebsiteData. +Note that currently the data size is only known for WEBKIT_WEBSITE_DATA_DISK_CACHE data type +so for all other types 0 will be returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

website_data

a WebKitWebsiteData

 

types

a bitmask of WebKitWebsiteDataTypes

 
+
+
+

Returns

+

the size of website_data +for the given types +.

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

WebKitWebsiteData

+
typedef struct _WebKitWebsiteData WebKitWebsiteData;
+
+
+
+

enum WebKitWebsiteDataTypes

+

Enum values with flags representing types of Website data.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_WEBSITE_DATA_MEMORY_CACHE

+

Memory cache.

+
 

WEBKIT_WEBSITE_DATA_DISK_CACHE

+

HTTP disk cache.

+
 

WEBKIT_WEBSITE_DATA_OFFLINE_APPLICATION_CACHE

+

Offline web application cache.

+
 

WEBKIT_WEBSITE_DATA_SESSION_STORAGE

+

Session storage data.

+
 

WEBKIT_WEBSITE_DATA_LOCAL_STORAGE

+

Local storage data.

+
 

WEBKIT_WEBSITE_DATA_WEBSQL_DATABASES

+

WebSQL databases.

+
 

WEBKIT_WEBSITE_DATA_INDEXEDDB_DATABASES

+

IndexedDB databases.

+
 

WEBKIT_WEBSITE_DATA_PLUGIN_DATA

+

Plugins data.

+
 

WEBKIT_WEBSITE_DATA_COOKIES

+

Cookies.

+
 

WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT

+

Hash salt used to generate the device ids used by webpages. Since 2.24

+
 

WEBKIT_WEBSITE_DATA_ALL

+

All types.

+
 
+
+

Since: 2.16

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteDataManager/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteDataManager/index.html new file mode 100644 index 000000000..92be21e98 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteDataManager/index.html @@ -0,0 +1,1010 @@ + + + + +WebKitWebsiteDataManager: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebsiteDataManager

+

WebKitWebsiteDataManager — Website data manager

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+gchar *base-cache-directoryRead / Write / Construct Only
+gchar *base-data-directoryRead / Write / Construct Only
+gchar *disk-cache-directoryRead / Write / Construct Only
+gchar *indexeddb-directoryRead / Write / Construct Only
gbooleanis-ephemeralRead / Write / Construct Only
+gchar *local-storage-directoryRead / Write / Construct Only
+gchar *offline-application-cache-directoryRead / Write / Construct Only
+gchar *websql-directoryRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebsiteDataManager
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebsiteDataManager
+
+
+
+

Description

+

WebKitWebsiteDataManager allows you to manage the data that websites +can store in the client file system like databases or caches. +You can use WebKitWebsiteDataManager to configure the local directories +where the Website data will be stored, by creating a new manager with +webkit_website_data_manager_new() passing the values you want to set. +You can set all the possible configuration values or only some of them, +a default value will be used automatically for the configuration options +not provided. “base-data-directory” and +“base-cache-directory” are two special properties +that can be used to set a common base directory for all Website data and +caches. It's possible to provide both, a base directory and a specific value, +but in that case, the specific value takes precedence over the base directory. +The newly created WebKitWebsiteDataManager must be passed as a construct property +to a WebKitWebContext, you can use webkit_web_context_new_with_website_data_manager() +to create a new WebKitWebContext with a WebKitWebsiteDataManager. +In case you don't want to set any specific configuration, you don't need to create +a WebKitWebsiteDataManager, the WebKitWebContext will create a WebKitWebsiteDataManager +with the default configuration. To get the WebKitWebsiteDataManager of a WebKitWebContext +you can use webkit_web_context_get_website_data_manager().

+

A WebKitWebsiteDataManager can also be ephemeral and then all the directories configuration +is not needed because website data will never persist. You can create an ephemeral WebKitWebsiteDataManager +with webkit_website_data_manager_new_ephemeral(). Then you can pass an ephemeral WebKitWebsiteDataManager to +a WebKitWebContext to make it ephemeral or use webkit_web_context_new_ephemeral() and the WebKitWebsiteDataManager +will be automatically created by the WebKitWebContext.

+

WebKitWebsiteDataManager can also be used to fetch websites data, remove data +stored by particular websites, or clear data for all websites modified since a given +period of time.

+
+
+

Functions

+
+

webkit_website_data_manager_new ()

+
WebKitWebsiteDataManager *
+webkit_website_data_manager_new (const gchar *first_option_name,
+                                 ...);
+

Creates a new WebKitWebsiteDataManager with the given options. It must +be passed as construction parameter of a WebKitWebContext.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

first_option_name

name of the first option to set

 

...

value of first option, followed by more options, NULL-terminated

 
+
+
+

Returns

+

the newly created WebKitWebsiteDataManager.

+

[transfer full]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_new_ephemeral ()

+
WebKitWebsiteDataManager *
+webkit_website_data_manager_new_ephemeral
+                               (void);
+

Creates an ephemeral WebKitWebsiteDataManager. See “is-ephemeral” for more details.

+
+

Returns

+

a new ephemeral WebKitWebsiteDataManager.

+

[transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_is_ephemeral ()

+
gboolean
+webkit_website_data_manager_is_ephemeral
+                               (WebKitWebsiteDataManager *manager);
+

Get whether a WebKitWebsiteDataManager is ephemeral. See “is-ephemeral” for more details.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

TRUE if manager +is epheral or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_get_base_data_directory ()

+
const gchar *
+webkit_website_data_manager_get_base_data_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “base-data-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the base directory for Website data, or NULL if +“base-data-directory” was not provided or manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_base_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_base_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “base-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the base directory for Website cache, or NULL if +“base-cache-directory” was not provided or manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_local_storage_directory ()

+
const gchar *
+webkit_website_data_manager_get_local_storage_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “local-storage-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where local storage data is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_disk_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_disk_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “disk-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where HTTP disk cache is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_offline_application_cache_directory ()

+
const gchar *
+webkit_website_data_manager_get_offline_application_cache_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “offline-application-cache-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where offline web application cache is stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_indexeddb_directory ()

+
const gchar *
+webkit_website_data_manager_get_indexeddb_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “indexeddb-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where IndexedDB databases are stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_websql_directory ()

+
const gchar *
+webkit_website_data_manager_get_websql_directory
+                               (WebKitWebsiteDataManager *manager);
+

Get the “websql-directory” property.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

the directory where WebSQL databases are stored or NULL if manager +is ephemeral.

+

[allow-none]

+
+

Since: 2.10

+
+
+
+

webkit_website_data_manager_get_cookie_manager ()

+
WebKitCookieManager *
+webkit_website_data_manager_get_cookie_manager
+                               (WebKitWebsiteDataManager *manager);
+

Get the WebKitCookieManager of manager +.

+
+

Parameters

+
+++++ + + + + + +

manager

a WebKitWebsiteDataManager

 
+
+
+

Returns

+

a WebKitCookieManager.

+

[transfer none]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_fetch ()

+
void
+webkit_website_data_manager_fetch (WebKitWebsiteDataManager *manager,
+                                   WebKitWebsiteDataTypes types,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously get the list of WebKitWebsiteData for the given types +.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_fetch_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_fetch_finish ()

+
GList *
+webkit_website_data_manager_fetch_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_fetch().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

a GList of WebKitWebsiteData. You must free the GList with +g_list_free() and unref the WebKitWebsiteDatas with webkit_website_data_unref() when you're done with them.

+

[element-type WebKitWebsiteData][transfer full]

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_remove ()

+
void
+webkit_website_data_manager_remove (WebKitWebsiteDataManager *manager,
+                                    WebKitWebsiteDataTypes types,
+                                    GList *website_data,
+                                    GCancellable *cancellable,
+                                    GAsyncReadyCallback callback,
+                                    gpointer user_data);
+

Asynchronously removes the website data of the for the given types + for websites in the given website_data + list. +Use webkit_website_data_manager_clear() if you want to remove the website data for all sites.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_remove_finish() to get the result of the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

website_data

a GList of WebKitWebsiteData.

[element-type WebKitWebsiteData]

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_remove_finish ()

+
gboolean
+webkit_website_data_manager_remove_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_remove().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if website data resources were successfully removed, or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_clear ()

+
void
+webkit_website_data_manager_clear (WebKitWebsiteDataManager *manager,
+                                   WebKitWebsiteDataTypes types,
+                                   GTimeSpan timespan,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Asynchronously clear the website data of the given types + modified in the past timespan +. +If timespan + is 0, all website data will be removed.

+

When the operation is finished, callback + will be called. You can then call +webkit_website_data_manager_clear_finish() to get the result of the operation.

+

Due to implementation limitations, this function does not currently delete +any stored cookies if timespan + is nonzero. This behavior may change in the +future.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

types

WebKitWebsiteDataTypes

 

timespan

a GTimeSpan

 

cancellable

a GCancellable or NULL to ignore.

[allow-none]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

the data to pass to callback function.

[closure]
+
+

Since: 2.16

+
+
+
+

webkit_website_data_manager_clear_finish ()

+
gboolean
+webkit_website_data_manager_clear_finish
+                               (WebKitWebsiteDataManager *manager,
+                                GAsyncResult *result,
+                                GError **error);
+

Finish an asynchronous operation started with webkit_website_data_manager_clear()

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

manager

a WebKitWebsiteDataManager

 

result

a GAsyncResult

 

error

return location for error or NULL to ignore

 
+
+
+

Returns

+

TRUE if website data was successfully cleared, or FALSE otherwise.

+
+

Since: 2.16

+
+
+
+

Types and Values

+
+

struct WebKitWebsiteDataManager

+
struct WebKitWebsiteDataManager;
+
+
+
+

Property Details

+
+

The “base-cache-directory” property

+
  “base-cache-directory”     gchar *
+

The base directory for Website cache. This is used as a base directory +for any Website cache when no specific cache directory has been provided.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “base-data-directory” property

+
  “base-data-directory”      gchar *
+

The base directory for Website data. This is used as a base directory +for any Website data when no specific data directory has been provided.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “disk-cache-directory” property

+
  “disk-cache-directory”     gchar *
+

The directory where HTTP disk cache will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “indexeddb-directory” property

+
  “indexeddb-directory”      gchar *
+

The directory where IndexedDB databases will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “is-ephemeral” property

+
  “is-ephemeral”             gboolean
+

Whether the WebKitWebsiteDataManager is ephemeral. An ephemeral WebKitWebsiteDataManager +handles all websites data as non-persistent, and nothing will be written to the client +storage. Note that if you create an ephemeral WebKitWebsiteDataManager all other construction +parameters to configure data directories will be ignored.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+

Since: 2.16

+
+
+
+

The “local-storage-directory” property

+
  “local-storage-directory”  gchar *
+

The directory where local storage data will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “offline-application-cache-directory” property

+
  “offline-application-cache-directory” gchar *
+

The directory where offline web application cache will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+
+

The “websql-directory” property

+
  “websql-directory”         gchar *
+

The directory where WebSQL databases will be stored.

+

Flags: Read / Write / Construct Only

+

Default value: NULL

+

Since: 2.10

+
+
+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWindowProperties/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWindowProperties/index.html new file mode 100644 index 000000000..45c4ed95d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWindowProperties/index.html @@ -0,0 +1,537 @@ + + + + +WebKitWindowProperties: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWindowProperties

+

WebKitWindowProperties — Window properties of a WebKitWebView

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
gbooleanfullscreenRead / Write / Construct Only
gbooleanlocationbar-visibleRead / Write / Construct Only
gbooleanmenubar-visibleRead / Write / Construct Only
gbooleanresizableRead / Write / Construct Only
gbooleanscrollbars-visibleRead / Write / Construct Only
gbooleanstatusbar-visibleRead / Write / Construct Only
gbooleantoolbar-visibleRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWindowProperties
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWindowProperties
+
+
+
+

Description

+

The content of a WebKitWebView can request to change certain +properties of the window containing the view. This can include the x, y position +of the window, the width and height but also if a toolbar, +scrollbar, statusbar, locationbar should be visible to the user, +and the request to show the WebKitWebView fullscreen.

+

The “ready-to-show” signal handler is the proper place +to apply the initial window properties. Then you can monitor the +WebKitWindowProperties by connecting to ::notify signal.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
static void ready_to_show_cb (WebKitWebView *web_view, gpointer user_data)
+{
+    GtkWidget *window;
+    WebKitWindowProperties *window_properties;
+    gboolean visible;
+
+    /* Create the window to contain the WebKitWebView */
+    window = browser_window_new ();
+    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (web_view));
+    gtk_widget_show (GTK_WIDGET (web_view));
+
+    /* Get the WebKitWindowProperties of the web view and monitor it */
+    window_properties = webkit_web_view_get_window_properties (web_view);
+    g_signal_connect (window_properties, "notify::geometry",
+                      G_CALLBACK (window_geometry_changed), window);
+    g_signal_connect (window_properties, "notify::toolbar-visible",
+                      G_CALLBACK (window_toolbar_visibility_changed), window);
+    g_signal_connect (window_properties, "notify::menubar-visible",
+                      G_CALLBACK (window_menubar_visibility_changed), window);
+    ....
+
+    /* Apply the window properties before showing the window */
+    visible = webkit_window_properties_get_toolbar_visible (window_properties);
+    browser_window_set_toolbar_visible (BROWSER_WINDOW (window), visible);
+    visible = webkit_window_properties_get_menubar_visible (window_properties);
+    browser_window_set_menubar_visible (BROWSER_WINDOW (window), visible);
+    ....
+
+    if (webkit_window_properties_get_fullscreen (window_properties)) {
+        gtk_window_fullscreen (GTK_WINDOW (window));
+    } else {
+        GdkRectangle geometry;
+
+        gtk_window_set_resizable (GTK_WINDOW (window),
+                                  webkit_window_properties_get_resizable (window_properties));
+        webkit_window_properties_get_geometry (window_properties, &geometry);
+        gtk_window_move (GTK_WINDOW (window), geometry.x, geometry.y);
+        gtk_window_resize (GTK_WINDOW (window), geometry.width, geometry.height);
+    }
+
+    gtk_widget_show (window);
+}
+
+ +
+
+

Functions

+
+

webkit_window_properties_get_toolbar_visible ()

+
gboolean
+webkit_window_properties_get_toolbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the toolbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if toolbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_statusbar_visible ()

+
gboolean
+webkit_window_properties_get_statusbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the statusbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if statusbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_scrollbars_visible ()

+
gboolean
+webkit_window_properties_get_scrollbars_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the scrollbars visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if scrollbars should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_menubar_visible ()

+
gboolean
+webkit_window_properties_get_menubar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the menubar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if menubar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_locationbar_visible ()

+
gboolean
+webkit_window_properties_get_locationbar_visible
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should have the locationbar visible or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if locationbar should be visible or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_resizable ()

+
gboolean
+webkit_window_properties_get_resizable
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should be resizable by the user or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if the window should be resizable or FALSE otherwise.

+
+
+
+
+

webkit_window_properties_get_fullscreen ()

+
gboolean
+webkit_window_properties_get_fullscreen
+                               (WebKitWindowProperties *window_properties);
+

Get whether the window should be shown in fullscreen state or not.

+
+

Parameters

+
+++++ + + + + + +

window_properties

a WebKitWindowProperties

 
+
+
+

Returns

+

TRUE if the window should be fullscreen or FALSE otherwise.

+
+
+
+
+

Types and Values

+
+

struct WebKitWindowProperties

+
struct WebKitWindowProperties;
+
+
+
+

Property Details

+
+

The “fullscreen” property

+
  “fullscreen”               gboolean
+

Whether window will be displayed fullscreen.

+

Flags: Read / Write / Construct Only

+

Default value: FALSE

+
+
+
+

The “locationbar-visible” property

+
  “locationbar-visible”      gboolean
+

Whether the locationbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “menubar-visible” property

+
  “menubar-visible”          gboolean
+

Whether the menubar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “resizable” property

+
  “resizable”                gboolean
+

Whether the window can be resized.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “scrollbars-visible” property

+
  “scrollbars-visible”       gboolean
+

Whether the scrollbars should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “statusbar-visible” property

+
  “statusbar-visible”        gboolean
+

Whether the statusbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

The “toolbar-visible” property

+
  “toolbar-visible”          gboolean
+

Whether the toolbar should be visible for the window.

+

Flags: Read / Write / Construct Only

+

Default value: TRUE

+
+
+
+

See Also

+

“ready-to-show”

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/annotation-glossary/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/annotation-glossary/index.html new file mode 100644 index 000000000..4c719ff17 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/annotation-glossary/index.html @@ -0,0 +1,69 @@ + + + + +Annotation Glossary: WPE Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

A

+
allow-none
+

NULL is OK, both for passing and for returning.

+
array
+

Parameter points to an array of items.

+

C

+
closure
+

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

N

+
nullable
+

NULL may be passed as the value in, out, in-out; or as a return value.

+

O

+
optional
+

NULL may be passed instead of a pointer to a location.

+
out
+

Parameter for returning results. Default is transfer full.

+

S

+
scope async
+

The callback is valid until first called.

+

T

+
transfer container
+

Free data container after the code is done.

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch01/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch01/index.html new file mode 100644 index 000000000..a7db63d57 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch01/index.html @@ -0,0 +1,160 @@ + + + + +Class Overview: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Class Overview

+
+
+WebKitWebContext — Manages aspects common to all WebKitWebViews +
+
+WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs +
+
+WebKitWebViewBackend — A web view backend +
+
+WebKitAuthenticationRequest — Represents an authentication request +
+
+WebKitBackForwardList — List of visited pages +
+
+WebKitBackForwardListItem — One item of the WebKitBackForwardList +
+
+WebKitSettings — Control the behaviour of a WebKitWebView +
+
+WebKitURIRequest — Represents a URI request +
+
+WebKitURIResponse — Represents a URI response +
+
+WebKitWindowProperties — Window properties of a WebKitWebView +
+
+WebKitDownload — Object used to communicate with the application when downloading +
+
+WebKitPermissionRequest — A permission request +
+
+WebKitGeolocationPermissionRequest — A permission request for sharing user's location +
+
+WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins +
+
+WebKitNavigationAction +
+
+WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices. +
+
+WebKitPolicyDecision — A pending policy decision +
+
+WebKitNavigationPolicyDecision — A policy decision for navigation actions +
+
+WebKitResponsePolicyDecision — A policy decision for resource responses +
+
+WebKitHitTestResult — Result of a Hit Test +
+
+WebKitEditorState — Web editor state +
+
+WebKitWebResource — Represents a resource at the end of a URI +
+
+WebKitError — Categorized WebKit errors +
+
+WebKitFaviconDatabase — A WebKit favicon database +
+
+WebKitFileChooserRequest — A request to open a file chooser +
+
+WebKitFindController — Controls text search in a WebKitWebView +
+
+WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext +
+
+WebKitPlugin — Represents a plugin, enabling fine-grained control +
+
+WebKitURISchemeRequest — Represents a URI scheme request +
+
+WebKitContextMenu — Represents the context menu in a WebKitWebView +
+
+WebKitContextMenuItem — One item of the WebKitContextMenu +
+
+WebKitFormSubmissionRequest — Represents a form submission request +
+
+WebKitSecurityManager — Controls security settings in a WebKitWebContext +
+
+WebKitUserContentManager — Manages user-defined content which affects web pages. +
+
+User content — Defines user content types which affect web pages. +
+
+WebKitNotification — Object used to hold information about a notification that should be shown to the user. +
+
+WebKitNotificationPermissionRequest — A permission request for displaying web notifications +
+
+WebKitSecurityOrigin — A security boundary for websites +
+
+WebKitWebsiteDataManager — Website data manager +
+
+WebKitWebsiteData — Website data +
+
+WebKitNetworkProxySettings — Network Proxy Settings +
+
+WebKitAutomationSession — Automation Session +
+
+WebKitApplicationInfo +
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch02/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch02/index.html new file mode 100644 index 000000000..04a0c96ff --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch02/index.html @@ -0,0 +1,32 @@ + + + + +Utilities: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Utilities

+
+WebKitURIUtilities — Utility functions to manipulate URIs +
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index-all/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index-all/index.html new file mode 100644 index 000000000..d29d23b74 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index-all/index.html @@ -0,0 +1,1642 @@ + + + + +Index: WPE Reference Manual + + + + + + + + + + + + + + + + +
+

+Index

+
+
+

A

+
+
WebKitApplicationInfo, WebKitApplicationInfo +
+
webkit_application_info_get_name, webkit_application_info_get_name () +
+
webkit_application_info_get_version, webkit_application_info_get_version () +
+
webkit_application_info_new, webkit_application_info_new () +
+
webkit_application_info_ref, webkit_application_info_ref () +
+
webkit_application_info_set_name, webkit_application_info_set_name () +
+
webkit_application_info_set_version, webkit_application_info_set_version () +
+
webkit_application_info_unref, webkit_application_info_unref () +
+
WebKitAuthenticationRequest, struct WebKitAuthenticationRequest +
+
WebKitAuthenticationRequest::cancelled, The “cancelled” signal +
+
WebKitAuthenticationScheme, enum WebKitAuthenticationScheme +
+
webkit_authentication_request_authenticate, webkit_authentication_request_authenticate () +
+
webkit_authentication_request_cancel, webkit_authentication_request_cancel () +
+
webkit_authentication_request_can_save_credentials, webkit_authentication_request_can_save_credentials () +
+
webkit_authentication_request_get_host, webkit_authentication_request_get_host () +
+
webkit_authentication_request_get_port, webkit_authentication_request_get_port () +
+
webkit_authentication_request_get_proposed_credential, webkit_authentication_request_get_proposed_credential () +
+
webkit_authentication_request_get_realm, webkit_authentication_request_get_realm () +
+
webkit_authentication_request_get_scheme, webkit_authentication_request_get_scheme () +
+
webkit_authentication_request_is_for_proxy, webkit_authentication_request_is_for_proxy () +
+
webkit_authentication_request_is_retry, webkit_authentication_request_is_retry () +
+
WebKitAutomationSession, struct WebKitAutomationSession +
+
WebKitAutomationSession::create-web-view, The “create-web-view” signal +
+
WebKitAutomationSession:id, The “id” property +
+
webkit_automation_session_get_application_info, webkit_automation_session_get_application_info () +
+
webkit_automation_session_get_id, webkit_automation_session_get_id () +
+
webkit_automation_session_set_application_info, webkit_automation_session_set_application_info () +
+
+
+
+

B

+
+
WebKitBackForwardList, struct WebKitBackForwardList +
+
WebKitBackForwardList::changed, The “changed” signal +
+
WebKitBackForwardListItem, struct WebKitBackForwardListItem +
+
webkit_back_forward_list_get_back_item, webkit_back_forward_list_get_back_item () +
+
webkit_back_forward_list_get_back_list, webkit_back_forward_list_get_back_list () +
+
webkit_back_forward_list_get_back_list_with_limit, webkit_back_forward_list_get_back_list_with_limit () +
+
webkit_back_forward_list_get_current_item, webkit_back_forward_list_get_current_item () +
+
webkit_back_forward_list_get_forward_item, webkit_back_forward_list_get_forward_item () +
+
webkit_back_forward_list_get_forward_list, webkit_back_forward_list_get_forward_list () +
+
webkit_back_forward_list_get_forward_list_with_limit, webkit_back_forward_list_get_forward_list_with_limit () +
+
webkit_back_forward_list_get_length, webkit_back_forward_list_get_length () +
+
webkit_back_forward_list_get_nth_item, webkit_back_forward_list_get_nth_item () +
+
webkit_back_forward_list_item_get_original_uri, webkit_back_forward_list_item_get_original_uri () +
+
webkit_back_forward_list_item_get_title, webkit_back_forward_list_item_get_title () +
+
webkit_back_forward_list_item_get_uri, webkit_back_forward_list_item_get_uri () +
+
+
+
+

C

+
+
WebKitCacheModel, enum WebKitCacheModel +
+
WebKitContextMenu, struct WebKitContextMenu +
+
WebKitContextMenuAction, enum WebKitContextMenuAction +
+
WebKitContextMenuItem, WebKitContextMenuItem +
+
webkit_context_menu_append, webkit_context_menu_append () +
+
webkit_context_menu_first, webkit_context_menu_first () +
+
webkit_context_menu_get_items, webkit_context_menu_get_items () +
+
webkit_context_menu_get_item_at_position, webkit_context_menu_get_item_at_position () +
+
webkit_context_menu_get_n_items, webkit_context_menu_get_n_items () +
+
webkit_context_menu_get_user_data, webkit_context_menu_get_user_data () +
+
webkit_context_menu_insert, webkit_context_menu_insert () +
+
webkit_context_menu_item_get_gaction, webkit_context_menu_item_get_gaction () +
+
webkit_context_menu_item_get_stock_action, webkit_context_menu_item_get_stock_action () +
+
webkit_context_menu_item_get_submenu, webkit_context_menu_item_get_submenu () +
+
webkit_context_menu_item_is_separator, webkit_context_menu_item_is_separator () +
+
webkit_context_menu_item_new_from_gaction, webkit_context_menu_item_new_from_gaction () +
+
webkit_context_menu_item_new_from_stock_action, webkit_context_menu_item_new_from_stock_action () +
+
webkit_context_menu_item_new_from_stock_action_with_label, webkit_context_menu_item_new_from_stock_action_with_label () +
+
webkit_context_menu_item_new_separator, webkit_context_menu_item_new_separator () +
+
webkit_context_menu_item_new_with_submenu, webkit_context_menu_item_new_with_submenu () +
+
webkit_context_menu_item_set_submenu, webkit_context_menu_item_set_submenu () +
+
webkit_context_menu_last, webkit_context_menu_last () +
+
webkit_context_menu_move_item, webkit_context_menu_move_item () +
+
webkit_context_menu_new, webkit_context_menu_new () +
+
webkit_context_menu_new_with_items, webkit_context_menu_new_with_items () +
+
webkit_context_menu_prepend, webkit_context_menu_prepend () +
+
webkit_context_menu_remove, webkit_context_menu_remove () +
+
webkit_context_menu_remove_all, webkit_context_menu_remove_all () +
+
webkit_context_menu_set_user_data, webkit_context_menu_set_user_data () +
+
WebKitCookieAcceptPolicy, enum WebKitCookieAcceptPolicy +
+
WebKitCookieManager, struct WebKitCookieManager +
+
WebKitCookieManager::changed, The “changed” signal +
+
WebKitCookiePersistentStorage, enum WebKitCookiePersistentStorage +
+
webkit_cookie_manager_add_cookie, webkit_cookie_manager_add_cookie () +
+
webkit_cookie_manager_add_cookie_finish, webkit_cookie_manager_add_cookie_finish () +
+
webkit_cookie_manager_delete_cookie, webkit_cookie_manager_delete_cookie () +
+
webkit_cookie_manager_delete_cookie_finish, webkit_cookie_manager_delete_cookie_finish () +
+
webkit_cookie_manager_get_accept_policy, webkit_cookie_manager_get_accept_policy () +
+
webkit_cookie_manager_get_accept_policy_finish, webkit_cookie_manager_get_accept_policy_finish () +
+
webkit_cookie_manager_get_cookies, webkit_cookie_manager_get_cookies () +
+
webkit_cookie_manager_get_cookies_finish, webkit_cookie_manager_get_cookies_finish () +
+
webkit_cookie_manager_set_accept_policy, webkit_cookie_manager_set_accept_policy () +
+
webkit_cookie_manager_set_persistent_storage, webkit_cookie_manager_set_persistent_storage () +
+
WebKitCredential, WebKitCredential +
+
WebKitCredentialPersistence, enum WebKitCredentialPersistence +
+
webkit_credential_copy, webkit_credential_copy () +
+
webkit_credential_free, webkit_credential_free () +
+
webkit_credential_get_password, webkit_credential_get_password () +
+
webkit_credential_get_persistence, webkit_credential_get_persistence () +
+
webkit_credential_get_username, webkit_credential_get_username () +
+
webkit_credential_has_password, webkit_credential_has_password () +
+
webkit_credential_new, webkit_credential_new () +
+
+
+
+

D

+
+
WebKitDownload, struct WebKitDownload +
+
WebKitDownload::created-destination, The “created-destination” signal +
+
WebKitDownload::decide-destination, The “decide-destination” signal +
+
WebKitDownload::failed, The “failed” signal +
+
WebKitDownload::finished, The “finished” signal +
+
WebKitDownload::received-data, The “received-data” signal +
+
WebKitDownload:allow-overwrite, The “allow-overwrite” property +
+
WebKitDownload:destination, The “destination” property +
+
WebKitDownload:estimated-progress, The “estimated-progress” property +
+
WebKitDownload:response, The “response” property +
+
WebKitDownloadError, enum WebKitDownloadError +
+
webkit_download_cancel, webkit_download_cancel () +
+
WEBKIT_DOWNLOAD_ERROR, WEBKIT_DOWNLOAD_ERROR +
+
webkit_download_error_quark, webkit_download_error_quark () +
+
webkit_download_get_allow_overwrite, webkit_download_get_allow_overwrite () +
+
webkit_download_get_destination, webkit_download_get_destination () +
+
webkit_download_get_elapsed_time, webkit_download_get_elapsed_time () +
+
webkit_download_get_estimated_progress, webkit_download_get_estimated_progress () +
+
webkit_download_get_received_data_length, webkit_download_get_received_data_length () +
+
webkit_download_get_request, webkit_download_get_request () +
+
webkit_download_get_response, webkit_download_get_response () +
+
webkit_download_get_web_view, webkit_download_get_web_view () +
+
webkit_download_set_allow_overwrite, webkit_download_set_allow_overwrite () +
+
webkit_download_set_destination, webkit_download_set_destination () +
+
+
+
+

E

+
+
WEBKIT_EDITING_COMMAND_COPY, WEBKIT_EDITING_COMMAND_COPY +
+
WEBKIT_EDITING_COMMAND_CREATE_LINK, WEBKIT_EDITING_COMMAND_CREATE_LINK +
+
WEBKIT_EDITING_COMMAND_CUT, WEBKIT_EDITING_COMMAND_CUT +
+
WEBKIT_EDITING_COMMAND_INSERT_IMAGE, WEBKIT_EDITING_COMMAND_INSERT_IMAGE +
+
WEBKIT_EDITING_COMMAND_PASTE, WEBKIT_EDITING_COMMAND_PASTE +
+
WEBKIT_EDITING_COMMAND_REDO, WEBKIT_EDITING_COMMAND_REDO +
+
WEBKIT_EDITING_COMMAND_SELECT_ALL, WEBKIT_EDITING_COMMAND_SELECT_ALL +
+
WEBKIT_EDITING_COMMAND_UNDO, WEBKIT_EDITING_COMMAND_UNDO +
+
WebKitEditorState, struct WebKitEditorState +
+
WebKitEditorState:typing-attributes, The “typing-attributes” property +
+
WebKitEditorTypingAttributes, enum WebKitEditorTypingAttributes +
+
webkit_editor_state_get_typing_attributes, webkit_editor_state_get_typing_attributes () +
+
webkit_editor_state_is_copy_available, webkit_editor_state_is_copy_available () +
+
webkit_editor_state_is_cut_available, webkit_editor_state_is_cut_available () +
+
webkit_editor_state_is_paste_available, webkit_editor_state_is_paste_available () +
+
webkit_editor_state_is_redo_available, webkit_editor_state_is_redo_available () +
+
webkit_editor_state_is_undo_available, webkit_editor_state_is_undo_available () +
+
+
+
+

F

+
+
WebKitFaviconDatabase, struct WebKitFaviconDatabase +
+
WebKitFaviconDatabase::favicon-changed, The “favicon-changed” signal +
+
WebKitFaviconDatabaseError, enum WebKitFaviconDatabaseError +
+
webkit_favicon_database_clear, webkit_favicon_database_clear () +
+
WEBKIT_FAVICON_DATABASE_ERROR, WEBKIT_FAVICON_DATABASE_ERROR +
+
webkit_favicon_database_get_favicon_uri, webkit_favicon_database_get_favicon_uri () +
+
WebKitFileChooserRequest, struct WebKitFileChooserRequest +
+
WebKitFileChooserRequest:mime-types, The “mime-types” property +
+
WebKitFileChooserRequest:select-multiple, The “select-multiple” property +
+
WebKitFileChooserRequest:selected-files, The “selected-files” property +
+
webkit_file_chooser_request_cancel, webkit_file_chooser_request_cancel () +
+
webkit_file_chooser_request_get_mime_types, webkit_file_chooser_request_get_mime_types () +
+
webkit_file_chooser_request_get_selected_files, webkit_file_chooser_request_get_selected_files () +
+
webkit_file_chooser_request_get_select_multiple, webkit_file_chooser_request_get_select_multiple () +
+
webkit_file_chooser_request_select_files, webkit_file_chooser_request_select_files () +
+
WebKitFindController, struct WebKitFindController +
+
WebKitFindController::counted-matches, The “counted-matches” signal +
+
WebKitFindController::failed-to-find-text, The “failed-to-find-text” signal +
+
WebKitFindController::found-text, The “found-text” signal +
+
WebKitFindController:max-match-count, The “max-match-count” property +
+
WebKitFindController:options, The “options” property +
+
WebKitFindController:text, The “text” property +
+
WebKitFindController:web-view, The “web-view” property +
+
WebKitFindOptions, enum WebKitFindOptions +
+
webkit_find_controller_count_matches, webkit_find_controller_count_matches () +
+
webkit_find_controller_get_max_match_count, webkit_find_controller_get_max_match_count () +
+
webkit_find_controller_get_options, webkit_find_controller_get_options () +
+
webkit_find_controller_get_search_text, webkit_find_controller_get_search_text () +
+
webkit_find_controller_get_web_view, webkit_find_controller_get_web_view () +
+
webkit_find_controller_search, webkit_find_controller_search () +
+
webkit_find_controller_search_finish, webkit_find_controller_search_finish () +
+
webkit_find_controller_search_next, webkit_find_controller_search_next () +
+
webkit_find_controller_search_previous, webkit_find_controller_search_previous () +
+
WebKitFormSubmissionRequest, struct WebKitFormSubmissionRequest +
+
webkit_form_submission_request_list_text_fields, webkit_form_submission_request_list_text_fields () +
+
webkit_form_submission_request_submit, webkit_form_submission_request_submit () +
+
WebKitFrameDisplayedCallback, WebKitFrameDisplayedCallback () +
+
+
+
+

G

+
WebKitGeolocationPermissionRequest, struct WebKitGeolocationPermissionRequest +
+
+
+

H

+
+
WebKitHitTestResult, struct WebKitHitTestResult +
+
WebKitHitTestResult:context, The “context” property +
+
WebKitHitTestResult:image-uri, The “image-uri” property +
+
WebKitHitTestResult:link-label, The “link-label” property +
+
WebKitHitTestResult:link-title, The “link-title” property +
+
WebKitHitTestResult:link-uri, The “link-uri” property +
+
WebKitHitTestResult:media-uri, The “media-uri” property +
+
WebKitHitTestResultContext, enum WebKitHitTestResultContext +
+
webkit_hit_test_result_context_is_editable, webkit_hit_test_result_context_is_editable () +
+
webkit_hit_test_result_context_is_image, webkit_hit_test_result_context_is_image () +
+
webkit_hit_test_result_context_is_link, webkit_hit_test_result_context_is_link () +
+
webkit_hit_test_result_context_is_media, webkit_hit_test_result_context_is_media () +
+
webkit_hit_test_result_context_is_scrollbar, webkit_hit_test_result_context_is_scrollbar () +
+
webkit_hit_test_result_context_is_selection, webkit_hit_test_result_context_is_selection () +
+
webkit_hit_test_result_get_context, webkit_hit_test_result_get_context () +
+
webkit_hit_test_result_get_image_uri, webkit_hit_test_result_get_image_uri () +
+
webkit_hit_test_result_get_link_label, webkit_hit_test_result_get_link_label () +
+
webkit_hit_test_result_get_link_title, webkit_hit_test_result_get_link_title () +
+
webkit_hit_test_result_get_link_uri, webkit_hit_test_result_get_link_uri () +
+
webkit_hit_test_result_get_media_uri, webkit_hit_test_result_get_media_uri () +
+
+
+
+

I

+
+
WebKitInsecureContentEvent, enum WebKitInsecureContentEvent +
+
WebKitInstallMissingMediaPluginsPermissionRequest, struct WebKitInstallMissingMediaPluginsPermissionRequest +
+
webkit_install_missing_media_plugins_permission_request_get_description, webkit_install_missing_media_plugins_permission_request_get_description () +
+
+
+
+

J

+
+
WebKitJavascriptError, enum WebKitJavascriptError +
+
WebKitJavascriptResult, WebKitJavascriptResult +
+
WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR +
+
webkit_javascript_error_quark, webkit_javascript_error_quark () +
+
webkit_javascript_result_get_js_value, webkit_javascript_result_get_js_value () +
+
webkit_javascript_result_ref, webkit_javascript_result_ref () +
+
webkit_javascript_result_unref, webkit_javascript_result_unref () +
+
+
+
+

L

+
WebKitLoadEvent, enum WebKitLoadEvent +
+
+
+

M

+
+
WebKitMimeInfo, WebKitMimeInfo +
+
webkit_mime_info_get_description, webkit_mime_info_get_description () +
+
webkit_mime_info_get_extensions, webkit_mime_info_get_extensions () +
+
webkit_mime_info_get_mime_type, webkit_mime_info_get_mime_type () +
+
webkit_mime_info_ref, webkit_mime_info_ref () +
+
webkit_mime_info_unref, webkit_mime_info_unref () +
+
+
+
+

N

+
+
WebKitNavigationAction, WebKitNavigationAction +
+
WebKitNavigationPolicyDecision, struct WebKitNavigationPolicyDecision +
+
WebKitNavigationPolicyDecision:frame-name, The “frame-name” property +
+
WebKitNavigationPolicyDecision:navigation-action, The “navigation-action” property +
+
WebKitNavigationType, enum WebKitNavigationType +
+
webkit_navigation_action_copy, webkit_navigation_action_copy () +
+
webkit_navigation_action_free, webkit_navigation_action_free () +
+
webkit_navigation_action_get_modifiers, webkit_navigation_action_get_modifiers () +
+
webkit_navigation_action_get_mouse_button, webkit_navigation_action_get_mouse_button () +
+
webkit_navigation_action_get_navigation_type, webkit_navigation_action_get_navigation_type () +
+
webkit_navigation_action_get_request, webkit_navigation_action_get_request () +
+
webkit_navigation_action_is_redirect, webkit_navigation_action_is_redirect () +
+
webkit_navigation_action_is_user_gesture, webkit_navigation_action_is_user_gesture () +
+
webkit_navigation_policy_decision_get_frame_name, webkit_navigation_policy_decision_get_frame_name () +
+
webkit_navigation_policy_decision_get_navigation_action, webkit_navigation_policy_decision_get_navigation_action () +
+
WebKitNetworkError, enum WebKitNetworkError +
+
WebKitNetworkProxyMode, enum WebKitNetworkProxyMode +
+
WebKitNetworkProxySettings, WebKitNetworkProxySettings +
+
WEBKIT_NETWORK_ERROR, WEBKIT_NETWORK_ERROR +
+
webkit_network_error_quark, webkit_network_error_quark () +
+
webkit_network_proxy_settings_add_proxy_for_scheme, webkit_network_proxy_settings_add_proxy_for_scheme () +
+
webkit_network_proxy_settings_copy, webkit_network_proxy_settings_copy () +
+
webkit_network_proxy_settings_free, webkit_network_proxy_settings_free () +
+
webkit_network_proxy_settings_new, webkit_network_proxy_settings_new () +
+
WebKitNotification, struct WebKitNotification +
+
WebKitNotification::clicked, The “clicked” signal +
+
WebKitNotification::closed, The “closed” signal +
+
WebKitNotification:body, The “body” property +
+
WebKitNotification:id, The “id” property +
+
WebKitNotification:tag, The “tag” property +
+
WebKitNotification:title, The “title” property +
+
WebKitNotificationPermissionRequest, struct WebKitNotificationPermissionRequest +
+
webkit_notification_clicked, webkit_notification_clicked () +
+
webkit_notification_close, webkit_notification_close () +
+
webkit_notification_get_body, webkit_notification_get_body () +
+
webkit_notification_get_id, webkit_notification_get_id () +
+
webkit_notification_get_tag, webkit_notification_get_tag () +
+
webkit_notification_get_title, webkit_notification_get_title () +
+
+
+
+

P

+
+
WebKitPermissionRequest, WebKitPermissionRequest +
+
webkit_permission_request_allow, webkit_permission_request_allow () +
+
webkit_permission_request_deny, webkit_permission_request_deny () +
+
WebKitPlugin, struct WebKitPlugin +
+
WebKitPluginError, enum WebKitPluginError +
+
WEBKIT_PLUGIN_ERROR, WEBKIT_PLUGIN_ERROR +
+
webkit_plugin_error_quark, webkit_plugin_error_quark () +
+
webkit_plugin_get_description, webkit_plugin_get_description () +
+
webkit_plugin_get_mime_info_list, webkit_plugin_get_mime_info_list () +
+
webkit_plugin_get_name, webkit_plugin_get_name () +
+
webkit_plugin_get_path, webkit_plugin_get_path () +
+
WebKitPolicyDecision, struct WebKitPolicyDecision +
+
WebKitPolicyDecisionType, enum WebKitPolicyDecisionType +
+
WebKitPolicyError, enum WebKitPolicyError +
+
webkit_policy_decision_download, webkit_policy_decision_download () +
+
webkit_policy_decision_ignore, webkit_policy_decision_ignore () +
+
webkit_policy_decision_use, webkit_policy_decision_use () +
+
WEBKIT_POLICY_ERROR, WEBKIT_POLICY_ERROR +
+
webkit_policy_error_quark, webkit_policy_error_quark () +
+
WebKitProcessModel, enum WebKitProcessModel +
+
+
+
+

R

+
+
WebKitResponsePolicyDecision, struct WebKitResponsePolicyDecision +
+
WebKitResponsePolicyDecision:request, The “request” property +
+
WebKitResponsePolicyDecision:response, The “response” property +
+
webkit_response_policy_decision_get_request, webkit_response_policy_decision_get_request () +
+
webkit_response_policy_decision_get_response, webkit_response_policy_decision_get_response () +
+
webkit_response_policy_decision_is_mime_type_supported, webkit_response_policy_decision_is_mime_type_supported () +
+
+
+
+

S

+
+
WebKitSaveMode, enum WebKitSaveMode +
+
WebKitScriptDialog, WebKitScriptDialog +
+
WebKitScriptDialogType, enum WebKitScriptDialogType +
+
webkit_script_dialog_close, webkit_script_dialog_close () +
+
webkit_script_dialog_confirm_set_confirmed, webkit_script_dialog_confirm_set_confirmed () +
+
webkit_script_dialog_get_dialog_type, webkit_script_dialog_get_dialog_type () +
+
webkit_script_dialog_get_message, webkit_script_dialog_get_message () +
+
webkit_script_dialog_prompt_get_default_text, webkit_script_dialog_prompt_get_default_text () +
+
webkit_script_dialog_prompt_set_text, webkit_script_dialog_prompt_set_text () +
+
webkit_script_dialog_ref, webkit_script_dialog_ref () +
+
webkit_script_dialog_unref, webkit_script_dialog_unref () +
+
WebKitSecurityManager, struct WebKitSecurityManager +
+
WebKitSecurityOrigin, WebKitSecurityOrigin +
+
webkit_security_manager_register_uri_scheme_as_cors_enabled, webkit_security_manager_register_uri_scheme_as_cors_enabled () +
+
webkit_security_manager_register_uri_scheme_as_display_isolated, webkit_security_manager_register_uri_scheme_as_display_isolated () +
+
webkit_security_manager_register_uri_scheme_as_empty_document, webkit_security_manager_register_uri_scheme_as_empty_document () +
+
webkit_security_manager_register_uri_scheme_as_local, webkit_security_manager_register_uri_scheme_as_local () +
+
webkit_security_manager_register_uri_scheme_as_no_access, webkit_security_manager_register_uri_scheme_as_no_access () +
+
webkit_security_manager_register_uri_scheme_as_secure, webkit_security_manager_register_uri_scheme_as_secure () +
+
webkit_security_manager_uri_scheme_is_cors_enabled, webkit_security_manager_uri_scheme_is_cors_enabled () +
+
webkit_security_manager_uri_scheme_is_display_isolated, webkit_security_manager_uri_scheme_is_display_isolated () +
+
webkit_security_manager_uri_scheme_is_empty_document, webkit_security_manager_uri_scheme_is_empty_document () +
+
webkit_security_manager_uri_scheme_is_local, webkit_security_manager_uri_scheme_is_local () +
+
webkit_security_manager_uri_scheme_is_no_access, webkit_security_manager_uri_scheme_is_no_access () +
+
webkit_security_manager_uri_scheme_is_secure, webkit_security_manager_uri_scheme_is_secure () +
+
webkit_security_origin_get_host, webkit_security_origin_get_host () +
+
webkit_security_origin_get_port, webkit_security_origin_get_port () +
+
webkit_security_origin_get_protocol, webkit_security_origin_get_protocol () +
+
webkit_security_origin_is_opaque, webkit_security_origin_is_opaque () +
+
webkit_security_origin_new, webkit_security_origin_new () +
+
webkit_security_origin_new_for_uri, webkit_security_origin_new_for_uri () +
+
webkit_security_origin_ref, webkit_security_origin_ref () +
+
webkit_security_origin_to_string, webkit_security_origin_to_string () +
+
webkit_security_origin_unref, webkit_security_origin_unref () +
+
WebKitSettings, struct WebKitSettings +
+
WebKitSettings:allow-file-access-from-file-urls, The “allow-file-access-from-file-urls” property +
+
WebKitSettings:allow-modal-dialogs, The “allow-modal-dialogs” property +
+
WebKitSettings:allow-universal-access-from-file-urls, The “allow-universal-access-from-file-urls” property +
+
WebKitSettings:auto-load-images, The “auto-load-images” property +
+
WebKitSettings:cursive-font-family, The “cursive-font-family” property +
+
WebKitSettings:default-charset, The “default-charset” property +
+
WebKitSettings:default-font-family, The “default-font-family” property +
+
WebKitSettings:default-font-size, The “default-font-size” property +
+
WebKitSettings:default-monospace-font-size, The “default-monospace-font-size” property +
+
WebKitSettings:draw-compositing-indicators, The “draw-compositing-indicators” property +
+
WebKitSettings:enable-accelerated-2d-canvas, The “enable-accelerated-2d-canvas” property +
+
WebKitSettings:enable-caret-browsing, The “enable-caret-browsing” property +
+
WebKitSettings:enable-developer-extras, The “enable-developer-extras” property +
+
WebKitSettings:enable-dns-prefetching, The “enable-dns-prefetching” property +
+
WebKitSettings:enable-encrypted-media, The “enable-encrypted-media” property +
+
WebKitSettings:enable-frame-flattening, The “enable-frame-flattening” property +
+
WebKitSettings:enable-fullscreen, The “enable-fullscreen” property +
+
WebKitSettings:enable-html5-database, The “enable-html5-database” property +
+
WebKitSettings:enable-html5-local-storage, The “enable-html5-local-storage” property +
+
WebKitSettings:enable-hyperlink-auditing, The “enable-hyperlink-auditing” property +
+
WebKitSettings:enable-java, The “enable-java” property +
+
WebKitSettings:enable-javascript, The “enable-javascript” property +
+
WebKitSettings:enable-javascript-markup, The “enable-javascript-markup” property +
+
WebKitSettings:enable-media-capabilities, The “enable-media-capabilities” property +
+
WebKitSettings:enable-media-stream, The “enable-media-stream” property +
+
WebKitSettings:enable-mediasource, The “enable-mediasource” property +
+
WebKitSettings:enable-mock-capture-devices, The “enable-mock-capture-devices” property +
+
WebKitSettings:enable-offline-web-application-cache, The “enable-offline-web-application-cache” property +
+
WebKitSettings:enable-page-cache, The “enable-page-cache” property +
+
WebKitSettings:enable-plugins, The “enable-plugins” property +
+
WebKitSettings:enable-resizable-text-areas, The “enable-resizable-text-areas” property +
+
WebKitSettings:enable-site-specific-quirks, The “enable-site-specific-quirks” property +
+
WebKitSettings:enable-smooth-scrolling, The “enable-smooth-scrolling” property +
+
WebKitSettings:enable-spatial-navigation, The “enable-spatial-navigation” property +
+
WebKitSettings:enable-tabs-to-links, The “enable-tabs-to-links” property +
+
WebKitSettings:enable-webaudio, The “enable-webaudio” property +
+
WebKitSettings:enable-webgl, The “enable-webgl” property +
+
WebKitSettings:enable-write-console-messages-to-stdout, The “enable-write-console-messages-to-stdout” property +
+
WebKitSettings:enable-xss-auditor, The “enable-xss-auditor” property +
+
WebKitSettings:fantasy-font-family, The “fantasy-font-family” property +
+
WebKitSettings:javascript-can-access-clipboard, The “javascript-can-access-clipboard” property +
+
WebKitSettings:javascript-can-open-windows-automatically, The “javascript-can-open-windows-automatically” property +
+
WebKitSettings:load-icons-ignoring-image-load-setting, The “load-icons-ignoring-image-load-setting” property +
+
WebKitSettings:media-playback-allows-inline, The “media-playback-allows-inline” property +
+
WebKitSettings:media-playback-requires-user-gesture, The “media-playback-requires-user-gesture” property +
+
WebKitSettings:minimum-font-size, The “minimum-font-size” property +
+
WebKitSettings:monospace-font-family, The “monospace-font-family” property +
+
WebKitSettings:pictograph-font-family, The “pictograph-font-family” property +
+
WebKitSettings:print-backgrounds, The “print-backgrounds” property +
+
WebKitSettings:sans-serif-font-family, The “sans-serif-font-family” property +
+
WebKitSettings:serif-font-family, The “serif-font-family” property +
+
WebKitSettings:user-agent, The “user-agent” property +
+
WebKitSettings:zoom-text-only, The “zoom-text-only” property +
+
webkit_settings_get_allow_file_access_from_file_urls, webkit_settings_get_allow_file_access_from_file_urls () +
+
webkit_settings_get_allow_modal_dialogs, webkit_settings_get_allow_modal_dialogs () +
+
webkit_settings_get_allow_universal_access_from_file_urls, webkit_settings_get_allow_universal_access_from_file_urls () +
+
webkit_settings_get_auto_load_images, webkit_settings_get_auto_load_images () +
+
webkit_settings_get_cursive_font_family, webkit_settings_get_cursive_font_family () +
+
webkit_settings_get_default_charset, webkit_settings_get_default_charset () +
+
webkit_settings_get_default_font_family, webkit_settings_get_default_font_family () +
+
webkit_settings_get_default_font_size, webkit_settings_get_default_font_size () +
+
webkit_settings_get_default_monospace_font_size, webkit_settings_get_default_monospace_font_size () +
+
webkit_settings_get_draw_compositing_indicators, webkit_settings_get_draw_compositing_indicators () +
+
webkit_settings_get_enable_accelerated_2d_canvas, webkit_settings_get_enable_accelerated_2d_canvas () +
+
webkit_settings_get_enable_caret_browsing, webkit_settings_get_enable_caret_browsing () +
+
webkit_settings_get_enable_developer_extras, webkit_settings_get_enable_developer_extras () +
+
webkit_settings_get_enable_dns_prefetching, webkit_settings_get_enable_dns_prefetching () +
+
webkit_settings_get_enable_encrypted_media, webkit_settings_get_enable_encrypted_media () +
+
webkit_settings_get_enable_frame_flattening, webkit_settings_get_enable_frame_flattening () +
+
webkit_settings_get_enable_fullscreen, webkit_settings_get_enable_fullscreen () +
+
webkit_settings_get_enable_html5_database, webkit_settings_get_enable_html5_database () +
+
webkit_settings_get_enable_html5_local_storage, webkit_settings_get_enable_html5_local_storage () +
+
webkit_settings_get_enable_hyperlink_auditing, webkit_settings_get_enable_hyperlink_auditing () +
+
webkit_settings_get_enable_java, webkit_settings_get_enable_java () +
+
webkit_settings_get_enable_javascript, webkit_settings_get_enable_javascript () +
+
webkit_settings_get_enable_javascript_markup, webkit_settings_get_enable_javascript_markup () +
+
webkit_settings_get_enable_mediasource, webkit_settings_get_enable_mediasource () +
+
webkit_settings_get_enable_media_capabilities, webkit_settings_get_enable_media_capabilities () +
+
webkit_settings_get_enable_media_stream, webkit_settings_get_enable_media_stream () +
+
webkit_settings_get_enable_mock_capture_devices, webkit_settings_get_enable_mock_capture_devices () +
+
webkit_settings_get_enable_offline_web_application_cache, webkit_settings_get_enable_offline_web_application_cache () +
+
webkit_settings_get_enable_page_cache, webkit_settings_get_enable_page_cache () +
+
webkit_settings_get_enable_plugins, webkit_settings_get_enable_plugins () +
+
webkit_settings_get_enable_resizable_text_areas, webkit_settings_get_enable_resizable_text_areas () +
+
webkit_settings_get_enable_site_specific_quirks, webkit_settings_get_enable_site_specific_quirks () +
+
webkit_settings_get_enable_smooth_scrolling, webkit_settings_get_enable_smooth_scrolling () +
+
webkit_settings_get_enable_spatial_navigation, webkit_settings_get_enable_spatial_navigation () +
+
webkit_settings_get_enable_tabs_to_links, webkit_settings_get_enable_tabs_to_links () +
+
webkit_settings_get_enable_webaudio, webkit_settings_get_enable_webaudio () +
+
webkit_settings_get_enable_webgl, webkit_settings_get_enable_webgl () +
+
webkit_settings_get_enable_write_console_messages_to_stdout, webkit_settings_get_enable_write_console_messages_to_stdout () +
+
webkit_settings_get_enable_xss_auditor, webkit_settings_get_enable_xss_auditor () +
+
webkit_settings_get_fantasy_font_family, webkit_settings_get_fantasy_font_family () +
+
webkit_settings_get_javascript_can_access_clipboard, webkit_settings_get_javascript_can_access_clipboard () +
+
webkit_settings_get_javascript_can_open_windows_automatically, webkit_settings_get_javascript_can_open_windows_automatically () +
+
webkit_settings_get_load_icons_ignoring_image_load_setting, webkit_settings_get_load_icons_ignoring_image_load_setting () +
+
webkit_settings_get_media_playback_allows_inline, webkit_settings_get_media_playback_allows_inline () +
+
webkit_settings_get_media_playback_requires_user_gesture, webkit_settings_get_media_playback_requires_user_gesture () +
+
webkit_settings_get_minimum_font_size, webkit_settings_get_minimum_font_size () +
+
webkit_settings_get_monospace_font_family, webkit_settings_get_monospace_font_family () +
+
webkit_settings_get_pictograph_font_family, webkit_settings_get_pictograph_font_family () +
+
webkit_settings_get_print_backgrounds, webkit_settings_get_print_backgrounds () +
+
webkit_settings_get_sans_serif_font_family, webkit_settings_get_sans_serif_font_family () +
+
webkit_settings_get_serif_font_family, webkit_settings_get_serif_font_family () +
+
webkit_settings_get_user_agent, webkit_settings_get_user_agent () +
+
webkit_settings_get_zoom_text_only, webkit_settings_get_zoom_text_only () +
+
webkit_settings_new, webkit_settings_new () +
+
webkit_settings_new_with_settings, webkit_settings_new_with_settings () +
+
webkit_settings_set_allow_file_access_from_file_urls, webkit_settings_set_allow_file_access_from_file_urls () +
+
webkit_settings_set_allow_modal_dialogs, webkit_settings_set_allow_modal_dialogs () +
+
webkit_settings_set_allow_universal_access_from_file_urls, webkit_settings_set_allow_universal_access_from_file_urls () +
+
webkit_settings_set_auto_load_images, webkit_settings_set_auto_load_images () +
+
webkit_settings_set_cursive_font_family, webkit_settings_set_cursive_font_family () +
+
webkit_settings_set_default_charset, webkit_settings_set_default_charset () +
+
webkit_settings_set_default_font_family, webkit_settings_set_default_font_family () +
+
webkit_settings_set_default_font_size, webkit_settings_set_default_font_size () +
+
webkit_settings_set_default_monospace_font_size, webkit_settings_set_default_monospace_font_size () +
+
webkit_settings_set_draw_compositing_indicators, webkit_settings_set_draw_compositing_indicators () +
+
webkit_settings_set_enable_accelerated_2d_canvas, webkit_settings_set_enable_accelerated_2d_canvas () +
+
webkit_settings_set_enable_caret_browsing, webkit_settings_set_enable_caret_browsing () +
+
webkit_settings_set_enable_developer_extras, webkit_settings_set_enable_developer_extras () +
+
webkit_settings_set_enable_dns_prefetching, webkit_settings_set_enable_dns_prefetching () +
+
webkit_settings_set_enable_encrypted_media, webkit_settings_set_enable_encrypted_media () +
+
webkit_settings_set_enable_frame_flattening, webkit_settings_set_enable_frame_flattening () +
+
webkit_settings_set_enable_fullscreen, webkit_settings_set_enable_fullscreen () +
+
webkit_settings_set_enable_html5_database, webkit_settings_set_enable_html5_database () +
+
webkit_settings_set_enable_html5_local_storage, webkit_settings_set_enable_html5_local_storage () +
+
webkit_settings_set_enable_hyperlink_auditing, webkit_settings_set_enable_hyperlink_auditing () +
+
webkit_settings_set_enable_java, webkit_settings_set_enable_java () +
+
webkit_settings_set_enable_javascript, webkit_settings_set_enable_javascript () +
+
webkit_settings_set_enable_javascript_markup, webkit_settings_set_enable_javascript_markup () +
+
webkit_settings_set_enable_mediasource, webkit_settings_set_enable_mediasource () +
+
webkit_settings_set_enable_media_capabilities, webkit_settings_set_enable_media_capabilities () +
+
webkit_settings_set_enable_media_stream, webkit_settings_set_enable_media_stream () +
+
webkit_settings_set_enable_mock_capture_devices, webkit_settings_set_enable_mock_capture_devices () +
+
webkit_settings_set_enable_offline_web_application_cache, webkit_settings_set_enable_offline_web_application_cache () +
+
webkit_settings_set_enable_page_cache, webkit_settings_set_enable_page_cache () +
+
webkit_settings_set_enable_plugins, webkit_settings_set_enable_plugins () +
+
webkit_settings_set_enable_resizable_text_areas, webkit_settings_set_enable_resizable_text_areas () +
+
webkit_settings_set_enable_site_specific_quirks, webkit_settings_set_enable_site_specific_quirks () +
+
webkit_settings_set_enable_smooth_scrolling, webkit_settings_set_enable_smooth_scrolling () +
+
webkit_settings_set_enable_spatial_navigation, webkit_settings_set_enable_spatial_navigation () +
+
webkit_settings_set_enable_tabs_to_links, webkit_settings_set_enable_tabs_to_links () +
+
webkit_settings_set_enable_webaudio, webkit_settings_set_enable_webaudio () +
+
webkit_settings_set_enable_webgl, webkit_settings_set_enable_webgl () +
+
webkit_settings_set_enable_write_console_messages_to_stdout, webkit_settings_set_enable_write_console_messages_to_stdout () +
+
webkit_settings_set_enable_xss_auditor, webkit_settings_set_enable_xss_auditor () +
+
webkit_settings_set_fantasy_font_family, webkit_settings_set_fantasy_font_family () +
+
webkit_settings_set_javascript_can_access_clipboard, webkit_settings_set_javascript_can_access_clipboard () +
+
webkit_settings_set_javascript_can_open_windows_automatically, webkit_settings_set_javascript_can_open_windows_automatically () +
+
webkit_settings_set_load_icons_ignoring_image_load_setting, webkit_settings_set_load_icons_ignoring_image_load_setting () +
+
webkit_settings_set_media_playback_allows_inline, webkit_settings_set_media_playback_allows_inline () +
+
webkit_settings_set_media_playback_requires_user_gesture, webkit_settings_set_media_playback_requires_user_gesture () +
+
webkit_settings_set_minimum_font_size, webkit_settings_set_minimum_font_size () +
+
webkit_settings_set_monospace_font_family, webkit_settings_set_monospace_font_family () +
+
webkit_settings_set_pictograph_font_family, webkit_settings_set_pictograph_font_family () +
+
webkit_settings_set_print_backgrounds, webkit_settings_set_print_backgrounds () +
+
webkit_settings_set_sans_serif_font_family, webkit_settings_set_sans_serif_font_family () +
+
webkit_settings_set_serif_font_family, webkit_settings_set_serif_font_family () +
+
webkit_settings_set_user_agent, webkit_settings_set_user_agent () +
+
webkit_settings_set_user_agent_with_application_details, webkit_settings_set_user_agent_with_application_details () +
+
webkit_settings_set_zoom_text_only, webkit_settings_set_zoom_text_only () +
+
WebKitSnapshotError, enum WebKitSnapshotError +
+
WEBKIT_SNAPSHOT_ERROR, WEBKIT_SNAPSHOT_ERROR +
+
webkit_snapshot_error_quark, webkit_snapshot_error_quark () +
+
+
+
+

T

+
+
WebKitTLSErrorsPolicy, enum WebKitTLSErrorsPolicy +
+
WEBKIT_TYPE_WEB_VIEW_BACKEND, WEBKIT_TYPE_WEB_VIEW_BACKEND +
+
+
+
+

U

+
+
WebKitURIRequest, struct WebKitURIRequest +
+
WebKitURIRequest:uri, The “uri” property +
+
WebKitURIResponse, struct WebKitURIResponse +
+
WebKitURIResponse:content-length, The “content-length” property +
+
WebKitURIResponse:http-headers, The “http-headers” property +
+
WebKitURIResponse:mime-type, The “mime-type” property +
+
WebKitURIResponse:status-code, The “status-code” property +
+
WebKitURIResponse:suggested-filename, The “suggested-filename” property +
+
WebKitURIResponse:uri, The “uri” property +
+
WebKitURISchemeRequest, struct WebKitURISchemeRequest +
+
WebKitURISchemeRequestCallback, WebKitURISchemeRequestCallback () +
+
webkit_uri_for_display, webkit_uri_for_display () +
+
webkit_uri_request_get_http_headers, webkit_uri_request_get_http_headers () +
+
webkit_uri_request_get_http_method, webkit_uri_request_get_http_method () +
+
webkit_uri_request_get_uri, webkit_uri_request_get_uri () +
+
webkit_uri_request_new, webkit_uri_request_new () +
+
webkit_uri_request_set_uri, webkit_uri_request_set_uri () +
+
webkit_uri_response_get_content_length, webkit_uri_response_get_content_length () +
+
webkit_uri_response_get_http_headers, webkit_uri_response_get_http_headers () +
+
webkit_uri_response_get_mime_type, webkit_uri_response_get_mime_type () +
+
webkit_uri_response_get_status_code, webkit_uri_response_get_status_code () +
+
webkit_uri_response_get_suggested_filename, webkit_uri_response_get_suggested_filename () +
+
webkit_uri_response_get_uri, webkit_uri_response_get_uri () +
+
webkit_uri_scheme_request_finish, webkit_uri_scheme_request_finish () +
+
webkit_uri_scheme_request_finish_error, webkit_uri_scheme_request_finish_error () +
+
webkit_uri_scheme_request_get_path, webkit_uri_scheme_request_get_path () +
+
webkit_uri_scheme_request_get_scheme, webkit_uri_scheme_request_get_scheme () +
+
webkit_uri_scheme_request_get_uri, webkit_uri_scheme_request_get_uri () +
+
webkit_uri_scheme_request_get_web_view, webkit_uri_scheme_request_get_web_view () +
+
WebKitUserContentFilter, WebKitUserContentFilter +
+
WebKitUserContentFilterError, enum WebKitUserContentFilterError +
+
WebKitUserContentInjectedFrames, enum WebKitUserContentInjectedFrames +
+
WebKitUserContentManager, struct WebKitUserContentManager +
+
WebKitUserContentManager::script-message-received, The “script-message-received” signal +
+
WebKitUserMediaPermissionRequest, struct WebKitUserMediaPermissionRequest +
+
WebKitUserMediaPermissionRequest:is-for-audio-device, The “is-for-audio-device” property +
+
WebKitUserMediaPermissionRequest:is-for-video-device, The “is-for-video-device” property +
+
WebKitUserScript, WebKitUserScript +
+
WebKitUserScriptInjectionTime, enum WebKitUserScriptInjectionTime +
+
WebKitUserStyleLevel, enum WebKitUserStyleLevel +
+
WebKitUserStyleSheet, WebKitUserStyleSheet +
+
WEBKIT_USER_CONTENT_FILTER_ERROR, WEBKIT_USER_CONTENT_FILTER_ERROR +
+
webkit_user_content_filter_error_quark, webkit_user_content_filter_error_quark () +
+
webkit_user_content_filter_get_identifier, webkit_user_content_filter_get_identifier () +
+
webkit_user_content_filter_ref, webkit_user_content_filter_ref () +
+
webkit_user_content_filter_unref, webkit_user_content_filter_unref () +
+
webkit_user_content_manager_add_filter, webkit_user_content_manager_add_filter () +
+
webkit_user_content_manager_add_script, webkit_user_content_manager_add_script () +
+
webkit_user_content_manager_add_style_sheet, webkit_user_content_manager_add_style_sheet () +
+
webkit_user_content_manager_new, webkit_user_content_manager_new () +
+
webkit_user_content_manager_register_script_message_handler, webkit_user_content_manager_register_script_message_handler () +
+
webkit_user_content_manager_register_script_message_handler_in_world, webkit_user_content_manager_register_script_message_handler_in_world () +
+
webkit_user_content_manager_remove_all_filters, webkit_user_content_manager_remove_all_filters () +
+
webkit_user_content_manager_remove_all_scripts, webkit_user_content_manager_remove_all_scripts () +
+
webkit_user_content_manager_remove_all_style_sheets, webkit_user_content_manager_remove_all_style_sheets () +
+
webkit_user_content_manager_remove_filter, webkit_user_content_manager_remove_filter () +
+
webkit_user_content_manager_unregister_script_message_handler, webkit_user_content_manager_unregister_script_message_handler () +
+
webkit_user_content_manager_unregister_script_message_handler_in_world, webkit_user_content_manager_unregister_script_message_handler_in_world () +
+
webkit_user_media_permission_is_for_audio_device, webkit_user_media_permission_is_for_audio_device () +
+
webkit_user_media_permission_is_for_video_device, webkit_user_media_permission_is_for_video_device () +
+
webkit_user_script_new, webkit_user_script_new () +
+
webkit_user_script_new_for_world, webkit_user_script_new_for_world () +
+
webkit_user_script_ref, webkit_user_script_ref () +
+
webkit_user_script_unref, webkit_user_script_unref () +
+
webkit_user_style_sheet_new, webkit_user_style_sheet_new () +
+
webkit_user_style_sheet_new_for_world, webkit_user_style_sheet_new_for_world () +
+
webkit_user_style_sheet_ref, webkit_user_style_sheet_ref () +
+
webkit_user_style_sheet_unref, webkit_user_style_sheet_unref () +
+
+
+
+

W

+
+
WebKitWebContext, struct WebKitWebContext +
+
WebKitWebContext::automation-started, The “automation-started” signal +
+
WebKitWebContext::download-started, The “download-started” signal +
+
WebKitWebContext::initialize-notification-permissions, The “initialize-notification-permissions” signal +
+
WebKitWebContext::initialize-web-extensions, The “initialize-web-extensions” signal +
+
WebKitWebContext:website-data-manager, The “website-data-manager” property +
+
WebKitWebProcessTerminationReason, enum WebKitWebProcessTerminationReason +
+
WebKitWebResource, struct WebKitWebResource +
+
WebKitWebResource::failed, The “failed” signal +
+
WebKitWebResource::failed-with-tls-errors, The “failed-with-tls-errors” signal +
+
WebKitWebResource::finished, The “finished” signal +
+
WebKitWebResource::received-data, The “received-data” signal +
+
WebKitWebResource::sent-request, The “sent-request” signal +
+
WebKitWebResource:response, The “response” property +
+
WebKitWebResource:uri, The “uri” property +
+
WebKitWebsiteData, WebKitWebsiteData +
+
WebKitWebsiteDataManager, struct WebKitWebsiteDataManager +
+
WebKitWebsiteDataManager:base-cache-directory, The “base-cache-directory” property +
+
WebKitWebsiteDataManager:base-data-directory, The “base-data-directory” property +
+
WebKitWebsiteDataManager:disk-cache-directory, The “disk-cache-directory” property +
+
WebKitWebsiteDataManager:indexeddb-directory, The “indexeddb-directory” property +
+
WebKitWebsiteDataManager:is-ephemeral, The “is-ephemeral” property +
+
WebKitWebsiteDataManager:local-storage-directory, The “local-storage-directory” property +
+
WebKitWebsiteDataManager:offline-application-cache-directory, The “offline-application-cache-directory” property +
+
WebKitWebsiteDataManager:websql-directory, The “websql-directory” property +
+
WebKitWebsiteDataTypes, enum WebKitWebsiteDataTypes +
+
webkit_website_data_get_name, webkit_website_data_get_name () +
+
webkit_website_data_get_size, webkit_website_data_get_size () +
+
webkit_website_data_get_types, webkit_website_data_get_types () +
+
webkit_website_data_manager_clear, webkit_website_data_manager_clear () +
+
webkit_website_data_manager_clear_finish, webkit_website_data_manager_clear_finish () +
+
webkit_website_data_manager_fetch, webkit_website_data_manager_fetch () +
+
webkit_website_data_manager_fetch_finish, webkit_website_data_manager_fetch_finish () +
+
webkit_website_data_manager_get_base_cache_directory, webkit_website_data_manager_get_base_cache_directory () +
+
webkit_website_data_manager_get_base_data_directory, webkit_website_data_manager_get_base_data_directory () +
+
webkit_website_data_manager_get_cookie_manager, webkit_website_data_manager_get_cookie_manager () +
+
webkit_website_data_manager_get_disk_cache_directory, webkit_website_data_manager_get_disk_cache_directory () +
+
webkit_website_data_manager_get_indexeddb_directory, webkit_website_data_manager_get_indexeddb_directory () +
+
webkit_website_data_manager_get_local_storage_directory, webkit_website_data_manager_get_local_storage_directory () +
+
webkit_website_data_manager_get_offline_application_cache_directory, webkit_website_data_manager_get_offline_application_cache_directory () +
+
webkit_website_data_manager_get_websql_directory, webkit_website_data_manager_get_websql_directory () +
+
webkit_website_data_manager_is_ephemeral, webkit_website_data_manager_is_ephemeral () +
+
webkit_website_data_manager_new, webkit_website_data_manager_new () +
+
webkit_website_data_manager_new_ephemeral, webkit_website_data_manager_new_ephemeral () +
+
webkit_website_data_manager_remove, webkit_website_data_manager_remove () +
+
webkit_website_data_manager_remove_finish, webkit_website_data_manager_remove_finish () +
+
webkit_website_data_ref, webkit_website_data_ref () +
+
webkit_website_data_unref, webkit_website_data_unref () +
+
WebKitWebView, WebKitWebView +
+
WebKitWebView::authenticate, The “authenticate” signal +
+
WebKitWebView::close, The “close” signal +
+
WebKitWebView::context-menu, The “context-menu” signal +
+
WebKitWebView::context-menu-dismissed, The “context-menu-dismissed” signal +
+
WebKitWebView::create, The “create” signal +
+
WebKitWebView::decide-policy, The “decide-policy” signal +
+
WebKitWebView::enter-fullscreen, The “enter-fullscreen” signal +
+
WebKitWebView::insecure-content-detected, The “insecure-content-detected” signal +
+
WebKitWebView::leave-fullscreen, The “leave-fullscreen” signal +
+
WebKitWebView::load-changed, The “load-changed” signal +
+
WebKitWebView::load-failed, The “load-failed” signal +
+
WebKitWebView::load-failed-with-tls-errors, The “load-failed-with-tls-errors” signal +
+
WebKitWebView::mouse-target-changed, The “mouse-target-changed” signal +
+
WebKitWebView::permission-request, The “permission-request” signal +
+
WebKitWebView::ready-to-show, The “ready-to-show” signal +
+
WebKitWebView::resource-load-started, The “resource-load-started” signal +
+
WebKitWebView::run-as-modal, The “run-as-modal” signal +
+
WebKitWebView::run-file-chooser, The “run-file-chooser” signal +
+
WebKitWebView::script-dialog, The “script-dialog” signal +
+
WebKitWebView::show-notification, The “show-notification” signal +
+
WebKitWebView::submit-form, The “submit-form” signal +
+
WebKitWebView::web-process-terminated, The “web-process-terminated” signal +
+
WebKitWebView:backend, The “backend” property +
+
WebKitWebView:editable, The “editable” property +
+
WebKitWebView:estimated-load-progress, The “estimated-load-progress” property +
+
WebKitWebView:is-controlled-by-automation, The “is-controlled-by-automation” property +
+
WebKitWebView:is-ephemeral, The “is-ephemeral” property +
+
WebKitWebView:is-loading, The “is-loading” property +
+
WebKitWebView:is-playing-audio, The “is-playing-audio” property +
+
WebKitWebView:related-view, The “related-view” property +
+
WebKitWebView:settings, The “settings” property +
+
WebKitWebView:title, The “title” property +
+
WebKitWebView:uri, The “uri” property +
+
WebKitWebView:user-content-manager, The “user-content-manager” property +
+
WebKitWebView:web-context, The “web-context” property +
+
WebKitWebView:zoom-level, The “zoom-level” property +
+
WebKitWebViewBackend, WebKitWebViewBackend +
+
WebKitWebViewSessionState, WebKitWebViewSessionState +
+
webkit_web_context_allow_tls_certificate_for_host, webkit_web_context_allow_tls_certificate_for_host () +
+
webkit_web_context_clear_cache, webkit_web_context_clear_cache () +
+
webkit_web_context_download_uri, webkit_web_context_download_uri () +
+
webkit_web_context_get_cache_model, webkit_web_context_get_cache_model () +
+
webkit_web_context_get_cookie_manager, webkit_web_context_get_cookie_manager () +
+
webkit_web_context_get_default, webkit_web_context_get_default () +
+
webkit_web_context_get_favicon_database, webkit_web_context_get_favicon_database () +
+
webkit_web_context_get_favicon_database_directory, webkit_web_context_get_favicon_database_directory () +
+
webkit_web_context_get_plugins, webkit_web_context_get_plugins () +
+
webkit_web_context_get_plugins_finish, webkit_web_context_get_plugins_finish () +
+
webkit_web_context_get_process_model, webkit_web_context_get_process_model () +
+
webkit_web_context_get_security_manager, webkit_web_context_get_security_manager () +
+
webkit_web_context_get_spell_checking_enabled, webkit_web_context_get_spell_checking_enabled () +
+
webkit_web_context_get_spell_checking_languages, webkit_web_context_get_spell_checking_languages () +
+
webkit_web_context_get_tls_errors_policy, webkit_web_context_get_tls_errors_policy () +
+
webkit_web_context_get_website_data_manager, webkit_web_context_get_website_data_manager () +
+
webkit_web_context_get_web_process_count_limit, webkit_web_context_get_web_process_count_limit () +
+
webkit_web_context_initialize_notification_permissions, webkit_web_context_initialize_notification_permissions () +
+
webkit_web_context_is_automation_allowed, webkit_web_context_is_automation_allowed () +
+
webkit_web_context_is_ephemeral, webkit_web_context_is_ephemeral () +
+
webkit_web_context_new, webkit_web_context_new () +
+
webkit_web_context_new_ephemeral, webkit_web_context_new_ephemeral () +
+
webkit_web_context_new_with_website_data_manager, webkit_web_context_new_with_website_data_manager () +
+
webkit_web_context_prefetch_dns, webkit_web_context_prefetch_dns () +
+
webkit_web_context_register_uri_scheme, webkit_web_context_register_uri_scheme () +
+
webkit_web_context_set_additional_plugins_directory, webkit_web_context_set_additional_plugins_directory () +
+
webkit_web_context_set_automation_allowed, webkit_web_context_set_automation_allowed () +
+
webkit_web_context_set_cache_model, webkit_web_context_set_cache_model () +
+
webkit_web_context_set_favicon_database_directory, webkit_web_context_set_favicon_database_directory () +
+
webkit_web_context_set_network_proxy_settings, webkit_web_context_set_network_proxy_settings () +
+
webkit_web_context_set_preferred_languages, webkit_web_context_set_preferred_languages () +
+
webkit_web_context_set_process_model, webkit_web_context_set_process_model () +
+
webkit_web_context_set_spell_checking_enabled, webkit_web_context_set_spell_checking_enabled () +
+
webkit_web_context_set_spell_checking_languages, webkit_web_context_set_spell_checking_languages () +
+
webkit_web_context_set_tls_errors_policy, webkit_web_context_set_tls_errors_policy () +
+
webkit_web_context_set_web_extensions_directory, webkit_web_context_set_web_extensions_directory () +
+
webkit_web_context_set_web_extensions_initialization_user_data, webkit_web_context_set_web_extensions_initialization_user_data () +
+
webkit_web_context_set_web_process_count_limit, webkit_web_context_set_web_process_count_limit () +
+
webkit_web_resource_get_data, webkit_web_resource_get_data () +
+
webkit_web_resource_get_data_finish, webkit_web_resource_get_data_finish () +
+
webkit_web_resource_get_response, webkit_web_resource_get_response () +
+
webkit_web_resource_get_uri, webkit_web_resource_get_uri () +
+
webkit_web_view_add_frame_displayed_callback, webkit_web_view_add_frame_displayed_callback () +
+
webkit_web_view_backend_get_wpe_backend, webkit_web_view_backend_get_wpe_backend () +
+
webkit_web_view_backend_new, webkit_web_view_backend_new () +
+
webkit_web_view_can_execute_editing_command, webkit_web_view_can_execute_editing_command () +
+
webkit_web_view_can_execute_editing_command_finish, webkit_web_view_can_execute_editing_command_finish () +
+
webkit_web_view_can_go_back, webkit_web_view_can_go_back () +
+
webkit_web_view_can_go_forward, webkit_web_view_can_go_forward () +
+
webkit_web_view_can_show_mime_type, webkit_web_view_can_show_mime_type () +
+
webkit_web_view_download_uri, webkit_web_view_download_uri () +
+
webkit_web_view_execute_editing_command, webkit_web_view_execute_editing_command () +
+
webkit_web_view_execute_editing_command_with_argument, webkit_web_view_execute_editing_command_with_argument () +
+
webkit_web_view_get_backend, webkit_web_view_get_backend () +
+
webkit_web_view_get_back_forward_list, webkit_web_view_get_back_forward_list () +
+
webkit_web_view_get_context, webkit_web_view_get_context () +
+
webkit_web_view_get_custom_charset, webkit_web_view_get_custom_charset () +
+
webkit_web_view_get_editor_state, webkit_web_view_get_editor_state () +
+
webkit_web_view_get_estimated_load_progress, webkit_web_view_get_estimated_load_progress () +
+
webkit_web_view_get_find_controller, webkit_web_view_get_find_controller () +
+
webkit_web_view_get_main_resource, webkit_web_view_get_main_resource () +
+
webkit_web_view_get_page_id, webkit_web_view_get_page_id () +
+
webkit_web_view_get_session_state, webkit_web_view_get_session_state () +
+
webkit_web_view_get_settings, webkit_web_view_get_settings () +
+
webkit_web_view_get_title, webkit_web_view_get_title () +
+
webkit_web_view_get_tls_info, webkit_web_view_get_tls_info () +
+
webkit_web_view_get_uri, webkit_web_view_get_uri () +
+
webkit_web_view_get_user_content_manager, webkit_web_view_get_user_content_manager () +
+
webkit_web_view_get_website_data_manager, webkit_web_view_get_website_data_manager () +
+
webkit_web_view_get_window_properties, webkit_web_view_get_window_properties () +
+
webkit_web_view_get_zoom_level, webkit_web_view_get_zoom_level () +
+
webkit_web_view_go_back, webkit_web_view_go_back () +
+
webkit_web_view_go_forward, webkit_web_view_go_forward () +
+
webkit_web_view_go_to_back_forward_list_item, webkit_web_view_go_to_back_forward_list_item () +
+
webkit_web_view_is_controlled_by_automation, webkit_web_view_is_controlled_by_automation () +
+
webkit_web_view_is_editable, webkit_web_view_is_editable () +
+
webkit_web_view_is_ephemeral, webkit_web_view_is_ephemeral () +
+
webkit_web_view_is_loading, webkit_web_view_is_loading () +
+
webkit_web_view_is_playing_audio, webkit_web_view_is_playing_audio () +
+
webkit_web_view_load_alternate_html, webkit_web_view_load_alternate_html () +
+
webkit_web_view_load_bytes, webkit_web_view_load_bytes () +
+
webkit_web_view_load_html, webkit_web_view_load_html () +
+
webkit_web_view_load_plain_text, webkit_web_view_load_plain_text () +
+
webkit_web_view_load_request, webkit_web_view_load_request () +
+
webkit_web_view_load_uri, webkit_web_view_load_uri () +
+
webkit_web_view_new, webkit_web_view_new () +
+
webkit_web_view_new_with_context, webkit_web_view_new_with_context () +
+
webkit_web_view_new_with_related_view, webkit_web_view_new_with_related_view () +
+
webkit_web_view_new_with_settings, webkit_web_view_new_with_settings () +
+
webkit_web_view_new_with_user_content_manager, webkit_web_view_new_with_user_content_manager () +
+
webkit_web_view_reload, webkit_web_view_reload () +
+
webkit_web_view_reload_bypass_cache, webkit_web_view_reload_bypass_cache () +
+
webkit_web_view_remove_frame_displayed_callback, webkit_web_view_remove_frame_displayed_callback () +
+
webkit_web_view_restore_session_state, webkit_web_view_restore_session_state () +
+
webkit_web_view_run_javascript, webkit_web_view_run_javascript () +
+
webkit_web_view_run_javascript_finish, webkit_web_view_run_javascript_finish () +
+
webkit_web_view_run_javascript_from_gresource, webkit_web_view_run_javascript_from_gresource () +
+
webkit_web_view_run_javascript_from_gresource_finish, webkit_web_view_run_javascript_from_gresource_finish () +
+
webkit_web_view_run_javascript_in_world, webkit_web_view_run_javascript_in_world () +
+
webkit_web_view_run_javascript_in_world_finish, webkit_web_view_run_javascript_in_world_finish () +
+
webkit_web_view_save, webkit_web_view_save () +
+
webkit_web_view_save_finish, webkit_web_view_save_finish () +
+
webkit_web_view_save_to_file, webkit_web_view_save_to_file () +
+
webkit_web_view_save_to_file_finish, webkit_web_view_save_to_file_finish () +
+
webkit_web_view_session_state_new, webkit_web_view_session_state_new () +
+
webkit_web_view_session_state_ref, webkit_web_view_session_state_ref () +
+
webkit_web_view_session_state_serialize, webkit_web_view_session_state_serialize () +
+
webkit_web_view_session_state_unref, webkit_web_view_session_state_unref () +
+
webkit_web_view_set_custom_charset, webkit_web_view_set_custom_charset () +
+
webkit_web_view_set_editable, webkit_web_view_set_editable () +
+
webkit_web_view_set_settings, webkit_web_view_set_settings () +
+
webkit_web_view_set_zoom_level, webkit_web_view_set_zoom_level () +
+
webkit_web_view_stop_loading, webkit_web_view_stop_loading () +
+
webkit_web_view_try_close, webkit_web_view_try_close () +
+
WebKitWindowProperties, struct WebKitWindowProperties +
+
WebKitWindowProperties:fullscreen, The “fullscreen” property +
+
WebKitWindowProperties:locationbar-visible, The “locationbar-visible” property +
+
WebKitWindowProperties:menubar-visible, The “menubar-visible” property +
+
WebKitWindowProperties:resizable, The “resizable” property +
+
WebKitWindowProperties:scrollbars-visible, The “scrollbars-visible” property +
+
WebKitWindowProperties:statusbar-visible, The “statusbar-visible” property +
+
WebKitWindowProperties:toolbar-visible, The “toolbar-visible” property +
+
webkit_window_properties_get_fullscreen, webkit_window_properties_get_fullscreen () +
+
webkit_window_properties_get_locationbar_visible, webkit_window_properties_get_locationbar_visible () +
+
webkit_window_properties_get_menubar_visible, webkit_window_properties_get_menubar_visible () +
+
webkit_window_properties_get_resizable, webkit_window_properties_get_resizable () +
+
webkit_window_properties_get_scrollbars_visible, webkit_window_properties_get_scrollbars_visible () +
+
webkit_window_properties_get_statusbar_visible, webkit_window_properties_get_statusbar_visible () +
+
webkit_window_properties_get_toolbar_visible, webkit_window_properties_get_toolbar_visible () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index.html new file mode 100644 index 000000000..ef4b2a36e --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index.html @@ -0,0 +1,165 @@ + + + + +WPE Reference Manual: WPE Reference Manual + + + + + + + +
+
+
+
+

for WPE WebKit 2.23.90

+
+
+
+
+
Class Overview
+
+
+WebKitWebContext — Manages aspects common to all WebKitWebViews +
+
+WebKitWebView — The central class of the WPE WebKit and WebKitGTK APIs +
+
+WebKitWebViewBackend — A web view backend +
+
+WebKitAuthenticationRequest — Represents an authentication request +
+
+WebKitBackForwardList — List of visited pages +
+
+WebKitBackForwardListItem — One item of the WebKitBackForwardList +
+
+WebKitSettings — Control the behaviour of a WebKitWebView +
+
+WebKitURIRequest — Represents a URI request +
+
+WebKitURIResponse — Represents a URI response +
+
+WebKitWindowProperties — Window properties of a WebKitWebView +
+
+WebKitDownload — Object used to communicate with the application when downloading +
+
+WebKitPermissionRequest — A permission request +
+
+WebKitGeolocationPermissionRequest — A permission request for sharing user's location +
+
+WebKitInstallMissingMediaPluginsPermissionRequest — A permission request for installing missing media plugins +
+
+WebKitNavigationAction +
+
+WebKitUserMediaPermissionRequest — A permission request for accessing user's audio/video devices. +
+
+WebKitPolicyDecision — A pending policy decision +
+
+WebKitNavigationPolicyDecision — A policy decision for navigation actions +
+
+WebKitResponsePolicyDecision — A policy decision for resource responses +
+
+WebKitHitTestResult — Result of a Hit Test +
+
+WebKitEditorState — Web editor state +
+
+WebKitWebResource — Represents a resource at the end of a URI +
+
+WebKitError — Categorized WebKit errors +
+
+WebKitFaviconDatabase — A WebKit favicon database +
+
+WebKitFileChooserRequest — A request to open a file chooser +
+
+WebKitFindController — Controls text search in a WebKitWebView +
+
+WebKitCookieManager — Defines how to handle cookies in a WebKitWebContext +
+
+WebKitPlugin — Represents a plugin, enabling fine-grained control +
+
+WebKitURISchemeRequest — Represents a URI scheme request +
+
+WebKitContextMenu — Represents the context menu in a WebKitWebView +
+
+WebKitContextMenuItem — One item of the WebKitContextMenu +
+
+WebKitFormSubmissionRequest — Represents a form submission request +
+
+WebKitSecurityManager — Controls security settings in a WebKitWebContext +
+
+WebKitUserContentManager — Manages user-defined content which affects web pages. +
+
+User content — Defines user content types which affect web pages. +
+
+WebKitNotification — Object used to hold information about a notification that should be shown to the user. +
+
+WebKitNotificationPermissionRequest — A permission request for displaying web notifications +
+
+WebKitSecurityOrigin — A security boundary for websites +
+
+WebKitWebsiteDataManager — Website data manager +
+
+WebKitWebsiteData — Website data +
+
+WebKitNetworkProxySettings — Network Proxy Settings +
+
+WebKitAutomationSession — Automation Session +
+
+WebKitApplicationInfo +
+
+
Utilities
+
+WebKitURIUtilities — Utility functions to manipulate URIs +
+
Index
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitError/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitError/index.html new file mode 100644 index 000000000..6896c061a --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitError/index.html @@ -0,0 +1,541 @@ + + + + +WebKitError: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitError

+

WebKitError — Categorized WebKit errors

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#defineWEBKIT_NETWORK_ERROR
#defineWEBKIT_PLUGIN_ERROR
#defineWEBKIT_POLICY_ERROR
#defineWEBKIT_DOWNLOAD_ERROR
#defineWEBKIT_JAVASCRIPT_ERROR
#defineWEBKIT_SNAPSHOT_ERROR
#defineWEBKIT_USER_CONTENT_FILTER_ERROR
enumWebKitNetworkError
enumWebKitPluginError
enumWebKitPolicyError
enumWebKitDownloadError
enumWebKitJavascriptError
enumWebKitSnapshotError
enumWebKitUserContentFilterError
+
+
+

Description

+

Categorized WebKit errors.

+
+
+

Functions

+
+

webkit_network_error_quark ()

+
GQuark
+webkit_network_error_quark (void);
+
+
+
+

webkit_plugin_error_quark ()

+
GQuark
+webkit_plugin_error_quark (void);
+
+
+
+

webkit_policy_error_quark ()

+
GQuark
+webkit_policy_error_quark (void);
+
+
+
+

webkit_download_error_quark ()

+
GQuark
+webkit_download_error_quark (void);
+
+
+
+

webkit_javascript_error_quark ()

+
GQuark
+webkit_javascript_error_quark (void);
+
+
+
+

webkit_snapshot_error_quark ()

+
GQuark
+webkit_snapshot_error_quark (void);
+
+
+
+

webkit_user_content_filter_error_quark ()

+
GQuark
+webkit_user_content_filter_error_quark
+                               (void);
+
+
+
+

Types and Values

+
+

WEBKIT_NETWORK_ERROR

+
#define WEBKIT_NETWORK_ERROR             webkit_network_error_quark ()
+
+
+
+
+

WEBKIT_PLUGIN_ERROR

+
#define WEBKIT_PLUGIN_ERROR              webkit_plugin_error_quark ()
+
+
+
+
+

WEBKIT_POLICY_ERROR

+
#define WEBKIT_POLICY_ERROR              webkit_policy_error_quark ()
+
+
+
+
+

WEBKIT_DOWNLOAD_ERROR

+
#define WEBKIT_DOWNLOAD_ERROR            webkit_download_error_quark ()
+
+
+
+
+

WEBKIT_JAVASCRIPT_ERROR

+
#define WEBKIT_JAVASCRIPT_ERROR          webkit_javascript_error_quark ()
+
+
+
+
+

WEBKIT_SNAPSHOT_ERROR

+
#define WEBKIT_SNAPSHOT_ERROR            webkit_snapshot_error_quark ()
+
+
+
+
+

WEBKIT_USER_CONTENT_FILTER_ERROR

+
#define WEBKIT_USER_CONTENT_FILTER_ERROR webkit_user_content_filter_error_quark ()
+
+
+
+
+

enum WebKitNetworkError

+

Enum values used to denote the various network errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_NETWORK_ERROR_FAILED

+

Generic load failure

+
 

WEBKIT_NETWORK_ERROR_TRANSPORT

+

Load failure due to transport error

+
 

WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL

+

Load failure due to unknown protocol

+
 

WEBKIT_NETWORK_ERROR_CANCELLED

+

Load failure due to cancellation

+
 

WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST

+

Load failure due to missing file

+
 
+
+
+
+
+

enum WebKitPluginError

+

Enum values used to denote the various plugin errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_PLUGIN_ERROR_FAILED

+

Generic plugin load failure

+
 

WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN

+

Load failure due to missing plugin

+
 

WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN

+

Load failure due to inability to load plugin

+
 

WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE

+

Load failure due to missing Java support that is required to load plugin

+
 

WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED

+

Load failure due to connection cancellation

+
 

WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD

+

Load failure since plugin handles the load

+
 
+
+
+
+
+

enum WebKitPolicyError

+

Enum values used to denote the various policy errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_POLICY_ERROR_FAILED

+

Generic load failure due to policy error

+
 

WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE

+

Load failure due to unsupported mime type

+
 

WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI

+

Load failure due to URI that can not be shown

+
 

WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE

+

Load failure due to frame load interruption by policy change

+
 

WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT

+

Load failure due to port restriction

+
 
+
+
+
+
+

enum WebKitDownloadError

+

Enum values used to denote the various download errors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WEBKIT_DOWNLOAD_ERROR_NETWORK

+

Download failure due to network error

+
 

WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER

+

Download was cancelled by user

+
 

WEBKIT_DOWNLOAD_ERROR_DESTINATION

+

Download failure due to destination error

+
 
+
+
+
+
+

enum WebKitJavascriptError

+

Enum values used to denote errors happening when executing JavaScript

+
+

Members

+
+++++ + + + + + +

WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED

+

An exception was raised in JavaScript execution

+
 
+
+
+
+
+

enum WebKitSnapshotError

+

Enum values used to denote errors happening when creating snapshots of WebKitWebView

+
+

Members

+
+++++ + + + + + +

WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE

+

An error occurred when creating a webpage snapshot.

+
 
+
+
+
+
+

enum WebKitUserContentFilterError

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_CONTENT_FILTER_ERROR_INVALID_SOURCE

+

The JSON source for a content filter is invalid.

+
 

WEBKIT_USER_CONTENT_FILTER_ERROR_NOT_FOUND

+

The requested content filter could not be found.

+
 
+
+

Since: 2.24

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitURIUtilities/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitURIUtilities/index.html new file mode 100644 index 000000000..e1b43a69c --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitURIUtilities/index.html @@ -0,0 +1,97 @@ + + + + +WebKitURIUtilities: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitURIUtilities

+

WebKitURIUtilities — Utility functions to manipulate URIs

+
+
+

Functions

+
++++ + + + + +
+gchar * + +webkit_uri_for_display () +
+
+
+

Description

+
+
+

Functions

+
+

webkit_uri_for_display ()

+
gchar *
+webkit_uri_for_display (const gchar *uri);
+

Use this function to format a URI for display. The URIs used internally by +WebKit may contain percent-encoded characters or Punycode, which are not +generally suitable to display to users. This function provides protection +against IDN homograph attacks, so in some cases the host part of the returned +URI may be in Punycode if the safety check fails.

+
+

Parameters

+
+++++ + + + + + +

uri

the URI to be converted

 
+
+
+

Returns

+

uri +suitable for display, or NULL in +case of error.

+

[nullable][transfer full]

+
+

Since: 2.24

+
+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitUserContent/index.html b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitUserContent/index.html new file mode 100644 index 000000000..52d259d99 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitUserContent/index.html @@ -0,0 +1,747 @@ + + + + +User content: WPE Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

User content

+

User content — Defines user content types which affect web pages.

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ├── WebKitUserContentFilter
+    ├── WebKitUserScript
+    ╰── WebKitUserStyleSheet
+
+
+
+

Description

+

See also: WebKitUserContentManager

+
+
+

Functions

+
+

webkit_user_style_sheet_ref ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_ref (WebKitUserStyleSheet *user_style_sheet);
+

Atomically increments the reference count of user_style_sheet + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_style_sheet

a WebKitUserStyleSheet

 
+
+
+

Returns

+

The passed WebKitUserStyleSheet

+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_unref ()

+
void
+webkit_user_style_sheet_unref (WebKitUserStyleSheet *user_style_sheet);
+

Atomically decrements the reference count of user_style_sheet + by one. +If the reference count drops to 0, all memory allocated by +WebKitUserStyleSheet is released. This function is MT-safe and may be +called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_style_sheet

a WebKitUserStyleSheet

 
+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_new ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_new (const gchar *source,
+                             WebKitUserContentInjectedFrames injected_frames,
+                             WebKitUserStyleLevel level,
+                             const gchar * const *whitelist,
+                             const gchar * const *blacklist);
+

Creates a new user style sheet. Style sheets can be applied to some URIs +only by passing non-null values for whitelist + or blacklist +. Passing a +NULL whitelist implies that all URIs are on the whitelist. The style +sheet is applied if an URI matches the whitelist and not the blacklist. +URI patterns must be of the form [protocol]://[host]/[path], where the +*host* and *path* components can contain the wildcard character (*) to +represent zero or more other characters.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user style sheet.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

level

A WebKitUserStyleLevel

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserStyleSheet

+
+

Since: 2.6

+
+
+
+

webkit_user_style_sheet_new_for_world ()

+
WebKitUserStyleSheet *
+webkit_user_style_sheet_new_for_world (const gchar *source,
+                                       WebKitUserContentInjectedFrames injected_frames,
+                                       WebKitUserStyleLevel level,
+                                       const gchar *world_name,
+                                       const gchar * const *whitelist,
+                                       const gchar * const *blacklist);
+

Creates a new user style sheet for script world with name world_name +. +See webkit_user_style_sheet_new() for a full description.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user style sheet.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

level

A WebKitUserStyleLevel

 

world_name

the name of a WebKitScriptWorld

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserStyleSheet

+
+

Since: 2.22

+
+
+
+

webkit_user_script_ref ()

+
WebKitUserScript *
+webkit_user_script_ref (WebKitUserScript *user_script);
+

Atomically increments the reference count of user_script + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_script

a WebKitUserScript

 
+
+
+

Returns

+

The passed WebKitUserScript

+
+

Since: 2.6

+
+
+
+

webkit_user_script_unref ()

+
void
+webkit_user_script_unref (WebKitUserScript *user_script);
+

Atomically decrements the reference count of user_script + by one. +If the reference count drops to 0, all memory allocated by +WebKitUserScript is released. This function is MT-safe and may be called +from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_script

a WebKitUserScript

 
+
+

Since: 2.6

+
+
+
+

webkit_user_script_new ()

+
WebKitUserScript *
+webkit_user_script_new (const gchar *source,
+                        WebKitUserContentInjectedFrames injected_frames,
+                        WebKitUserScriptInjectionTime injection_time,
+                        const gchar * const *whitelist,
+                        const gchar * const *blacklist);
+

Creates a new user script. Scripts can be applied to some URIs +only by passing non-null values for whitelist + or blacklist +. Passing a +NULL whitelist implies that all URIs are on the whitelist. The script +is applied if an URI matches the whitelist and not the blacklist. +URI patterns must be of the form [protocol]://[host]/[path], where the +*host* and *path* components can contain the wildcard character (*) to +represent zero or more other characters.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user script.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

injection_time

A WebKitUserScriptInjectionTime value

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserScript

+
+

Since: 2.6

+
+
+
+

webkit_user_script_new_for_world ()

+
WebKitUserScript *
+webkit_user_script_new_for_world (const gchar *source,
+                                  WebKitUserContentInjectedFrames injected_frames,
+                                  WebKitUserScriptInjectionTime injection_time,
+                                  const gchar *world_name,
+                                  const gchar * const *whitelist,
+                                  const gchar * const *blacklist);
+

Creates a new user script for script world with name world_name +. +See webkit_user_script_new() for a full description.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

source

Source code of the user script.

 

injected_frames

A WebKitUserContentInjectedFrames value

 

injection_time

A WebKitUserScriptInjectionTime value

 

world_name

the name of a WebKitScriptWorld

 

whitelist

A whitelist of URI patterns or NULL.

[array zero-terminated=1][allow-none]

blacklist

A blacklist of URI patterns or NULL.

[array zero-terminated=1][allow-none]
+
+
+

Returns

+

A new WebKitUserScript

+
+

Since: 2.22

+
+
+
+

webkit_user_content_filter_ref ()

+
WebKitUserContentFilter *
+webkit_user_content_filter_ref (WebKitUserContentFilter *user_content_filter);
+

Atomically increments the reference count of user_content_filter + by one. +This function is MT-safe and may be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_filter_unref ()

+
void
+webkit_user_content_filter_unref (WebKitUserContentFilter *user_content_filter);
+

Atomically decrements the reference count of user_content_filter + by one. +If the reference count drops to 0, all the memory allocated by the +WebKitUserContentFilter is released. This function is MT-safe and may +be called from any thread.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+

Since: 2.24

+
+
+
+

webkit_user_content_filter_get_identifier ()

+
const char *
+webkit_user_content_filter_get_identifier
+                               (WebKitUserContentFilter *user_content_filter);
+

Obtain the identifier previously used to save the user_content_filter + in the +WebKitUserContentFilterStore.

+
+

Parameters

+
+++++ + + + + + +

user_content_filter

A WebKitUserContentFilter

 
+
+
+

Returns

+

the identifier for the filter.

+

[transfer none]

+
+

Since: 2.24

+
+
+
+

Types and Values

+
+

WebKitUserStyleSheet

+
typedef struct _WebKitUserStyleSheet WebKitUserStyleSheet;
+
+
+
+

WebKitUserScript

+
typedef struct _WebKitUserScript WebKitUserScript;
+
+
+
+

enum WebKitUserContentInjectedFrames

+

Specifies in which frames user style sheets are to be inserted in.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES

+

Insert the user style + sheet in all the frames loaded by the web view, including + nested frames. This is the default.

+
 

WEBKIT_USER_CONTENT_INJECT_TOP_FRAME

+

Insert the user style + sheet *only* in the top-level frame loaded by the web view, + and *not* in the nested frames.

+
 
+
+

Since: 2.6

+
+
+
+

enum WebKitUserStyleLevel

+

Specifies how to treat an user style sheet.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_STYLE_LEVEL_USER

+

The style sheet is an user style sheet, + its contents always override other style sheets. This is the default.

+
 

WEBKIT_USER_STYLE_LEVEL_AUTHOR

+

The style sheet will be treated as if + it was provided by the loaded documents. That means other user style + sheets may still override it.

+
 
+
+

Since: 2.6

+
+
+
+

enum WebKitUserScriptInjectionTime

+

Specifies at which place of documents an user script will be inserted.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START

+

Insert the code of the user + script at the beginning of loaded documents. This is the default.

+
 

WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END

+

Insert the code of the user + script at the end of the loaded documents.

+
 
+
+

Since: 2.6

+
+
+
+

WebKitUserContentFilter

+
typedef struct _WebKitUserContentFilter WebKitUserContentFilter;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitConsoleMessage/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitConsoleMessage/index.html new file mode 100644 index 000000000..dd41bd5bb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitConsoleMessage/index.html @@ -0,0 +1,446 @@ + + + + +WebKitConsoleMessage: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitConsoleMessage

+

WebKitConsoleMessage

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitConsoleMessage
+    GEnum
+    ├── WebKitConsoleMessageLevel
+    ╰── WebKitConsoleMessageSource
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_console_message_copy ()

+
WebKitConsoleMessage *
+webkit_console_message_copy (WebKitConsoleMessage *console_message);
+

Make a copy of console_message +.

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

A copy of passed in WebKitConsoleMessage.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_console_message_free ()

+
void
+webkit_console_message_free (WebKitConsoleMessage *console_message);
+

Free the WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_source ()

+
WebKitConsoleMessageSource
+webkit_console_message_get_source (WebKitConsoleMessage *console_message);
+

Gets the source of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

a WebKitConsoleMessageSource indicating the source of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_level ()

+
WebKitConsoleMessageLevel
+webkit_console_message_get_level (WebKitConsoleMessage *console_message);
+

Gets the log level of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

a WebKitConsoleMessageLevel indicating the log level of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_text ()

+
const gchar *
+webkit_console_message_get_text (WebKitConsoleMessage *console_message);
+

Gets the text message of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the text message of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_line ()

+
guint
+webkit_console_message_get_line (WebKitConsoleMessage *console_message);
+

Gets the line number of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the line number of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_source_id ()

+
const gchar *
+webkit_console_message_get_source_id (WebKitConsoleMessage *console_message);
+

Gets the source identifier of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the source identifier of console_message +

+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

WebKitConsoleMessage

+
typedef struct _WebKitConsoleMessage WebKitConsoleMessage;
+
+
+
+

enum WebKitConsoleMessageSource

+

Enum values used to denote the various sources of console messages.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONSOLE_MESSAGE_SOURCE_JAVASCRIPT

+

Message produced by JavaScript.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_NETWORK

+

Network messages.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_CONSOLE_API

+

Messages produced by console API.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_SECURITY

+

Security messages.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER

+

Other messages.

+
 
+
+

Since: 2.12

+
+
+
+

enum WebKitConsoleMessageLevel

+

Enum values used to denote the various levels of console messages.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO

+

Information message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG

+

Log message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_WARNING

+

Warning message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_ERROR

+

Error message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG

+

Debug message.

+
 
+
+

Since: 2.12

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMDocument/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMDocument/index.html new file mode 100644 index 000000000..49c7219a9 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMDocument/index.html @@ -0,0 +1,74 @@ + + + + +WebKitDOMDocument: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMDocument

+

WebKitDOMDocument

+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMDocument
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ╰── WebKitDOMDocument
+
+
+
+

Description

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitDOMDocument

+
struct WebKitDOMDocument;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMElement/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMElement/index.html new file mode 100644 index 000000000..b38a90fc8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMElement/index.html @@ -0,0 +1,219 @@ + + + + +WebKitDOMElement: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMElement

+

WebKitDOMElement

+
+ +
+

Types and Values

+
++++ + + + + +
structWebKitDOMElement
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ╰── WebKitDOMElement
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_dom_element_html_input_element_is_user_edited ()

+
gboolean
+webkit_dom_element_html_input_element_is_user_edited
+                               (WebKitDOMElement *element);
+

Get whether element + is an HTML text input element that has been edited by a user action.

+
+

Parameters

+
+++++ + + + + + +

element

a WebKitDOMElement

 
+
+
+

Returns

+

whether element +has been edited by a user action.

+
+

Since: 2.22

+
+
+
+

webkit_dom_element_html_input_element_get_auto_filled ()

+
gboolean
+webkit_dom_element_html_input_element_get_auto_filled
+                               (WebKitDOMElement *element);
+
+
+
+

webkit_dom_element_html_input_element_set_auto_filled ()

+
void
+webkit_dom_element_html_input_element_set_auto_filled
+                               (WebKitDOMElement *element,
+                                gboolean auto_filled);
+

Set whether the element is an HTML input element that has been filled automatically. +If element + is not an HTML input element this function does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

element

a WebKitDOMElement

 

auto_filled

value to set

 
+
+

Since: 2.22

+
+
+
+

webkit_dom_element_html_input_element_set_editing_value ()

+
void
+webkit_dom_element_html_input_element_set_editing_value
+                               (WebKitDOMElement *element,
+                                const char *value);
+

Set editing value of an HTML input element. If element + is not an HTML input element this function does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

element

a WebKitDOMElement

 

value

the text to set

 
+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitDOMElement

+
struct WebKitDOMElement;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMNode/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMNode/index.html new file mode 100644 index 000000000..91c4daf0d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMNode/index.html @@ -0,0 +1,120 @@ + + + + +WebKitDOMNode: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMNode

+

WebKitDOMNode

+
+
+

Functions

+
++++ + + + + +
+WebKitDOMNode * + +webkit_dom_node_for_js_value () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMNode
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ├── WebKitDOMDocument
+            ╰── WebKitDOMElement
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_dom_node_for_js_value ()

+
WebKitDOMNode *
+webkit_dom_node_for_js_value (JSCValue *value);
+

Get the WebKitDOMNode for the DOM node referenced by value +.

+
+

Parameters

+
+++++ + + + + + +

value

a JSCValue

 
+
+
+

Returns

+

a WebKitDOMNode, or NULL if value +doesn't reference a DOM node.

+

[transfer none]

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitDOMNode

+
struct WebKitDOMNode;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMObject/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMObject/index.html new file mode 100644 index 000000000..f44e231f8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMObject/index.html @@ -0,0 +1,73 @@ + + + + +WebKitDOMObject: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMObject

+

WebKitDOMObject

+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMObject
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+
+
+
+

Description

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitDOMObject

+
struct WebKitDOMObject;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitFrame/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitFrame/index.html new file mode 100644 index 000000000..48bbfd1ed --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitFrame/index.html @@ -0,0 +1,344 @@ + + + + +WebKitFrame: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFrame

+

WebKitFrame

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+gboolean + +webkit_frame_is_main_frame () +
const gchar * + +webkit_frame_get_uri () +
+JSCContext * + +webkit_frame_get_js_context () +
+JSCContext * + +webkit_frame_get_js_context_for_script_world () +
+JSCValue * + +webkit_frame_get_js_value_for_dom_object () +
+JSCValue * + +webkit_frame_get_js_value_for_dom_object_in_script_world () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitFrame
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFrame
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_frame_is_main_frame ()

+
gboolean
+webkit_frame_is_main_frame (WebKitFrame *frame);
+

Gets whether frame + is the main frame of a WebKitWebPage

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

TRUE if frame +is a main frame or FALSE otherwise

+
+

Since: 2.2

+
+
+
+

webkit_frame_get_uri ()

+
const gchar *
+webkit_frame_get_uri (WebKitFrame *frame);
+

Gets the current active URI of frame +.

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

the current active URI of frame +or NULL if nothing has been +loaded yet.

+
+

Since: 2.2

+
+
+
+

webkit_frame_get_js_context ()

+
JSCContext *
+webkit_frame_get_js_context (WebKitFrame *frame);
+

Get the JavaScript execution context of frame +. Use this function to bridge +between the WebKit and JavaScriptCore APIs.

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

the JSCContext for the JavaScript execution context of frame +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_context_for_script_world ()

+
JSCContext *
+webkit_frame_get_js_context_for_script_world
+                               (WebKitFrame *frame,
+                                WebKitScriptWorld *world);
+

Get the JavaScript execution context of frame + for the given WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

frame

a WebKitFrame

 

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the JSCContext for the JavaScript execution context of frame +for world +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_value_for_dom_object ()

+
JSCValue *
+webkit_frame_get_js_value_for_dom_object
+                               (WebKitFrame *frame,
+                                WebKitDOMObject *dom_object);
+

Get a JSCValue referencing the given DOM object. The value is created in the JavaScript execution +context of frame +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

frame

a WebKitFrame

 

dom_object

a WebKitDOMObject

 
+
+
+

Returns

+

the JSCValue referencing dom_object +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_value_for_dom_object_in_script_world ()

+
JSCValue *
+webkit_frame_get_js_value_for_dom_object_in_script_world
+                               (WebKitFrame *frame,
+                                WebKitDOMObject *dom_object,
+                                WebKitScriptWorld *world);
+

Get a JSCValue referencing the given DOM object. The value is created in the JavaScript execution +context of frame + for the given WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

frame

a WebKitFrame

 

dom_object

a WebKitDOMObject

 

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the JSCValue referencing dom_object +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitFrame

+
struct WebKitFrame;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitScriptWorld/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitScriptWorld/index.html new file mode 100644 index 000000000..7185d596d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitScriptWorld/index.html @@ -0,0 +1,277 @@ + + + + +WebKitScriptWorld: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitScriptWorld

+

WebKitScriptWorld

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + +
+WebKitScriptWorld * + +webkit_script_world_get_default () +
+WebKitScriptWorld * + +webkit_script_world_new () +
+WebKitScriptWorld * + +webkit_script_world_new_with_name () +
const char * + +webkit_script_world_get_name () +
+
+
+

Signals

+
+++++ + + + + + +
voidwindow-object-clearedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitScriptWorld
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitScriptWorld
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_script_world_get_default ()

+
WebKitScriptWorld *
+webkit_script_world_get_default (void);
+

Get the default WebKitScriptWorld. This is the normal script world +where all scripts are executed by default. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Returns

+

the default WebKitScriptWorld.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

webkit_script_world_new ()

+
WebKitScriptWorld *
+webkit_script_world_new (void);
+

Creates a new isolated WebKitScriptWorld. Scripts executed in +isolated worlds have access to the DOM but not to other variable +or functions created by the page. +The WebKitScriptWorld is created with a generated unique name. Use +webkit_script_world_new_with_name() if you want to create it with a +custom name. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Returns

+

a new isolated WebKitScriptWorld.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_script_world_new_with_name ()

+
WebKitScriptWorld *
+webkit_script_world_new_with_name (const char *name);
+

Creates a new isolated WebKitScriptWorld with a name. Scripts executed in +isolated worlds have access to the DOM but not to other variable +or functions created by the page. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Parameters

+
+++++ + + + + + +

name

a name for the script world

 
+
+
+

Returns

+

a new isolated WebKitScriptWorld.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_script_world_get_name ()

+
const char *
+webkit_script_world_get_name (WebKitScriptWorld *world);
+

Get the name of a WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + +

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the name of world +

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitScriptWorld

+
struct WebKitScriptWorld;
+
+
+
+

Signal Details

+
+

The “window-object-cleared” signal

+
void
+user_function (WebKitScriptWorld *world,
+               WebKitWebPage     *page,
+               WebKitFrame       *frame,
+               gpointer           user_data)
+

Emitted when the JavaScript window object in a WebKitScriptWorld has been +cleared. This is the preferred place to set custom properties on the window +object using the JavaScriptCore API. You can get the window object of frame + +from the JavaScript execution context of world + that is returned by +webkit_frame_get_javascript_context_for_script_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

world

the WebKitScriptWorld on which the signal is emitted

 

page

a WebKitWebPage

 

frame

the WebKitFrame to which world +belongs

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebEditor/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebEditor/index.html new file mode 100644 index 000000000..991e1b3d1 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebEditor/index.html @@ -0,0 +1,175 @@ + + + + +WebKitWebEditor: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebEditor

+

WebKitWebEditor — Access to editing capabilities of a WebKitWebPage

+
+
+

Functions

+
++++ + + + + +
+WebKitWebPage * + +webkit_web_editor_get_page () +
+
+
+

Signals

+
+++++ + + + + + +
voidselection-changedRun Last
+
+
+

Types and Values

+
++++ + + + + +
 WebKitWebEditor
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebEditor
+
+
+
+

Description

+

The WebKitWebEditor provides access to various editing capabilities of +a WebKitWebPage such as a possibility to react to the current selection in +WebKitWebPage.

+
+
+

Functions

+
+

webkit_web_editor_get_page ()

+
WebKitWebPage *
+webkit_web_editor_get_page (WebKitWebEditor *editor);
+

Gets the WebKitWebPage that is associated with the WebKitWebEditor that can +be used to access the WebKitDOMDocument currently loaded into it.

+
+

Parameters

+
+++++ + + + + + +

editor

a WebKitWebEditor

 
+
+
+

Returns

+

the associated WebKitWebPage.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

WebKitWebEditor

+
typedef struct _WebKitWebEditor WebKitWebEditor;
+
+
+
+

Signal Details

+
+

The “selection-changed” signal

+
void
+user_function (WebKitWebEditor *editor,
+               gpointer         user_data)
+

This signal is emitted for every selection change inside a WebKitWebPage +as well as for every caret position change as the caret is a collapsed +selection.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

editor

the WebKitWebEditor on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.10

+
+
+
+

See Also

+

WebKitWebPage

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebExtension/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebExtension/index.html new file mode 100644 index 000000000..68dbb94bb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebExtension/index.html @@ -0,0 +1,378 @@ + + + + +WebKitWebExtension: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebExtension

+

WebKitWebExtension — Represents a WebExtension of the WebProcess

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
+void + +(*WebKitWebExtensionInitializeFunction) () +
+void + +(*WebKitWebExtensionInitializeWithUserDataFunction) () +
+WebKitWebPage * + +webkit_web_extension_get_page () +
+
+
+

Signals

+
+++++ + + + + + +
voidpage-createdRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebExtension
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebExtension
+
+
+
+

Description

+

WebKitWebExtension is a loadable module for the WebProcess. It allows you to execute code in the +WebProcess and being able to use the DOM API, to change any request or to inject custom +JavaScript code, for example.

+

To create a WebKitWebExtension you should write a module with an initialization function that could +be either webkit_web_extension_initialize() with prototype WebKitWebExtensionInitializeFunction or +webkit_web_extension_initialize_with_user_data() with prototype WebKitWebExtensionInitializeWithUserDataFunction. +This function has to be public and it has to use the G_MODULE_EXPORT macro. It is called when the +web process is initialized.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
static void
+web_page_created_callback (WebKitWebExtension *extension,
+                           WebKitWebPage      *web_page,
+                           gpointer            user_data)
+{
+    g_print ("Page %d created for %s\n",
+             webkit_web_page_get_id (web_page),
+             webkit_web_page_get_uri (web_page));
+}
+
+G_MODULE_EXPORT void
+webkit_web_extension_initialize (WebKitWebExtension *extension)
+{
+    g_signal_connect (extension, "page-created",
+                      G_CALLBACK (web_page_created_callback),
+                      NULL);
+}
+
+ +

The previous piece of code shows a trivial example of an extension that notifies when +a WebKitWebPage is created.

+

WebKit has to know where it can find the created WebKitWebExtension. To do so you +should use the webkit_web_context_set_web_extensions_directory() function. The signal +“initialize-web-extensions” is the recommended place to call it.

+

To provide the initialization data used by the webkit_web_extension_initialize_with_user_data() +function, you have to call webkit_web_context_set_web_extensions_initialization_user_data() with +the desired data as parameter. You can see an example of this in the following piece of code:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
#define WEB_EXTENSIONS_DIRECTORY /* ... */
+
+static void
+initialize_web_extensions (WebKitWebContext *context,
+                           gpointer          user_data)
+{
+  /* Web Extensions get a different ID for each Web Process */
+  static guint32 unique_id = 0;
+
+  webkit_web_context_set_web_extensions_directory (
+     context, WEB_EXTENSIONS_DIRECTORY);
+  webkit_web_context_set_web_extensions_initialization_user_data (
+     context, g_variant_new_uint32 (unique_id++));
+}
+
+int main (int argc, char **argv)
+{
+  g_signal_connect (webkit_web_context_get_default (),
+                   "initialize-web-extensions",
+                    G_CALLBACK (initialize_web_extensions),
+                    NULL);
+
+  GtkWidget *view = webkit_web_view_new ();
+
+  /* ... */
+}
+
+ +
+
+

Functions

+
+

WebKitWebExtensionInitializeFunction ()

+
void
+(*WebKitWebExtensionInitializeFunction)
+                               (WebKitWebExtension *extension);
+

Type definition for a function that will be called to initialize +the web extension when the web process starts.

+
+

Parameters

+
+++++ + + + + + +

extension

a WebKitWebExtension

 
+
+
+
+
+

WebKitWebExtensionInitializeWithUserDataFunction ()

+
void
+(*WebKitWebExtensionInitializeWithUserDataFunction)
+                               (WebKitWebExtension *extension,
+                                const GVariant *user_data);
+

Type definition for a function that will be called to initialize +the web extensions when the web process starts, and which receives +as additional argument the user data set with +webkit_web_context_set_web_extensions_initialization_user_data().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

extension

a WebKitWebExtension

 

user_data

a GVariant

 
+
+

Since: 2.4

+
+
+
+

webkit_web_extension_get_page ()

+
WebKitWebPage *
+webkit_web_extension_get_page (WebKitWebExtension *extension,
+                               guint64 page_id);
+

Get the web page of the given page_id +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

extension

a WebKitWebExtension

 

page_id

the identifier of the WebKitWebPage to get

 
+
+
+

Returns

+

the WebKitWebPage for the given page_id +, or NULL if the +identifier doesn't correspond to an existing web page.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitWebExtension

+
struct WebKitWebExtension;
+
+
+
+

Signal Details

+
+

The “page-created” signal

+
void
+user_function (WebKitWebExtension *extension,
+               WebKitWebPage      *web_page,
+               gpointer            user_data)
+

This signal is emitted when a new WebKitWebPage is created in +the Web Process.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

extension

the WebKitWebExtension on which the signal is emitted

 

web_page

the WebKitWebPage created

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebHitTestResult/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebHitTestResult/index.html new file mode 100644 index 000000000..2a8902102 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebHitTestResult/index.html @@ -0,0 +1,148 @@ + + + + +WebKitWebHitTestResult: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebHitTestResult

+

WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions)

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + +
+WebKitDOMNode *nodeRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebHitTestResult
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitHitTestResult
+        ╰── WebKitWebHitTestResult
+
+
+
+

Description

+

WebKitWebHitTestResult extends WebKitHitTestResult to provide information +about the WebKitDOMNode in the coordinates of the Hit Test.

+
+
+

Functions

+
+

webkit_web_hit_test_result_get_node ()

+
WebKitDOMNode *
+webkit_web_hit_test_result_get_node (WebKitWebHitTestResult *hit_test_result);
+

Get the WebKitDOMNode in the coordinates of the Hit Test.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitWebHitTestResult

 
+
+
+

Returns

+

a WebKitDOMNode.

+

[transfer none]

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitWebHitTestResult

+
struct WebKitWebHitTestResult;
+
+
+
+

Property Details

+
+

The “node” property

+
  “node”                     WebKitDOMNode *
+

The WebKitDOMNode

+

Flags: Read / Write / Construct Only

+
+
+
+

See Also

+

WebKitHitTestResult, WebKitWebPage

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebPage/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebPage/index.html new file mode 100644 index 000000000..31f58922b --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebPage/index.html @@ -0,0 +1,720 @@ + + + + +WebKitWebPage: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebPage

+

WebKitWebPage

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitDOMDocument * + +webkit_web_page_get_dom_document () +
+guint64 + +webkit_web_page_get_id () +
const gchar * + +webkit_web_page_get_uri () +
+WebKitFrame * + +webkit_web_page_get_main_frame () +
+WebKitWebEditor * + +webkit_web_page_get_editor () +
+
+
+

Properties

+
+++++ + + + + + +
+gchar *uriRead
+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitWebPage
enumWebKitFormSubmissionStep
+
+
+

Object Hierarchy

+
    GEnum
+    ╰── WebKitFormSubmissionStep
+    GObject
+    ╰── WebKitWebPage
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_web_page_get_dom_document ()

+
WebKitDOMDocument *
+webkit_web_page_get_dom_document (WebKitWebPage *web_page);
+

Get the WebKitDOMDocument currently loaded in web_page +

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitDOMDocument currently loaded, or NULL +if no document is currently loaded.

+

[transfer none]

+
+
+
+
+

webkit_web_page_get_id ()

+
guint64
+webkit_web_page_get_id (WebKitWebPage *web_page);
+

Get the identifier of the WebKitWebPage

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the identifier of web_page +

+
+
+
+
+

webkit_web_page_get_uri ()

+
const gchar *
+webkit_web_page_get_uri (WebKitWebPage *web_page);
+

Returns the current active URI of web_page +.

+

You can monitor the active URI by connecting to the notify::uri +signal of web_page +.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the current active URI of web_view +or NULL if nothing has been +loaded yet.

+
+
+
+
+

webkit_web_page_get_main_frame ()

+
WebKitFrame *
+webkit_web_page_get_main_frame (WebKitWebPage *web_page);
+

Returns the main frame of a WebKitWebPage.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitFrame that is the main frame of web_page +.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

webkit_web_page_get_editor ()

+
WebKitWebEditor *
+webkit_web_page_get_editor (WebKitWebPage *web_page);
+

Gets the WebKitWebEditor of a WebKitWebPage.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitWebEditor.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

WebKitWebPage

+
typedef struct _WebKitWebPage WebKitWebPage;
+
+
+
+

enum WebKitFormSubmissionStep

+

Used to indicate a particular stage in form submission. See +“will-submit-form”.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT

+

indicates the form's +DOM submit event is about to be emitted.

+
 

WEBKIT_FORM_SUBMISSION_WILL_COMPLETE

+

indicates the form is about +to be submitted.

+
 
+
+
+
+
+

Property Details

+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebPage.

+

Flags: Read

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “console-message-sent” signal

+
void
+user_function (WebKitWebPage        *web_page,
+               WebKitConsoleMessage *console_message,
+               gpointer              user_data)
+

Emitted when a message is sent to the console. This can be a message +produced by the use of JavaScript console API, a JavaScript exception, +a security error or other errors, warnings, debug or log messages. +The console_message + contains information of the message.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

console_message

the WebKitConsoleMessage

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.12

+
+
+
+

The “context-menu” signal

+
gboolean
+user_function (WebKitWebPage          *web_page,
+               WebKitContextMenu      *context_menu,
+               WebKitWebHitTestResult *hit_test_result,
+               gpointer                user_data)
+

Emitted before a context menu is displayed in the UI Process to +give the application a chance to customize the proposed menu, +build its own context menu or pass user data to the UI Process. +This signal is useful when the information available in the UI Process +is not enough to build or customize the context menu, for example, to +add menu entries depending on the WebKitDOMNode at the coordinates of the +hit_test_result +. Otherwise, it's recommended to use “context-menu” +signal instead.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

context_menu

the proposed WebKitContextMenu

 

hit_test_result

a WebKitWebHitTestResult

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the proposed context_menu +has been modified, or FALSE otherwise.

+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “document-loaded” signal

+
void
+user_function (WebKitWebPage *web_page,
+               gpointer       user_data)
+

This signal is emitted when the DOM document of a WebKitWebPage has been +loaded.

+

You can wait for this signal to get the DOM document with +webkit_web_page_get_dom_document().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “form-controls-associated” signal

+
void
+user_function (WebKitWebPage *web_page,
+               GPtrArray     *elements,
+               gpointer       user_data)
+

Emitted after form elements (or form associated elements) are associated to a particular web +page. This is useful to implement form auto filling for web pages where form fields are added +dynamically. This signal might be emitted multiple times for the same web page.

+

Note that this signal could be also emitted when form controls are moved between forms. In +that case, the elements + array carries the list of those elements which have moved.

+

Clients should take a reference to the members of the elements + array if it is desired to +keep them alive after the signal handler returns.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

elements

a GPtrArray of +WebKitDOMElement with the list of forms in the page.

[element-type WebKitDOMElement][transfer none]

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.16

+
+
+
+

The “send-request” signal

+
gboolean
+user_function (WebKitWebPage     *web_page,
+               WebKitURIRequest  *request,
+               WebKitURIResponse *redirected_response,
+               gpointer           user_data)
+

This signal is emitted when request + is about to be sent to +the server. This signal can be used to modify the WebKitURIRequest +that will be sent to the server. You can also cancel the resource load +operation by connecting to this signal and returning TRUE.

+

In case of a server redirection this signal is +emitted again with the request + argument containing the new +request to be sent to the server due to the redirection and the +redirected_response + parameter containing the response +received by the server for the initial request.

+

Modifications to the WebKitURIRequest and its associated +SoupMessageHeaders will be taken into account when the request +is sent over the network.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

request

a WebKitURIRequest

 

redirected_response

a WebKitURIResponse, or NULL

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “will-submit-form” signal

+
void
+user_function (WebKitWebPage           *web_page,
+               WebKitDOMElement        *form,
+               WebKitFormSubmissionStep step,
+               WebKitFrame             *source_frame,
+               WebKitFrame             *target_frame,
+               GPtrArray               *text_field_names,
+               GPtrArray               *text_field_values,
+               gpointer                 user_data)
+

This signal is emitted to indicate various points during form +submission. step + indicates the current stage of form submission.

+

If this signal is emitted with WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT, +then the DOM submit event is about to be emitted. JavaScript code +may rely on the submit event to detect that the user has clicked +on a submit button, and to possibly cancel the form submission +before WEBKIT_FORM_SUBMISSION_WILL_COMPLETE. However, beware +that, for historical reasons, the submit event is not emitted at +all if the form submission is triggered by JavaScript. For these +reasons, WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT may not +be used to reliably detect whether a form will be submitted. +Instead, use it to detect if a user has clicked on a form's +submit button even if JavaScript later cancels the form +submission, or to read the values of the form's fields even if +JavaScript later clears certain fields before submitting. This +may be needed, for example, to implement a robust browser +password manager, as some misguided websites may use such +techniques to attempt to thwart password managers.

+

If this signal is emitted with WEBKIT_FORM_SUBMISSION_WILL_COMPLETE, +the form will imminently be submitted. It can no longer be +cancelled. This event always occurs immediately before a form is +submitted to its target, so use this event to reliably detect +when a form is submitted. This event occurs after +WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT if that event is +emitted.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

form

the WebKitDOMElement to be submitted, which will always correspond to an HTMLFormElement

 

step

a WebKitFormSubmissionEventType indicating the current +stage of form submission

 

source_frame

the WebKitFrame containing the form to be +submitted

 

target_frame

the WebKitFrame containing the form's target, +which may be the same as source_frame +if no target was specified

 

text_field_names

names of +the form's text fields.

[element-type utf8][transfer none]

text_field_values

values +of the form's text fields.

[element-type utf8][transfer none]

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/annotation-glossary/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/annotation-glossary/index.html new file mode 100644 index 000000000..1ad25ff79 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/annotation-glossary/index.html @@ -0,0 +1,38 @@ + + + + +Annotation Glossary: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

T

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch01/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch01/index.html new file mode 100644 index 000000000..097569da6 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch01/index.html @@ -0,0 +1,52 @@ + + + + +Web Extensions: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+Web Extensions

+
+
+WebKitWebExtension — Represents a WebExtension of the WebProcess +
+
+WebKitWebPage +
+
+WebKitFrame +
+
+WebKitScriptWorld +
+
+WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions) +
+
+WebKitWebEditor — Access to editing capabilities of a WebKitWebPage +
+
+WebKitConsoleMessage +
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch02/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch02/index.html new file mode 100644 index 000000000..ac5af1dbe --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch02/index.html @@ -0,0 +1,43 @@ + + + + +WebKitDOM: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+WebKitDOM

+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index-all/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index-all/index.html new file mode 100644 index 000000000..79de4c415 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index-all/index.html @@ -0,0 +1,148 @@ + + + + +Index: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+Index

+
+

W

+
+
WebKitConsoleMessage, WebKitConsoleMessage +
+
WebKitConsoleMessageLevel, enum WebKitConsoleMessageLevel +
+
WebKitConsoleMessageSource, enum WebKitConsoleMessageSource +
+
WebKitDOMDocument, struct WebKitDOMDocument +
+
WebKitDOMElement, struct WebKitDOMElement +
+
WebKitDOMNode, struct WebKitDOMNode +
+
WebKitDOMObject, struct WebKitDOMObject +
+
WebKitFormSubmissionStep, enum WebKitFormSubmissionStep +
+
WebKitFrame, struct WebKitFrame +
+
WebKitScriptWorld, struct WebKitScriptWorld +
+
WebKitScriptWorld::window-object-cleared, The “window-object-cleared” signal +
+
WebKitWebEditor, WebKitWebEditor +
+
WebKitWebEditor::selection-changed, The “selection-changed” signal +
+
WebKitWebExtension, struct WebKitWebExtension +
+
WebKitWebExtension::page-created, The “page-created” signal +
+
WebKitWebExtensionInitializeFunction, WebKitWebExtensionInitializeFunction () +
+
WebKitWebExtensionInitializeWithUserDataFunction, WebKitWebExtensionInitializeWithUserDataFunction () +
+
WebKitWebHitTestResult, struct WebKitWebHitTestResult +
+
WebKitWebHitTestResult:node, The “node” property +
+
WebKitWebPage, WebKitWebPage +
+
WebKitWebPage::console-message-sent, The “console-message-sent” signal +
+
WebKitWebPage::context-menu, The “context-menu” signal +
+
WebKitWebPage::document-loaded, The “document-loaded” signal +
+
WebKitWebPage::form-controls-associated, The “form-controls-associated” signal +
+
WebKitWebPage::send-request, The “send-request” signal +
+
WebKitWebPage::will-submit-form, The “will-submit-form” signal +
+
WebKitWebPage:uri, The “uri” property +
+
webkit_console_message_copy, webkit_console_message_copy () +
+
webkit_console_message_free, webkit_console_message_free () +
+
webkit_console_message_get_level, webkit_console_message_get_level () +
+
webkit_console_message_get_line, webkit_console_message_get_line () +
+
webkit_console_message_get_source, webkit_console_message_get_source () +
+
webkit_console_message_get_source_id, webkit_console_message_get_source_id () +
+
webkit_console_message_get_text, webkit_console_message_get_text () +
+
webkit_dom_element_html_input_element_get_auto_filled, webkit_dom_element_html_input_element_get_auto_filled () +
+
webkit_dom_element_html_input_element_is_user_edited, webkit_dom_element_html_input_element_is_user_edited () +
+
webkit_dom_element_html_input_element_set_auto_filled, webkit_dom_element_html_input_element_set_auto_filled () +
+
webkit_dom_element_html_input_element_set_editing_value, webkit_dom_element_html_input_element_set_editing_value () +
+
webkit_dom_node_for_js_value, webkit_dom_node_for_js_value () +
+
webkit_frame_get_js_context, webkit_frame_get_js_context () +
+
webkit_frame_get_js_context_for_script_world, webkit_frame_get_js_context_for_script_world () +
+
webkit_frame_get_js_value_for_dom_object, webkit_frame_get_js_value_for_dom_object () +
+
webkit_frame_get_js_value_for_dom_object_in_script_world, webkit_frame_get_js_value_for_dom_object_in_script_world () +
+
webkit_frame_get_uri, webkit_frame_get_uri () +
+
webkit_frame_is_main_frame, webkit_frame_is_main_frame () +
+
webkit_script_world_get_default, webkit_script_world_get_default () +
+
webkit_script_world_get_name, webkit_script_world_get_name () +
+
webkit_script_world_new, webkit_script_world_new () +
+
webkit_script_world_new_with_name, webkit_script_world_new_with_name () +
+
webkit_web_editor_get_page, webkit_web_editor_get_page () +
+
webkit_web_extension_get_page, webkit_web_extension_get_page () +
+
webkit_web_hit_test_result_get_node, webkit_web_hit_test_result_get_node () +
+
webkit_web_page_get_dom_document, webkit_web_page_get_dom_document () +
+
webkit_web_page_get_editor, webkit_web_page_get_editor () +
+
webkit_web_page_get_id, webkit_web_page_get_id () +
+
webkit_web_page_get_main_frame, webkit_web_page_get_main_frame () +
+
webkit_web_page_get_uri, webkit_web_page_get_uri () +
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index.html new file mode 100644 index 000000000..e42d37cbb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index.html @@ -0,0 +1,68 @@ + + + + +WPE WebExtensions and DOM Reference Manual: WPE WebExtensions and DOM Reference Manual + + + + + + + +
+
+
+
+

for WPE WebKit 2.23.90

+
+
+
+
+
Web Extensions
+
+
+WebKitWebExtension — Represents a WebExtension of the WebProcess +
+
+WebKitWebPage +
+
+WebKitFrame +
+
+WebKitScriptWorld +
+
+WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions) +
+
+WebKitWebEditor — Access to editing capabilities of a WebKitWebPage +
+
+WebKitConsoleMessage +
+
+
WebKitDOM
+
+
+WebKitDOMObject +
+
+WebKitDOMDocument +
+
+WebKitDOMElement +
+
+WebKitDOMNode +
+
+
Index
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitConsoleMessage/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitConsoleMessage/index.html new file mode 100644 index 000000000..dd41bd5bb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitConsoleMessage/index.html @@ -0,0 +1,446 @@ + + + + +WebKitConsoleMessage: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitConsoleMessage

+

WebKitConsoleMessage

+
+ +
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ╰── WebKitConsoleMessage
+    GEnum
+    ├── WebKitConsoleMessageLevel
+    ╰── WebKitConsoleMessageSource
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_console_message_copy ()

+
WebKitConsoleMessage *
+webkit_console_message_copy (WebKitConsoleMessage *console_message);
+

Make a copy of console_message +.

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

A copy of passed in WebKitConsoleMessage.

+

[transfer full]

+
+

Since: 2.12

+
+
+
+

webkit_console_message_free ()

+
void
+webkit_console_message_free (WebKitConsoleMessage *console_message);
+

Free the WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_source ()

+
WebKitConsoleMessageSource
+webkit_console_message_get_source (WebKitConsoleMessage *console_message);
+

Gets the source of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

a WebKitConsoleMessageSource indicating the source of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_level ()

+
WebKitConsoleMessageLevel
+webkit_console_message_get_level (WebKitConsoleMessage *console_message);
+

Gets the log level of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

a WebKitConsoleMessageLevel indicating the log level of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_text ()

+
const gchar *
+webkit_console_message_get_text (WebKitConsoleMessage *console_message);
+

Gets the text message of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the text message of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_line ()

+
guint
+webkit_console_message_get_line (WebKitConsoleMessage *console_message);
+

Gets the line number of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the line number of console_message +

+
+

Since: 2.12

+
+
+
+

webkit_console_message_get_source_id ()

+
const gchar *
+webkit_console_message_get_source_id (WebKitConsoleMessage *console_message);
+

Gets the source identifier of a WebKitConsoleMessage

+
+

Parameters

+
+++++ + + + + + +

console_message

a WebKitConsoleMessage

 
+
+
+

Returns

+

the source identifier of console_message +

+
+

Since: 2.12

+
+
+
+

Types and Values

+
+

WebKitConsoleMessage

+
typedef struct _WebKitConsoleMessage WebKitConsoleMessage;
+
+
+
+

enum WebKitConsoleMessageSource

+

Enum values used to denote the various sources of console messages.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONSOLE_MESSAGE_SOURCE_JAVASCRIPT

+

Message produced by JavaScript.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_NETWORK

+

Network messages.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_CONSOLE_API

+

Messages produced by console API.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_SECURITY

+

Security messages.

+
 

WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER

+

Other messages.

+
 
+
+

Since: 2.12

+
+
+
+

enum WebKitConsoleMessageLevel

+

Enum values used to denote the various levels of console messages.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO

+

Information message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG

+

Log message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_WARNING

+

Warning message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_ERROR

+

Error message.

+
 

WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG

+

Debug message.

+
 
+
+

Since: 2.12

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMDocument/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMDocument/index.html new file mode 100644 index 000000000..49c7219a9 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMDocument/index.html @@ -0,0 +1,74 @@ + + + + +WebKitDOMDocument: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMDocument

+

WebKitDOMDocument

+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMDocument
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ╰── WebKitDOMDocument
+
+
+
+

Description

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitDOMDocument

+
struct WebKitDOMDocument;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMElement/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMElement/index.html new file mode 100644 index 000000000..b38a90fc8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMElement/index.html @@ -0,0 +1,219 @@ + + + + +WebKitDOMElement: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMElement

+

WebKitDOMElement

+
+ +
+

Types and Values

+
++++ + + + + +
structWebKitDOMElement
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ╰── WebKitDOMElement
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_dom_element_html_input_element_is_user_edited ()

+
gboolean
+webkit_dom_element_html_input_element_is_user_edited
+                               (WebKitDOMElement *element);
+

Get whether element + is an HTML text input element that has been edited by a user action.

+
+

Parameters

+
+++++ + + + + + +

element

a WebKitDOMElement

 
+
+
+

Returns

+

whether element +has been edited by a user action.

+
+

Since: 2.22

+
+
+
+

webkit_dom_element_html_input_element_get_auto_filled ()

+
gboolean
+webkit_dom_element_html_input_element_get_auto_filled
+                               (WebKitDOMElement *element);
+
+
+
+

webkit_dom_element_html_input_element_set_auto_filled ()

+
void
+webkit_dom_element_html_input_element_set_auto_filled
+                               (WebKitDOMElement *element,
+                                gboolean auto_filled);
+

Set whether the element is an HTML input element that has been filled automatically. +If element + is not an HTML input element this function does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

element

a WebKitDOMElement

 

auto_filled

value to set

 
+
+

Since: 2.22

+
+
+
+

webkit_dom_element_html_input_element_set_editing_value ()

+
void
+webkit_dom_element_html_input_element_set_editing_value
+                               (WebKitDOMElement *element,
+                                const char *value);
+

Set editing value of an HTML input element. If element + is not an HTML input element this function does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

element

a WebKitDOMElement

 

value

the text to set

 
+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitDOMElement

+
struct WebKitDOMElement;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMNode/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMNode/index.html new file mode 100644 index 000000000..91c4daf0d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMNode/index.html @@ -0,0 +1,120 @@ + + + + +WebKitDOMNode: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMNode

+

WebKitDOMNode

+
+
+

Functions

+
++++ + + + + +
+WebKitDOMNode * + +webkit_dom_node_for_js_value () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMNode
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+            ├── WebKitDOMDocument
+            ╰── WebKitDOMElement
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_dom_node_for_js_value ()

+
WebKitDOMNode *
+webkit_dom_node_for_js_value (JSCValue *value);
+

Get the WebKitDOMNode for the DOM node referenced by value +.

+
+

Parameters

+
+++++ + + + + + +

value

a JSCValue

 
+
+
+

Returns

+

a WebKitDOMNode, or NULL if value +doesn't reference a DOM node.

+

[transfer none]

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitDOMNode

+
struct WebKitDOMNode;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMObject/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMObject/index.html new file mode 100644 index 000000000..f44e231f8 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMObject/index.html @@ -0,0 +1,73 @@ + + + + +WebKitDOMObject: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitDOMObject

+

WebKitDOMObject

+
+
+

Types and Values

+
++++ + + + + +
structWebKitDOMObject
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitDOMObject
+        ╰── WebKitDOMNode
+
+
+
+

Description

+
+
+

Functions

+

+
+
+

Types and Values

+
+

struct WebKitDOMObject

+
struct WebKitDOMObject;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitFrame/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitFrame/index.html new file mode 100644 index 000000000..48bbfd1ed --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitFrame/index.html @@ -0,0 +1,344 @@ + + + + +WebKitFrame: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitFrame

+

WebKitFrame

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+gboolean + +webkit_frame_is_main_frame () +
const gchar * + +webkit_frame_get_uri () +
+JSCContext * + +webkit_frame_get_js_context () +
+JSCContext * + +webkit_frame_get_js_context_for_script_world () +
+JSCValue * + +webkit_frame_get_js_value_for_dom_object () +
+JSCValue * + +webkit_frame_get_js_value_for_dom_object_in_script_world () +
+
+
+

Types and Values

+
++++ + + + + +
structWebKitFrame
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitFrame
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_frame_is_main_frame ()

+
gboolean
+webkit_frame_is_main_frame (WebKitFrame *frame);
+

Gets whether frame + is the main frame of a WebKitWebPage

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

TRUE if frame +is a main frame or FALSE otherwise

+
+

Since: 2.2

+
+
+
+

webkit_frame_get_uri ()

+
const gchar *
+webkit_frame_get_uri (WebKitFrame *frame);
+

Gets the current active URI of frame +.

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

the current active URI of frame +or NULL if nothing has been +loaded yet.

+
+

Since: 2.2

+
+
+
+

webkit_frame_get_js_context ()

+
JSCContext *
+webkit_frame_get_js_context (WebKitFrame *frame);
+

Get the JavaScript execution context of frame +. Use this function to bridge +between the WebKit and JavaScriptCore APIs.

+
+

Parameters

+
+++++ + + + + + +

frame

a WebKitFrame

 
+
+
+

Returns

+

the JSCContext for the JavaScript execution context of frame +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_context_for_script_world ()

+
JSCContext *
+webkit_frame_get_js_context_for_script_world
+                               (WebKitFrame *frame,
+                                WebKitScriptWorld *world);
+

Get the JavaScript execution context of frame + for the given WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

frame

a WebKitFrame

 

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the JSCContext for the JavaScript execution context of frame +for world +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_value_for_dom_object ()

+
JSCValue *
+webkit_frame_get_js_value_for_dom_object
+                               (WebKitFrame *frame,
+                                WebKitDOMObject *dom_object);
+

Get a JSCValue referencing the given DOM object. The value is created in the JavaScript execution +context of frame +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

frame

a WebKitFrame

 

dom_object

a WebKitDOMObject

 
+
+
+

Returns

+

the JSCValue referencing dom_object +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_frame_get_js_value_for_dom_object_in_script_world ()

+
JSCValue *
+webkit_frame_get_js_value_for_dom_object_in_script_world
+                               (WebKitFrame *frame,
+                                WebKitDOMObject *dom_object,
+                                WebKitScriptWorld *world);
+

Get a JSCValue referencing the given DOM object. The value is created in the JavaScript execution +context of frame + for the given WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

frame

a WebKitFrame

 

dom_object

a WebKitDOMObject

 

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the JSCValue referencing dom_object +.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitFrame

+
struct WebKitFrame;
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitScriptWorld/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitScriptWorld/index.html new file mode 100644 index 000000000..7185d596d --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitScriptWorld/index.html @@ -0,0 +1,277 @@ + + + + +WebKitScriptWorld: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitScriptWorld

+

WebKitScriptWorld

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + +
+WebKitScriptWorld * + +webkit_script_world_get_default () +
+WebKitScriptWorld * + +webkit_script_world_new () +
+WebKitScriptWorld * + +webkit_script_world_new_with_name () +
const char * + +webkit_script_world_get_name () +
+
+
+

Signals

+
+++++ + + + + + +
voidwindow-object-clearedRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitScriptWorld
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitScriptWorld
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_script_world_get_default ()

+
WebKitScriptWorld *
+webkit_script_world_get_default (void);
+

Get the default WebKitScriptWorld. This is the normal script world +where all scripts are executed by default. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Returns

+

the default WebKitScriptWorld.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

webkit_script_world_new ()

+
WebKitScriptWorld *
+webkit_script_world_new (void);
+

Creates a new isolated WebKitScriptWorld. Scripts executed in +isolated worlds have access to the DOM but not to other variable +or functions created by the page. +The WebKitScriptWorld is created with a generated unique name. Use +webkit_script_world_new_with_name() if you want to create it with a +custom name. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Returns

+

a new isolated WebKitScriptWorld.

+

[transfer full]

+
+

Since: 2.2

+
+
+
+

webkit_script_world_new_with_name ()

+
WebKitScriptWorld *
+webkit_script_world_new_with_name (const char *name);
+

Creates a new isolated WebKitScriptWorld with a name. Scripts executed in +isolated worlds have access to the DOM but not to other variable +or functions created by the page. +You can get the JavaScript execution context of a WebKitScriptWorld +for a given WebKitFrame with webkit_frame_get_javascript_context_for_script_world().

+
+

Parameters

+
+++++ + + + + + +

name

a name for the script world

 
+
+
+

Returns

+

a new isolated WebKitScriptWorld.

+

[transfer full]

+
+

Since: 2.22

+
+
+
+

webkit_script_world_get_name ()

+
const char *
+webkit_script_world_get_name (WebKitScriptWorld *world);
+

Get the name of a WebKitScriptWorld.

+
+

Parameters

+
+++++ + + + + + +

world

a WebKitScriptWorld

 
+
+
+

Returns

+

the name of world +

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WebKitScriptWorld

+
struct WebKitScriptWorld;
+
+
+
+

Signal Details

+
+

The “window-object-cleared” signal

+
void
+user_function (WebKitScriptWorld *world,
+               WebKitWebPage     *page,
+               WebKitFrame       *frame,
+               gpointer           user_data)
+

Emitted when the JavaScript window object in a WebKitScriptWorld has been +cleared. This is the preferred place to set custom properties on the window +object using the JavaScriptCore API. You can get the window object of frame + +from the JavaScript execution context of world + that is returned by +webkit_frame_get_javascript_context_for_script_world().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

world

the WebKitScriptWorld on which the signal is emitted

 

page

a WebKitWebPage

 

frame

the WebKitFrame to which world +belongs

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.2

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebEditor/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebEditor/index.html new file mode 100644 index 000000000..991e1b3d1 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebEditor/index.html @@ -0,0 +1,175 @@ + + + + +WebKitWebEditor: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebEditor

+

WebKitWebEditor — Access to editing capabilities of a WebKitWebPage

+
+
+

Functions

+
++++ + + + + +
+WebKitWebPage * + +webkit_web_editor_get_page () +
+
+
+

Signals

+
+++++ + + + + + +
voidselection-changedRun Last
+
+
+

Types and Values

+
++++ + + + + +
 WebKitWebEditor
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebEditor
+
+
+
+

Description

+

The WebKitWebEditor provides access to various editing capabilities of +a WebKitWebPage such as a possibility to react to the current selection in +WebKitWebPage.

+
+
+

Functions

+
+

webkit_web_editor_get_page ()

+
WebKitWebPage *
+webkit_web_editor_get_page (WebKitWebEditor *editor);
+

Gets the WebKitWebPage that is associated with the WebKitWebEditor that can +be used to access the WebKitDOMDocument currently loaded into it.

+
+

Parameters

+
+++++ + + + + + +

editor

a WebKitWebEditor

 
+
+
+

Returns

+

the associated WebKitWebPage.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

WebKitWebEditor

+
typedef struct _WebKitWebEditor WebKitWebEditor;
+
+
+
+

Signal Details

+
+

The “selection-changed” signal

+
void
+user_function (WebKitWebEditor *editor,
+               gpointer         user_data)
+

This signal is emitted for every selection change inside a WebKitWebPage +as well as for every caret position change as the caret is a collapsed +selection.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

editor

the WebKitWebEditor on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.10

+
+
+
+

See Also

+

WebKitWebPage

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebExtension/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebExtension/index.html new file mode 100644 index 000000000..68dbb94bb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebExtension/index.html @@ -0,0 +1,378 @@ + + + + +WebKitWebExtension: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebExtension

+

WebKitWebExtension — Represents a WebExtension of the WebProcess

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
+void + +(*WebKitWebExtensionInitializeFunction) () +
+void + +(*WebKitWebExtensionInitializeWithUserDataFunction) () +
+WebKitWebPage * + +webkit_web_extension_get_page () +
+
+
+

Signals

+
+++++ + + + + + +
voidpage-createdRun Last
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebExtension
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitWebExtension
+
+
+
+

Description

+

WebKitWebExtension is a loadable module for the WebProcess. It allows you to execute code in the +WebProcess and being able to use the DOM API, to change any request or to inject custom +JavaScript code, for example.

+

To create a WebKitWebExtension you should write a module with an initialization function that could +be either webkit_web_extension_initialize() with prototype WebKitWebExtensionInitializeFunction or +webkit_web_extension_initialize_with_user_data() with prototype WebKitWebExtensionInitializeWithUserDataFunction. +This function has to be public and it has to use the G_MODULE_EXPORT macro. It is called when the +web process is initialized.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
static void
+web_page_created_callback (WebKitWebExtension *extension,
+                           WebKitWebPage      *web_page,
+                           gpointer            user_data)
+{
+    g_print ("Page %d created for %s\n",
+             webkit_web_page_get_id (web_page),
+             webkit_web_page_get_uri (web_page));
+}
+
+G_MODULE_EXPORT void
+webkit_web_extension_initialize (WebKitWebExtension *extension)
+{
+    g_signal_connect (extension, "page-created",
+                      G_CALLBACK (web_page_created_callback),
+                      NULL);
+}
+
+ +

The previous piece of code shows a trivial example of an extension that notifies when +a WebKitWebPage is created.

+

WebKit has to know where it can find the created WebKitWebExtension. To do so you +should use the webkit_web_context_set_web_extensions_directory() function. The signal +“initialize-web-extensions” is the recommended place to call it.

+

To provide the initialization data used by the webkit_web_extension_initialize_with_user_data() +function, you have to call webkit_web_context_set_web_extensions_initialization_user_data() with +the desired data as parameter. You can see an example of this in the following piece of code:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
#define WEB_EXTENSIONS_DIRECTORY /* ... */
+
+static void
+initialize_web_extensions (WebKitWebContext *context,
+                           gpointer          user_data)
+{
+  /* Web Extensions get a different ID for each Web Process */
+  static guint32 unique_id = 0;
+
+  webkit_web_context_set_web_extensions_directory (
+     context, WEB_EXTENSIONS_DIRECTORY);
+  webkit_web_context_set_web_extensions_initialization_user_data (
+     context, g_variant_new_uint32 (unique_id++));
+}
+
+int main (int argc, char **argv)
+{
+  g_signal_connect (webkit_web_context_get_default (),
+                   "initialize-web-extensions",
+                    G_CALLBACK (initialize_web_extensions),
+                    NULL);
+
+  GtkWidget *view = webkit_web_view_new ();
+
+  /* ... */
+}
+
+ +
+
+

Functions

+
+

WebKitWebExtensionInitializeFunction ()

+
void
+(*WebKitWebExtensionInitializeFunction)
+                               (WebKitWebExtension *extension);
+

Type definition for a function that will be called to initialize +the web extension when the web process starts.

+
+

Parameters

+
+++++ + + + + + +

extension

a WebKitWebExtension

 
+
+
+
+
+

WebKitWebExtensionInitializeWithUserDataFunction ()

+
void
+(*WebKitWebExtensionInitializeWithUserDataFunction)
+                               (WebKitWebExtension *extension,
+                                const GVariant *user_data);
+

Type definition for a function that will be called to initialize +the web extensions when the web process starts, and which receives +as additional argument the user data set with +webkit_web_context_set_web_extensions_initialization_user_data().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

extension

a WebKitWebExtension

 

user_data

a GVariant

 
+
+

Since: 2.4

+
+
+
+

webkit_web_extension_get_page ()

+
WebKitWebPage *
+webkit_web_extension_get_page (WebKitWebExtension *extension,
+                               guint64 page_id);
+

Get the web page of the given page_id +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

extension

a WebKitWebExtension

 

page_id

the identifier of the WebKitWebPage to get

 
+
+
+

Returns

+

the WebKitWebPage for the given page_id +, or NULL if the +identifier doesn't correspond to an existing web page.

+

[transfer none]

+
+
+
+
+

Types and Values

+
+

struct WebKitWebExtension

+
struct WebKitWebExtension;
+
+
+
+

Signal Details

+
+

The “page-created” signal

+
void
+user_function (WebKitWebExtension *extension,
+               WebKitWebPage      *web_page,
+               gpointer            user_data)
+

This signal is emitted when a new WebKitWebPage is created in +the Web Process.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

extension

the WebKitWebExtension on which the signal is emitted

 

web_page

the WebKitWebPage created

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebHitTestResult/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebHitTestResult/index.html new file mode 100644 index 000000000..2a8902102 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebHitTestResult/index.html @@ -0,0 +1,148 @@ + + + + +WebKitWebHitTestResult: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebHitTestResult

+

WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions)

+
+
+

Functions

+ +
+
+

Properties

+
+++++ + + + + + +
+WebKitDOMNode *nodeRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWebKitWebHitTestResult
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WebKitHitTestResult
+        ╰── WebKitWebHitTestResult
+
+
+
+

Description

+

WebKitWebHitTestResult extends WebKitHitTestResult to provide information +about the WebKitDOMNode in the coordinates of the Hit Test.

+
+
+

Functions

+
+

webkit_web_hit_test_result_get_node ()

+
WebKitDOMNode *
+webkit_web_hit_test_result_get_node (WebKitWebHitTestResult *hit_test_result);
+

Get the WebKitDOMNode in the coordinates of the Hit Test.

+
+

Parameters

+
+++++ + + + + + +

hit_test_result

a WebKitWebHitTestResult

 
+
+
+

Returns

+

a WebKitDOMNode.

+

[transfer none]

+
+

Since: 2.8

+
+
+
+

Types and Values

+
+

struct WebKitWebHitTestResult

+
struct WebKitWebHitTestResult;
+
+
+
+

Property Details

+
+

The “node” property

+
  “node”                     WebKitDOMNode *
+

The WebKitDOMNode

+

Flags: Read / Write / Construct Only

+
+
+
+

See Also

+

WebKitHitTestResult, WebKitWebPage

+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebPage/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebPage/index.html new file mode 100644 index 000000000..31f58922b --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebPage/index.html @@ -0,0 +1,720 @@ + + + + +WebKitWebPage: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WebKitWebPage

+

WebKitWebPage

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+WebKitDOMDocument * + +webkit_web_page_get_dom_document () +
+guint64 + +webkit_web_page_get_id () +
const gchar * + +webkit_web_page_get_uri () +
+WebKitFrame * + +webkit_web_page_get_main_frame () +
+WebKitWebEditor * + +webkit_web_page_get_editor () +
+
+
+

Properties

+
+++++ + + + + + +
+gchar *uriRead
+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 WebKitWebPage
enumWebKitFormSubmissionStep
+
+
+

Object Hierarchy

+
    GEnum
+    ╰── WebKitFormSubmissionStep
+    GObject
+    ╰── WebKitWebPage
+
+
+
+

Description

+
+
+

Functions

+
+

webkit_web_page_get_dom_document ()

+
WebKitDOMDocument *
+webkit_web_page_get_dom_document (WebKitWebPage *web_page);
+

Get the WebKitDOMDocument currently loaded in web_page +

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitDOMDocument currently loaded, or NULL +if no document is currently loaded.

+

[transfer none]

+
+
+
+
+

webkit_web_page_get_id ()

+
guint64
+webkit_web_page_get_id (WebKitWebPage *web_page);
+

Get the identifier of the WebKitWebPage

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the identifier of web_page +

+
+
+
+
+

webkit_web_page_get_uri ()

+
const gchar *
+webkit_web_page_get_uri (WebKitWebPage *web_page);
+

Returns the current active URI of web_page +.

+

You can monitor the active URI by connecting to the notify::uri +signal of web_page +.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the current active URI of web_view +or NULL if nothing has been +loaded yet.

+
+
+
+
+

webkit_web_page_get_main_frame ()

+
WebKitFrame *
+webkit_web_page_get_main_frame (WebKitWebPage *web_page);
+

Returns the main frame of a WebKitWebPage.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitFrame that is the main frame of web_page +.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

webkit_web_page_get_editor ()

+
WebKitWebEditor *
+webkit_web_page_get_editor (WebKitWebPage *web_page);
+

Gets the WebKitWebEditor of a WebKitWebPage.

+
+

Parameters

+
+++++ + + + + + +

web_page

a WebKitWebPage

 
+
+
+

Returns

+

the WebKitWebEditor.

+

[transfer none]

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

WebKitWebPage

+
typedef struct _WebKitWebPage WebKitWebPage;
+
+
+
+

enum WebKitFormSubmissionStep

+

Used to indicate a particular stage in form submission. See +“will-submit-form”.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT

+

indicates the form's +DOM submit event is about to be emitted.

+
 

WEBKIT_FORM_SUBMISSION_WILL_COMPLETE

+

indicates the form is about +to be submitted.

+
 
+
+
+
+
+

Property Details

+
+

The “uri” property

+
  “uri”                      gchar *
+

The current active URI of the WebKitWebPage.

+

Flags: Read

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “console-message-sent” signal

+
void
+user_function (WebKitWebPage        *web_page,
+               WebKitConsoleMessage *console_message,
+               gpointer              user_data)
+

Emitted when a message is sent to the console. This can be a message +produced by the use of JavaScript console API, a JavaScript exception, +a security error or other errors, warnings, debug or log messages. +The console_message + contains information of the message.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

console_message

the WebKitConsoleMessage

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.12

+
+
+
+

The “context-menu” signal

+
gboolean
+user_function (WebKitWebPage          *web_page,
+               WebKitContextMenu      *context_menu,
+               WebKitWebHitTestResult *hit_test_result,
+               gpointer                user_data)
+

Emitted before a context menu is displayed in the UI Process to +give the application a chance to customize the proposed menu, +build its own context menu or pass user data to the UI Process. +This signal is useful when the information available in the UI Process +is not enough to build or customize the context menu, for example, to +add menu entries depending on the WebKitDOMNode at the coordinates of the +hit_test_result +. Otherwise, it's recommended to use “context-menu” +signal instead.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

context_menu

the proposed WebKitContextMenu

 

hit_test_result

a WebKitWebHitTestResult

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the proposed context_menu +has been modified, or FALSE otherwise.

+
+

Flags: Run Last

+

Since: 2.8

+
+
+
+

The “document-loaded” signal

+
void
+user_function (WebKitWebPage *web_page,
+               gpointer       user_data)
+

This signal is emitted when the DOM document of a WebKitWebPage has been +loaded.

+

You can wait for this signal to get the DOM document with +webkit_web_page_get_dom_document().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “form-controls-associated” signal

+
void
+user_function (WebKitWebPage *web_page,
+               GPtrArray     *elements,
+               gpointer       user_data)
+

Emitted after form elements (or form associated elements) are associated to a particular web +page. This is useful to implement form auto filling for web pages where form fields are added +dynamically. This signal might be emitted multiple times for the same web page.

+

Note that this signal could be also emitted when form controls are moved between forms. In +that case, the elements + array carries the list of those elements which have moved.

+

Clients should take a reference to the members of the elements + array if it is desired to +keep them alive after the signal handler returns.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

elements

a GPtrArray of +WebKitDOMElement with the list of forms in the page.

[element-type WebKitDOMElement][transfer none]

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.16

+
+
+
+

The “send-request” signal

+
gboolean
+user_function (WebKitWebPage     *web_page,
+               WebKitURIRequest  *request,
+               WebKitURIResponse *redirected_response,
+               gpointer           user_data)
+

This signal is emitted when request + is about to be sent to +the server. This signal can be used to modify the WebKitURIRequest +that will be sent to the server. You can also cancel the resource load +operation by connecting to this signal and returning TRUE.

+

In case of a server redirection this signal is +emitted again with the request + argument containing the new +request to be sent to the server due to the redirection and the +redirected_response + parameter containing the response +received by the server for the initial request.

+

Modifications to the WebKitURIRequest and its associated +SoupMessageHeaders will be taken into account when the request +is sent over the network.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

request

a WebKitURIRequest

 

redirected_response

a WebKitURIResponse, or NULL

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE to stop other handlers from being invoked for the event. +FALSE to continue emission of the event.

+
+

Flags: Run Last

+
+
+
+

The “will-submit-form” signal

+
void
+user_function (WebKitWebPage           *web_page,
+               WebKitDOMElement        *form,
+               WebKitFormSubmissionStep step,
+               WebKitFrame             *source_frame,
+               WebKitFrame             *target_frame,
+               GPtrArray               *text_field_names,
+               GPtrArray               *text_field_values,
+               gpointer                 user_data)
+

This signal is emitted to indicate various points during form +submission. step + indicates the current stage of form submission.

+

If this signal is emitted with WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT, +then the DOM submit event is about to be emitted. JavaScript code +may rely on the submit event to detect that the user has clicked +on a submit button, and to possibly cancel the form submission +before WEBKIT_FORM_SUBMISSION_WILL_COMPLETE. However, beware +that, for historical reasons, the submit event is not emitted at +all if the form submission is triggered by JavaScript. For these +reasons, WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT may not +be used to reliably detect whether a form will be submitted. +Instead, use it to detect if a user has clicked on a form's +submit button even if JavaScript later cancels the form +submission, or to read the values of the form's fields even if +JavaScript later clears certain fields before submitting. This +may be needed, for example, to implement a robust browser +password manager, as some misguided websites may use such +techniques to attempt to thwart password managers.

+

If this signal is emitted with WEBKIT_FORM_SUBMISSION_WILL_COMPLETE, +the form will imminently be submitted. It can no longer be +cancelled. This event always occurs immediately before a form is +submitted to its target, so use this event to reliably detect +when a form is submitted. This event occurs after +WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT if that event is +emitted.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

web_page

the WebKitWebPage on which the signal is emitted

 

form

the WebKitDOMElement to be submitted, which will always correspond to an HTMLFormElement

 

step

a WebKitFormSubmissionEventType indicating the current +stage of form submission

 

source_frame

the WebKitFrame containing the form to be +submitted

 

target_frame

the WebKitFrame containing the form's target, +which may be the same as source_frame +if no target was specified

 

text_field_names

names of +the form's text fields.

[element-type utf8][transfer none]

text_field_values

values +of the form's text fields.

[element-type utf8][transfer none]

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/annotation-glossary/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/annotation-glossary/index.html new file mode 100644 index 000000000..1ad25ff79 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/annotation-glossary/index.html @@ -0,0 +1,38 @@ + + + + +Annotation Glossary: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

T

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch01/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch01/index.html new file mode 100644 index 000000000..097569da6 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch01/index.html @@ -0,0 +1,52 @@ + + + + +Web Extensions: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+Web Extensions

+
+
+WebKitWebExtension — Represents a WebExtension of the WebProcess +
+
+WebKitWebPage +
+
+WebKitFrame +
+
+WebKitScriptWorld +
+
+WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions) +
+
+WebKitWebEditor — Access to editing capabilities of a WebKitWebPage +
+
+WebKitConsoleMessage +
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch02/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch02/index.html new file mode 100644 index 000000000..ac5af1dbe --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch02/index.html @@ -0,0 +1,43 @@ + + + + +WebKitDOM: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+WebKitDOM

+ +
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index-all/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index-all/index.html new file mode 100644 index 000000000..79de4c415 --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index-all/index.html @@ -0,0 +1,148 @@ + + + + +Index: WPE WebExtensions and DOM Reference Manual + + + + + + + + + + + + + + + + +
+

+Index

+
+

W

+
+
WebKitConsoleMessage, WebKitConsoleMessage +
+
WebKitConsoleMessageLevel, enum WebKitConsoleMessageLevel +
+
WebKitConsoleMessageSource, enum WebKitConsoleMessageSource +
+
WebKitDOMDocument, struct WebKitDOMDocument +
+
WebKitDOMElement, struct WebKitDOMElement +
+
WebKitDOMNode, struct WebKitDOMNode +
+
WebKitDOMObject, struct WebKitDOMObject +
+
WebKitFormSubmissionStep, enum WebKitFormSubmissionStep +
+
WebKitFrame, struct WebKitFrame +
+
WebKitScriptWorld, struct WebKitScriptWorld +
+
WebKitScriptWorld::window-object-cleared, The “window-object-cleared” signal +
+
WebKitWebEditor, WebKitWebEditor +
+
WebKitWebEditor::selection-changed, The “selection-changed” signal +
+
WebKitWebExtension, struct WebKitWebExtension +
+
WebKitWebExtension::page-created, The “page-created” signal +
+
WebKitWebExtensionInitializeFunction, WebKitWebExtensionInitializeFunction () +
+
WebKitWebExtensionInitializeWithUserDataFunction, WebKitWebExtensionInitializeWithUserDataFunction () +
+
WebKitWebHitTestResult, struct WebKitWebHitTestResult +
+
WebKitWebHitTestResult:node, The “node” property +
+
WebKitWebPage, WebKitWebPage +
+
WebKitWebPage::console-message-sent, The “console-message-sent” signal +
+
WebKitWebPage::context-menu, The “context-menu” signal +
+
WebKitWebPage::document-loaded, The “document-loaded” signal +
+
WebKitWebPage::form-controls-associated, The “form-controls-associated” signal +
+
WebKitWebPage::send-request, The “send-request” signal +
+
WebKitWebPage::will-submit-form, The “will-submit-form” signal +
+
WebKitWebPage:uri, The “uri” property +
+
webkit_console_message_copy, webkit_console_message_copy () +
+
webkit_console_message_free, webkit_console_message_free () +
+
webkit_console_message_get_level, webkit_console_message_get_level () +
+
webkit_console_message_get_line, webkit_console_message_get_line () +
+
webkit_console_message_get_source, webkit_console_message_get_source () +
+
webkit_console_message_get_source_id, webkit_console_message_get_source_id () +
+
webkit_console_message_get_text, webkit_console_message_get_text () +
+
webkit_dom_element_html_input_element_get_auto_filled, webkit_dom_element_html_input_element_get_auto_filled () +
+
webkit_dom_element_html_input_element_is_user_edited, webkit_dom_element_html_input_element_is_user_edited () +
+
webkit_dom_element_html_input_element_set_auto_filled, webkit_dom_element_html_input_element_set_auto_filled () +
+
webkit_dom_element_html_input_element_set_editing_value, webkit_dom_element_html_input_element_set_editing_value () +
+
webkit_dom_node_for_js_value, webkit_dom_node_for_js_value () +
+
webkit_frame_get_js_context, webkit_frame_get_js_context () +
+
webkit_frame_get_js_context_for_script_world, webkit_frame_get_js_context_for_script_world () +
+
webkit_frame_get_js_value_for_dom_object, webkit_frame_get_js_value_for_dom_object () +
+
webkit_frame_get_js_value_for_dom_object_in_script_world, webkit_frame_get_js_value_for_dom_object_in_script_world () +
+
webkit_frame_get_uri, webkit_frame_get_uri () +
+
webkit_frame_is_main_frame, webkit_frame_is_main_frame () +
+
webkit_script_world_get_default, webkit_script_world_get_default () +
+
webkit_script_world_get_name, webkit_script_world_get_name () +
+
webkit_script_world_new, webkit_script_world_new () +
+
webkit_script_world_new_with_name, webkit_script_world_new_with_name () +
+
webkit_web_editor_get_page, webkit_web_editor_get_page () +
+
webkit_web_extension_get_page, webkit_web_extension_get_page () +
+
webkit_web_hit_test_result_get_node, webkit_web_hit_test_result_get_node () +
+
webkit_web_page_get_dom_document, webkit_web_page_get_dom_document () +
+
webkit_web_page_get_editor, webkit_web_page_get_editor () +
+
webkit_web_page_get_id, webkit_web_page_get_id () +
+
webkit_web_page_get_main_frame, webkit_web_page_get_main_frame () +
+
webkit_web_page_get_uri, webkit_web_page_get_uri () +
+
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index.html b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index.html new file mode 100644 index 000000000..e42d37cbb --- /dev/null +++ b/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index.html @@ -0,0 +1,68 @@ + + + + +WPE WebExtensions and DOM Reference Manual: WPE WebExtensions and DOM Reference Manual + + + + + + + +
+
+
+
+

for WPE WebKit 2.23.90

+
+
+
+
+
Web Extensions
+
+
+WebKitWebExtension — Represents a WebExtension of the WebProcess +
+
+WebKitWebPage +
+
+WebKitFrame +
+
+WebKitScriptWorld +
+
+WebKitWebHitTestResult — Result of a Hit Test (Web Process Extensions) +
+
+WebKitWebEditor — Access to editing capabilities of a WebKitWebPage +
+
+WebKitConsoleMessage +
+
+
WebKitDOM
+
+
+WebKitDOMObject +
+
+WebKitDOMDocument +
+
+WebKitDOMElement +
+
+WebKitDOMNode +
+
+
Index
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/release/WPE WebKit-2.27.2.html b/aperezdc/learn-discover-rework/release/WPE WebKit-2.27.2.html new file mode 100644 index 000000000..cea657dd3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/WPE WebKit-2.27.2.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.27.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.2?

+
    +
  • Add user messages API for the communication with the web extension.
  • +
  • Enable service workers by default.
  • +
  • Fix the build with WebDriver disabled.
  • +
  • Show also client EGL extensions in about:gpu.
  • +
  • Fix the build with unified sources disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.2.tar.xz (18.7 MiB)
+   md5sum: 7b3faa97084db376ff667f1bc84decb4
+   sha1sum: dce71f425d873f5d6cdff2c0ee60f997a7ec8f55
+   sha256sum: 6904ce94d73e5013fe9a18fe9f04f95e945210e6d755c7d7367c355f0f0d49f7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.10.0.html b/aperezdc/learn-discover-rework/release/cog-0.10.0.html new file mode 100644 index 000000000..1708daa13 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.10.0.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + Cog 0.10.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.10.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.10 series.

+

What’s new in Cog 0.10.0?

+
    +
  • Fix the location where the D-Bus policy config gets installed.
  • +
+

Checksums

+
+cog-0.10.0.tar.xz (97.9 KiB)
+   md5sum: 1b0407b6163a3a01afdfc0fb454a7570
+   sha1sum: 911816c00a2b08f4cfd388b1d2e176835c9b4e9e
+   sha256sum: 2c72369c636ca4684370adad1344071b23c9ee2c851eb7d738fa2e1d7092031f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.10.1.html b/aperezdc/learn-discover-rework/release/cog-0.10.1.html new file mode 100644 index 000000000..4c78f326e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.10.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + Cog 0.10.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.10.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.10 series.

+

What’s new in Cog 0.10.1?

+
    +
  • drm: Added support for absolute pointer motion events.
  • +
  • drm: Fixed the build with the platform module enabled.
  • +
  • headless: Added a COG_PLATFORM_HEADLESS CMake option to make the platform module optional.
  • +
+

Checksums

+
+cog-0.10.1.tar.xz (98.1 KiB)
+   md5sum: b997da3c143bc34ec5e953eb7e7ccefc
+   sha1sum: f25312141de918f41add3e3c9984faa985cda0a9
+   sha256sum: aecf546d7b0645119d79559c5574cb5eb68364fc8409dfbd47a4920bd1f221bc
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.11.1.html b/aperezdc/learn-discover-rework/release/cog-0.11.1.html new file mode 100644 index 000000000..4b85b8ab7 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.11.1.html @@ -0,0 +1,318 @@ + + + + + + + + + + + + Cog 0.11.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.11.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.12 series.

+

What’s new in Cog 0.11.1?

+
    +
  • core: Changed platform plug-ins to be able to automatically detect which +one should be used. Passing the --platform= command line option to the +launcher is now optional.
  • +
  • core: Added support for building against libsoup3.
  • +
  • core: Added CogHostRoutesHandler, which can route URI scheme requests +with different host parts to other handlers.
  • +
  • core, cog: Added support for running in WebDriver automation mode.
  • +
  • cog: New --enable-sandbox command line option, which allows isolating +rendering processes from the rest of the system.
  • +
  • cog: New --content-filter= command line option, which allows loading +a content blocker (WebKitUserContentFilter) JSON rule set.
  • +
  • drm: Implemented handling of pointer axis/wheel/finger/continuous events +and absolute motion events.
  • +
  • wl: Renamed fdo platform module to wl (Wayland) as it better reflects +its usage; the old name still works e.g. when using cog --platform=fdo +but it is considered deprecated and will cause a warning.
  • +
  • wl, gtk4: Added support for fullscreening web views.
  • +
  • gtk4: Honor the +CogShell.device-scale-factor property.
  • +
+

Checksums

+
+cog-0.11.1.tar.xz (109.0 KiB)
+   md5sum: b078bdc3a08930f4c8e61a458ad6b332
+   sha1sum: ef41312c64871b7da26cab407ad3db27ee937bb0
+   sha256sum: 6cbd60386e20bad62adccb26a2488c9eea0b609b12336476fac1fb71fcd26572
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.11.90.html b/aperezdc/learn-discover-rework/release/cog-0.11.90.html new file mode 100644 index 000000000..91b8b2139 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.11.90.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.11.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.11.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.12 series.

+

What’s new in Cog 0.11.90?

+
    +
  • core: Removed cog_platform_teardown(), deinitilization of platform +plug-in implementations is now done automatically as part of object +finalization.
  • +
  • core: Fixed building the documentation when using libsoup3.
  • +
  • drm: Fixed two small memory leaks during initialization.
  • +
+

Checksums

+
+cog-0.11.90.tar.xz (109.4 KiB)
+   md5sum: 4e731010fc948fa156822f1868d63df7
+   sha1sum: 9751bee357a72713323da8f8c180e825b4d783a1
+   sha256sum: baf79b221e6297c533f98dad54a9715c7d55d6a1af1997e566705bc51e8ab228
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.12.0.html b/aperezdc/learn-discover-rework/release/cog-0.12.0.html new file mode 100644 index 000000000..2227785f3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.12.0.html @@ -0,0 +1,318 @@ + + + + + + + + + + + + Cog 0.12.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.12.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.12 series.

+

Highlights of the 0.12.0 release

+
    +
  • cog: New --enable-sandbox command line option, which allows isolating +rendering processes from the rest of the system.
  • +
  • cog: New --content-filter= command line option, which allows loading +a content blocker (WebKitUserContentFilter) JSON rule set.
  • +
  • core, cog: Added support for running in WebDriver automation mode.
  • +
  • core: Changed platform plug-ins to be able to automatically detect which +one should be used. Passing the --platform= command line option to the +launcher is now optional.
  • +
  • core: Added support for building against libsoup3.
  • +
  • core: Added CogHostRoutesHandler, which can route URI scheme requests +with different host parts to other handlers.
  • +
  • core: Removed cog_platform_teardown(), deinitilization of platform +plug-in implementations is now done automatically as part of object +finalization.
  • +
  • wl: Renamed fdo platform module to wl (Wayland) as it better reflects +its usage; the old name still works e.g. when using cog --platform=fdo +but it is considered deprecated and will cause a warning.
  • +
  • wl, gtk4: Added support for fullscreening web views.
  • +
  • drm: Improved input event handling.
  • +
+

Checksums

+
+cog-0.12.0.tar.xz (109.4 KiB)
+   md5sum: 30d6f68914af0ba5c32ac14df504215a
+   sha1sum: de367b33fb45a1bca9e443ca5c1d6cae3833d759
+   sha256sum: aad413a8aaf15d400d70f9c909a28b92b138f7b0c0d825978de8788d0d75208a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.12.1.html b/aperezdc/learn-discover-rework/release/cog-0.12.1.html new file mode 100644 index 000000000..a06ccb106 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.12.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.12.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.12.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.12 series.

+

What’s new in Cog 0.12.1?

+
    +
  • wl: Fixed handling of supported Wayland protocol versions, preventing a +crash with certain compositors which advertise support for newer versions +than actually supported by the client.
  • +
  • Fixed the location used by CMake to install platform plug-ins.
  • +
+

Checksums

+
+cog-0.12.1.tar.xz (109.4 KiB)
+   md5sum: 25a80a5a8a52b8873933a128151b8928
+   sha1sum: 3b9f67bc23cd9e3db2221366d6cde4ca0b06b811
+   sha256sum: 23caaafa2ef5c2f6a97d467fcce908ea71087ad03b72deb9280225c0dd561c91
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.12.2.html b/aperezdc/learn-discover-rework/release/cog-0.12.2.html new file mode 100644 index 000000000..ec2564c66 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.12.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + Cog 0.12.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.12.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 0.12 series.

+

What’s new in Cog 0.12.2?

+
    +
  • Fixed the location passed by CMake to the compiler with the platform +plug-ins to ensure it is always an absolute path.
  • +
+

Checksums

+
+cog-0.12.2.tar.xz (109.6 KiB)
+   md5sum: ab6828b3733c3d39fc47835172fdaded
+   sha1sum: 42d3d6aa935896e464f281c84c478b5994ebb7b3
+   sha256sum: ccebdc1f216b698d1e780d3a71617bec1d2cd95ac5c9da59f563372463d97ed7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.12.3.html b/aperezdc/learn-discover-rework/release/cog-0.12.3.html new file mode 100644 index 000000000..df3688c5d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.12.3.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + Cog 0.12.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.12.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 0.12 series.

+

What’s new in Cog 0.12.3?

+
    +
  • wl: Fixed a crash related to usage of features not available in +versions of interfaces negotiated with the Wayland compositor.
  • +
+

Checksums

+
+cog-0.12.3.tar.xz (109.7 KiB)
+   md5sum: 320d01d8546144fba2e14bed3522c8c7
+   sha1sum: 8e28b216bb2462325a1df1e8e03ac199487440b0
+   sha256sum: f464065057373c0430f6267205d1ab3367b54ac04d15b6b5531683b03212f45f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.12.4.html b/aperezdc/learn-discover-rework/release/cog-0.12.4.html new file mode 100644 index 000000000..bfc95e4b3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.12.4.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + Cog 0.12.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.12.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 0.12 series.

+

What’s new in Cog 0.12.4?

+
    +
  • wl: Fix software rendering support.
  • +
  • x11: Fix underlinking when passing the --as-needed flag to the linker.
  • +
+

Checksums

+
+cog-0.12.4.tar.xz (109.8 KiB)
+   md5sum: cdb8acdc3acc9b5082e7db9c279155c3
+   sha1sum: 600b30efadf55bf94ea5062a0a1b2ea0b74053e5
+   sha256sum: 9983c621c8e14fca3792ff566cb6b86d6a1f17446eb4c083af4a5a749112982f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.13.1.html b/aperezdc/learn-discover-rework/release/cog-0.13.1.html new file mode 100644 index 000000000..667008652 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.13.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.13.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.13.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.14 series.

+

What’s new in Cog 0.13.1?

+
    +
  • launcher: Support setting memory limits using command line options.
  • +
  • core: Remove CogLauncher from the library, as it is in practice an +implementation detail of the cog launcher.
  • +
  • cmake: Fix calculation of default installation path for platform plug-ins.
  • +
+

Checksums

+
+cog-0.13.1.tar.xz (110.6 KiB)
+   md5sum: 5c849e71de7ceb055ffa44df81b105f1
+   sha1sum: 4556d5b8f1eac6aac907b20cfe92e39223bb8510
+   sha256sum: a32732d91bf6297fa974aa9bf6d2dab10f7b2a00f2cc3076b2b786d39fa8e129
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.13.2.html b/aperezdc/learn-discover-rework/release/cog-0.13.2.html new file mode 100644 index 000000000..a5a3528f4 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.13.2.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.13.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.13.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.14 series.

+

What’s new in Cog 0.13.2?

+
    +
  • launcher: Add new --platform-params/-O command line option, which +allows passing parameters to platforms plug-ins during initialization.
  • +
  • drm: Add support for output rotation by means of a new OpenGL ES based +renderer, which can be enabled with cog -O renderer=gles,rotation=1.
  • +
  • drm: Rotate input device coordinates as needed to match output rotation.
  • +
+

Checksums

+
+cog-0.13.2.tar.xz (116.5 KiB)
+   md5sum: 57026de891085ed2efbd7d0a92b5f3e7
+   sha1sum: 7a69602b4ae2cd7bea03e2ebfdc33c7bcde181a3
+   sha256sum: 93dcc2a012ae8d261131c91e090c7a3ff5e530e7757a33c50bb2a6cc1523a0dd
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.13.3.html b/aperezdc/learn-discover-rework/release/cog-0.13.3.html new file mode 100644 index 000000000..8acbc4d1f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.13.3.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.13.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.13.3 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.14 series.

+

What’s new in Cog 0.13.3?

+
    +
  • core: Fix platform plug-ins not being found due to COG_MODULEDIR being +incorrectly defined as a relative path at build configuration time.
  • +
  • gtk4: Fix handling of mouse events when teh device scale factor changes.
  • +
  • gtk4: Improve compatibility with more graphics drivers by marking shaders +as compatible with all GLSL versions.
  • +
+

Checksums

+
+cog-0.13.3.tar.xz (117.3 KiB)
+   md5sum: f3f59b4c8e0336baf27be602ddc6f842
+   sha1sum: b045d5ac0098fee33ac53f88488aac804150c7aa
+   sha256sum: d411142cd44781629e26b1fa8a8e5b8de45ca43014fdbdebdfa39a8b2c1eda4b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.13.90.html b/aperezdc/learn-discover-rework/release/cog-0.13.90.html new file mode 100644 index 000000000..dc0cd669e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.13.90.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + Cog 0.13.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.13.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.14 series.

+

What’s new in Cog 0.13.90?

+
    +
  • cmake: Enable libsoup3 usage by default, USE_SOUP2=ON can still be specified to build against libsoup2.
  • +
  • cmake: Require version 3.12, which is the same minimum as needed by WebKit.
  • +
  • cmake: Link the same wpebackend-fdo library in all components to avoid crashes due to multiple copies loaded with different behaviours.
  • +
  • cmake: Fix generated .pc file when using an absolute directory for the CMAKE_INSTALL_LIBDIR option instead of a relative one.
  • +
  • core: Add “Try again” button to default error pages.
  • +
  • gtk4: Fix rendering with drivers that support OpenGL 4.
  • +
  • wl: Avoid crashing due to missing callbacks by explicitly binding to supported versions of Wayland protocols.
  • +
  • wl: Fix the build with COG_WESTON_DIRECT_DISPLAY enabled.
  • +
  • wl: Fix fullscreen surface dimensions when using SHM buffers.
  • +
  • wl: Add keybindings to refresh the current page (Ctrl-R, F5).
  • +
  • x11: Fix underlinking when the --as-needed linker flag is in use.
  • +
  • x11: Fix rendering in non-composited (traditional) window managers.
  • +
  • drm, gtk4, x11: Factor out and reuse the GLES textured quad painting code.
  • +
  • drm, wl, x11: Add refresh rate reporting to let WebKit pace rendering to match the output device.
  • +
+

Checksums

+
+cog-0.13.90.tar.xz (119.7 KiB)
+   md5sum: 749f55793438c552185023a9bd744d6a
+   sha1sum: 82c885e8e942a97c7bb7d7c9b6e25ceba1b462c7
+   sha256sum: a7ed11a10c41a9c4ad9692730357e6d86f2544d308d96018d26f80b234e16080
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.14.0.html b/aperezdc/learn-discover-rework/release/cog-0.14.0.html new file mode 100644 index 000000000..9f21de7de --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.14.0.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + Cog 0.14.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.14.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.14 series.

+

Highlights of the 0.14.0 release

+

Launcher (cog):

+
    +
  • Support setting memory limits using command line options.
  • +
  • Support passing initialization parameters to platform plug-ins using +the --platform-params/-O command line option.
  • +
+

Core library (libcogcore):

+
    +
  • The CogLauncher class is no longer available, as it was an +implementation detail of the launcher.
  • +
  • Built-in error pages now have a “Try again” button.
  • +
+

DRM/KMS platform (drm):

+
    +
  • New OpenGL ES renderer, which supports output rotation and improved +compatibility with some graphics drivers.
  • +
  • Added refresh rate reporting to let WebKit pace rendering to match the output device.
  • +
+

GTK4 platform (gtk4):

+
    +
  • Improved compatibility with more graphics drivers.
  • +
+

Wayland platform (wl):

+
    +
  • Improved compatibility with different compositors.
  • +
  • Added keybindings to refresh the current page (Ctrl-R, F5).
  • +
  • Added refresh rate reporting to let WebKit pace rendering to match the output device.
  • +
+

X11 platform (x11):

+
    +
  • Fixed rendering with traditional, non-composited window managers.
  • +
  • Added refresh rate reporting to let WebKit pace rendering to match the output device.
  • +
+

Checksums

+
+cog-0.14.0.tar.xz (119.8 KiB)
+   md5sum: 2352aaba1a4ff31b1d1fb559c4941a01
+   sha1sum: 2da37ea6c25e45425aa80de4a129484ee226dd96
+   sha256sum: e23936f1ce350ea5ea6fa0709b63d34776b05709388aed9c6cf3fdc41299de9f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.14.1.html b/aperezdc/learn-discover-rework/release/cog-0.14.1.html new file mode 100644 index 000000000..dea460c68 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.14.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + Cog 0.14.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.14.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.14 series.

+

What’s new in Cog 0.14.1?

+
    +
  • cmake: Fix the build with CMake <3.22.
  • +
  • cmake: Fix generated cogcore.pc file.
  • +
+

Checksums

+
+cog-0.14.1.tar.xz (119.8 KiB)
+   md5sum: 69d72ac046a0fc485ea7b61b96e7e7fc
+   sha1sum: 6236972b0ae0bce38a0a017610f161b349723862
+   sha256sum: fb91104e25e1dde27189c91c70acc356e387f47acebaa8997e01ce5879c3a600
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.15.1.html b/aperezdc/learn-discover-rework/release/cog-0.15.1.html new file mode 100644 index 000000000..a9bfc4117 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.15.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.15.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.15.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.16 series.

+

What’s new in Cog 0.15.1?

+
    +
  • launcher: Add new --proxy and --ignore-host command line options, which +allow setting up a network proxy and a list of hosts that would bypass it.
  • +
  • drm, gtk4, wl, x11: Add support for gamepads using libmanette.
  • +
  • build: Switch the build system from CMake to Meson.
  • +
+

Checksums

+
+cog-0.15.1.tar.xz (118.6 KiB)
+   md5sum: 8b2021df565d6780a645728a3e17cb9c
+   sha1sum: 67e186e8d7897bed5cfc07a36ce7e166d675358a
+   sha256sum: 9f8ab14696077c0b64a7e8dc269709e33aae17336f9405c9734752c4d174f350
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.16.0.html b/aperezdc/learn-discover-rework/release/cog-0.16.0.html new file mode 100644 index 000000000..396522f95 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.16.0.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + Cog 0.16.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.16.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.16 series.

+

Highlights of the Cog 0.16.0 Release

+

General:

+
    +
  • Add support for gamepads, using libmanette +for hardware access.
  • +
  • Switch the build system from CMake to Meson.
  • +
+

Launcher (cog):

+
    +
  • New --gamepad= command line option to choose the gamepad +implementation to use.
  • +
  • New --proxy= and --ignore-host= command line options, which +allow setting up a network proxy and a list of hosts that would +bypass it.
  • +
+

Checksums

+
+cog-0.16.0.tar.xz (119.1 KiB)
+   md5sum: 2705472ea4f333290973722c0862b21d
+   sha1sum: ef16e5e3d91d0da056fe5e4f596c211af7453b4e
+   sha256sum: 2956f719d36c9a6368f63901a0d1ceaf4d27f529f7df441b3748c36d72906fc6
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.16.1.html b/aperezdc/learn-discover-rework/release/cog-0.16.1.html new file mode 100644 index 000000000..63b213f4c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.16.1.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + Cog 0.16.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.16.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.16 series.

+

What’s new in Cog 0.16.1?

+
    +
  • core: Fix build failure in some systems.
  • +
  • drm: Fix missing symbol which made the platform unusable.
  • +
  • wl: Fix build in systems where the drm_fourcc.h header is not installed +in the default search paths.
  • +
  • wl: Allow building against libweston-12-protocols.
  • +
  • meson: Do not check for platform plug-in dependencies if no platform +plug-ins are enabled.
  • +
+

Checksums

+
+cog-0.16.1.tar.xz (119.3 KiB)
+   md5sum: 1489740db6b4ea568578035c30b8b2f4
+   sha1sum: 1235203085e7ccd8fc76eab6bdfcdb2e3ae38ea9
+   sha256sum: 37c5f14123b8dcf077839f6c60f0d721d2a91bb37829e796f420126e6b0d38b5
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.17.1.html b/aperezdc/learn-discover-rework/release/cog-0.17.1.html new file mode 100644 index 000000000..31c4f78ab --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.17.1.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + Cog 0.17.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.17.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.18 series.

+

What’s new in Cog 0.17.1?

+
    +
  • Support building against the new WPE WebKit 2.0 API.
  • +
  • Allow choosing the gamepad backend at runtime.
  • +
  • meson: Build in C11 mode by default.
  • +
  • drm, wl: Improved plug-in documentation.
  • +
  • headless: Allow configuring the maximum refresh rate.
  • +
  • gtk4: Follow device scale factor changes.
  • +
  • wl: Add support for libweston-12-protocols.
  • +
  • wl: Fix usage of raw codes for keyboard input.
  • +
  • wl: Fix issues due to attachment of buffers with mismatched sizes.
  • +
+

Checksums

+
+cog-0.17.1.tar.xz (121.4 KiB)
+   md5sum: 35c936b90ae89c976fc5d3bbe26a8ba6
+   sha1sum: 36c7528fbf0b7e36826c629303016d488e431b87
+   sha256sum: 69e7d3b62c206210c3c436746d1241bfb99a1e789e6c4b7cb65dd9ae72459d42
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.17.90.html b/aperezdc/learn-discover-rework/release/cog-0.17.90.html new file mode 100644 index 000000000..ef682f425 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.17.90.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.17.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.17.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.18 series.

+

What’s new in Cog 0.17.90?

+
    +
  • drm: Properly support input-less setups and situations in which the +initialization of the XKB context may have failed.
  • +
  • x11, wl: Make mouse scroll wheel behaviour snappier.
  • +
  • launcher: Support passing the platform plug-in name and its parameters +using environment variables.
  • +
+

Checksums

+
+cog-0.17.90.tar.xz (122.5 KiB)
+   md5sum: 343f8496c14c1c5d09708c1dfb83df78
+   sha1sum: 5fdbaa382df921695c76e37a3fa5a841ccfd0f4f
+   sha256sum: beb98996c48927e7283961877d45acb7f26ed71d78be9c4984fbff30ed0bedb7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.18.0.html b/aperezdc/learn-discover-rework/release/cog-0.18.0.html new file mode 100644 index 000000000..cc28fc93f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.18.0.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + Cog 0.18.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.18.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.18 series.

+

Highlights of the Cog 0.18.0 release

+
    +
  • Support building against the new WPE WebKit 2.0 API.
  • +
  • Improved documentation.
  • +
  • launcher: Allow choosing the gamepad backend at runtime.
  • +
  • launcher: Support passing the platform plug-in name and its parameters +using environment variables COG_PLATFORM_NAME and COG_PLATFORM_PARAMS.
  • +
  • drm: Properly support input-less setups and situations in which the +initialization of the XKB context may have failed.
  • +
  • gtk4: Follow device scale factor changes.
  • +
  • headless: Allow configuring the maximum refresh rate.
  • +
  • x11, wl: Make mouse scroll wheel behaviour snappier.
  • +
  • wl: Add support for libweston-12-protocols.
  • +
  • wl: Make output device scaling configuration more robust, which among +other things fixes blurry rendering in some compositors.
  • +
+

Checksums

+
+cog-0.18.0.tar.xz (122.6 KiB)
+   md5sum: 9521458c72322e1b2e39e8b1cca93d24
+   sha1sum: 73ec1684c31de7247ecbd5e852c16cf88416bedd
+   sha256sum: 410bf70f9aa3812db72d75c25cefee421efa0391ab03dc3c37299dfaa388f4fd
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.18.1.html b/aperezdc/learn-discover-rework/release/cog-0.18.1.html new file mode 100644 index 000000000..e765c8fac --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.18.1.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + Cog 0.18.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.18.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.18 series.

+

What’s new in Cog 0.18.1?

+
    +
  • core: Avoid leaking web views due to CogShell holding one reference +too much on them.
  • +
  • drm: Fix touch region dimensions when the output is rotated by 90 or +270 degrees.
  • +
  • meson: Fix configuration error when only the Wayland platform plug-in +is selected.
  • +
+

Checksums

+
+cog-0.18.1.tar.xz (122.7 KiB)
+   md5sum: 204ae9353ed828e4ac39b1dd4c5c35dd
+   sha1sum: f0f0ebcd279170f427be0ad57fd356faff1a2732
+   sha256sum: 72e3a84052b459e2d53d0e8b947f20e27bf5d8049766c4c1594eb9c6b6cf7ab3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.18.2.html b/aperezdc/learn-discover-rework/release/cog-0.18.2.html new file mode 100644 index 000000000..d3499b567 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.18.2.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.18.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.18.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 0.18 series.

+

What’s new in Cog 0.18.2?

+
    +
  • drm: Fix crash on iMX.6 (and possibly others) by improving how the CRTC +and encoder combination is chosen.
  • +
  • wl: Add support for Weston protocols version 13.
  • +
  • launcher: Handle GApplication activation to avoid a warning.
  • +
+

Checksums

+
+cog-0.18.2.tar.xz (123.1 KiB)
+   md5sum: 7fbfc2e19304132be0d73f5e5512151c
+   sha1sum: 045294f7fa878db86e4b8a617ee4ac056a71cb75
+   sha256sum: 3c4237cff6323b8c3eaf52c6f3f6415b898a22c0127c6c396c1eaa6eef46c279
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.18.3.html b/aperezdc/learn-discover-rework/release/cog-0.18.3.html new file mode 100644 index 000000000..faffcbb53 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.18.3.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.18.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.18.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 0.18 series.

+

What’s new in Cog 0.18.3?

+
    +
  • drm: Fix handling of the scaling factor setting.
  • +
  • gtk4: Take scaling factor into account for pointer events.
  • +
  • launcher: Support toggling WebKit features with a new --features/-F command +line option, when built against WebKit 2.42.0 or newer.
  • +
+

Checksums

+
+cog-0.18.3.tar.xz (123.9 KiB)
+   md5sum: e457de5b5ac8994ae9971c0a5a22b8a2
+   sha1sum: 21df2a84c651b45e78d08e45e71631250a0078c3
+   sha256sum: cd4ec937175a290ccd7c8ec398e4569aec04084cd94b11b2d83518778ba9d055
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.19.1.html b/aperezdc/learn-discover-rework/release/cog-0.19.1.html new file mode 100644 index 000000000..75efff881 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.19.1.html @@ -0,0 +1,378 @@ + + + + + + + + + + + + Cog 0.19.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.19.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.20 series.

+

What’s new in Cog 0.19.1?

+
    +
  • Support multiple web views, using the new +CogView and +CogViewport APIs. +Each viewport may display one from a set of web views, and using many +viewports is supported as well. Typically platform plug-ins map a +viewport to some kind of “window” that can be displayed on screen. +Most of the changes in this release are related to this new feature.
  • +
  • launcher: +
      +
    • Add command line flag to disable the built-in key bindings.
    • +
    • Add command line flag to control media auto-play behaviour.
    • +
    • Handle GApplication activation to avoid a warning.
    • +
    +
  • +
  • core: +
      +
    • Moved most of the key binding handling from the Wayland platform +into CogView, making it common code for all platforms.
    • +
    • Moved platform plug-in selection logic into the library, along +with an always-built “fallback” implementation, which simplifies API +usage.
    • +
    • Avoid leaking web views due to CogShell holding one reference +too much on them.
    • +
    • The library now takes advantage of symbol visibility, and only +the public symbols marked with the COG_API macro will be available for +linking from the shared library.
    • +
    • Avoid loading the same platform plug-in more than once.
    • +
    • Automatically scan the default module path without needing +programs to call +cog_modules_add_directory() +by themselves.
    • +
    • Remove the cog_platform_configure() function, in favor of +a new cog_init() function +which is optional to call, and reorganized setup code to make API +usage simpler.
    • +
    +
  • +
  • meson: +
      +
    • Fix configuration error when only the Wayland platform plug-in +is selected.
    • +
    +
  • +
  • drm: +
      +
    • Fix touch region dimensions when the output is rotated by 90 +or 270 degrees.
    • +
    • Fix crash on iMX.6 (and possibly others) by improving how the +CRTC and encoder combination is chosen.
    • +
    +
  • +
  • x11: +
      +
    • Add support for using the xcb-keysyms library for handling key +input events when the XKB extension is unavailable, either because +its usage was disabled at build time, or the extension is missing at +runtime.
    • +
    +
  • +
  • wl: +
      +
    • Add support for Weston protocols version 13.
    • +
    • Fix blurry rendering in some compositors.
    • +
    • Add a check for memfd_create() to avoid the need to have write +permission in XDG_RUNTIME_DIR, which is the case in some systems.
    • +
    • Set the opaque region also for non-fullscreen surfaces, resulting +in a small performance improvement in some cases.
    • +
    • Add support for multiple seats.
    • +
    • Remove limit of 16 maximum outputs.
    • +
    +
  • +
  • gtk4, x11, wl: +
      +
    • Add support for file choosers using the XDG Desktop +Portal through libportal.
    • +
    • Add support for changing mouse cursors when hovering +links (hand) and text (I-beam).
    • +
    +
  • +
+

Checksums

+
+cog-0.19.1.tar.xz (140.6 KiB)
+   md5sum: ec4566bd63ad570a9c7654ed79e46c3f
+   sha1sum: a226fedec99d2c92c2d8b6247ec57f4587c8041d
+   sha256sum: 633760ba69e36e4fbc24757c927f46fa1fdb3c526d0a6ac6ab35a21d35ad57b3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.3.91.html b/aperezdc/learn-discover-rework/release/cog-0.3.91.html new file mode 100644 index 000000000..d8afbca0c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.3.91.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + Cog 0.3.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.3.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.4 series.

+

What’s new in the cog 0.3.91 release?

+
    +
  • HiDPI support. The “cog --device-scale” option can be used to set the +initial scale factor.
  • +
  • Using “cog --version” now also prints the WebKit version and (if available +at build time), Git repository information.
  • +
  • The libcogcore library now has proper libtool versioning.
  • +
  • fdo: Fix axis scrolling.
  • +
  • New “experimental-drm” platform plug-in which uses KMS+DRM (Kernel Mode +Setting, Direct Rendering Manager) for direct display on framebuffers, +and libinput for input event processing.
  • +
+

Checksums

+
+cog-0.3.91.tar.xz (80.6KB)
+   md5sum: 0ecf0b1f95803ee65f69abcdd46558ff
+   sha1sum: d9a37933b624c65b7ff70543c37d3d2efc219e90
+   sha256sum: 99c1b075bc41b9a492af846bafe5d7ce4046edd393b3f2e114ffcb33e3dfeef8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.4.0.html b/aperezdc/learn-discover-rework/release/cog-0.4.0.html new file mode 100644 index 000000000..0e9024154 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.4.0.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + Cog 0.4.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.4.0 released

+ + + + + + Download + +
+ +
+ +

This is the first release in the 0.4 series.

+

Highlights of the Cog 0.4.0 release

+
    +
  • Support for output device scaling (HiDPI).
  • +
  • Adopted the same release schedule and versioning scheme as the rest of +the WPE WebKit components.
  • +
  • New experimental-drm platform plug-in which uses KMS+DRM (Kernel Mode +Setting, Direct Rendering Manager) for direct display on framebuffers, +and libinput for input event processing.
  • +
+

For more details about all the changes included in Cog 0.4 see the NEWS +file included in the release tarball.

+

Checksums

+
+cog-0.4.0.tar.xz (80.7 KiB)
+   md5sum: 75a0838ee6c81bb8df1b254f525440a6
+   sha1sum: 284d2a641e6269b296057918602c8c94eb831527
+   sha256sum: e9c13a51232434b7340a419b1e6f59c40c582cd80c8e60bd9ec7de16c904fc03
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.5.1.html b/aperezdc/learn-discover-rework/release/cog-0.5.1.html new file mode 100644 index 000000000..f397aa7d7 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.5.1.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.5.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.5.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.6 series.

+

What’s new in Cog 0.5.1?

+
    +
  • fdo: Added support for Input Methods.
  • +
  • fdo: Added support for smooth scrolling using 2D axis events.
  • +
  • fdo: Added support for direct-display video rendering.
  • +
  • drm: The DRM platform module is no longer experimental.
  • +
  • New manual pages for cog and cogctl.
  • +
+

Checksums

+
+cog-0.5.1.tar.xz (88.6 KiB)
+   md5sum: 48ceb4159b7f14324fa8d3c480968d40
+   sha1sum: 501af1bb85acbcd94f64f02808475df8cbeb0a26
+   sha256sum: 0160d942c7f2b832e4a7379f265e0e04e86a78b0e813340c36d029f98b74179e
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.6.0.html b/aperezdc/learn-discover-rework/release/cog-0.6.0.html new file mode 100644 index 000000000..bcadc722e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.6.0.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + Cog 0.6.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.6.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.6 series.

+

Highlights of the Cog 0.6.0 release

+

The FDO platform plug-in has received a number of improvements:

+
    +
  • Added support for input methods.
  • +
  • Added support for smooth scrolling using 2D axis events.
  • +
  • Added support for direct-display video rendering.
  • +
  • A default pointer cursor is now set if the wayland-cursor library is +available at build time.
  • +
+

Starting with this release the DRM platform plug-in is no longer considered +experimental.

+

Checksums

+
+cog-0.6.0.tar.xz (89.4 KiB)
+   md5sum: a97df4f0e2d25f4da7cd9bb55294d30e
+   sha1sum: 9392d9251bab8a9f61d00297707e16a983127eae
+   sha256sum: 208f58e0533b269400875237a95e994c93da7234a29fd1c904e756b88963e35d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.7.1.html b/aperezdc/learn-discover-rework/release/cog-0.7.1.html new file mode 100644 index 000000000..fbdd33393 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.7.1.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + Cog 0.7.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.7.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.8 series.

+

What’s new in Cog 0.7.1?

+
    +
  • Support keeping a reference to the configuration file, which platform +plug-ins can use to obtain their own configuration options.
  • +
  • fdo: Added support for option menus.
  • +
  • fdo: Set a default pointer cursor.
  • +
  • fdo: Removed redundant EGL state.
  • +
  • fdo: Fix possible usage of uninitialized libxkbcommon structures.
  • +
+

Checksums

+
+cog-0.7.1.tar.xz (93.6 KiB)
+   md5sum: f2c51cd444ca54d8042e99b3e8a3fa78
+   sha1sum: e016a33693f470b05264e5f85c8e00c509c66348
+   sha256sum: 42890e946652517abec8c0492d9fd8d827d5559652536a23a4c9ab8c1aecfe32
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.7.90.html b/aperezdc/learn-discover-rework/release/cog-0.7.90.html new file mode 100644 index 000000000..b490bdb98 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.7.90.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + Cog 0.7.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.7.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.8 series.

+

What’s new in Cog 0.7.90?

+
    +
  • cog: Added the --ignore-tls-errors command line option which allows +ignoring TLS certificate validation errors.
  • +
  • cog: Fixed navigation in some sites by following URI passed to +window.open() loading them in the active view.
  • +
  • fdo: Improve the logic to set the opaque region of the Wayland surface if it +could have changed between exported frames, which saves some CPU time.
  • +
  • drm: Support choosing the video mode to use using the +COG_PLATFORM_DRM_VIDEO_MODE environment variable.
  • +
+

Checksums

+
+cog-0.7.90.tar.xz (71.3 KiB)
+   md5sum: 6ad78ec3e08e570248f5892f7b7b4ca7
+   sha1sum: fd69bb9dafb7ef763457f52a9008105d722932fe
+   sha256sum: 3bb940741b685e89305decc894acf0b4ed9fdc77f7878b70da48a1def2e71925
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.8.0.html b/aperezdc/learn-discover-rework/release/cog-0.8.0.html new file mode 100644 index 000000000..5417c984b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.8.0.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + Cog 0.8.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.8.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 0.8 series.

+

Highlights of the Cog 0.8.0 release

+
    +
  • cog: Added the --ignore-tls-errors command line option which allows ignoring TLS certificate validation errors.
  • +
  • cog: Fixed navigation in some sites by following URI passed to window.open() loading them in the active view.
  • +
  • fdo: Improve the logic to set the opaque region of the Wayland surface if it could have changed between exported frames, which saves some CPU time.
  • +
  • fdo: Added support for displaying option menus.
  • +
  • drm: Support choosing the video mode to use using the COG_PLATFORM_DRM_VIDEO_MODE environment variable.
  • +
+

Checksums

+
+cog-0.8.0.tar.xz (71.3 KiB)
+   md5sum: f7aa8a425927cab247563411fc67c5a3
+   sha1sum: 977559204dae0f9220e4c6b8ded7537899fd2daf
+   sha256sum: 181b1f4963cdf264b8068460a64d14c92a627f7138ebecc0f36fce085f4e92dd
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.8.1.html b/aperezdc/learn-discover-rework/release/cog-0.8.1.html new file mode 100644 index 000000000..60e09cd04 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.8.1.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + Cog 0.8.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.8.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 0.8 series.

+

What’s new in Cog 0.8.1?

+
    +
  • core: Improved cog_web_view_connect_default_error_handlers() to avoid +accidentally overriding already connected signal handlers.
  • +
  • drm: Fixed keyboard input when using modifier keys (e.g. Shift).
  • +
  • drm: Fixed crashes during deinitialization.
  • +
  • drm, fdo: Improved reliability for drivers which do not expose all their +functionality via eglGetProcAddress().
  • +
  • Improved behaviour of the CMake build system at configuration time.
  • +
+

Checksums

+
+cog-0.8.1.tar.xz (71.8 KiB)
+   md5sum: 21664fb04c9149dea6d68e13e6074276
+   sha1sum: baabba7f0f6009c64ef0c4f7c5f807382cffef5d
+   sha256sum: b82e917eb764943b9859c631974f8f0e748b79ae87bb7a944f46c818740e0208
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.9.1.html b/aperezdc/learn-discover-rework/release/cog-0.9.1.html new file mode 100644 index 000000000..031d2af67 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.9.1.html @@ -0,0 +1,325 @@ + + + + + + + + + + + + Cog 0.9.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.9.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 0.10 series.

+

What’s new in Cog 0.9.1?

+
    +
  • core: Added CogPrefixRoutesHandler, which can route URI scheme requests +with different path prefixes to other handlers.
  • +
  • core: Added new CogShell.device-scale-factor property.
  • +
  • core: Added support in CogDirectoryFilesHandler to use the URI host part +as a path component, to ignore a certain amount of path components, and +expose the base path as a property.
  • +
  • core: Removed support for building using WebKitGTK, only the WPE port is +supported now.
  • +
  • drm: The DRM/KMS platform module is now built by default.
  • +
  • drm: Added support for key press event repeat.
  • +
  • drm: Added support for mouse cursor.
  • +
  • drm: Added support for atomic modesetting, which is automatically used +by default when support is detected in the video driver.
  • +
  • drm: Added support for limiting the maximum used video mode width and +height, settable using the COG_PLATFORM_DRM_MODE_MAX environment variable.
  • +
  • drm: Fixed usage of the specified output device scaling factor.
  • +
  • drm: Improve logging output.
  • +
  • drm, fdo: Added support for SHM buffer exports, which for example allows +using Mesa’s software rasterization.
  • +
  • fdo: Try using the largest available output video mode when using the +zwp_fullscreen_shell_v1 protocol.
  • +
  • headless: Added new headless platform module, which does not produce +output and can be used without any graphics hardware e.g. in combination +with Mesa’s software rasterization.
  • +
  • x11: Added new x11 platform module, which uses an X11 window to paint +rendered web content using XCB and OpenGL.
  • +
+

Checksums

+
+cog-0.9.1.tar.xz (85.6 KiB)
+   md5sum: 931010e105767fa6a30bb8a2719e6dfb
+   sha1sum: e724ade2b443c0e87f3b30255fdb1a1f3abba2e5
+   sha256sum: 67581431b993c877c856d0c1ef3e8993e90add331eae6c7f79469b1fc0a72d2d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/cog-0.9.90.html b/aperezdc/learn-discover-rework/release/cog-0.9.90.html new file mode 100644 index 000000000..0b38cf2e2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/cog-0.9.90.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + Cog 0.9.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Cog 0.9.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 0.10 series.

+

What’s new in Cog 0.9.90?

+
    +
  • Support building documentation for the Cog core library using gi-docgen.
  • +
  • gtk4: Added new gtk4 platform module, which works on Wayland and uses +GTK4 to render web content into a GtkGLArea and provides a minimal yet +usable user interface
  • +
+

Checksums

+
+cog-0.9.90.tar.xz (97.9 KiB)
+   md5sum: 98cf1b24b95faa43f7e9c334c8b68889
+   sha1sum: bbc405515d87ed32e8f101f80898bad5ae256c8f
+   sha256sum: 933adc74e7b2b7f879a0159b073aa601d58865621891c443d1c2481f9eee6c97
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/index.html b/aperezdc/learn-discover-rework/release/index.html new file mode 100644 index 000000000..4af400367 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/index.html @@ -0,0 +1,423 @@ + + + + + + + + + + + + Releases + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Releases

+
+
+
+
+
+

wpewebkit

+

+ Stable + 2.42.5 +

+

+ Development + 2.43.1 +

+
+

Recent releases

+
  1. 2.42.5
  2. 2.42.4
  3. 2.42.3
  4. 2.43.1
  5. 2.42.2
+
+ Older releases (102) +
  1. 2.42.1
  2. 2.42.0
  3. 2.40.5
  4. 2.40.4
  5. 2.40.3
  6. 2.40.2
  7. 2.41.2
  8. 2.40.1
  9. 2.38.6
  10. 2.40.0
  11. 2.39.91
  12. 2.39.90
  13. 2.38.5
  14. 2.38.4
  15. 2.39.5
  16. 2.38.3
  17. 2.38.2
  18. 2.38.1
  19. 2.38.0
  20. 2.36.8
  21. 2.37.91
  22. 2.36.7
  23. 2.37.90
  24. 2.36.6
  25. 2.37.1
  26. 2.36.5
  27. 2.36.4
  28. 2.36.3
  29. 2.36.2
  30. 2.36.1
  31. 2.34.7
  32. 2.36.0
  33. 2.35.90
  34. 2.34.6
  35. 2.34.5
  36. 2.34.4
  37. 2.34.3
  38. 2.35.1
  39. 2.34.2
  40. 2.34.1
  41. 2.34.0
  42. 2.32.4
  43. 2.33.90
  44. 2.32.3
  45. 2.32.2
  46. 2.33.2
  47. 2.33.1
  48. 2.32.1
  49. 2.32.0
  50. 2.30.6
  51. 2.31.91
  52. 2.31.90
  53. 2.30.5
  54. 2.31.1
  55. 2.30.4
  56. 2.30.3
  57. 2.30.2
  58. 2.30.1
  59. 2.30.0
  60. 2.29.91
  61. 2.29.90
  62. 2.29.2
  63. 2.28.4
  64. 2.29.1
  65. 2.28.3
  66. 2.28.2
  67. 2.28.1
  68. 2.28.0
  69. 2.27.91
  70. 2.26.4
  71. 2.27.90
  72. 2.26.3
  73. 2.27.4
  74. 2.27.3
  75. 2.26.2
  76. 2.27.2
  77. 2.27.1
  78. 2.26.1
  79. 2.26.0
  80. 2.25.91
  81. 2.24.3
  82. 2.25.2
  83. 2.25.1
  84. 2.24.2
  85. 2.24.1
  86. 2.24.0
  87. 2.23.91
  88. 2.22.5
  89. 2.23.90
  90. 2.22.4
  91. 2.22.3
  92. 2.22.2
  93. 2.22.1
  94. 2.22.0
  95. 2.21.92
  96. 2.21.91
  97. 2.20.2
  98. 2.20.1
  99. 2.21.2
  100. 2.20.0
  101. 2.21.1
  102. 2.19.93
+
+
+

wpebackend-fdo

+

+ Stable + 1.14.2 +

+

+ Development + 1.13.1 +

+
+

Recent releases

+
  1. 1.14.2
  2. 1.14.1
  3. 1.14.0
  4. 1.13.1
  5. 1.12.1
+
+ Older releases (31) +
  1. 1.12.0
  2. 1.10.0
  3. 1.9.92
  4. 1.8.4
  5. 1.9.91
  6. 1.9.90
  7. 1.8.3
  8. 1.8.2
  9. 1.8.1
  10. 1.9.1
  11. 1.8.0
  12. 1.7.90
  13. 1.7.1
  14. 1.6.1
  15. 1.6.0
  16. 1.4.2
  17. 1.5.90
  18. 1.4.1
  19. 1.4.0
  20. 1.3.91
  21. 1.2.2
  22. 1.2.1
  23. 1.3.1
  24. 1.3.0
  25. 1.2.0
  26. 1.1.91
  27. 1.1.90
  28. 1.0.1
  29. 1.1.0
  30. 1.0.0
  31. 0.2.0
+
+
+

libwpe

+

+ Stable + 1.14.2 +

+

+ Development + 1.15.2 +

+
+

Recent releases

+
  1. 1.15.2
  2. 1.14.2
  3. 1.15.1
  4. 1.14.1
  5. 1.14.0
+
+ Older releases (30) +
  1. 1.12.3
  2. 1.13.90
  3. 1.13.3
  4. 1.12.2
  5. 1.12.1
  6. 1.13.2
  7. 1.13.1
  8. 1.12.0
  9. 1.11.1
  10. 1.10.1
  11. 1.10.0
  12. 1.9.91
  13. 1.9.90
  14. 1.9.1
  15. 1.8.0
  16. 1.7.90
  17. 1.7.1
  18. 1.6.0
  19. 1.5.90
  20. 1.2.3
  21. 1.4.0.1
  22. 1.4.0
  23. 1.3.91
  24. 1.2.1
  25. 1.3.1
  26. 1.3.0
  27. 1.2.0
  28. 1.1.90
  29. 1.1.0
  30. 1.0.0
+
+
+

cog

+

+ Stable + 0.18.3 +

+

+ Development + 0.19.1 +

+
+

Recent releases

+
  1. 0.18.3
  2. 0.18.2
  3. 0.19.1
  4. 0.18.1
  5. 0.18.0
+
+ Older releases (30) +
  1. 0.17.90
  2. 0.17.1
  3. 0.16.1
  4. 0.16.0
  5. 0.14.1
  6. 0.15.1
  7. 0.14.0
  8. 0.13.90
  9. 0.12.4
  10. 0.12.3
  11. 0.12.2
  12. 0.12.1
  13. 0.13.3
  14. 0.13.2
  15. 0.13.1
  16. 0.12.0
  17. 0.11.90
  18. 0.11.1
  19. 0.10.1
  20. 0.10.0
  21. 0.9.90
  22. 0.9.1
  23. 0.8.1
  24. 0.8.0
  25. 0.7.90
  26. 0.7.1
  27. 0.6.0
  28. 0.5.1
  29. 0.4.0
  30. 0.3.91
+
+
+
+
+
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.0.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.0.0.html new file mode 100644 index 000000000..12477b4d9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.0.0.html @@ -0,0 +1,325 @@ + + + + + + + + + + + + libwpe 1.0.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.0.0 released!

+ + + + + + Download + +
+ +
+ +

This release changes the API version to 0.2, and introduces the following +changes and features:

+

What’s new in the libwpe 1.0.0 release?

+
    +
  • +

    The library is now called libwpe to avoid confusion. The WPEBackend name +used previously seemed to indicate that the library implemented a WPE +backend. The new libwpe name better reflects that it contains code needed +by the WPE WebKit port (#27).

    +
  • +
  • +

    The libwpe library now uses the libtool +versioning convention +(#21).

    +
  • +
  • +

    Handle conversion of keysyms to Unicode inside libwpe. This allowed to +remove the unicode member from keyboard event structs, and removing +wpe_input_key_mapper/wpe_input_key_mapper_interface +(#23).

    +
  • +
  • +

    New field in event structs to specify keyboard modifiers +(#22).

    +
  • +
  • +

    New API for keymap and composition handling based on libxkbcommon +(#24).

    +
  • +
+
Checksums
+
+libwpe-1.0.0.tar.xz (45.4KB)
+   md5sum: b5ea32bd644811d5c6433cf1439763f7
+   sha1sum: 6e51591c00a9a6128e19920807e6874794c723fd
+   sha256sum: aff11612123f9ab85a8b9a4bcdfb3a7503eba0a0d2d96f2cdecd30e911091719
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.1.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.1.0.html new file mode 100644 index 000000000..5550f9f94 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.1.0.html @@ -0,0 +1,329 @@ + + + + + + + + + + + + libwpe 1.1.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.1.0 released!

+ + + + + + Download + +
+ +
+ +

This is a development release of libwpe, which introduces the following +changes and features:

+

What’s new in the libwpe 1.1.0 release?

+
    +
  • +

    Support building libwpe on Windows (#32, #31, #33).

    +
  • +
  • +

    New API for observing and setting the view backend state (#36).

    +
  • +
  • +

    Added a new wpe_renderer_backend_egl_get_platform() function which can +be used to obtain a value which can be passed to eglGetPlatformDisplay() +and eglGetPlatformDisplayEXT() (#39, #40).

    +
  • +
  • +

    Marked old function names containing the “backend” word as deprecated. +The symbols are still available, but it is encouraged to use the new +versions, e.g. prefer wpe_get_major_version() instead of +wpe_backend_get_major_version() (#38).

    +
  • +
  • +

    Marked function table struct parameters passed to some API functions +as const (#29).

    +
  • +
  • +

    Fixed headers so including <wpe-egl.h> results in <wpe.h> being included +automatically in the correct order (#34).

    +
  • +
  • +

    Make instantiation of backends more robust by checking the validity of +interface pointers obtained from the backend (#30).

    +
  • +
+
Checksums
+
+libwpe-1.1.0.tar.xz (46.4KB)
+   md5sum: b34c3920cb749ebc74fe45a793cf57af
+   sha1sum: 69f0bc7f422c6a196c49439a454f7734ecac1126
+   sha256sum: 72e34ad754be11abd1a438cfe195d8d644c52105ab2b1c3b39dec6228bc776ce
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.1.90.html b/aperezdc/learn-discover-rework/release/libwpe-1.1.90.html new file mode 100644 index 000000000..0323d7900 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.1.90.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.1.90 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.1.90 released!

+ + + + + + Download + +
+ +
+ +

This is a development release of libwpe, which introduces the following +changes and features:

+

What’s new in the libwpe 1.1.90 release?

+
    +
  • Fix small memory leaks when the EGL renderer backend initialization fails +#43.
  • +
+
Checksums
+
+libwpe-1.1.90.tar.xz (46.8KB)
+   md5sum: fa2498919b3d3bc0d0a9aaff601e9628
+   sha1sum: 6c798e454f5e071533c50b2ee3af59887dfa6cf7
+   sha256sum: d21dcf83f7e7405e8296c1732d240637d2facdb40e1c9879a1c0f9f222517592
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.10.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.10.0.html new file mode 100644 index 000000000..df1253e44 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.10.0.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.10.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.10.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.10 series.

+

Highlights of the libwpe 1.10.0 release

+
    +
  • New API to explicitly deinitialize an EGL renderer target, which allows +implementors of the wpe_renderer_backend_egl_target_interface to +differentiate between destruction and deinitialization.
  • +
+

Checksums

+
+libwpe-1.10.0.tar.xz (50.8 KiB)
+   md5sum: 269ecb60d4ef80a0877d25a5828c8b82
+   sha1sum: b3f48a48b0401da19deb60cb8f15f193dff799c1
+   sha256sum: 2415e270d45e3595ed4052bc105f733744dc2d3677e12ff4a831e5029841084d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.10.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.10.1.html new file mode 100644 index 000000000..09c195786 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.10.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.10.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.10.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.10 series.

+

What’s new in libwpe 1.10.1?

+
    +
  • Fix the build with versions of Python older than 3.6
  • +
+

Checksums

+
+libwpe-1.10.1.tar.xz (50.8 KiB)
+   md5sum: f60fc13b519a66d262afb76c77441870
+   sha1sum: 1a8085b9a172d37e952c07bbb09b1654d4161ab2
+   sha256sum: a327b3ffcf2356dbe8148c1db4bbdc5359d7e7163d177f67551a8393b144adf0
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.11.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.11.1.html new file mode 100644 index 000000000..43b7919f3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.11.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.11.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.11.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.12 series.

+

What’s new in libwpe 1.11.1?

+
    +
  • New API to handle requests initiated by web content to (un)fullscreen web +views.
  • +
  • Support building on Windows.
  • +
+

Checksums

+
+libwpe-1.11.1.tar.xz (53.2 KiB)
+   md5sum: a3c32caa18e8d4fc88fecb375880789b
+   sha1sum: 45f4040672351d385124845c59037ec026667edd
+   sha256sum: 71fec3e65f2aac29fde3dde692a7f502d7c0a58995169493e0efb9ee3c9d1477
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.12.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.12.0.html new file mode 100644 index 000000000..0557d9fd9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.12.0.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.12.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.12.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.12 series.

+

Highlights of the 1.12.0 release

+
    +
  • New API to handle requests initiated by web content to (un)fullscreen web +views.
  • +
  • Support building on Windows.
  • +
+

Checksums

+
+libwpe-1.12.0.tar.xz (53.3 KiB)
+   md5sum: 5a3f11789535d826370ba465ea141393
+   sha1sum: 91aa47a593a5db511d667b3bdbaa76dee4301311
+   sha256sum: e8eeca228a6b4c36294cfb63f7d3ba9ada47a430904a5a973b3c99c96a44c18c
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.12.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.12.1.html new file mode 100644 index 000000000..911d04e23 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.12.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.12.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.12.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.12 series.

+

What’s new in libwpe 1.12.1?

+
    +
  • Fix pasteboard to use the generic interface by default.
  • +
  • Fix memory allocation to always abort execution on failure.
  • +
+

Checksums

+
+libwpe-1.12.1.tar.xz (54.2 KiB)
+   md5sum: 3c8f9a1eb1d547a9c234356f3992e2b4
+   sha1sum: 8d4b9a456dcf27ee5bfca46168dbc8066a0dd758
+   sha256sum: 80d7e1c6e550279978bc1e1277f4e3d2efe9ca5155e5bbd842134cd5343df933
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.12.2.html b/aperezdc/learn-discover-rework/release/libwpe-1.12.2.html new file mode 100644 index 000000000..993e4f4bb --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.12.2.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.12.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.12.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.12 series.

+

What’s new in libwpe 1.12.2?

+
    +
  • Fix the build when using CMake to configure it.
  • +
+

Checksums

+
+libwpe-1.12.2.tar.xz (54.1 KiB)
+   md5sum: 33021c136035c8adfcccb2694dd48341
+   sha1sum: 0c80d8605a49f43a642cd5f9905161a7bcc30136
+   sha256sum: 4ac4fd0a8b562b721bffd0f46ae9f06c2b5a3114407581978be875a9d651642a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.12.3.html b/aperezdc/learn-discover-rework/release/libwpe-1.12.3.html new file mode 100644 index 000000000..2291d759f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.12.3.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.12.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.12.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.12 series.

+

What’s new in libwpe 1.12.3?

+
    +
  • Fix the build when using Clang’s libc++ or the Musl libc.
  • +
+

Checksums

+
+libwpe-1.12.3.tar.xz (54.3 KiB)
+   md5sum: e538eb8e521d92f2bde3c4cd864abaa1
+   sha1sum: 9d94c411a502a10e68f69bd1fa273539cc6af2ca
+   sha256sum: b84fdbfbc849ce4fdf084bb28b58e5463b1b4b6cc8f200dc77b41f8545d5329d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.13.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.13.1.html new file mode 100644 index 000000000..41fd9847d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.13.1.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + libwpe 1.13.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.13.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.14 series.

+

What’s new in libwpe 1.13.1?

+
    +
  • New API to provide input events to be treated by WebKit as gamepad inputs.
  • +
  • New WPE_ENABLE_XKB build option, enabled by default, which can be used +to completely avoid usage of libxkbcommon.
  • +
  • Allow libwpe to be built as a static library. The rest of the code +linked with the static library must provide the _wpe_loader_interface +symbol, as dlopen() will not be used.
  • +
  • Allow building libwpe within a larger CMake project.
  • +
  • Update the required Meson version to 0.55.0
  • +
+

Checksums

+
+libwpe-1.13.1.tar.xz (59.3 KiB)
+   md5sum: 6870daa1c2b5d9963b6b0d715e0c0714
+   sha1sum: 2a3be69f2f49011cc593a498d4fe309e0bc8c3ff
+   sha256sum: c3f55c8b98f1dc8ea7456880744098f5054ff5deba92a10dc93728710fbe9857
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.13.2.html b/aperezdc/learn-discover-rework/release/libwpe-1.13.2.html new file mode 100644 index 000000000..38f4045b0 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.13.2.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.13.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.13.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.14 series.

+

What’s new in libwpe 1.13.2?

+
    +
  • New API to configure the target refresh rate of view backends.
  • +
+

Checksums

+
+libwpe-1.13.2.tar.xz (59.4 KiB)
+   md5sum: 31b267649eb1a5f472b07a66adab86e1
+   sha1sum: 5de7bc3e4dd9f8d94df84395106547c0a0a904f9
+   sha256sum: efcd97dc0f95ff7a506483ba3df944669cdc602b3fc45c9fd676dee0f8f92cac
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.13.3.html b/aperezdc/learn-discover-rework/release/libwpe-1.13.3.html new file mode 100644 index 000000000..3cb40a825 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.13.3.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + libwpe 1.13.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.13.3 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.14 series.

+

What’s new in libwpe 1.13.3?

+
    +
  • Modify the gamepad API to pass the wpe_gamepad_provider when creating +new gamepad instances, and the associated wpe_gamepad_provider_get_backend() +accessor.
  • +
  • Restrict the range of values allowed for the device scaling factor, which +prevents both divisions by zero and impossibly big graphics buffers.
  • +
  • Fix pasteboard to use the generic interface by default.
  • +
  • Fix memory allocation to always abort execution on failure.
  • +
+

Checksums

+
+libwpe-1.13.3.tar.xz (60.7 KiB)
+   md5sum: 2990e75589960412115bb8c9ee9a3203
+   sha1sum: 7d7bab460189c0a07d2547b458d197f3c0f8ebd7
+   sha256sum: 05f871922f6ca750c5689a38a346c3fba130417d3490dd52362b4fe22f334e96
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.13.90.html b/aperezdc/learn-discover-rework/release/libwpe-1.13.90.html new file mode 100644 index 000000000..8733658fa --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.13.90.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.13.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.13.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.14 series.

+

What’s new in libwpe 1.13.90?

+
    +
  • Improved the gamepad API.
  • +
+

Checksums

+
+libwpe-1.13.90.tar.xz (60.8 KiB)
+   md5sum: d09ddc39ae33d09940f731c3cb1b5b51
+   sha1sum: f73400ee19480eebd439c9aaea90ae3e11f2e742
+   sha256sum: 97af9fbea3a70093e5f3979fa89594343e255942645c3b781d4f3517df5388a1
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.14.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.14.0.html new file mode 100644 index 000000000..201df6b51 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.14.0.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + libwpe 1.14.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.14.0 released

+ + + + + + Download + +
+ +
+ + +

This is the first stable release in the 1.14 series.

+

Highlights of the libwpe 1.14.0 Release

+
    +
  • New API to provide input events to be treated by WebKit as gamepad inputs.
  • +
  • New API to configure the target refresh rate of view backends.
  • +
  • New API which allow clients to supply an alternative mechanism for +spawning WebKit auxiliary processes.
  • +
  • New WPE_ENABLE_XKB build option, enabled by default, which can be used +to avoid usage of libxkbcommon.
  • +
+

Checksums

+
+libwpe-1.14.0.tar.xz (61.5 KiB)
+   md5sum: f9737912975f979f9e4e01eec174a271
+   sha1sum: 7a5d51c99254fc14ffcbcca9e8550cc7940fe871
+   sha256sum: c073305bbac5f4402cc1c8a4753bfa3d63a408901f86182051eaa5a75dd89c00
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.14.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.14.1.html new file mode 100644 index 000000000..81c012ab9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.14.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.14.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.14.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.14 series.

+

What’s new in libwpe 1.14.1?

+
    +
  • Fix the build with older glibc C library versions.
  • +
+

Checksums

+
+libwpe-1.14.1.tar.xz (61.5 KiB)
+   md5sum: d834d70a6b3afb24a05ec188df248e52
+   sha1sum: e51caba8198601f2b7c8dec3c67770c56c46eb24
+   sha256sum: b1d0cdcf0f8dbb494e65b0f7913e357106da9a0d57f4fbb7b9d1238a6dbe9ade
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.14.2.html b/aperezdc/learn-discover-rework/release/libwpe-1.14.2.html new file mode 100644 index 000000000..e37435c4d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.14.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.14.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.14.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.14 series.

+

What’s new in libwpe 1.14.2?

+
    +
  • Allow resetting the fullscreen client to a null pointer.
  • +
  • Fix usage of the _wpe_loader_interface with the static loader.
  • +
+

Checksums

+
+libwpe-1.14.2.tar.xz (61.6 KiB)
+   md5sum: 61840e24ba0a0f5828194dff28db92ee
+   sha1sum: 70a2b894af2b50d7082260158a89524974a480f3
+   sha256sum: 8ae38022c50cb340c96fdbee1217f1e46ab57fbc1c8ba98142565abbedbe22ef
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.15.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.15.1.html new file mode 100644 index 000000000..91da8fb0d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.15.1.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + libwpe 1.15.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.15.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.16 series.

+

What’s new in libwpe 1.15.1?

+
    +
  • New API to override the default to override the default implementation +for subprocess launch and termination.
  • +
  • New API for handling pointer lock events.
  • +
  • Fix build failures with certain C library versions.
  • +
  • Properly handle the EGL library when available without a pkg-config +module file present.
  • +
+

Checksums

+
+libwpe-1.15.1.tar.xz (62.0 KiB)
+   md5sum: 4d9e5eafc5b752daaa3c2a3c9e1b98ac
+   sha1sum: 0082ceb475175bfecd1172f2c0b292824d31561b
+   sha256sum: 14d36a93a05ab7ada9bec581720b8057336fe681bbbe59bda7d50cb8f3eba3a6
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.15.2.html b/aperezdc/learn-discover-rework/release/libwpe-1.15.2.html new file mode 100644 index 000000000..fc92a7266 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.15.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.15.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.15.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.16 series.

+

What’s new in libwpe 1.15.2?

+
    +
  • Allow resetting the fullscreen client to a null pointer.
  • +
  • Fix usage of the _wpe_loader_interface with the static loader.
  • +
+

Checksums

+
+libwpe-1.15.2.tar.xz (62.0 KiB)
+   md5sum: af8b981f8c620eca9a5672cab0cdd9d4
+   sha1sum: 4a1712dbf331ecc70e6e82ebce2e4602fcef35c1
+   sha256sum: 6d769f64cee0fb1b5069c3b250b0f91e5cd90564cd2efdf633442bab96e5dbe8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.2.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.2.0.html new file mode 100644 index 000000000..1edf037f8 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.2.0.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.2.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.2.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release of libwpe in the 1.2 series.

+

What’s new in the libwpe 1.2.0 release?

+ +
Checksums
+
+libwpe-1.2.0.tar.xz (46.8KB)
+   md5sum: 060876c6a32ef1ae519cb9542d0ede06
+   sha1sum: 5dd34eba8cc7625d2b1c679c509492941092d137
+   sha256sum: f28035e7a8991fbb1a0e762f1b3d0e3cb57513a3164c75c7dc3eb0c11d9149fc
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.2.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.2.1.html new file mode 100644 index 000000000..751cbfbe9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.2.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.2.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.2.1 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release of libwpe in the stable 1.2 series.

+

What’s new in the libwpe 1.2.1 release?

+
    +
  • Added missing control characters to the Unicode-to-KeySym table (#53).
  • +
  • Fixed build failure on systems where the libxkbcommon headers are installed in a non-standard location (#48).
  • +
  • Fixed memory overallocation for pasteboard strings (#42).
  • +
+
Checksums
+
+libwpe-1.2.1.tar.xz (46.9KB)
+   md5sum: 9f26865f06ecf933ddbbf067a7be735f
+   sha1sum: d3f6211a2acafe1bd1f41e826c8efae35335fc92
+   sha256sum: 00e103c6fa226b0d979c29d14c9e8168c4bec7b0b5108f3705a037cda5609d7d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.3.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.3.0.html new file mode 100644 index 000000000..0b1488453 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.3.0.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + libwpe 1.3.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.3.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first development release of libwpe leading towards the 1.4 series.

+

What’s new in the libwpe 1.3.0 release?

+
    +
  • New API to set the device scaling factor. Backends and WebKit embedders can +use this to e.g. support HiDPI displays +(#44).
  • +
  • New API to to obtain the root accessibility object for a view backend +(#45).
  • +
  • Fixed memory overallocation when setting pasteboard contents +(#42).
  • +
+
Checksums
+
+libwpe-1.3.0.tar.xz (47.0KB)
+   md5sum: 01bcda361a427d37829877add9e47eb4
+   sha1sum: 81ff47e0dd40b4aea91543785b2c1d76690154f3
+   sha256sum: 68986647af2433e74f830a06a497ed536dbc8721b04026ed82611a584be71148
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.3.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.3.1.html new file mode 100644 index 000000000..b157161ec --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.3.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.3.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.3.1 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.4 series.

+

What’s new in the libwpe 1.3.1 release?

+
    +
  • Fix WebKit build issue due to usage of angle-bracketed includes, when WPEBackend-fdo 1.3.1 is also installed (#46).
  • +
+

Checksums

+
+libwpe-1.3.1.tar.xz (47.0KB)
+   md5sum: ddc2638caa0b922eb6d36ee15080cfdb
+   sha1sum: d848f6af34e0084a6ab483a9c3635a038c36f931
+   sha256sum: 5d5e23ce48b35278201b3b88e5b1a89bd54b38391721b4e74ce472c3905df8b0
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.3.91.html b/aperezdc/learn-discover-rework/release/libwpe-1.3.91.html new file mode 100644 index 000000000..92f7c2c97 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.3.91.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.3.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.3.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.4 series.

+

What’s new in libwpe 1.3.91?

+
    +
  • Enabled compiler warnings (#51).
  • +
  • Fix build failure on systems where libxkbcommon has its headers installed in a non-standard location (#48).
  • +
  • Fix documentation build (#47).
  • +
+
Checksums
+
+libwpe-1.3.91.tar.xz (48.4KB)
+   md5sum: a1e1eebd0eed068449be33be4b1c5a7d
+   sha1sum: 46941f39d9a8cb59cc222b0e2687c1ea0239d002
+   sha256sum: 34d2e7057700d5cfaead4e554fe253d30613279f2e7b9e3ea4a307f06799f93f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.4.0.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.4.0.1.html new file mode 100644 index 000000000..d1fe3f881 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.4.0.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.4.0.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.4.0.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.4 series.

+

What’s new in libwpe 1.4.0.1?

+
    +
  • Fix the version numbers to ensure 1.4.0 is used when building from tarballs.
  • +
+

Checksums

+
+libwpe-1.4.0.1.tar.xz (48.5 KiB)
+   md5sum: 1d4d38413ee0d0043f74d0445cab906f
+   sha1sum: a41480a0a85cfa11b3f87f801b7c37bc3410e060
+   sha256sum: 09849dfb34877354f34f318e138971cf22e677b2179e1f0a8ea00ab0b7bd8e9b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.4.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.4.0.html new file mode 100644 index 000000000..c21691ee2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.4.0.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + libwpe 1.4.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.4.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.4 series.

+

Highlights of the libwpe 1.4.0 release

+
    +
  • New API to set the device scaling factor. Backends and WebKit embedders +can use this to e.g. support HiDPI displays.
  • +
  • New API to to obtain the root accessibility object for a view backend. API
  • +
  • reference documentation can now be built with +HotDoc. Descriptions for most functionality is +still missing, though.
  • +
  • Fix build failure on systems where libxkbcommon has its headers installed +in a non-standard location.
  • +
+

Checksums

+
+libwpe-1.4.0.tar.xz (48.4 KiB)
+   md5sum: 4b6dbaa2d40408975fe1be935367b4e8
+   sha1sum: 18825932749edecd92a3bd31d4feffb5fd1150b4
+   sha256sum: e2d3494fc33fe946ad917fd6a3abd127462b91bba62ef8b35507e92f8ede4188
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.5.90.html b/aperezdc/learn-discover-rework/release/libwpe-1.5.90.html new file mode 100644 index 000000000..1acb60534 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.5.90.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.5.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.5.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.6 series.

+

What’s new in libwpe 1.5.90?

+
    +
  • Added support for smooth 2D axis input events.
  • +
  • Improved robustness of the CMake build system.
  • +
+

Checksums

+
+libwpe-1.5.90.tar.xz (48.7 KiB)
+   md5sum: 96ec945d3ae0a7a78c8db52c25e8e0f3
+   sha1sum: cc4c0855a048519f6b634327de4f0d2de63b92f7
+   sha256sum: 6e6e26f8c98267c33f926c03a7f280a0d21c3f713f95a38ef302ca3a6253c350
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.6.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.6.0.html new file mode 100644 index 000000000..3ff39e702 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.6.0.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.6.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.6.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.6 series.

+

Highlights of the libwpe 1.6.0 release

+
    +
  • Added support for smooth 2D axis input events.
  • +
  • Ensure that only symbols marked with WPE_EXPORT are public.
  • +
  • Improved robustness of the CMake build system.
  • +
+

Checksums

+
+libwpe-1.6.0.tar.xz (48.8 KiB)
+   md5sum: 6e8a2c279dcc3617db5ec7ac4c03d628
+   sha1sum: e8424d5e29f35861d85acdc5962d8b59b53bb1ad
+   sha256sum: 3587c6b8a807f4bb76b268ba74ca82c6b395b90235db41ad8252224456193c90
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.7.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.7.1.html new file mode 100644 index 000000000..ee75e3c17 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.7.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + libwpe 1.7.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.7.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.8 series.

+

What’s new in libwpe 1.7.1?

+
    +
  • New build configuration system based on Meson. The existing CMake-based +system is still maintained, and both produce the same outputs.
  • +
  • Hidden visibility is now used by default for symbols, and only those +belonging to the public API are exported.
  • +
+

Checksums

+
+libwpe-1.7.1.tar.xz (50.0 KiB)
+   md5sum: fa8326e2c4b87310cbfed035c36aca05
+   sha1sum: d8ed571f39cd9c39d3fcf7053c78430e85fd689e
+   sha256sum: a784b7fa0c658b28071100f6f6749b0d85bbcddd82de028e07672ce13982d340
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.7.90.html b/aperezdc/learn-discover-rework/release/libwpe-1.7.90.html new file mode 100644 index 000000000..983968035 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.7.90.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.7.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.7.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.8 series.

+

What’s new in libwpe 1.7.90?

+
    +
  • This release does not contain changes over the 1.7.1 development release
  • +
+

Checksums

+
+libwpe-1.7.90.tar.xz (50.0 KiB)
+   md5sum: e53de66fdcfc9e61567234b529900b42
+   sha1sum: 9545c65c7cb0d226825ae7fd638748d51d90355f
+   sha256sum: 313c07bc963f7628ee5f4536c1240be5d116b43d01eec441c847db993f95d1b6
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.8.0.html b/aperezdc/learn-discover-rework/release/libwpe-1.8.0.html new file mode 100644 index 000000000..119b1e39a --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.8.0.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + libwpe 1.8.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.8.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.8 series.

+

Highlights of the libwpe 1.8.0 release

+
    +
  • New build configuration system based on Meson. The +existing system based on CMake is still available and both produce the same +outputs.
  • +
  • Hidden visibility is now used by default for symbols, and only those +belonging to the public API are exported.
  • +
+

Checksums

+
+libwpe-1.8.0.tar.xz (50.1 KiB)
+   md5sum: 328ea59dd8dee9107a49353536d00844
+   sha1sum: 3c893b1e8118a06f082d98373e279a8f8e33750d
+   sha256sum: a6f00a7d091cbd4db57fe7ee3b4c12c6350921d654ed79812800a26c888481d2
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.9.1.html b/aperezdc/learn-discover-rework/release/libwpe-1.9.1.html new file mode 100644 index 000000000..9bccb016c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.9.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + libwpe 1.9.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.9.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.10 series.

+

What’s new in libwpe 1.9.1?

+
    +
  • Improve the Meson build system to allow using libwpe as a subproject.
  • +
+

Checksums

+
+libwpe-1.9.1.tar.xz (50.2 KiB)
+   md5sum: 54b6f91fc310a7098dac49e0537af407
+   sha1sum: 9ad1b35c488ff7c63864a9c5ff652a02291bf881
+   sha256sum: ac1470f9811e74a5f9b063e25d27ed9e274a74078c65fbdcc6f6e3c590010bb8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.9.90.html b/aperezdc/learn-discover-rework/release/libwpe-1.9.90.html new file mode 100644 index 000000000..120928de6 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.9.90.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + libwpe 1.9.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.9.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.10 series.

+

What’s new in libwpe 1.9.90?

+
    +
  • Improve build system reliability by avoiding generated headers.
  • +
  • Fix usage of libwpe as a Meson subproject.
  • +
+

Checksums

+
+libwpe-1.9.90.tar.xz (50.6 KiB)
+   md5sum: e72c68b56ab09aa88d061e861e84a862
+   sha1sum: ab027a467aafe5524d8764a01b70dfc2596d6c18
+   sha256sum: 036b40b47e13c694ecc8055fdef0c7eb3cb872a05973b2b097a3620b78c1788d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/libwpe-1.9.91.html b/aperezdc/learn-discover-rework/release/libwpe-1.9.91.html new file mode 100644 index 000000000..bb25d9d6d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/libwpe-1.9.91.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + libwpe 1.9.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

libwpe 1.9.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.10 series.

+

What’s new in libwpe 1.9.91?

+
    +
  • New API to explicitly deinitialize an EGL renderer target, which allows +implementors of the wpe_renderer_backend_egl_target_interface to +differentiate between destruction and deinitialization.
  • +
+

Checksums

+
+libwpe-1.9.91.tar.xz (50.7 KiB)
+   md5sum: 5f6840a357ef9cef7cf3ae06db51ce01
+   sha1sum: a596f5246e6898faddf3e092f731a5888fe37d27
+   sha256sum: 1d389f29ab1946669cf244ad621ff92b84ff8bcd9294df677444a0d876714196
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/schedule/index.html b/aperezdc/learn-discover-rework/release/schedule/index.html new file mode 100644 index 000000000..d3b446ea5 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/schedule/index.html @@ -0,0 +1,435 @@ + + + + + + + + + + + + Release Schedule + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Release Schedule

+ + + + + +
+ +
+ +

WPE WebKit follows a 6-month development cycle:

+
    +
  • There are two feature releases are done every year, typically in March +and September.
  • +
  • Within feature releases, there may be any number of bug-fix releases.
  • +
  • Development releases are the base for the feature releases that follow +them. They do not follow a fixed schedule in the release cycle.
  • +
+

WPE WebKit and WebKitGTK share a fair amount of code. +Therefore, both projects produce their feature releases simultaneously, +and share the same release branches. For bug-fix releases, the release +teams for both projects try to sync their version numbers as well as they +can.

+

Versioning Scheme

+

Version numbers follow the major.minor.patch numbering scheme. Changes to +the major version signify considerable architectural or API changes; the +minor version number changes throughout the development cycle. Even numbers +indicate stable releases and odd ones development releases. Lastly, the +patch number is incremented for each release, and for stable release +candidates it is bumped to 90.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
KindMinorPatch
Stableevenany
Developmentodd< 90
Release Candidateodd≥ 90
+

For stable releases the following is always true, as long as the major +version number stays the same:

+
    +
  • New patch releases are guaranteed to be backward-compatible both +at the API and ABI level.
  • +
  • New minor releases may contain new features and backward-compatible +changes in the public API. In general, the ABI will remain compatible as +well, because we actively avoid breaking it unless strictly needed.
  • +
+

Compatible Components

+

The following table summarizes which stable releases of libwpe, WPE WebKit, +WPEBackend-fdo, and Cog are compatible and tested with each other (updated +April 2023). Distributors and packagers are strongly advised to use the +versions listed below.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WPE WebKitlibwpeWPEBackend-fdoCog
2.42.x1.14.x1.14.x0.18.x
2.40.x1.14.x, 1.12.x1.14.x, 1.12.x0.16.x
2.38.x1.14.x, 1.12.x1.14.x, 1.12.x, 1.10.x0.16.x, 0.14.x, 0.12.x
2.36.x1.12.x, 1.10.x1.12.x, 1.10.x0.14.x, 0.12.x, 0.10.x
2.34.x1.12.x, 1.10.x, 1.8.x1.12.x, 1.10.x0.12.x, 0.10.x, 0.8.x
2.32.x1.10.x, 1.8.x, 1.6.x1.10.x, 1.8.x0.10.x, 0.8.x
2.30.x1.8.x, 1.6.x1.10.x, 1.8.x0.8.x, 0.6.x
2.28.x1.6.x1.6.x0.8.x, 0.6.x
2.26.x1.4.x1.4.x0.4.x
2.24.x1.2.x1.2.x0.3.x
2.22.x1.0.x1.0.x0.2.x
2.20.x< 1.0.0< 1.0.0≤ 0.1.x
+

Notes:

+
    +
  • libwpe used to be called wpebackend before version 1.0.x — it was renamed to +avoid confusion.
  • +
  • Cog adopted the same versioning scheme as the rest of the components +starting with the 0.6 series.
  • +
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/verify/aperez.key b/aperezdc/learn-discover-rework/release/verify/aperez.key new file mode 100644 index 000000000..f7a5d4a92 Binary files /dev/null and b/aperezdc/learn-discover-rework/release/verify/aperez.key differ diff --git a/aperezdc/learn-discover-rework/release/verify/cgarcia.key b/aperezdc/learn-discover-rework/release/verify/cgarcia.key new file mode 100644 index 000000000..4838cf5e4 Binary files /dev/null and b/aperezdc/learn-discover-rework/release/verify/cgarcia.key differ diff --git a/aperezdc/learn-discover-rework/release/verify/index.html b/aperezdc/learn-discover-rework/release/verify/index.html new file mode 100644 index 000000000..4650f07f1 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/verify/index.html @@ -0,0 +1,362 @@ + + + + + + + + + + + + Verifying Releases + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

Verifying Releases

+ + +
+ +
+ +

WPE release tarballs are cryptographically signed and can be verified +using PGP signatures (in an .asc file) and their +checksums (in a .sums file). Everybody is encouraged to verify +the integrity of downloaded files using them.

+

PGP Signatures

+

Every release is accompanied by a cryptographic signature produced by the +person in charge of publishing the release. This signature allows anyone to +check whether the files have been tampered with after they have been signed. +Forging a signature is practically impossible without gaining access to the +private key used. If that were to happen, the compromised key would be revoked +and all files re-signed with new keys.

+

Keys

+

The following PGP keys are currently in use for signing releases:

+ + + + + + + + + + + + + + +
DeveloperFingerprint
Adrián Pérez de Castro (key)5AA3 BC33 4FD7 E336 9E7C 77B2 91C5 59DB E4C9 123B
Carlos García Campos (key)D7FC F61C F9A2 DEAB 31D8 1BD3 F3D3 22D0 EC45 82C3
+

Importing keys

+

Once downloaded, keys need to be imported in the PGP keyring, for example with +GnuPG:

+
% gpg --import aperez.key
+gpg: key 91C559DBE4C9123B: 1 signature not checked due to a missing key
+gpg: key 91C559DBE4C9123B: public key "Adrián Pérez de Castro <aperez@igalia.com>" imported
+gpg: key 56736249E4C9123B: 11 signatures not checked due to missing keys
+gpg: key 56736249E4C9123B: public key "Adrián Pérez de Castro <aperez@igalia.com>" imported
+gpg: Total number processed: 2
+gpg:               imported: 2
+gpg: no ultimately trusted keys found
+
+

Checking

+

The signature file for each release has the same name plus the .asc suffix. +Given a download URL, the following illustrates the process:

+
% curl -sLO https://wpewebkit.org/releases/wpewebkit-2.34.3.tar.xz
+% curl -sLO https://wpewebkit.org/releases/wpewebkit-2.34.3.tar.xz.asc
+
+

Now it is possible to verify the .tar.xz file against its signature:

+
% gpg --verify wpewebkit-2.34.3.tar.xz.asc
+gpg: assuming signed data in 'wpewebkit-2.34.3.tar.xz'
+gpg: Signature made lun 20 dic 2021 00:05:24 EET
+gpg:                using DSA key 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B
+gpg: Good signature from "Adrián Pérez de Castro <aperez@igalia.com>" [ultimate]
+gpg:                 aka "Adrián Pérez de Castro (personal) <adrian@perezdecastro.org>" [ultimate]
+Primary key fingerprint: 5AA3 BC33 4FD7 E336 9E7C  77B2 91C5 59DB E4C9 123B
+
+

Checksums

+

Checksums for release tarballs are also published along releases. While +suitable to check file integrity, using PGP signatures +provide a stronger guarantee.

+

Checking

+

The checksums file for each release has the same name plus the .sums suffix. +Given a download URL, the following illustrates how to calculate the SHA-256 +checksum on your end:

+
% curl -sLO https://wpewebkit.org/releases/wpewebkit-2.34.3.tar.xz
+% curl -sLO https://wpewebkit.org/releases/wpewebkit-2.34.3.tar.xz.sums
+% sha256sum wpewebkit-2.34.3.tar.xz | cut -f1 -d' '
+c35de4bfce35c81cbd6c1da27879b4ea33e20bd51d750ce296a4d100d45f40fc
+
+

This can be compared with the value of the last line of the .sums file:

+
% cat wpewebkit-2.34.3.tar.xz.sums
+wpewebkit-2.34.3.tar.xz (22.5 MiB)
+   md5sum: f8eb92825bf6477fb04ca017926c2458
+   sha1sum: a72f507dfd6d4d579b2e6c939d7c171c2cfb1d92
+   sha256sum: c35de4bfce35c81cbd6c1da27879b4ea33e20bd51d750ce296a4d100d45f40fc
+
+

Or, programmatically:

+
% expected=$(tail -1 wpewebkit-2.34.3.tar.xz.sums | cut -f5 -d' ')
+% calculated=$(sha256sum wpewebkit-2.34.3.tar.xz | cut -f1 -d' ')
+% if [ "$expected" = "$calculated" ]; then echo ok ; else echo failed ; fi
+ok
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2-21-1.html b/aperezdc/learn-discover-rework/release/wpe-2-21-1.html new file mode 100644 index 000000000..1a266f98b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2-21-1.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + WPE WebKit 2.21.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.21.1 released!

+ + + + + + Download + +
+ +
+ +

This is the first development release leading toward 2.22 series.

+

What’s new in the WPE WebKit 2.21.1 release?

+
    +
  • Everything. This is the first release. Enjoy.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.19-93.html b/aperezdc/learn-discover-rework/release/wpe-2.19-93.html new file mode 100644 index 000000000..0efd88d0c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.19-93.html @@ -0,0 +1,296 @@ + + + + + + + + + + + + WPE WebKit 2.19.93 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.19.93 released!

+ + + + + + Download + +
+ +
+ +

This is the last development release leading toward the 2.20 series.

+

What’s new in the WPE WebKit 2.19.93 release?

+
    +
  • Remove unusable JavaScript APIs
  • +
  • Fix missing WebKitHitTestResult.h
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.20.0.html b/aperezdc/learn-discover-rework/release/wpe-2.20.0.html new file mode 100644 index 000000000..3cdd81db4 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.20.0.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + WPE WebKit 2.20.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.20.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.20 series.

+

What’s new in the WPE WebKit 2.20.0 release?

+
    +
  • Add support for the fullscreen API.
  • +
  • Fix build in architectures which need linking with libatomic to support atomic operations on 64-bit values.
  • +
  • Fix build failure when using the RaspberryPi userland GPU drivers in combination with GStreamer-GL.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.20.1.html b/aperezdc/learn-discover-rework/release/wpe-2.20.1.html new file mode 100644 index 000000000..5fdec2c35 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.20.1.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + WPE WebKit 2.20.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.20.1 released!

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.20 series.

+

What’s new in the WPE WebKit 2.20.1 release?

+
    +
  • Fixed a crash when trying to use the remote Web inspector.
  • +
  • Disable Gigacage if mmap fails to allocate in Linux.
  • +
  • Add user agent quirk for paypal website.
  • +
  • Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations.
  • +
  • Fix a network process crash when trying to get cookies of about:blank page.
  • +
  • Fix UI process crash when closing the window under Wayland.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Security fixes: +CVE-2018-4190, +CVE-2018-4199, +CVE-2018-4218, +CVE-2018-4222, +CVE-2018-4232, +CVE-2018-4233, +CVE-2018-4246, +CVE-2018-11646.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.20.2.html b/aperezdc/learn-discover-rework/release/wpe-2.20.2.html new file mode 100644 index 000000000..8cd6e637d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.20.2.html @@ -0,0 +1,316 @@ + + + + + + + + + + + + WPE WebKit 2.20.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.20.2 released!

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.20 series.

+

What’s new in the WPE WebKit 2.20.2 release?

+ +

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.20.2.tar.xz (14.7MB)
+   md5sum: 07cb30291a8311f3cf126e3a2e3d0efb
+   sha1sum: 69f1206255989e969fcdfb5c63401fb1f5a37864
+   sha256sum: 0950befe6e970c9219ccbc29f5ff08bcc0923f0a9ca5a4c7531d74f9e26617f2
+ 
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.21.2.html b/aperezdc/learn-discover-rework/release/wpe-2.21.2.html new file mode 100644 index 000000000..aab3d7e53 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.21.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPE WebKit 2.21.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.21.2 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading toward 2.22 series.

+

What’ new in WPE WebKit 2.21.2?

+
    +
  • Add initial support for the fullscreen Web API.
  • +
  • Add initial implementation of WebDriver advance user interaction commands.
  • +
  • Add introspectable alternatives for functions using vargars to JavaScriptCore GLib API.
  • +
  • Fix memory pressure monitor to reliably notify all subprocesses.
  • +
  • Fix building with the Raspberry Pi userland GPU driver and certain versions of GStreamer-GL.
  • +
  • Fix building with the ICU headers in a non-default directory.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.21.91.html b/aperezdc/learn-discover-rework/release/wpe-2.21.91.html new file mode 100644 index 000000000..094ad9c5e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.21.91.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + WPE WebKit 2.21.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.21.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.22 series.

+

What’s new in the WPE WebKit 2.21.91 release?

+
    +
  • Add API to evaluate code in a new object to JavaScriptCore GLib API.
  • +
  • Add API to check for syntax errors in given code to JavaScriptCore GLib API.
  • +
  • Update jsc_context_evaluate_with_source_uri() to receive also a starting line number.
  • +
  • Add API to allow creating variadic functions to JavaScriptCore GLib API.
  • +
  • Add API to run javascript from a WebKitWebView in an isolated world.
  • +
  • Disable Gigacage if mmap fails to allocate in Linux.
  • +
  • Fix WebProcess crash when trying to use the remote Web Inspector.
  • +
  • Fix a network process crash when trying to get cookies of about:blank page.
  • +
  • Fix some frames being dropped when using requestAnimationFrame() to animate elements.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.21.91.tar.xz (15.1MB)
+   md5sum: 08778a95eba2de141d8aaff3d802c811
+   sha1sum: 708808649e4a0470fd8cae253f26c12ddfff99d4
+   sha256sum: e75b1ca225fa9303017e954b6203e4f1750a7566fa852443e6fd574fd5f926b8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.21.92.html b/aperezdc/learn-discover-rework/release/wpe-2.21.92.html new file mode 100644 index 000000000..a21dbf340 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.21.92.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + WPE WebKit 2.21.92 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.21.92 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.22 series.

+

What’s new in the WPE WebKit 2.21.92 release?

+
    +
  • New MiniBrowser for WPE, which can be enabled at build time.
  • +
  • Add warn_unused_result attribute to some JavaScriptCore GLib APIs.
  • +
  • Fix the build in MIPS64.
  • +
  • Add new API to inject/register user content in isolated worlds.
  • +
  • Add more API to JSCException to handle column number, convert exception +to string, get the exception backtrace, create exceptions with a custom +error name and report exception message with full details.
  • +
  • Fix excessive CPU usage when getting the process memory footprint.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.21.92.tar.xz (15.1MB)
+   md5sum: c5fcb3768067978741d8e72b1055ab8b
+   sha1sum: 959bcf32702739f518c077964b003c5d0e8e8dc2
+   sha256sum: 8ee366915aaf4f97950889863ac9951d21d94cae9c5f09d5f8e6efeb92069746
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.0.html b/aperezdc/learn-discover-rework/release/wpe-2.22.0.html new file mode 100644 index 000000000..1e90417ed --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.0.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + WPE WebKit 2.22.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.22 series.

+

What’s new in the WPE WebKit 2.22.0 release?

+
    +
  • Several fixes for video playback with media source extensions (MSE). +This allows using WebM support for YouTube, which no longer works through +regular video source. Note that MSE is still disabled by default and +webkit_settings_set_enable_mediasource() has to be used to enable the +feature.
  • +
  • Add warn_unused_result attribute to some JavaScriptCore GLib APIs.
  • +
  • Fix the build in several platforms: s390x, ppc64le, armv7hl, mips64.
  • +
  • Fix the build with video disabled.
  • +
  • Fix symbols with jsc_ prefix not being exported.
  • +
  • Fix a memory leak during media playback when using playbin3.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.22.0.tar.xz (15.2MB)
+   md5sum: e23753c1b2984303e2523c18031b0736
+   sha1sum: c69998d2a522287f5c894f8ed73b9f122d3ae949
+   sha256sum: 625551aa60ad047639cc64be4259f03598c4ed5db5f7427251657f889e822208
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.1.html b/aperezdc/learn-discover-rework/release/wpe-2.22.1.html new file mode 100644 index 000000000..8a3a51867 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.1.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.22.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.1 released!

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.22 series.

+

What’s new in the WPE WebKit 2.22.1 release?

+
    +
  • Many improvements and fixes for video playback with media source +extensions (MSE), which improve the user experience across the board, +and in particular for playback of WebM videos.
  • +
  • Expose ENABLE_MEDIA_SOURCE as a public build option.
  • +
  • Fix Resource Timing reporting for <iframe> elements.
  • +
  • Fix the build with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF.
  • +
  • Fix the build with the remote Web Inspector disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.22.1.tar.xz (15.2MB)
+   md5sum: 54f0f19aa4cf8d29e1e6b7a1f4d5608c
+   sha1sum: 1d11603bddb15ce9ca8d09cfa772d2109739a426
+   sha256sum: 49212bd2ba03e28c09925971145f42fdc42a99d7ae2b8a02c8c0f4d012425350
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.2.html b/aperezdc/learn-discover-rework/release/wpe-2.22.2.html new file mode 100644 index 000000000..1cbbc2908 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.2.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.22.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.2 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.22 series.

+

What’s new in the WPE WebKit 2.22.2 release?

+
    +
  • Fix a crash when using Cairo versions between 1.15 and 1.16.0
  • +
  • Fix the build with -DLOG_DISABLED=0.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release, they +are far too many to list!

+
Checksums
+
+wpewebkit-2.22.2.tar.xz (15.2MB)
+   md5sum: 69c29ce376208b62b0cc43b750e27afb
+   sha1sum: 6ff4a3092ffff5e7600d00040984f988a76c6dc3
+   sha256sum: 56dced284e9fe71a7c56abc881b240251863472aed41c3e32ee3b071c21e56a9
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.3.html b/aperezdc/learn-discover-rework/release/wpe-2.22.3.html new file mode 100644 index 000000000..a352315ea --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.3.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.22.3 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.3 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.22 series.

+

What’s new in the WebKitGTK+ 2.22.3 release?

+
    +
  • Improved the logic to determine for which architectures to enable the JIT compiler support and USE_SYSTEM_MALLOC at build time.
  • +
  • Fix the build with ENABLE_VIDEO=OFF and ENABLE_OPENGL=OFF.
  • +
  • Fix several crashes.
  • +
+

Thanks to all the contributors who made possible this release!

+
Checksums
+
+wpewebkit-2.22.3.tar.xz (15.2MB)
+   md5sum: 6d0c693ea49a93fc9e701cf784245ea5
+   sha1sum: d8a22bec787f38939c7922dc43bf27c9144cef74
+   sha256sum: 241f177cded1a4ba3088716650eaaac25588878882170789b3c630ac45dbb2fa
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.4.html b/aperezdc/learn-discover-rework/release/wpe-2.22.4.html new file mode 100644 index 000000000..6ee3e5800 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.4.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.22.4 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.4 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.22 series.

+

What’s new in the WebKitGTK+ 2.22.4 release?

+
    +
  • Add missing WebKitVersion.h to the set of installed haders.
  • +
  • Fix several crashes, race conditions, and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release!

+
Checksums
+
+wpewebkit-2.22.4.tar.xz (15.2MB)
+   md5sum: 6e5c668473c57906bdec1c641bac4579
+   sha1sum: 002b8b25f4fc26bfef68767b3ff1eba1aac53fa5
+   sha256sum: 871e86b7e989de0c1224ac7ab8ed6d8b52756cf793a8c253b56ab8ba8d288c96
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpe-2.22.5.html b/aperezdc/learn-discover-rework/release/wpe-2.22.5.html new file mode 100644 index 000000000..cbc1ddd18 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpe-2.22.5.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.22.5 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.22.5 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.22 series.

+

What’s new in the WebKitGTK+ 2.22.5 release?

+
    +
  • Fix rendering of glyphs in Hebrew (and possibly other languages) when Unicode NFC normalization is used.
  • +
  • Fix several crashes and race conditions.
  • +
+

Thanks to all the contributors who made possible this release!

+
Checksums
+
+wpewebkit-2.22.5.tar.xz (15.2MB)
+   md5sum: 7b768bfae1295ebbc9a9038bf8fb6e6c
+   sha1sum: c85f927e0f17f1e7045a5d33c683d310c7af24de
+   sha256sum: d5e7b23e4f9e9f1b9d369faa4d527cdb59aef56b3e6a50a16dad243df5f699f3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-0.2.0.html b/aperezdc/learn-discover-rework/release/wpebackend-0.2.0.html new file mode 100644 index 000000000..6d60b025d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-0.2.0.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WPEBackend 0.2.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend 0.2.0 released!

+ + + + + + Download + +
+ +
+ +

This is a backwards-compatible, stable release of the WPE backend loader +library.

+

What’s new in the WPBackend 0.2.0 release?

+
    +
  • +

    New API to set and query the backend implementation library being used +(#19).

    +
  • +
  • +

    New API to query the version library, both with macros at build time, +and functions at runtime +(#18).

    +
  • +
  • +

    Trying to use a backend implementation library which does not provide +a load_object callback will produce a meaningful error instead of +silently failing.

    +
  • +
+
Checksums
+
+wpebackend-0.2.0.tar.xz (8.6KB)
+   md5sum: d04e44a32709dbb763ce1fcfc28bc6d8
+   sha1sum: 4089cac12877ee1e09372953a281a46b8c8951e9
+   sha256sum: ce33ff29b04175cb6fe6e6597a4b5e8ec9da0b8b5ae0745848902ac935d65823
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.0.html new file mode 100644 index 000000000..f3c512828 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.0.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + WPEBackend-fdo 1.0.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.0.0 released!

+ + + + + + Download + +
+ +
+ +

What’s new in the WPEBackend-fdo 1.0.0 release?

+
    +
  • +

    Updated to use libwpe 1.0.0 +(#23, +#20).

    +
  • +
  • +

    The libWPEBackend-fdo library now uses the libtool +versioning convention +(#22).

    +
  • +
  • +

    New API which supports exporting frames as EGL images. This provides +applications with a ready to to render EGLImage, and has the advantage +that the library hides the actual protocol used by the backend’s nested +compositor from the application +(#16).

    +
  • +
  • +

    Improved dispatching of Wayland events +(#11, +#15).

    +
  • +
  • +

    Support using DMA-BUF Wayland surfaces +(#18, +#17, +#13).

    +
  • +
  • +

    Support using Wayland versions older than 1.10 +(#19).

    +
  • +
+
Checksums
+
+wpebackend-fdo-1.0.0.tar.xz (24.2KB)
+   md5sum: 5318728afb3bf7417293af67ce427963
+   sha1sum: 7ee22bc1d585616f4ad2047d8be54ec396486211
+   sha256sum: 7a747f87a1ae46d30144369050e3ce348b58986d04e1a139ba75c198fa636729
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.1.html new file mode 100644 index 000000000..889abe11c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPEBackend-fdo 1.0.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.0.1 released!

+ + + + + + Download + +
+ +
+ +

This is a bugfix release in the stable 1.0 series.

+

What’s new in the WPEBackend-fdo 1.0.1 release?

+
    +
  • Allow wpe_fdo_initialize_for_egl_display() to be called multiple times; +it will emit a warning when trying to switch to a different EGL display, +which is unsupported (#26).
  • +
+
Checksums
+
+wpebackend-fdo-1.0.1.tar.xz (24.4KB)
+   md5sum: 2ee81a4212c18110a06a0c51c12e0d2e
+   sha1sum: cdc6ac95e302a2358204b766936a9bf8ef4f26f2
+   sha256sum: 15b8b1febea5d9c271e95c35b3c1e13f870712a54bc5f689cfdbb96e2f070fc8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.0.html new file mode 100644 index 000000000..be3018a13 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.0.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + WPEBackend-fdo 1.1.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.1.0 released!

+ + + + + + Download + +
+ +
+ +

Thiss is the first development release leading towards the 1.2 series.

+

What’s new in the WPEBackend-fdo 1.1.0 release?

+
    +
  • +

    Use the new libwpe API to notify when frames have been displayed +(#28).

    +
  • +
  • +

    Allow calling wpe_fdo_initialize_for_egl_display() multiple times, with a +warning printed to the standard error output when trying to switch displays +(which is unsupported) +(#26).

    +
  • +
  • +

    Provide a dummy implementation of the EGL offscreen target interface, to let +WebKit use Pbuffer-based offscreen contexts as fallback, instead of crashing +(5a4b58c).

    +
  • +
  • +

    Minor cleanups in headers and function prototypes +(#25, +#24).

    +
  • +
+
Checksums
+
+wpebackend-fdo-1.1.0.tar.xz (24.6KB)
+   md5sum: dc852a6cafaf4b6392dcb91e36cd7abb
+   sha1sum: 688377f441e19273fe2b44c0a2ea9da149f97fa4
+   sha256sum: f6c72130d16e50860cb83eb0f6e109c76f1826d2c6bee39025fb3651941761e7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.90.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.90.html new file mode 100644 index 000000000..5b728edfb --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.90.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPEBackend-fdo 1.1.90 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.1.90 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.2 series.

+

What’s new in the WPEBackend-fdo 1.1.90 release?

+
    +
  • Function wpe_fdo_initialize_for_egl_display() now returns a boolean value +which indicates whether initialization was successful (#32).
  • +
  • Some function parameters have been marked as const to explicitly indicate +that they are not modified.
  • +
  • Avoid leaking Wayland callback objects on each frame (#31).
  • +
+
Checksums
+
+wpebackend-fdo-1.1.90.tar.xz (26.1KB)
+   md5sum: f5db0d3137d37e886c932b470808a779
+   sha1sum: 9d0ea689f2215652b4cc5a790d78306c0707e56b
+   sha256sum: 31d9f1ae06968fe752055dde9d5cd7d5fd044c1aec92798bc0491d9a9cef84da
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.91.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.91.html new file mode 100644 index 000000000..d9907288c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.91.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPEBackend-fdo 1.1.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.1.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.2 series.

+

What’s new in the WPEBackend-fdo 1.1.91 release?

+
    +
  • Changed libwpe requirement to wpe-1.0.
  • +
+
Checksums
+
+wpebackend-fdo-1.1.91.tar.xz (26.1KB)
+   md5sum: 32a2a789188d300075b87bb3af967593
+   sha1sum: 9dbc322a73019acd35a9e30b648d7843f96624ae
+   sha256sum: d20e5688e3e6d9fdf1c3ee083ea14720bf59354aa17f275a003b030e8131315d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.10.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.10.0.html new file mode 100644 index 000000000..865293531 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.10.0.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPEBackend-fdo 1.10.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.10.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.10 series.

+

Highlights of the WPEBackend-fdo 1.10.0 release

+
    +
  • Added API to query whether receiving rendered audio has been configured.
  • +
  • Added API to obtain the wl_resource for SHM exported buffers.
  • +
  • The CMake build system has been removed in favor of Meson.
  • +
  • Made it easier to override where Meson looks for wayland-scanner +during cross-compilation, using a native machine file.
  • +
  • Fixed invalid usage of Wayland client connections in the nested compositor +which caused sporadic crashes in certain conditions.
  • +
  • Fixed file descriptor and memory leaks.
  • +
+

Checksums

+
+wpebackend-fdo-1.10.0.tar.xz (37.6 KiB)
+   md5sum: 306adbb0c66dc753e1794c83b7a2682b
+   sha1sum: bf71718a213c6511dea278ade5ce90967d181995
+   sha256sum: b89dfd3500a4dec711132cd7bff72599e67d56a419d000730e14bb99547509cc
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.0.html new file mode 100644 index 000000000..c716d64fb --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.0.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPEBackend-fdo 1.12.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.12.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.12 series.

+

Highlights of the 1.12.0 release

+
    +
  • Added API to obtain the wl_resource for SHM exported buffers.
  • +
  • Added unstable DMA-BUF pool API for buffer management.
  • +
  • Fixed UI process getting stuck when navigating across different security origins.
  • +
  • Fixed invalid usage of Wayland client connections in the nested compositor which caused crashes in some situations.
  • +
  • Made it easier to override where Meson looks for wayland-scanner during cross-compilation, using a native machine file.
  • +
+

Checksums

+
+wpebackend-fdo-1.12.0.tar.xz (42.1 KiB)
+   md5sum: c43b34a4b4933bcd80068ae5776ee346
+   sha1sum: e2576d564bd6d9a86737a4cd31dd5827ebc00fdf
+   sha256sum: 6239c9c15523410798d66315de6b491712ab30009ba180f3e0dd076d9b0074ac
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.1.html new file mode 100644 index 000000000..0a804a145 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.12.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.12.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.12 series.

+

What’s new in WPEBackend-fdo 1.12.1?

+
    +
  • Fixed a crash caused by trying to deallocate already freed graphics +buffers in certain situations.
  • +
+

Checksums

+
+wpebackend-fdo-1.12.1.tar.xz (42.1 KiB)
+   md5sum: 494f4a5b2bd89dacef37b69534b2e1ce
+   sha1sum: 72a85e4615e085926f7ad8fc8414f9c6a878ef28
+   sha256sum: 45aa833c44ec292f31fa943b01b8cc75e54eb623ad7ba6a66fc2f118fe69e629
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.13.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.13.1.html new file mode 100644 index 000000000..c0acd7c00 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.13.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.13.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.13.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.14 series.

+

What’s new in WPEBackend-fdo 1.13.1?

+
    +
  • Fixed a crash caused by trying to deallocate already freed graphics +buffers in certain situations.
  • +
+

Checksums

+
+wpebackend-fdo-1.13.1.tar.xz (42.0 KiB)
+   md5sum: 4dd9a2a43f50042e0cfbf989ba392a2f
+   sha1sum: 6da476b35bb82e8ae8f4fe7050282aeded649924
+   sha256sum: d61ca47ec52d7cd1d6f869f66d6ea247a53092acfad1a8cbab71836a82d3a0ae
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.0.html new file mode 100644 index 000000000..179f831b5 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.0.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPEBackend-fdo 1.14.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.14.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.14 series.

+

Highlights of the WPEBackend-fdo 1.14.0 Release

+
    +
  • Fixed a crash caused by trying to deallocate already freed graphics buffers in certain situations.
  • +
+

Checksums

+
+wpebackend-fdo-1.14.0.tar.xz (42.1 KiB)
+   md5sum: ea62dfa9ecb366598a837d7446ed48ac
+   sha1sum: 1500be9212381a404f4a46b22b90a9880ba11c01
+   sha256sum: e75b0cb2c7145448416e8696013d8883f675c66c11ed750e06865efec5809155
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.1.html new file mode 100644 index 000000000..f4b44f92e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.14.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.14.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.14 series.

+

What’s new in WPEBackend-fdo 1.14.1?

+
    +
  • Fix WebKit no longer repainting after provisional navigation with +PSON enabled.
  • +
  • Fix graphics buffer leaks by always freeing them in buffer destroy +listener callbacks.
  • +
+

Checksums

+
+wpebackend-fdo-1.14.1.tar.xz (42.2 KiB)
+   md5sum: 2b49218cdd16075b028bbaf5a4f57890
+   sha1sum: a68db2480d29d53d7fa24c69888bacbab6efea11
+   sha256sum: 01938dd93c62b3a47b18dd13c70d50490a8b8a6caec23c8550a3dbdbcc6bbb50
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.2.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.2.html new file mode 100644 index 000000000..f75457b79 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.2.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.14.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.14.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.14 series.

+

What’s new in WPEBackend-fdo 1.14.2?

+
    +
  • Reverted a change introduced in 1.14.1 which introduced crashes both +with WebKitGTK and WPE running under Wayland in some configurations.
  • +
  • Fix a crash caused by wrong assertion, which was typically triggered in +debug builds when using the NVidia drivers.
  • +
+

Checksums

+
+wpebackend-fdo-1.14.2.tar.xz (42.3 KiB)
+   md5sum: dafd899646b2e31ef2d97938a638c48d
+   sha1sum: f453f8d77e93f4ac6ac81c1874d4d6bdcb45c253
+   sha256sum: 93c9766ae9864eeaeaee2b0a74f22cbca08df42c1a1bdb55b086f2528e380d38
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.0.html new file mode 100644 index 000000000..25c134413 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.0.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPEBackend-fdo 1.2.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.2.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.2 series.

+

What’s new in the WPEBackend-fdo 1.1.91 release?

+
    +
  • Fix rendering issue due to usage of wrong width of DMA-BUF flags type.
  • +
+
Checksums
+
+wpebackend-fdo-1.2.0.tar.xz (26.1KB)
+   md5sum: 74e1b2fc2bc19933b17ff4f8435f67cd
+   sha1sum: 60559697512fd483c1d918b708a3d1d130b74a0a
+   sha256sum: b1bb261273772af8f7d96d94989fc2ed0445ec06c7eb21f47a1b94e52422ddd5
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.1.html new file mode 100644 index 000000000..c7f05047f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.1.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPEBackend-fdo 1.2.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.2.1 released!

+ + + + + + Download + +
+ +
+ +

What’s new in the WPEBackend-fdo 1.2.1 release?

+
    +
  • +

    Improved how CMake searches for wayland-scanner, making it friendlier for +cross-compilation (#39).

    +
  • +
  • +

    Fixed the build when using EGL headers which define prototypes for +EGL extensions (#51), +and when the EGL_WAYLAND_BUFFER_WL definition is missing +(#50).

    +
  • +
+
Checksums
+
+wpebackend-fdo-1.2.1.tar.xz (26.8KB)
+   md5sum: fc76ac572ed03da8237d1e3e3991d0c3
+   sha1sum: 8c994a25839b9df214c148c8892ee2c6f88ebbde
+   sha256sum: 6ef0852ecb9513a6789f8bbb9533083fcb165bb2d762eeb6d31e0b58c708cca0
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.2.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.2.html new file mode 100644 index 000000000..77d16c967 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.2.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.2.2 released!

+ + + + + + Download + +
+ +
+ +

What’s new in the WPEBackend-fdo 1.2.2 release?

+
    +
  • Fix build when --no-undefined is passed to the linker. This was caused +due to an explicit reference to the GObject library missing in the linker +command line.
  • +
+
Checksums
+
+wpebackend-fdo-1.2.2.tar.xz (26.8KB)
+   md5sum: 59b5fd6a3b64fe473458e16913ff9256
+   sha1sum: d525044256dc7ee13fd64bc10d3e24e3b980125e
+   sha256sum: a2a50631eff7ec7ad1f787ab7ea9a524148588edbb42fff614ee404e1bcc126d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.3.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.3.html new file mode 100644 index 000000000..69b73c6d3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.3.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + WPEBackend-fdo 1.2.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.2.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.2 series.

+

What’s new in the WPEBackend-fdo 1.2.3 release?

+
    +
  • Improved management and cleanup of Wayland resources.
  • +
+

Checksums

+
+wpebackend-fdo-1.2.3.tar.xz (27.1 KiB)
+   md5sum: c9aba34bf43cebba37396f18b0d00a12
+   sha1sum: 99b62a8ad31e096bcd2bc32b3fcb64836e1898d2
+   sha256sum: 0f4ed84ec1042be862f009a86bd48a84a9b32817c381793d9de950613c244bfa
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.0.html new file mode 100644 index 000000000..86ab7bec0 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.0.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPEBackend-fdo 1.3.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.3.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.4 series.

+

What’s new in the WPEBackend-fdo 1.3.0 release?

+
    +
  • Do not include EGL headers in libwpe public headers +(#38).
  • +
  • New API for exported images which allows querying their dimension their backing EGLImageKHR +(#37).
  • +
  • Use the default priority for the GLib event sources +(#33).
  • +
+

Checksums

+
+wpebackend-fdo-1.3.0.tar.xz (26.8KB)
+   md5sum: 6e00accb294fee5f2d27a716552284d2
+   sha1sum: f07e4c92deae09b2904db1efdc457bfcce1551f9
+   sha256sum: fed9ab29f5d53cf465188da80d014f3aa067c77704f8508c6bd17971fded359d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.1.html new file mode 100644 index 000000000..e70a597f7 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.1.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPEBackend-fdo 1.3.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.3.1 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.4 series.

+

What’s new in the WPEBackend-fdo 1.3.1 release?

+
    +
  • New macros in the API to check the version at compilation time (#47, #48).
  • +
  • Added support for detaching and attaching new ones for a view backend (#40).
  • +
  • Improved handling of Wayland events (#41, #49).
  • +
  • Improved how CMake searches for wayland-scanner, making it friendlier for cross-compilation (#39).
  • +
  • Fixed double-free of callback resources during destruction of view backends.
  • +
+

Checksums

+
+wpebackend-fdo-1.3.1.tar.xz (28.2KB)
+   md5sum: 4bd9b0c9b8b624ca806024c8ddfeb564
+   sha1sum: aa37f3c59db557c0c0026a492e6928dad50877c0
+   sha256sum: b0d136aa9ce9f94b1d06b258ed68c4a7b588b2e692d448d9c6eedb72edf56739
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.91.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.91.html new file mode 100644 index 000000000..e31d47bcd --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.91.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPEBackend-fdo 1.3.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.3.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.4 series.

+

What’s new in WPEBackend-fdo 1.3.91?

+
    +
  • Support DMA-BUF resource exports through a new callback in the API +(#55).
  • +
  • Improve management and cleanup of Wayland resources (#73).
  • +
  • Make the build more reliable using CMake imported library targets (#59, +#69, #71).
  • +
  • Enable compiler warnings (#58).
  • +
+

Checksums

+
+wpebackend-fdo-1.3.91.tar.xz (29.4KB)
+   md5sum: 611e4c27b37c94ea3ed7162cb001b69c
+   sha1sum: 544aa7b9848aadc5fe8b6542dbf18ae0898bfaf5
+   sha256sum: ebb4650755017be87ca630438d3908dd5fae2fa7fc8e90b0f70acd1ec0b015e2
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.0.html new file mode 100644 index 000000000..f4958bc24 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.0.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPEBackend-fdo 1.4.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.4.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.4 series.

+

Highlights of the WPEBackend-fdo 1.4.0 release

+
    +
  • New macros in the API to check the version at compilation time.
  • +
  • New API for exported images which allows querying their dimension their backing EGLImageKHR.
  • +
  • Support DMA-BUF resource exports through a new callback in the API.
  • +
  • Added support for detaching and attaching new targets to a view backend.
  • +
  • Improved management and cleanup of Wayland resources.
  • +
  • Improved handling of Wayland events.
  • +
  • Build system improvements.
  • +
+

Checksums

+
+wpebackend-fdo-1.4.0.tar.xz (29.5 KiB)
+   md5sum: 63553c3f43593c2a8c587c32e88fdf3c
+   sha1sum: a426d9a778ab52be2f4dd9cc7d324b43abac2f80
+   sha256sum: a919ca4a5bc445f9419a5b7f3781cfc98e5abcf5d7259eb1869f5ab20fd18baf
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.1.html new file mode 100644 index 000000000..3dd385945 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.4.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.4.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.4 series.

+

What’s new in WPEBackend-fdo 1.4.1?

+
    +
  • Fix build failures with recent compiler versions due to missing +function declarations.
  • +
+

Checksums

+
+wpebackend-fdo-1.4.1.tar.xz (29.5 KiB)
+   md5sum: c6362491a4a38ddac42b66f140e1cff2
+   sha1sum: 9217c8a5511bc53544b42cb23390256580ac4b0c
+   sha256sum: 6249a0b7cbfa662206a8d2fa24e2c574e75c681ad0e93468091f1dc68ddb299d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.2.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.2.html new file mode 100644 index 000000000..5f9cd8dd2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.2.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPEBackend-fdo 1.4.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.4.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.4 series.

+

What’s new in WPEBackend-fdo 1.4.2?

+
    +
  • Fix build failures with EGL implementations which do not provide an EGL/eglmesaext.h header.
  • +
+

Checksums

+
+wpebackend-fdo-1.4.2.tar.xz (29.6 KiB)
+   md5sum: d613bd5df2581f94542e22ec6033e574
+   sha1sum: 44f22a2dd7fe5ead024cf9523cfd01a4f20befde
+   sha256sum: fc1a3483eaab4b382fb4ab5519825d3b4787d64dfb4bdbef160d5ad2cc388d1f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.5.90.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.5.90.html new file mode 100644 index 000000000..b81f9cae2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.5.90.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPEBackend-fdo 1.5.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.5.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.6 series.

+

What’s new in WPEBackend-fdo 1.5.90?

+
    +
  • Added support for the DMA-BUF video plane display protocol.
  • +
  • Added support for exporting DMA-BUF buffers.
  • +
  • Added support for exporting SHM-based buffers.
  • +
  • New API functions to obtain the backend version at runtime.
  • +
  • Improved robustness of the CMake build system.
  • +
+

Checksums

+
+wpebackend-fdo-1.5.90.tar.xz (34.1 KiB)
+   md5sum: 0502f824b2ac0b3b49eb0ccbd80a85c6
+   sha1sum: 412749092e4df00d5321e4c4528db090f6e552ba
+   sha256sum: 34d55e7d28235a03aa69beb283daf23fffe8f1953f47a8d8b9247e0d3eb97e4f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.0.html new file mode 100644 index 000000000..0f2ad03ea --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.0.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPEBackend-fdo 1.6.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.6.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.6 series.

+

Highlights of the WPEBackend-fdo 1.6.0 release

+
    +
  • Added support for the DMA-BUF video plane display protocol.
  • +
  • Added support for exporting DMA-BUF buffers.
  • +
  • Added support for exporting SHM-based buffers.
  • +
  • Fix building the documentation.
  • +
  • Ensure that only symbols marked as public are exported.
  • +
+

Checksums

+
+wpebackend-fdo-1.6.0.tar.xz (34.2 KiB)
+   md5sum: 456afeed22f6749f7b2a97c11660835d
+   sha1sum: d128e2c7ff273d9b9f31217f6ac25be3b266d805
+   sha256sum: 7f5bd7b9d8f97b1655f4dcd39fad92719d0fb3985b251da5802df13aaa09f567
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.1.html new file mode 100644 index 000000000..2a124b7a1 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.6.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.6.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.6 series.

+

What’s new in WPEBackend-fdo 1.6.1?

+
    +
  • Fixed build when using EGL stacks with odd EGLNativeDisplay definitions.
  • +
  • Fixed version retrieval functions not being exposed as public symbols.
  • +
  • Improve build configuration by instructing CMake to report mismatched +versions of dependency libraries, instead of failing to compile.
  • +
+

Checksums

+
+wpebackend-fdo-1.6.1.tar.xz (34.4 KiB)
+   md5sum: ea6c2a13e6c2423f2c2b0b31fcf9567b
+   sha1sum: 53e38189324d9c0c87f40164d8349a827663aabd
+   sha256sum: 740eee3327acfb462b8460519a219e30dc0a870326e88e2ddc4fe2c8de20b1c9
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.1.html new file mode 100644 index 000000000..2dc949d2d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.1.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPEBackend-fdo 1.7.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.7.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.8 series.

+

What’s new in WPEBackend-fdo 1.7.1?

+
    +
  • Added new API for the audio rendering protocol, which allows embedders to +receive audio samples instead of letting WPE WebKit handle their playback.
  • +
  • Added support to export frames using EGLStreams, which can be used e.g. +with Nvidia GPUs.
  • +
  • New build configuration system based on Meson. The existing CMake-based +system is still maintained, and both produce the same outputs.
  • +
  • Expose symbols for the version retrieval functions.
  • +
  • Use libepoxy for EGL operations.
  • +
+

Checksums

+
+wpebackend-fdo-1.7.1.tar.xz (40.8 KiB)
+   md5sum: 7e66a08eecba6124f59bbce288c52fa1
+   sha1sum: d72795efca8d6d4e624fc9e945cf279599e74bc0
+   sha256sum: 9b980a73ea4e3762266c48f81ded56d9dcad4acf32bad9bd05d0dffdd454c6f5
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.90.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.90.html new file mode 100644 index 000000000..2b375fccb --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.90.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPEBackend-fdo 1.7.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.7.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.8 series.

+

What’s new in WPEBackend-fdo 1.7.90?

+
    +
  • This release does not contain changes over the 1.7.1 development release
  • +
+

Checksums

+
+wpebackend-fdo-1.7.90.tar.xz (41.5 KiB)
+   md5sum: 70f9a4efb4586c98f4aa5425402a4dd8
+   sha1sum: b3f0a006f0b613672b25f9d42137162ca46a208c
+   sha256sum: 65f06259c018a58a4555bf0719e0219a2acb6e82124435c33de9723d64335351
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.0.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.0.html new file mode 100644 index 000000000..cd729c606 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.0.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.8.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.8.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 1.8 series.

+

Highlights of the WPEBackend-fdo 1.8.0 release

+
    +
  • Added new API for the audio rendering protocol, which allows embedders to receive audio samples instead of letting WPE WebKit handle their playback.
  • +
  • Added support to export frames using EGLStreams, which can be used e.g. with Nvidia GPUs.
  • +
  • New build configuration system based on Meson. The existing CMake-based system is still maintained, and both produce the same outputs.
  • +
  • Expose symbols for the version retrieval functions.
  • +
+

Checksums

+
+wpebackend-fdo-1.8.0.tar.xz (41.5 KiB)
+   md5sum: 6df96f80ff34c02d56f32a7a153a62c0
+   sha1sum: 48dd8d5d525e0c89b8b7068fe51c439921804240
+   sha256sum: 9652a99c75fe1c6eab0585b6395f4e104b2427e4d1f42969f1f77df29920d253
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.1.html new file mode 100644 index 000000000..67217b319 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPEBackend-fdo 1.8.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.8.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 1.8 series.

+

What’s new in WPEBackend-fdo 1.8.1?

+
    +
  • Fixed invalid usage of Wayland client connections in the nested compositor which caused sporadic crashes in certain conditions.
  • +
  • Fixed a file descriptor leak on view backend initialization.
  • +
  • Fixed a small memory leak when releasing exportable view backends.
  • +
+

Checksums

+
+wpebackend-fdo-1.8.1.tar.xz (41.7 KiB)
+   md5sum: e7083e9fd325f289b23253b770d08d2e
+   sha1sum: 08472f1bcff6100ba963bdbe7347487253006ca0
+   sha256sum: 8adb4475be949ae4092370de6a37d7b9e1d3704cf4674867312e87de2ff0d880
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.2.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.2.html new file mode 100644 index 000000000..48942e1e9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.8.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.8.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.8 series.

+

What’s new in WPEBackend-fdo 1.8.2?

+
    +
  • Fixed headers to include <wpe/wpe.h> from the top-level API headers, +as their consumers expect the public libwpe API to be defined as well.
  • +
+

Checksums

+
+wpebackend-fdo-1.8.2.tar.xz (41.8 KiB)
+   md5sum: 93ca185b5c0f539abbf7ab32cfdc96b2
+   sha1sum: 715a1a1e0cfd85898a1f686ec4c5b79a1e8cfb9c
+   sha256sum: 98c291071128326a72918d670a46ef63268c43267928560ac3b84b6aebb2d78d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.3.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.3.html new file mode 100644 index 000000000..2ed174ae1 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.3.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPEBackend-fdo 1.8.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.8.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.8 series.

+

What’s new in WPEBackend-fdo 1.8.3?

+
    +
  • Fixed UI process getting stuck when navigating across different security +origins. This also fixed a small memory leak.
  • +
+

Checksums

+
+wpebackend-fdo-1.8.3.tar.xz (42.0 KiB)
+   md5sum: 980cbda207bf8f6263799c5062425737
+   sha1sum: c849043039d805448715be90cb5b3491f0a90c5f
+   sha256sum: 3d0b4282a1bd9e0664d7a20abe14e982f3285296ac62de56cae2a404b9d28b9e
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.4.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.4.html new file mode 100644 index 000000000..510ee8e68 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.4.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.8.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.8.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 1.8 series.

+

What’s new in WPEBackend-fdo 1.8.4?

+
    +
  • Fixed frozen web views not being updated after PSON when multiple web +views (and hence view backends) are in use.
  • +
  • Fixed invalid usage of Wayland client connections in the nested compositor +which caused crashes in some situations.
  • +
+

Checksums

+
+wpebackend-fdo-1.8.4.tar.xz (42.3 KiB)
+   md5sum: 9f4c98cba7805cd594f74f4991920ee7
+   sha1sum: 4253a15f311ea1c5b7043846839829ed7838361f
+   sha256sum: def59bed5e8cdabb65ffa76ee2eef349fba7b42a75dac80f3da5954b17f4074a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.1.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.1.html new file mode 100644 index 000000000..dad6193f6 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.9.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.9.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 1.10 series.

+

What’s new in WPEBackend-fdo 1.9.1?

+
    +
  • Added API to query whether receiving rendered audio has been configured.
  • +
  • The CMake build system has been removed in favor of Meson.
  • +
  • Fixed memory leak on the second (and subsequent) use of wpe_fdo_initialize_shm().
  • +
  • Fixed memory leak when releasing exportable view backends.
  • +
+

Checksums

+
+wpebackend-fdo-1.9.1.tar.xz (36.3 KiB)
+   md5sum: 7a233969c0ba50ba4b8f58dbfb43ffa5
+   sha1sum: 9f38ca2cca28d69678076fc3a06f314846a96166
+   sha256sum: a1dc4e506413719a0d84757797b645fa76590e6c8db23d2403d990dc2e196a64
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.90.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.90.html new file mode 100644 index 000000000..fd5b90130 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.90.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPEBackend-fdo 1.9.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.9.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.10 series.

+

What’s new in WPEBackend-fdo 1.9.90?

+
    +
  • Added API to obtain the wl_resource for SHM exported buffers.
  • +
  • Fixed headers to include <wpe/wpe.h> from the top-level API headers, as +their consumers expect the public libwpe API to be defined as well.
  • +
  • Fixed UI process getting stuck when navigating across different security +origins. This also fixed a small memory leak.
  • +
  • Fixed invalid usage of Wayland client connections in the nested compositor +which caused sporadic crashes in certain conditions.
  • +
  • Fixed a file descriptor leak on view backend initialization.
  • +
  • Fixed a small memory leak when releasing exportable view backends.
  • +
+

Checksums

+
+wpebackend-fdo-1.9.90.tar.xz (37.1 KiB)
+   md5sum: da5f85b41a4a40d38f6ac9f1f0d062bc
+   sha1sum: 62103b07c6f2eb3dab3ff2e4259538c870c9e7db
+   sha256sum: 9d8330f54debb6273b432040dfde2b03e6eed8411dceda0093193a06276aba44
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.91.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.91.html new file mode 100644 index 000000000..ae69ca51f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.91.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPEBackend-fdo 1.9.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.9.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.10 series.

+

What’s new in WPEBackend-fdo 1.9.91?

+
    +
  • Fixed more cases of invalid usage of Wayland client connections in the +nested compositor which caused crashes in some situations.
  • +
  • Fix the build with version of Python older than 3.6
  • +
+

Checksums

+
+wpebackend-fdo-1.9.91.tar.xz (37.2 KiB)
+   md5sum: 8787c05e9abe8f066c168881d97a9b32
+   sha1sum: f4dc2c50deb0dbf421477f0a9f461c6184553c1f
+   sha256sum: 13dcbdaee3af8e46c6a2400c28f75a8f4ca24a41324a324184eb2b848964c3ff
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.92.html b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.92.html new file mode 100644 index 000000000..df90c7bff --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.92.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPEBackend-fdo 1.9.92 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPEBackend-fdo 1.9.92 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 1.10 series.

+

What’s new in WPEBackend-fdo 1.9.92?

+
    +
  • Fixed frozen web views not being updated after PSON when multiple +web views (and hence view backends) are in use.
  • +
  • Made it easier to override where Meson looks for wayland-scanner during +cross-compilation, using a native machine file.
  • +
+

Checksums

+
+wpebackend-fdo-1.9.92.tar.xz (37.5 KiB)
+   md5sum: 5c2f7fab6623e0964bc0d1b4a01719f0
+   sha1sum: d07fdfec0df53c57e3ed36a1efffecf30d1b418c
+   sha256sum: fc5b388a91d6f2c22803e1a21a6759a314b4539e5169c6e272bfc953a05fbb85
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.23.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.23.90.html new file mode 100644 index 000000000..92ae68467 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.23.90.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + WPE WebKit 2.23.90 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.23.90 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading toward 2.24 series.

+

What’s new in the WebKitGTK 2.23.90 release?

+
    +
  • Add a new setting to disable JavaScript elments from documents during parsing.
  • +
  • Add initial support for subprocess sandboxing in Linux.
  • +
  • Add initial support for variation fonts.
  • +
  • Add new API to convert a URI to a format for display.
  • +
  • Add new API to expose JavaScriptCore options.
  • +
  • Add new API to handle user content filters.
  • +
  • Add new permission request type for media device information.
  • +
  • Add support for JPEG2000 images.
  • +
  • Fix a UI process crash while filling selection data during drag and drop.
  • +
  • Fix a web process deadlock when starting the remote inspector.
  • +
  • Fix crashes when closing the WebDriver session.
  • +
  • Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps.
  • +
  • Fix rendering artifacts in some websites with accelerated compositing enabled.
  • +
  • Fix the build with OpenGL disabled.
  • +
  • Remove experimental sandboxing support, it’s not yet ready for stable release.
  • +
  • Sleep disabler now inhibits idle when a “System” sleep disabler is requested.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release.

+
Checksums
+
+wpewebkit-2.23.90.tar.xz (16.1MB)
+   md5sum: 06ab9cc7da53cf35ff9315800fb91140
+   sha1sum: 5ed558f2e7d4b82adbe426b4574f24eac848fa60
+   sha256sum: 070c4e838560b3dacc635af769c419ffb11ef3bb211f826115b2308990fc7ad8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.23.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.23.91.html new file mode 100644 index 000000000..e28ce7f5f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.23.91.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + WPE WebKit 2.23.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.23.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.24 series.

+

What’s new in the WebKitGTK 2.23.91 release?

+
    +
  • Add setting to configure the page background color.
  • +
  • Add support for hole-punching using external media players.
  • +
  • Add support for 16bpp rendering in RGB565 format.
  • +
  • Add autocleanup definitions for g_autoptr and friends.
  • +
  • Add WebKitUserContentFilterStore to the API docs.
  • +
  • Change dependencies to use wpe-1.0 and wpe-fdo-1.0.
  • +
  • Fix constructors returning a GObject in the JSC GLib API.
  • +
  • Fix build failure with Clang due to usage of wl_array_foreach.
  • +
  • Fix build failure due to missing WebKitUserContentFilterStore.h header.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made possible this release.

+
Checksums
+
+wpewebkit-2.23.91.tar.xz (16.0MB)
+   md5sum: 2c823548d9da12b466a8e2fb46c68d52
+   sha1sum: 46ce9264373a6eb3f90beda3b94bf3a41cdeaf9e
+   sha256sum: 23885d07d19e25cd804dc1eda8d14c7ed248fcc0a2268d0a2133d38a2a81ac4b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.24.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.0.html new file mode 100644 index 000000000..947b002c4 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.0.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + WPE WebKit 2.24.0 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.24.0 released!

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.24 series.

+

Highlights of the WPE WebKit 2.24 release

+
    +
  • Added support for content filtering.
  • +
  • Support for variable fonts.
  • +
  • Full emoji rendering support.
  • +
  • Support for JPEG2000 images.
  • +
  • New API to format an URI for display.
  • +
  • New setting to configure the page background colour.
  • +
  • Support external media players through hole-punching.
  • +
  • Allow usage of g_autoptr with WPE WebKit types.
  • +
  • Support choosing 16bpp RGB565 pixel format for rendering.
  • +
  • Initial support for building the API reference documentation using GTK-Doc.
  • +
+

For more details about all the changes included in WPE WebKit 2.24 see the +NEWS file that is included in the tarball.

+

Note that the 2.24 series require usage of libwpe 1.2.0 +or newer, and when using the FDO backend, WPEBackend-fdo 1.2.0 +or newer.

+

Thanks to all the contributors who made possible this release.

+
Checksums
+
+wpewebkit-2.24.0.tar.xz (16.0MB)
+   md5sum: 042848cd0d0f9f7fa54663db8e4751dc
+   sha1sum: 4f7ebd3364dd4e8d0e2dec11ccc33ed88c83ec2b
+   sha256sum: d2e5e444134720cbad5c8669996000a004943bb71ee6783aefa72a80bde1b35a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.24.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.1.html new file mode 100644 index 000000000..c42dfe5ff --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.1.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + WPE WebKit 2.24.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.24.1 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.24 series.

+

Highlights of the WPE WebKit 2.24.1 release

+
    +
  • Do not allow changes in active URI before provisional load starts for non-API requests.
  • +
  • Stop the threaded compositor when the page is not visible or layer tree state is frozen.
  • +
  • Use WebKit HTTP source element again for adaptive streaming fragments downloading.
  • +
  • Properly handle empty resources in webkit_web_resource_get_data().
  • +
  • Add quirk to ensure outlook.live.com uses the modern UI.
  • +
  • Fix methods returing GObject or boxed types in the JavaScriptCore GLib API.
  • +
  • Ensure callback data is passed to functions and constructors with no parameters in the JavaScriptCore GLib API.
  • +
  • Fix rendering of complex text when the font uses x,y origins.
  • +
  • Fix sound loop with Google Hangouts and WhatsApp notifications.
  • +
  • Fix the build with GStreamer 1.12.5 and Gst-GL enabled.
  • +
  • Fix event source priorities to avoid starvation causing the NetworkProcess to be killed in constraned environments.
  • +
  • Detect SSE2 at compile time.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Security fixes: CVE-2019-6251.
  • +
+
Checksums
+
+wpewebkit-2.24.1.tar.xz (16.1MB)
+   md5sum: 0f7b792874853416d8005b020bd90685
+   sha1sum: d009c82afbc2c373a7f34ffda392e5c3b52dac7d
+   sha256sum: 95f2fb68429fbd901ea415d09fdd88d6d9ac5ec2d170bec9977093b12e5093a6
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.24.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.2.html new file mode 100644 index 000000000..004f3d6e3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.2.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPE WebKit 2.24.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.24.2 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.24 series.

+

What’s new in the WPE WebKit 2.24.2 release?

+
    +
  • Fix space characters not being rendered with some CJK fonts.
  • +
  • Fix adaptive streaming playback with older GStreamer versions.
  • +
  • Fix build issue due to wrongly included X11 headers.
  • +
  • Fix SSE2 detection at compile time, ensuring the right flags are passed to the compiler.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Security fixes: +CVE-2019-8595, +CVE-2019-8607, and +CVE-2019-8615.
  • +
+
Checksums
+
+wpewebkit-2.24.2.tar.xz (16.1MB)
+   md5sum: 3604a2167827c8354f6dcbab98305d7b
+   sha1sum: 1248d7723d0e6aec52cafc27a92c5c335c1abdd4
+   sha256sum: cf251a467b3bcae50f97e22f4baccca49fcbbd54162dc5b71c0b1ebf655fd95f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.24.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.3.html new file mode 100644 index 000000000..d90248a37 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.24.3.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPE WebKit 2.24.3 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.24.3 released!

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.24 series.

+

What’s new in the WPE WebKit 2.24.3 release?

+
    +
  • Updated the user agent string to make happy certain websites which would claim that the browser being used was unsupported.
  • +
  • Improve loading of multimedia streams to avoid memory exhaustion due to excessive caching.
  • +
  • Fix display of documents with MIME type application/xml in the Web Inspector, when loaded using XmlHttpRequest.
  • +
  • Fix a hang while scrolling certain websites which include HLS video content (Twitter, for example).
  • +
  • Fix rounding artifacts in volume levels for media playback.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Fix the build with video track support disabled.
  • +
  • Fix the build with multimedia support completely disabled with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF.
  • +
  • Fix build issue which would cause media controls to disappear when Python 3.x was used during the build process.
  • +
+
Checksums
+
+wpewebkit-2.24.3.tar.xz (16.1MB)
+   md5sum: b5c6fe640b03c3e87594da2c0a0a8469
+   sha1sum: c9ccb6c4c65446e96ed6d534a1556db0fcca8268
+   sha256sum: 907b20907a32a4288cbf67b56eab04cbbd997a7ca0f40b3c466cbbbbfba0e7ca
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.25.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.1.html new file mode 100644 index 000000000..ce1402100 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.1.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + WPE WebKit 2.25.1 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.25.1 released!

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.26 series.

+

What’s new in the WPE WebKit 2.25.1 release?

+
    +
  • Enable process switch on cross site navigation.
  • +
  • Fix rendering artifacts in youtube volume button.
  • +
  • Fix trapezoid artifact in github comment box.
  • +
  • Enable hyperlink auditing setting by default.
  • +
  • Fix HLS streams being slow to start.
  • +
  • Add support for subprocess sandboxing.
  • +
  • Add API to get the web process unique identifier of a WebKitFrame.
  • +
  • Add WebKitWebPage::did-associate-form-controls-for-frame signal and deprecate did-associate-form-controls.
  • +
  • Implement AtkComponentIface scroll_to methods.
  • +
  • Fix touch capabilities detection for websites checking touch events properties present in window or pointer media queries.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.25.1.tar.xz (17.2MB)
+   md5sum: 380378f96d9f827ecb3b2f9f31fa7ba3
+   sha1sum: d8bfdc420ff27638578b382fa9d77b2b1dea897f
+   sha256sum: 0ea209c7bfaec5c7fd7e731ff86a4db805db8c8306da1e20259b41eab39c41ee
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.25.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.2.html new file mode 100644 index 000000000..1d26ad027 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.2.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + WPE WebKit 2.25.2 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.25.2 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.26 series.

+

What’s new in the WPE WebKit 2.25.2 release?

+
    +
  • Enable process switch on cross site navigation.
  • +
  • Enable hyperlink auditing setting by default.
  • +
  • Ensure web extensions directory is readable when sandbox is enabled.
  • +
  • Switch to use libsoup WebSockets API.
  • +
  • Add rendering of more button types.
  • +
  • Add support for the CSS properties “mix-blend-mode” and “isolation”.
  • +
  • Add support for permessage-deflate WebSocket extension.
  • +
  • Add support for disk cache dumping.
  • +
  • Add basic DNS caching inside the network process.
  • +
  • Add user agent quirk to make github work in FreeBSD.
  • +
  • Fix web process deadlock when scrolling twitter timeline which contains HLS videos.
  • +
  • Fix a crash with empty video source.
  • +
  • Fix content disappearing when using CSS transforms.
  • +
  • Fix some radio streams that could not be played.
  • +
  • Fix video pause that sometimes caused to skip to finish.
  • +
  • Fix volume level changes when playing a video.
  • +
  • Fix building with unified sources disabled (-DENABLE_UNIFIED_BUILDS=OFF).
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.25.2.tar.xz (17.3MB)
+   md5sum: ca1aa8f78e1026a69c9f6b1a76f77e16
+   sha1sum: e15cd93eaa8821c9e0ed0a82b6544b4624965e92
+   sha256sum: b6485cdc79dce1a6f3a3196e3bc9832110067b121f8f552e3e2d8a0135f6ae27
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.25.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.91.html new file mode 100644 index 000000000..154e46969 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.25.91.html @@ -0,0 +1,318 @@ + + + + + + + + + + + + WPE WebKit 2.25.91 released! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.25.91 released!

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.26 series.

+

What’s new in the WPE WebKit 2.25.91 release?

+
    +
  • Do not enable the sandbox in Snap.
  • +
  • Fix sandbox parsing DISPLAY on X11.
  • +
  • Add WEBKIT_USE_SINGLE_WEB_PROCESS environment variable to force single process model in all WebKitWebContext. +This is a temporary solution for applications still depending on the single process mode behavior. It will be +only available in 2.26 series.
  • +
  • Add new API to remove a filter from an user content manager given its identifier.
  • +
  • Add support for HSTS.
  • +
  • Several improvements and bug fixes in MSE media player.
  • +
  • Switch to use libsoup WebSockets API.
  • +
  • Add support for permessage-deflate WebSocket extension.
  • +
  • Add user agent quirk to make GitHub work in FreeBSD.
  • +
  • Fix content disappearing when using CSS transforms.
  • +
  • Fix building without unified sources.
  • +
  • Fix web process deadlock when scrolling twitter timeline which contains HLS videos.
  • +
  • Fix a crash with empty video source.
  • +
  • Fix some radio streams that could not be played.
  • +
  • Fix video pause that sometimes caused to skip to finish.
  • +
  • Fix volume level changes when playing a video.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.25.91.tar.xz (17.3MB)
+   md5sum: 16b74b3246b2787e8b200e9f3ec5285d
+   sha1sum: e3437547fce8ff9cb867157f6f82ba18b4d8a38b
+   sha256sum: 79921b8d04a9d5df7e3d4a3725746638df8f76705b1cd64fc31c093808fbb9a7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.26.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.0.html new file mode 100644 index 000000000..cc0d3d5c3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.0.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPE WebKit 2.26.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.26.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.26 series.

+

Highlights of the WPE WebKit 2.26.0 release

+
    +
  • Add support for subprocess sandboxing.
  • +
  • Add support for HSTS (HTTP Strict Transport Security).
  • +
  • Fix rendering artifacts in the YouTube volume button and GitHub comment boxes.
  • +
  • Single process model has been deprecated for security reasons.
  • +
  • Enable process switch on cross site navigation.
  • +
  • Enable hyperlink auditing setting by default.
  • +
+

For more details about all the changes included in WPE WebKit 2.26 see +the NEWS file included in the release tarball.

+

Thanks to all the contributors who made this release possible.

+

Checksums

+
+wpewebkit-2.26.0.tar.xz (17.3 MiB)
+   md5sum: 59a2e64f145b3445187a22eff1f73293
+   sha1sum: 757ab5da23ef7944332d4c57fcf56a932e933ce4
+   sha256sum: a97a24fe0c22243c873c359d7636512c01016ea2068a457ba651040f1a07ee3e
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.26.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.1.html new file mode 100644 index 000000000..6f276d300 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.1.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPE WebKit 2.26.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.26.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.26 series.

+

What’s new in WPE WebKit 2.26.1?

+
    +
  • Fix MSE media player with GStreamer 1.14.
  • +
  • Fix HTML alternate loads never finishing.
  • +
  • Fix web view initialization delay on first load.
  • +
  • Validate user agent string set via API.
  • +
  • Fix EGL initialization with newer versions of Mesa.
  • +
  • Do not enable the sandbox inside Docker.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Thanks to all the contributors who made this release possible.

+

Checksums

+
+wpewebkit-2.26.1.tar.xz (17.4 MiB)
+   md5sum: bec094fe878e03f42de751cbaf0b3e99
+   sha1sum: 53dfafab8d5ccb537e7330febb9504c390e3bf52
+   sha256sum: d1ae85dffb5bfc106c5ac6d5e73a3dfe3cb2c1df1f18c16103e1dc744cd4ac14
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.26.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.2.html new file mode 100644 index 000000000..a7bacc3ae --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.2.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.26.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.26.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.26 series.

+

What’s new in WPE WebKit 2.26.2?

+
    +
  • Improve performance of querying system fallback fonts.
  • +
  • Don’t use prgname in dbus-proxy socket path.
  • +
  • Fix thread-safety issues in image decoders.
  • +
  • Fix the build with WebDriver disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.26.2.tar.xz (17.3 MiB)
+   md5sum: 057cc2647231e90c8197873df9a9f54c
+   sha1sum: eca4e35af2c2e70bd36a9bdef3bfbbfbd417210c
+   sha256sum: dd4fce390f1721d8d6d017fa712adb990f7230bde84a1b7d27327bd589053fdd
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.26.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.3.html new file mode 100644 index 000000000..31b3c1ec9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.3.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPE WebKit 2.26.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.26.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.26 series.

+

What’s new in WPE WebKit 2.26.3?

+
    +
  • Fix issues while trying to play a video on NextCloud.
  • +
  • Make sure the GL video sink uses a valid WebKit shared GL context.
  • +
  • Fix vertical alignment of text containing Arabic diacritics.
  • +
  • Fix build with ICU 65.1.
  • +
  • Fix page loading errors with websites using HSTS.
  • +
  • Fix web process crash when displaying a KaTeX formula.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.26.3.tar.xz (17.4 MiB)
+   md5sum: 735beb5c1f825d5feda2e355aca6bec0
+   sha1sum: aeda665b3a137ac748ff1d08ce9e4c751f7caf97
+   sha256sum: 2da9fe9c3a8bdfecc4281d848a4eacdd7be8ac5e0fc397020094d68cf32c10b3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.26.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.4.html new file mode 100644 index 000000000..38f6dee5f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.26.4.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + WPE WebKit 2.26.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.26.4 released

+ + + + + + Download + +
+ +
+ + +

This is a bug fix release in the stable 2.26 series.❤️

+

What’s new in WPE WebKit 2.26.4?

+
    +
  • Fix the build with OpenGL disabled.
  • +
  • Fix the build with GCC 10.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.26.4.tar.xz (17.4 MiB)
+   md5sum: 4cd2883ec9da38a0ffe413bb75239874
+   sha1sum: 337f78ee237fe98c7e6e728d8fc0508069b007be
+   sha256sum: 0c292182864b63b725491f1a69b55c03e0e75f6db0875389caff31fe9c0d3ae9
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.27.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.1.html new file mode 100644 index 000000000..80a488569 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.1.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.27.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.1?

+
    +
  • Enable asynchronous scrolling.
  • +
  • Add about:gpu to show information about the graphics stack.
  • +
  • Add WebKitWebView:page-id property.
  • +
  • Fix the build with ENABLE_WEBDRIVER=OFF.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.1.tar.xz (18.6 MiB)
+   md5sum: db594627c4265b4fd7561965e7e6b91e
+   sha1sum: 6c0786162054411befc454ee09855c87c6e945ed
+   sha256sum: 3d2f05c16056603abb7ed040b1f62957f9971f6ecc0bda04f91727d04c9e960a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.27.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.3.html new file mode 100644 index 000000000..029920d9f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.3.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.27.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.3 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.3?

+
    +
  • Improve performance when falling back to system fonts.
  • +
  • Stop using DBus for the remote inspector implementation to improve the performance of both +WebDriver and remote inspector.
  • +
  • Implement support for new ARIA roles: code, strong, emphasis, generic.
  • +
  • Fix handling of content type with new custom protocols implementation.
  • +
  • Make image decoders fully thread safe.
  • +
  • Add support for get page source command in WebDriver.
  • +
  • Add support for network proxy capabilities in WebDriver.
  • +
  • Add support for new window command in WebDriver.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.3.tar.xz (18.8 MiB)
+   md5sum: c9d8e133cd407e8a56cbd63cecfe3ff3
+   sha1sum: 002de6a949332be48c19e3841b189297030eb0f2
+   sha256sum: 5523ac2584e37f9d69fa59593bbd4227e3c777bd3b78c86dfd4da5636922a77b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.27.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.4.html new file mode 100644 index 000000000..8c723436d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.4.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + WPE WebKit 2.27.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.4 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.4?

+
    +
  • Add API for input methods.
  • +
  • Add API to serialize/deserialize a JSCValue to/from a JSON string.
  • +
  • Add WebKitOptionMenu API.
  • +
  • Add support for strict secure cookies.
  • +
  • Add support for saving data from remote inspector.
  • +
  • Support client-side video rendering using DMA-BUF to share frames across processes.
  • +
  • Fix rendering of conic gradients in high resolution displays.
  • +
  • Fix special combination characters not respecting the keystroke order when high CPU load.
  • +
  • Honor the IndexedDB directory set in WebsiteDataManager.
  • +
  • Fix rendering of text when there’s an initial advance in the text run.
  • +
  • Fix web process crash when displaying a KaTeX formula.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.4.tar.xz (19.1 MiB)
+   md5sum: 05f044cf0a04432baaed9273b5ce90b6
+   sha1sum: 34cdd412b05185335bafd67b380e446855487b81
+   sha256sum: 70a4e00e7e4c754faf264ca69c6cd67ca399dae1d15cc8443a0a3aa71791838a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.27.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.90.html new file mode 100644 index 000000000..81f36af8c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.90.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.27.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.90?

+
    +
  • Add support for same-site cookies.
  • +
  • Add Flatpak sandbox support.
  • +
  • Enable WebAudio and WebGL by default in WebKitSettings.
  • +
  • Add a setting to disallow top level navigation to a data: URI.
  • +
  • Add support for the -webkit-font-smoothing CSS property.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.90.tar.xz (19.3 MiB)
+   md5sum: e432bc68a407b6f390ebb907008803f5
+   sha1sum: f2dff587f201b2186a6d2f17f5e5e4d4933e4b5b
+   sha256sum: 70f8e67e9534bb1f5d9d6f4efdfa00c2bc61c3581f1938c819aff0233fde0f46
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.27.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.91.html new file mode 100644 index 000000000..12dba60f7 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.27.91.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.27.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.27.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.28 series.

+

What’s new in WPE WebKit 2.27.91?

+
    +
  • Add support for 2D-axis smooth motion input events.
  • +
  • Add support for exporting decoded frames as DMA-BUF directly to the video +sink when GStreamer places them in EGL memory.
  • +
  • Update User-Agent quirks to fix the “Unsupported browser” message in +several Google services.
  • +
  • Install the QtWPE QML plug-in in a standard location.
  • +
  • Fix QtWPE API headers.
  • +
  • Fix several compilation warnings with GCC 10.
  • +
  • Fix the build with GCC 10.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.27.91.tar.xz (19.3 MiB)
+   md5sum: 17a6a9a12f8614be78a8b25b9bedf4e5
+   sha1sum: 6dad9724e2d86362850e2618abff2ccd578838ea
+   sha256sum: 822c07a024d390faff8fa6889b00f10387e16012b99e734baa74368a523ec0b3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.28.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.0.html new file mode 100644 index 000000000..dbdf1f7e5 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.0.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + WPE WebKit 2.28.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.28.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.28 series.

+

Highlights of the WPE WebKit 2.28.0 release

+
    +
  • Add user messages API for the communication with web process extensions.
  • +
  • Add support for SameSite cookies.
  • +
  • Service workers are enabled by default.
  • +
  • Add Flatpak sandbox support.
  • +
  • Add webkit://gpu to show information about the graphics stack.
  • +
  • Add support for 2D-axis smooth motion input events.
  • +
  • Enable WebAudio and WebGL by default in WebKitSettings.
  • +
  • Add new API for input methods.
  • +
  • Add support for the WebKitOptionMenu API.
  • +
+

For more details about all the changes included in WPE WebKit 2.28.0 see the +NEWS file included in the tarball.

+

Thanks to all the contributors who made this release possible! 🎉

+

Checksums

+
+wpewebkit-2.28.0.tar.xz (19.3 MiB)
+   md5sum: 4298b9d38b4f05f92995422ea9979893
+   sha1sum: 9e791b6112cca8cda51ae7e991b545f4bf0bb46c
+   sha256sum: a85cd3cb46206a4929a9562d53379a7e7e2ec1a3224b34e2dcf5da30bb906722
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.28.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.1.html new file mode 100644 index 000000000..a7c40944a --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.1.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPE WebKit 2.28.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.28.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.28 series.

+

What’s new in WPE WebKit 2.28.1?

+
    +
  • Update Chrome and Firefox versions in user agent quirks.
  • +
  • Improved performance when using an OpenMAX video decoder and OpenGL ES 2.
  • +
  • Fix inverted horizontal scrolling.
  • +
  • Fix a crash with bubblewrap sandbox enabled.
  • +
  • Fix a crash in JavaScriptCore in ppc64el.
  • +
  • Fix the build with GStreamer 1.12.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.28.1.tar.xz (19.3 MiB)
+   md5sum: 3d424c7f814ab2269bb1ff020cc44fbb
+   sha1sum: 09434ac6e2e7b0ae052339bf04943612b43e0a6d
+   sha256sum: 3763a536d55529bbf66fa3772e9c1b543ddf882fabd0ca337076555b176ee8c5
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.28.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.2.html new file mode 100644 index 000000000..421646ac9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.2.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.28.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.28.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.28 series.

+

What’s new in WPE WebKit 2.28.2?

+
    +
  • Fix playing of Youtube “live stream” H.264 URLs.
  • +
  • Fix the build in MIPS64.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.28.2.tar.xz (19.3 MiB)
+   md5sum: c1f17d4b031e9462692443e3c089789c
+   sha1sum: b109cfec921eb466227ab3b8d21c5f5717311c8e
+   sha256sum: 6929d28744702ead3574484ca02645c457a6fdcd6b43ccc9766d98dc3664e8dc
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.28.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.3.html new file mode 100644 index 000000000..76ef8ec44 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.3.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.28.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.28.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.28 series.

+

What’s new in WPE WebKit 2.28.3?

+
    +
  • Enable kinetic scrolling with async scrolling.
  • +
  • Fix web process hangs on large GitHub pages.
  • +
  • Bubblewrap sandbox should not attempt to bind empty paths.
  • +
  • Fix threading issues in the media player.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.28.3.tar.xz (19.3 MiB)
+   md5sum: 0b3655598f340a5c83cc26423fefcf36
+   sha1sum: ea03d365584ef5e86ca28cec6ca072a4674e9312
+   sha256sum: 2539263a4d73c00abfe0205f54770dc1f6d2b635edbe41e748b507254f21e98b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.28.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.4.html new file mode 100644 index 000000000..7bff760b4 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.28.4.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.28.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.28.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.28 series.

+

What’s new in WPE WebKit 2.28.4?

+
    +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.28.4.tar.xz (19.3 MiB)
+   md5sum: 6ab041f6ebdb2e053981de5980c864e7
+   sha1sum: b31739a86a269eac4ddd5e537cdf954224672450
+   sha256sum: 785d83b99cd45cedb7c4f1f697db773a5a81eb0a42aeeafa3c623053f6fde87a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.29.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.1.html new file mode 100644 index 000000000..b6e9d5533 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.1.html @@ -0,0 +1,320 @@ + + + + + + + + + + + + WPE WebKit 2.29.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.29.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.30 series.

+

What’s new in WPE WebKit 2.29.1?

+
    +
  • Add Intelligent Tracking Prevention (ITP) support.
  • +
  • Add webkit_authentication_request_get_security_origin().
  • +
  • Add support for video formats in <img> elements.
  • +
  • Add API to handle video autoplay policy that now defaults to disallow autoplay videos with audio.
  • +
  • Add API to mute a web view.
  • +
  • Add API to allow applications to handle the HTTP authentication credential storage.
  • +
  • Add API to configure and handle the DOM cache.
  • +
  • Add API to configure and handle Service Worker registrations.
  • +
  • Add a WebKitSettings property to set the media content types requiring hardware support.
  • +
  • Add support for sndio to the Bubblewrap sandbox.
  • +
  • Add support for website data to the existing permission request API.
  • +
  • Add support for rendering many user interface controls (scroll bars, progress bars, spin buttons, menu lists, sliders, etc.)
  • +
  • Add USER_AGENT_BRANDING build option.
  • +
  • Use a mobile User-Agent string on tablets and handheld devices.
  • +
  • Change the cookies accept policy to always when no-third-party is set and ITP is enabled.
  • +
  • Enable kinetic scrolling with async scrolling.
  • +
  • Bubblewrap sandbox should not attempt to bind empty paths.
  • +
  • Fix several race conditions and threading issues in the media player.
  • +
  • Fix web process hangs on large GitHub pages.
  • +
  • Fix a race condition causing a crash in media player.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.29.1.tar.xz (19.8 MiB)
+   md5sum: bf15fb4886a1fafbba06f84797ead8a5
+   sha1sum: 56d690ecdc90b78b284d645f13b870374573660d
+   sha256sum: 016cbff49c9fa976f94075c681df784e83ac1b1338829d3d7b8cdad6b214cb89
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.29.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.2.html new file mode 100644 index 000000000..36290a00b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.2.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.29.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.29.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.30 series.

+

What’s new in WPE WebKit 2.29.2?

+
    +
  • Add support for backdrop filters.
  • +
  • Add support for text-underline-offset and text-decoration-thickness.
  • +
  • Add OpenCDM and AV1 support to media backend.
  • +
  • Add new API to get ITP data summary.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.29.2.tar.xz (19.8 MiB)
+   md5sum: 28734dc4168115f4f1b9e4d43a87fb74
+   sha1sum: effe1da4dce6c681aa9d70131e4f50699bb41def
+   sha256sum: c19650573125468a14faf702851e31af91ff22fdcbd92943abab8e1f6fee0a5a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.29.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.90.html new file mode 100644 index 000000000..7b980af29 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.90.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.29.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.29.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.30 series.

+

What’s new in WPE WebKit 2.29.90?

+
    +
  • Fix font variation settings when font smoothing setting is also present.
  • +
  • Fix argument order for clone syscall seccomp filter on s390x.
  • +
  • Fix a crash when selecting text.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.29.90.tar.xz (20.1 MiB)
+   md5sum: 84601baa0e6d6069369a4f507f33a584
+   sha1sum: f89abf92ce43ce55971b5b24c5cb7129ad19ec7a
+   sha256sum: c8e197ed171486b23a89dca833d166436eecfba0d35e39b76fd570b3d800df4c
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.29.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.91.html new file mode 100644 index 000000000..a8cbc955e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.29.91.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.29.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.29.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.30 series.

+

What’s new in WPE WebKit 2.29.91?

+
    +
  • Enable support for the Notification Web API.
  • +
  • Stop using the Firefox User-Agent quirk for Google Docs.
  • +
  • Fix User-Agent header after a redirect when a new quirk is required.
  • +
  • Fix rendering of the frames timeline panel in the Web Inspector.
  • +
  • Fix display of per-thread CPU usage in the Web Inspector.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.29.91.tar.xz (20.1 MiB)
+   md5sum: 73825416635d06bb033c27c700b1079d
+   sha1sum: 5d0ad8a0929486c8f69557e11d6d6215c8da0150
+   sha256sum: 76c29db290b47508b91d566539abfa3028374a8a7da3cdfc2b9b180ac8b9a290
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.0.html new file mode 100644 index 000000000..73f7b12bf --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.0.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.30.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.30 series.

+

Highlights of the WPE WebKit 2.30.0 release

+
    +
  • Add Intelligent Tracking Prevention (ITP) support.
  • +
  • Add support for CSS backdrop filters.
  • +
  • Add support for the Notification Web API.
  • +
  • Add support for video formats in <img> elements.
  • +
  • Add support for rendering many user interface controls (scroll bars, progress bars, spin buttons, menu lists, sliders, etc.)
  • +
  • Add API to allow applications to handle the HTTP authentication credential storage.
  • +
  • Add API to handle the video autoplay policy, which defaults to disallow autoplaying videos which contain an audio track.
  • +
  • Add API to configure and handle Service Worker registrations.
  • +
  • Add API to mute sound generated by a web view.
  • +
  • Use a mobile User-Agent string on tablets and handheld devices.
  • +
+

Checksums

+
+wpewebkit-2.30.0.tar.xz (20.1 MiB)
+   md5sum: b91b85b645061189765a9455a0539df1
+   sha1sum: 243f2759f6fd06fdaefa84cbfa80e49559fbd14b
+   sha256sum: d1a99383ac3344195d09b4a4256c15dc5269c8585b3d836f43a057e60bb6f460
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.1.html new file mode 100644 index 000000000..8e44b5ff3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.1.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.30.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.1?

+
    +
  • Fix downloads started by an ephemeral web context.
  • +
+

Checksums

+
+wpewebkit-2.30.1.tar.xz (20.1 MiB)
+   md5sum: 251228a6e2917eff90a3eb6e9a7e920d
+   sha1sum: 7f5bdc79d4694ab5644b7fed9bd7311c2cbc988f
+   sha256sum: 78c0135d935b980fc64fbddf1fbaf441920edda4eeb4c16857ee8dc985650c25
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.2.html new file mode 100644 index 000000000..828562a93 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.2.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPE WebKit 2.30.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.2?

+
    +
  • Fix cookies set in WebSocket requests not appearing in the inspector.
  • +
  • Fix scrolling when smooth scrolling is enabled in asynchronous scrolling mode.
  • +
  • Fix WebSocket requests with Same-Site cookies.
  • +
  • Fix TLS certificate information for service workers.
  • +
  • Handle chassis type when its value is quoted.
  • +
  • Fix the build with ENABLE_MEDIA_STREAM enabled and ENABLE_WEB_RTC disabled.
  • +
  • Fix the build with ENABLE_ACCELERATED_2D_CANVAS enabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.30.2.tar.xz (20.1 MiB)
+   md5sum: 5b0fed3333b53dbb36e572935fd54a7b
+   sha1sum: a143723fb77c2ea20bad888b95ccc37a7dd5b375
+   sha256sum: c94925ca2d655c7fc07dbc2d4b7a47a822c7699816a8cca35ed9efd676b5ba86
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.3.html new file mode 100644 index 000000000..aac343a2e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.3.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.30.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.3?

+
    +
  • Add new JavaScriptCore build option USE_64KB_PAGE_BLOCK.
  • +
  • Update Outlook User-Agent quirk.
  • +
  • Fix rendering of CSS backdrop filters with rounded borders.
  • +
  • Fix <iframe> scrolling when asynchronous scrolling is in use.
  • +
  • Fix the build with video support disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.30.3.tar.xz (20.1 MiB)
+   md5sum: 75f6ef1819b182043a25b916272ebec6
+   sha1sum: 2ed723f779513205449e0c5b7c080eb19d635aee
+   sha256sum: f2dfc1a6279810353f601bb9bd0d8ef671b41b38352d679b93d01631c2bf7b4b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.4.html new file mode 100644 index 000000000..e8af9e9cb --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.4.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.30.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.4?

+
    +
  • Fix text data sent with WebSocket when using libsoup older than 2.68.
  • +
  • Fix rendering on the Raspberry Pi 3 using the proprietary GPU driver.
  • +
  • Fix clipping of descendant layers of a mask layer.
  • +
  • Fix the build with ICU 68.1.
  • +
+

Checksums

+
+wpewebkit-2.30.4.tar.xz (20.1 MiB)
+   md5sum: d423a01ffb5be44e6ad59b2cfb9d6eb3
+   sha1sum: 2fdca7b888966ad2ed7d998bef52c9024dae063f
+   sha256sum: 1e521d85cf8cf344b9fd08eabad7a1d18a330fb7862a77eaf78d7d7b10d5f6ef
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.5.html new file mode 100644 index 000000000..b492cef76 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.5.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.30.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.5?

+
    +
  • Fix RunLoop objects leaked in worker threads.
  • +
  • Fix JavaScriptCore AArch64 LLInt build with JIT disabled.
  • +
  • Use Internet Explorer quirk for Google Docs.
  • +
+

Checksums

+
+wpewebkit-2.30.5.tar.xz (20.1 MiB)
+   md5sum: 63a9a7b7f29862ec827a730ba6542e80
+   sha1sum: 33136493672882d56617007d7ce65268cb79bda7
+   sha256sum: 4b577f4f07c34bb5d453d62b7a41d9e937bd3a2827a92dcd6f47c35f27c8359a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.30.6.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.6.html new file mode 100644 index 000000000..7182db8a2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.30.6.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPE WebKit 2.30.6 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.30.6 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.30 series.

+

What’s new in WPE WebKit 2.30.6?

+
    +
  • Update User-Agent quirks again for Google Docs and Google Drive.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.30.6.tar.xz (20.1 MiB)
+   md5sum: e35b31932ad3da6c06736d8f2d347072
+   sha1sum: 25a481e97e463df08fb2c0b0fa5d4299938670ac
+   sha256sum: 893a3098226f116bbb38a665a3053c7d30e3c5dca786b954f9aa38f8c8581468
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.31.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.1.html new file mode 100644 index 000000000..055292a26 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.1.html @@ -0,0 +1,326 @@ + + + + + + + + + + + + WPE WebKit 2.31.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.31.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.32 series.

+

What’s new in WPE WebKit 2.31.1?

+
    +
  • Removed support for NPAPI plugins.
  • +
  • Enabled the web process cache when PSON is enabled too.
  • +
  • TLS errors and the proxy settings APIs have been moved from WebKitContext +to WebKitWebsiteDataManager.
  • +
  • Added new API to remove individual scripts and style sheets using +WebKitUserContentManager.
  • +
  • Fixed application of the system font scaling factor.
  • +
  • Added support for showing information about main loop frames in the web +inspector.
  • +
  • Added internal audio rendering support. The WebProcess can now maintain a +single connection to the system audio service and perform audio mixing +internally. For the time being this has to be enabled at runtime through +the WEBKIT_GST_ENABLE_AUDIO_MIXER=1 environment variable.
  • +
  • Switched GStreamer initialization to be on-demand and mostly contained to +the WebProcess. GStreamer used to be initialized unconditionally once from +the UIProcess and once from the WebProcess. GStreamer is now used mostly only +from the WebProcess, even for probing audio and video capture devices. Users +of the webkit_web_view_can_show_mime_type() API will still trigger GStreamer +initialization in the UIProcess, though.
  • +
  • Changed the image decoder for videos to use decodebin3.
  • +
  • Added support for sending WebAudio to MediaStream.
  • +
  • Added multi-channel (>2) support for AudioFileReader and the WebAudio renderer.
  • +
  • Added support for audio worklets.
  • +
  • Added optional support for native formats rendering.
  • +
  • Added Opus support for the Thunder CDM.
  • +
  • Added common-encryption support for CMAF in Thunder CDM.
  • +
  • MSE/EME/WebAudio and general media playback bug fixes.
  • +
+

Checksums

+
+wpewebkit-2.31.1.tar.xz (20.9 MiB)
+   md5sum: 58b278f1a0dbe11a9aae941890d2bfd5
+   sha1sum: 9c73673d8b6e4482a8d6c5748a1b373c8ed41f33
+   sha256sum: c503a39d2fbd7d102a29664939e2c6f55d4a7281d7ecada8c508eef451889f74
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.31.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.90.html new file mode 100644 index 000000000..b2c781700 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.90.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.31.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.31.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.32 series.

+

What’s new in WPE WebKit 2.31.90?

+
    +
  • Add permission request API for MediaKeySystem access.
  • +
  • Fix rendering when using opacity filters on hardware accelerated layers.
  • +
  • Fix flatpak-spawn subsandbox to not clear environment variables.
  • +
  • Ensure a URI scheme handler can’t be registered multiple times.
  • +
  • Fix several crashes and rendering issues.
  • +
  • The minimum required GStreamer version is now 1.14.
  • +
  • CEA-608 closed captions support (requires WEBKIT_GST_USE_PLAYBIN3=1 environment variable).
  • +
  • Advertise CBCS decryption and VP9 support in Thunder.
  • +
  • Advertise DASH as supported in the media player.
  • +
  • Improved support for playbin3.
  • +
+

Checksums

+
+wpewebkit-2.31.90.tar.xz (21.0 MiB)
+   md5sum: 08b33357ebba570a41dbadb43fc8a2ca
+   sha1sum: 552aa054ee9f4f269e9db8e23cf004bbefc8a2bc
+   sha256sum: 8011c741fd00f2d8e704ece629d2d7f58b600b23bc76d7045e3a0e36506e6be3
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.31.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.91.html new file mode 100644 index 000000000..74b46efac --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.31.91.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.31.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.31.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.32 series.

+

What’s new in WPE WebKit 2.31.91?

+
    +
  • Make WebKitSecurityOrigin a simple data store for <protocol, host, port> and deprecate webkit_security_origin_is_opaque().
  • +
  • Fix user agent again to work on several Google websites.
  • +
  • Fix web view URL on web process termination signals.
  • +
  • Fix preferred language overrides sent to the web process.
  • +
  • Fix the build on i386.
  • +
+

Checksums

+
+wpewebkit-2.31.91.tar.xz (21.0 MiB)
+   md5sum: fd7268a3078018440645c6362c3fab31
+   sha1sum: 08a9687234eb5f9e7c3ff63b80d96c3fa5bb2cb0
+   sha256sum: e5bea1323ad810533bcb7ec7918b4bc2d342b0ea2a2fa61a3063cdd019bcd3f0
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.32.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.0.html new file mode 100644 index 000000000..b61cfa059 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.0.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + WPE WebKit 2.32.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.32.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.32 series.

+

Highlights of the WPE WebKit 2.32.0 release

+
    +
  • Removed support for NPAPI plugins.
  • +
  • New permission request API for MediaKeySystem access.
  • +
  • New API to remove individual scripts and style sheets using WebKitUserContentManager.
  • +
  • Fixed application of the system font scaling factor.
  • +
  • Web inspector now shows detailed information about main loop frames.
  • +
  • The minimum required GStreamer version is now 1.14.
  • +
  • The GStreamer runtime is now initialized only when required.
  • +
  • Improved platform support for WebAudio (WebAudio→MediaStream, Worklet, Multi-channel).
  • +
  • Support for hardware-accelerated video rendering on i.MX8 platforms (using the NXP driver).
  • +
+

For more details about all the changes included in WPE WebKit 2.32 see the +NEWS file that is included in the release tarball.

+

Thanks to all the contributors who made this release possible!

+

Checksums

+
+wpewebkit-2.32.0.tar.xz (20.9 MiB)
+   md5sum: 5e20eb2cbb045d7bd460df9c7730abea
+   sha1sum: 624ced96b0877de7d6a087f04e49d0024e3aa4f8
+   sha256sum: 6cfb18af9a180eeffffcaf34fea68d867ee59f633d811ced92bbead2d184b6ea
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.32.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.1.html new file mode 100644 index 000000000..4bff26a26 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.1.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WPE WebKit 2.32.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.32.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.32 series.

+

What’s new in WPE WebKit 2.32.1?

+
    +
  • Support building against the Musl C library.
  • +
  • Support building against ICU version 69 or newer.
  • +
  • Improve handling of Media Capture devices.
  • +
  • Improve WebAudio playback.
  • +
  • Improve video orientation handling.
  • +
  • Improve seeking support for MSE playback.
  • +
  • Improve flush support in EME decryptors.
  • +
  • Fix HTTP status codes for requests done through a custom URI handler.
  • +
  • Fix the Bubblewrap sandbox in certain 32-bit systems.
  • +
  • Fix inconsistencies between the WebKitWebView.is-muted property state +and values returned by webkit_web_view_is_playing_audio().
  • +
  • Fix the build with ENABLE_VIDEO=OFF.
  • +
  • Fix the build of the Qt QML WPEView plug-in.
  • +
  • Fix wrong timestamps for long-lived cookies.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.32.1.tar.xz (20.9 MiB)
+   md5sum: 1dd3f56b8eba16266166d757acb979fc
+   sha1sum: c5b3a48d886375a6982dd2dc5c9cc2f92f5a9690
+   sha256sum: 7b6b39a12ccf3f84da4cc6ac59e02fbe328f7476eaeb9c23de9b9288c2c2f39c
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.32.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.2.html new file mode 100644 index 000000000..d75948ea3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.2.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPE WebKit 2.32.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.32.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.32 series.

+

What’s new in WPE WebKit 2.32.2?

+
    +
  • Improve the touch gesture touch controller.
  • +
  • Fix handling of wheel events for devices which produce axis events.
  • +
  • Fix kinetic scrolling on touchpad with async scrolling off.
  • +
  • Fix a crash on empty drag operation in X11.
  • +
  • Handle null native surface for for surfaceless rendering.
  • +
  • Fix JavaScriptCore crash on 32-bit big endian systems.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.32.2.tar.xz (20.9 MiB)
+   md5sum: a6624736150045a54037457416820b19
+   sha1sum: 7b41a49f97b4cb458b6896623a02f4861cbcf728
+   sha256sum: 2f0ebef0395a5a9e37a8609093f86140f74504f9954f97799b95f5dfbe186739
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.32.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.3.html new file mode 100644 index 000000000..9f77cda35 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.3.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.32.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.32.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.32 series.

+

What’s new in WPE WebKit 2.32.3?

+
    +
  • Properly set the cookies settings after a network process crash.
  • +
  • Fix accessibility tree after a cross site navigation with PSON enabled.
  • +
  • Ensure WebKitScriptWorld::window-object-cleared signal is always emitted.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.32.3.tar.xz (20.9 MiB)
+   md5sum: 1e34412c50fe8d1ff084738477ecad7e
+   sha1sum: 157344d8febfc89d6731404c30857f122f220d6e
+   sha256sum: 859bd1bbe51026aecfb2b6f5c8c024d88fb69ac6fcdc74c788c9fbe9499d740d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.32.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.4.html new file mode 100644 index 000000000..1adaa0d23 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.32.4.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPE WebKit 2.32.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.32.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.32 series.

+

What’s new in WPE WebKit 2.32.4?

+
    +
  • Do not append .asc extension to downloaded text/plain files.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.32.4.tar.xz (20.9 MiB)
+   md5sum: 94ca1cc3f7b2de8b96c59d6e59cafcd0
+   sha1sum: 19b8ebdbfef193ca50f7625703d871db87624f86
+   sha256sum: 381f1422cbc319db1aa42dda48de39590ed90ac3bec6b81ec83f3f2cae5c3eeb
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.33.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.1.html new file mode 100644 index 000000000..a6df758d1 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.1.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPE WebKit 2.33.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.33.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.34 series.

+

What’s new in WPE WebKit 2.33.1?

+
    +
  • Add support for CSS Scroll Snap.
  • +
  • Add basic support for ICC color management.
  • +
  • Build with libsoup3 by default.
  • +
  • Add new API to handle web process unresponsiveness.
  • +
  • Add support for link preconnect when building with libsoup3.
  • +
  • Refactored Media Source Extensions (MSE) platform code to increase +stability and ease adding more features in the futures.
  • +
+

Checksums

+
+wpewebkit-2.33.1.tar.xz (22.3 MiB)
+   md5sum: 23f8813320d27dba0d05f8a19de31e94
+   sha1sum: 69e92f68f9053254b61dae6b10b69d2c926afa9d
+   sha256sum: 113795bdfc25f07ef92a088d146cfea217740f118d46cb6eb181451aac1d69fd
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.33.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.2.html new file mode 100644 index 000000000..9427bb93d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.2.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPE WebKit 2.33.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.33.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.34 series.

+

What’s new in WPE WebKit 2.33.2?

+
    +
  • HTTP/2 support when building with libsoup3.
  • +
  • Add API to disable CORS on a web view for particular domains.
  • +
  • Remove dependency on the GStreamer glvideoflip and videoflip elements.
  • +
  • Support building with the uClibc C standard library.
  • +
  • Ensure WebKitScriptWorld::window-object-cleared signal is always emitted.
  • +
  • Fix rendering of VP9 videos with transparency.
  • +
  • Fix handling of elements with position:sticky in RTL layers with scroll overflow.
  • +
  • Fix handling of 2D axis input events.
  • +
+

Checksums

+
+wpewebkit-2.33.2.tar.xz (22.3 MiB)
+   md5sum: b971872001118137e5846aa2600e4345
+   sha1sum: 2a720938173f6e7354dd17fad50ea18a9256dd20
+   sha256sum: 0214db68d694872e1636f1aa74b7c9e727657a03301e05967437650b15fa7ba7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.33.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.90.html new file mode 100644 index 000000000..7b3506fe2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.33.90.html @@ -0,0 +1,318 @@ + + + + + + + + + + + + WPE WebKit 2.33.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.33.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.34 series.

+

What’s new in WPE WebKit 2.33.90?

+
    +
  • Add new API to access/modify capture devices states.
  • +
  • Add new API to configure the memory pressure handler.
  • +
  • Add multi-track support to media backend.
  • +
  • Add support for A420 compositing in the media player.
  • +
  • Add support for authentication using client side certificates.
  • +
  • Add support for dark scrollbars.
  • +
  • Add support for display capture.
  • +
  • Add support for drawing the scrollbars corner.
  • +
  • Add support for the Fullscreen API, which needs libwpe 1.11.1 or newer.
  • +
  • Add support for the color-schemes CSS property.
  • +
  • Allow to opt-out of GL rendering at runtime for the media player.
  • +
  • Avoid strong alias computations in font fallback code.
  • +
  • Fix cookies configuration after a network process crash.
  • +
  • Fix deadlock tearing down pipeline when using fallback sink.
  • +
  • Fix rendering of elliptic radial gradients.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Fix touchscreen navigation swipe when the page scrolls horizontally.
  • +
  • Improve pinch to zoom gesture in accelerated compositing mode.
  • +
  • Show TLS protocol version and cipher suite in the inspector when building with libsoup3.
  • +
+

Checksums

+
+wpewebkit-2.33.90.tar.xz (22.6 MiB)
+   md5sum: c1694bfab066ce74a5ca8151cbd52ced
+   sha1sum: 12348322dc4fadb48a8b55a0efd482977a8aeb79
+   sha256sum: 8ffa2ab66708aa6f07fc9e2c56f4950184555b6265ee3dc927ca4e1a900d1166
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.0.html new file mode 100644 index 000000000..c10c234bd --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.0.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WPE WebKit 2.34.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.34 series.

+

Highlights of the WPE WebKit 2.34.0 release

+
    +
  • HTTP/2 support when building with libsoup3.
  • +
  • Add support for the Fullscreen API, which needs libwpe 1.11.1 or newer.
  • +
  • Add support for CSS Scroll Snap.
  • +
  • Add support for display capture.
  • +
  • Add basic support for ICC color management.
  • +
  • Add support for the color-schemes CSS property.
  • +
  • Add support for link preconnect when building with libsoup3.
  • +
  • Add support for authentication using client side certificates.
  • +
  • Add multi-track support to media backend.
  • +
  • Add new API to handle web process unresponsiveness.
  • +
  • Add API to disable CORS on a web view for particular domains.
  • +
  • Add new API to access/modify capture devices states.
  • +
  • Add new API to configure the memory pressure handler.
  • +
  • Allow to opt-out of GL rendering at runtime for the media player.
  • +
  • Support building with the uClibc C standard library.
  • +
+

Checksums

+
+wpewebkit-2.34.0.tar.xz (22.5 MiB)
+   md5sum: de57b0a8bcf72337d4b66a1f8d9a3333
+   sha1sum: 921493a35865c78b3a6896d34ae3bd5d6e4184dc
+   sha256sum: 64c962197854c7a8a4129eebf11b745abf94bbfee5ddf4202354e46e1ca5571d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.1.html new file mode 100644 index 000000000..912fc90a5 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.1.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.34.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.1?

+
    +
  • Update User-Agent browser versions.
  • +
  • Fix a crash when loading videos on Reddit.
  • +
  • Fix file type detection when application calls g_desktop_app_info_set_as_default_for_extension() passing HTML.
  • +
+

Checksums

+
+wpewebkit-2.34.1.tar.xz (22.5 MiB)
+   md5sum: 915e583b0e7e82efa155cbce917d6319
+   sha1sum: 452081b6df9d079f26d22bd0dca9e90f87943089
+   sha256sum: cb336986341be9c3a9b1ca2c18de0d29d90ae4e77b9967a6f6879597e7a969f7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.2.html new file mode 100644 index 000000000..ee248e20d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.2.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPE WebKit 2.34.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.2?

+
    +
  • Fix scrolling issues when pressing Home and PgDown keys.
  • +
  • Fix the build with video disabled.
  • +
+

Checksums

+
+wpewebkit-2.34.2.tar.xz (22.5 MiB)
+   md5sum: b26f07bc809d9fd3e54e815c22312f15
+   sha1sum: 4200ef87a4e1eb1921f0f40779742381598e1429
+   sha256sum: b1a3733c2d486c4da27f9636ccc39947da7d84258cd7a24a6fb0b842c9595c0b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.3.html new file mode 100644 index 000000000..111230c75 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.3.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.34.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.3?

+
    +
  • Make audio tools (like mixers) display the actual name of the application +producing sound, instead of a generic one.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.34.3.tar.xz (22.5 MiB)
+   md5sum: f8eb92825bf6477fb04ca017926c2458
+   sha1sum: a72f507dfd6d4d579b2e6c939d7c171c2cfb1d92
+   sha256sum: c35de4bfce35c81cbd6c1da27879b4ea33e20bd51d750ce296a4d100d45f40fc
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.4.html new file mode 100644 index 000000000..1d2ac0086 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.4.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.34.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.4?

+
    +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.34.4.tar.xz (22.5 MiB)
+   md5sum: b0f7dcb18acfa94cfb42fea0fe10fb0d
+   sha1sum: de58481b43a6dba054097f619ee486f7889d7a56
+   sha256sum: 3653ba42dbe22a4e6751b3f7cab8d2ebb2db5b7654c5d135a2f9bedf94778cee
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.5.html new file mode 100644 index 000000000..99930bb5e --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.5.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.34.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.5?

+
    +
  • Improve VP8 codec selection when using GStreamer 1.20.
  • +
  • Fix connecting to the accessibility bus when using the Bubblewrap sandbox.
  • +
  • Fix the build with recent toolchains based on GCC 12 and on older ones as included e.g. in Ubuntu 18.04.
  • +
  • Fix the build with ICU 60, version 61 is no longer required.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.34.5.tar.xz (22.5 MiB)
+   md5sum: 27a8b9714868dd890d4a54f4ae4cf2b1
+   sha1sum: 63259a958a380cc8c75a4f51dada630f4fe5dc1e
+   sha256sum: 0ef187cdcb83dbe9e7b2870f43543b68766ea3535fe8b056866e8e1d3ef02bc1
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.6.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.6.html new file mode 100644 index 000000000..839c8c401 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.6.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.34.6 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.6 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.6?

+
    +
  • Fix accessibility not working when the Bubblewrap sandbox is enabled.
  • +
  • Fix the build in a number of situations where the main OpenGL library is +not called libGL or libgl, as is the case on systems that use +libglvnd.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.34.6.tar.xz (22.5 MiB)
+   md5sum: c9705270b342474cca28cf51632ccbbe
+   sha1sum: 44ae95de1b5ebf0a2b0ea3630b3677153c597402
+   sha256sum: 301e895c8ed08ce7dccef3192b972f2ccfc2020463244c64069a636f2b05265f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.34.7.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.7.html new file mode 100644 index 000000000..9338cae02 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.34.7.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.34.7 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.34.7 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.34 series.

+

What’s new in WPE WebKit 2.34.7?

+
    +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.34.7.tar.xz (22.6 MiB)
+   md5sum: bfde1baded709a15da76fcc8e692174b
+   sha1sum: a88d1f1fdedef18a95b00a283d2b4a0c59dc25dc
+   sha256sum: 092659bf43e5bc6f2a5a7b8e612a39da5da56a04f41eacc716638f53a27c3412
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.35.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.35.1.html new file mode 100644 index 000000000..ed2e830e8 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.35.1.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + WPE WebKit 2.35.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.35.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.36 series.

+

What’s new in WPE WebKit 2.35.1?

+
    +
  • Make user interactive threads (event handler, scrolling, etc.) real time +on Linux.
  • +
  • Add new API to set HTTP response information to custom URI schemes.
  • +
  • Add support for the MediaSession API.
  • +
  • Add initial support, disabled by default at build time, for the JPEG-XL +image format.
  • +
  • Make the WPE Qt API use only public WPE library symbols, which makes +it possible to build it separately from the rest of WebKit.
  • +
  • Fix jsc_value_object_define_property_accessor() to work with objects +not having a wrapped instance.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.35.1.tar.xz (23.0 MiB)
+   md5sum: af4425cc560f3e2aae0294e4060aa2b6
+   sha1sum: eaa8e7bdcb7e15c89c0b7f3bd977cb9e0586307c
+   sha256sum: 9de134d99e4311dde83ad117cdb611dc533b49b0fa0113a2ec2c55fc10b76f29
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.35.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.35.90.html new file mode 100644 index 000000000..0228cdfbe --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.35.90.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + WPE WebKit 2.35.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.35.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.36 series.

+

What’s new in WPE WebKit 2.35.90?

+
    +
  • Fix scrolling with the mouse wheel on sites using overscroll-behavior.
  • +
  • Suspend web processes after some time in the process cache.
  • +
  • Ensure EGL displays are terminated before web process exits.
  • +
  • Deinitialize GStreamer before the web process exits.
  • +
  • Make fonts under XDG_DATA_DIRS available in the web process sanbox.
  • +
  • Canonicalize paths passed to the Bubblewrap launcher.
  • +
  • The WebKitSettings:enable-developer-extras option is no longer enabled by default.
  • +
  • Allow tweaking media source buffering with the MSE_MAX_BUFFER_SIZE, and configure +regular playback on-disk buffering with WPE_SHELL_DISABLE_MEDIA_DISK_CACHE and +WPE_SHELL_MEDIA_DISK_CACHE_PATH environment variables.
  • +
  • Add new accessibility implementation using ATSPI D-Bus interfaces instead of ATK.
  • +
  • Add support for requestVideoFrameCallback().
  • +
  • Fix a crash at startup when the Bubblewrap sandbox is enabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.35.90.tar.xz (25.8 MiB)
+   md5sum: 6a3b5462dd1f7fdd18f5f776259ff04b
+   sha1sum: 719bca6dee53e18f336cfb24058445253bc6bedc
+   sha256sum: 5bcd55923b7c425ea8f04c6733a33706410f1508b912d6b676e681459b703d76
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.0.html new file mode 100644 index 000000000..c4b9bfe5c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.0.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + WPE WebKit 2.36.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.36 series.

+

Highlights of the WPE WebKit 2.36.0 release

+
    +
  • New accessibility implementation using ATSPI D-Bus interfaces instead of ATK.
  • +
  • Support for requestVideoFrameCallback().
  • +
  • Support for the MediaSession API.
  • +
  • New WebKitURISchemeResponse API to set HTTP response information to custom URI schemes.
  • +
  • Make user interactive threads (event handler, scrolling, …) real time on Linux.
  • +
  • The WebKitSettings:enable-developer-extras option is no longer enabled by default.
  • +
  • The WPE Qt API can now be built separately, out from the WebKit source tree.
  • +
+

Checksums

+
+wpewebkit-2.36.0.tar.xz (24.5 MiB)
+   md5sum: b7b951cd7f6eb4a8585338505ce71234
+   sha1sum: 904629a9ce3a4ab67d47315b008dc3152d504205
+   sha256sum: 096aa9f87d9bfbfc80f558388a86721cdcc508b42ddef10bd270aec9aee96d5a
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.1.html new file mode 100644 index 000000000..1ab46c97b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.1.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + WPE WebKit 2.36.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.1?

+
    +
  • Fix the build with accessibility disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.1.tar.xz (24.5 MiB)
+   md5sum: 7ba1c7fd0f67891ad137d11cac12f7a9
+   sha1sum: 0918a4daded01f42e65ec02a69f21cd6705311db
+   sha256sum: ec83d8b2f8c3479ce9950d69440f3b9876ab70200fe6f4e07686054a0cba5723
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.2.html new file mode 100644 index 000000000..008cbf608 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.2.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.36.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.2?

+
    +
  • Fix some pages showing empty content boxes when using threaded rendering.
  • +
  • Fix the build with accessibility disabled.
  • +
  • Fix the build with newer Ruby versions.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.2.tar.xz (24.5 MiB)
+   md5sum: bcfb465ae085835ae96c68fddc85ca44
+   sha1sum: 1a5a6b7b5e94f4ea7e3462d6bdb5de7efa678f74
+   sha256sum: 959519562701e2005f2767a62e85977d6c3e65858709b376c89d8e33502febb9
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.3.html new file mode 100644 index 000000000..bcf714ce2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.3.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.36.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.3?

+
    +
  • Support capturing already encoded video streams, which takes advantage +of encoding done in hardware by devices which support this feature.
  • +
  • Avoid using experimental GStreamer elements for video demuxing.
  • +
  • Avoid using the legacy GStreamer VA-API decoding plug-ins, which often +cause rendering issues and are not much maintained. Their usage can be +re-enabled setting WEBKIT_GST_ENABLE_LEGACY_VAAPI=1 in the environment.
  • +
  • Fix playback of YouTube streams which use dynamic ad insertion.
  • +
  • Fix display capture with Pipewire.
  • +
  • Fix the build without the X11 target when X11 headers are not present.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.3.tar.xz (24.6 MiB)
+   md5sum: 8bc53f86a3489da31fdbb581e1b87f7a
+   sha1sum: 44a3d99ae48481917ddc478c5f91e6a4faa21ff5
+   sha256sum: 66275debca7497daff3a7826734cd56262a807adb76c5dccdf257c89968c2fc8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.4.html new file mode 100644 index 000000000..835570cc9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.4.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.36.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.4?

+
    +
  • Fix the new ATSPI accessibility implementation to add the missing Collection interface for the loaded document.
  • +
  • Fix the MediaSession implementation to make the MPRIS object names more sandbox friendly, which plays better with Flatpak and WebKit’s own Bubblewrap-based sandboxing.
  • +
  • Fix leaked Web Processes in some particular situations.
  • +
  • Fix the build with media capture support enabled.
  • +
  • Fix cross-compilation when targeting 64-bit ARM.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.4.tar.xz (24.6 MiB)
+   md5sum: ba8e5f5444fd50f53906a7376b25bb26
+   sha1sum: 91259642da6fe55446c3352eeeafdaa188fc14bd
+   sha256sum: 307a3bedf5d4299a861f773f631c39a44c3e6276c3af37f7cbefaed2c8d7c021
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.5.html new file mode 100644 index 000000000..66a2f8282 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.5.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.36.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.5?

+
    +
  • Add support for PAC proxy in the WebDriver implementation.
  • +
  • Fix video playback when loaded through custom URIs.
  • +
  • Fix LTO builds with GCC.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.5.tar.xz (24.6 MiB)
+   md5sum: 99b9b0c3c8757edf03ddf550bea448e2
+   sha1sum: d7deb766d1ff48b7f9d685fcd67ccc23e2962288
+   sha256sum: f2461d533cd3820ea1855e2c8b0b0624b39add1389dc3ac09c2f27891a7a8caa
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.6.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.6.html new file mode 100644 index 000000000..7b5f09e1d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.6.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + WPE WebKit 2.36.6 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.6 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.6?

+
    +
  • Fix handling of touchpad scrolling on GTK4 builds.
  • +
  • Fix WPE WebKit not allowing to be used from non-main threads.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.6.tar.xz (24.6 MiB)
+   md5sum: db3afcb318c98fbe09c0a08449772fd2
+   sha1sum: 29a777d9db75f2b415473cf72cd1e52bf3f993ee
+   sha256sum: e98a4eae2464ffaf4e5b53be08b9ae6386db511015c8002918b824d29f05d58f
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.7.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.7.html new file mode 100644 index 000000000..ac842ea41 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.7.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.36.7 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.7 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.7?

+
    +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.7.tar.xz (24.6 MiB)
+   md5sum: a9f8d521d8171292aab842d3e8ba227e
+   sha1sum: e9255b3592bbaac8b20af03cafa31cedfb0b4898
+   sha256sum: f3747d72ffc562ad0cfb6218fdf6d897c78c4bdbf5618e0fa26906fba52b95c9
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.36.8.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.8.html new file mode 100644 index 000000000..e41b3f672 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.36.8.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.36.8 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.36.8 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.36 series.

+

What’s new in WPE WebKit 2.36.8?

+
    +
  • Fix jumpy elements when scrolling GitLab and other web sites.
  • +
  • Fix WebKitWebView:web-process-terminated signal not being emitted +for the first web view when sandboxing is enabled.
  • +
  • Fix kinetic scrolling with elements that use overflow scrolling.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.36.8.tar.xz (24.6 MiB)
+   md5sum: 939dc646bb6652fde9a5b6512c17fc58
+   sha1sum: f45936c578f7dcfbb6064e87da6c098efe093e68
+   sha256sum: 8d42a349c910b2d0961b8d34fecef29cec3d21e3af5977346c90026692dc75eb
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.37.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.1.html new file mode 100644 index 000000000..13e45d660 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.1.html @@ -0,0 +1,316 @@ + + + + + + + + + + + + WPE WebKit 2.37.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.37.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.38 series.

+

What’s new in WPE WebKit 2.37.1?

+
    +
  • Add initial WebRTC implementation using GstWebRTC if GStreamer 1.20 is available, disabled by default via web view settings.
  • +
  • Add new API to set WebView’s Content-Security-Policy, for web extensions support.
  • +
  • Add new API to run asynchronous JavaScript functions.
  • +
  • Expose typed arrays in the JavaScriptCore GLib API.
  • +
  • Add support for displaying PDF documents using PDF.js.
  • +
  • Show font name and font variant settings in the inspector.
  • +
  • MediaSession is enabled by default, allowing remote media control using MPRIS.
  • +
  • Modernized media controls UI.
  • +
  • Add support for Google Dynamic Ad Insertion (DAI).
  • +
  • Add support for capturing encoded video streams from capture devices (e.g. webcams.)
  • +
  • Make it possible to use the remote inspector from other browsers using the WEBKIT_INSPECTOR_HTTP_SERVER environment variable.
  • +
  • Add support for IPv6 in the remote inspector.
  • +
  • Update form element style to match libadwaita.
  • +
  • Fix canvas animations and images with threaded rendering enabled.
  • +
  • Switch to use gi-docgen for API documentation instead of gtk-doc.
  • +
  • Remove the ATK accessibility implementation, which has been replaced by direct usage of the AT-SPI D-Bus interfaces.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.37.1.tar.xz (29.0 MiB)
+   md5sum: a44cf35f7b6f8e577f51c296e94aae2a
+   sha1sum: 4f31d83fd9d6f66cd04f745b633e541ecb93b51d
+   sha256sum: eb07b54190827ea860089fc711358658d952bcc62e36bc9bfa12dcfda9c21649
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.37.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.90.html new file mode 100644 index 000000000..3f428a8e9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.90.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPE WebKit 2.37.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.37.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.38 series.

+

What’s new in WPE WebKit 2.37.90?

+
    +
  • Remove the libnotify dependency.
  • +
  • Add support for generating crash reports using +Breakpad
  • +
  • Add support for service worker notifications.
  • +
  • Add support for loading notification icons.
  • +
  • Add support for PAC proxy in the WebDriver implementation.
  • +
  • Fix the build with USE_SYSTEM_MALLOC=ON.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.37.90.tar.xz (29.1 MiB)
+   md5sum: 0fff92b923b422b7309019db6ba62ca5
+   sha1sum: 326dc99a594132bdcd56d0a3133b853cfdc6b2cd
+   sha256sum: e944f68958ee0bfd5dbb342179c3d9178a7e388a59c4e1ea8e98b7337ecf12f7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.37.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.91.html new file mode 100644 index 000000000..3ac3c00c3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.37.91.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.37.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.37.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.38 series.

+

What’s new in WPE WebKit 2.37.91?

+
    +
  • Cache and reuse image-based backing stores to improve memory consumption.
  • +
  • Deprecate the WebKitSettings.enable-frame-flattening setting because the +functionality will be removed in 2.40.
  • +
  • Fix deadlock when disposing player while handling rotation tag.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.37.91.tar.xz (29.1 MiB)
+   md5sum: 59f8570a7f08ff2f86e59a44ec413c2e
+   sha1sum: a8fc283f60f2cd0d1dd56a3ee5acfa1d3934e531
+   sha256sum: 0e7e907367366797f657c4ba793988b15e6c5fff747a449521ea264c55f6d614
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.0.html new file mode 100644 index 000000000..43be644d4 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.0.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + WPE WebKit 2.38.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.38 series.

+

Highlights of the WPE WebKit 2.38.0 Release

+
    +
  • New media controls user interface style.
  • +
  • New API to set the web view’s default Content-Security-Policy, which can +be used to implement support for web extensions.
  • +
  • New API to run asynchronous JavaScript functions.
  • +
  • New JavaScriptCore GLib API for typed arrays.
  • +
  • Support for using the remote inspector from other browsers, using the +WEBKIT_INSPECTOR_HTTP_SERVER environment variable.
  • +
  • MediaSession is now enabled by default, allowing remote +media control using the MPRIS D-Bus API.
  • +
  • Add support for displaying PDF documents using PDF.js.
  • +
  • Add support for generating crash reports using Breakpad.
  • +
  • The libnotify dependency has been removed.
  • +
+

Checksums

+
+wpewebkit-2.38.0.tar.xz (29.1 MiB)
+   md5sum: e0e6b98c86351c39e41da475afc50780
+   sha1sum: 66e6dd1c285a21ce50370fb4d60332838d801663
+   sha256sum: e653e12eca63e6371c06d4cd9efcd5492db67f7d9ef324fd5d8668b1151e72b2
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.1.html new file mode 100644 index 000000000..d823a6282 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.1.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + WPE WebKit 2.38.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.1?

+
    +
  • Make xdg-dbus-proxy work if host session bus address is an abstract socket.
  • +
  • Use a single xdg-dbus-proxy process when sandbox is enabled.
  • +
  • Fix high resolution video playback due to unimplemented changeType operation.
  • +
  • Ensure GSubprocess uses posix_spawn() again and inherit file descriptors.
  • +
  • Fix player stucking in buffering (paused) state for progressive streaming.
  • +
  • Do not try to preconnect on link click when link preconnect setting is disabled.
  • +
  • Fix close status code returned when the client closes a WebSocket in some cases.
  • +
  • Fix media player duration calculation.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.1.tar.xz (29.7 MiB)
+   md5sum: c3a6e2c74543a4dd54bf0ca4879886c0
+   sha1sum: bf7367472d8cbe2dd1a36e6b57ac6bc2ce7fbe2a
+   sha256sum: bfa913aa60c39659983cd906c10a97b2cef1ae0c0574c89ed43dae2a35fefc00
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.2.html new file mode 100644 index 000000000..24d21687d --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.2.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.38.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.2?

+
    +
  • Fix scrolling issues in some sites having fixed background.
  • +
  • Fix prolonged buffering during progressive live playback.
  • +
  • Fix the build with accessibility disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.2.tar.xz (29.7 MiB)
+   md5sum: 451a450d64a45f2965d3c09792c63466
+   sha1sum: 3bb8482562f3689b81c85936846af456620395ee
+   sha256sum: 5ce5ac6d5cb6c13469f52d2ece34b302524ff59caf05ecf0f7c62e12c48df422
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.3.html new file mode 100644 index 000000000..38cd3e5a3 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.3.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.38.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.3?

+
    +
  • Fix runtime critical warnings from media player.
  • +
  • Fix network process crash when fetching website data on ephemeral session.
  • +
  • Fix the build with Ruby 3.2.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.3.tar.xz (29.7 MiB)
+   md5sum: 60f79ff8dc68280f756963af23b67d6d
+   sha1sum: de15119a0dc29776d3a11fca1df4238b471f960f
+   sha256sum: 1dd9075eec7253a1b0d038a73f92ddbb9174394e6a7527ec07b4464fa6290498
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.4.html new file mode 100644 index 000000000..a8259e509 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.4.html @@ -0,0 +1,316 @@ + + + + + + + + + + + + WPE WebKit 2.38.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.4?

+
    +
  • Improve GStreamer multimedia playback across the board with improved +codec selection logic, better handling of latency, and improving +frame discard to avoid audio/video desynchronization, among other +fixes.
  • +
  • Disable HLS media playback by default, which makes web sites use MSE +instead. If needed WEBKIT_GST_ENABLE_HLS_SUPPORT=1 can be set in the +environment to enable it back.
  • +
  • Fix MediaSession API not showing artwork images.
  • +
  • Fix MediaSession MPRIS usage when running inside a Flatpak sandbox.
  • +
  • Fix input element controls to correctly scale when applying a zoom +factor different than the default.
  • +
  • Fix leakage of Web processes in certain situations.
  • +
  • Fix the injected bundle not being found when running inside a sandbox.
  • +
  • Fix the build with ENABLE_INTROSPECTION when cross-compiling.
  • +
  • FIx the build with ENABLE_WEBGL disabled.
  • +
  • Fix the build with GStreamer-based WebRTC enabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.4.tar.xz (29.1 MiB)
+   md5sum: 1c947ef5b73049fc6c102c92013009bf
+   sha1sum: 7fe9a7d98401256b0c9872f1c2b702e56840cbd3
+   sha256sum: 8c1bc113ef151fb0be2640824d323bc755dc97295ab7a1bc05e7ec589937a07b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.5.html new file mode 100644 index 000000000..47ba7d36f --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.5.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.38.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.5?

+
    +
  • Fix large memory allocation when uploading content.
  • +
  • Fix scrolling after a history navigation with PSON enabled.
  • +
  • Always update the active URI of WebKitFrame.
  • +
  • Fix the build with the external hole-punch media playback enabled.
  • +
  • Fix the build on Ubuntu 20.04.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.5.tar.xz (29.1 MiB)
+   md5sum: 73f7abd0c1cc808032869f72602166e3
+   sha1sum: 3f10a04758eeb349f63f841aff765dae25bcde1b
+   sha256sum: ff00fd3d0a4c6d551850a78a7dfe4883b6b7ebd93c5549e1121b2f43d3ac1661
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.38.6.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.6.html new file mode 100644 index 000000000..392635f58 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.38.6.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + WPE WebKit 2.38.6 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.38.6 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.38 series.

+

What’s new in WPE WebKit 2.38.6?

+
    +
  • Support :has() CSS selectors in content filters.
  • +
  • Apply basic font properties as font variation settings.
  • +
  • The Bubblewrap sandbox no longer requires setting an application +identifier via GApplication to operate correctly. Using GApplication +is still recommended, but optional.
  • +
  • Improvements to the GStreamer multimedia playback, in particular +around MSE, WebRTC, and seeking.
  • +
  • Fix the build with journald support enabled when using elogind +instead of the systemd libraries.
  • +
  • Fix the build with Link-Time Optimization enabled (-flto=auto).
  • +
  • Fix context menus not working in the remote Web Inspector.
  • +
  • Fix usage of the remote Web Inspector over HTTP.
  • +
  • Fix debug logs not being emitted in release builds.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.38.6.tar.xz (29.1 MiB)
+   md5sum: eb44d3132208218f3752170cae3220b8
+   sha1sum: 5c541a10e216d8d9ca48572b3dc0f82bfb2236c5
+   sha256sum: dcb6591456393c5366ad9abc62a808137d4fea039cbc7ef4c8d64ead506d035b
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.39.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.5.html new file mode 100644 index 000000000..d90eeb0d0 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.5.html @@ -0,0 +1,328 @@ + + + + + + + + + + + + WPE WebKit 2.39.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.39.5 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.40 series.

+

What’s new in WPE WebKit 2.39.5?

+
    +
  • Use ANGLE for the WebGL implementation and enable WebGL 2.
  • +
  • Add support for background-repeat: space.
  • +
  • Add API to check if a response policy decision is for the main resource.
  • +
  • Add support for the “get computed label” and “get computed role” +WebDriver commands.
  • +
  • Add API to support asynchronously returning values from user script messages.
  • +
  • Add API to query the permission state of web features.
  • +
  • Add API to disable Web security.
  • +
  • Add support for client side certificates on WebSocket connections.
  • +
  • Add webkit_web_hit_test_result_get_js_node() to get the JSCValue for the node.
  • +
  • Add WebKitWebFormManager and deprecate WebKitWebPage form related signals.
  • +
  • Make checkbox, radio and inner spin button scale along by page zoom.
  • +
  • Use asynchronous scrolling also for keyboard scrolling.
  • +
  • Deprecate the WebKitConsoleMessage API.
  • +
  • Deprecate the event parameter of WebKitWebView::context-menu and +WebKitWebView::show-option-menu signals in favor of a getter in +WebKitContextMenu and WebKitOptionMenu.
  • +
  • Do not emit context-menu signals for the media settings popup menu.
  • +
  • Do not perform position queries on the video sink when a player +is for audio only.
  • +
  • Fix WebGL when sandbox is enabled.
  • +
  • Fix loading of media documents.
  • +
  • Fix first party for cookies set on every media request.
  • +
  • Fix gibberish text when loading alternate data.
  • +
  • Fix rendering of checkbox and radio buttons on black backgrounds.
  • +
  • Fix several crashes and rendering issues.
  • +
  • Fix several warnings when building for ARMv7 (32-bits).
  • +
  • Fix web process leak when webkit_download_set_destination() +is called with empty destination.
  • +
+

Checksums

+
+wpewebkit-2.39.5.tar.xz (35.8 MiB)
+   md5sum: d46d9abddd4f5352cd2247e925ac0332
+   sha1sum: ea91ce4b2fb93fd538ab48d5fa262bce84576c31
+   sha256sum: 0c8d256349cbccbc7080992e590456c8a66690dbe547f2d481c86ac18cee5ef0
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.39.90.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.90.html new file mode 100644 index 000000000..2cc8ca197 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.90.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + WPE WebKit 2.39.90 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.39.90 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.40 series.

+

What’s new in WPE WebKit 2.39.90?

+
    +
  • Add network session API when building with the new API.
  • +
  • Add new JavaScript execution APIs.
  • +
  • Add support for speech synthesis using Flite.
  • +
  • Always update the active URI of WebKitFrame.
  • +
  • Bring back the WebKitConsoleMessage API implementation.
  • +
  • Do not allow the sandbox to mount the entire home directory.
  • +
  • Fix criticals from webkitOptionMenuSetEvent when opening any combo box.
  • +
  • Fix large memory allocation when uploading content.
  • +
  • Fix scrolling after a history navigation with PSON enabled.
  • +
  • Fix the webkit.h public header causing applications failing to build.
  • +
  • Enable WebGL2 by default, which was disabled by mistake.
  • +
  • Fix the build with WebGL disabled.
  • +
  • Remove the favicon functionality when building with the new API.
  • +
  • Make most public types final (non-derivable) and class struct declarations private when building with the new API.
  • +
  • Merge functions of registering and unregistering script message handlers in the new API.
  • +
  • Remove most of the webkit_web_view_new_with_*() constructors when building with the new GLib API.
  • +
  • Remove webkit_web_context_{get,set}_process_model() when building with the new GLib API.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.39.90.tar.xz (35.8 MiB)
+   md5sum: 36def91376043e3123e892336ea9965e
+   sha1sum: 8da1bcab365078346db5f9a971ec7ab344448817
+   sha256sum: 9fc2e39a6a4db0d4e8ee7ba051e44a8ba3fc090fa82ac9a008e3d839bdd4852d
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.39.91.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.91.html new file mode 100644 index 000000000..c7f652ae6 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.39.91.html @@ -0,0 +1,309 @@ + + + + + + + + + + + + WPE WebKit 2.39.91 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.39.91 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.40 series.

+

What’s new in WPE WebKit 2.39.91?

+
    +
  • Rename WebKitWebExtension to WebKitWebProcessExtension in the new API.
  • +
  • Remove WebKitJavascriptResult in favor of using JSCValue directly in the new API.
  • +
  • Add new API to get the request body of WebKitURISchemeRequest.
  • +
  • Make it possible to handle the WebKitDownload::decide-destination signal asynchronously.
  • +
  • Allow WebKitDownload destination to be a path instead of a URI.
  • +
  • Make the output from webkit://gpu exportable as JSON.
  • +
  • Improve scrolling performance in accelerated compositing mode.
  • +
  • Implement KeyboardEvent.repeat.
  • +
  • Fix the build in Ubuntu 20.04 and Debian Stable.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.39.91.tar.xz (35.8 MiB)
+   md5sum: 5062e94c0e5c6e70266c27f06be96add
+   sha1sum: 63d496852c5b0474aa5d6e45d34cefbbc4e5d1f4
+   sha256sum: 1dab45e12697157d7970469620ce706fe3fc01daed4a4674b7a61dad1ee64259
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.0.html new file mode 100644 index 000000000..48b5f5695 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.0.html @@ -0,0 +1,329 @@ + + + + + + + + + + + + WPE WebKit 2.40.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.40 series.

+

Highlights of the WPE WebKit 2.40.0 release

+
    +
  • The new 2.0 API is now considered stable. It is still possible to build the +old 1.0 API using -USE_SOUP2=ON, or the 1.1 API using +-DENABLE_WPE_1_1_API=ON.
  • +
  • Support for WebGL 2, +built on top of ANGLE.
  • +
  • Support for the Speech Synthesis API, +using Flite. This may be disabled at build +time using -DENABLE_SPEECH_SYNTHESIS=OFF, which also avoids the Flite +dependency.
  • +
  • Support client-side TLS certificates over WebSocket connections.
  • +
  • Support CSS background-repeat: space.
  • +
  • Added new API to respond to permission requests for a number of web-facing +features +(reference).
  • +
  • Added new API to register user script message handlers that return values +asynchronously +(reference).
  • +
  • Added new API to get the request body of a WebKitURISchemeRequest +(reference).
  • +
  • Added new API to run JavaScript code that may use asynchronous constructs, +like Promise and await +(reference).
  • +
  • Allow handling the WebKitDownload::decide-destination +signal +asynchronously.
  • +
  • Allow copying the contents of webkit://gpu to the clipboard as JSON.
  • +
  • Make check boxes, radio buttons, and spin buttons scale along with the page +zoom.
  • +
  • Improved scrolling performance.
  • +
  • Fix inordinately large memory allocations when uploading data.
  • +
+

Checksums

+
+wpewebkit-2.40.0.tar.xz (35.8 MiB)
+   md5sum: a90114f905b7996925a73dbb6a36aa72
+   sha1sum: 06e475479c71c829c1eb67a77cd1e7fe7f952ad0
+   sha256sum: a8ec2bcfa1613768ab3ce7f65cac4f214835266c2ff59440d72180baec3086b6
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.1.html new file mode 100644 index 000000000..d707e62fe --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.1.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + WPE WebKit 2.40.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.40 series.

+

What’s new in WPE WebKit 2.40.1?

+
    +
  • The Bubblewrap sandbox no longer requires setting an application +identifier via GApplication to operate correctly. Using GApplication +is still recommended, but optional.
  • +
  • Improvements to the GStreamer multimedia playback, in particular +around MSE, WebRTC, and seeking.
  • +
  • Make all supported image types appear in the Accept HTTP header.
  • +
  • Long touch presses no longer generate mouse click events, to align +with other web engines and WebKit ports.
  • +
  • Fix default database quota size definition.
  • +
  • Fix application of all caps tags listed in the font-feature-settings +CSS property.
  • +
  • Fix the build with journald support enabled when using elogind +instead of the systemd libraries.
  • +
  • Fix the build when libgcrypt provides a libgcrypt-config script +instead of a pkg-config module file.
  • +
  • Fix font height calculations for the font-size-adjust CSS property.
  • +
  • Fix the build when ccache is used in certain setups.
  • +
  • Fix the build for RISC-V 64-bit targets.
  • +
  • Fix the build with GCC 13.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.40.1.tar.xz (35.8 MiB)
+   md5sum: 617b00eabfc84d9c38b49b5705ec9f81
+   sha1sum: fe03c27eedc59c0df0193d5e361b26e42e3598b0
+   sha256sum: c6b25e168b70f2121305ed078d0790e0aa4b0c73fce44e32ed42d4e5dd137ccb
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.2.html new file mode 100644 index 000000000..b63f3945b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.2.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.40.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.40 series.

+

What’s new in WPE WebKit 2.40.2?

+
    +
  • Fix flickering on looped videos when starting again.
  • +
  • Fix CPU usage on autoplaying videos.
  • +
  • Enable threaded rendering by default.
  • +
  • Choose amount of painting threads depending on available CPU cores.
  • +
  • Make libgbm and libdrm optional dependencies.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.40.2.tar.xz (36.3 MiB)
+   md5sum: ef90aa029887004e7784a0d85d484a9f
+   sha1sum: f11b4977d98facc00bf6fa88c31548a1e1e72dec
+   sha256sum: 99b7ab42580ac5726a2c95bae90caf4cf5df89765e4a046ca72e97b7fd3bccc7
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.3.html new file mode 100644 index 000000000..8134e4ee6 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.3.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + WPE WebKit 2.40.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.40 series.

+

What’s new in WPE WebKit 2.40.3?

+
    +
  • Make memory pressure monitor honor memory.memsw.usage_in_bytes if exists.
  • +
  • Apply cookie blocking policy to WebSocket handshakes.
  • +
  • Remove accidental dependency on GLib 2.70.
  • +
  • Fix the build with BUBBLEWRAP_SANDBOX disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.40.3.tar.xz (36.3 MiB)
+   md5sum: 1568a6b0669aef438de51c892b69215b
+   sha1sum: c840bd76b2c86cb8ca0d68b56598cb0abbafc727
+   sha256sum: 05b6a9cb1d7d03485e0dc41b2a8e6f99a36aea23d32ba3ecb38d0d6860747ada
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.4.html new file mode 100644 index 000000000..7659bf9bc --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.4.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.40.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.40 series.

+

What’s new in WPE WebKit 2.40.4?

+
    +
  • Fix a bug in JavaScript reading variable arguments in a call.
  • +
+

Checksums

+
+wpewebkit-2.40.4.tar.xz (36.3 MiB)
+   md5sum: 89a385f776095483f3479075bf5d4705
+   sha1sum: f0fde6eaa6de8b6a982a013fe3b962c688d7c381
+   sha256sum: 34d11fe79522081ecc2d623860c22ddd53ca29a0d08b4c0e55efbdc3e6a9435c
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.40.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.5.html new file mode 100644 index 000000000..50682270a --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.40.5.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + WPE WebKit 2.40.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.40.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.40 series.

+

What’s new in WPE WebKit 2.40.5?

+
    +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.40.5.tar.xz (36.3 MiB)
+   md5sum: 03a4628755bcd2edea12d1975587fd18
+   sha1sum: 40405f973c882ada48a759f06f00922fa727caeb
+   sha256sum: 4c658d3049c50e98b12fd6623ec42772f25a99cc1c05b5347a10a8633c266733
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.41.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.41.2.html new file mode 100644 index 000000000..85b29b574 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.41.2.html @@ -0,0 +1,316 @@ + + + + + + + + + + + + WPE WebKit 2.41.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.41.2 released

+ + + + + + Download + +
+ +
+ +

This is a development release leading towards the 2.42 series.

+

What’s new in WPE WebKit 2.41.2?

+
    +
  • Properly handle the modifier value when exporting/importing DMA-BUF buffers.
  • +
  • The Bubblewrap sandbox no longer requires setting an application +identifier via GApplication to operate correctly. Using GApplication +is still recommended, but optional.
  • +
  • Show DRM device and render node if available in webkit://gpu.
  • +
  • Long touch presses no longer generate mouse click events, to align with +other web engines and WebKit ports.
  • +
  • New build options to fine-tune WPE for certain hardware platforms +(Westeros, Broadcom, Broadcom Nexus, Amlogic, Raspberry Pi).
  • +
  • Ensure that the correct GPU device is used for WebGL when using GBM.
  • +
  • Fix touchmove events not being produced.
  • +
  • Fix cap height calculation in font metrics.
  • +
  • Fix the build on i386.
  • +
  • Fix the build with libgbm disabled.
  • +
  • Fix the build with USE_WPE_VIDEO_PLANE_DISPLAY_DMABUF enabled.
  • +
  • Add WebKitClipboardPermissionRequest to handle DOM paste access requests.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.41.2.tar.xz (36.1 MiB)
+   md5sum: 48692ef442caeb49f5c506bd953dece7
+   sha1sum: 29b6b697248ad969c7e0b7341dc16e6ee38f275e
+   sha256sum: 52498b5653807c65b2b19302904053beed890df8efbcd6cc08e696e215bdf3ce
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.0.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.0.html new file mode 100644 index 000000000..327cbbda2 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.0.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.42.0 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.0 released

+ + + + + + Download + +
+ +
+ +

This is the first stable release in the 2.42 series.

+

What’s new in WPE WebKit 2.42.0?

+
    +
  • GBM is no longer required for WebGL implementation.
  • +
  • Add API to configure experimental features at runtime.
  • +
  • Add API to set the percentage of volume space that can be used for data storage.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.0.tar.xz (35.1 MiB)
+   md5sum: 8bc18620afafc5b5087d529cd47c0721
+   sha1sum: 125333c9bf4efa85f780ad422f3fb9fc39d43636
+   sha256sum: acda4be341c6021e092b36612c88d596dae4dd7f41e6ac47425d645dffdfe5ed
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.1.html new file mode 100644 index 000000000..f510ce65b --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.1.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.42.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.1 released

+ + + + + + Download + +
+ +
+ +

This is the first bug fix release in the stable 2.42 series.

+

What’s new in WPE WebKit 2.42.1?

+
    +
  • Fix enable-html5-database setting to properly enable/disable IndexedDB API.
  • +
  • Fix the build with GBM disabled.
  • +
  • Fix rendering on the Raspberry Pi.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.1.tar.xz (35.1 MiB)
+   md5sum: 82b6c35797d3e640ed3c5e354d030dea
+   sha1sum: 6cb97b1d261ca47185f49a3b016586b825a5c750
+   sha256sum: 18a2cf547a503420f4cb8f523a2f4c24b4dc2773abbe74c7d585e6d23cb27bac
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.2.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.2.html new file mode 100644 index 000000000..32e5f33ca --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.2.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.42.2 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.2 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.42 series.

+

What’s new in WPE WebKit 2.42.2?

+
    +
  • Bump Safari version in User-Agent header.
  • +
  • Fix CSP regression that broke Unity WebGL applications.
  • +
  • Fix the build with GBM disabled.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.2.tar.xz (30.9 MiB)
+   md5sum: 4cc2472bce41a376cc3b82b1d76834fa
+   sha1sum: 2de79928a1742076226470b821239db88aaaa9a1
+   sha256sum: df99bbc7007df60d77821e4c169312464f145c8aa6e34398a43da36a857285e8
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.3.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.3.html new file mode 100644 index 000000000..57da2f6a9 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.3.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + WPE WebKit 2.42.3 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.3 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.42 series.

+

What’s new in WPE WebKit 2.42.3?

+
    +
  • Fix flickering in videos when using VA-API with DMA-BUF for rendering.
  • +
  • Fix color picker being triggered in the inspector when typing tan.
  • +
  • Fix wrong choice of font fallback in some cases when using sans as +the font family.
  • +
  • Fix build failure with libxml2 version 2.12.0 due to an API change.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.3.tar.xz (30.9 MiB)
+   md5sum: 44b7b60d439d917d8e9b97639e7d7509
+   sha1sum: 0523887944137206faca1080ab3f9e8b4cad6413
+   sha256sum: 499969acf25a56b4abd3f3e68324069f579ccb34e441259a5e04031b1f564daa
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.4.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.4.html new file mode 100644 index 000000000..5d459b738 --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.4.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + WPE WebKit 2.42.4 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.4 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.42 series.

+

What’s new in WPE WebKit 2.42.4?

+
    +
  • Fix incorrect random images incorrectly displayed as backgrounds +of <div> elements.
  • +
  • Fix videos displayed aliased after being resized e.g. on YouTube.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.4.tar.xz (30.9 MiB)
+   md5sum: 154dd24d1811bd51d2dd6bb22120d283
+   sha1sum: 34da38e9554586154c83fdbb5c20e353b6d97277
+   sha256sum: 8836040a3687581970b47a232b713e7023c080d5613427f52db619c29fb253a4
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.42.5.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.5.html new file mode 100644 index 000000000..e9b3577bf --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.42.5.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + WPE WebKit 2.42.5 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.42.5 released

+ + + + + + Download + +
+ +
+ +

This is a bug fix release in the stable 2.42 series.

+

What’s new in WPE WebKit 2.42.5?

+
    +
  • Fix webkit_web_context_allow_tls_certificate_for_host() to handle IPv6 +URIs produced by SoupURI.
  • +
  • Ignore stops with offset zero before last one when rendering gradients +with Cairo.
  • +
  • Write bwrapinfo.json to disk for xdg-desktop-portal.
  • +
  • Support gamepad button sixteen (center button in center cluster).
  • +
  • Update quirks to fix compatibility issues in a number of websites, +including bing.com, nfl.com, msn.com, bankofamerica.com, +outlook.live.com, hulu.com, jsfiddle.net, vote.gov, +youtube.com, airtable.com, gizmodo.com, and ceac.state.gov +among others.
  • +
  • Fix incorrect periodic deletion of LocalStorage and IndexedDB databases +for all websites.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.42.5.tar.xz (31.0 MiB)
+   md5sum: d4bfd427199ded5a6fd91d7080290751
+   sha1sum: 50a18f43452520e9f34f84c04bc0166af655ffff
+   sha256sum: 4dbab6c5e6dc0c65a3d7dffc1c2390be5f9abd423faf983fe3a55fe081df0532
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/release/wpewebkit-2.43.1.html b/aperezdc/learn-discover-rework/release/wpewebkit-2.43.1.html new file mode 100644 index 000000000..683c0ac8c --- /dev/null +++ b/aperezdc/learn-discover-rework/release/wpewebkit-2.43.1.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + WPE WebKit 2.43.1 released + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WPE WebKit 2.43.1 released

+ + + + + + Download + +
+ +
+ +

This is the first development release leading towards the 2.44 series.

+

What’s new in WPE WebKit 2.43.1?

+
    +
  • Improve V-Blank synchronization when rendering.
  • +
  • Improve DMA-BUF buffers handling for video frames.
  • +
  • Use the buffer format preferred by the driver in DMA-BUF renderer.
  • +
  • Do not block the compositing thread waiting for rendering threads.
  • +
  • Improve performance when scaling images in a canvas.
  • +
  • Allow disabling WebGL support using the API.
  • +
  • Enable usage of libbacktrace by default.
  • +
  • Fix several crashes and rendering issues.
  • +
+

Checksums

+
+wpewebkit-2.43.1.tar.xz (31.0 MiB)
+   md5sum: 9bdfd5e91254b348119dd41e256e3900
+   sha1sum: 776183823cb090b1c0c9646407fa22ed751370cb
+   sha256sum: 1713ede3016d5b027cc28779399873f2d9e8bd976291895d8085ba668e3a22f1
+
+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/robots.txt b/aperezdc/learn-discover-rework/robots.txt new file mode 100644 index 000000000..5ae8d3d5b --- /dev/null +++ b/aperezdc/learn-discover-rework/robots.txt @@ -0,0 +1,5 @@ +User-Agent: * +Allow: / +Disallow: /reference/ +Disallow: /releases/ +Sitemap: https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/sitemap.xml diff --git a/aperezdc/learn-discover-rework/security/1/index.html b/aperezdc/learn-discover-rework/security/1/index.html new file mode 100644 index 000000000..1bb263f77 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/1/index.html @@ -0,0 +1,340 @@ + + + + + + + + + + + + Security Advisories + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Security Advisories

+
+
+
  1. + + +

    +WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0005 +

    +

    The latest security advisory available.

    +
    +
+
+ + +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2018-0005.html b/aperezdc/learn-discover-rework/security/WSA-2018-0005.html new file mode 100644 index 000000000..836a4fa6f --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2018-0005.html @@ -0,0 +1,461 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0005

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2018-4190

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Jun Kokatsu (@shhnjk).
    • +
    • Impact: Visiting a maliciously crafted website may leak sensitive +data. Description: Credentials were unexpectedly sent when fetching +CSS mask images. This was addressed by using a CORS-enabled fetch +method.
    • +
    +
  • +
  • +

    CVE-2018-4192

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.1.
    • +
    • Credit to Markus Gaasedelen, Nick Burnett, and Patrick Biernat of +Ret2 Systems, Inc working with Trend Micro’s Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A race condition was +addressed with improved locking.
    • +
    +
  • +
  • +

    CVE-2018-4199

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Alex Plaskett, Georgi Geshev, Fabi Beterke, and Nils of +MWR Labs working with Trend Micro’s Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A buffer overflow issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4201

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4214

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Impact: Processing maliciously crafted web content may lead to an +unexpected application crash. Description: A memory corruption issue +was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2018-4218

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Natalie Silvanovich of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4222

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Natalie Silvanovich of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An out-of-bounds read was +addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2018-4232

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Aymeric Chaib.
    • +
    • Impact: Visiting a maliciously crafted website may lead to cookies +being overwritten. Description: A permissions issue existed in the +handling of web browser cookies. This issue was addressed with +improved restrictions.
    • +
    +
  • +
  • +

    CVE-2018-4233

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Samuel Groß (@5aelo) working with Trend Micro’s Zero Day +Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-11646

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to Mishra Dhiraj.
    • +
    • Maliciously crafted web content could trigger an application crash +in WebKitFaviconDatabase, caused by mishandling unexpected input.
    • +
    +
  • +
  • +

    CVE-2018-11712

    +
      +
    • Versions affected: WebKitGTK+ 2.20.0 and 2.20.1.
    • +
    • Credit to Metrological Group B.V.
    • +
    • The libsoup network backend of WebKit failed to perform TLS +certificate verification for WebSocket connections.
    • +
    +
  • +
  • +

    CVE-2018-11713

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0 or without libsoup +2.62.0.
    • +
    • Credit to Dirkjan Ochtman.
    • +
    • The libsoup network backend of WebKit unexpectedly failed to use +system proxy settings for WebSocket connections. As a result, users +could be deanonymized by crafted web sites via a WebSocket +connection.
    • +
    +
  • +
  • +

    CVE-2018-12293

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.3 and WPE WebKit before +2.20.1.
    • +
    • Credit to ADlab of Venustech.
    • +
    • Maliciously crafted web content could achieve a heap buffer overflow +in ImageBufferCairo by exploiting multiple integer overflow issues.
    • +
    +
  • +
  • +

    CVE-2018-12294

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.2.
    • +
    • Credit to ADlab of Venustech.
    • +
    • Maliciously crafted web content could trigger a use-after-free of a +TextureMapperLayer object.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running a safe +version of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2018-0006.html b/aperezdc/learn-discover-rework/security/WSA-2018-0006.html new file mode 100644 index 000000000..c266eefbe --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2018-0006.html @@ -0,0 +1,477 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2018-4246

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.1.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A type confusion issue was addressed with improved +memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4261

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Omair working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4262

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Mateusz Krzywicki working with Trend Micro’s Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4263

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Arayz working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4264

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz, Yu Zhou and Jundong Xie of Ant-financial Light- +Year Security Lab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4265

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to cc working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4266

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • A malicious website may be able to cause a denial of service. A race +condition was addressed with additional validation.
    • +
    +
  • +
  • +

    CVE-2018-4267

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Arayz of Pangu team working with Trend Micro’s Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4270

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to an unexpected +application crash. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4271

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to an unexpected +application crash. A memory corruption issue was addressed with +improved input validation.
    • +
    +
  • +
  • +

    CVE-2018-4272

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4273

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to an unexpected +application crash. A memory corruption issue was addressed with +improved input validation.
    • +
    +
  • +
  • +

    CVE-2018-4278

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Jun Kokatsu (@shhnjk).
    • +
    • A malicious website may exfiltrate audio data cross-origin. Sound +fetched through audio elements may be exfiltrated cross-origin. This +issue was addressed with improved audio taint tracking.
    • +
    +
  • +
  • +

    CVE-2018-4284

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A type confusion issue was addressed with improved +memory handling.
    • +
    +
  • +
  • +

    CVE-2018-12911

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.4 and WPE WebKit before +2.20.2.
    • +
    • Credit to Yu Haiwan.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A buffer overflow issue was addressed with improved +memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running safe +versions of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2018-0007.html b/aperezdc/learn-discover-rework/security/WSA-2018-0007.html new file mode 100644 index 000000000..1131dceda --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2018-0007.html @@ -0,0 +1,551 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0007

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2018-4207

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. This issue was +addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4208

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. This issue was +addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4209

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. This issue was +addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4210

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction with indexing types caused a failure. An +array indexing issue existed in the handling of a function in +JavaScriptCore. This issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4212

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. This issue was +addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4213

    +
      +
    • Versions affected: WebKitGTK+ before 2.20.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. This issue was +addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2018-4191

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. A memory corruption +issue was addressed with improved validation.
    • +
    +
  • +
  • +

    CVE-2018-4197

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4299

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Samuel Groβ (saelo) working with Trend Micro’s Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4306

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4309

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to an anonymous researcher working with Trend Micro’s Zero +Day Initiative.
    • +
    • A malicious website may be able to execute scripts in the context of +another website. A cross-site scripting issue existed in WebKit. +This issue was addressed with improved URL validation.
    • +
    +
  • +
  • +

    CVE-2018-4311

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Erling Alf Ellingsen (@steike).
    • +
    • Cross-origin SecurityErrors includes the accessed frame’s origin. +The issue was addressed by removing origin information.
    • +
    +
  • +
  • +

    CVE-2018-4312

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4314

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4315

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4316

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to crixer, Hanming Zhang (@4shitak4) of Qihoo 360 Vulcan +Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2018-4317

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4318

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2018-4319

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to John Pettitt of Google.
    • +
    • A malicious website may cause unexepected cross-origin behavior. A +cross-origin issue existed with iframe elements. This was addressed +with improved tracking of security origins.
    • +
    +
  • +
  • +

    CVE-2018-4323

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4328

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4358

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to @phoenhex team (@bkth_ @5aelo @_niklasb) working with +Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4359

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Samuel Groß (@5aelo).
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4361

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Google OSS-Fuzz.
    • +
    • Unexpected interaction causes an ASSERT failure. A memory corruption +issue was addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running safe +versions of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2018-0008.html b/aperezdc/learn-discover-rework/security/WSA-2018-0008.html new file mode 100644 index 000000000..f0299dcca --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2018-0008.html @@ -0,0 +1,419 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0008

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2018-4345

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • A cross-site scripting issue existed in WebKit. This issue was +addressed with improved URL validation.
    • +
    +
  • +
  • +

    CVE-2018-4372

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.4 and WPE WebKit before +2.22.2.
    • +
    • Credit to HyungSeok Han, DongHyeon Oh, and Sang Kil Cha of KAIST +Softsec Lab, Korea.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4373

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to ngg, alippai, DirtYiCE, KT of Tresorit working with Trend +Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4375

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to Yu Haiwan and Wu Hongjun From Nanyang Technological +University working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4376

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to 010 working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4378

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to an anonymous researcher, zhunki of 360 ESG Codesafe Team.
    • +
    • Processing maliciously crafted web content may lead to code +execution. A memory corruption issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2018-4382

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4386

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4392

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to zhunki of 360 ESG Codesafe Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4416

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.1 and WPE WebKit before +2.22.0.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running safe +versions of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2018-0009.html b/aperezdc/learn-discover-rework/security/WSA-2018-0009.html new file mode 100644 index 000000000..dfbcdee71 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2018-0009.html @@ -0,0 +1,373 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2018-0009

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2018-4437

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.5 and WPE WebKit before +2.22.3.
    • +
    • Credit to HyungSeok Han, DongHyeon Oh, and Sang Kil Cha of KAIST +Softsec Lab, Korea.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4438

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A logic issue existed resulting in memory +corruption. This was addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2018-4441

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4442

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4443

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.3 and WPE WebKit before +2.22.1.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2018-4464

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to HyungSeok Han, DongHyeon Oh, and Sang Kil Cha of KAIST +Softsec Lab, Korea.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running safe +versions of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0001.html b/aperezdc/learn-discover-rework/security/WSA-2019-0001.html new file mode 100644 index 000000000..eb3f70cae --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0001.html @@ -0,0 +1,411 @@ + + + + + + + + + + + + WebKitGTK+ and WPE WebKit Security Advisory WSA-2019-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK+ and WPE WebKit Security Advisory WSA-2019-0001

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK+ and WPE WebKit.

+
    +
  • +

    CVE-2019-6212

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6215

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to Lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A type confusion issue was addressed with improved +memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6216

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.5 and WPE WebKit before +2.22.3.
    • +
    • Credit to Fluoroacetate working with Trend Micro’s Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6217

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.5 and WPE WebKit before +2.22.3.
    • +
    • Credit to Fluoroacetate working with Trend Micro’s Zero Day +Initiative, Proteas, Shrek_wzw, and Zhuo Liang of Qihoo 360 Nirvan +Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6226

    +
      +
    • Versions affected: WebKitGTK+ and WPE WebKit before 2.22.0.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6227

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.5 and WPE WebKit before +2.22.3.
    • +
    • Credit to Qixun Zhao of Qihoo 360 Vulcan Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6229

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.5 and WPE WebKit before +2.22.3.
    • +
    • Credit to Ryan Pickren.
    • +
    • Processing maliciously crafted web content may lead to universal +cross site scripting. A logic issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2019-6233

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.4 and WPE WebKit before +2.22.2.
    • +
    • Credit to G. Geshev from MWR Labs working with Trend Micro’s Zero +Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6234

    +
      +
    • Versions affected: WebKitGTK+ before 2.22.4 and WPE WebKit before +2.22.2.
    • +
    • Credit to G. Geshev from MWR Labs working with Trend Micro’s Zero +Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK+ and +WPE WebKit. It is the best way to ensure that you are running safe +versions of WebKit. Please check our websites for information about the +latest stable releases.

+

Further information about WebKitGTK+ and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0002.html b/aperezdc/learn-discover-rework/security/WSA-2019-0002.html new file mode 100644 index 000000000..d0a7de888 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0002.html @@ -0,0 +1,500 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2019-0002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2019-0002

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-6201

    +
      +
    • Versions affected: WebKitGTK before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to dwfault working with ADLab of Venustech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-6251

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Dhiraj.
    • +
    • Processing maliciously crafted web content may lead to spoofing. +WebKitGTK and WPE WebKit were vulnerable to a URI spoofing attack +similar to the CVE-2018-8383 issue in Microsoft Edge.
    • +
    +
  • +
  • +

    CVE-2019-7285

    +
      +
    • Versions affected: WebKitGTK before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to dwfault working at ADLab of Venustech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A use after free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2019-7292

    +
      +
    • Versions affected: WebKitGTK before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to Zhunki and Zhiyi Zhang of 360 ESG Codesafe Team.
    • +
    • Processing maliciously crafted web content may result in the +disclosure of process memory. A validation issue was addressed with +improved logic.
    • +
    +
  • +
  • +

    CVE-2019-8503

    +
      +
    • Versions affected: WebKitGTK before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to Linus Särud of Detectify.
    • +
    • A malicious website may be able to execute scripts in the context of +another website. A logic issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2019-8506

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A type confusion issue was addressed with improved +memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8515

    +
      +
    • Versions affected: WebKitGTK before 2.22.6 and WPE WebKit before +2.22.4.
    • +
    • Credit to James Lee, @Windowsrcer.
    • +
    • Processing maliciously crafted web content may disclose sensitive +user information. A cross-origin issue existed with the fetch API. +This was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2019-8518

    +
      +
    • Versions affected: WebKitGTK before 2.22.7 and WPE WebKit before +2.22.5.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8523

    +
      +
    • Versions affected: WebKitGTK before 2.22.7 and WPE WebKit before +2.22.5.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8524

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8535

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Zhiyang Zeng, @Wester, of Tencent Blade Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8536

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8544

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8551

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Ryan Pickren, ryanpickren.com.
    • +
    • Processing maliciously crafted web content may lead to universal +cross site scripting. A logic issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2019-8558

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8559

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8563

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-11070

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Igalia.
    • +
    • WebKitGTK and WPE WebKit failed to properly apply configured HTTP +proxy settings when downloading livestream video (HLS, DASH, or +Smooth Streaming), an error resulting in deanonymization. This issue +was corrected by changing the way livestreams are downloaded.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0003.html b/aperezdc/learn-discover-rework/security/WSA-2019-0003.html new file mode 100644 index 000000000..d0aae7b2f --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0003.html @@ -0,0 +1,521 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2019-0003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2019-0003

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-6237

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative, +Liu Long of Qihoo 360 Vulcan Team.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8571

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to 01 working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8583

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to sakura of Tencent Xuanwu Lab, jessica (@babyjess1ca_) of +Tencent Keen Lab, and dwfault working at ADLab of Venustech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8584

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to G. Geshev of MWR Labs working with Trend Micro Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8586

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8587

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8594

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Suyoung Lee and Sooel Son of KAIST Web Security & Privacy +Lab and HyungSeok Han and Sang Kil Cha of KAIST SoftSec Lab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8595

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to G. Geshev from MWR Labs working with Trend Micro Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8596

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8597

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to 01 working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8601

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Fluoroacetate working with Trend Micro’s Zero Day +Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8607

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to Junho Jang and Hanul Choi of LINE Security Team.
    • +
    • Processing maliciously crafted web content may result in the +disclosure of process memory. An out-of-bounds read was addressed +with improved input validation.
    • +
    +
  • +
  • +

    CVE-2019-8608

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8609

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Wen Xu of SSLab, Georgia Tech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8610

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Anonymous working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8615

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to G. Geshev from MWR Labs working with Trend Micro’s Zero +Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8611

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8619

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.1.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech and Hanqing Zhao of +Chaitin Security Research Lab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8622

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8623

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0004.html b/aperezdc/learn-discover-rework/security/WSA-2019-0004.html new file mode 100644 index 000000000..0e0bfcc2b --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0004.html @@ -0,0 +1,541 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2019-0004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2019-0004

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-8644

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to G. Geshev working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8649

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to universal +cross site scripting. A logic issue existed in the handling of +synchronous page loads. This issue was addressed with improved state +management.
    • +
    +
  • +
  • +

    CVE-2019-8658

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to akayn working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to universal +cross site scripting. A logic issue was addressed with improved +state management.
    • +
    +
  • +
  • +

    CVE-2019-8666

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to Zongming Wang (王宗明) and Zhe Jin (金哲) from Chengdu Security +Response Center of Qihoo 360 Technology Co. Ltd.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8669

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to akayn working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8671

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8672

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8673

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to Soyeon Park and Wen Xu of SSLab at Georgia Tech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8676

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to Soyeon Park and Wen Xu of SSLab at Georgia Tech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8677

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to Jihui Lu of Tencent KeenLab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8678

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to an anonymous researcher, Anthony Lai (@darkfloyd1014) of +Knownsec, Ken Wong (@wwkenwong) of VXRL, Jeonghoon Shin (@singi21a) +of Theori, Johnny Yu (@straight_blast) of VX Browser Exploitation +Group, Chris Chan (@dr4g0nfl4me) of VX Browser Exploitation Group, +Phil Mok (@shadyhamsters) of VX Browser Exploitation Group, Alan Ho +(@alan_h0) of Knownsec, Byron Wai of VX Browser Exploitation.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8679

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to Jihui Lu of Tencent KeenLab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8680

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Jihui Lu of Tencent KeenLab.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8681

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8683

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8684

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8686

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.2.
    • +
    • Credit to G. Geshev working with Trend Micro’s Zero Day Initiative.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8687

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to Apple.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8688

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Insu Yun of SSLab at Georgia Tech.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8689

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to lokihardt of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to arbitrary +code execution. Multiple memory corruption issues were addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8690

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Processing maliciously crafted web content may lead to universal +cross site scripting. A logic issue existed in the handling of +document loads. This issue was addressed with improved state +management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0005.html b/aperezdc/learn-discover-rework/security/WSA-2019-0005.html new file mode 100644 index 000000000..15005745e --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0005.html @@ -0,0 +1,442 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2019-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2019-0005

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-8625

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8674

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8707

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to an anonymous researcher working with Trend Micro’s Zero +Day Initiative, cc working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8719

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8720

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8726

    +
      +
    • Versions affected: WebKitGTK before 2.24.3 and WPE WebKit before +2.24.3.
    • +
    • Credit to Jihui Lu of Tencent KeenLab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8733

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8735

    +
      +
    • Versions affected: WebKitGTK before 2.24.2 and WPE WebKit before +2.24.2.
    • +
    • Credit to G. Geshev working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8763

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8768

    +
      +
    • Versions affected: WebKitGTK before 2.24.0 and WPE WebKit before +2.24.0.
    • +
    • Credit to Hugo S. Diaz (coldpointblue).
    • +
    • Impact: A user may be unable to delete browsing history items. +Description: “Clear History and Website Data” did not clear the +history. The issue was addressed with improved data deletion.
    • +
    +
  • +
  • +

    CVE-2019-8769

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Piérre Reimertz (@reimertz).
    • +
    • Impact: Visiting a maliciously crafted website may reveal browsing +history. Description: An issue existed in the drawing of web page +elements. The issue was addressed with improved logic.
    • +
    +
  • +
  • +

    CVE-2019-8771

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Eliya Stein of Confiant.
    • +
    • Impact: Maliciously crafted web content may violate iframe +sandboxing policy. Description: This issue was addressed with +improved iframe sandbox enforcement.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2019-0006.html b/aperezdc/learn-discover-rework/security/WSA-2019-0006.html new file mode 100644 index 000000000..bd25cfccd --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2019-0006.html @@ -0,0 +1,522 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2019-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2019-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-8710

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to found by OSS-Fuzz.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8743

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to zhunki from Codesafe Team of Legendsec at Qi’anxin Group.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8764

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8765

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8766

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to found by OSS-Fuzz.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8782

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Cheolung Lee of LINE+ Security Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8783

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Cheolung Lee of LINE+ Graylab Security Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8808

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to found by OSS-Fuzz.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8811

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Soyeon Park of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8812

    +
      +
    • Versions affected: WebKitGTK before 2.26.2 and WPE WebKit before +2.26.2.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8813

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2019-8814

    +
      +
    • Versions affected: WebKitGTK before 2.26.2 and WPE WebKit before +2.26.2.
    • +
    • Credit to Cheolung Lee of LINE+ Security Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8815

    +
      +
    • Versions affected: WebKitGTK before 2.26.0 and WPE WebKit before +2.26.0.
    • +
    • Credit to Apple.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8816

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Soyeon Park of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8819

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Cheolung Lee of LINE+ Security Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8820

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8821

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8822

    +
      +
    • Versions affected: WebKitGTK before 2.24.4 and WPE WebKit before +2.24.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8823

    +
      +
    • Versions affected: WebKitGTK before 2.26.1 and WPE WebKit before +2.26.1.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0001.html b/aperezdc/learn-discover-rework/security/WSA-2020-0001.html new file mode 100644 index 000000000..4cb7900aa --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0001.html @@ -0,0 +1,339 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0001

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2019-8835

    +
      +
    • Versions affected: WebKitGTK before 2.26.3 and WPE WebKit before +2.26.3.
    • +
    • Credit to Anonymous working with Trend Micro’s Zero Day Initiative, +Mike Zhang of Pangu Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8844

    +
      +
    • Versions affected: WebKitGTK before 2.26.3 and WPE WebKit before +2.26.3.
    • +
    • Credit to William Bowling (@wcbowling).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2019-8846

    +
      +
    • Versions affected: WebKitGTK before 2.26.3 and WPE WebKit before +2.26.3.
    • +
    • Credit to Marcin Towalski of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0002.html b/aperezdc/learn-discover-rework/security/WSA-2020-0002.html new file mode 100644 index 000000000..6b184bb04 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0002.html @@ -0,0 +1,361 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0002

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-3862

    +
      +
    • Versions affected: WebKitGTK before 2.26.4 and WPE WebKit before +2.26.4.
    • +
    • Credit to Srikanth Gatta of Google Chrome.
    • +
    • Impact: A malicious website may be able to cause a denial of +service. Description: A denial of service issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3864

    +
      +
    • Versions affected: WebKitGTK before 2.26.4 and WPE WebKit before +2.26.4.
    • +
    • Credit to Ryan Pickren (ryanpickren.com).
    • +
    • Impact: A DOM object context may not have had a unique security +origin. Description: A logic issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2020-3865

    +
      +
    • Versions affected: WebKitGTK before 2.26.4 and WPE WebKit before +2.26.4.
    • +
    • Credit to Ryan Pickren (ryanpickren.com).
    • +
    • Impact: A top-level DOM object context may have incorrectly been +considered secure. Description: A logic issue was addressed with +improved validation.
    • +
    +
  • +
  • +

    CVE-2020-3867

    +
      +
    • Versions affected: WebKitGTK before 2.26.4 and WPE WebKit before +2.26.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2020-3868

    +
      +
    • Versions affected: WebKitGTK before 2.26.4 and WPE WebKit before +2.26.4.
    • +
    • Credit to Marcin Towalski of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0003.html b/aperezdc/learn-discover-rework/security/WSA-2020-0003.html new file mode 100644 index 000000000..bc4ba37b8 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0003.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0003

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: March 12, 2020

    +
  • +
  • +

    Advisory ID: WSA-2020-0003

    +
  • +
  • +

    CVE identifiers: CVE-2020-10018.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2020-10018 +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Sudhakar Verma, Ashfaq Ansari & Siddhant Badhe - Project +Srishti of CloudFuzz.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue +(use-after-free) was addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0004.html b/aperezdc/learn-discover-rework/security/WSA-2020-0004.html new file mode 100644 index 000000000..294f7132c --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0004.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0004

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: April 16, 2020

    +
  • +
  • +

    Advisory ID: WSA-2020-0004

    +
  • +
  • +

    CVE identifiers: CVE-2020-11793.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2020-11793 +
      +
    • Versions affected: WebKitGTK before 2.28.1 and WPE WebKit before +2.28.1.
    • +
    • Credit to Cim Stordal of Cognite.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution or application crash (denial of service). +Description: A memory corruption issue (use-after-free) was +addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0005.html b/aperezdc/learn-discover-rework/security/WSA-2020-0005.html new file mode 100644 index 000000000..fba70f7c4 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0005.html @@ -0,0 +1,395 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0005

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-3885

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Ryan Pickren (ryanpickren.com).
    • +
    • Impact: A file URL may be incorrectly processed. Description: A +logic issue was addressed with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2020-3894

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: An application may be able to read restricted memory. +Description: A race condition was addressed with additional +validation.
    • +
    +
  • +
  • +

    CVE-2020-3895

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to grigoritchy.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3897

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Brendan Draper (@6r3nd4n) working with Trend Micro’s Zero +Day Initiative.
    • +
    • Impact: A remote attacker may be able to cause arbitrary code +execution. Description: A type confusion issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3899

    +
      +
    • Versions affected: WebKitGTK before 2.28.2 and WPE WebKit before +2.28.2.
    • +
    • Credit to OSS-Fuzz.
    • +
    • Impact: A remote attacker may be able to cause arbitrary code +execution. Description: A memory consumption issue was addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3900

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Dongzhuo Zhao working with ADLab of Venustech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3901

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Benjamin Randazzo (@____benjamin).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-3902

    +
      +
    • Versions affected: WebKitGTK before 2.28.0 and WPE WebKit before +2.28.0.
    • +
    • Credit to Yiğit Can YILMAZ (@yilmazcanyigit).
    • +
    • Impact: Processing maliciously crafted web content may lead to a +cross site scripting attack. Description: An input validation issue +was addressed with improved input validation.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0006.html b/aperezdc/learn-discover-rework/security/WSA-2020-0006.html new file mode 100644 index 000000000..1013300a6 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0006.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-9802

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A logic issue was addressed +with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2020-9803

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved validation.
    • +
    +
  • +
  • +

    CVE-2020-9805

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2020-9806

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2020-9807

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Wen Xu of SSLab at Georgia Tech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2020-9843

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Ryan Pickren (ryanpickren.com).
    • +
    • Impact: Processing maliciously crafted web content may lead to a +cross site scripting attack. Description: An input validation issue +was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2020-9850

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to @jinmo123, @setuid0x0_, and @insu_yun_en of @SSLab_Gatech +working with Trend Micro’s Zero Day Initiative.
    • +
    • Impact: A remote attacker may be able to cause arbitrary code +execution. Description: A logic issue was addressed with improved +restrictions.
    • +
    +
  • +
  • +

    CVE-2020-13753

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Milan Crha at Red Hat.
    • +
    • The bubblewrap sandbox of WebKitGTK and WPE WebKit, prior to 2.28.3, +failed to properly block access to CLONE_NEWUSER and the TIOCSTI +ioctl. CLONE_NEWUSER could potentially be used to confuse xdg- +desktop-portal, which allows access outside the sandbox. TIOCSTI can +be used to directly execute commands outside the sandbox by writing +to the controlling terminal’s input buffer, similar to +CVE-2017-5226.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0007.html b/aperezdc/learn-discover-rework/security/WSA-2020-0007.html new file mode 100644 index 000000000..2e34dfc25 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0007.html @@ -0,0 +1,373 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0007

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-9862

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to Ophir Lojkine (@lovasoa).
    • +
    • Impact: Copying a URL from Web Inspector may lead to command +injection. Description: A command injection issue existed in Web +Inspector. This issue was addressed with improved escaping.
    • +
    +
  • +
  • +

    CVE-2020-9893

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to 0011 working with Trend Micro Zero Day Initiative.
    • +
    • Impact: A remote attacker may be able to cause unexpected +application termination or arbitrary code execution. Description: An +use-after-free issue was addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2020-9894

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to 0011 working with Trend Micro Zero Day Initiative.
    • +
    • Impact: A remote attacker may be able to cause unexpected +application termination or arbitrary code execution. Description: An +out-of-bounds read was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2020-9895

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to Wen Xu of SSLab, Georgia Tech.
    • +
    • Impact: A remote attacker may be able to cause unexpected +application termination or arbitrary code execution. Description: An +use-after-free issue was addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2020-9915

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to Ayoub AIT ELMOKHTAR of Noon.
    • +
    • Impact: Processing maliciously crafted web content may prevent +Content Security Policy from being enforced. Description: An access +issue existed in Content Security Policy. This issue was addressed +with improved access restrictions.
    • +
    +
  • +
  • +

    CVE-2020-9925

    +
      +
    • Versions affected: WebKitGTK before 2.28.4 and WPE WebKit before +2.28.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0008.html b/aperezdc/learn-discover-rework/security/WSA-2020-0008.html new file mode 100644 index 000000000..0b50d3d15 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0008.html @@ -0,0 +1,362 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0008

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-13584

    +
      +
    • Versions affected: WebKitGTK before 2.30.3 and WPE WebKit before +2.30.3.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2020-9948

    +
      +
    • Versions affected: WebKitGTK before 2.30.0 and WPE WebKit before +2.30.0.
    • +
    • Credit to Brendan Draper (@6r3nd4n) working with Trend Micro Zero +Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2020-9951

    +
      +
    • Versions affected: WebKitGTK before 2.30.0 and WPE WebKit before +2.30.0.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2020-9952

    +
      +
    • Versions affected: WebKitGTK before 2.28.3 and WPE WebKit before +2.28.3.
    • +
    • Credit to Ryan Pickren (ryanpickren.com).
    • +
    • Impact: Processing maliciously crafted web content may lead to a +cross site scripting attack. Description: An input validation issue +was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2020-9983

    +
      +
    • Versions affected: WebKitGTK before 2.30.3 and WPE WebKit before +2.30.3.
    • +
    • Credit to zhunki.
    • +
    • Impact: Processing maliciously crafted web content may lead to code +execution. Description: An out-of-bounds write issue was addressed +with improved bounds checking.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2020-0009.html b/aperezdc/learn-discover-rework/security/WSA-2020-0009.html new file mode 100644 index 000000000..17de2321a --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2020-0009.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2020-0009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2020-0009

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: November 30, 2020

    +
  • +
  • +

    Advisory ID: WSA-2020-0009

    +
  • +
  • +

    CVE identifiers: CVE-2020-13543.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2020-13543 +
      +
    • Versions affected: WebKitGTK before 2.30.3 and WPE WebKit before +2.30.3.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0001.html b/aperezdc/learn-discover-rework/security/WSA-2021-0001.html new file mode 100644 index 000000000..e03ff4518 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0001.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0001

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: February 15, 2021

    +
  • +
  • +

    Advisory ID: WSA-2021-0001

    +
  • +
  • +

    CVE identifiers: CVE-2020-13558.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2020-13558 +
      +
    • Versions affected: WebKitGTK before 2.30.5 and WPE WebKit before +2.30.5.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue in +the AudioSourceProviderGStreamer class was addressed with improved +memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0002.html b/aperezdc/learn-discover-rework/security/WSA-2021-0002.html new file mode 100644 index 000000000..ef509a727 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0002.html @@ -0,0 +1,398 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0002

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2020-27918

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to Liu Long of Ant Security Light-Year Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2020-29623

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to Simon Hunt of OvalTwo LTD.
    • +
    • Impact: A user may be unable to fully delete browsing history. +Description: “Clear History and Website Data” did not clear the +history in some circumstances. The issue was addressed with improved +data deletion.
    • +
    +
  • +
  • +

    CVE-2020-9947

    +
      +
    • Versions affected: WebKitGTK before 2.30.0 and WPE WebKit before +2.30.0.
    • +
    • Credit to cc working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-1765

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to Eliya Stein of Confiant.
    • +
    • Impact: Maliciously crafted web content may violate iframe +sandboxing policy. Description: This issue was addressed with +improved iframe sandbox enforcement.
    • +
    +
  • +
  • +

    CVE-2021-1789

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to @S0rryMybad of 360 Vulcan Team.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2021-1799

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to Gregory Vishnepolsky & Ben Seri of Armis Security, and +Samy Kamkar.
    • +
    • Impact: A malicious website may be able to access restricted ports +on arbitrary servers, Description: A port redirection issue was +addressed with additional port validation.
    • +
    +
  • +
  • +

    CVE-2021-1801

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to Eliya Stein of Confiant.
    • +
    • Impact: Maliciously crafted web content may violate iframe +sandboxing policy. Description: This issue was addressed with +improved iframe sandbox enforcement.
    • +
    +
  • +
  • +

    CVE-2021-1870

    +
      +
    • Versions affected: WebKitGTK before 2.30.6 and WPE WebKit before +2.30.6.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: A remote attacker may be able to cause arbitrary code +execution. Apple is aware of a report that this issue may have been +actively exploited. Description: A logic issue was addressed with +improved restrictions.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0003.html b/aperezdc/learn-discover-rework/security/WSA-2021-0003.html new file mode 100644 index 000000000..5da080f62 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0003.html @@ -0,0 +1,340 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0003

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2021-1788

    +
      +
    • Versions affected: WebKitGTK before 2.32.0 and WPE WebKit before +2.32.0.
    • +
    • Credit to Francisco Alonso (@revskills).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-1844

    +
      +
    • Versions affected: WebKitGTK before 2.32.0 and WPE WebKit before +2.32.0.
    • +
    • Credit to Clément Lecigne of Google’s Threat Analysis Group, Alison +Huffman of Microsoft Browser Vulnerability Research.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved validation.
    • +
    +
  • +
  • +

    CVE-2021-1871

    +
      +
    • Versions affected: WebKitGTK before 2.32.0 and WPE WebKit before +2.32.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: A remote attacker may be able to cause arbitrary code +execution. Apple is aware of a report that this issue may have been +actively exploited. Description: A logic issue was addressed with +improved restrictions.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0004.html b/aperezdc/learn-discover-rework/security/WSA-2021-0004.html new file mode 100644 index 000000000..49e3ad759 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0004.html @@ -0,0 +1,558 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0004

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2021-1817

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.0.
    • +
    • Credit to zhunki.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2021-1820

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.0.
    • +
    • Credit to André Bargull.
    • +
    • Impact: Processing maliciously crafted web content may result in the +disclosure of process memory. Description: A memory initialization +issue was addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-1825

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.0.
    • +
    • Credit to Alex Camboe of Aon’s Cyber Solutions.
    • +
    • Impact: Processing maliciously crafted web content may lead to a +cross site scripting attack. Description: An input validation issue +was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2021-1826

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2021-21775

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Marcin Towalski of Cisco Talos.
    • +
    • A use-after-free vulnerability exists in the way certain events are +processed for ImageLoader objects of WebKit. A specially crafted web +page can lead to a potential information leak and further memory +corruption. In order to trigger the vulnerability, a victim must be +tricked into visiting a malicious webpage.
    • +
    +
  • +
  • +

    CVE-2021-21779

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Marcin Towalski of Cisco Talos.
    • +
    • A use-after-free vulnerability exists in the way that WebKit +GraphicsContext handles certain events. A specially crafted web page +can lead to a potential information leak and further memory +corruption. A victim must be tricked into visiting a malicious web +page to trigger this vulnerability.
    • +
    +
  • +
  • +

    CVE-2021-21806

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.6.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • An exploitable use-after-free vulnerability exists in WebKit. A +specially crafted HTML web page can cause a use-after-free +condition, resulting in remote code execution. The victim needs to +visit a malicious web site to trigger the vulnerability.
    • +
    +
  • +
  • +

    CVE-2021-30661

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.30.0.
    • +
    • Credit to yangkang(@dnpushme) of 360 ATA.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30663

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An integer overflow was +addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2021-30665

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to yangkang (@dnpushme)&zerokeeper&bianliang of 360 ATA.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A memory corruption +issue was addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2021-30666

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.26.0.
    • +
    • Credit to yangkang (@dnpushme)&zerokeeper&bianliang of 360 ATA.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A buffer overflow +issue was addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30682

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.0.
    • +
    • Credit to an anonymous researcher and 1lastBr3ath.
    • +
    • Impact: A malicious application may be able to leak sensitive user +information. Description: A logic issue was addressed with improved +restrictions.
    • +
    +
  • +
  • +

    CVE-2021-30689

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2021-30720

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to David Schütz (@xdavidhu).
    • +
    • Impact: A malicious website may be able to access restricted ports +on arbitrary servers. Description: A logic issue was addressed with +improved restrictions.
    • +
    +
  • +
  • +

    CVE-2021-30734

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Jack Dates of RET2 Systems, Inc. (@ret2systems) working +with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30744

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Dan Hite of jsontop.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A cross-origin issue +with iframe elements was addressed with improved tracking of +security origins.
    • +
    +
  • +
  • +

    CVE-2021-30749

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to an anonymous researcher and mipu94 of SEFCOM lab, ASU. +working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30758

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.2.
    • +
    • Credit to Christoph Guttandin of Media Codings.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2021-30761

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.26.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A memory corruption +issue was addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2021-30762

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.28.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30795

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30797

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Ivan Fratric of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to code +execution. Description: This issue was addressed with improved +checks.
    • +
    +
  • +
  • +

    CVE-2021-30799

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.3.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0005.html b/aperezdc/learn-discover-rework/security/WSA-2021-0005.html new file mode 100644 index 000000000..b8d195f93 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0005.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0005

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: September 20, 2021

    +
  • +
  • +

    Advisory ID: WSA-2021-0005

    +
  • +
  • +

    CVE identifiers: CVE-2021-30858.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2021-30858 +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0006.html b/aperezdc/learn-discover-rework/security/WSA-2021-0006.html new file mode 100644 index 000000000..492037c61 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0006.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2021-30846

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30848

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to code +execution. Description: A memory corruption issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30849

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to Sergei Glazunov of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: Multiple memory corruption +issues were addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30851

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Samuel Groß of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to code +execution. Description: A memory corruption vulnerability was +addressed with improved locking.
    • +
    +
  • +
  • +

    CVE-2021-30858

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-42762

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.1.
    • +
    • Credit to an anonymous reporter.
    • +
    • BubblewrapLauncher.cpp allows a limited sandbox bypass that allows a +sandboxed process to trick host processes into thinking the +sandboxed process is not confined by the sandbox, by abusing VFS +syscalls that manipulate its filesystem namespace. The impact is +limited to host services that create UNIX sockets that WebKit mounts +inside its sandbox, and the sandboxed process remains otherwise +confined. NOTE: this is similar to CVE-2021-41133.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2021-0007.html b/aperezdc/learn-discover-rework/security/WSA-2021-0007.html new file mode 100644 index 000000000..4d1018672 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2021-0007.html @@ -0,0 +1,410 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2021-0007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2021-0007

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2021-30809

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30818

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Amar Menezes (@amarekano) of Zon8Research.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2021-30823

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to David Gullasch of Recurity Labs.
    • +
    • Impact: An attacker in a privileged network position may be able to +bypass HSTS. Description: A logic issue was addressed with improved +restrictions.
    • +
    +
  • +
  • +

    CVE-2021-30836

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to Peter Nguyen Vu Hoang of STAR Labs.
    • +
    • Impact: Processing a maliciously crafted audio file may disclose +restricted memory. Description: An out-of-bounds read was addressed +with improved input validation.
    • +
    +
  • +
  • +

    CVE-2021-30884

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Visiting a maliciously crafted website may reveal a user’s +browsing history. Description: The issue was resolved with +additional restrictions on CSS compositing.
    • +
    +
  • +
  • +

    CVE-2021-30887

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.3.
    • +
    • Credit to Narendra Bhati (@imnarendrabhati) of Suma Soft Pvt. Ltd.
    • +
    • Impact: Processing maliciously crafted web content may lead to +unexpectedly unenforced Content Security Policy. Description: A +logic issue was addressed with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2021-30888

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Prakash (@1lastBr3ath).
    • +
    • Impact: A malicious website using Content Security Policy reports +may be able to leak information via redirect behavior. Description: +An information leakage issue was addressed.
    • +
    +
  • +
  • +

    CVE-2021-30889

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution, Description: A buffer overflow issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30890

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.3.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +universal cross site scripting. Description: A logic issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2021-30897

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: A malicious website may exfiltrate data cross-origin. +Description: An issue existed in the specification for the resource +timing API. The specification was updated and the updated +specification was implemented.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0001.html b/aperezdc/learn-discover-rework/security/WSA-2022-0001.html new file mode 100644 index 000000000..bde8647e1 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0001.html @@ -0,0 +1,424 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0001

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2021-30934

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Dani Biro.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A buffer overflow issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30936

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30951

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Pangu.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2021-30952

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to WeBin.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An integer overflow was +addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2021-30953

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to VRIJ.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An out-of-bounds read was +addressed with improved bounds checking.
    • +
    +
  • +
  • +

    CVE-2021-30954

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Kunlun Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2021-30984

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Kunlun Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A race condition was +addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2022-22594

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.4.
    • +
    • Credit to Martin Bajanik of fingerprintjs.com.
    • +
    • Impact: A website may be able to track sensitive user information. +Description: A cross-origin issue in the IndexDB API was addressed +with improved input validation. Notes: There is a public PoC +demonstrating this issue at safarileaks.com so it may have been +actively exploited.
    • +
    +
  • +
  • +

    CVE-2021-45481

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Processing maliciously crafted web content may cause an application +crash due to an incorrect memory allocation in +WebCore::ImageBufferCairoImageSurfaceBackend::create.
    • +
    +
  • +
  • +

    CVE-2021-45482

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.32.4.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Processing maliciously crafted web content may cause a memory +corruption issue (use-after-free) in +WebCore::ContainerNode::firstChild.
    • +
    +
  • +
  • +

    CVE-2021-45483

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.0.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Processing maliciously crafted web content may cause a memory +corruption issue (heap-use-after-free) in WebCore::Frame::page.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0002.html b/aperezdc/learn-discover-rework/security/WSA-2022-0002.html new file mode 100644 index 000000000..edd8ef94b --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0002.html @@ -0,0 +1,337 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0002

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-22589

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.5.
    • +
    • Credit to Heige of KnownSec 404 Team (knownsec.com) and Bo Qu of +Palo Alto Networks (paloaltonetworks.com).
    • +
    • Impact: Processing a maliciously crafted mail message may lead to +running arbitrary javascript. Description: A validation issue was +addressed with improved input sanitization.
    • +
    +
  • +
  • +

    CVE-2022-22590

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.5.
    • +
    • Credit to Toan Pham from Team Orca of Sea Security +(security.sea.com).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-22592

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.5.
    • +
    • Credit to Prakash (@1lastBr3ath).
    • +
    • Impact: Processing maliciously crafted web content may prevent +Content Security Policy from being enforced. Description: A logic +issue was addressed with improved state management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0003.html b/aperezdc/learn-discover-rework/security/WSA-2022-0003.html new file mode 100644 index 000000000..a494022da --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0003.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0003

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: February 17, 2022

    +
  • +
  • +

    Advisory ID: WSA-2022-0003

    +
  • +
  • +

    CVE identifiers: CVE-2022-22620.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2022-22620 +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.34.6.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0004.html b/aperezdc/learn-discover-rework/security/WSA-2022-0004.html new file mode 100644 index 000000000..7686cd997 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0004.html @@ -0,0 +1,350 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0004

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-22624

    +
      +
    • Versions affected: WebKitGTK before 2.36.0 and WPE WebKit before +2.34.7.
    • +
    • Credit to Kirin (@Pwnrin) of Tencent Security Xuanwu Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-22628

    +
      +
    • Versions affected: WebKitGTK before 2.36.0 and WPE WebKit before +2.34.7.
    • +
    • Credit to Kirin (@Pwnrin) of Tencent Security Xuanwu Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-22629

    +
      +
    • Versions affected: WebKitGTK before 2.36.0 and WPE WebKit before +2.34.7.
    • +
    • Credit to Jeonghoon Shin at Theori working with Trend Micro Zero Day +Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A buffer overflow issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-22637

    +
      +
    • Versions affected: WebKitGTK before 2.34.4 and WPE WebKit before +2.34.4.
    • +
    • Credit to Tom McKee of Google.
    • +
    • Impact: A malicious website may cause unexpected cross-origin +behavior. Description: A logic issue was addressed with improved +state management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0005.html b/aperezdc/learn-discover-rework/security/WSA-2022-0005.html new file mode 100644 index 000000000..1c0d72e12 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0005.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0005

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-26700

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.3.
    • +
    • Credit to ryuzaki.
    • +
    • Impact: Processing maliciously crafted web content may lead to code +execution. Description: A memory corruption issue was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2022-26709

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.3.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-26717

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.3.
    • +
    • Credit to Jeonghoon Shin of Theori.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-26716

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.3.
    • +
    • Credit to SorryMybad (@S0rryMybad) of Kunlun Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2022-26719

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.3.
    • +
    • Credit to Dongzhuo Zhao working with ADLab of Venustech.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2022-30293

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.1.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution or to a denial of service (application +crash). Description: A memory corruption issue that could cause a +heap use after free or a heap buffer overflow in +WebCore::TextureMapperLayer::setContentsLayer was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2022-30294

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.1.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution or to a denial of service (application +crash). Description: A memory corruption issue that could cause a +heap use after free or a heap buffer overflow in +WebCore::TextureMapperLayer::setContentsLayer was addressed with +improved state management. This is the same issue than +CVE-2022-30293.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0006.html b/aperezdc/learn-discover-rework/security/WSA-2022-0006.html new file mode 100644 index 000000000..a517c7df6 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0006.html @@ -0,0 +1,336 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-22662

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.0.
    • +
    • Credit to Prakash (@1lastBr3ath) of Threat Nix.
    • +
    • Impact: Processing maliciously crafted web content may disclose +sensitive user information. Description: A cookie management issue +was addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2022-22677

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: The video in a webRTC call may be interrupted if the audio +capture gets interrupted. Description: A logic issue in the handling +of concurrent media was addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2022-26710

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.4.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0007.html b/aperezdc/learn-discover-rework/security/WSA-2022-0007.html new file mode 100644 index 000000000..cf12210ac --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0007.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0007

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-32792

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.5.
    • +
    • Credit to Manfred Paul (@_manfp) working with Trend Micro Zero Day +Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An out-of-bounds write issue +was addressed with improved input validation.
    • +
    +
  • +
  • +

    CVE-2022-32816

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.5.
    • +
    • Credit to Dohyun Lee (@l33d0hyun) of SSD Secure Disclosure Labs & +DNSLab, Korea Univ.
    • +
    • Impact: Visiting a website that frames malicious content may lead to +UI spoofing. Description: The issue was addressed with improved UI +handling.
    • +
    +
  • +
  • +

    CVE-2022-2294

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.5 if +USE_LIBWEBRTC is enabled.
    • +
    • Credit to Jan Vojtesek of Avast Threat Intelligence team.
    • +
    • Heap buffer overflow in LibWebRTC allowed a remote attacker to +potentially exploit heap corruption via a crafted HTML page. NOTE: +The tarballs of WebKitGTK or WPE WebKit don’t ship LibWebRTC. Also +the LibWebRTC support is disabled by default. You only are affected +by this vulnerability if your build enabled the USE_LIBWEBRTC CMake +option and used the repository as source instead of the tarballs.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0008.html b/aperezdc/learn-discover-rework/security/WSA-2022-0008.html new file mode 100644 index 000000000..138eaedda --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0008.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0008

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: August 25, 2022

    +
  • +
  • +

    Advisory ID: WSA-2022-0008

    +
  • +
  • +

    CVE identifiers: CVE-2022-32893.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2022-32893 +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.7.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0009.html b/aperezdc/learn-discover-rework/security/WSA-2022-0009.html new file mode 100644 index 000000000..f8f11d052 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0009.html @@ -0,0 +1,337 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0009

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-32886

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.8.
    • +
    • Credit to P1umer, afang5472, xmzyshypnc.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A buffer overflow issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-32891

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.5.
    • +
    • Credit to @real_as3617, an anonymous researcher.
    • +
    • Impact: Visiting a website that frames malicious content may lead to +UI spoofing. Description: The issue was addressed with improved UI +handling.
    • +
    +
  • +
  • +

    CVE-2022-32912

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.8.
    • +
    • Credit to Jeonghoon Shin (@singi21a) at Theori working with Trend +Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An out-of-bounds read was +addressed with improved bounds checking. This issue only affects +MacOS builds (Linux builds are not affected).
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0010.html b/aperezdc/learn-discover-rework/security/WSA-2022-0010.html new file mode 100644 index 000000000..6f703e433 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0010.html @@ -0,0 +1,358 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0010

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-32888

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to P1umer (@p1umer).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: An out-of-bounds write issue +was addressed with improved bounds checking.
    • +
    +
  • +
  • +

    CVE-2022-32923

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to Wonyoung Jung (@nonetype_pwn) of KAIST Hacking Lab.
    • +
    • Impact: Processing maliciously crafted web content may disclose +internal states of the app. Description: A correctness issue in the +JIT was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2022-42799

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.2.
    • +
    • Credit to Jihwan Kim (@gPayl0ad), Dohyun Lee. (@l33d0hyun).
    • +
    • Impact: Visiting a malicious website may lead to user interface +spoofing. Description: The issue was addressed with improved UI +handling.
    • +
    +
  • +
  • +

    CVE-2022-42823

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.2.
    • +
    • Credit to Dohyun Lee (@l33d0hyun) of SSD Labs.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-42824

    +
      +
    • Versions affected: WebKitGTK before 2.38.2.
    • +
    • Credit to Abdulrahman Alqabandi of Microsoft Browser Vulnerability +Research, Ryan Shin of IAAI SecLab at Korea University, Dohyun Lee +(@l33d0hyun) of DNSLab at Korea University.
    • +
    • Impact: Processing maliciously crafted web content may disclose +sensitive user information. Description: A logic issue was addressed +with improved state management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2022-0011.html b/aperezdc/learn-discover-rework/security/WSA-2022-0011.html new file mode 100644 index 000000000..23f6357b3 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2022-0011.html @@ -0,0 +1,399 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2022-0011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2022-0011

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-42852

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to hazbinhotel working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing maliciously crafted web content may result in the +disclosure of process memory. Description: The issue was addressed +with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-42856

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to Clément Lecigne of Google’s Threat Analysis Group.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A type confusion issue was +addressed with improved state handling.
    • +
    +
  • +
  • +

    CVE-2022-42863

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2022-42867

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to Maddie Stone of Google Project Zero.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
  • +

    CVE-2022-46691

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory consumption issue +was addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-46692

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to KirtiKumar Anandrao Ramchandani.
    • +
    • Impact: Processing maliciously crafted web content may bypass Same +Origin Policy. Description: A logic issue was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2022-46698

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to Dohyun Lee (@l33d0hyun) of DNSLab at Korea University, +Ryan Shin of IAAI SecLab at Korea University.
    • +
    • Impact: Processing maliciously crafted web content may disclose +sensitive user information. Description: A logic issue was addressed +with improved checks.
    • +
    +
  • +
  • +

    CVE-2022-46699

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to Samuel Groß of Google V8 Security.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved state management.
    • +
    +
  • +
  • +

    CVE-2022-46700

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.3.
    • +
    • Credit to Samuel Groß of Google V8 Security.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved input validation.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0001.html b/aperezdc/learn-discover-rework/security/WSA-2023-0001.html new file mode 100644 index 000000000..246972f65 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0001.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0001

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-23517

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to YeongHyeon Choi (@hyeon101010), Hyeon Park +(@tree_segment), SeOk JEON (@_seokjeon), YoungSung Ahn (@_ZeroSung), +JunSeo Bae (@snakebjs0107), Dohyun Lee (@l33d0hyun) of Team +ApplePIE.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: The issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2023-23518

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to YeongHyeon Choi (@hyeon101010), Hyeon Park +(@tree_segment), SeOk JEON (@_seokjeon), YoungSung Ahn (@_ZeroSung), +JunSeo Bae (@snakebjs0107), Dohyun Lee (@l33d0hyun) of Team +ApplePIE.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: The issue was addressed with +improved memory handling.
    • +
    +
  • +
  • +

    CVE-2022-42826

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to Francisco Alonso (@revskills).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A use after free issue was +addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0002.html b/aperezdc/learn-discover-rework/security/WSA-2023-0002.html new file mode 100644 index 000000000..b88141985 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0002.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0002

+ + + + + +
+ +
+ +
    +
  • +

    Date Reported: February 15, 2023

    +
  • +
  • +

    Advisory ID: WSA-2023-0002

    +
  • +
  • +

    CVE identifiers: CVE-2023-23529.

    +
  • +
+

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • CVE-2023-23529 +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.5.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A type confusion +issue was addressed with improved checks.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0003.html b/aperezdc/learn-discover-rework/security/WSA-2023-0003.html new file mode 100644 index 000000000..e183e2155 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0003.html @@ -0,0 +1,375 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0003 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0003

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-25358

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.36.8.
    • +
    • Credit to Chijin Zhou of ShuiMuYuLin Ltd and Tsinghua wingtecher +lab.
    • +
    • A use-after-free vulnerability exists in WebCore::RenderLayer. This +issue allows remote attackers to execute arbitrary code or cause a +denial of service (memory corruption and application crash) via a +crafted web site. This is the same issue as CVE-2023-25360, +CVE-2023-25361, CVE-2023-25362 and CVE-2023-25363.
    • +
    +
  • +
  • +

    CVE-2022-0108

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.6 and 2.40 +branch before 2.40.1.
    • +
    • Credit to Luan Herrera (@lbherrera_).
    • +
    • Impact: An HTML document may be able to render iframes with +sensitive user information. Description: This issue was addressed +with improved iframe sandbox enforcement.
    • +
    +
  • +
  • +

    CVE-2022-32885

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.6 and 2.40 +branch before 2.40.1.
    • +
    • Credit to P1umer(@p1umer) and Q1IQ(@q1iqF).
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Description: A memory corruption issue was +addressed with improved validation.
    • +
    +
  • +
  • +

    CVE-2023-27932

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.6 and 2.40 +branch before 2.40.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may bypass Same +Origin Policy. Description: This issue was addressed with improved +state management.
    • +
    +
  • +
  • +

    CVE-2023-27954

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.6 and 2.40 +branch before 2.40.1.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: A website may be able to track sensitive user information. +Description: The issue was addressed by removing origin information.
    • +
    +
  • +
  • +

    CVE-2023-28205

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.6 and 2.40 +branch before 2.40.1.
    • +
    • Credit to Clément Lecigne of Google’s Threat Analysis Group and +Donncha Ó Cearbhaill of Amnesty International’s Security Lab.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use after free +issue was addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0004.html b/aperezdc/learn-discover-rework/security/WSA-2023-0004.html new file mode 100644 index 000000000..bb350bc18 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0004.html @@ -0,0 +1,326 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0004 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0004

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-28204

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.2.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing web content may disclose sensitive information. +Apple is aware of a report that this issue may have been actively +exploited. Description: An out-of-bounds read was addressed with +improved input validation.
    • +
    +
  • +
  • +

    CVE-2023-32373

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.2.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A use-after-free +issue was addressed with improved memory management.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0005.html b/aperezdc/learn-discover-rework/security/WSA-2023-0005.html new file mode 100644 index 000000000..de6106ad1 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0005.html @@ -0,0 +1,338 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0005 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0005

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-48503

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to Dongzhuo Zhao working with ADLab of Venustech, and ZhaoHai +of Cyberpeace Tech Co., Ltd.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved bounds checks.
    • +
    +
  • +
  • +

    CVE-2023-32435

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.0.
    • +
    • Credit to Georgy Kucherin (@kucher1n), Leonid Bezvershenko (@bzvr_), +and Boris Larin (@oct0xor) of Kaspersky.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Apple is aware of a report that this issue may have been actively +exploited. Description: A memory corruption issue was addressed with +improved state management.
    • +
    +
  • +
  • +

    CVE-2023-32439

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.3.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been actively exploited. Description: A type confusion +issue was addressed with improved checks.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0006.html b/aperezdc/learn-discover-rework/security/WSA-2023-0006.html new file mode 100644 index 000000000..bc525c6e2 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0006.html @@ -0,0 +1,324 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0006 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0006

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-37450

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.4.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Apple is aware of a report that this issue may have been actively +exploited. Description: The issue was addressed with improved +checks.
    • +
    +
  • +
  • +

    CVE-2023-32393

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.0.
    • +
    • Credit to Francisco Alonso (@revskills).
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0007.html b/aperezdc/learn-discover-rework/security/WSA-2023-0007.html new file mode 100644 index 000000000..212e6fbbc --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0007.html @@ -0,0 +1,394 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0007 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0007

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-38133

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to YeongHyeon Choi (@hyeon101010).
    • +
    • Impact: Processing web content may disclose sensitive information. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38572

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Narendra Bhati (twitter.com/imnarendrabhati) of Suma Soft +Pvt. Ltd, Pune - India.
    • +
    • Impact: A website may be able to bypass Same Origin Policy. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38592

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Narendra Bhati (twitter.com/imnarendrabhati) of Suma Soft +Pvt. Ltd, Pune - India, Valentino Dalla Valle, Pedro Bernardo, Marco +Squarcina, and Lorenzo Veronese of TU Wien.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A logic issue was addressed with improved restrictions.
    • +
    +
  • +
  • +

    CVE-2023-38594

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Yuhao Hu.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38595

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to an anonymous researcher, Jiming Wang, and Jikai Ren.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38597

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to 이준성(Junsung Lee) of Cross Republic.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38599

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Hritvik Taneja, Jason Kim, Jie Jeff Xu, Stephan van +Schaik, Daniel Genkin, and Yuval Yarom.
    • +
    • Impact: A website may be able to track sensitive user information. +Description: A logic issue was addressed with improved state +management.
    • +
    +
  • +
  • +

    CVE-2023-38600

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Anonymous working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-38611

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Francisco Alonso (@revskills).
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0008.html b/aperezdc/learn-discover-rework/security/WSA-2023-0008.html new file mode 100644 index 000000000..720ba7b7c --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0008.html @@ -0,0 +1,335 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0008

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-28198

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.1.
    • +
    • Credit to hazbinhotel working with Trend Micro Zero Day Initiative.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A use-after-free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2023-32370

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.1.
    • +
    • Credit to Gertjan Franken of imec-DistriNet, KU Leuven.
    • +
    • Impact: Content Security Policy to block domains with wildcards may +fail. Description: A logic issue was addressed with improved +validation.
    • +
    +
  • +
  • +

    CVE-2023-40397

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Johan Carlsson (joaxcar).
    • +
    • Impact: A remote attacker may be able to cause arbitrary javascript +code execution. Description: The issue was addressed with improved +checks.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0009.html b/aperezdc/learn-discover-rework/security/WSA-2023-0009.html new file mode 100644 index 000000000..6a9196a03 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0009.html @@ -0,0 +1,372 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0009 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0009

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-39928

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.0.
    • +
    • Credit to Marcin ‘Icewall’ Noga of Cisco Talos.
    • +
    • A use-after-free vulnerability exists in the MediaRecorder API of +the WebKit GStreamer-based ports (WebKitGTK and WPE WebKit). A +specially crafted web page can abuse this vulnerability to cause +memory corruption and potentially arbitrary code execution. A user +would need to to visit a malicious webpage to trigger this +vulnerability. WebKit Bugzilla: 260649.
    • +
    +
  • +
  • +

    CVE-2023-35074

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.0.
    • +
    • Credit to Abysslab Dong Jun Kim(@smlijun) and Jong Seong +Kim(@nevul37).
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.
    • +
    +
  • +
  • +

    CVE-2023-39434

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to Francisco Alonso (@revskills), and Dohyun Lee (@l33d0hyun) +of PK Security.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A use-after-free issue was addressed with improved +memory management.
    • +
    +
  • +
  • +

    CVE-2023-40451

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.40.5.
    • +
    • Credit to an anonymous researcher.
    • +
    • Impact: An attacker with JavaScript execution may be able to execute +arbitrary code. Description: This issue was addressed with improved +iframe sandbox enforcement.
    • +
    +
  • +
  • +

    CVE-2023-41074

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.0.
    • +
    • Credit to 이준성(Junsung Lee) of Cross Republic and me Li.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved checks.
    • +
    +
  • +
  • +

    CVE-2023-41993

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.1.
    • +
    • Credit to Bill Marczak of The Citizen Lab at The University of +Toronto’s Munk School and Maddie Stone of Google’s Threat Analysis +Group.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Apple is aware of a report that this issue may have been actively +exploited. Description: The issue was addressed with improved +checks.
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0010.html b/aperezdc/learn-discover-rework/security/WSA-2023-0010.html new file mode 100644 index 000000000..cd0beceed --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0010.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0010 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0010

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2022-32919

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to @real_as3617.
    • +
    • Impact: Visiting a website that frames malicious content may lead to +UI spoofing. Description: The issue was addressed with improved UI +handling.
    • +
    • WebKit Bugzilla: 247461
    • +
    +
  • +
  • +

    CVE-2022-32933

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to Binoy Chitale, MS student, Stony Brook University, Nick +Nikiforakis, Associate Professor, Stony Brook University, Jason +Polakis, Associate Professor, University of Illinois at Chicago, Mir +Masood Ali, PhD student, University of Illinois at Chicago, Chris +Kanich, Associate Professor, University of Illinois at Chicago, and +Mohammad Ghasemisharif, PhD Candidate, University of Illinois at +Chicago.
    • +
    • Impact: A website may be able to track the websites a user visited +in private browsing mode. Description: An information disclosure +issue was addressed by removing the vulnerable code.
    • +
    • WebKit Bugzilla: 239547
    • +
    +
  • +
  • +

    CVE-2022-46705

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to Hyeon Park (@tree_segment) of Team ApplePIE.
    • +
    • Impact: Visiting a malicious website may lead to address bar +spoofing. Description: A spoofing issue existed in the handling of +URLs. This issue was addressed with improved input validation.
    • +
    • WebKit Bugzilla: 247287
    • +
    +
  • +
  • +

    CVE-2022-46725

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.4.
    • +
    • Credit to Hyeon Park (@tree_segment) of Team ApplePIE.
    • +
    • Impact: Visiting a malicious website may lead to address bar +spoofing. Description: A spoofing issue existed in the handling of +URLs. This issue was addressed with improved input validation.
    • +
    • WebKit Bugzilla: 247289
    • +
    +
  • +
  • +

    CVE-2023-32359

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.0.
    • +
    • Credit to Claire Houston.
    • +
    • Impact: A user’s password may be read aloud by a text-to-speech +accessibility feature. Description: This issue was addressed with +improved redaction of sensitive information.
    • +
    • WebKit Bugzilla: 248717
    • +
    +
  • +
  • +

    CVE-2023-41983

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.2.
    • +
    • Credit to 이준성(Junsung Lee).
    • +
    • Impact: Processing web content may lead to a denial-of-service. +Description: The issue was addressed with improved memory handling.
    • +
    • WebKit Bugzilla: 260757
    • +
    +
  • +
  • +

    CVE-2023-42852

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.2.
    • +
    • Credit to Pedro Ribeiro (@pedrib1337) and Vitor Pedreira (@0xvhp_) of Agile Information Security.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A logic issue was addressed with improved checks.
    • +
    • WebKit Bugzilla: 260173
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0011.html b/aperezdc/learn-discover-rework/security/WSA-2023-0011.html new file mode 100644 index 000000000..b3a009843 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0011.html @@ -0,0 +1,328 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0011

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-42916

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.3.
    • +
    • Credit to Clément Lecigne of Google’s Threat Analysis Group.
    • +
    • Impact: Processing web content may disclose sensitive information. +Apple is aware of a report that this issue may have been actively +exploited. Description: An out-of-bounds read was addressed with +improved input validation.
    • +
    • WebKit Bugzilla: 265041
    • +
    +
  • +
  • +

    CVE-2023-42917

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.3.
    • +
    • Credit to Clément Lecigne of Google’s Threat Analysis Group.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Apple is aware of a report that this issue may have been actively +exploited. Description: A memory corruption vulnerability was +addressed with improved locking.
    • +
    • WebKit Bugzilla: 265067
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2023-0012.html b/aperezdc/learn-discover-rework/security/WSA-2023-0012.html new file mode 100644 index 000000000..8d391280a --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2023-0012.html @@ -0,0 +1,324 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2023-0012 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2023-0012

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2023-42883

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.4.
    • +
    • Credit to Zoom Offensive Security Team.
    • +
    • Impact: Processing a SVG image may lead to a denial-of-service. +Description: The issue was addressed with improved memory handling.
    • +
    • WebKit Bugzilla: 263349
    • +
    +
  • +
  • +

    CVE-2023-42890

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.0.
    • +
    • Credit to Pwn2car.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.
    • +
    • WebKit Bugzilla: 259830
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/WSA-2024-0001.html b/aperezdc/learn-discover-rework/security/WSA-2024-0001.html new file mode 100644 index 000000000..ca47e1b47 --- /dev/null +++ b/aperezdc/learn-discover-rework/security/WSA-2024-0001.html @@ -0,0 +1,372 @@ + + + + + + + + + + + + WebKitGTK and WPE WebKit Security Advisory WSA-2024-0001 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+

WebKitGTK and WPE WebKit Security Advisory WSA-2024-0001

+ + + + + +
+ +
+ + +

Several vulnerabilities were discovered in WebKitGTK and WPE WebKit.

+
    +
  • +

    CVE-2024-23222

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.5.
    • +
    • Credit to Apple.
    • +
    • Impact: Processing maliciously crafted web content may lead to +arbitrary code execution. Apple is aware of a report that this issue +may have been exploited. Description: A type confusion issue was +addressed with improved checks.
    • +
    • WebKit Bugzilla: 267134
    • +
    +
  • +
  • +

    CVE-2024-23206

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.5.
    • +
    • Credit to An anonymous researcher.
    • +
    • Impact: A maliciously crafted webpage may be able to fingerprint the +user. Description: An access issue was addressed with improved +access restrictions.
    • +
    • WebKit Bugzilla: 262699
    • +
    +
  • +
  • +

    CVE-2024-23213

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.5.
    • +
    • Credit to Wangtaiyu of Zhongfu info.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: The issue was addressed with improved memory handling.
    • +
    • WebKit Bugzilla: 266619
    • +
    +
  • +
  • +

    CVE-2023-40414

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.1.
    • +
    • Credit to Francisco Alonso (@revskills).
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A use-after-free issue was addressed with improved +memory management.
    • +
    • WebKit Bugzilla: 258992
    • +
    +
  • +
  • +

    CVE-2023-42833

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.38.0.
    • +
    • Credit to Dong Jun Kim (@smlijun) and Jong Seong Kim (@nevul37) of +AbyssLab.
    • +
    • Impact: Processing web content may lead to arbitrary code execution. +Description: A correctness issue was addressed with improved checks.
    • +
    • WebKit Bugzilla: 258592
    • +
    +
  • +
  • +

    CVE-2014-1745

    +
      +
    • Versions affected: WebKitGTK and WPE WebKit before 2.42.0.
    • +
    • Credit to An anonymous researcher.
    • +
    • Impact: Processing a file may lead to a denial-of-service or +potentially disclose memory contents. Description: The issue was +addressed with improved checks.
    • +
    • WebKit Bugzilla: 249434
    • +
    +
  • +
+

We recommend updating to the latest stable versions of WebKitGTK and WPE +WebKit. It is the best way to ensure that you are running safe versions +of WebKit. Please check our websites for information about the latest +stable releases.

+

Further information about WebKitGTK and WPE WebKit security advisories can be found at: +https://webkitgtk.org/security.html or https://wpewebkit.org/security/.

+ + + + +
+ +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/security/index.html b/aperezdc/learn-discover-rework/security/index.html new file mode 100644 index 000000000..e472895ba --- /dev/null +++ b/aperezdc/learn-discover-rework/security/index.html @@ -0,0 +1,683 @@ + + + + + + + + + + + + Security Advisories + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

Security Advisories

+
+
+
  1. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2024-0001 +

    +

    The latest security advisory available.

    +
    +
  2. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0012 +

    +
    +
  3. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0011 +

    +
    +
  4. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0010 +

    +
    +
  5. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0009 +

    +
    +
  6. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0008 +

    +
    +
  7. + + +

    +WebKitGTK and WPE WebKit Security Advisory WSA-2023-0007 +

    +
    +
  8. + + +

    +Security Advisory WSA-2023-0006 +

    +
    +
  9. + + +

    +Security Advisory WSA-2023-0005 +

    +
    +
  10. + + +

    +Security Advisory WSA-2023-0004 +

    +
    +
  11. + + +

    +Security Advisory WSA-2023-0003 +

    +
    +
  12. + + +

    +Security Advisory WSA-2023-0002 +

    +
    +
  13. + + +

    +Security Advisory WSA-2023-0001 +

    +
    +
  14. + + +

    +Security Advisory WSA-2022-0011 +

    +
    +
  15. + + +

    +Security Advisory WSA-2022-0010 +

    +
    +
  16. + + +

    +Security Advisory WSA-2022-0009 +

    +
    +
  17. + + +

    +Security Advisory WSA-2022-0008 +

    +
    +
  18. + + +

    +Security Advisory WSA-2022-0007 +

    +
    +
  19. + + +

    +Security Advisory WSA-2022-0006 +

    +
    +
  20. + + +

    +Security Advisory WSA-2022-0005 +

    +
    +
  21. + + +

    +Security Advisory WSA-2022-0004 +

    +
    +
  22. + + +

    +Security Advisory WSA-2022-0003 +

    +
    +
  23. + + +

    +Security Advisory WSA-2022-0002 +

    +
    +
  24. + + +

    +Security Advisory WSA-2022-0001 +

    +
    +
  25. + + +

    +Security Advisory WSA-2021-0007 +

    +
    +
  26. + + +

    +Security Advisory WSA-2021-0006 +

    +
    +
  27. + + +

    +Security Advisory WSA-2021-0005 +

    +
    +
  28. + + +

    +Security Advisory WSA-2021-0004 +

    +
    +
  29. + + +

    +Security Advisory WSA-2021-0003 +

    +
    +
  30. + + +

    +Security Advisory WSA-2021-0002 +

    +
    +
  31. + + +

    +Security Advisory WSA-2021-0001 +

    +
    +
  32. + + +

    +Security Advisory WSA-2020-0009 +

    +
    +
  33. + + +

    +Security Advisory WSA-2020-0008 +

    +
    +
  34. + + +

    +Security Advisory WSA-2020-0007 +

    +
    +
  35. + + +

    +Security Advisory WSA-2020-0006 +

    +
    +
  36. + + +

    +Security Advisory WSA-2020-0005 +

    +
    +
  37. + + +

    +Security Advisory WSA-2020-0004 +

    +
    +
  38. + + +

    +Security Advisory WSA-2020-0003 +

    +
    +
  39. + + +

    +Security Advisory WSA-2020-0002 +

    +
    +
  40. + + +

    +Security Advisory WSA-2020-0001 +

    +
    +
  41. + + +

    +Security Advisory WSA-2019-0006 +

    +
    +
  42. + + +

    +Security Advisory WSA-2019-0005 +

    +
    +
  43. + + +

    +Security Advisory WSA-2019-0004 +

    +
    +
  44. + + +

    +Security Advisory WSA-2019-0003 +

    +
    +
  45. + + +

    +Security Advisory WSA-2019-0002 +

    +
    +
  46. + + +

    +Security Advisory WSA-2019-0001 +

    +
    +
  47. + + +

    +Security Advisory WSA-2018-0009 +

    +
    +
  48. + + +

    +Security Advisory WSA-2018-0008 +

    +
    +
  49. + + +

    +Security Advisory WSA-2018-0007 +

    +
    +
  50. + + +

    +Security Advisory WSA-2018-0006 +

    +
    +
+
+ + +
+

+ If you’re using WPE WebKit, or are considering doing so, please take our brief user survey. Your input will help us make WPE WebKit better for you! +

+
+ + +
+ + +

If you’re using WPE WebKit, or are considering doing so, please take our brief user survey! Your input will help us make WPE WebKit better for you.

+
+ + + +
+
+ + + + + + + diff --git a/aperezdc/learn-discover-rework/sitemap.xml b/aperezdc/learn-discover-rework/sitemap.xml new file mode 100644 index 000000000..b0dbec657 --- /dev/null +++ b/aperezdc/learn-discover-rework/sitemap.xml @@ -0,0 +1,3007 @@ + + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.19-93.html + 2018-05-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2-21-1.html + 2018-05-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.20.0.html + 2018-05-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.21.2.html + 2018-05-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2018-0005.html + 2018-06-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.20.1.html + 2018-06-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-0.2.0.html + 2018-07-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.20.2.html + 2018-08-06T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2018-0006.html + 2018-08-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.0.0.html + 2018-08-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.21.91.html + 2018-08-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.0.html + 2018-08-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.21.92.html + 2018-09-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.0.html + 2018-10-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2018-0007.html + 2018-10-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.1.html + 2018-11-06T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.2.html + 2018-11-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2018-0008.html + 2018-11-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.1.0.html + 2018-12-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.3.html + 2018-12-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2018-0009.html + 2018-12-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.0.html + 2018-12-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.0.1.html + 2019-01-06T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0001.html + 2019-02-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.4.html + 2019-02-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.23.90.html + 2019-02-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.90.html + 2019-02-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpe-2.22.5.html + 2019-03-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.1.90.html + 2019-03-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.1.91.html + 2019-03-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.23.91.html + 2019-03-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.2.0.html + 2019-03-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.0.html + 2019-03-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.24.0.html + 2019-03-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0002.html + 2019-04-10T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.24.1.html + 2019-04-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.3.0.html + 2019-05-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.0.html + 2019-05-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.24.2.html + 2019-05-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0003.html + 2019-05-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.1.html + 2019-06-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.3.1.html + 2019-06-17T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.25.1.html + 2019-06-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.1.html + 2019-07-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.2.1.html + 2019-08-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.2.html + 2019-08-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.25.2.html + 2019-08-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.24.3.html + 2019-08-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0004.html + 2019-08-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.3.91.html + 2019-09-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.3.91.html + 2019-09-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.25.91.html + 2019-09-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.3.91.html + 2019-09-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.4.0.html + 2019-09-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.0.html + 2019-09-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.4.0.html + 2019-09-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.26.0.html + 2019-09-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.26.1.html + 2019-09-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.4.0.1.html + 2019-10-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.2.3.html + 2019-10-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.27.1.html + 2019-10-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0005.html + 2019-10-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/WPE%20WebKit-2.27.2.html + 2019-10-31T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.26.2.html + 2019-11-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2019-0006.html + 2019-11-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.27.3.html + 2019-11-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.27.4.html + 2020-01-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.26.3.html + 2020-01-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0001.html + 2020-01-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.1.html + 2020-02-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.27.90.html + 2020-02-11T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.26.4.html + 2020-02-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0002.html + 2020-02-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.27.91.html + 2020-02-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.5.1.html + 2020-03-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.5.90.html + 2020-03-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.5.90.html + 2020-03-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.4.2.html + 2020-03-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.6.0.html + 2020-03-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.0.html + 2020-03-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.28.0.html + 2020-03-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0003.html + 2020-03-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.6.0.html + 2020-03-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.7.1.html + 2020-04-11T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.28.1.html + 2020-04-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0004.html + 2020-04-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.28.2.html + 2020-04-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0005.html + 2020-04-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.6.1.html + 2020-05-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.28.3.html + 2020-07-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0006.html + 2020-07-10T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.29.1.html + 2020-07-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.28.4.html + 2020-07-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.7.1.html + 2020-07-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.1.html + 2020-07-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.29.2.html + 2020-07-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0007.html + 2020-07-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.29.90.html + 2020-08-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.7.90.html + 2020-09-04T15:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.7.90.html + 2020-09-04T16:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.29.91.html + 2020-09-04T19:30:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.7.90.html + 2020-09-04T20:59:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.8.0.html + 2020-09-11T12:15:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.0.html + 2020-09-11T13:45:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.0.html + 2020-09-11T15:28:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.8.0.html + 2020-09-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.1.html + 2020-09-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.2.html + 2020-10-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.3.html + 2020-11-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0008.html + 2020-11-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2020-0009.html + 2020-11-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.4.html + 2020-12-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.9.1.html + 2021-01-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.1.html + 2021-02-03T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.31.1.html + 2021-02-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.5.html + 2021-02-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0001.html + 2021-02-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.8.1.html + 2021-02-22T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.9.90.html + 2021-03-06T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.31.90.html + 2021-03-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.1.html + 2021-03-10T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.31.91.html + 2021-03-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.9.91.html + 2021-03-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.9.1.html + 2021-03-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.2.html + 2021-03-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.30.6.html + 2021-03-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0002.html + 2021-03-22T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.32.0.html + 2021-03-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.10.0.html + 2021-03-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0003.html + 2021-03-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.3.html + 2021-03-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.9.90.html + 2021-04-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.90.html + 2021-04-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.91.html + 2021-04-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.32.1.html + 2021-05-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.8.4.html + 2021-05-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.9.92.html + 2021-05-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.10.0.html + 2021-05-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.33.1.html + 2021-05-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.10.0.html + 2021-06-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.10.1.html + 2021-06-10T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.33.2.html + 2021-06-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.32.2.html + 2021-07-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.32.3.html + 2021-07-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0004.html + 2021-07-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.11.1.html + 2021-08-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.10.1.html + 2021-09-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.33.90.html + 2021-09-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.32.4.html + 2021-09-17T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0005.html + 2021-09-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.12.0.html + 2021-09-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.0.html + 2021-10-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.0.html + 2021-10-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.1.html + 2021-10-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0006.html + 2021-10-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.11.1.html + 2021-11-03T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.11.90.html + 2021-11-11T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.12.0.html + 2021-11-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.2.html + 2021-11-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.13.1.html + 2021-11-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.35.1.html + 2021-11-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.13.2.html + 2021-12-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.3.html + 2021-12-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2021-0007.html + 2021-12-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.13.3.html + 2022-01-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.4.html + 2022-01-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0001.html + 2022-01-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.5.html + 2022-02-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0002.html + 2022-02-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.6.html + 2022-02-17T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0003.html + 2022-02-17T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.12.1.html + 2022-02-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.35.90.html + 2022-02-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.12.2.html + 2022-03-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.12.3.html + 2022-03-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.0.html + 2022-03-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.12.4.html + 2022-03-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.34.7.html + 2022-04-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0004.html + 2022-04-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/01-happy-birthday-wpe.html + 2022-04-21T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.1.html + 2022-04-22T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.13.1.html + 2022-05-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.13.2.html + 2022-05-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.2.html + 2022-05-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.3.html + 2022-05-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0005.html + 2022-05-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.13.90.html + 2022-06-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/02-overview-of-wpe.html + 2022-07-01T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.4.html + 2022-07-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0006.html + 2022-07-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/03-wpe-graphics-architecture.html + 2022-07-15T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/04-wpe-qa-tooling.html + 2022-07-28T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.5.html + 2022-07-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0007.html + 2022-07-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.12.1.html + 2022-07-31T12:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.12.2.html + 2022-07-31T17:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.37.1.html + 2022-08-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.6.html + 2022-08-07T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.12.1.html + 2022-08-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.13.1.html + 2022-08-09T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.13.3.html + 2022-08-11T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.37.90.html + 2022-08-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.13.90.html + 2022-08-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.14.0.html + 2022-08-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.12.3.html + 2022-08-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.7.html + 2022-08-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0008.html + 2022-08-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.15.1.html + 2022-09-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.37.91.html + 2022-09-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.14.1.html + 2022-09-06T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.36.8.html + 2022-09-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.0.html + 2022-09-16T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.14.0.html + 2022-09-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0009.html + 2022-09-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.0.html + 2022-09-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.16.0.html + 2022-09-27T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/04-wpe-networking-overview.html + 2022-09-29T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/2022-success-metrological.html + 2022-10-15T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.16.1.html + 2022-10-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.1.html + 2022-10-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.2.html + 2022-11-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0010.html + 2022-11-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.3.html + 2022-12-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2022-0011.html + 2022-12-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/2023-use-case-digital-signage.html + 2023-01-06T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/05-new-svg-engine.html + 2023-01-19T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.39.5.html + 2023-01-19T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.14.1.html + 2023-02-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.4.html + 2023-02-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0001.html + 2023-02-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.5.html + 2023-02-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0002.html + 2023-02-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.39.90.html + 2023-02-23T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.1.html + 2023-03-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/06-integrating-wpe.html + 2023-03-07T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.39.91.html + 2023-03-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.17.1.html + 2023-03-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.0.html + 2023-03-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpebackend-fdo-1.14.2.html + 2023-03-22T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.38.6.html + 2023-04-19T22:30:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.1.html + 2023-04-19T23:30:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0003.html + 2023-04-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.41.2.html + 2023-04-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.15.1.html + 2023-05-08T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.17.90.html + 2023-05-12T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.0.html + 2023-05-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0004.html + 2023-05-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.2.html + 2023-05-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0005.html + 2023-06-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.3.html + 2023-06-29T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0006.html + 2023-07-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.4.html + 2023-07-21T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.40.5.html + 2023-08-01T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0007.html + 2023-08-02T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0008.html + 2023-09-11T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.0.html + 2023-09-20T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0009.html + 2023-09-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.1.html + 2023-09-28T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0010.html + 2023-11-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.1.html + 2023-11-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.2.html + 2023-11-15T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.43.1.html + 2023-11-24T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.19.1.html + 2023-11-30T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.3.html + 2023-12-04T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0011.html + 2023-12-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.2.html + 2023-12-13T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.4.html + 2023-12-14T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2023-0012.html + 2023-12-18T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.14.2.html + 2024-01-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/libwpe-1.15.2.html + 2024-01-25T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/07-creating-wpe-backends.html + 2024-01-29T06:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/2024-use-case-server-side-rendering.html + 2024-02-01T00:00:00.000Z + yearly + 0.75 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/wpewebkit-2.42.5.html + 2024-02-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/WSA-2024-0001.html + 2024-02-05T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/cog-0.18.3.html + 2024-02-26T00:00:00.000Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/README/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/aperez/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/csaavedra/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/llepage/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/lmoura/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/magomez/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/nzimmermann/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/_authors/pgriffis/ + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/a-good-choice.html + 2024-02-28T15:36:09.955Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/architecture.html + 2024-02-28T15:36:09.955Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/builds.html + 2024-02-28T15:36:09.955Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/faq.html + 2024-02-28T15:36:09.955Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/get-wpe.html + 2024-02-28T15:36:09.955Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/ + 2024-02-28T15:36:09.955Z + yearly + 0.9 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/supported-hardware.html + 2024-02-28T15:36:09.955Z + monthly + 0.7 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/what-is-embedded.html + 2024-02-28T15:36:09.955Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/blog/ + 2024-02-28T15:36:10.027Z + weekly + 0.9 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/developers/ + 2024-02-28T15:36:10.031Z + yearly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/ + 2024-02-28T15:36:10.031Z + yearly + 1 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/about/get-started.html + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitApplicationInfo/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAuthenticationRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitAutomationSession/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardList/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitBackForwardListItem/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenu/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitContextMenuItem/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitCookieManager/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitDownload/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitEditorState/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFaviconDatabase/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFileChooserRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFindController/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitFormSubmissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitGeolocationPermissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitHitTestResult/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitInstallMissingMediaPluginsPermissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitApplicationInfo/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAuthenticationRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitAutomationSession/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardList/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitBackForwardListItem/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenu/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitContextMenuItem/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitCookieManager/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitDownload/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitEditorState/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFaviconDatabase/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFileChooserRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFindController/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitFormSubmissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitGeolocationPermissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitHitTestResult/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitInstallMissingMediaPluginsPermissionRequest/ + 2024-02-28T15:36:10.031Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationAction/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNavigationPolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNetworkProxySettings/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotification/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitNotificationPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPlugin/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitPolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitResponsePolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSecurityOrigin/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitSettings/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURIResponse/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitURISchemeRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserContentManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitUserMediaPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebContext/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebResource/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebView/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebViewBackend/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteData/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWebsiteDataManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/WebKitWindowProperties/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/annotation-glossary/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch01/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ch02/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/index-all/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitError/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationAction/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNavigationPolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNetworkProxySettings/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotification/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitNotificationPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPlugin/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitPolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitResponsePolicyDecision/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSecurityOrigin/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitSettings/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURIResponse/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitURISchemeRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserContentManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitUserMediaPermissionRequest/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebContext/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebResource/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebView/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebViewBackend/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteData/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWebsiteDataManager/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/WebKitWindowProperties/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/annotation-glossary/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch01/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ch02/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/index-all/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitError/ + 2024-02-28T15:36:10.035Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitURIUtilities/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/2.23.90/wpe-0.1-WebKitUserContent/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitURIUtilities/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkit/unstable/wpe-0.1-WebKitUserContent/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitConsoleMessage/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMDocument/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMElement/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMNode/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitDOMObject/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitFrame/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitScriptWorld/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebEditor/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebExtension/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebHitTestResult/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/WebKitWebPage/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/annotation-glossary/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch01/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ch02/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/index-all/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/2.23.90/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitConsoleMessage/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMDocument/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMElement/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMNode/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitDOMObject/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitFrame/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitScriptWorld/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebEditor/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebExtension/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebHitTestResult/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/WebKitWebPage/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/annotation-glossary/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch01/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ch02/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/index-all/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/reference/wpewebkitwebextensions/unstable/ + 2024-02-28T15:36:10.039Z + monthly + 0.5 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/ + 2024-02-28T15:36:10.039Z + yearly + 0.7 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/schedule/ + 2024-02-28T15:36:10.047Z + yearly + 0.4 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/release/verify/ + 2024-02-28T15:36:10.047Z + yearly + 0.4 + + + + https://igalia.github.io/wpewebkit.org/aperezdc/learn-discover-rework/security/ + 2024-02-28T15:36:10.047Z + monthly + 0.5 + + + diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.css b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.css new file mode 100644 index 000000000..5a71a41aa --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.css @@ -0,0 +1,2050 @@ +/*! + * Bootstrap Grid v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +@-ms-viewport { + width: device-width; +} + +html { + box-sizing: border-box; + -ms-overflow-style: scrollbar; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: none; + } + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} +/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.min.css b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.min.css new file mode 100644 index 000000000..ea073e98a --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-grid.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.css b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.css new file mode 100644 index 000000000..5a75a62b6 --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.css @@ -0,0 +1,330 @@ +/*! + * Bootstrap Reboot v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; +} + +@-ms-viewport { + width: device-width; +} + +article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([tabindex]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg:not(:root) { + overflow: hidden; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.min.css b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.min.css new file mode 100644 index 000000000..ced046825 --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap-reboot.min.css @@ -0,0 +1,8 @@ +/*! + * Bootstrap Reboot v4.0.0 (https://getbootstrap.com) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} +/*# sourceMappingURL=bootstrap-reboot.min.css.map */ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css new file mode 100644 index 000000000..8eac957a5 --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css @@ -0,0 +1,10224 @@ +/*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014\00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: -ms-flexbox; + display: flex; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + -ms-flex-negative: 0; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + box-shadow: none; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} + +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: center; + justify-content: center; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: -ms-flexbox; + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills .nav-link { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill .nav-item { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.navbar { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} + +.navbar-nav .dropdown-menu { + position: static; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -ms-flex-pack: start; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + -ms-flex-direction: row; + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + -ms-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img, +.card-img-top, +.card-img-bottom { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group > .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-group { + display: -ms-flexbox; + display: flex; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} + +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.media { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; +} + +.media-body { + -ms-flex: 1; + flex: 1; +} + +.list-group { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.list-group-item + .list-group-item { + border-top-width: 0; +} + +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + -ms-flex-direction: row; + flex-direction: row; +} + +.list-group-horizontal .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} + +.list-group-horizontal .list-group-item.active { + margin-top: 0; +} + +.list-group-horizontal .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} + +.list-group-horizontal .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-sm .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-md .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-lg .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-xl .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} + +.list-group-flush .list-group-item { + border-right-width: 0; + border-left-width: 0; + border-radius: 0; +} + +.list-group-flush .list-group-item:first-child { + border-top-width: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none; +} + +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02); +} + +.modal-dialog-scrollable { + display: -ms-flexbox; + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-pack: center; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -ms-flexbox; + display: flex; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css.map b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css.map new file mode 100644 index 000000000..521afc5be --- /dev/null +++ b/aperezdc/learn-discover-rework/vendor/bootstrap/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ACJF;EAGI,eAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,eAAc;EAAd,cAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,eAAc;EAAd,oBAAc;EAId,kBAAc;EAAd,oBAAc;EAAd,kBAAc;EAAd,eAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAId,kBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,uBAAiC;EAKnC,+MAAyB;EACzB,6GAAwB;ADiB1B;;AEjBA;;;EAGE,sBAAsB;AFoBxB;;AEjBA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CCXa;AH+Bf;;AEdA;EACE,cAAc;AFiBhB;;AEPA;EACE,SAAS;EACT,kMCyOiN;ECzJ7M,eAtCY;EFxChB,gBCkP+B;EDjP/B,gBCsP+B;EDrP/B,cCnCgB;EDoChB,gBAAgB;EAChB,sBC9Ca;AHwDf;;AAEA;EECE,qBAAqB;AFCvB;;AEQA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;AFLnB;;AEkBA;EACE,aAAa;EACb,qBCoNuC;AHnOzC;;AEsBA;EACE,aAAa;EACb,mBCuF8B;AH1GhC;;AE8BA;;EAEE,0BAA0B;EAC1B,yCAAiC;EAAjC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAA8B;EAA9B,8BAA8B;AF3BhC;;AE8BA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AF3BtB;;AE8BA;;;EAGE,aAAa;EACb,mBAAmB;AF3BrB;;AE8BA;;;;EAIE,gBAAgB;AF3BlB;;AE8BA;EACE,gBCqJ+B;AHhLjC;;AE8BA;EACE,oBAAoB;EACpB,cAAc;AF3BhB;;AE8BA;EACE,gBAAgB;AF3BlB;;AE8BA;;EAEE,mBCwIkC;AHnKpC;;AE8BA;EExFI,cAAW;AJ8Df;;AEmCA;;EAEE,kBAAkB;EEnGhB,cAAW;EFqGb,cAAc;EACd,wBAAwB;AFhC1B;;AEmCA;EAAM,cAAc;AF/BpB;;AEgCA;EAAM,UAAU;AF5BhB;;AEmCA;EACE,cCtJe;EDuJf,qBCR4C;EDS5C,6BAA6B;AFhC/B;;AKhJE;EHmLE,cCX8D;EDY9D,0BCX+C;AHpBnD;;AEwCA;EACE,cAAc;EACd,qBAAqB;AFrCvB;;AK1JE;EHkME,cAAc;EACd,qBAAqB;AFpCzB;;AE6CA;;;;EAIE,iGC6DgH;ECjN9G,cAAW;AJ2Gf;;AE6CA;EAEE,aAAa;EAEb,mBAAmB;EAEnB,cAAc;AF7ChB;;AEqDA;EAEE,gBAAgB;AFnDlB;;AE2DA;EACE,sBAAsB;EACtB,kBAAkB;AFxDpB;;AE2DA;EAGE,gBAAgB;EAChB,sBAAsB;AF1DxB;;AEkEA;EACE,yBAAyB;AF/D3B;;AEkEA;EACE,oBCoFkC;EDnFlC,uBCmFkC;EDlFlC,cCnQgB;EDoQhB,gBAAgB;EAChB,oBAAoB;AF/DtB;;AEkEA;EAGE,mBAAmB;AFjErB;;AEyEA;EAEE,qBAAqB;EACrB,qBCqK2C;AH5O7C;;AE6EA;EAEE,gBAAgB;AF3ElB;;AEkFA;EACE,mBAAmB;EACnB,0CAA0C;AF/E5C;;AEkFA;;;;;EAKE,SAAS;EACT,oBAAoB;EErPlB,kBAAW;EFuPb,oBAAoB;AF/EtB;;AEkFA;;EAEE,iBAAiB;AF/EnB;;AEkFA;;EAEE,oBAAoB;AF/EtB;;AEqFA;EACE,iBAAiB;AFlFnB;;AEyFA;;;;EAIE,0BAA0B;AFtF5B;;AE2FE;;;;EAKI,eAAe;AFzFrB;;AE+FA;;;;EAIE,UAAU;EACV,kBAAkB;AF5FpB;;AE+FA;;EAEE,sBAAsB;EACtB,UAAU;AF5FZ;;AEgGA;;;;EASE,2BAA2B;AFlG7B;;AEqGA;EACE,cAAc;EAEd,gBAAgB;AFnGlB;;AEsGA;EAME,YAAY;EAEZ,UAAU;EACV,SAAS;EACT,SAAS;AFzGX;;AE8GA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,oBAAoB;EEjShB,iBAtCY;EFyUhB,oBAAoB;EACpB,cAAc;EACd,mBAAmB;AF3GrB;;AE8GA;EACE,wBAAwB;AF3G1B;;AAEA;;EE+GE,YAAY;AF5Gd;;AAEA;EEkHE,oBAAoB;EACpB,wBAAwB;AFhH1B;;AAEA;EEsHE,wBAAwB;AFpH1B;;AE4HA;EACE,aAAa;EACb,0BAA0B;AFzH5B;;AEgIA;EACE,qBAAqB;AF7HvB;;AEgIA;EACE,kBAAkB;EAClB,eAAe;AF7HjB;;AEgIA;EACE,aAAa;AF7Hf;;AAEA;EEiIE,wBAAwB;AF/H1B;;AM3VA;;EAEE,qBHySuC;EGvSvC,gBHyS+B;EGxS/B,gBHyS+B;AHoDjC;;AMzVA;EFgHM,iBAtCY;AJmRlB;;AM5VA;EF+GM,eAtCY;AJuRlB;;AM/VA;EF8GM,kBAtCY;AJ2RlB;;AMlWA;EF6GM,iBAtCY;AJ+RlB;;AMrWA;EF4GM,kBAtCY;AJmSlB;;AMxWA;EF2GM,eAtCY;AJuSlB;;AM1WA;EFyGM,kBAtCY;EEjEhB,gBH2S+B;AHkEjC;;AMzWA;EFmGM,eAtCY;EE3DhB,gBH8R+B;EG7R/B,gBHqR+B;AHuFjC;;AM1WA;EF8FM,iBAtCY;EEtDhB,gBH0R+B;EGzR/B,gBHgR+B;AH6FjC;;AM3WA;EFyFM,iBAtCY;EEjDhB,gBHsR+B;EGrR/B,gBH2Q+B;AHmGjC;;AM5WA;EFoFM,iBAtCY;EE5ChB,gBHkR+B;EGjR/B,gBHsQ+B;AHyGjC;;AElVA;EIpBE,gBHiFW;EGhFX,mBHgFW;EG/EX,SAAS;EACT,wCHzCa;AHmZf;;AMlWA;;EFMI,cAAW;EEHb,gBH8N+B;AHuIjC;;AMlWA;;EAEE,cHsQgC;EGrQhC,yBH8QmC;AHuFrC;;AM7VA;EC/EE,eAAe;EACf,gBAAgB;APgblB;;AM7VA;ECpFE,eAAe;EACf,gBAAgB;APqblB;;AM/VA;EACE,qBAAqB;ANkWvB;;AMnWA;EAII,oBHwP+B;AH2GnC;;AMzVA;EFjCI,cAAW;EEmCb,yBAAyB;AN4V3B;;AMxVA;EACE,mBHwBW;ECTP,kBAtCY;AJmXlB;;AMxVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHqclB;;AM9VA;EAMI,qBAAqB;AN4VzB;;AQ/cA;ECIE,eAAe;EAGf,YAAY;AT6cd;;AQ9cA;EACE,gBLigCwC;EKhgCxC,sBLRa;EKSb,yBLNgB;EOLd,sBP6OgC;EMvOlC,eAAe;EAGf,YAAY;ATsdd;;AQxcA;EAEE,qBAAqB;AR0cvB;;AQvcA;EACE,qBAA0B;EAC1B,cAAc;AR0chB;;AQvcA;EJkCI,cAAW;EIhCb,cL3BgB;AHqelB;;AWjfA;EPuEI,gBAAW;EOrEb,cRoCe;EQnCf,qBAAqB;AXofvB;;AWjfE;EACE,cAAc;AXoflB;;AW/eA;EACE,sBRqlCuC;EC3hCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOXd,qBP+O+B;AHgRnC;;AWvfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBR4Q6B;AHsOjC;;AE1SA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AHggBlB;;AWlfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX+etB;;AW1eA;EACE,iBR4jCuC;EQ3jCvC,kBAAkB;AX6epB;;AYrhBE;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0hBnB;;AcveI;EFtDF;ICWI,gBVqMK;EHkVT;AACF;;Ac7eI;EFtDF;ICWI,gBVsMK;EHuVT;AACF;;AcnfI;EFtDF;ICWI,gBVuMK;EH4VT;AACF;;AczfI;EFtDF;ICWI,iBVwMM;EHiWV;AACF;;AY/iBE;ECPA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0jBnB;;AcvgBI;EFrCE;IACE,gBT8LG;EHkXT;AACF;;Ac7gBI;EFrCE;IACE,gBT+LG;EHuXT;AACF;;AcnhBI;EFrCE;IACE,gBTgMG;EH4XT;AACF;;AczhBI;EFrCE;IACE,iBTiMI;EHiYV;AACF;;AY/iBE;ECrBA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbwkB3B;;AYhjBE;EACE,eAAe;EACf,cAAc;AZmjBlB;;AYrjBE;;EAMI,gBAAgB;EAChB,eAAe;AZojBrB;;AetmBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af8mB7B;;Ae3lBM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;Af8lBvB;;Ae1lBQ;EF4BJ,kBAAuB;EAAvB,cAAuB;EACvB,eAAwB;AbkkB5B;;Ae/lBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbukB5B;;AepmBQ;EF4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;Ab4kB5B;;AezmBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbilB5B;;Ae9mBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbslB5B;;AennBQ;EF4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;Ab2lB5B;;AennBM;EFMJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AbinBjB;;AepnBQ;EFPN,uBAAsC;EAAtC,mBAAsC;EAItC,oBAAuC;Ab4nBzC;;AeznBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbioBzC;;Ae9nBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbsoBzC;;AenoBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab2oBzC;;AexoBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbgpBzC;;Ae7oBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbqpBzC;;AelpBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab0pBzC;;AevpBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab+pBzC;;Ae5pBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AboqBzC;;AejqBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbyqBzC;;AetqBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab8qBzC;;Ae3qBQ;EFPN,kBAAsC;EAAtC,cAAsC;EAItC,eAAuC;AbmrBzC;;Ae3qBM;EAAwB,kBAAS;EAAT,SAAS;Af+qBvC;;Ae7qBM;EAAuB,kBZ6KG;EY7KH,SZ6KG;AHogBhC;;Ae9qBQ;EAAwB,iBADZ;EACY,QADZ;AfmrBpB;;AelrBQ;EAAwB,iBADZ;EACY,QADZ;AfurBpB;;AetrBQ;EAAwB,iBADZ;EACY,QADZ;Af2rBpB;;Ae1rBQ;EAAwB,iBADZ;EACY,QADZ;Af+rBpB;;Ae9rBQ;EAAwB,iBADZ;EACY,QADZ;AfmsBpB;;AelsBQ;EAAwB,iBADZ;EACY,QADZ;AfusBpB;;AetsBQ;EAAwB,iBADZ;EACY,QADZ;Af2sBpB;;Ae1sBQ;EAAwB,iBADZ;EACY,QADZ;Af+sBpB;;Ae9sBQ;EAAwB,iBADZ;EACY,QADZ;AfmtBpB;;AeltBQ;EAAwB,iBADZ;EACY,QADZ;AfutBpB;;AettBQ;EAAwB,kBADZ;EACY,SADZ;Af2tBpB;;Ae1tBQ;EAAwB,kBADZ;EACY,SADZ;Af+tBpB;;Ae9tBQ;EAAwB,kBADZ;EACY,SADZ;AfmuBpB;;Ae5tBU;EFRR,sBAA8C;AbwuBhD;;AehuBU;EFRR,uBAA8C;Ab4uBhD;;AepuBU;EFRR,gBAA8C;AbgvBhD;;AexuBU;EFRR,uBAA8C;AbovBhD;;Ae5uBU;EFRR,uBAA8C;AbwvBhD;;AehvBU;EFRR,gBAA8C;Ab4vBhD;;AepvBU;EFRR,uBAA8C;AbgwBhD;;AexvBU;EFRR,uBAA8C;AbowBhD;;Ae5vBU;EFRR,gBAA8C;AbwwBhD;;AehwBU;EFRR,uBAA8C;Ab4wBhD;;AepwBU;EFRR,uBAA8C;AbgxBhD;;Ac3wBI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef6yBrB;EezyBM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbgxB1B;Ee7yBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EboxB1B;EejzBM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbwxB1B;EerzBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb4xB1B;EezzBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbgyB1B;Ee7zBM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EboyB1B;Ee5zBI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbyzBf;Ee5zBM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Ebm0BvC;Eeh0BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebu0BvC;Eep0BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb20BvC;Eex0BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+0BvC;Ee50BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebm1BvC;Eeh1BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebu1BvC;Eep1BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb21BvC;Eex1BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+1BvC;Ee51BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebm2BvC;Eeh2BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebu2BvC;Eep2BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb22BvC;Eex2BM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eb+2BvC;Eev2BI;IAAwB,kBAAS;IAAT,SAAS;Ef02BrC;Eex2BI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EH8rB9B;Eex2BM;IAAwB,iBADZ;IACY,QADZ;Ef42BlB;Ee32BM;IAAwB,iBADZ;IACY,QADZ;Ef+2BlB;Ee92BM;IAAwB,iBADZ;IACY,QADZ;Efk3BlB;Eej3BM;IAAwB,iBADZ;IACY,QADZ;Efq3BlB;Eep3BM;IAAwB,iBADZ;IACY,QADZ;Efw3BlB;Eev3BM;IAAwB,iBADZ;IACY,QADZ;Ef23BlB;Ee13BM;IAAwB,iBADZ;IACY,QADZ;Ef83BlB;Ee73BM;IAAwB,iBADZ;IACY,QADZ;Efi4BlB;Eeh4BM;IAAwB,iBADZ;IACY,QADZ;Efo4BlB;Een4BM;IAAwB,iBADZ;IACY,QADZ;Efu4BlB;Eet4BM;IAAwB,kBADZ;IACY,SADZ;Ef04BlB;Eez4BM;IAAwB,kBADZ;IACY,SADZ;Ef64BlB;Ee54BM;IAAwB,kBADZ;IACY,SADZ;Efg5BlB;Eez4BQ;IFRR,cAA4B;Ebo5B5B;Ee54BQ;IFRR,sBAA8C;Ebu5B9C;Ee/4BQ;IFRR,uBAA8C;Eb05B9C;Eel5BQ;IFRR,gBAA8C;Eb65B9C;Eer5BQ;IFRR,uBAA8C;Ebg6B9C;Eex5BQ;IFRR,uBAA8C;Ebm6B9C;Ee35BQ;IFRR,gBAA8C;Ebs6B9C;Ee95BQ;IFRR,uBAA8C;Eby6B9C;Eej6BQ;IFRR,uBAA8C;Eb46B9C;Eep6BQ;IFRR,gBAA8C;Eb+6B9C;Eev6BQ;IFRR,uBAA8C;Ebk7B9C;Ee16BQ;IFRR,uBAA8C;Ebq7B9C;AACF;;Acj7BI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Efm9BrB;Ee/8BM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;Ebs7B1B;Een9BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb07B1B;Eev9BM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb87B1B;Ee39BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Ebk8B1B;Ee/9BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Ebs8B1B;Een+BM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb08B1B;Eel+BI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb+9Bf;Eel+BM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Eby+BvC;Eet+BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6+BvC;Ee1+BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebi/BvC;Ee9+BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq/BvC;Eel/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby/BvC;Eet/BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6/BvC;Ee1/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbigCvC;Ee9/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbqgCvC;EelgCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbygCvC;EetgCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6gCvC;Ee1gCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbihCvC;Ee9gCM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EbqhCvC;Ee7gCI;IAAwB,kBAAS;IAAT,SAAS;EfghCrC;Ee9gCI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EHo2B9B;Ee9gCM;IAAwB,iBADZ;IACY,QADZ;EfkhClB;EejhCM;IAAwB,iBADZ;IACY,QADZ;EfqhClB;EephCM;IAAwB,iBADZ;IACY,QADZ;EfwhClB;EevhCM;IAAwB,iBADZ;IACY,QADZ;Ef2hClB;Ee1hCM;IAAwB,iBADZ;IACY,QADZ;Ef8hClB;Ee7hCM;IAAwB,iBADZ;IACY,QADZ;EfiiClB;EehiCM;IAAwB,iBADZ;IACY,QADZ;EfoiClB;EeniCM;IAAwB,iBADZ;IACY,QADZ;EfuiClB;EetiCM;IAAwB,iBADZ;IACY,QADZ;Ef0iClB;EeziCM;IAAwB,iBADZ;IACY,QADZ;Ef6iClB;Ee5iCM;IAAwB,kBADZ;IACY,SADZ;EfgjClB;Ee/iCM;IAAwB,kBADZ;IACY,SADZ;EfmjClB;EeljCM;IAAwB,kBADZ;IACY,SADZ;EfsjClB;Ee/iCQ;IFRR,cAA4B;Eb0jC5B;EeljCQ;IFRR,sBAA8C;Eb6jC9C;EerjCQ;IFRR,uBAA8C;EbgkC9C;EexjCQ;IFRR,gBAA8C;EbmkC9C;Ee3jCQ;IFRR,uBAA8C;EbskC9C;Ee9jCQ;IFRR,uBAA8C;EbykC9C;EejkCQ;IFRR,gBAA8C;Eb4kC9C;EepkCQ;IFRR,uBAA8C;Eb+kC9C;EevkCQ;IFRR,uBAA8C;EbklC9C;Ee1kCQ;IFRR,gBAA8C;EbqlC9C;Ee7kCQ;IFRR,uBAA8C;EbwlC9C;EehlCQ;IFRR,uBAA8C;Eb2lC9C;AACF;;AcvlCI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EfynCrB;EernCM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;Eb4lC1B;EeznCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbgmC1B;Ee7nCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbomC1B;EejoCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbwmC1B;EeroCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb4mC1B;EezoCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbgnC1B;EexoCI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbqoCf;EexoCM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Eb+oCvC;Ee5oCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmpCvC;EehpCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbupCvC;EeppCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2pCvC;EexpCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+pCvC;Ee5pCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbmqCvC;EehqCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbuqCvC;EepqCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2qCvC;EexqCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb+qCvC;Ee5qCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmrCvC;EehrCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EburCvC;EeprCM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eb2rCvC;EenrCI;IAAwB,kBAAS;IAAT,SAAS;EfsrCrC;EeprCI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EH0gC9B;EeprCM;IAAwB,iBADZ;IACY,QADZ;EfwrClB;EevrCM;IAAwB,iBADZ;IACY,QADZ;Ef2rClB;Ee1rCM;IAAwB,iBADZ;IACY,QADZ;Ef8rClB;Ee7rCM;IAAwB,iBADZ;IACY,QADZ;EfisClB;EehsCM;IAAwB,iBADZ;IACY,QADZ;EfosClB;EensCM;IAAwB,iBADZ;IACY,QADZ;EfusClB;EetsCM;IAAwB,iBADZ;IACY,QADZ;Ef0sClB;EezsCM;IAAwB,iBADZ;IACY,QADZ;Ef6sClB;Ee5sCM;IAAwB,iBADZ;IACY,QADZ;EfgtClB;Ee/sCM;IAAwB,iBADZ;IACY,QADZ;EfmtClB;EeltCM;IAAwB,kBADZ;IACY,SADZ;EfstClB;EertCM;IAAwB,kBADZ;IACY,SADZ;EfytClB;EextCM;IAAwB,kBADZ;IACY,SADZ;Ef4tClB;EertCQ;IFRR,cAA4B;EbguC5B;EextCQ;IFRR,sBAA8C;EbmuC9C;Ee3tCQ;IFRR,uBAA8C;EbsuC9C;Ee9tCQ;IFRR,gBAA8C;EbyuC9C;EejuCQ;IFRR,uBAA8C;Eb4uC9C;EepuCQ;IFRR,uBAA8C;Eb+uC9C;EevuCQ;IFRR,gBAA8C;EbkvC9C;Ee1uCQ;IFRR,uBAA8C;EbqvC9C;Ee7uCQ;IFRR,uBAA8C;EbwvC9C;EehvCQ;IFRR,gBAA8C;Eb2vC9C;EenvCQ;IFRR,uBAA8C;Eb8vC9C;EetvCQ;IFRR,uBAA8C;EbiwC9C;AACF;;Ac7vCI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef+xCrB;Ee3xCM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbkwC1B;Ee/xCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbswC1B;EenyCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb0wC1B;EevyCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb8wC1B;Ee3yCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbkxC1B;Ee/yCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbsxC1B;Ee9yCI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb2yCf;Ee9yCM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EbqzCvC;EelzCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbyzCvC;EetzCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6zCvC;Ee1zCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi0CvC;Ee9zCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq0CvC;Eel0CM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eby0CvC;Eet0CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb60CvC;Ee10CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi1CvC;Ee90CM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebq1CvC;Eel1CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby1CvC;Eet1CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb61CvC;Ee11CM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Ebi2CvC;Eez1CI;IAAwB,kBAAS;IAAT,SAAS;Ef41CrC;Ee11CI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EHgrC9B;Ee11CM;IAAwB,iBADZ;IACY,QADZ;Ef81ClB;Ee71CM;IAAwB,iBADZ;IACY,QADZ;Efi2ClB;Eeh2CM;IAAwB,iBADZ;IACY,QADZ;Efo2ClB;Een2CM;IAAwB,iBADZ;IACY,QADZ;Efu2ClB;Eet2CM;IAAwB,iBADZ;IACY,QADZ;Ef02ClB;Eez2CM;IAAwB,iBADZ;IACY,QADZ;Ef62ClB;Ee52CM;IAAwB,iBADZ;IACY,QADZ;Efg3ClB;Ee/2CM;IAAwB,iBADZ;IACY,QADZ;Efm3ClB;Eel3CM;IAAwB,iBADZ;IACY,QADZ;Efs3ClB;Eer3CM;IAAwB,iBADZ;IACY,QADZ;Efy3ClB;Eex3CM;IAAwB,kBADZ;IACY,SADZ;Ef43ClB;Ee33CM;IAAwB,kBADZ;IACY,SADZ;Ef+3ClB;Ee93CM;IAAwB,kBADZ;IACY,SADZ;Efk4ClB;Ee33CQ;IFRR,cAA4B;Ebs4C5B;Ee93CQ;IFRR,sBAA8C;Eby4C9C;Eej4CQ;IFRR,uBAA8C;Eb44C9C;Eep4CQ;IFRR,gBAA8C;Eb+4C9C;Eev4CQ;IFRR,uBAA8C;Ebk5C9C;Ee14CQ;IFRR,uBAA8C;Ebq5C9C;Ee74CQ;IFRR,gBAA8C;Ebw5C9C;Eeh5CQ;IFRR,uBAA8C;Eb25C9C;Een5CQ;IFRR,uBAA8C;Eb85C9C;Eet5CQ;IFRR,gBAA8C;Ebi6C9C;Eez5CQ;IFRR,uBAA8C;Ebo6C9C;Ee55CQ;IFRR,uBAA8C;Ebu6C9C;AACF;;AgB39CA;EACE,WAAW;EACX,mBbkIW;EajIX,cbSgB;AHq9ClB;;AgBj+CA;;EAQI,gBbsVgC;EarVhC,mBAAmB;EACnB,6BbJc;AHk+ClB;;AgBx+CA;EAcI,sBAAsB;EACtB,gCbTc;AHu+ClB;;AgB7+CA;EAmBI,6Bbbc;AH2+ClB;;AgBr9CA;;EAGI,ebgU+B;AHupCnC;;AgB98CA;EACE,yBbnCgB;AHo/ClB;;AgBl9CA;;EAKI,yBbvCc;AHy/ClB;;AgBv9CA;;EAWM,wBAA4C;AhBi9ClD;;AgB58CA;;;;EAKI,SAAS;AhB88Cb;;AgBt8CA;EAEI,qCb1DW;AHkgDf;;AKvgDE;EW2EI,cbvEY;EawEZ,sCbvES;AHugDf;;AiBnhDE;;;EAII,yBCsF4D;AlB+7ClE;;AiBzhDE;;;;EAYM,qBC8E0D;AlBs8ClE;;AKzhDE;EYiBM,yBAJsC;AjBghD9C;;AiBjhDE;;EASQ,yBARoC;AjBqhD9C;;AiBziDE;;;EAII,yBCsF4D;AlBq9ClE;;AiB/iDE;;;;EAYM,qBC8E0D;AlB49ClE;;AK/iDE;EYiBM,yBAJsC;AjBsiD9C;;AiBviDE;;EASQ,yBARoC;AjB2iD9C;;AiB/jDE;;;EAII,yBCsF4D;AlB2+ClE;;AiBrkDE;;;;EAYM,qBC8E0D;AlBk/ClE;;AKrkDE;EYiBM,yBAJsC;AjB4jD9C;;AiB7jDE;;EASQ,yBARoC;AjBikD9C;;AiBrlDE;;;EAII,yBCsF4D;AlBigDlE;;AiB3lDE;;;;EAYM,qBC8E0D;AlBwgDlE;;AK3lDE;EYiBM,yBAJsC;AjBklD9C;;AiBnlDE;;EASQ,yBARoC;AjBulD9C;;AiB3mDE;;;EAII,yBCsF4D;AlBuhDlE;;AiBjnDE;;;;EAYM,qBC8E0D;AlB8hDlE;;AKjnDE;EYiBM,yBAJsC;AjBwmD9C;;AiBzmDE;;EASQ,yBARoC;AjB6mD9C;;AiBjoDE;;;EAII,yBCsF4D;AlB6iDlE;;AiBvoDE;;;;EAYM,qBC8E0D;AlBojDlE;;AKvoDE;EYiBM,yBAJsC;AjB8nD9C;;AiB/nDE;;EASQ,yBARoC;AjBmoD9C;;AiBvpDE;;;EAII,yBCsF4D;AlBmkDlE;;AiB7pDE;;;;EAYM,qBC8E0D;AlB0kDlE;;AK7pDE;EYiBM,yBAJsC;AjBopD9C;;AiBrpDE;;EASQ,yBARoC;AjBypD9C;;AiB7qDE;;;EAII,yBCsF4D;AlBylDlE;;AiBnrDE;;;;EAYM,qBC8E0D;AlBgmDlE;;AKnrDE;EYiBM,yBAJsC;AjB0qD9C;;AiB3qDE;;EASQ,yBARoC;AjB+qD9C;;AiBnsDE;;;EAII,sCdQS;AH6rDf;;AKlsDE;EYiBM,sCAJsC;AjByrD9C;;AiB1rDE;;EASQ,sCARoC;AjB8rD9C;;AgBxmDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbmQqD;AHs2C3D;;AgB9mDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHytDlB;;AgBlmDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHytDlB;;AgBvmDA;;;EAOI,qBb+OuD;AHu3C3D;;AgB7mDA;EAWI,SAAS;AhBsmDb;;AgBjnDA;EAgBM,2Cb1IS;AH+uDf;;AK1uDE;EW4IM,WbjJO;EakJP,4CblJO;AHovDf;;AclrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBolDvC;EgBzlDG;IASK,SAAS;EhBmlDjB;AACF;;Ac9rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBgmDvC;EgBrmDG;IASK,SAAS;EhB+lDjB;AACF;;Ac1sDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4mDvC;EgBjnDG;IASK,SAAS;EhB2mDjB;AACF;;ActtDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwnDvC;EgB7nDG;IASK,SAAS;EhBunDjB;AACF;;AgBtoDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBmoDzC;;AgB7oDA;EAcU,SAAS;AhBmoDnB;;AmBhzDA;EACE,cAAc;EACd,WAAW;EACX,mCDuG8D;ECtG9D,yBhB4XkC;ECvQ9B,eAtCY;Ee5EhB,gBhBsR+B;EgBrR/B,gBhB0R+B;EgBzR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBP6OgC;EiB5O9B,wEjBof4F;AH40ClG;;AoB3zDI;EDLJ;ICMM,gBAAgB;EpB+zDpB;AACF;;AmBt0DA;EAsBI,6BAA6B;EAC7B,SAAS;AnBozDb;;AmB30DA;EA4BI,kBAAkB;EAClB,0BhBrBc;AHw0DlB;;AqBz0DE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBwdsE;EkBvdtE,UAAU;EAKR,gDlBcW;AH0zDjB;;AmBx1DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnB+yDd;;AmB3yDA;EAOI,chBtDc;EgBuDd,sBhB9DW;AHs2Df;;AmBnyDA;;EAEE,cAAc;EACd,WAAW;AnBsyDb;;AmB5xDA;EACE,iCDwB8D;ECvB9D,oCDuB8D;ECtB9D,gBAAgB;EflBd,kBAAW;EeoBb,gBhB4M+B;AHmlDjC;;AmB5xDA;EACE,+BDgB8D;ECf9D,kCDe8D;Ede1D,kBAtCY;EeUhB,gBhByI+B;AHspDjC;;AmB5xDA;EACE,gCDS8D;ECR9D,mCDQ8D;Ede1D,mBAtCY;EeiBhB,gBhBmI+B;AH4pDjC;;AmBtxDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfQZ,eAtCY;EegChB,gBhB+K+B;EgB9K/B,chB1GgB;EgB2GhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnByxDrC;;AmBnyDA;EAcI,gBAAgB;EAChB,eAAe;AnByxDnB;;AmB7wDA;EACE,kCD/B8D;ECgC9D,uBhBgQiC;ECjR7B,mBAtCY;EeyDhB,gBhB2F+B;EOxO7B,qBP+O+B;AH+qDnC;;AmB7wDA;EACE,gCDvC8D;ECwC9D,oBhB6PgC;ECtR5B,kBAtCY;EeiEhB,gBhBkF+B;EOvO7B,qBP8O+B;AHwrDnC;;AmB5wDA;EAGI,YAAY;AnB6wDhB;;AmBzwDA;EACE,YAAY;AnB4wDd;;AmBpwDA;EACE,mBhBsV0C;AHi7C5C;;AmBpwDA;EACE,cAAc;EACd,mBhBuU4C;AHg8C9C;;AmB/vDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBkwD3C;;AmBtwDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBmwD7C;;AmB1vDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB4S6C;AHi9C/C;;AmB1vDA;EACE,kBAAkB;EAClB,kBhBwS2C;EgBvS3C,qBhBsS6C;AHu9C/C;;AmBhwDA;;EAQI,chBhNc;AH68DlB;;AmBzvDA;EACE,gBAAgB;AnB4vDlB;;AmBzvDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhByR4C;AHm+C9C;;AmBhwDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBoR4C;EgBnR5C,cAAc;AnB4vDlB;;AqBh8DE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBNa;AHy8DjB;;AqBh8DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBpBa;EOtCb,sBP6OgC;AHixDpC;;AqBn+DI;;;;EAsCE,cAAc;ArBo8DpB;;AqB1+DI;EA4CE,qBlBjCW;EkBoCT,oCHiCwD;EGhCxD,iRHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBm6DhE;;AqBn/DI;EAuDI,qBlB5CS;EkB6CT,gDlB7CS;AH6+DjB;;AqBx/DI;EAiEI,oCHewD;EGdxD,kFHcwD;AlB66DhE;;AqB7/DI;EAyEE,qBlB9DW;EkBiET,uCHIwD;EGHxD,ujBAA8J;ArBs7DtK;;AqBngEI;EAiFI,qBlBtES;EkBuET,gDlBvES;AH6/DjB;;AqBxgEI;EA0FI,clB/ES;AHigEjB;;AqB5gEI;;;EA+FI,cAAc;ArBm7DtB;;AqBlhEI;EAuGI,clB5FS;AH2gEjB;;AqBthEI;EA0GM,qBlB/FO;AH+gEjB;;AqB1hEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArB86DnD;;AqB/hEI;EAuHM,gDlB5GO;AHwhEjB;;AqBniEI;EA2HM,qBlBhHO;AH4hEjB;;AqBviEI;EAqII,qBlB1HS;AHgiEjB;;AqB3iEI;EA0IM,qBlB/HO;EkBgIP,gDlBhIO;AHqiEjB;;AqBpiEE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBTa;AHgjEjB;;AqBpiEE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBvBa;EOnCb,sBP6OgC;AHq3DpC;;AqBvkEI;;;;EAsCE,cAAc;ArBwiEpB;;AqB9kEI;EA4CE,qBlBpCW;EkBuCT,oCHiCwD;EGhCxD,4UHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBugEhE;;AqBvlEI;EAuDI,qBlB/CS;EkBgDT,gDlBhDS;AHolEjB;;AqB5lEI;EAiEI,oCHewD;EGdxD,kFHcwD;AlBihEhE;;AqBjmEI;EAyEE,qBlBjEW;EkBoET,uCHIwD;EGHxD,knBAA8J;ArB0hEtK;;AqBvmEI;EAiFI,qBlBzES;EkB0ET,gDlB1ES;AHomEjB;;AqB5mEI;EA0FI,clBlFS;AHwmEjB;;AqBhnEI;;;EA+FI,cAAc;ArBuhEtB;;AqBtnEI;EAuGI,clB/FS;AHknEjB;;AqB1nEI;EA0GM,qBlBlGO;AHsnEjB;;AqB9nEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArBkhEnD;;AqBnoEI;EAuHM,gDlB/GO;AH+nEjB;;AqBvoEI;EA2HM,qBlBnHO;AHmoEjB;;AqB3oEI;EAqII,qBlB7HS;AHuoEjB;;AqB/oEI;EA0IM,qBlBlIO;EkBmIP,gDlBnIO;AH4oEjB;;AmB36DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnB86DrB;;AmBj7DA;EASI,WAAW;AnB46Df;;AcloEI;EK6MJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB26DpB;EmB77DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnBy6DpB;EmBp8DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBu6D1B;EmBz8DF;IAuCM,qBAAqB;EnBq6DzB;EmB58DF;;IA4CM,WAAW;EnBo6Df;EmBh9DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBi6DnB;EmBv9DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB2LwC;IgB1LxC,cAAc;EnBi6DlB;EmB99DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBg6D3B;EmBl+DF;IAqEM,gBAAgB;EnBg6DpB;AACF;;AuBzuEA;EACE,qBAAqB;EAErB,gBpB0R+B;EoBzR/B,cpBMgB;EoBLhB,kBAAkB;EAElB,sBAAsB;EACtB,eAAsD;EACtD,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB8RkC;ECvQ9B,eAtCY;EoBiBhB,gBrB8L+B;EOnS7B,sBP6OgC;EiB5O9B,qIjB6b6I;AH6zDnJ;;AoBrvEI;EGLJ;IHMM,gBAAgB;EpByvEpB;AACF;;AK1vEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBovEzB;;AuBrwEA;EAsBI,UAAU;EACV,gDpBOa;AH4uEjB;;AuB1wEA;EA6BI,apBoZ6B;AH61DjC;;AuBluEA;;EAEE,oBAAoB;AvBquEtB;;AuB5tEE;ECvDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AH2vEjB;;AKnxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgyE7H;;AwBpxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkxEvF;;AwB7wEE;EAEE,WrB1BW;EqB2BX,yBrBEa;EqBDb,qBrBCa;AH8wEjB;;AwBxwEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBozEnN;;AwBrwEI;;EAKI,gDAAiF;AxBqwEzF;;AuBjwEE;ECvDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuzElB;;AKxzEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBq0E7H;;AwBzzEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuzEvF;;AwBlzEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH00ElB;;AwB7yEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy1EnN;;AwB1yEI;;EAKI,iDAAiF;AxB0yEzF;;AuBtyEE;ECvDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AH8zEjB;;AK71EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB02E7H;;AwB91EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB41EvF;;AwBv1EE;EAEE,WrB1BW;EqB2BX,yBrBSa;EqBRb,qBrBQa;AHi1EjB;;AwBl1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB83EnN;;AwB/0EI;;EAKI,+CAAiF;AxB+0EzF;;AuB30EE;ECvDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AHi2EjB;;AKl4EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+4E7H;;AwBn4EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi4EvF;;AwB53EE;EAEE,WrB1BW;EqB2BX,yBrBWa;EqBVb,qBrBUa;AHo3EjB;;AwBv3EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm6EnN;;AwBp3EI;;EAKI,gDAAiF;AxBo3EzF;;AuBh3EE;ECvDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AHy4EjB;;AKv6EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo7E7H;;AwBx6EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs6EvF;;AwBj6EE;EAEE,crBjBc;EqBkBd,yBrBQa;EqBPb,qBrBOa;AH45EjB;;AwB55EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw8EnN;;AwBz5EI;;EAKI,gDAAiF;AxBy5EzF;;AuBr5EE;ECvDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHg7EjB;;AK58EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy9E7H;;AwB78EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB28EvF;;AwBt8EE;EAEE,WrB1BW;EqB2BX,yBrBMa;EqBLb,qBrBKa;AHm8EjB;;AwBj8EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB6+EnN;;AwB97EI;;EAKI,+CAAiF;AxB87EzF;;AuB17EE;ECvDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq/ElB;;AKj/EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8/E7H;;AwBl/EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg/EvF;;AwB3+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHwgFlB;;AwBt+EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkhFnN;;AwBn+EI;;EAKI,iDAAiF;AxBm+EzF;;AuB/9EE;ECvDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmhFlB;;AKthFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmiF7H;;AwBvhFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqhFvF;;AwBhhFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHsiFlB;;AwB3gFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBujFnN;;AwBxgFI;;EAKI,8CAAiF;AxBwgFzF;;AuB9/EE;ECHA,crB5Be;EqB6Bf,qBrB7Be;AHkiFjB;;AK1jFE;EmBwDE,WrB7DW;EqB8DX,yBrBjCa;EqBkCb,qBrBlCa;AHwiFjB;;AwBngFE;EAEE,+CrBvCa;AH4iFjB;;AwBlgFE;EAEE,crB5Ca;EqB6Cb,6BAA6B;AxBogFjC;;AwBjgFE;;EAGE,WrBhFW;EqBiFX,yBrBpDa;EqBqDb,qBrBrDa;AHwjFjB;;AwBjgFI;;EAKI,+CrB5DS;AH6jFjB;;AuB9hFE;ECHA,crBnDgB;EqBoDhB,qBrBpDgB;AHylFlB;;AK1lFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+lFlB;;AwBniFE;EAEE,iDrB9Dc;AHmmFlB;;AwBliFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBoiFjC;;AwBjiFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+mFlB;;AwBjiFI;;EAKI,iDrBnFU;AHonFlB;;AuB9jFE;ECHA,crBrBe;EqBsBf,qBrBtBe;AH2lFjB;;AK1nFE;EmBwDE,WrB7DW;EqB8DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHimFjB;;AwBnkFE;EAEE,+CrBhCa;AHqmFjB;;AwBlkFE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBokFjC;;AwBjkFE;;EAGE,WrBhFW;EqBiFX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHinFjB;;AwBjkFI;;EAKI,+CrBrDS;AHsnFjB;;AuB9lFE;ECHA,crBnBe;EqBoBf,qBrBpBe;AHynFjB;;AK1pFE;EmBwDE,WrB7DW;EqB8DX,yBrBxBa;EqByBb,qBrBzBa;AH+nFjB;;AwBnmFE;EAEE,gDrB9Ba;AHmoFjB;;AwBlmFE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBomFjC;;AwBjmFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ca;EqB4Cb,qBrB5Ca;AH+oFjB;;AwBjmFI;;EAKI,gDrBnDS;AHopFjB;;AuB9nFE;ECHA,crBtBe;EqBuBf,qBrBvBe;AH4pFjB;;AK1rFE;EmBwDE,crBpDc;EqBqDd,yBrB3Ba;EqB4Bb,qBrB5Ba;AHkqFjB;;AwBnoFE;EAEE,+CrBjCa;AHsqFjB;;AwBloFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBooFjC;;AwBjoFE;;EAGE,crBvEc;EqBwEd,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkrFjB;;AwBjoFI;;EAKI,+CrBtDS;AHurFjB;;AuB9pFE;ECHA,crBxBe;EqByBf,qBrBzBe;AH8rFjB;;AK1tFE;EmBwDE,WrB7DW;EqB8DX,yBrB7Ba;EqB8Bb,qBrB9Ba;AHosFjB;;AwBnqFE;EAEE,+CrBnCa;AHwsFjB;;AwBlqFE;EAEE,crBxCa;EqByCb,6BAA6B;AxBoqFjC;;AwBjqFE;;EAGE,WrBhFW;EqBiFX,yBrBhDa;EqBiDb,qBrBjDa;AHotFjB;;AwBjqFI;;EAKI,+CrBxDS;AHytFjB;;AuB9rFE;ECHA,crBxDgB;EqByDhB,qBrBzDgB;AH8vFlB;;AK1vFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHowFlB;;AwBnsFE;EAEE,iDrBnEc;AHwwFlB;;AwBlsFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBosFjC;;AwBjsFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHoxFlB;;AwBjsFI;;EAKI,iDrBxFU;AHyxFlB;;AuB9tFE;ECHA,crBjDgB;EqBkDhB,qBrBlDgB;AHuxFlB;;AK1xFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6xFlB;;AwBnuFE;EAEE,8CrB5Dc;AHiyFlB;;AwBluFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBouFjC;;AwBjuFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6yFlB;;AwBjuFI;;EAKI,8CrBjFU;AHkzFlB;;AuBnvFA;EACE,gBpBoN+B;EoBnN/B,cpB5Ce;EoB6Cf,qBpBkG4C;AHopF9C;;AK3zFE;EkBwEE,cpBgG8D;EoB/F9D,0BpBgG+C;AHupFnD;;AuB9vFA;EAYI,0BpB2F+C;EoB1F/C,gBAAgB;AvBsvFpB;;AuBnwFA;EAkBI,cpBnFc;EoBoFd,oBAAoB;AvBqvFxB;;AuB1uFA;ECJE,oBrB6SgC;ECtR5B,kBAtCY;EoBiBhB,gBrBkI+B;EOvO7B,qBP8O+B;AH0mFnC;;AuB7uFA;ECRE,uBrBwSiC;ECjR7B,mBAtCY;EoBiBhB,gBrBmI+B;EOxO7B,qBP+O+B;AHgnFnC;;AuB3uFA;EACE,cAAc;EACd,WAAW;AvB8uFb;;AuBhvFA;EAMI,kBpB6T+B;AHi7EnC;;AuBzuFA;;;EAII,WAAW;AvB2uFf;;AyBn3FA;ELMM,gCjB8P2C;AHmnFjD;;AoB52FI;EKXJ;ILYM,gBAAgB;EpBg3FpB;AACF;;AyB73FA;EAII,UAAU;AzB63Fd;;AyBz3FA;EAEI,aAAa;AzB23FjB;;AyBv3FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjB+PwC;AHuoF9C;;AoBj4FI;EKGJ;ILFM,gBAAgB;EpBq4FpB;AACF;;A0Bj5FA;;;;EAIE,kBAAkB;A1Bo5FpB;;A0Bj5FA;EACE,mBAAmB;A1Bo5FrB;;A2Bh4FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bo6F7C;;A2B/2FI;EACE,cAAc;A3Bk3FpB;;A0B55FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avB4pBsC;EuB3pBtC,aAAa;EACb,WAAW;EACX,gBvBkuBuC;EuBjuBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOZX,sBP6OgC;AH8sFpC;;A0Bv5FI;EACE,WAAW;EACX,OAAO;A1B05Fb;;A0Bv5FI;EACE,QAAQ;EACR,UAAU;A1B05FhB;;Ac94FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq6FX;E0Bl6FE;IACE,QAAQ;IACR,UAAU;E1Bo6Fd;AACF;;Acz5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bg7FX;E0B76FE;IACE,QAAQ;IACR,UAAU;E1B+6Fd;AACF;;Acp6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B27FX;E0Bx7FE;IACE,QAAQ;IACR,UAAU;E1B07Fd;AACF;;Ac/6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bs8FX;E0Bn8FE;IACE,QAAQ;IACR,UAAU;E1Bq8Fd;AACF;;A0B/7FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB+rBuC;AHkwE3C;;A2Bh+FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B6/F7C;;A2B/8FI;EACE,cAAc;A3Bk9FpB;;A0Bx8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBirBuC;AHyxE3C;;A2Bv/FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B6gGjC;;A2Bt+FI;EACE,cAAc;A3By+FpB;;A2BtgGI;EDmDE,iBAAiB;A1Bu9FvB;;A0Bl9FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvBgqBuC;AHozE3C;;A2BlhGI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;A3BqhGjB;;A2BzhGI;EAgBI,aAAa;A3B6gGrB;;A2B1gGM;EACE,qBAAqB;EACrB,qBxB+MwC;EwB9MxC,uBxB6MwC;EwB5MxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3B4iG/C;;A2B3gGI;EACE,cAAc;A3B8gGpB;;A2BxhGM;EDiDA,iBAAiB;A1B2+FvB;;A0Bp+FA;EAKI,WAAW;EACX,YAAY;A1Bm+FhB;;A0B99FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH+kGlB;;A0B99FA;EACE,cAAc;EACd,WAAW;EACX,uBvBopBwC;EuBnpBxC,WAAW;EACX,gBvBoK+B;EuBnK/B,cvBhHgB;EuBiHhB,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1Bi+FX;;AKrlGE;EqBmIE,cvBqnBqD;EuBpnBrD,qBAAqB;EJ9IrB,yBnBEc;AHmmGlB;;A0Bj/FA;EAgCI,WvBnJW;EuBoJX,qBAAqB;EJrJrB,yBnB8Ba;AH6kGjB;;A0Bv/FA;EAuCI,cvBpJc;EuBqJd,oBAAoB;EACpB,6BAA6B;A1Bo9FjC;;A0B58FA;EACE,cAAc;A1B+8FhB;;A0B38FA;EACE,cAAc;EACd,sBvB+lBwC;EuB9lBxC,gBAAgB;EtBpDZ,mBAtCY;EsB4FhB,cvBxKgB;EuByKhB,mBAAmB;A1B88FrB;;A0B18FA;EACE,cAAc;EACd,uBvBqlBwC;EuBplBxC,cvB7KgB;AH0nGlB;;A6BvoGA;;EAEE,kBAAkB;EAClB,2BAAoB;EAApB,oBAAoB;EACpB,sBAAsB;A7B0oGxB;;A6B9oGA;;EAOI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;A7B4oGlB;;AK3oGE;;EwBII,UAAU;A7B4oGhB;;A6BzpGA;;;;EAkBM,UAAU;A7B8oGhB;;A6BxoGA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,oBAA2B;EAA3B,2BAA2B;A7B2oG7B;;A6B9oGA;EAMI,WAAW;A7B4oGf;;A6BxoGA;;EAII,iB1BsM6B;AHm8FjC;;A6B7oGA;;EnBhBI,0BmB0B8B;EnBzB9B,6BmByB8B;A7ByoGlC;;A6BnpGA;;EnBFI,yBmBiB6B;EnBhB7B,4BmBgB6B;A7B0oGjC;;A6B1nGA;EACE,wBAAmC;EACnC,uBAAkC;A7B6nGpC;;A6B/nGA;;;EAOI,cAAc;A7B8nGlB;;A6B3nGE;EACE,eAAe;A7B8nGnB;;A6B1nGA;EACE,uBAAsC;EACtC,sBAAqC;A7B6nGvC;;A6B1nGA;EACE,sBAAsC;EACtC,qBAAqC;A7B6nGvC;;A6BzmGA;EACE,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,qBAAuB;EAAvB,uBAAuB;A7B4mGzB;;A6B/mGA;;EAOI,WAAW;A7B6mGf;;A6BpnGA;;EAYI,gB1BqH6B;AHw/FjC;;A6BznGA;;EnBlFI,6BmBoG+B;EnBnG/B,4BmBmG+B;A7B6mGnC;;A6B/nGA;;EnBhGI,yBmBuH4B;EnBtH5B,0BmBsH4B;A7B8mGhC;;A6B7lGA;;EAGI,gBAAgB;A7B+lGpB;;A6BlmGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BkmG1B;;A8B3vGA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,uBAAoB;EAApB,oBAAoB;EACpB,WAAW;A9B8vGb;;A8BnwGA;;;;EAWI,kBAAkB;EAClB,gBAAY;EAAZ,YAAY;EACZ,YAAY;EACZ,gBAAgB;A9B+vGpB;;A8B7wGA;;;;;;;;;;;;EAmBM,iB3BsN2B;AHmjGjC;;A8B5xGA;;;EA2BI,UAAU;A9BuwGd;;A8BlyGA;EAgCI,UAAU;A9BswGd;;A8BtyGA;;EpBeI,0BoBsBmD;EpBrBnD,6BoBqBmD;A9BuwGvD;;A8B5yGA;;EpB6BI,yBoBSmD;EpBRnD,4BoBQmD;A9B4wGvD;;A8BlzGA;EA4CI,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;A9B0wGvB;;A8BvzGA;;EpBeI,0BoBiC6E;EpBhC7E,6BoBgC6E;A9B6wGjF;;A8B7zGA;EpB6BI,yBoBoBsE;EpBnBtE,4BoBmBsE;A9BixG1E;;A8BtwGA;;EAEE,oBAAa;EAAb,aAAa;A9BywGf;;A8B3wGA;;EAQI,kBAAkB;EAClB,UAAU;A9BwwGd;;A8BjxGA;;EAYM,UAAU;A9B0wGhB;;A8BtxGA;;;;;;;;EAoBI,iB3ByJ6B;AHonGjC;;A8BzwGA;EAAuB,kB3BqJU;AHwnGjC;;A8B5wGA;EAAsB,iB3BoJW;AH4nGjC;;A8BxwGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3BgSkC;E2B/RlC,gBAAgB;E1BwBZ,eAtCY;E0BgBhB,gB3B0L+B;E2BzL/B,gB3B8L+B;E2B7L/B,c3B7FgB;E2B8FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BrGgB;E2BsGhB,yB3BpGgB;EONd,sBP6OgC;AHyoGpC;;A8BxxGA;;EAkBI,aAAa;A9B2wGjB;;A8BjwGA;;EAEE,gCZjB8D;AlBqxGhE;;A8BjwGA;;;;;;EAME,oB3B2QgC;ECtR5B,kBAtCY;E0BmDhB,gB3BgG+B;EOvO7B,qBP8O+B;AH8pGnC;;A8BjwGA;;EAEE,kCZlC8D;AlBsyGhE;;A8BjwGA;;;;;;EAME,uB3BqPiC;ECjR7B,mBAtCY;E0BoEhB,gB3BgF+B;EOxO7B,qBP+O+B;AH8qGnC;;A8BjwGA;;EAEE,sBAA0E;A9BowG5E;;A8BzvGA;;;;;;EpBzJI,0BoB+J4B;EpB9J5B,6BoB8J4B;A9B6vGhC;;A8B1vGA;;;;;;EpBpJI,yBoB0J2B;EpBzJ3B,4BoByJ2B;A9B8vG/B;;A+Bl7GA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/Bq7GvE;;A+Bl7GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5B6f0C;AHw7F5C;;A+Bl7GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Byf0C;E4Bxf1C,eAAkF;EAClF,UAAU;A/Bq7GZ;;A+B37GA;EASI,W5BvBW;E4BwBX,qB5BKa;EmB9Bb,yBnB8Ba;AHk7GjB;;A+Bj8GA;EAoBM,gD5BLW;AHs7GjB;;A+Br8GA;EAyBI,qB5B0bsE;AHs/F1E;;A+Bz8GA;EA6BI,W5B3CW;E4B4CX,yB5Bsf8E;E4Brf9E,qB5Bqf8E;AH27FlF;;A+B/8GA;EAuCM,c5B/CY;AH29GlB;;A+Bn9GA;EA0CQ,yB5BtDU;AHm+GlB;;A+Bn6GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq6GrB;;A+Bz6GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B4bwC;E4B3bxC,Y5B2bwC;E4B1bxC,oBAAoB;EACpB,WAAW;EACX,sB5BnFW;E4BoFX,yB5BoJ6B;AHgxGjC;;A+Bt7GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B6awC;E4B5axC,Y5B4awC;E4B3axC,WAAW;EACX,mCAAgE;A/Bk6GpE;;A+Bz5GA;ErB5GI,sBP6OgC;AH4xGpC;;A+B75GA;EAOM,kOb5EqI;AlBs+G3I;;A+Bj6GA;EAaM,qB5B1FW;EmB9Bb,yBnB8Ba;AHm/GjB;;A+Bt6GA;EAkBM,+KbvFqI;AlB++G3I;;A+B16GA;EAwBM,wC5BrGW;AH2/GjB;;A+B96GA;EA2BM,wC5BxGW;AH+/GjB;;A+B94GA;EAGI,kB5B8Z+C;AHi/FnD;;A+Bl5GA;EAQM,8KbjHqI;AlB+/G3I;;A+Bt5GA;EAcM,wC5B/HW;AH2gHjB;;A+Bl4GA;EACE,qBAA2D;A/Bq4G7D;;A+Bt4GA;EAKM,cAAqD;EACrD,c5BsY+E;E4BrY/E,mBAAmB;EAEnB,qB5BoY4E;AHggGlF;;A+B74GA;EAaM,wBb1E0D;Ea2E1D,0Bb3E0D;Ea4E1D,uBbxD0D;EayD1D,wBbzD0D;Ea0D1D,yB5BlLY;E4BoLZ,qB5B0X4E;EiBpjB5E,iJjBsgB+H;EiBtgB/H,yIjBsgB+H;EiBtgB/H,8KjBsgB+H;AHwjGrI;;AoBzjHI;EWkKJ;IXjKM,gBAAgB;EpB6jHpB;AACF;;A+B75GA;EA0BM,sB5BhMS;E4BiMT,sCAA4E;EAA5E,8BAA4E;A/Bu4GlF;;A+Bl6GA;EAiCM,wC5B1KW;AH+iHjB;;A+Bz3GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCb7G8D;Ea8G9D,0C5BwKkC;ECvQ9B,eAtCY;E2BwIhB,gB5BkE+B;E4BjE/B,gB5BsE+B;E4BrE/B,c5BrNgB;E4BsNhB,sBAAsB;EACtB,uO5BuW+I;E4BtW/I,yB5B3NgB;EONd,sBP6OgC;E4BTlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B03GlB;;A+Bz4GA;EAkBI,qB5B4PsE;E4B3PtE,UAAU;EAIR,gD5B7MW;AHqkHjB;;A+B/4GA;EAgCM,c5B5OY;E4B6OZ,sB5BpPS;AHumHf;;A+Bp5GA;EAuCI,YAAY;EACZ,sB5BoIgC;E4BnIhC,sBAAsB;A/Bi3G1B;;A+B15GA;EA6CI,c5B1Pc;E4B2Pd,yB5B/Pc;AHgnHlB;;A+B/5GA;EAmDI,aAAa;A/Bg3GjB;;A+Bn6GA;EAwDI,kBAAkB;EAClB,0B5BrQc;AHonHlB;;A+B32GA;EACE,kCbxK8D;EayK9D,oB5BsHkC;E4BrHlC,uB5BqHkC;E4BpHlC,oB5BqHiC;ECjR7B,mBAtCY;AJijHlB;;A+B32GA;EACE,gCbhL8D;EaiL9D,mB5BmHiC;E4BlHjC,sB5BkHiC;E4BjHjC,kB5BkHgC;ECtR5B,kBAtCY;AJyjHlB;;A+Bt2GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbhM8D;EaiM9D,gBAAgB;A/By2GlB;;A+Bt2GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbxM8D;EayM9D,SAAS;EACT,UAAU;A/By2GZ;;A+B/2GA;EASI,qB5B2KsE;E4B1KtE,gD5B1Ra;AHooHjB;;A+Bp3GA;;EAgBI,yB5B3Tc;AHoqHlB;;A+Bz3GA;EAqBM,iB5BkUQ;AHsiGd;;A+B73GA;EA0BI,0BAA0B;A/Bu2G9B;;A+Bn2GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbxO8D;EayO9D,yB5B6CkC;E4B3ClC,gB5BxD+B;E4ByD/B,gB5BpD+B;E4BqD/B,c5B/UgB;E4BgVhB,sB5BvVa;E4BwVb,yB5BpVgB;EONd,sBP6OgC;AHm9GpC;;A+Bn3GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6Bb1P4D;Ea2P5D,yB5B2BgC;E4B1BhC,gB5BpE6B;E4BqE7B,c5B/Vc;E4BgWd,iBAAiB;ETxWjB,yBnBGc;E4BuWd,oBAAoB;ErB3WpB,kCqB4WgF;A/Bq2GpF;;A+B31GA;EACE,WAAW;EACX,cbhR2B;EaiR3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B81GlB;;A+Bn2GA;EAQI,aAAa;A/B+1GjB;;A+Bv2GA;EAY8B,gE5BnWb;AHksHjB;;A+B32GA;EAa8B,gE5BpWb;AHssHjB;;A+B/2GA;EAc8B,gE5BrWb;AH0sHjB;;A+Bn3GA;EAkBI,SAAS;A/Bq2Gb;;A+Bv3GA;EAsBI,W5B2N6C;E4B1N7C,Y5B0N6C;E4BzN7C,oBAAyE;ET7YzE,yBnB8Ba;E4BiXb,S5B0N0C;EO1mB1C,mBP2mB6C;EiB1mB3C,oHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BnHjI,wBAAgB;EAAhB,gBAAgB;A/Bo2GpB;;AoBlvHI;EWgXJ;IX/WM,wBAAgB;IAAhB,gBAAgB;EpBsvHpB;AACF;;A+Bx4GA;ETrXI,yBnB8mB2E;AHmpG/E;;A+B54GA;EAsCI,W5BoMoC;E4BnMpC,c5BoMqC;E4BnMrC,kBAAkB;EAClB,e5BmMuC;E4BlMvC,yB5B3Zc;E4B4Zd,yBAAyB;ErBjazB,mBPomBoC;AHwqGxC;;A+Bt5GA;EAiDI,W5BgM6C;E4B/L7C,Y5B+L6C;EmBtmB7C,yBnB8Ba;E4B2Yb,S5BgM0C;EO1mB1C,mBP2mB6C;EiB1mB3C,iHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BzFjI,qBAAgB;EAAhB,gBAAgB;A/Bw2GpB;;AoBhxHI;EWgXJ;IX/WM,qBAAgB;IAAhB,gBAAgB;EpBoxHpB;AACF;;A+Bt6GA;ETrXI,yBnB8mB2E;AHirG/E;;A+B16GA;EAgEI,W5B0KoC;E4BzKpC,c5B0KqC;E4BzKrC,kBAAkB;EAClB,e5ByKuC;E4BxKvC,yB5Brbc;E4Bsbd,yBAAyB;ErB3bzB,mBPomBoC;AHssGxC;;A+Bp7GA;EA2EI,W5BsK6C;E4BrK7C,Y5BqK6C;E4BpK7C,aAAa;EACb,oB5B9D+B;E4B+D/B,mB5B/D+B;EmBrY/B,yBnB8Ba;E4Bwab,S5BmK0C;EO1mB1C,mBP2mB6C;EiB1mB3C,gHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4B5DjI,gBAAgB;A/B42GpB;;AoBjzHI;EWgXJ;IX/WM,oBAAgB;IAAhB,gBAAgB;EpBqzHpB;AACF;;A+Bv8GA;ETrXI,yBnB8mB2E;AHktG/E;;A+B38GA;EA6FI,W5B6IoC;E4B5IpC,c5B6IqC;E4B5IrC,kBAAkB;EAClB,e5B4IuC;E4B3IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bk3GhD;;A+Br9GA;EAwGI,yB5Bzdc;EOLd,mBPomBoC;AH4uGxC;;A+B19GA;EA6GI,kBAAkB;EAClB,yB5B/dc;EOLd,mBPomBoC;AHkvGxC;;A+Bh+GA;EAoHM,yB5BneY;AHm1HlB;;A+Bp+GA;EAwHM,eAAe;A/Bg3GrB;;A+Bx+GA;EA4HM,yB5B3eY;AH21HlB;;A+B5+GA;EAgIM,eAAe;A/Bg3GrB;;A+Bh/GA;EAoIM,yB5BnfY;AHm2HlB;;A+B32GA;;;EX9fM,4GjBsgB+H;AHy2GrI;;AoB12HI;EWyfJ;;;IXxfM,gBAAgB;EpBg3HpB;AACF;;AgCx3HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC23HlB;;AgCx3HA;EACE,cAAc;EACd,oB7B6qBsC;AH8sGxC;;AK13HE;E2BEE,qBAAqB;AhC43HzB;;AgCj4HA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhC23HnB;;AgCn3HA;EACE,gC7BxBgB;AH84HlB;;AgCv3HA;EAII,mB7B0M6B;AH6qHjC;;AgC33HA;EAQI,6BAAgD;EtB3BhD,+BPoOgC;EOnOhC,gCPmOgC;AHgrHpC;;AKl5HE;E2B6BI,qC7BnCY;AH45HlB;;AgCr4HA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhCy3H/B;;AgC34HA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AH46Hf;;AgCl5HA;EA+BI,gB7B+K6B;EOjO7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhCu3HhC;;AgC92HA;EtBtEI,sBP6OgC;AH2sHpC;;AgCl3HA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AH+5HjB;;AgCv2HA;EAEI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhCy2HtB;;AgCr2HA;EAEI,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,kBAAkB;AhCu2HtB;;AgC91HA;EAEI,aAAa;AhCg2HjB;;AgCl2HA;EAKI,cAAc;AhCi2HlB;;AiCr8HA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;EAC9B,oB9BiHW;AHu1Hb;;AiC98HA;;EAWI,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;AjCw8HlC;;AiCp7HA;EACE,qBAAqB;EACrB,sB9BqqB+E;E8BpqB/E,yB9BoqB+E;E8BnqB/E,kB9BiFW;ECTP,kBAtCY;E6BhChB,oBAAoB;EACpB,mBAAmB;AjCu7HrB;;AKj+HE;E4B6CE,qBAAqB;AjCw7HzB;;AiC/6HA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCk7HlB;;AiCv7HA;EAQI,gBAAgB;EAChB,eAAe;AjCm7HnB;;AiC57HA;EAaI,gBAAgB;EAChB,WAAW;AjCm7Hf;;AiC16HA;EACE,qBAAqB;EACrB,mB9B4lBuC;E8B3lBvC,sB9B2lBuC;AHk1GzC;;AiCj6HA;EACE,6BAAgB;EAAhB,gBAAgB;EAChB,oBAAY;EAAZ,YAAY;EAGZ,sBAAmB;EAAnB,mBAAmB;AjCk6HrB;;AiC95HA;EACE,wB9BumBwC;EC9lBpC,kBAtCY;E6B+BhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvBrHrC,sBP6OgC;AH0yHpC;;AK5gIE;E4B8GE,qBAAqB;AjCk6HzB;;AiC55HA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjC+5H5B;;Acj+HI;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCw5HvB;AACF;;Act/HI;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC84HjC;EiCn6HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC84H3B;EiCt6HG;IA2BO,kBAAkB;EjC84H5B;EiCz6HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH82GvC;EiC76HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC24HzB;EiCj7HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjC63HxB;EiCr7HG;IA4DK,aAAa;EjC43HrB;AACF;;AcrgII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjC47HvB;AACF;;Ac1hII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCk7HjC;EiCv8HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCk7H3B;EiC18HG;IA2BO,kBAAkB;EjCk7H5B;EiC78HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHk5GvC;EiCj9HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC+6HzB;EiCr9HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCi6HxB;EiCz9HG;IA4DK,aAAa;EjCg6HrB;AACF;;AcziII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCg+HvB;AACF;;Ac9jII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCs9HjC;EiC3+HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCs9H3B;EiC9+HG;IA2BO,kBAAkB;EjCs9H5B;EiCj/HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHs7GvC;EiCr/HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCm9HzB;EiCz/HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCq8HxB;EiC7/HG;IA4DK,aAAa;EjCo8HrB;AACF;;Ac7kII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCogIvB;AACF;;AclmII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC0/HjC;EiC/gIG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC0/H3B;EiClhIG;IA2BO,kBAAkB;EjC0/H5B;EiCrhIG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH09GvC;EiCzhIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCu/HzB;EiC7hIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCy+HxB;EiCjiIG;IA4DK,aAAa;EjCw+HrB;AACF;;AiC1iIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCqhInC;;AiC/iIA;;EAQU,gBAAgB;EAChB,eAAe;AjC4iIzB;;AiCrjIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjC4hI7B;;AiCzjIA;EAgCY,kBAAkB;AjC6hI9B;;AiC7jIA;EAoCY,qB9BgiB6B;E8B/hB7B,oB9B+hB6B;AH8/GzC;;AiClkIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjC4hI3B;;AiCvkIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjC+gI1B;;AiC5kIA;EAiEU,aAAa;AjC+gIvB;;AiClgIA;EAEI,yB9B/MW;AHmtIf;;AKptIE;E4BmNI,yB9BlNS;AHutIf;;AiC1gIA;EAWM,yB9BxNS;AH2tIf;;AK5tIE;E4B4NM,yB9B3NO;AH+tIf;;AiClhIA;EAkBQ,yB9B/NO;AHmuIf;;AiCthIA;;;;EA0BM,yB9BvOS;AH0uIf;;AiC7hIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AH+uIf;;AiCliIA;EAoCI,+QftNuI;AlBwtI3I;;AiCtiIA;EAwCI,yB9BrPW;AHuvIf;;AiC1iIA;EA0CM,yB9BvPS;AH2vIf;;AK5vIE;E4B2PM,yB9B1PO;AH+vIf;;AiC9/HA;EAEI,W9B7QW;AH6wIf;;AKpwIE;E4BuQI,W9BhRS;AHixIf;;AiCtgIA;EAWM,+B9BtRS;AHqxIf;;AK5wIE;E4BgRM,gC9BzRO;AHyxIf;;AiC9gIA;EAkBQ,gC9B7RO;AH6xIf;;AiClhIA;;;;EA0BM,W9BrSS;AHoyIf;;AiCzhIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AHyyIf;;AiC9hIA;EAoCI,qRf1QuI;AlBwwI3I;;AiCliIA;EAwCI,+B9BnTW;AHizIf;;AiCtiIA;EA0CM,W9BrTS;AHqzIf;;AK5yIE;E4B+SM,W9BxTO;AHyzIf;;AkC5zIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOZX,sBP6OgC;AH0lIpC;;AkCx0IA;EAaI,eAAe;EACf,cAAc;AlC+zIlB;;AkC70IA;ExBUI,+BPoOgC;EOnOhC,gCPmOgC;AHomIpC;;AkCl1IA;ExBwBI,mCPsNgC;EOrNhC,kCPqNgC;AHymIpC;;AkCzzIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/BsxByC;AHkiH3C;;AkCpzIA;EACE,sB/BgxBwC;AHuiH1C;;AkCpzIA;EACE,qBAA+B;EAC/B,gBAAgB;AlCuzIlB;;AkCpzIA;EACE,gBAAgB;AlCuzIlB;;AKl2IE;E6BgDE,qBAAqB;AlCszIzB;;AkCxzIA;EAMI,oB/B+vBuC;AHujH3C;;AkC9yIA;EACE,wB/BsvByC;E+BrvBzC,gBAAgB;EAEhB,qC/B3Da;E+B4Db,6C/B5Da;AH42If;;AkCrzIA;ExBnEI,0DwB2E8E;AlCizIlF;;AkCzzIA;EAaM,aAAa;AlCgzInB;;AkC3yIA;EACE,wB/BouByC;E+BnuBzC,qC/B3Ea;E+B4Eb,0C/B5Ea;AH03If;;AkCjzIA;ExBrFI,0DQ+H4D;AlB2wIhE;;AkCtyIA;EACE,uBAAiC;EACjC,uB/BmtBwC;E+BltBxC,sBAAgC;EAChC,gBAAgB;AlCyyIlB;;AkCtyIA;EACE,uBAAiC;EACjC,sBAAgC;AlCyyIlC;;AkCryIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B8sByC;AH0lH3C;;AkCryIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlCwyIb;;AkCryIA;;ExBxHI,2CQsH4D;ERrH5D,4CQqH4D;AlB6yIhE;;AkCtyIA;;ExB/GI,+CQwG4D;ERvG5D,8CQuG4D;AlBmzIhE;;AkCpyIA;EAEI,mB/BurBsD;AH+mH1D;;Ac/3II;EoBuFJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/BirBsD;I+BhrBtD,kB/BgrBsD;EHunHxD;EkChzIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/B2qBoD;I+B1qBpD,gBAAgB;IAChB,iB/ByqBoD;EH6nHxD;AACF;;AkC7xIA;EAII,mB/B2pBsD;AHkoH1D;;Acl5II;EoBiHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElC8xIrB;EkCvyIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElC4xIpB;EkC3yIF;IAkBQ,cAAc;IACd,cAAc;ElC4xIpB;EkC/yIF;IxBxJI,0BwBiLoC;IxBhLpC,6BwBgLoC;ElC0xItC;EkCnzIF;;IA8BY,0BAA0B;ElCyxIpC;EkCvzIF;;IAmCY,6BAA6B;ElCwxIvC;EkC3zIF;IxB1II,yBwBkLmC;IxBjLnC,4BwBiLmC;ElCuxIrC;EkC/zIF;;IA6CY,yBAAyB;ElCsxInC;EkCn0IF;;IAkDY,4BAA4B;ElCqxItC;AACF;;AkCzwIA;EAEI,sB/BglBsC;AH2rH1C;;Ac77II;EoBgLJ;IAMI,uB/B6lBiC;I+B7lBjC,oB/B6lBiC;I+B7lBjC,e/B6lBiC;I+B5lBjC,2B/B6lBuC;I+B7lBvC,wB/B6lBuC;I+B7lBvC,mB/B6lBuC;I+B5lBvC,UAAU;IACV,SAAS;ElC4wIX;EkCrxIF;IAYM,qBAAqB;IACrB,WAAW;ElC4wIf;AACF;;AkCnwIA;EAEI,gBAAgB;AlCqwIpB;;AkCvwIA;EAKM,gBAAgB;ExB5OlB,6BwB6OiC;ExB5OjC,4BwB4OiC;AlCuwIrC;;AkC7wIA;ExBrPI,yBwB+P8B;ExB9P9B,0BwB8P8B;AlCwwIlC;;AkClxIA;ExB9PI,gBwB4Q0B;EACxB,mB/BnC2B;AH2yIjC;;AmC1hJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC+hCsC;EgC9hCtC,mBhCiiCsC;EgC/hCtC,gBAAgB;EAChB,yBhCEgB;EOJd,sBP6OgC;AHkzIpC;;AmCzhJA;EAGI,oBhCqhCqC;AHqgHzC;;AmC7hJA;EAMM,qBAAqB;EACrB,qBhCihCmC;EgChhCnC,chCNY;EgCOZ,YhCshCuC;AHqgH7C;;AmCpiJA;EAoBI,0BAA0B;AnCohJ9B;;AmCxiJA;EAwBI,qBAAqB;AnCohJzB;;AmC5iJA;EA4BI,chC1Bc;AH8iJlB;;AoC3jJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBP6OgC;AHg1IpC;;AoC5jJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCqO+B;EiCpO/B,iBjCmxBsC;EiClxBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AHmkJlB;;AoCvkJA;EAWI,UAAU;EACV,cjCkK8D;EiCjK9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AH2kJlB;;AoC/kJA;EAmBI,UAAU;EACV,UjC4wBiC;EiC3wBjC,gDjCSa;AHujJjB;;AoC5jJA;EAGM,cAAc;E1BChB,+BP+MgC;EO9MhC,kCP8MgC;AH+2IpC;;AoClkJA;E1BVI,gCP6NgC;EO5NhC,mCP4NgC;AHo3IpC;;AoCvkJA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHykJjB;;AoC9kJA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AH2mJlB;;AqClnJE;EACE,uBlCyxBsC;EC9pBpC,kBAtCY;EiCnFd,gBlCsO6B;AH+4IjC;;AqChnJM;E3BwBF,8BPgN+B;EO/M/B,iCP+M+B;AH64InC;;AqChnJM;E3BKF,+BP8N+B;EO7N/B,kCP6N+B;AHk5InC;;AqCloJE;EACE,uBlCuxBqC;EC5pBnC,mBAtCY;EiCnFd,gBlCuO6B;AH85IjC;;AqChoJM;E3BwBF,8BPiN+B;EOhN/B,iCPgN+B;AH45InC;;AqChoJM;E3BKF,+BP+N+B;EO9N/B,kCP8N+B;AHi6InC;;AsChpJA;EACE,qBAAqB;EACrB,qBnCw5BsC;ECv1BpC,cAAW;EkC/Db,gBnC2R+B;EmC1R/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BRtB,sBP6OgC;EiB5O9B,qIjB6b6I;AH+tInJ;;AoBvpJI;EkBNJ;IlBOM,gBAAgB;EpB2pJpB;AACF;;AKxpJE;EiCGI,qBAAqB;AtCypJ3B;;AsCvqJA;EAoBI,aAAa;AtCupJjB;;AsClpJA;EACE,kBAAkB;EAClB,SAAS;AtCqpJX;;AsC9oJA;EACE,oBnC63BsC;EmC53BtC,mBnC43BsC;EOh6BpC,oBPm6BqC;AHmxHzC;;AsCzoJE;ECjDA,WpCMa;EoCLb,yBpCkCe;AH4pJjB;;AKhrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8rJxC;;AuCjsJU;EAQJ,UAAU;EACV,+CpCuBW;AHsqJjB;;AsCxpJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHksJlB;;AK/rJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6sJxC;;AuChtJU;EAQJ,UAAU;EACV,iDpCAY;AH4sJlB;;AsCvqJE;ECjDA,WpCMa;EoCLb,yBpCyCe;AHmrJjB;;AK9sJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4tJxC;;AuC/tJU;EAQJ,UAAU;EACV,+CpC8BW;AH6rJjB;;AsCtrJE;ECjDA,WpCMa;EoCLb,yBpC2Ce;AHgsJjB;;AK7tJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2uJxC;;AuC9uJU;EAQJ,UAAU;EACV,gDpCgCW;AH0sJjB;;AsCrsJE;ECjDA,cpCegB;EoCdhB,yBpCwCe;AHktJjB;;AK5uJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0vJxC;;AuC7vJU;EAQJ,UAAU;EACV,+CpC6BW;AH4tJjB;;AsCptJE;ECjDA,WpCMa;EoCLb,yBpCsCe;AHmuJjB;;AK3vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCywJxC;;AuC5wJU;EAQJ,UAAU;EACV,+CpC2BW;AH6uJjB;;AsCnuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHkxJlB;;AK1wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvCwxJxC;;AuC3xJU;EAQJ,UAAU;EACV,iDpCLY;AH4xJlB;;AsClvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH0xJlB;;AKzxJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCuyJxC;;AuC1yJU;EAQJ,UAAU;EACV,8CpCEY;AHoyJlB;;AwCnzJA;EACE,kBAAoD;EACpD,mBrCqzBsC;EqCnzBtC,yBrCKgB;EOJd,qBP8O+B;AHukJnC;;Ac9vJI;E0B5DJ;IAQI,kBrC+yBoC;EHwgItC;AACF;;AwCpzJA;EACE,gBAAgB;EAChB,eAAe;E9BTb,gB8BUsB;AxCuzJ1B;;AyCl0JA;EACE,kBAAkB;EAClB,wBtCq9ByC;EsCp9BzC,mBtCq9BsC;EsCp9BtC,6BAA6C;E/BH3C,sBP6OgC;AH4lJpC;;AyCj0JA;EAEE,cAAc;AzCm0JhB;;AyC/zJA;EACE,gBtCgR+B;AHkjJjC;;AyC1zJA;EACE,mBAAsD;AzC6zJxD;;AyC9zJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCu7BuC;EsCt7BvC,cAAc;AzC6zJlB;;AyCnzJE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBywJlE;;A0Cn2JE;EACE,yBAAqC;A1Cs2JzC;;A0Cn2JE;EACE,cAA0B;A1Cs2J9B;;AyCj0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBuxJlE;;A0Cj3JE;EACE,yBAAqC;A1Co3JzC;;A0Cj3JE;EACE,cAA0B;A1Co3J9B;;AyC/0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBqyJlE;;A0C/3JE;EACE,yBAAqC;A1Ck4JzC;;A0C/3JE;EACE,cAA0B;A1Ck4J9B;;AyC71JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBmzJlE;;A0C74JE;EACE,yBAAqC;A1Cg5JzC;;A0C74JE;EACE,cAA0B;A1Cg5J9B;;AyC32JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBi0JlE;;A0C35JE;EACE,yBAAqC;A1C85JzC;;A0C35JE;EACE,cAA0B;A1C85J9B;;AyCz3JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB+0JlE;;A0Cz6JE;EACE,yBAAqC;A1C46JzC;;A0Cz6JE;EACE,cAA0B;A1C46J9B;;AyCv4JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB61JlE;;A0Cv7JE;EACE,yBAAqC;A1C07JzC;;A0Cv7JE;EACE,cAA0B;A1C07J9B;;AyCr5JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB22JlE;;A0Cr8JE;EACE,yBAAqC;A1Cw8JzC;;A0Cr8JE;EACE,cAA0B;A1Cw8J9B;;A2Ch9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cz9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cn9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC89BsC;EwC79BtC,gBAAgB;EvCoHZ,kBAtCY;EuC5EhB,yBxCJgB;EOJd,sBP6OgC;AHkvJpC;;A2Cl9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxChBa;EwCiBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCUe;EiB9BX,2BjB0+B4C;AHggIlD;;AoBr+JI;EuBOJ;IvBNM,gBAAgB;EpBy+JpB;AACF;;A2Cx9JA;ErBaE,qMAA6I;EqBX7I,0BxCw8BsC;AHmhIxC;;A2Cv9JE;EACE,0DxC08BkD;EwC18BlD,kDxC08BkD;AHghItD;;A2Cv9JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C29JrB;AACF;;A4CrgKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5CwgKzB;;A4CrgKA;EACE,WAAO;EAAP,OAAO;A5CwgKT;;A6C1gKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A7C2gKlB;;A6ClgKA;EACE,WAAW;EACX,c1CPgB;E0CQhB,mBAAmB;A7CqgKrB;;AK3gKE;EwCUE,UAAU;EACV,c1Cbc;E0Ccd,qBAAqB;EACrB,yB1CrBc;AH0hKlB;;A6C/gKA;EAcI,c1CjBc;E0CkBd,yB1CzBc;AH8hKlB;;A6C5/JA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C88ByC;E0C58BzC,sB1CzCa;E0C0Cb,sC1ChCa;AH8hKf;;A6CpgKA;EnC7BI,+BPoOgC;EOnOhC,gCPmOgC;AHk0JpC;;A6CzgKA;EnCfI,mCPsNgC;EOrNhC,kCPqNgC;AHu0JpC;;A6C9gKA;EAkBI,c1ChDc;E0CiDd,oBAAoB;EACpB,sB1CxDW;AHwjKf;;A6CphKA;EAyBI,UAAU;EACV,W1C9DW;E0C+DX,yB1ClCa;E0CmCb,qB1CnCa;AHkiKjB;;A6C3hKA;EAgCI,mBAAmB;A7C+/JvB;;A6C/hKA;EAmCM,gB1CiK2B;E0ChK3B,qB1CgK2B;AHg2JjC;;A6Cl/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7Cq/JzB;;A6Ct/JI;EnCjCA,kCPsLgC;EOlMhC,0BmCmDwC;A7Cq/J5C;;A6C3/JI;EnC7CA,gCPkMgC;EOtLhC,4BmC4C0C;A7Cq/J9C;;A6ChgKI;EAeM,aAAa;A7Cq/JvB;;A6CpgKI;EAmBM,qB1C+HuB;E0C9HvB,oBAAoB;A7Cq/J9B;;A6CzgKI;EAuBQ,iB1C2HqB;E0C1HrB,sB1C0HqB;AH43JjC;;Ac/iKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CkhKvB;E6CnhKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CihK1C;E6CvhKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CghK5C;E6C3hKE;IAeM,aAAa;E7C+gKrB;E6C9hKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7C8gK5B;E6CliKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHo5J/B;AACF;;AcxkKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C2iKvB;E6C5iKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C0iK1C;E6ChjKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CyiK5C;E6CpjKE;IAeM,aAAa;E7CwiKrB;E6CvjKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CuiK5B;E6C3jKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH66J/B;AACF;;AcjmKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CokKvB;E6CrkKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CmkK1C;E6CzkKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CkkK5C;E6C7kKE;IAeM,aAAa;E7CikKrB;E6ChlKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CgkK5B;E6CplKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHs8J/B;AACF;;Ac1nKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C6lKvB;E6C9lKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C4lK1C;E6ClmKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7C2lK5C;E6CtmKE;IAeM,aAAa;E7C0lKrB;E6CzmKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CylK5B;E6C7mKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH+9J/B;AACF;;A6C5kKA;EAEI,qBAAqB;EACrB,oBAAoB;EnCjIpB,gBmCkIwB;A7C8kK5B;;A6CllKA;EAOM,mBAAmB;A7C+kKzB;;A6CtlKA;EAaM,sBAAsB;A7C6kK5B;;A8C1tKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmoKlE;;AKltKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6tKjD;;A8CpuKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8oKlE;;A8C1uKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmpKlE;;AKluKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6uKjD;;A8CpvKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8pKlE;;A8C1vKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmqKlE;;AKlvKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6vKjD;;A8CpwKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8qKlE;;A8C1wKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmrKlE;;AKlwKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6wKjD;;A8CpxKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8rKlE;;A8C1xKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmsKlE;;AKlxKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6xKjD;;A8CpyKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8sKlE;;A8C1yKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmtKlE;;AKlyKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6yKjD;;A8CpzKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8tKlE;;A8C1zKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmuKlE;;AKlzKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6zKjD;;A8Cp0KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8uKlE;;A8C10KE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmvKlE;;AKl0KE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C60KjD;;A8Cp1KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8vKlE;;A+C71KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5CiS+B;E4ChS/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cg2Kb;;AK31KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cg2KzB;;AK51KE;E0CCI,YAAY;A/C+1KlB;;A+Cp1KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/Cu1KlB;;A+Cj1KA;EACE,oBAAoB;A/Co1KtB;;AgD33KA;EACE,gB7Cy4BuC;E6Cx4BvC,gBAAgB;E5C6HZ,mBAtCY;E4CpFhB,2C7CEa;E6CDb,4BAA4B;EAC5B,oC7C04BmD;E6Cz4BnD,gD7CSa;E6CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;EtCLR,sBP64BsC;AHs/I1C;;AgDx4KA;EAcI,sB7C63BsC;AHigJ1C;;AgD54KA;EAkBI,UAAU;AhD83Kd;;AgDh5KA;EAsBI,cAAc;EACd,UAAU;AhD83Kd;;AgDr5KA;EA2BI,aAAa;AhD83KjB;;AgD13KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Cy2BwC;E6Cx2BxC,c7CtBgB;E6CuBhB,2C7C7Ba;E6C8Bb,4BAA4B;EAC5B,4C7Ci3BoD;AH4gJtD;;AgD13KA;EACE,gB7Ci2BwC;AH4hJ1C;;AiDj6KA;EAEE,gBAAgB;AjDm6KlB;;AiDr6KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDo6KpB;;AiD/5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C+pBsC;E8C9pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDg6KZ;;AiDz5KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C64BuC;E8C34BvC,oBAAoB;AjD25KtB;;AiDx5KE;E7BrCI,2CjB48BoD;EiB58BpD,mCjB48BoD;EiB58BpD,oEjB48BoD;E8Cr6BtD,sC9Cm6BmD;E8Cn6BnD,8B9Cm6BmD;AHw/IvD;;AoB77KI;E6BgCF;I7B/BI,gBAAgB;EpBi8KpB;AACF;;AiD/5KE;EACE,uB9Ci6BoC;E8Cj6BpC,e9Ci6BoC;AHigJxC;;AiD95KE;EACE,8B9C85B2C;E8C95B3C,sB9C85B2C;AHmgJ/C;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/ByE8D;AlBu1KhE;;AiDl6KA;EAKI,8B/BsE4D;E+BrE5D,gBAAgB;AjDi6KpB;;AiDv6KA;;EAWI,oBAAc;EAAd,cAAc;AjDi6KlB;;AiD56KA;EAeI,gBAAgB;AjDi6KpB;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,6B/BqD8D;AlB22KhE;;AiDn6KA;EAOI,cAAc;EACd,0B/BgD4D;E+B/C5D,WAAW;AjDg6Kf;;AiDz6KA;EAcI,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,YAAY;AjD+5KhB;;AiD/6KA;EAmBM,gBAAgB;AjDg6KtB;;AiDn7KA;EAuBM,aAAa;AjDg6KnB;;AiD15KA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C1Ga;E8C2Gb,4BAA4B;EAC5B,oC9ClGa;EOZX,qBP8O+B;E8C5HjC,UAAU;AjDy5KZ;;AiDr5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9CojBsC;E8CnjBtC,YAAY;EACZ,aAAa;EACb,sB9CjHa;AHygLf;;AiD/5KA;EAUW,UAAU;AjDy5KrB;;AiDn6KA;EAWW,Y9C4zB2B;AHgmJtC;;AiDv5KA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,sBAA8B;EAA9B,8BAA8B;EAC9B,kB9CyzBsC;E8CxzBtC,gC9CtIgB;EOId,0CQsH4D;ERrH5D,2CQqH4D;AlBw6KhE;;AiDj6KA;EASI,kB9CozBoC;E8ClzBpC,8BAA6F;AjD25KjG;;AiDt5KA;EACE,gBAAgB;EAChB,gB9C2I+B;AH8wKjC;;AiDp5KA;EACE,kBAAkB;EAGlB,kBAAc;EAAd,cAAc;EACd,a9CuwBsC;AH8oJxC;;AiDj5KA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,kBAAyB;EAAzB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CvKgB;EOkBd,8CQwG4D;ERvG5D,6CQuG4D;AlBm8KhE;;AiD55KA;EAcI,eAAwC;AjDk5K5C;;AiD74KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDg5KlB;;AcvhLI;EmCzBJ;IAuKI,gB9CmwBqC;I8ClwBrC,oBAAyC;EjD84K3C;EiDhiLF;IAsJI,+B/B3E4D;ElBw9K9D;EiDniLF;IAyJM,gC/B9E0D;ElB29K9D;EiDnhLF;IA2II,+B/BnF4D;ElB89K9D;EiDthLF;IA8IM,4B/BtF0D;ElBi+K9D;EiDn4KA;IAAY,gB9C4uB2B;EH0pJvC;AACF;;Ac7iLI;EmC0KF;;IAEE,gB9CouBqC;EHmqJvC;AACF;;AcpjLI;EmCiLF;IAAY,iB9C8tB4B;EH0qJxC;AACF;;AkDrnLA;EACE,kBAAkB;EAClB,a/CmrBsC;E+ClrBtC,cAAc;EACd,S/Cy1BmC;EgD71BnC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlDkoLZ;;AkD7oLA;EAaW,Y/C60B2B;AHuzJtC;;AkDjpLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/C60BqC;E+C50BrC,c/C60BqC;AHwzJzC;;AkDxpLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlDsoLzB;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,SAAS;AlDqoLb;;AkDzoLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AH6pLf;;AkDjoLA;EACE,iB/CmzBuC;AHi1JzC;;AkDroLA;EAII,OAAO;EACP,a/C+yBqC;E+C9yBrC,c/C6yBqC;AHw1JzC;;AkD3oLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AH6qLf;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,MAAM;AlDqoLV;;AkDzoLA;EAOM,SAAS;EACT,6B/C4xBmC;E+C3xBnC,yB/CrDS;AH2rLf;;AkDjoLA;EACE,iB/CqxBuC;AH+2JzC;;AkDroLA;EAII,QAAQ;EACR,a/CixBqC;E+ChxBrC,c/C+wBqC;AHs3JzC;;AkD3oLA;EASM,OAAO;EACP,oC/C4wBmC;E+C3wBnC,uB/CrES;AH2sLf;;AkDjnLA;EACE,gB/C2uBuC;E+C1uBvC,uB/CgvBuC;E+C/uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOZX,sBP6OgC;AHm/KpC;;AoDruLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajDirBsC;EiDhrBtC,cAAc;EACd,gBjD22BuC;EgDh3BvC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOZX,qBP8O+B;AH+gLnC;;AoDlwLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjD22BoC;EiD12BpC,cjD22BqC;EiD12BrC,gBjD2N+B;AHuhLnC;;AoD1wLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApDkvLzB;;AoD7uLA;EACE,qBjD41BuC;AHo5JzC;;AoDjvLA;EAII,2BlC2F4D;AlBspLhE;;AoDrvLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDu1BiE;AH25JvE;;AoD3vLA;EAaM,WjD6L2B;EiD5L3B,6BAAgE;EAChE,sBjD7CS;AH+xLf;;AoD7uLA;EACE,mBjDw0BuC;AHw6JzC;;AoDjvLA;EAII,yBlCuE4D;EkCtE5D,ajDo0BqC;EiDn0BrC,YjDk0BoC;EiDj0BpC,gBAAgC;ApDivLpC;;AoDxvLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjDg0BiE;AHk7JvE;;AoD9vLA;EAgBM,SjDsK2B;EiDrK3B,oCAA2F;EAC3F,wBjDpES;AHszLf;;AoD7uLA;EACE,kBjDizBuC;AH+7JzC;;AoDjvLA;EAII,wBlCgD4D;AlBisLhE;;AoDrvLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD4yBiE;AHs8JvE;;AoD3vLA;EAaM,QjDkJ2B;EiDjJ3B,oCAA2F;EAC3F,yBjDxFS;AH00Lf;;AoDjwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDwxBoC;EiDvxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD4wBuD;AHo+J3D;;AoD5uLA;EACE,oBjDixBuC;AH89JzC;;AoDhvLA;EAII,0BlCgB4D;EkCf5D,ajD6wBqC;EiD5wBrC,YjD2wBoC;EiD1wBpC,gBAAgC;ApDgvLpC;;AoDvvLA;EAUM,QAAQ;EACR,oCjDuwBmC;EiDtwBnC,sCjDywBiE;AHw+JvE;;AoD7vLA;EAgBM,UjD+G2B;EiD9G3B,oCjDiwBmC;EiDhwBnC,uBjD3HS;AH42Lf;;AoD3tLA;EACE,uBjDkuBwC;EiDjuBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjD2tByD;EiD1tBzD,gCAAyE;E1ChJvE,0CQsH4D;ERrH5D,2CQqH4D;AlByvLhE;;AoDruLA;EAUI,aAAa;ApD+tLjB;;AoD3tLA;EACE,uBjDotBwC;EiDntBxC,cjDxJgB;AHs3LlB;;AqDz3LA;EACE,kBAAkB;ArD43LpB;;AqDz3LA;EACE,uBAAmB;EAAnB,mBAAmB;ArD43LrB;;AqDz3LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArD43LlB;;AsDn5LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtDs5Lf;;AqD93LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjC5BvB,8CjBikCkF;EiBjkClF,sCjBikCkF;EiBjkClF,0EjBikCkF;AH61JxF;;AoBz5LI;EiCiBJ;IjChBM,gBAAgB;EpB65LpB;AACF;;AqDp4LA;;;EAGE,cAAc;ArDu4LhB;;AqDp4LA;;EAEE,mCAA2B;EAA3B,2BAA2B;ArDu4L7B;;AqDp4LA;;EAEE,oCAA4B;EAA5B,4BAA4B;ArDu4L9B;;AqD/3LA;EAEI,UAAU;EACV,4BAA4B;EAC5B,uBAAe;EAAf,eAAe;ArDi4LnB;;AqDr4LA;;;EAUI,UAAU;EACV,UAAU;ArDi4Ld;;AqD54LA;;EAgBI,UAAU;EACV,UAAU;EjCtER,2BjBgkCkC;AHw4JxC;;AoBn8LI;EiCgDJ;;IjC/CM,gBAAgB;EpBw8LpB;AACF;;AqD/3LA;;EAEE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,UAAU;EAEV,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,qBAAuB;EAAvB,uBAAuB;EACvB,UlDk9BsC;EkDj9BtC,WlD1Fa;EkD2Fb,kBAAkB;EAClB,YlDg9BqC;EiB7iCjC,8BjB+iCgD;AHg7JtD;;AoB19LI;EiC2EJ;;IjC1EM,gBAAgB;EpB+9LpB;AACF;;AK59LE;;;EgDwFE,WlDjGW;EkDkGX,qBAAqB;EACrB,UAAU;EACV,YlDy8BmC;AHi8JvC;;AqDv4LA;EACE,OAAO;ArD04LT;;AqDr4LA;EACE,QAAQ;ArDw4LV;;AqDj4LA;;EAEE,qBAAqB;EACrB,WlDk8BuC;EkDj8BvC,YlDi8BuC;EkDh8BvC,qCAAqC;ArDo4LvC;;AqDl4LA;EACE,sNnCxFyI;AlB69L3I;;AqDn4LA;EACE,uNnC3FyI;AlBi+L3I;;AqD73LA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,OAAO;EACP,WAAW;EACX,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,eAAe;EAEf,iBlDw5BsC;EkDv5BtC,gBlDu5BsC;EkDt5BtC,gBAAgB;ArD+3LlB;;AqD34LA;EAeI,uBAAuB;EACvB,kBAAc;EAAd,cAAc;EACd,WlDs5BqC;EkDr5BrC,WlDs5BoC;EkDr5BpC,iBlDu5BoC;EkDt5BpC,gBlDs5BoC;EkDr5BpC,mBAAmB;EACnB,eAAe;EACf,sBlDhKW;EkDiKX,4BAA4B;EAE5B,kCAAiE;EACjE,qCAAoE;EACpE,WAAW;EjCtKT,6BjBsjC+C;AHg/JrD;;AoBjiMI;EiCqIJ;IjCpIM,gBAAgB;EpBqiMpB;AACF;;AqDl6LA;EAiCI,UAAU;ArDq4Ld;;AqD53LA;EACE,kBAAkB;EAClB,UAA2C;EAC3C,YAAY;EACZ,SAA0C;EAC1C,WAAW;EACX,iBAAiB;EACjB,oBAAoB;EACpB,WlD3La;EkD4Lb,kBAAkB;ArD+3LpB;;AuD9jMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvDkkM9B;AACF;;AuDpkMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvDkkM9B;AACF;;AuDhkMA;EACE,qBAAqB;EACrB,WpDkkC0B;EoDjkC1B,YpDikC0B;EoDhkC1B,2BAA2B;EAC3B,iCAAgD;EAChD,+BAA+B;EAE/B,kBAAkB;EAClB,sDAA8C;EAA9C,8CAA8C;AvDkkMhD;;AuD/jMA;EACE,WpD2jC4B;EoD1jC5B,YpD0jC4B;EoDzjC5B,mBpD2jC4B;AHugK9B;;AuD3jMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvD8jMrB;EuD5jMA;IACE,UAAU;EvD8jMZ;AACF;;AuDpkMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvD8jMrB;EuD5jMA;IACE,UAAU;EvD8jMZ;AACF;;AuD3jMA;EACE,qBAAqB;EACrB,WpDmiC0B;EoDliC1B,YpDkiC0B;EoDjiC1B,2BAA2B;EAC3B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;EAA5C,4CAA4C;AvD6jM9C;;AuD1jMA;EACE,WpD4hC4B;EoD3hC5B,YpD2hC4B;AHkiK9B;;AwDhnMA;EAAqB,mCAAmC;AxDonMxD;;AwDnnMA;EAAqB,8BAA8B;AxDunMnD;;AwDtnMA;EAAqB,iCAAiC;AxD0nMtD;;AwDznMA;EAAqB,iCAAiC;AxD6nMtD;;AwD5nMA;EAAqB,sCAAsC;AxDgoM3D;;AwD/nMA;EAAqB,mCAAmC;AxDmoMxD;;AyDroME;EACE,oCAAmC;AzDwoMvC;;AK9nME;;;EoDLI,oCAAgD;AzDyoMtD;;AyD/oME;EACE,oCAAmC;AzDkpMvC;;AKxoME;;;EoDLI,oCAAgD;AzDmpMtD;;AyDzpME;EACE,oCAAmC;AzD4pMvC;;AKlpME;;;EoDLI,oCAAgD;AzD6pMtD;;AyDnqME;EACE,oCAAmC;AzDsqMvC;;AK5pME;;;EoDLI,oCAAgD;AzDuqMtD;;AyD7qME;EACE,oCAAmC;AzDgrMvC;;AKtqME;;;EoDLI,oCAAgD;AzDirMtD;;AyDvrME;EACE,oCAAmC;AzD0rMvC;;AKhrME;;;EoDLI,oCAAgD;AzD2rMtD;;AyDjsME;EACE,oCAAmC;AzDosMvC;;AK1rME;;;EoDLI,oCAAgD;AzDqsMtD;;AyD3sME;EACE,oCAAmC;AzD8sMvC;;AKpsME;;;EoDLI,oCAAgD;AzD+sMtD;;A0D9sMA;EACE,iCAAmC;A1DitMrC;;A0D9sMA;EACE,wCAAwC;A1DitM1C;;A2D5tMA;EAAkB,oCAAoD;A3DguMtE;;A2D/tMA;EAAkB,wCAAwD;A3DmuM1E;;A2DluMA;EAAkB,0CAA0D;A3DsuM5E;;A2DruMA;EAAkB,2CAA2D;A3DyuM7E;;A2DxuMA;EAAkB,yCAAyD;A3D4uM3E;;A2D1uMA;EAAmB,oBAAoB;A3D8uMvC;;A2D7uMA;EAAmB,wBAAwB;A3DivM3C;;A2DhvMA;EAAmB,0BAA0B;A3DovM7C;;A2DnvMA;EAAmB,2BAA2B;A3DuvM9C;;A2DtvMA;EAAmB,yBAAyB;A3D0vM5C;;A2DvvME;EACE,gCAA+B;A3D0vMnC;;A2D3vME;EACE,gCAA+B;A3D8vMnC;;A2D/vME;EACE,gCAA+B;A3DkwMnC;;A2DnwME;EACE,gCAA+B;A3DswMnC;;A2DvwME;EACE,gCAA+B;A3D0wMnC;;A2D3wME;EACE,gCAA+B;A3D8wMnC;;A2D/wME;EACE,gCAA+B;A3DkxMnC;;A2DnxME;EACE,gCAA+B;A3DsxMnC;;A2DlxMA;EACE,6BAA+B;A3DqxMjC;;A2D9wMA;EACE,gCAA2C;A3DixM7C;;A2D9wMA;EACE,iCAAwC;A3DixM1C;;A2D9wMA;EACE,0CAAiD;EACjD,2CAAkD;A3DixMpD;;A2D9wMA;EACE,2CAAkD;EAClD,8CAAqD;A3DixMvD;;A2D9wMA;EACE,8CAAqD;EACrD,6CAAoD;A3DixMtD;;A2D9wMA;EACE,0CAAiD;EACjD,6CAAoD;A3DixMtD;;A2D9wMA;EACE,gCAA2C;A3DixM7C;;A2D9wMA;EACE,6BAA6B;A3DixM/B;;A2D9wMA;EACE,+BAAuC;A3DixMzC;;A2D9wMA;EACE,2BAA2B;A3DixM7B;;AsDz1ME;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD41Mf;;A4Dr1MM;EAAwB,wBAA0B;A5Dy1MxD;;A4Dz1MM;EAAwB,0BAA0B;A5D61MxD;;A4D71MM;EAAwB,gCAA0B;A5Di2MxD;;A4Dj2MM;EAAwB,yBAA0B;A5Dq2MxD;;A4Dr2MM;EAAwB,yBAA0B;A5Dy2MxD;;A4Dz2MM;EAAwB,6BAA0B;A5D62MxD;;A4D72MM;EAAwB,8BAA0B;A5Di3MxD;;A4Dj3MM;EAAwB,+BAA0B;EAA1B,wBAA0B;A5Dq3MxD;;A4Dr3MM;EAAwB,sCAA0B;EAA1B,+BAA0B;A5Dy3MxD;;Acx0MI;E8CjDE;IAAwB,wBAA0B;E5D83MtD;E4D93MI;IAAwB,0BAA0B;E5Di4MtD;E4Dj4MI;IAAwB,gCAA0B;E5Do4MtD;E4Dp4MI;IAAwB,yBAA0B;E5Du4MtD;E4Dv4MI;IAAwB,yBAA0B;E5D04MtD;E4D14MI;IAAwB,6BAA0B;E5D64MtD;E4D74MI;IAAwB,8BAA0B;E5Dg5MtD;E4Dh5MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Dm5MtD;E4Dn5MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Ds5MtD;AACF;;Act2MI;E8CjDE;IAAwB,wBAA0B;E5D45MtD;E4D55MI;IAAwB,0BAA0B;E5D+5MtD;E4D/5MI;IAAwB,gCAA0B;E5Dk6MtD;E4Dl6MI;IAAwB,yBAA0B;E5Dq6MtD;E4Dr6MI;IAAwB,yBAA0B;E5Dw6MtD;E4Dx6MI;IAAwB,6BAA0B;E5D26MtD;E4D36MI;IAAwB,8BAA0B;E5D86MtD;E4D96MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Di7MtD;E4Dj7MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Do7MtD;AACF;;Acp4MI;E8CjDE;IAAwB,wBAA0B;E5D07MtD;E4D17MI;IAAwB,0BAA0B;E5D67MtD;E4D77MI;IAAwB,gCAA0B;E5Dg8MtD;E4Dh8MI;IAAwB,yBAA0B;E5Dm8MtD;E4Dn8MI;IAAwB,yBAA0B;E5Ds8MtD;E4Dt8MI;IAAwB,6BAA0B;E5Dy8MtD;E4Dz8MI;IAAwB,8BAA0B;E5D48MtD;E4D58MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D+8MtD;E4D/8MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Dk9MtD;AACF;;Acl6MI;E8CjDE;IAAwB,wBAA0B;E5Dw9MtD;E4Dx9MI;IAAwB,0BAA0B;E5D29MtD;E4D39MI;IAAwB,gCAA0B;E5D89MtD;E4D99MI;IAAwB,yBAA0B;E5Di+MtD;E4Dj+MI;IAAwB,yBAA0B;E5Do+MtD;E4Dp+MI;IAAwB,6BAA0B;E5Du+MtD;E4Dv+MI;IAAwB,8BAA0B;E5D0+MtD;E4D1+MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D6+MtD;E4D7+MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Dg/MtD;AACF;;A4Dv+MA;EAEI;IAAqB,wBAA0B;E5D0+MjD;E4D1+ME;IAAqB,0BAA0B;E5D6+MjD;E4D7+ME;IAAqB,gCAA0B;E5Dg/MjD;E4Dh/ME;IAAqB,yBAA0B;E5Dm/MjD;E4Dn/ME;IAAqB,yBAA0B;E5Ds/MjD;E4Dt/ME;IAAqB,6BAA0B;E5Dy/MjD;E4Dz/ME;IAAqB,8BAA0B;E5D4/MjD;E4D5/ME;IAAqB,+BAA0B;IAA1B,wBAA0B;E5D+/MjD;E4D//ME;IAAqB,sCAA0B;IAA1B,+BAA0B;E5DkgNjD;AACF;;A6DxhNA;EACE,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,UAAU;EACV,gBAAgB;A7D2hNlB;;A6DhiNA;EAQI,cAAc;EACd,WAAW;A7D4hNf;;A6DriNA;;;;;EAiBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;EACX,YAAY;EACZ,SAAS;A7D4hNb;;A6DphNE;EAEI,uBAA4F;A7DshNlG;;A6DxhNE;EAEI,mBAA4F;A7D0hNlG;;A6D5hNE;EAEI,gBAA4F;A7D8hNlG;;A6DhiNE;EAEI,iBAA4F;A7DkiNlG;;A8D3jNI;EAAgC,kCAA8B;EAA9B,8BAA8B;A9D+jNlE;;A8D9jNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9DkkNrE;;A8DjkNI;EAAgC,0CAAsC;EAAtC,sCAAsC;A9DqkN1E;;A8DpkNI;EAAgC,6CAAyC;EAAzC,yCAAyC;A9DwkN7E;;A8DtkNI;EAA8B,8BAA0B;EAA1B,0BAA0B;A9D0kN5D;;A8DzkNI;EAA8B,gCAA4B;EAA5B,4BAA4B;A9D6kN9D;;A8D5kNI;EAA8B,sCAAkC;EAAlC,kCAAkC;A9DglNpE;;A8D/kNI;EAA8B,6BAAyB;EAAzB,yBAAyB;A9DmlN3D;;A8DllNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9DslNzD;;A8DrlNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9DylNzD;;A8DxlNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9D4lN3D;;A8D3lNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9D+lN3D;;A8D7lNI;EAAoC,+BAAsC;EAAtC,sCAAsC;A9DimN9E;;A8DhmNI;EAAoC,6BAAoC;EAApC,oCAAoC;A9DomN5E;;A8DnmNI;EAAoC,gCAAkC;EAAlC,kCAAkC;A9DumN1E;;A8DtmNI;EAAoC,iCAAyC;EAAzC,yCAAyC;A9D0mNjF;;A8DzmNI;EAAoC,oCAAwC;EAAxC,wCAAwC;A9D6mNhF;;A8D3mNI;EAAiC,gCAAkC;EAAlC,kCAAkC;A9D+mNvE;;A8D9mNI;EAAiC,8BAAgC;EAAhC,gCAAgC;A9DknNrE;;A8DjnNI;EAAiC,iCAA8B;EAA9B,8BAA8B;A9DqnNnE;;A8DpnNI;EAAiC,mCAAgC;EAAhC,gCAAgC;A9DwnNrE;;A8DvnNI;EAAiC,kCAA+B;EAA/B,+BAA+B;A9D2nNpE;;A8DznNI;EAAkC,oCAAoC;EAApC,oCAAoC;A9D6nN1E;;A8D5nNI;EAAkC,kCAAkC;EAAlC,kCAAkC;A9DgoNxE;;A8D/nNI;EAAkC,qCAAgC;EAAhC,gCAAgC;A9DmoNtE;;A8DloNI;EAAkC,sCAAuC;EAAvC,uCAAuC;A9DsoN7E;;A8DroNI;EAAkC,yCAAsC;EAAtC,sCAAsC;A9DyoN5E;;A8DxoNI;EAAkC,sCAAiC;EAAjC,iCAAiC;A9D4oNvE;;A8D1oNI;EAAgC,oCAA2B;EAA3B,2BAA2B;A9D8oN/D;;A8D7oNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9DipNrE;;A8DhpNI;EAAgC,mCAA+B;EAA/B,+BAA+B;A9DopNnE;;A8DnpNI;EAAgC,sCAA6B;EAA7B,6BAA6B;A9DupNjE;;A8DtpNI;EAAgC,wCAA+B;EAA/B,+BAA+B;A9D0pNnE;;A8DzpNI;EAAgC,uCAA8B;EAA9B,8BAA8B;A9D6pNlE;;AcjpNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DwsNhE;E8DvsNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D0sNnE;E8DzsNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9D4sNxE;E8D3sNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9D8sN3E;E8D5sNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9D+sN1D;E8D9sNE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9DitN5D;E8DhtNE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9DmtNlE;E8DltNE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9DqtNzD;E8DptNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DutNvD;E8DttNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DytNvD;E8DxtNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D2tNzD;E8D1tNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D6tNzD;E8D3tNE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9D8tN5E;E8D7tNE;IAAoC,6BAAoC;IAApC,oCAAoC;E9DguN1E;E8D/tNE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9DkuNxE;E8DjuNE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9DouN/E;E8DnuNE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9DsuN9E;E8DpuNE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9DuuNrE;E8DtuNE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9DyuNnE;E8DxuNE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D2uNjE;E8D1uNE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9D6uNnE;E8D5uNE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9D+uNlE;E8D7uNE;IAAkC,oCAAoC;IAApC,oCAAoC;E9DgvNxE;E8D/uNE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9DkvNtE;E8DjvNE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9DovNpE;E8DnvNE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9DsvN3E;E8DrvNE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9DwvN1E;E8DvvNE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D0vNrE;E8DxvNE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D2vN7D;E8D1vNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D6vNnE;E8D5vNE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9D+vNjE;E8D9vNE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9DiwN/D;E8DhwNE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9DmwNjE;E8DlwNE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9DqwNhE;AACF;;Ac1vNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DizNhE;E8DhzNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DmzNnE;E8DlzNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DqzNxE;E8DpzNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DuzN3E;E8DrzNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9DwzN1D;E8DvzNE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D0zN5D;E8DzzNE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D4zNlE;E8D3zNE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9D8zNzD;E8D7zNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dg0NvD;E8D/zNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dk0NvD;E8Dj0NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Do0NzD;E8Dn0NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Ds0NzD;E8Dp0NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Du0N5E;E8Dt0NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9Dy0N1E;E8Dx0NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D20NxE;E8D10NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D60N/E;E8D50NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9D+0N9E;E8D70NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dg1NrE;E8D/0NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9Dk1NnE;E8Dj1NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9Do1NjE;E8Dn1NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9Ds1NnE;E8Dr1NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9Dw1NlE;E8Dt1NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9Dy1NxE;E8Dx1NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D21NtE;E8D11NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D61NpE;E8D51NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9D+1N3E;E8D91NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9Di2N1E;E8Dh2NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9Dm2NrE;E8Dj2NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9Do2N7D;E8Dn2NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9Ds2NnE;E8Dr2NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9Dw2NjE;E8Dv2NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D02N/D;E8Dz2NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D42NjE;E8D32NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9D82NhE;AACF;;Acn2NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9D05NhE;E8Dz5NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D45NnE;E8D35NE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9D85NxE;E8D75NE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9Dg6N3E;E8D95NE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9Di6N1D;E8Dh6NE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9Dm6N5D;E8Dl6NE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9Dq6NlE;E8Dp6NE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9Du6NzD;E8Dt6NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dy6NvD;E8Dx6NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9D26NvD;E8D16NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D66NzD;E8D56NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D+6NzD;E8D76NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Dg7N5E;E8D/6NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9Dk7N1E;E8Dj7NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9Do7NxE;E8Dn7NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9Ds7N/E;E8Dr7NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9Dw7N9E;E8Dt7NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dy7NrE;E8Dx7NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9D27NnE;E8D17NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D67NjE;E8D57NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9D+7NnE;E8D97NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9Di8NlE;E8D/7NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9Dk8NxE;E8Dj8NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9Do8NtE;E8Dn8NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9Ds8NpE;E8Dr8NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9Dw8N3E;E8Dv8NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9D08N1E;E8Dz8NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D48NrE;E8D18NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D68N7D;E8D58NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D+8NnE;E8D98NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9Di9NjE;E8Dh9NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9Dm9N/D;E8Dl9NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9Dq9NjE;E8Dp9NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9Du9NhE;AACF;;Ac58NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DmgOhE;E8DlgOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DqgOnE;E8DpgOE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DugOxE;E8DtgOE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DygO3E;E8DvgOE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9D0gO1D;E8DzgOE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D4gO5D;E8D3gOE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D8gOlE;E8D7gOE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9DghOzD;E8D/gOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DkhOvD;E8DjhOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DohOvD;E8DnhOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DshOzD;E8DrhOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DwhOzD;E8DthOE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9DyhO5E;E8DxhOE;IAAoC,6BAAoC;IAApC,oCAAoC;E9D2hO1E;E8D1hOE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D6hOxE;E8D5hOE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D+hO/E;E8D9hOE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9DiiO9E;E8D/hOE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9DkiOrE;E8DjiOE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9DoiOnE;E8DniOE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9DsiOjE;E8DriOE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9DwiOnE;E8DviOE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9D0iOlE;E8DxiOE;IAAkC,oCAAoC;IAApC,oCAAoC;E9D2iOxE;E8D1iOE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D6iOtE;E8D5iOE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D+iOpE;E8D9iOE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9DijO3E;E8DhjOE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9DmjO1E;E8DljOE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9DqjOrE;E8DnjOE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9DsjO7D;E8DrjOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DwjOnE;E8DvjOE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9D0jOjE;E8DzjOE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D4jO/D;E8D3jOE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D8jOjE;E8D7jOE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9DgkOhE;AACF;;A+D3mOI;EAAwB,sBAAsB;A/D+mOlD;;A+D9mOI;EAAwB,uBAAuB;A/DknOnD;;A+DjnOI;EAAwB,sBAAsB;A/DqnOlD;;AcjkOI;EiDtDA;IAAwB,sBAAsB;E/D4nOhD;E+D3nOE;IAAwB,uBAAuB;E/D8nOjD;E+D7nOE;IAAwB,sBAAsB;E/DgoOhD;AACF;;Ac7kOI;EiDtDA;IAAwB,sBAAsB;E/DwoOhD;E+DvoOE;IAAwB,uBAAuB;E/D0oOjD;E+DzoOE;IAAwB,sBAAsB;E/D4oOhD;AACF;;AczlOI;EiDtDA;IAAwB,sBAAsB;E/DopOhD;E+DnpOE;IAAwB,uBAAuB;E/DspOjD;E+DrpOE;IAAwB,sBAAsB;E/DwpOhD;AACF;;AcrmOI;EiDtDA;IAAwB,sBAAsB;E/DgqOhD;E+D/pOE;IAAwB,uBAAuB;E/DkqOjD;E+DjqOE;IAAwB,sBAAsB;E/DoqOhD;AACF;;AgE1qOE;EAAsB,yBAA2B;AhE8qOnD;;AgE9qOE;EAAsB,2BAA2B;AhEkrOnD;;AiEjrOE;EAAyB,2BAA8B;AjEqrOzD;;AiErrOE;EAAyB,6BAA8B;AjEyrOzD;;AiEzrOE;EAAyB,6BAA8B;AjE6rOzD;;AiE7rOE;EAAyB,0BAA8B;AjEisOzD;;AiEjsOE;EAAyB,mCAA8B;EAA9B,2BAA8B;AjEqsOzD;;AiEhsOA;EACE,eAAe;EACf,MAAM;EACN,QAAQ;EACR,OAAO;EACP,a9DoqBsC;AH+hNxC;;AiEhsOA;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,OAAO;EACP,a9D4pBsC;AHuiNxC;;AiE/rO8B;EAD9B;IAEI,wBAAgB;IAAhB,gBAAgB;IAChB,MAAM;IACN,a9DopBoC;EH+iNtC;AACF;;AkE7tOA;ECEE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,SAAS;AnE+tOX;;AmErtOE;EAEE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB;AnEutOvB;;AoEpvOA;EAAa,8DAAqC;ApEwvOlD;;AoEvvOA;EAAU,wDAAkC;ApE2vO5C;;AoE1vOA;EAAa,uDAAqC;ApE8vOlD;;AoE7vOA;EAAe,2BAA2B;ApEiwO1C;;AqEhwOI;EAAuB,qBAA4B;ArEowOvD;;AqEpwOI;EAAuB,qBAA4B;ArEwwOvD;;AqExwOI;EAAuB,qBAA4B;ArE4wOvD;;AqE5wOI;EAAuB,sBAA4B;ArEgxOvD;;AqEhxOI;EAAuB,sBAA4B;ArEoxOvD;;AqEpxOI;EAAuB,sBAA4B;ArEwxOvD;;AqExxOI;EAAuB,sBAA4B;ArE4xOvD;;AqE5xOI;EAAuB,sBAA4B;ArEgyOvD;;AqEhyOI;EAAuB,uBAA4B;ArEoyOvD;;AqEpyOI;EAAuB,uBAA4B;ArEwyOvD;;AqEpyOA;EAAU,0BAA0B;ArEwyOpC;;AqEvyOA;EAAU,2BAA2B;ArE2yOrC;;AqEvyOA;EAAc,2BAA2B;ArE2yOzC;;AqE1yOA;EAAc,4BAA4B;ArE8yO1C;;AqE5yOA;EAAU,uBAAuB;ArEgzOjC;;AqE/yOA;EAAU,wBAAwB;ArEmzOlC;;AsEl0OA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AtEk0OtC;;AuEx0OQ;EAAgC,oBAA4B;AvE40OpE;;AuE30OQ;;EAEE,wBAAoC;AvE80O9C;;AuE50OQ;;EAEE,0BAAwC;AvE+0OlD;;AuE70OQ;;EAEE,2BAA0C;AvEg1OpD;;AuE90OQ;;EAEE,yBAAsC;AvEi1OhD;;AuEh2OQ;EAAgC,0BAA4B;AvEo2OpE;;AuEn2OQ;;EAEE,8BAAoC;AvEs2O9C;;AuEp2OQ;;EAEE,gCAAwC;AvEu2OlD;;AuEr2OQ;;EAEE,iCAA0C;AvEw2OpD;;AuEt2OQ;;EAEE,+BAAsC;AvEy2OhD;;AuEx3OQ;EAAgC,yBAA4B;AvE43OpE;;AuE33OQ;;EAEE,6BAAoC;AvE83O9C;;AuE53OQ;;EAEE,+BAAwC;AvE+3OlD;;AuE73OQ;;EAEE,gCAA0C;AvEg4OpD;;AuE93OQ;;EAEE,8BAAsC;AvEi4OhD;;AuEh5OQ;EAAgC,uBAA4B;AvEo5OpE;;AuEn5OQ;;EAEE,2BAAoC;AvEs5O9C;;AuEp5OQ;;EAEE,6BAAwC;AvEu5OlD;;AuEr5OQ;;EAEE,8BAA0C;AvEw5OpD;;AuEt5OQ;;EAEE,4BAAsC;AvEy5OhD;;AuEx6OQ;EAAgC,yBAA4B;AvE46OpE;;AuE36OQ;;EAEE,6BAAoC;AvE86O9C;;AuE56OQ;;EAEE,+BAAwC;AvE+6OlD;;AuE76OQ;;EAEE,gCAA0C;AvEg7OpD;;AuE96OQ;;EAEE,8BAAsC;AvEi7OhD;;AuEh8OQ;EAAgC,uBAA4B;AvEo8OpE;;AuEn8OQ;;EAEE,2BAAoC;AvEs8O9C;;AuEp8OQ;;EAEE,6BAAwC;AvEu8OlD;;AuEr8OQ;;EAEE,8BAA0C;AvEw8OpD;;AuEt8OQ;;EAEE,4BAAsC;AvEy8OhD;;AuEx9OQ;EAAgC,qBAA4B;AvE49OpE;;AuE39OQ;;EAEE,yBAAoC;AvE89O9C;;AuE59OQ;;EAEE,2BAAwC;AvE+9OlD;;AuE79OQ;;EAEE,4BAA0C;AvEg+OpD;;AuE99OQ;;EAEE,0BAAsC;AvEi+OhD;;AuEh/OQ;EAAgC,2BAA4B;AvEo/OpE;;AuEn/OQ;;EAEE,+BAAoC;AvEs/O9C;;AuEp/OQ;;EAEE,iCAAwC;AvEu/OlD;;AuEr/OQ;;EAEE,kCAA0C;AvEw/OpD;;AuEt/OQ;;EAEE,gCAAsC;AvEy/OhD;;AuExgPQ;EAAgC,0BAA4B;AvE4gPpE;;AuE3gPQ;;EAEE,8BAAoC;AvE8gP9C;;AuE5gPQ;;EAEE,gCAAwC;AvE+gPlD;;AuE7gPQ;;EAEE,iCAA0C;AvEghPpD;;AuE9gPQ;;EAEE,+BAAsC;AvEihPhD;;AuEhiPQ;EAAgC,wBAA4B;AvEoiPpE;;AuEniPQ;;EAEE,4BAAoC;AvEsiP9C;;AuEpiPQ;;EAEE,8BAAwC;AvEuiPlD;;AuEriPQ;;EAEE,+BAA0C;AvEwiPpD;;AuEtiPQ;;EAEE,6BAAsC;AvEyiPhD;;AuExjPQ;EAAgC,0BAA4B;AvE4jPpE;;AuE3jPQ;;EAEE,8BAAoC;AvE8jP9C;;AuE5jPQ;;EAEE,gCAAwC;AvE+jPlD;;AuE7jPQ;;EAEE,iCAA0C;AvEgkPpD;;AuE9jPQ;;EAEE,+BAAsC;AvEikPhD;;AuEhlPQ;EAAgC,wBAA4B;AvEolPpE;;AuEnlPQ;;EAEE,4BAAoC;AvEslP9C;;AuEplPQ;;EAEE,8BAAwC;AvEulPlD;;AuErlPQ;;EAEE,+BAA0C;AvEwlPpD;;AuEtlPQ;;EAEE,6BAAsC;AvEylPhD;;AuEjlPQ;EAAwB,2BAA2B;AvEqlP3D;;AuEplPQ;;EAEE,+BAA+B;AvEulPzC;;AuErlPQ;;EAEE,iCAAiC;AvEwlP3C;;AuEtlPQ;;EAEE,kCAAkC;AvEylP5C;;AuEvlPQ;;EAEE,gCAAgC;AvE0lP1C;;AuEzmPQ;EAAwB,0BAA2B;AvE6mP3D;;AuE5mPQ;;EAEE,8BAA+B;AvE+mPzC;;AuE7mPQ;;EAEE,gCAAiC;AvEgnP3C;;AuE9mPQ;;EAEE,iCAAkC;AvEinP5C;;AuE/mPQ;;EAEE,+BAAgC;AvEknP1C;;AuEjoPQ;EAAwB,wBAA2B;AvEqoP3D;;AuEpoPQ;;EAEE,4BAA+B;AvEuoPzC;;AuEroPQ;;EAEE,8BAAiC;AvEwoP3C;;AuEtoPQ;;EAEE,+BAAkC;AvEyoP5C;;AuEvoPQ;;EAEE,6BAAgC;AvE0oP1C;;AuEzpPQ;EAAwB,0BAA2B;AvE6pP3D;;AuE5pPQ;;EAEE,8BAA+B;AvE+pPzC;;AuE7pPQ;;EAEE,gCAAiC;AvEgqP3C;;AuE9pPQ;;EAEE,iCAAkC;AvEiqP5C;;AuE/pPQ;;EAEE,+BAAgC;AvEkqP1C;;AuEjrPQ;EAAwB,wBAA2B;AvEqrP3D;;AuEprPQ;;EAEE,4BAA+B;AvEurPzC;;AuErrPQ;;EAEE,8BAAiC;AvEwrP3C;;AuEtrPQ;;EAEE,+BAAkC;AvEyrP5C;;AuEvrPQ;;EAEE,6BAAgC;AvE0rP1C;;AuEprPI;EAAmB,uBAAuB;AvEwrP9C;;AuEvrPI;;EAEE,2BAA2B;AvE0rPjC;;AuExrPI;;EAEE,6BAA6B;AvE2rPnC;;AuEzrPI;;EAEE,8BAA8B;AvE4rPpC;;AuE1rPI;;EAEE,4BAA4B;AvE6rPlC;;ActsPI;EyDlDI;IAAgC,oBAA4B;EvE6vPlE;EuE5vPM;;IAEE,wBAAoC;EvE8vP5C;EuE5vPM;;IAEE,0BAAwC;EvE8vPhD;EuE5vPM;;IAEE,2BAA0C;EvE8vPlD;EuE5vPM;;IAEE,yBAAsC;EvE8vP9C;EuE7wPM;IAAgC,0BAA4B;EvEgxPlE;EuE/wPM;;IAEE,8BAAoC;EvEixP5C;EuE/wPM;;IAEE,gCAAwC;EvEixPhD;EuE/wPM;;IAEE,iCAA0C;EvEixPlD;EuE/wPM;;IAEE,+BAAsC;EvEixP9C;EuEhyPM;IAAgC,yBAA4B;EvEmyPlE;EuElyPM;;IAEE,6BAAoC;EvEoyP5C;EuElyPM;;IAEE,+BAAwC;EvEoyPhD;EuElyPM;;IAEE,gCAA0C;EvEoyPlD;EuElyPM;;IAEE,8BAAsC;EvEoyP9C;EuEnzPM;IAAgC,uBAA4B;EvEszPlE;EuErzPM;;IAEE,2BAAoC;EvEuzP5C;EuErzPM;;IAEE,6BAAwC;EvEuzPhD;EuErzPM;;IAEE,8BAA0C;EvEuzPlD;EuErzPM;;IAEE,4BAAsC;EvEuzP9C;EuEt0PM;IAAgC,yBAA4B;EvEy0PlE;EuEx0PM;;IAEE,6BAAoC;EvE00P5C;EuEx0PM;;IAEE,+BAAwC;EvE00PhD;EuEx0PM;;IAEE,gCAA0C;EvE00PlD;EuEx0PM;;IAEE,8BAAsC;EvE00P9C;EuEz1PM;IAAgC,uBAA4B;EvE41PlE;EuE31PM;;IAEE,2BAAoC;EvE61P5C;EuE31PM;;IAEE,6BAAwC;EvE61PhD;EuE31PM;;IAEE,8BAA0C;EvE61PlD;EuE31PM;;IAEE,4BAAsC;EvE61P9C;EuE52PM;IAAgC,qBAA4B;EvE+2PlE;EuE92PM;;IAEE,yBAAoC;EvEg3P5C;EuE92PM;;IAEE,2BAAwC;EvEg3PhD;EuE92PM;;IAEE,4BAA0C;EvEg3PlD;EuE92PM;;IAEE,0BAAsC;EvEg3P9C;EuE/3PM;IAAgC,2BAA4B;EvEk4PlE;EuEj4PM;;IAEE,+BAAoC;EvEm4P5C;EuEj4PM;;IAEE,iCAAwC;EvEm4PhD;EuEj4PM;;IAEE,kCAA0C;EvEm4PlD;EuEj4PM;;IAEE,gCAAsC;EvEm4P9C;EuEl5PM;IAAgC,0BAA4B;EvEq5PlE;EuEp5PM;;IAEE,8BAAoC;EvEs5P5C;EuEp5PM;;IAEE,gCAAwC;EvEs5PhD;EuEp5PM;;IAEE,iCAA0C;EvEs5PlD;EuEp5PM;;IAEE,+BAAsC;EvEs5P9C;EuEr6PM;IAAgC,wBAA4B;EvEw6PlE;EuEv6PM;;IAEE,4BAAoC;EvEy6P5C;EuEv6PM;;IAEE,8BAAwC;EvEy6PhD;EuEv6PM;;IAEE,+BAA0C;EvEy6PlD;EuEv6PM;;IAEE,6BAAsC;EvEy6P9C;EuEx7PM;IAAgC,0BAA4B;EvE27PlE;EuE17PM;;IAEE,8BAAoC;EvE47P5C;EuE17PM;;IAEE,gCAAwC;EvE47PhD;EuE17PM;;IAEE,iCAA0C;EvE47PlD;EuE17PM;;IAEE,+BAAsC;EvE47P9C;EuE38PM;IAAgC,wBAA4B;EvE88PlE;EuE78PM;;IAEE,4BAAoC;EvE+8P5C;EuE78PM;;IAEE,8BAAwC;EvE+8PhD;EuE78PM;;IAEE,+BAA0C;EvE+8PlD;EuE78PM;;IAEE,6BAAsC;EvE+8P9C;EuEv8PM;IAAwB,2BAA2B;EvE08PzD;EuEz8PM;;IAEE,+BAA+B;EvE28PvC;EuEz8PM;;IAEE,iCAAiC;EvE28PzC;EuEz8PM;;IAEE,kCAAkC;EvE28P1C;EuEz8PM;;IAEE,gCAAgC;EvE28PxC;EuE19PM;IAAwB,0BAA2B;EvE69PzD;EuE59PM;;IAEE,8BAA+B;EvE89PvC;EuE59PM;;IAEE,gCAAiC;EvE89PzC;EuE59PM;;IAEE,iCAAkC;EvE89P1C;EuE59PM;;IAEE,+BAAgC;EvE89PxC;EuE7+PM;IAAwB,wBAA2B;EvEg/PzD;EuE/+PM;;IAEE,4BAA+B;EvEi/PvC;EuE/+PM;;IAEE,8BAAiC;EvEi/PzC;EuE/+PM;;IAEE,+BAAkC;EvEi/P1C;EuE/+PM;;IAEE,6BAAgC;EvEi/PxC;EuEhgQM;IAAwB,0BAA2B;EvEmgQzD;EuElgQM;;IAEE,8BAA+B;EvEogQvC;EuElgQM;;IAEE,gCAAiC;EvEogQzC;EuElgQM;;IAEE,iCAAkC;EvEogQ1C;EuElgQM;;IAEE,+BAAgC;EvEogQxC;EuEnhQM;IAAwB,wBAA2B;EvEshQzD;EuErhQM;;IAEE,4BAA+B;EvEuhQvC;EuErhQM;;IAEE,8BAAiC;EvEuhQzC;EuErhQM;;IAEE,+BAAkC;EvEuhQ1C;EuErhQM;;IAEE,6BAAgC;EvEuhQxC;EuEjhQE;IAAmB,uBAAuB;EvEohQ5C;EuEnhQE;;IAEE,2BAA2B;EvEqhQ/B;EuEnhQE;;IAEE,6BAA6B;EvEqhQjC;EuEnhQE;;IAEE,8BAA8B;EvEqhQlC;EuEnhQE;;IAEE,4BAA4B;EvEqhQhC;AACF;;Ac/hQI;EyDlDI;IAAgC,oBAA4B;EvEslQlE;EuErlQM;;IAEE,wBAAoC;EvEulQ5C;EuErlQM;;IAEE,0BAAwC;EvEulQhD;EuErlQM;;IAEE,2BAA0C;EvEulQlD;EuErlQM;;IAEE,yBAAsC;EvEulQ9C;EuEtmQM;IAAgC,0BAA4B;EvEymQlE;EuExmQM;;IAEE,8BAAoC;EvE0mQ5C;EuExmQM;;IAEE,gCAAwC;EvE0mQhD;EuExmQM;;IAEE,iCAA0C;EvE0mQlD;EuExmQM;;IAEE,+BAAsC;EvE0mQ9C;EuEznQM;IAAgC,yBAA4B;EvE4nQlE;EuE3nQM;;IAEE,6BAAoC;EvE6nQ5C;EuE3nQM;;IAEE,+BAAwC;EvE6nQhD;EuE3nQM;;IAEE,gCAA0C;EvE6nQlD;EuE3nQM;;IAEE,8BAAsC;EvE6nQ9C;EuE5oQM;IAAgC,uBAA4B;EvE+oQlE;EuE9oQM;;IAEE,2BAAoC;EvEgpQ5C;EuE9oQM;;IAEE,6BAAwC;EvEgpQhD;EuE9oQM;;IAEE,8BAA0C;EvEgpQlD;EuE9oQM;;IAEE,4BAAsC;EvEgpQ9C;EuE/pQM;IAAgC,yBAA4B;EvEkqQlE;EuEjqQM;;IAEE,6BAAoC;EvEmqQ5C;EuEjqQM;;IAEE,+BAAwC;EvEmqQhD;EuEjqQM;;IAEE,gCAA0C;EvEmqQlD;EuEjqQM;;IAEE,8BAAsC;EvEmqQ9C;EuElrQM;IAAgC,uBAA4B;EvEqrQlE;EuEprQM;;IAEE,2BAAoC;EvEsrQ5C;EuEprQM;;IAEE,6BAAwC;EvEsrQhD;EuEprQM;;IAEE,8BAA0C;EvEsrQlD;EuEprQM;;IAEE,4BAAsC;EvEsrQ9C;EuErsQM;IAAgC,qBAA4B;EvEwsQlE;EuEvsQM;;IAEE,yBAAoC;EvEysQ5C;EuEvsQM;;IAEE,2BAAwC;EvEysQhD;EuEvsQM;;IAEE,4BAA0C;EvEysQlD;EuEvsQM;;IAEE,0BAAsC;EvEysQ9C;EuExtQM;IAAgC,2BAA4B;EvE2tQlE;EuE1tQM;;IAEE,+BAAoC;EvE4tQ5C;EuE1tQM;;IAEE,iCAAwC;EvE4tQhD;EuE1tQM;;IAEE,kCAA0C;EvE4tQlD;EuE1tQM;;IAEE,gCAAsC;EvE4tQ9C;EuE3uQM;IAAgC,0BAA4B;EvE8uQlE;EuE7uQM;;IAEE,8BAAoC;EvE+uQ5C;EuE7uQM;;IAEE,gCAAwC;EvE+uQhD;EuE7uQM;;IAEE,iCAA0C;EvE+uQlD;EuE7uQM;;IAEE,+BAAsC;EvE+uQ9C;EuE9vQM;IAAgC,wBAA4B;EvEiwQlE;EuEhwQM;;IAEE,4BAAoC;EvEkwQ5C;EuEhwQM;;IAEE,8BAAwC;EvEkwQhD;EuEhwQM;;IAEE,+BAA0C;EvEkwQlD;EuEhwQM;;IAEE,6BAAsC;EvEkwQ9C;EuEjxQM;IAAgC,0BAA4B;EvEoxQlE;EuEnxQM;;IAEE,8BAAoC;EvEqxQ5C;EuEnxQM;;IAEE,gCAAwC;EvEqxQhD;EuEnxQM;;IAEE,iCAA0C;EvEqxQlD;EuEnxQM;;IAEE,+BAAsC;EvEqxQ9C;EuEpyQM;IAAgC,wBAA4B;EvEuyQlE;EuEtyQM;;IAEE,4BAAoC;EvEwyQ5C;EuEtyQM;;IAEE,8BAAwC;EvEwyQhD;EuEtyQM;;IAEE,+BAA0C;EvEwyQlD;EuEtyQM;;IAEE,6BAAsC;EvEwyQ9C;EuEhyQM;IAAwB,2BAA2B;EvEmyQzD;EuElyQM;;IAEE,+BAA+B;EvEoyQvC;EuElyQM;;IAEE,iCAAiC;EvEoyQzC;EuElyQM;;IAEE,kCAAkC;EvEoyQ1C;EuElyQM;;IAEE,gCAAgC;EvEoyQxC;EuEnzQM;IAAwB,0BAA2B;EvEszQzD;EuErzQM;;IAEE,8BAA+B;EvEuzQvC;EuErzQM;;IAEE,gCAAiC;EvEuzQzC;EuErzQM;;IAEE,iCAAkC;EvEuzQ1C;EuErzQM;;IAEE,+BAAgC;EvEuzQxC;EuEt0QM;IAAwB,wBAA2B;EvEy0QzD;EuEx0QM;;IAEE,4BAA+B;EvE00QvC;EuEx0QM;;IAEE,8BAAiC;EvE00QzC;EuEx0QM;;IAEE,+BAAkC;EvE00Q1C;EuEx0QM;;IAEE,6BAAgC;EvE00QxC;EuEz1QM;IAAwB,0BAA2B;EvE41QzD;EuE31QM;;IAEE,8BAA+B;EvE61QvC;EuE31QM;;IAEE,gCAAiC;EvE61QzC;EuE31QM;;IAEE,iCAAkC;EvE61Q1C;EuE31QM;;IAEE,+BAAgC;EvE61QxC;EuE52QM;IAAwB,wBAA2B;EvE+2QzD;EuE92QM;;IAEE,4BAA+B;EvEg3QvC;EuE92QM;;IAEE,8BAAiC;EvEg3QzC;EuE92QM;;IAEE,+BAAkC;EvEg3Q1C;EuE92QM;;IAEE,6BAAgC;EvEg3QxC;EuE12QE;IAAmB,uBAAuB;EvE62Q5C;EuE52QE;;IAEE,2BAA2B;EvE82Q/B;EuE52QE;;IAEE,6BAA6B;EvE82QjC;EuE52QE;;IAEE,8BAA8B;EvE82QlC;EuE52QE;;IAEE,4BAA4B;EvE82QhC;AACF;;Acx3QI;EyDlDI;IAAgC,oBAA4B;EvE+6QlE;EuE96QM;;IAEE,wBAAoC;EvEg7Q5C;EuE96QM;;IAEE,0BAAwC;EvEg7QhD;EuE96QM;;IAEE,2BAA0C;EvEg7QlD;EuE96QM;;IAEE,yBAAsC;EvEg7Q9C;EuE/7QM;IAAgC,0BAA4B;EvEk8QlE;EuEj8QM;;IAEE,8BAAoC;EvEm8Q5C;EuEj8QM;;IAEE,gCAAwC;EvEm8QhD;EuEj8QM;;IAEE,iCAA0C;EvEm8QlD;EuEj8QM;;IAEE,+BAAsC;EvEm8Q9C;EuEl9QM;IAAgC,yBAA4B;EvEq9QlE;EuEp9QM;;IAEE,6BAAoC;EvEs9Q5C;EuEp9QM;;IAEE,+BAAwC;EvEs9QhD;EuEp9QM;;IAEE,gCAA0C;EvEs9QlD;EuEp9QM;;IAEE,8BAAsC;EvEs9Q9C;EuEr+QM;IAAgC,uBAA4B;EvEw+QlE;EuEv+QM;;IAEE,2BAAoC;EvEy+Q5C;EuEv+QM;;IAEE,6BAAwC;EvEy+QhD;EuEv+QM;;IAEE,8BAA0C;EvEy+QlD;EuEv+QM;;IAEE,4BAAsC;EvEy+Q9C;EuEx/QM;IAAgC,yBAA4B;EvE2/QlE;EuE1/QM;;IAEE,6BAAoC;EvE4/Q5C;EuE1/QM;;IAEE,+BAAwC;EvE4/QhD;EuE1/QM;;IAEE,gCAA0C;EvE4/QlD;EuE1/QM;;IAEE,8BAAsC;EvE4/Q9C;EuE3gRM;IAAgC,uBAA4B;EvE8gRlE;EuE7gRM;;IAEE,2BAAoC;EvE+gR5C;EuE7gRM;;IAEE,6BAAwC;EvE+gRhD;EuE7gRM;;IAEE,8BAA0C;EvE+gRlD;EuE7gRM;;IAEE,4BAAsC;EvE+gR9C;EuE9hRM;IAAgC,qBAA4B;EvEiiRlE;EuEhiRM;;IAEE,yBAAoC;EvEkiR5C;EuEhiRM;;IAEE,2BAAwC;EvEkiRhD;EuEhiRM;;IAEE,4BAA0C;EvEkiRlD;EuEhiRM;;IAEE,0BAAsC;EvEkiR9C;EuEjjRM;IAAgC,2BAA4B;EvEojRlE;EuEnjRM;;IAEE,+BAAoC;EvEqjR5C;EuEnjRM;;IAEE,iCAAwC;EvEqjRhD;EuEnjRM;;IAEE,kCAA0C;EvEqjRlD;EuEnjRM;;IAEE,gCAAsC;EvEqjR9C;EuEpkRM;IAAgC,0BAA4B;EvEukRlE;EuEtkRM;;IAEE,8BAAoC;EvEwkR5C;EuEtkRM;;IAEE,gCAAwC;EvEwkRhD;EuEtkRM;;IAEE,iCAA0C;EvEwkRlD;EuEtkRM;;IAEE,+BAAsC;EvEwkR9C;EuEvlRM;IAAgC,wBAA4B;EvE0lRlE;EuEzlRM;;IAEE,4BAAoC;EvE2lR5C;EuEzlRM;;IAEE,8BAAwC;EvE2lRhD;EuEzlRM;;IAEE,+BAA0C;EvE2lRlD;EuEzlRM;;IAEE,6BAAsC;EvE2lR9C;EuE1mRM;IAAgC,0BAA4B;EvE6mRlE;EuE5mRM;;IAEE,8BAAoC;EvE8mR5C;EuE5mRM;;IAEE,gCAAwC;EvE8mRhD;EuE5mRM;;IAEE,iCAA0C;EvE8mRlD;EuE5mRM;;IAEE,+BAAsC;EvE8mR9C;EuE7nRM;IAAgC,wBAA4B;EvEgoRlE;EuE/nRM;;IAEE,4BAAoC;EvEioR5C;EuE/nRM;;IAEE,8BAAwC;EvEioRhD;EuE/nRM;;IAEE,+BAA0C;EvEioRlD;EuE/nRM;;IAEE,6BAAsC;EvEioR9C;EuEznRM;IAAwB,2BAA2B;EvE4nRzD;EuE3nRM;;IAEE,+BAA+B;EvE6nRvC;EuE3nRM;;IAEE,iCAAiC;EvE6nRzC;EuE3nRM;;IAEE,kCAAkC;EvE6nR1C;EuE3nRM;;IAEE,gCAAgC;EvE6nRxC;EuE5oRM;IAAwB,0BAA2B;EvE+oRzD;EuE9oRM;;IAEE,8BAA+B;EvEgpRvC;EuE9oRM;;IAEE,gCAAiC;EvEgpRzC;EuE9oRM;;IAEE,iCAAkC;EvEgpR1C;EuE9oRM;;IAEE,+BAAgC;EvEgpRxC;EuE/pRM;IAAwB,wBAA2B;EvEkqRzD;EuEjqRM;;IAEE,4BAA+B;EvEmqRvC;EuEjqRM;;IAEE,8BAAiC;EvEmqRzC;EuEjqRM;;IAEE,+BAAkC;EvEmqR1C;EuEjqRM;;IAEE,6BAAgC;EvEmqRxC;EuElrRM;IAAwB,0BAA2B;EvEqrRzD;EuEprRM;;IAEE,8BAA+B;EvEsrRvC;EuEprRM;;IAEE,gCAAiC;EvEsrRzC;EuEprRM;;IAEE,iCAAkC;EvEsrR1C;EuEprRM;;IAEE,+BAAgC;EvEsrRxC;EuErsRM;IAAwB,wBAA2B;EvEwsRzD;EuEvsRM;;IAEE,4BAA+B;EvEysRvC;EuEvsRM;;IAEE,8BAAiC;EvEysRzC;EuEvsRM;;IAEE,+BAAkC;EvEysR1C;EuEvsRM;;IAEE,6BAAgC;EvEysRxC;EuEnsRE;IAAmB,uBAAuB;EvEssR5C;EuErsRE;;IAEE,2BAA2B;EvEusR/B;EuErsRE;;IAEE,6BAA6B;EvEusRjC;EuErsRE;;IAEE,8BAA8B;EvEusRlC;EuErsRE;;IAEE,4BAA4B;EvEusRhC;AACF;;AcjtRI;EyDlDI;IAAgC,oBAA4B;EvEwwRlE;EuEvwRM;;IAEE,wBAAoC;EvEywR5C;EuEvwRM;;IAEE,0BAAwC;EvEywRhD;EuEvwRM;;IAEE,2BAA0C;EvEywRlD;EuEvwRM;;IAEE,yBAAsC;EvEywR9C;EuExxRM;IAAgC,0BAA4B;EvE2xRlE;EuE1xRM;;IAEE,8BAAoC;EvE4xR5C;EuE1xRM;;IAEE,gCAAwC;EvE4xRhD;EuE1xRM;;IAEE,iCAA0C;EvE4xRlD;EuE1xRM;;IAEE,+BAAsC;EvE4xR9C;EuE3yRM;IAAgC,yBAA4B;EvE8yRlE;EuE7yRM;;IAEE,6BAAoC;EvE+yR5C;EuE7yRM;;IAEE,+BAAwC;EvE+yRhD;EuE7yRM;;IAEE,gCAA0C;EvE+yRlD;EuE7yRM;;IAEE,8BAAsC;EvE+yR9C;EuE9zRM;IAAgC,uBAA4B;EvEi0RlE;EuEh0RM;;IAEE,2BAAoC;EvEk0R5C;EuEh0RM;;IAEE,6BAAwC;EvEk0RhD;EuEh0RM;;IAEE,8BAA0C;EvEk0RlD;EuEh0RM;;IAEE,4BAAsC;EvEk0R9C;EuEj1RM;IAAgC,yBAA4B;EvEo1RlE;EuEn1RM;;IAEE,6BAAoC;EvEq1R5C;EuEn1RM;;IAEE,+BAAwC;EvEq1RhD;EuEn1RM;;IAEE,gCAA0C;EvEq1RlD;EuEn1RM;;IAEE,8BAAsC;EvEq1R9C;EuEp2RM;IAAgC,uBAA4B;EvEu2RlE;EuEt2RM;;IAEE,2BAAoC;EvEw2R5C;EuEt2RM;;IAEE,6BAAwC;EvEw2RhD;EuEt2RM;;IAEE,8BAA0C;EvEw2RlD;EuEt2RM;;IAEE,4BAAsC;EvEw2R9C;EuEv3RM;IAAgC,qBAA4B;EvE03RlE;EuEz3RM;;IAEE,yBAAoC;EvE23R5C;EuEz3RM;;IAEE,2BAAwC;EvE23RhD;EuEz3RM;;IAEE,4BAA0C;EvE23RlD;EuEz3RM;;IAEE,0BAAsC;EvE23R9C;EuE14RM;IAAgC,2BAA4B;EvE64RlE;EuE54RM;;IAEE,+BAAoC;EvE84R5C;EuE54RM;;IAEE,iCAAwC;EvE84RhD;EuE54RM;;IAEE,kCAA0C;EvE84RlD;EuE54RM;;IAEE,gCAAsC;EvE84R9C;EuE75RM;IAAgC,0BAA4B;EvEg6RlE;EuE/5RM;;IAEE,8BAAoC;EvEi6R5C;EuE/5RM;;IAEE,gCAAwC;EvEi6RhD;EuE/5RM;;IAEE,iCAA0C;EvEi6RlD;EuE/5RM;;IAEE,+BAAsC;EvEi6R9C;EuEh7RM;IAAgC,wBAA4B;EvEm7RlE;EuEl7RM;;IAEE,4BAAoC;EvEo7R5C;EuEl7RM;;IAEE,8BAAwC;EvEo7RhD;EuEl7RM;;IAEE,+BAA0C;EvEo7RlD;EuEl7RM;;IAEE,6BAAsC;EvEo7R9C;EuEn8RM;IAAgC,0BAA4B;EvEs8RlE;EuEr8RM;;IAEE,8BAAoC;EvEu8R5C;EuEr8RM;;IAEE,gCAAwC;EvEu8RhD;EuEr8RM;;IAEE,iCAA0C;EvEu8RlD;EuEr8RM;;IAEE,+BAAsC;EvEu8R9C;EuEt9RM;IAAgC,wBAA4B;EvEy9RlE;EuEx9RM;;IAEE,4BAAoC;EvE09R5C;EuEx9RM;;IAEE,8BAAwC;EvE09RhD;EuEx9RM;;IAEE,+BAA0C;EvE09RlD;EuEx9RM;;IAEE,6BAAsC;EvE09R9C;EuEl9RM;IAAwB,2BAA2B;EvEq9RzD;EuEp9RM;;IAEE,+BAA+B;EvEs9RvC;EuEp9RM;;IAEE,iCAAiC;EvEs9RzC;EuEp9RM;;IAEE,kCAAkC;EvEs9R1C;EuEp9RM;;IAEE,gCAAgC;EvEs9RxC;EuEr+RM;IAAwB,0BAA2B;EvEw+RzD;EuEv+RM;;IAEE,8BAA+B;EvEy+RvC;EuEv+RM;;IAEE,gCAAiC;EvEy+RzC;EuEv+RM;;IAEE,iCAAkC;EvEy+R1C;EuEv+RM;;IAEE,+BAAgC;EvEy+RxC;EuEx/RM;IAAwB,wBAA2B;EvE2/RzD;EuE1/RM;;IAEE,4BAA+B;EvE4/RvC;EuE1/RM;;IAEE,8BAAiC;EvE4/RzC;EuE1/RM;;IAEE,+BAAkC;EvE4/R1C;EuE1/RM;;IAEE,6BAAgC;EvE4/RxC;EuE3gSM;IAAwB,0BAA2B;EvE8gSzD;EuE7gSM;;IAEE,8BAA+B;EvE+gSvC;EuE7gSM;;IAEE,gCAAiC;EvE+gSzC;EuE7gSM;;IAEE,iCAAkC;EvE+gS1C;EuE7gSM;;IAEE,+BAAgC;EvE+gSxC;EuE9hSM;IAAwB,wBAA2B;EvEiiSzD;EuEhiSM;;IAEE,4BAA+B;EvEkiSvC;EuEhiSM;;IAEE,8BAAiC;EvEkiSzC;EuEhiSM;;IAEE,+BAAkC;EvEkiS1C;EuEhiSM;;IAEE,6BAAgC;EvEkiSxC;EuE5hSE;IAAmB,uBAAuB;EvE+hS5C;EuE9hSE;;IAEE,2BAA2B;EvEgiS/B;EuE9hSE;;IAEE,6BAA6B;EvEgiSjC;EuE9hSE;;IAEE,8BAA8B;EvEgiSlC;EuE9hSE;;IAEE,4BAA4B;EvEgiShC;AACF;;AwEhmSA;EAAkB,4GAA8C;AxEomShE;;AwEhmSA;EAAiB,8BAA8B;AxEomS/C;;AwEnmSA;EAAiB,8BAA8B;AxEumS/C;;AwEtmSA;EAAiB,8BAA8B;AxE0mS/C;;AwEzmSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AzEsnSrB;;AwEvmSI;EAAwB,2BAA2B;AxE2mSvD;;AwE1mSI;EAAwB,4BAA4B;AxE8mSxD;;AwE7mSI;EAAwB,6BAA6B;AxEinSzD;;Ac5kSI;E0DvCA;IAAwB,2BAA2B;ExEwnSrD;EwEvnSE;IAAwB,4BAA4B;ExE0nStD;EwEznSE;IAAwB,6BAA6B;ExE4nSvD;AACF;;AcxlSI;E0DvCA;IAAwB,2BAA2B;ExEooSrD;EwEnoSE;IAAwB,4BAA4B;ExEsoStD;EwEroSE;IAAwB,6BAA6B;ExEwoSvD;AACF;;AcpmSI;E0DvCA;IAAwB,2BAA2B;ExEgpSrD;EwE/oSE;IAAwB,4BAA4B;ExEkpStD;EwEjpSE;IAAwB,6BAA6B;ExEopSvD;AACF;;AchnSI;E0DvCA;IAAwB,2BAA2B;ExE4pSrD;EwE3pSE;IAAwB,4BAA4B;ExE8pStD;EwE7pSE;IAAwB,6BAA6B;ExEgqSvD;AACF;;AwE3pSA;EAAmB,oCAAoC;AxE+pSvD;;AwE9pSA;EAAmB,oCAAoC;AxEkqSvD;;AwEjqSA;EAAmB,qCAAqC;AxEqqSxD;;AwEjqSA;EAAuB,2BAA0C;AxEqqSjE;;AwEpqSA;EAAuB,+BAA4C;AxEwqSnE;;AwEvqSA;EAAuB,2BAA2C;AxE2qSlE;;AwE1qSA;EAAuB,2BAAyC;AxE8qShE;;AwE7qSA;EAAuB,8BAA2C;AxEirSlE;;AwEhrSA;EAAuB,6BAA6B;AxEorSpD;;AwEhrSA;EAAc,sBAAwB;AxEorStC;;A0E3tSE;EACE,yBAAwB;A1E8tS5B;;AKptSE;EqELM,yBAA0E;A1E6tSlF;;A0EnuSE;EACE,yBAAwB;A1EsuS5B;;AK5tSE;EqELM,yBAA0E;A1EquSlF;;A0E3uSE;EACE,yBAAwB;A1E8uS5B;;AKpuSE;EqELM,yBAA0E;A1E6uSlF;;A0EnvSE;EACE,yBAAwB;A1EsvS5B;;AK5uSE;EqELM,yBAA0E;A1EqvSlF;;A0E3vSE;EACE,yBAAwB;A1E8vS5B;;AKpvSE;EqELM,yBAA0E;A1E6vSlF;;A0EnwSE;EACE,yBAAwB;A1EswS5B;;AK5vSE;EqELM,yBAA0E;A1EqwSlF;;A0E3wSE;EACE,yBAAwB;A1E8wS5B;;AKpwSE;EqELM,yBAA0E;A1E6wSlF;;A0EnxSE;EACE,yBAAwB;A1EsxS5B;;AK5wSE;EqELM,yBAA0E;A1EqxSlF;;AwE9uSA;EAAa,yBAA6B;AxEkvS1C;;AwEjvSA;EAAc,yBAA6B;AxEqvS3C;;AwEnvSA;EAAiB,oCAAkC;AxEuvSnD;;AwEtvSA;EAAiB,0CAAkC;AxE0vSnD;;AwEtvSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A3EizSX;;AwE1vSA;EAAwB,gCAAgC;AxE8vSxD;;AwE5vSA;EACE,iCAAiC;EACjC,oCAAoC;AxE+vStC;;AwE1vSA;EAAc,yBAAyB;AxE8vSvC;;A4E/zSA;EACE,8BAA8B;A5Ek0ShC;;A4E/zSA;EACE,6BAA6B;A5Ek0S/B;;A6El0SE;E3EOF;;;I2EDM,4BAA4B;IAE5B,2BAA2B;E7Ek0S/B;E6E/zSE;IAEI,0BAA0B;E7Eg0ShC;E6EvzSE;IACE,6BAA6B;E7EyzSjC;EE3nSF;I2E/KM,gCAAgC;E7E6ySpC;E6E3ySE;;IAEE,yB1EzCY;I0E0CZ,wBAAwB;E7E6yS5B;E6ErySE;IACE,2BAA2B;E7EuyS/B;E6EpySE;;IAEE,wBAAwB;E7EsyS5B;E6EnySE;;;IAGE,UAAU;IACV,SAAS;E7EqySb;E6ElySE;;IAEE,uBAAuB;E7EoyS3B;E6E5xSE;IACE,Q1E4hCgC;EHkwQpC;EE10SF;I2E+CM,2BAA2C;E7E8xS/C;EYp3SA;IiEyFI,2BAA2C;E7E8xS/C;EiC52SF;I4CmFM,aAAa;E7E4xSjB;EsC33SF;IuCkGM,sB1EtFS;EHk3Sb;EgB/3SF;I6DuGM,oCAAoC;E7E2xSxC;E6E5xSE;;IAKI,iCAAmC;E7E2xSzC;EgB91SF;;I6D0EQ,oCAAsC;E7EwxS5C;EgB7wSF;I6DNM,cAAc;E7EsxSlB;EiB54SA;;;;I4D4HM,qB1EvHU;EH64ShB;EgBxySF;I6DuBM,cAAc;IACd,qB1E7HY;EHi5ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n $string: str-replace($string, $char, $encoded);\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Se,popperConfig:null},Fe="show",Ue="out",We={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,INSERTED:"inserted"+Oe,CLICK:"click"+Oe,FOCUSIN:"focusin"+Oe,FOCUSOUT:"focusout"+Oe,MOUSEENTER:"mouseenter"+Oe,MOUSELEAVE:"mouseleave"+Oe},qe="fade",Me="show",Ke=".tooltip-inner",Qe=".arrow",Be="hover",Ve="focus",Ye="click",ze="manual",Xe=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Me))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(qe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,this._getPopperConfig(a)),g(o).addClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===Ue&&e._leave(null,e)};if(g(this.tip).hasClass(qe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){function e(){n._hoverState!==Fe&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),g(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()}var n=this,i=this.getTipElement(),o=g.Event(this.constructor.Event.HIDE);if(g(this.element).trigger(o),!o.isDefaultPrevented()){if(g(i).removeClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ye]=!1,this._activeTrigger[Ve]=!1,this._activeTrigger[Be]=!1,g(this.tip).hasClass(qe)){var r=_.getTransitionDurationFromElement(i);g(i).one(_.TRANSITION_END,e).emulateTransitionEnd(r)}else e();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Pe+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ke)),this.getTitle()),g(t).removeClass(qe+" "+Me)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=we(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t=t||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},t._getPopperConfig=function(t){var e=this;return l({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Qe},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},{},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,{},e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Re[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==ze){var e=t===Be?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Be?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),this._hideModalHandler=function(){i.element&&i.hide()},g(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==t||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ve:Be]=!0),g(e.getTipElement()).hasClass(Me)||e._hoverState===Fe?e._hoverState=Fe:(clearTimeout(e._timeout),e._hoverState=Fe,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Fe&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ve:Be]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ue,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Ue&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==je.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(Ae,t,this.constructor.DefaultType),t.sanitize&&(t.template=we(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Le);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(qe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ne),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ne,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return Ae}},{key:"DATA_KEY",get:function(){return Ne}},{key:"Event",get:function(){return We}},{key:"EVENT_KEY",get:function(){return Oe}},{key:"DefaultType",get:function(){return He}}]),i}();g.fn[Ae]=Xe._jQueryInterface,g.fn[Ae].Constructor=Xe,g.fn[Ae].noConflict=function(){return g.fn[Ae]=ke,Xe._jQueryInterface};var $e="popover",Ge="bs.popover",Je="."+Ge,Ze=g.fn[$e],tn="bs-popover",en=new RegExp("(^|\\s)"+tn+"\\S+","g"),nn=l({},Xe.Default,{placement:"right",trigger:"click",content:"",template:''}),on=l({},Xe.DefaultType,{content:"(string|element|function)"}),rn="fade",sn="show",an=".popover-header",ln=".popover-body",cn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,INSERTED:"inserted"+Je,CLICK:"click"+Je,FOCUSIN:"focusin"+Je,FOCUSOUT:"focusout"+Je,MOUSEENTER:"mouseenter"+Je,MOUSELEAVE:"mouseleave"+Je},hn=function(t){function i(){return t.apply(this,arguments)||this}!function(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}(i,t);var e=i.prototype;return e.isWithContent=function(){return this.getTitle()||this._getContent()},e.addAttachmentClass=function(t){g(this.getTipElement()).addClass(tn+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},e.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(an),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ln),e),t.removeClass(rn+" "+sn)},e._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},e._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(en);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLES : '[data-toggle=\"buttons\"]',\n DATA_TOGGLE : '[data-toggle=\"button\"]',\n DATA_TOGGLES_BUTTONS : '[data-toggle=\"buttons\"] .btn',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n } else if (input.type === 'checkbox') {\n if (this._element.tagName === 'LABEL' && input.checked === this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n }\n } else {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n triggerChangeEvent = false\n }\n\n if (triggerChangeEvent) {\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(Selector.INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n }\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(Event.LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(Selector.INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(ClassName.ACTIVE)\n } else {\n button.classList.remove(ClassName.ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(ClassName.ACTIVE)\n } else {\n button.classList.remove(ClassName.ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, (e) => e.preventDefault())\n if (this._pointerEvent) {\n $(this._element).on(Event.POINTERDOWN, (event) => start(event))\n $(this._element).on(Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n $(this._element).on(Event.TOUCHSTART, (event) => start(event))\n $(this._element).on(Event.TOUCHMOVE, (event) => move(event))\n $(this._element).on(Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDE_PREVENTED : `hidePrevented${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show',\n STATIC : 'modal-static'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(Event.HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n this._element.classList.add(ClassName.STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(ClassName.STATIC)\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
' +\n '
' +\n '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.4.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both
    and