fix logic
[personal-kdelibs.git] / khtml / SAFARI_MERGE
blob20d05eefd7e6a175ba7d8c224f97cdaf9d4daa7f
2 This is a short document with the progress of patches in the Safari codebase
3 being merged into khtml. 
5 its ordered by directory and by files. Add here the parts that cannot be
6 immediately merged and need further negotiation. 
8 Its recommended to add a //FIXME_SAFARI comment to places which need merging
9 in the khtml sourcecode. 
11 ===========================================================================
12 # css
13 ===========================================================================
15 - the font changes (except for the konq-body property) are still not merged.
16  They are partly not easily portable and I don't understand some parts of them.
17  a small part is merged but still unused (separate font sizes for fixed fonts)
19 - The Apple specific parts with their DPI settings.
21 - most of the html4.css changes are not in. I have already added the
22   @konq-quirks part
24 ===========================================================================
25 # dom
26 ===========================================================================
28 - dom_doc.cpp / .h: preferred Stylesheet stuff. how does this correlate
29   to the changes in css_stylesheet.h / cpp ? <- It's independent (lars).
30   requires merging of the impl in xml/html first
32 - css_stylesheet.cpp / .h addition of preferredStyleSheet et all, but
33   appears to be unused
35 - weird change in dom_doc.cpp: doctype()
37 - dom_string.h: removal of virtual destructor can't be merged, BIC. 
38   doesn't make sense anyway, as one might want to inherit from it. 
39   if it is a speed problem more stuff has to be handled with DOMStringImpl*
41 - html_document.cpp / .h setPolicyBaseURL for cookie handling. euhm?
43 ===========================================================================
44 # ecma
45 ===========================================================================
47 TODO:
48 - ScriptInterpreter domObjectsPerDocument + getDOMDocumentNode
50 To investigate:
51 - kjs_navigator (PluginBase refcount ; ProductSub)
52    hmm, why is e.g. the ref/deref stuff in APPLE_CHANGES?
53 - scope changes  (kjs_events.cpp, DOMNode::pushEventHandlerScope)
54 - Image object: DOM::Document doc -> QGuardedPtr<DOM::DocumentImpl> doc;
55   (why? Or rather: should this also be done in all other domobject-wrappers?)
56 - window.scroll == scrollto or scrollby ?? 
57 - ScheduledAction: ObjectImp -> Object. Sounds good - why did we have an imp? refcount problem?
59 Needs other stuff before it can be applied:
60 - Identifier change (needs kjs2) (includes lengthPropertyName change)
62 ===========================================================================
63 # html
64 ===========================================================================
66 - dtd.cpp: changes regarding ID_TEXT, ID_FORM, A and FONT left out
68 - html_formimpl.cpp/.h: many changes skipped. will need to integrate the
69   "activate first submit" button part. 
71 - html_headimpl.cpp:  changes for FOUC in external style loading
73 - html_image/html_form: name / id lookup cache skipped. want to do that
74   for all elements. 
76 - html_miscimpl.cpp: case insensitive name / id matching
78 - html_parser: reapplying of dropped attributes. reported to be obsolete
80 ===========================================================================
81 # misc
82 ===========================================================================
84 - decoder.cpp/.h: changes in APPLE_CHANGES #ifdef that make decoder
85   being a null wrapper just using unicode directly instead of working
86   on charset specific 8bit data. 
88 - htmltags.in: removal of <-konqblock>, not sure if that should ever
89   be merged. 
91 ===========================================================================
92 # rendering
93 ===========================================================================
95 done so far: 
97 - RenderArena support. Usage of the arena is disabled for now. Needs
98   testing before I'll enable it.
100 - renamed print methods to paint
102 - RenderLayer code is used. Needs to be updated to apples latest version.
104 - Handling of block within inlines via continuations is done.
106 changes that need to be merged:
108 - bidi.h/cpp: lot's of changes to white space handling and others.
109    probably needs the merge of the tokenizer.
111 - font.cpp/h: some apple specific changes. Addition of a genericFamily enum,
112   IMO to speed up style stuff. Should IMO be separated out into a font_mac.cpp
113   and font_x11.cpp
115 - repaint has gotten a bool immediate
117 - render_applet.cpp: small #ifdef APPLE changes
119 - render_box.cpp:
120         paintBackground has some fixes for background position in
121         table cells and repeat handling. Need to examine in detail
123         calcWidth has some code for min and max width constraints
124         calcHeight has a hack for "height: 100%". Not sure I understand it.
125         
126 - render_container:
127         some hack to avoid an infinite recursion on one of the evil tests.
128         Since I fixed anonymous table insertion, I doubt it is still needed. Needs testing.
130 ....
133 ===========================================================================
134 # xml
135 ===========================================================================
137 - dom2_eventsimpl.cpp: computeLayerPos, requires mering of rendering/
139 - dom2_rangeimpl.cpp: createContextualFragment.. merging needed
141 - dom_docimpl.cpp: 
142     renderArena support.. merging needed. 
143     lowercase attribute names.. requires confirmation
144     preferred style sheet / delay recalcing style selector till
145     all external stylesheets are loaded. 
147 - dom_nodeimpl.cpp: rendererNeedsClose. I don't fully understand this
148   seems to be only required for the avoid-unstyled-elements-flicker
149   restoreState -> QStringList change. will merge. 
150   setLayouted(false) calls in attach(). this should imho be handled
151   in the rendering tree. needs feedback. 
153 - dom_nodeimpl.cpp / .h: setMalformed() hack. 
154   isInline() fixes. 
155   previous/nextrenderer addition
157 - dom_stringimpl.cpp: toLengthArray alternative implementation not merged
159 - dom_textimpl.cpp: setNodeValue: whitespace nuking needs merged!!
161 - xml_tokenizer.cpp/.h: completely skipped. unfinished work.