mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:07:43 +00:00
LibWeb: Stub out a basic IntersectionObserver interface
Note there are a couple of type differences between the spec and the IDL file added in this commit. For example, we will need to support a type of Variant to handle spec types such as "(double or sequence<double>)". But for now, this allows web pages to construct an IntersectionObserver with any valid type.
This commit is contained in:
parent
ff66218631
commit
ebe704a03d
7 changed files with 131 additions and 2 deletions
|
@ -750,7 +750,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto interface = IDL::parse_interface(path, data, import_base_path);
|
||||
|
||||
if (namespace_.is_one_of("Crypto", "CSS", "DOM", "HTML", "UIEvents", "Geometry", "HighResolutionTime", "NavigationTiming", "RequestIdleCallback", "ResizeObserver", "SVG", "Selection", "XHR", "URL")) {
|
||||
if (namespace_.is_one_of("Crypto", "CSS", "DOM", "HTML", "UIEvents", "Geometry", "HighResolutionTime", "IntersectionObserver", "NavigationTiming", "RequestIdleCallback", "ResizeObserver", "SVG", "Selection", "XHR", "URL")) {
|
||||
StringBuilder builder;
|
||||
builder.append(namespace_);
|
||||
builder.append("::");
|
||||
|
@ -1421,6 +1421,8 @@ static void generate_header(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@name@.h>)
|
||||
|
@ -1589,6 +1591,7 @@ void generate_implementation(IDL::Interface const& interface)
|
|||
#include <LibWeb/DOM/Element.h>
|
||||
#include <LibWeb/DOM/EventListener.h>
|
||||
#include <LibWeb/HTML/HTMLElement.h>
|
||||
#include <LibWeb/IntersectionObserver/IntersectionObserver.h>
|
||||
#include <LibWeb/Origin.h>
|
||||
#include <LibWeb/ResizeObserver/ResizeObserver.h>
|
||||
|
||||
|
@ -1597,6 +1600,7 @@ using namespace Web::CSS;
|
|||
using namespace Web::DOM;
|
||||
using namespace Web::Geometry;
|
||||
using namespace Web::HTML;
|
||||
using namespace Web::IntersectionObserver;
|
||||
using namespace Web::RequestIdleCallback;
|
||||
using namespace Web::ResizeObserver;
|
||||
using namespace Web::Selection;
|
||||
|
@ -2493,6 +2497,7 @@ void generate_constructor_implementation(IDL::Interface const& interface)
|
|||
#include <LibWeb/Bindings/EventTargetWrapperFactory.h>
|
||||
#include <LibWeb/Bindings/EventWrapperFactory.h>
|
||||
#include <LibWeb/Bindings/ExceptionOrUtils.h>
|
||||
#include <LibWeb/Bindings/NodeWrapper.h>
|
||||
#include <LibWeb/Bindings/NodeWrapperFactory.h>
|
||||
#include <LibWeb/Bindings/WindowObject.h>
|
||||
#if __has_include(<LibWeb/Crypto/@name@.h>)
|
||||
|
@ -2509,6 +2514,8 @@ void generate_constructor_implementation(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@name@.h>)
|
||||
|
@ -2530,6 +2537,7 @@ using namespace Web::CSS;
|
|||
using namespace Web::DOM;
|
||||
using namespace Web::Geometry;
|
||||
using namespace Web::HTML;
|
||||
using namespace Web::IntersectionObserver;
|
||||
using namespace Web::RequestIdleCallback;
|
||||
using namespace Web::ResizeObserver;
|
||||
using namespace Web::Selection;
|
||||
|
@ -2822,6 +2830,8 @@ void generate_prototype_implementation(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@name@.h>)
|
||||
|
@ -2854,6 +2864,8 @@ void generate_prototype_implementation(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@iterator_name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@iterator_name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@iterator_name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@iterator_name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@iterator_name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@iterator_name@.h>)
|
||||
|
@ -2879,6 +2891,7 @@ using namespace Web::CSS;
|
|||
using namespace Web::DOM;
|
||||
using namespace Web::Geometry;
|
||||
using namespace Web::HTML;
|
||||
using namespace Web::IntersectionObserver;
|
||||
using namespace Web::NavigationTiming;
|
||||
using namespace Web::RequestIdleCallback;
|
||||
using namespace Web::ResizeObserver;
|
||||
|
@ -3298,6 +3311,8 @@ static void generate_iterator_header(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@name@.h>)
|
||||
|
@ -3371,6 +3386,7 @@ using namespace Web::CSS;
|
|||
using namespace Web::DOM;
|
||||
using namespace Web::Geometry;
|
||||
using namespace Web::HTML;
|
||||
using namespace Web::IntersectionObserver;
|
||||
using namespace Web::RequestIdleCallback;
|
||||
using namespace Web::ResizeObserver;
|
||||
using namespace Web::Selection;
|
||||
|
@ -3483,6 +3499,8 @@ void generate_iterator_prototype_implementation(IDL::Interface const& interface)
|
|||
# include <LibWeb/UIEvents/@name@.h>
|
||||
#elif __has_include(<LibWeb/HighResolutionTime/@name@.h>)
|
||||
# include <LibWeb/HighResolutionTime/@name@.h>
|
||||
#elif __has_include(<LibWeb/IntersectionObserver/@name@.h>)
|
||||
# include <LibWeb/IntersectionObserver/@name@.h>
|
||||
#elif __has_include(<LibWeb/NavigationTiming/@name@.h>)
|
||||
# include <LibWeb/NavigationTiming/@name@.h>
|
||||
#elif __has_include(<LibWeb/RequestIdleCallback/@name@.h>)
|
||||
|
@ -3504,6 +3522,7 @@ using namespace Web::CSS;
|
|||
using namespace Web::DOM;
|
||||
using namespace Web::Geometry;
|
||||
using namespace Web::HTML;
|
||||
using namespace Web::IntersectionObserver;
|
||||
using namespace Web::NavigationTiming;
|
||||
using namespace Web::RequestIdleCallback;
|
||||
using namespace Web::ResizeObserver;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue