This is a short document with the progress of patches in the Safari codebase being merged into khtml. its ordered by directory and by files. Add here the parts that cannot be immediately merged and need further negotiation. Its recommended to add a //FIXME_SAFARI comment to places which need merging in the khtml sourcecode. =========================================================================== # css =========================================================================== - the font changes (except for the konq-body property) are still not merged. They are partly not easily portable and I don't understand some parts of them. a small part is merged but still unused (separate font sizes for fixed fonts) - The Apple specific parts with their DPI settings. - most of the html4.css changes are not in. I have already added the @konq-quirks part =========================================================================== # dom =========================================================================== - dom_doc.cpp / .h: preferred Stylesheet stuff. how does this correlate to the changes in css_stylesheet.h / cpp ? <- It's independent (lars). requires merging of the impl in xml/html first - css_stylesheet.cpp / .h addition of preferredStyleSheet et all, but appears to be unused - weird change in dom_doc.cpp: doctype() - dom_string.h: removal of virtual destructor can't be merged, BIC. doesn't make sense anyway, as one might want to inherit from it. if it is a speed problem more stuff has to be handled with DOMStringImpl* - html_document.cpp / .h setPolicyBaseURL for cookie handling. euhm? =========================================================================== # ecma =========================================================================== TODO: - ScriptInterpreter domObjectsPerDocument + getDOMDocumentNode To investigate: - kjs_navigator (PluginBase refcount ; ProductSub) hmm, why is e.g. the ref/deref stuff in APPLE_CHANGES? - scope changes (kjs_events.cpp, DOMNode::pushEventHandlerScope) - Image object: DOM::Document doc -> QGuardedPtr doc; (why? Or rather: should this also be done in all other domobject-wrappers?) - window.scroll == scrollto or scrollby ?? - ScheduledAction: ObjectImp -> Object. Sounds good - why did we have an imp? refcount problem? Needs other stuff before it can be applied: - Identifier change (needs kjs2) (includes lengthPropertyName change) =========================================================================== # html =========================================================================== - dtd.cpp: changes regareding ID_TEXT, ID_FORM, A and FONT left out - html_formimpl.cpp/.h: many changes skipped. will need to integrate the "activate first submit" button part. - html_headimpl.cpp: changes for FOUC in external style loading - html_image/html_form: name / id lookup cache skipped. want to do that for all elements. - html_miscimpl.cpp: case insensitive name / id matching - html_parser: reapplying of dropped attributes. reported to be obsolete =========================================================================== # misc =========================================================================== - decoder.cpp/.h: changes in APPLE_CHANGES #ifdef that make decoder being a null wrapper just using tqunicode directly instead of working on charset specific 8bit data. - htmltags.in: removal of <-konqblock>, not sure if that should ever be merged. =========================================================================== # rendering =========================================================================== done so far: - RenderArena support. Usage of the arena is disabled for now. Needs testing before I'll enable it. - renamed print methods to paint - RendeLayer code is used. Needs to be updated to apples latest version. - Handling of block within inlines via continuations is done. changes that need to be merged: - bidi.h/cpp: lot's of changes to white space handling and others. probably needs the merge of the tokenizer. - font.cpp/h: some apple specific changes. Addition of a genericFamily enum, IMO to speed up style stuff. Should IMO be separated out into a font_mac.cpp and font_x11.cpp - tqrepaint has gotten a bool immediate - render_applet.cpp: small #ifdef APPLE changes - render_box.cpp: paintBackground has some fixes for background position in table cells and repeat handling. Need to examine in detail calcWidth has some code for min and max width constraints calcHeight has a hack for "height: 100%". Not sure I understand it. - render_container: some hack to avoid an infinite recursion on one of the evil tests. Since I fixed anonymous table insertion, I doubt it is still needed. Needs testing. .... =========================================================================== # xml =========================================================================== - dom2_eventsimpl.cpp: computeLayerPos, requires mering of rendering/ - dom2_rangeimpl.cpp: crateContextualFragmet.. merging needed - dom_docimpl.cpp: renderArena support.. merging needed. lowercase attribute names.. requires confirmation preferred style sheet / delay recalcing style selector till all external stylesheets are loaded. - dom_nodeimpl.cpp: rendererNeedsClose. I don't fully understand this seems to be only required for the avoid-unstyled-elements-flicker restoreState -> QStringList change. will merge. setLayouted(false) calls in attach(). this should imho be handled in the rendering tree. needs feedback. - dom_nodeimpl.cpp / .h: setMalformed() hack. isInline() fixes. previous/nextrenderer addition - dom_stringimpl.cpp: toLengthArray alternative implementation not merged - dom_textimpl.cpp: setNodeValue: whitespace nuking needs merged!! - xml_tokenizer.cpp/.h: completely skipped. unfinished work.