esrille / escudo Goto Github PK
View Code? Open in Web Editor NEWThe Escudo Web Browser
License: Apache License 2.0
The Escudo Web Browser
License: Apache License 2.0
Note event handler content attributes are handled at #4.
cf. b860795
cf. https://developers.google.com/v8/embed#contexts
It turns out supporting XBL binding documents is very hard in the current activation model with the V8 API.
It must be redesigned to support multiple contexts.
The 11th box has a red square inside of it:
http://test.csswg.org/suites/css3-color/nightly-unstable/html4/t32-opacity-zorder-c.htm
The 'text-align' property of an absolutely positioned box should be applied to its child 'inline-block' elements.
Missing fonts, building Escort in OSX is available but executing is not.
I suggest discoverying fonts by code.
For example,
https://gist.github.com/Constellation/4946675
works and lists available font pathes on OSX.
But since this code touches CoreText framework directly, code becomes a little complicated.
So I also suggest adding backend-specific code directory such as src/font/mac
and enabling Objective-C++ building support to Makefile.am.
Switch out eval() for new handleMutation() method if possible.
Implement HTML features that are used in testharness.js sooner than later.
cf. https://github.com/w3c/testharness.js
Items to be supported:
HTMLElementImp::eval() has been used to perform additional operations for each element inserted into the DOM tree. Most of them can be processed by mutation callbacks and fixed in issue #12.
Note even though the spec says,
"DOM mutation events must not fire for changes caused by the UA parsing the document. This includes the parsing of any content inserted using document.write() and document.writeln() calls." - http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#tree-construction
we still need to fire DOM mutation events from the parser for DEFAULT_PHASE (not for other phases). As we'll switching over to Mutation observers, this might be changed as well.
The remaining elements that still use eval() are the link and object elements.
As for the link element, resources can be obtained later rather than just after the element is parsed:
"User agents may opt to only try to obtain such resources when they are needed, instead of pro-actively fetching all the external resources that are not applied." - http://www.w3.org/TR/html5/document-metadata.html#concept-link-obtain
As for the object element, the conditions to execute steps similar to eval() are listed in the paragraph starting with "Whenever one of the following conditions occur:" in,
http://www.w3.org/TR/html5/embedded-content-0.html#the-object-element
cf. http://dev.w3.org/csswg/selectors4/#attribute-case
Note attribute case-sensitivity flags are used in HTML5.
Currently, in OSX, escort crashes when page load happens.
Crash is caused at BoxGL.cpp
void deleteImage(uint8_t* image)
's glDeleteTextures
.
Investigating it, I've found that gs
register based mov
code in glDeleteTextures
returns unexpected value ($0). I remember that gs
is the register related to thread local value.
I think that the crash is caused since glDeleteTextures
is called from the different thread from generating texture thread.
Since 739eaac, a DOMCharacterDataModified event is triggered for each character which is just parsed and inserted to a DOM node. It should be just one event at the end of a sequence of characters within a node.
In practice, what we'd need is a single DOMNodeInserted event for a Text node instead of a DOMNodeInserted event followed by a sequence of DOMCharacterDataModified events.
At this time, we should test css3-color [1] in addition to css2.1.
cf. wg/cssom-view/#widl-Document-elementFromPoint-Element-float-x-float-y
Acid2 fails since 04cd719.
The following style seems to be not applied:
<link rel="appendix stylesheet" href="data:text/css,.picture%20%7B%20background%3A%20none%3B%20%7D"> <!-- this stylesheet should be applied by default -->
Let's move non-CSS presentational hints to a stylesheet as much as possible. Currently presentational hints are processed by the code. It would be nice if those are processed via an ordinary CSS stylesheet.
cf. http://www.w3.org/TR/CSS21/cascade.html#preshint
cf. http://www.w3.org/TR/html5/rendering.html#the-css-user-agent-style-sheet-and-presentational-hints
cf. http://dbaron.org/css/test/noncss2
The 'display' property of the tr element doesn't seem to be processed properly.
cf. 7ca3bb4
cf. http://www.w3.org/TR/css3-color/
s.3.2.a should read:
Since an element with opacity less than 1 is composited from a single offscreen image, content outside of it cannot be layered in z-order between pieces of content inside of it. For the same reason, implementations must create a new stacking context for any element with opacity less than 1. If an element with opacity less than 1 is not positioned, then it is painted on the same layer, within its parent stacking context, as positioned elements with stack level 0. If an element with opacity less than 1 is positioned, the ‘z-index’ property applies as described in [CSS21], except that if the used value is ‘auto’ then the element behaves exactly as if it were ‘0’.
cf. http://www.w3.org/Style/2011/REC-css3-color-20110607-errata.html
cf. CSS3 Color Conformance Test Suite
http://test.csswg.org/suites/css3-color/
cf. http://www.w3.org/TR/2012/CR-html5-20121217/sections.html#the-body-element
Note HTMLBodyElementImp::setOnload() does this already.
Do the same with HTMLFrameSetElement.
cf. http://www.w3.org/TR/2012/CR-html5-20121217/webappapis.html#event-handler-attributes
Something like this:
events::EventHandlerNonNull HTMLElementImp::getOnclick()
{
events::EventListener listener = getEventHandlerListener(u"click");
return listener.getHandler();
}
void HTMLElementImp::setOnclick(events::EventHandlerNonNull onclick)
{
events::EventListener listener = getEventHandlerListener(u"click");
listener.setHandler(onclick));
}
It has been broken since 87ea0a9.
After deleting an absolutely positioned element, the corresponding, unused stacking context is not removed in testdata/partial-reflow-remove-003.html.
Note when an element is removed, the following functions are called in this order:
cf. 9c44e71
Initial content attributes are set to each element in HTMLParser::insertHtmlElement(), which is the right timing to reflect the them in IDL attributes.
testharness.js dynamically creates/removes a style element to control the layout.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.