mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 15:13:28 +00:00
Merge pull request #581 from lightpanda-io/svgelement_dummy2
Some checks failed
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
Some checks failed
e2e-test / zig build release (push) Has been cancelled
e2e-test / puppeteer-perf (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
wpt / web platform tests (push) Has been cancelled
wpt / web platform tests json output (push) Has been cancelled
wpt / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled
nightly build / build-linux-x86_64 (push) Has been cancelled
nightly build / build-linux-aarch64 (push) Has been cancelled
nightly build / build-macos-aarch64 (push) Has been cancelled
nightly build / build-macos-x86_64 (push) Has been cancelled
Svgelement dummy2
This commit is contained in:
@@ -48,6 +48,7 @@ pub const Element = struct {
|
|||||||
|
|
||||||
pub fn toInterface(e: *parser.Element) !Union {
|
pub fn toInterface(e: *parser.Element) !Union {
|
||||||
return try HTMLElem.toInterface(Union, e);
|
return try HTMLElem.toInterface(Union, e);
|
||||||
|
// SVGElement and MathML are not supported yet.
|
||||||
}
|
}
|
||||||
|
|
||||||
// JS funcs
|
// JS funcs
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
const HTMLDocument = @import("document.zig").HTMLDocument;
|
const HTMLDocument = @import("document.zig").HTMLDocument;
|
||||||
const HTMLElem = @import("elements.zig");
|
const HTMLElem = @import("elements.zig");
|
||||||
|
const SVGElem = @import("svg_elements.zig");
|
||||||
const Window = @import("window.zig").Window;
|
const Window = @import("window.zig").Window;
|
||||||
const Navigator = @import("navigator.zig").Navigator;
|
const Navigator = @import("navigator.zig").Navigator;
|
||||||
const History = @import("history.zig").History;
|
const History = @import("history.zig").History;
|
||||||
@@ -28,6 +29,7 @@ pub const Interfaces = .{
|
|||||||
HTMLElem.HTMLElement,
|
HTMLElem.HTMLElement,
|
||||||
HTMLElem.HTMLMediaElement,
|
HTMLElem.HTMLMediaElement,
|
||||||
HTMLElem.Interfaces,
|
HTMLElem.Interfaces,
|
||||||
|
SVGElem.SVGElement,
|
||||||
Window,
|
Window,
|
||||||
Navigator,
|
Navigator,
|
||||||
History,
|
History,
|
||||||
|
|||||||
41
src/browser/html/svg_elements.zig
Normal file
41
src/browser/html/svg_elements.zig
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
// Copyright (C) 2023-2024 Lightpanda (Selecy SAS)
|
||||||
|
//
|
||||||
|
// Francis Bouvier <francis@lightpanda.io>
|
||||||
|
// Pierre Tachoire <pierre@lightpanda.io>
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
const Element = @import("../dom/element.zig").Element;
|
||||||
|
|
||||||
|
// Support for SVGElements is very limited, this is a dummy implementation.
|
||||||
|
// This is here no to be able to support `element instanceof SVGElement;` in JavaScript.
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/API/SVGElement
|
||||||
|
pub const SVGElement = struct {
|
||||||
|
// Currently the prototype chain is not implemented (will not be returned by toInterface())
|
||||||
|
// For that we need parser.SvgElement and the derived types with tags in the v-table.
|
||||||
|
pub const prototype = *Element;
|
||||||
|
// While this is a Node, could consider not exposing the subtype untill we have
|
||||||
|
// a Self type to cast to.
|
||||||
|
pub const subtype = .node;
|
||||||
|
};
|
||||||
|
|
||||||
|
const testing = @import("../../testing.zig");
|
||||||
|
test "Browser.HTML.SVGElement" {
|
||||||
|
var runner = try testing.jsRunner(testing.tracking_allocator, .{});
|
||||||
|
defer runner.deinit();
|
||||||
|
|
||||||
|
try runner.testCases(&.{
|
||||||
|
.{ "'AString' instanceof SVGElement", "false" },
|
||||||
|
}, .{});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user