Reviewed by Darin Adler.
[WebKit-https.git] / WebCore / ChangeLog
1 2008-02-15  Sam Weinig  <sam@webkit.org>
2
3         Reviewed by Darin Adler.
4
5         Remove more uses of DeprecatedString in preparation of getting rid of it.
6
7         * bridge/mac/WebCoreScriptDebugger.mm:
8         * css/CSSCursorImageValue.cpp:
9         (WebCore::isSVGCursorIdentifier):
10         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
11         * css/CSSStyleSelector.h:
12         * dom/Element.cpp:
13         (WebCore::Element::dump):
14         (WebCore::Element::formatForDebugger):
15         * dom/Position.cpp:
16         (WebCore::Position::debugPosition):
17         (WebCore::Position::formatForDebugger):
18         * dom/Range.cpp:
19         (WebCore::Range::formatForDebugger):
20         * dom/Text.cpp:
21         (WebCore::Text::formatForDebugger):
22         * editing/Selection.cpp:
23         (WebCore::Selection::debugPosition):
24         (WebCore::Selection::formatForDebugger):
25         * editing/SelectionController.cpp:
26         (WebCore::SelectionController::debugRenderer):
27         * editing/VisiblePosition.cpp:
28         (WebCore::VisiblePosition::debugPosition):
29         * html/HTMLTokenizer.cpp:
30         (WebCore::HTMLTokenizer::scriptHandler):
31         (WebCore::HTMLTokenizer::parseTag):
32         (WebCore::HTMLTokenizer::processToken):
33         (WebCore::HTMLTokenizer::notifyFinished):
34         * svg/SVGFontFaceElement.cpp:
35         (WebCore::mapAttributeToCSSProperty):
36
37 2008-02-15  Adam Roben  <aroben@apple.com>
38
39         * bindings/scripts/CodeGenerator.pm: Touch this to force bindings to
40         regenerate.
41
42 2008-02-15  Adam Roben  <aroben@apple.com>
43
44         Try to fix Qt/GTK+ builds
45
46         * WebCore.pro: Remove MessageEvent.{idl,cpp} from the unconditional
47         parts of this file.
48
49 2008-02-15  Darin Adler  <darin@apple.com>
50
51         - another Qt build fix
52
53         * platform/qt/KURLQt.cpp:
54         (WebCore::KURL::operator QUrl): Use the characters directly, not ascii().
55         Eliminate references to urlString.
56
57 2008-02-15  Darin Adler  <darin@apple.com>
58
59         - another Qt build fix
60
61         * platform/qt/ClipboardQt.cpp:
62         (WebCore::ClipboardQt::declareAndWriteDragImage): Use KURL instead of String.
63
64 2008-02-14  Darin Adler  <darin@apple.com>
65
66         - another round of build fixes
67
68         * platform/KURL.cpp:
69         (WebCore::appendEncodedHostname): Fix spelling (strLen, not strlen).
70         * platform/network/curl/ResourceHandleManager.cpp:
71         (WebCore::parseDataUrl): Fix a ".." typo and call data instead of characters.
72
73 2008-02-14  Darin Adler  <darin@apple.com>
74
75         - added back accidentally-removed files
76
77         * platform/DeprecatedStringList.cpp: Copied from platform/DeprecatedStringList.cpp.
78         * platform/DeprecatedStringList.h: Copied from platform/DeprecatedStringList.h.
79         * platform/mac/DeprecatedStringListMac.mm: Copied from platform/mac/DeprecatedStringListMac.mm.
80
81 2008-02-14  Darin Adler  <darin@apple.com>
82
83         - more build fixes
84
85         * platform/KURL.cpp:
86         (WebCore::appendEncodedHostname): Use String to make a QString.
87         * platform/network/cf/ResourceRequest.h:
88         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
89         * platform/network/curl/ResourceHandleManager.cpp:
90         (WebCore::parseDataUrl): Updated to String rather than DeprecatedString functions.
91
92 2008-02-14  Darin Adler  <darin@apple.com>
93
94         - next Qt build fix
95
96         * platform/network/qt/ResourceRequest.h:
97         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
98
99 2008-02-14  Darin Adler  <darin@apple.com>
100
101         - another build fix
102
103         * platform/network/curl/ResourceRequest.h:
104         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
105
106 2008-02-14  Darin Adler  <darin@apple.com>
107
108         - first Qt build fix
109
110         * dom/XMLTokenizer.cpp:
111         (WebCore::XMLTokenizer::endElementNs): Added a missing string() call.
112
113 2008-02-14  Darin Adler  <darin@apple.com>
114
115         Reviewed by Eric Seidel.
116
117         Based on work by Marvin Decker <marv.decker@gmail.com>
118
119         - fix http://bugs.webkit.org/show_bug.cgi?id=16538
120           KURL should use String instead of DeprecatedString
121
122         - fix http://bugs.webkit.org/show_bug.cgi?id=16485
123           DocLoader::checkForReload will crash if the URL isNull
124           and a similar problem in IconDatabase
125
126         - fix http://bugs.webkit.org/show_bug.cgi?id=16487
127           KURL doesn't preserve isNull when constructed with a DeprecatedString
128
129         - changed completeURL and various DOM getters to return KURL, to avoid
130           conversion back and forth from KURL to String
131
132         - changed the conversion of KURL to NSURL or NSString to be automatic,
133           to ease the use of KURL in Objective C DOM bindings, and eliminated
134           the getNSURL function
135
136         - because I had to visit the DOM bindings anyway, eliminated almost all
137           the use of the KJS namespace for things in WebCore
138
139         - fixed HTMLOptionElement constructor to check for undefined rather
140           than size of the arguments array
141
142         - eliminated some other unnecessary uses of DeprecatedString
143
144         - changed String::split to take a Vector parameter instead of returning
145           a Vector, for better performance
146
147         - added a couple of missing calls to do layout in SVG image handling;
148           I was able to reproduce these only because I had broken URLs for a
149           while -- not sure how to reproduce them now but the changes are
150           clearly needed
151
152         Performance testing shows this to be at least a 1% speedup.
153
154         Added a new function protocolIs to efficiently compare protocols
155         without case errors and a blankURL function so we don't have to
156         code "about:blank" in multiple places in the code and don't have to
157         construct a frash KURL each time. Moved decode_string and encode_string
158         out of KURL and gave them clearer names.
159
160         Made KURL constructors explicit to highlight potentially-expensive
161         operations and the poor semantics of KURL's constructor that takes
162         a String.
163
164         * WebCore.base.exp: Updated.
165
166         * bindings/js/JSAttrCustom.cpp:
167         (WebCore::JSAttr::setValue): Use protocolIs.
168         * bindings/js/JSAudioConstructor.h: KJS namespace change.
169         * bindings/js/JSCSSRuleCustom.cpp:
170         (WebCore::toJS): Ditto.
171         * bindings/js/JSCSSValueCustom.cpp:
172         (WebCore::toJS): Ditto.
173         * bindings/js/JSDocumentCustom.cpp:
174         (WebCore::JSDocument::location): Ditto.
175         (WebCore::JSDocument::setLocation): Updated for KURL change.
176         (WebCore::toJS): KJS namespace change.
177         * bindings/js/JSElementCustom.cpp:
178         (WebCore::allowSettingSrcToJavascriptURL): Use protocolIs.
179         (WebCore::JSElement::setAttribute): KJS namespace change.
180         (WebCore::JSElement::setAttributeNode): Ditto.
181         (WebCore::JSElement::setAttributeNS): Ditto.
182         (WebCore::JSElement::setAttributeNodeNS): Ditto.
183         * bindings/js/JSHTMLFrameElementCustom.cpp:
184         (WebCore::allowSettingJavascriptURL): Use protocolIs.
185         (WebCore::JSHTMLFrameElement::setSrc): KJS namespace change.
186         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
187         * bindings/js/JSHTMLIFrameElementCustom.cpp:
188         (WebCore::JSHTMLIFrameElement::setSrc): Use protocolIs.
189         * bindings/js/JSHTMLOptionElementConstructor.cpp:
190         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
191         (WebCore::JSHTMLOptionElementConstructor::construct): Cleaned up the
192         structure a bit and changed checking to check for undefined rather than
193         number of arguments.
194         * bindings/js/JSHTMLOptionElementConstructor.h: KJS namespace change.
195         * bindings/js/JSLocation.cpp:
196         (WebCore::JSLocation::put): Eliminated some DeprecatedString use,
197         and use protocolIs.
198         (WebCore::jsLocationProtoFuncReplace): Ditto.
199         (WebCore::jsLocationProtoFuncReload): Ditto.
200         (WebCore::jsLocationProtoFuncAssign): Ditto.
201         * bindings/js/JSLocation.h: KJS namespace change.
202         * bindings/js/JSNamedNodeMapCustom.cpp:
203         (WebCore::JSNamedNodeMap::canGetItemsForName): Ditto.
204         (WebCore::JSNamedNodeMap::nameGetter): Ditto.
205         * bindings/js/JSNamedNodesCollection.cpp:
206         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Ditto.
207         * bindings/js/JSNamedNodesCollection.h: Ditto.
208         * bindings/js/JSXMLHttpRequest.cpp:
209         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Removed
210         DeprecatedString use.
211         (WebCore::jsXMLHttpRequestPrototypeFunctionSend): Ditto.
212         * bindings/js/JSXMLHttpRequest.h: Moved this class into the WebCore
213         namespace.
214         * bindings/js/JSXSLTProcessor.cpp: Namespace change.
215         * bindings/js/JSXSLTProcessor.h: Ditto.
216
217         * bindings/js/kjs_binding.cpp: Updated for namespace change.
218         (WebCore::jsStringOrNull): Added an overload for KURL to allow DOM
219         classes to return KURL even if the DOM expects a string.
220         (WebCore::jsStringOrUndefined): Ditto.
221         (WebCore::jsStringOrFalse): Ditto.
222         * bindings/js/kjs_binding.h: Moved everything into the WebCore
223         namespace.
224
225         * bindings/js/kjs_css.h: Namespace change.
226         * bindings/js/kjs_events.cpp: Removed an include.
227         * bindings/js/kjs_events.h: Namespace change.
228         * bindings/js/kjs_html.h: Namespace change.
229
230         * bindings/js/kjs_navigator.cpp: Moved everything into the
231         WebCore namespace.
232         * bindings/js/kjs_navigator.h: Ditto.
233
234         * bindings/js/kjs_window.cpp:
235         (KJS::parseModalDialogFeatures): Updated for String::split change.
236         (KJS::createWindow): Use protocolIs and removed some DeprecatedString.
237         (KJS::Window::put): Ditto.
238         (KJS::Window::allowsAccessFrom): Ditto.
239         (KJS::windowProtoFuncOpen): Ditto.
240
241         * bindings/objc/DOM.mm:
242         (-[DOMElement _getURLAttribute:]): Removed getNSURL call.
243         * bindings/objc/DOMHTML.mm:
244         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
245
246         * bindings/scripts/CodeGeneratorCOM.pm: Updated includes so conversions from
247         KURL will work.
248         * bindings/scripts/CodeGeneratorJS.pm: Updated for namespace changes, and also
249         updated includes so conversions from KURL will work.
250         * bindings/scripts/CodeGeneratorObjC.pm: Updated includes so conversions from
251         KURL will work.
252
253         * bridge/mac/WebCoreAXObject.mm:
254         (-[WebCoreAXObject accessibilityAttributeValue:]): Removed getNSURL call.
255         Also streamlined the logic.
256         (AXAttributedStringAppendText): Ditto.
257
258         * bridge/mac/WebCoreScriptDebugger.mm:
259         (toNSString): Tweaked.
260         (toNSURL): Removed getNSURL call.
261
262         * css/CSSImageValue.cpp:
263         (WebCore::CSSImageValue::image): Removed DeprecatedString use.
264         * css/CSSImportRule.cpp:
265         (WebCore::CSSImportRule::insertedIntoParent): Ditto.
266         * css/CSSParser.cpp:
267         (WebCore::CSSParser::parseValue): Ditto.
268         (WebCore::CSSParser::parseContent): Ditto.
269         (WebCore::CSSParser::parseBackgroundImage): Ditto.
270         (WebCore::CSSParser::parseFontFaceSrc): Ditto.
271         (WebCore::CSSParser::parseBorderImage): Ditto.
272         * css/CSSStyleSelector.cpp:
273         (WebCore::CSSStyleSelector::setEncodedURL): Ditto.
274         (WebCore::checkPseudoState): Ditto.
275         * css/CSSStyleSelector.h: Ditto.
276
277         * css/MediaList.cpp:
278         (WebCore::MediaList::setMediaText): Updated for String::split change.
279
280         * css/StyleBase.cpp:
281         (WebCore::StyleBase::baseURL): Return KURL.
282         * css/StyleBase.h: DItto.
283
284         * dom/Document.cpp:
285         (WebCore::Document::~Document): Updated for namespace change.
286         (WebCore::Document::documentURI): Return KURL.
287         (WebCore::Document::setDocumentURI): Removed DeprecatedString use.
288         (WebCore::Document::baseURI): Return KURL.
289         (WebCore::Document::open): Updated to use blankURL.
290         (WebCore::Document::setURL): Take KURL.
291         (WebCore::Document::shouldBeAllowedToLoadLocalResources): Updated for
292         change to use KURL
293         (WebCore::Document::setBaseURL): Take KURL.
294         (WebCore::Document::elementSheet): Updated for KURL change.
295         (WebCore::Document::mappedElementSheet): Ditto.
296         (WebCore::Document::processHttpEquiv): Ditto.
297         (WebCore::Document::recalcStyleSelector): Removed use of
298         DeprecatedString -- also noticed some dead code here!
299         (WebCore::Document::setCookie): Ditto.
300         (WebCore::Document::completeURL): Return KURL.
301         * dom/Document.h: Use KURL instead of String in a few places.
302
303         * dom/DocumentType.cpp:
304         (WebCore::DocumentType::baseURI): Return KURL.
305         * dom/DocumentType.h: Ditto.
306
307         * dom/Element.cpp:
308         (WebCore::Element::baseURI): Return KURL.
309         * dom/Element.h: Ditto.
310
311         * dom/Node.cpp:
312         (WebCore::Node::setDocument): Namespace change.
313         (WebCore::Node::baseURI): Return KURL.
314         * dom/Node.h: Ditto.
315
316         * dom/ProcessingInstruction.cpp:
317         (WebCore::ProcessingInstruction::checkStyleSheet): Updated for KURL change.
318         * dom/StyleElement.cpp:
319         (WebCore::StyleElement::process): Changed to use Vector<UChar> instead of
320         String for better performance.
321         (WebCore::StyleElement::createSheet): Removed use of DeprecateString.
322         * dom/XMLTokenizer.cpp:
323         (WebCore::XMLTokenizer::endElementNs): Updated for KURL change.
324         (WebCore::XMLTokenizer::end): Ditto.
325         (WebCore::xmlDocPtrForString): Removed use of DeprecateString.
326         * dom/XMLTokenizer.h: Ditto.
327
328         * editing/markup.cpp: Moved appendString to PlatformString.h.
329         (WebCore::appendQuotedURLAttributeValue): Use protocolIs.
330         (WebCore::completeURLs): Removed DeprecatedString use.
331         (WebCore::createFragmentFromMarkup): Use blankURL.
332         (WebCore::fillContainerFromString): Removed DeprecatedString use.
333         (WebCore::createFragmentFromText): Ditto.
334
335         * history/HistoryItem.cpp:
336         (WebCore::HistoryItem::url): Removed DeprecatedString use.
337         (WebCore::HistoryItem::originalURL): Ditto.
338         * history/HistoryItem.h: Removed include.
339
340         * html/HTMLAnchorElement.cpp:
341         (WebCore::HTMLAnchorElement::defaultEventHandler): Removed use of
342         DeprecatedString.
343         (WebCore::HTMLAnchorElement::href): Return KURL.
344         (WebCore::HTMLAnchorElement::hash): Removed DeprecatedString use.
345         (WebCore::HTMLAnchorElement::host): Ditto.
346         (WebCore::HTMLAnchorElement::hostname): Ditto.
347         (WebCore::HTMLAnchorElement::pathname): Ditto.
348         (WebCore::HTMLAnchorElement::port): Ditto.
349         (WebCore::HTMLAnchorElement::protocol): Ditto.
350         (WebCore::HTMLAnchorElement::search): Ditto.
351         (WebCore::HTMLAnchorElement::toString): Ditto.
352         * html/HTMLAnchorElement.h: Ditto.
353         * html/HTMLAppletElement.cpp:
354         (WebCore::HTMLAppletElement::createRenderer): Updated for KURL change.
355         * html/HTMLAreaElement.cpp:
356         (WebCore::HTMLAreaElement::href): Return KURL.
357         * html/HTMLAreaElement.h: Ditto.
358         * html/HTMLBaseElement.cpp:
359         (WebCore::HTMLBaseElement::removedFromDocument): Updated for KURL change.
360         (WebCore::HTMLBaseElement::process): Removed DeprecatedString use.
361         * html/HTMLBodyElement.cpp:
362         (WebCore::HTMLBodyElement::parseMappedAttribute): Updated for KURL change.
363         * html/HTMLEmbedElement.cpp:
364         (WebCore::HTMLEmbedElement::parseMappedAttribute): Removed use of
365         DeprecatedString.
366         * html/HTMLEmbedElement.h: Removed DeprecatedString use.
367         * html/HTMLFormElement.cpp:
368         (WebCore::HTMLFormElement::formWouldHaveSecureSubmission): Use protocolIs.
369         (WebCore::encodeCString): Updated for change to String::split.
370         (WebCore::HTMLFormElement::dataEncoding): Ditto.
371         (WebCore::HTMLFormElement::formData): Removed DeprecatedString use.
372         (WebCore::HTMLFormElement::isMailtoForm): Use protocolIs.
373         (WebCore::HTMLFormElement::submit): Updated for KURL change.
374         (WebCore::HTMLFormElement::reset): Ditto.
375         * html/HTMLFrameElementBase.cpp:
376         (WebCore::HTMLFrameElementBase::isURLAllowed): Updated for KURL change
377         and use equalIgnoringRef instead of doing a setRef to get the same effect.
378         (WebCore::HTMLFrameElementBase::openURL): Use blankURL.
379         (WebCore::HTMLFrameElementBase::location): Return KURL.
380         (WebCore::HTMLFrameElementBase::src): Return KURL.
381         * html/HTMLFrameElementBase.h: Ditto.
382         * html/HTMLImageElement.cpp:
383         (WebCore::HTMLImageElement::parseMappedAttribute): Updated for KURL change.
384         (WebCore::HTMLImageElement::longDesc): Return KURL.
385         (WebCore::HTMLImageElement::lowsrc): Return KURL.
386         (WebCore::HTMLImageElement::src): Return KURL.
387         * html/HTMLImageElement.h: Ditto. Also removed imageMap() function.
388         * html/HTMLInputElement.cpp:
389         (WebCore::HTMLInputElement::src): Return KURL.
390         * html/HTMLInputElement.h: Ditto.
391         * html/HTMLLinkElement.cpp:
392         (WebCore::HTMLLinkElement::parseMappedAttribute): Updated for KURL change.
393         (WebCore::HTMLLinkElement::tokenizeRelAttribute): Updated for String::split change.
394         (WebCore::HTMLLinkElement::href): Return KURL.
395         * html/HTMLLinkElement.h: Ditto.
396         * html/HTMLMediaElement.cpp:
397         (WebCore::HTMLMediaElement::src): Return KURL.
398         (WebCore::HTMLMediaElement::pickMedia): Updated for KURL change.
399         * html/HTMLMediaElement.h: Ditto.
400         * html/HTMLObjectElement.cpp:
401         (WebCore::HTMLObjectElement::isImageType): Use protocolIs.
402         (WebCore::HTMLObjectElement::data): Return KURL.
403         * html/HTMLObjectElement.h: Ditto.
404         * html/HTMLOptGroupElement.cpp:
405         (WebCore::HTMLOptGroupElement::groupLabelText): Removed DeprecatedString use.
406         * html/HTMLParser.cpp:
407         (WebCore::HTMLParser::reportErrorToConsole): Updated for KURL change.
408         * html/HTMLScriptElement.cpp:
409         (WebCore::HTMLScriptElement::insertedIntoDocument): Ditto.
410         (WebCore::HTMLScriptElement::text): Changed to use Vector<UChar> instead of
411         String for better performance.
412         (WebCore::HTMLScriptElement::src): Return KURL.
413         * html/HTMLScriptElement.h: Ditto.
414         * html/HTMLSourceElement.cpp:
415         (WebCore::HTMLSourceElement::src): Return KURL.
416         * html/HTMLSourceElement.h: Ditto.
417         * html/HTMLTableElement.cpp:
418         (WebCore::HTMLTableElement::parseMappedAttribute): Updated for KURL change.
419         * html/HTMLTablePartElement.cpp:
420         (WebCore::HTMLTablePartElement::parseMappedAttribute): Updated for KURL change.
421         * html/HTMLTextAreaElement.cpp:
422         (WebCore::HTMLTextAreaElement::setValue): Removed DeprecatedString use.
423         * html/HTMLTokenizer.cpp:
424         (WebCore::HTMLTokenizer::scriptExecution): Ditto.
425         (WebCore::HTMLTokenizer::notifyFinished): Use protocolIs.
426         * html/HTMLVideoElement.cpp:
427         (WebCore::HTMLVideoElement::poster): Return KURL.
428         * html/HTMLVideoElement.h: Ditto.
429         * html/HTMLViewSourceDocument.cpp:
430         (WebCore::HTMLViewSourceDocument::addText): Updated for String::split change.
431
432         * loader/DocLoader.cpp:
433         (WebCore::DocLoader::checkForReload): Add an explicit check for an empty URL
434         here to avoid problems using its string as a hash table key later.
435         (WebCore::DocLoader::requestResource): Removed DeprecatedString use.
436
437         * loader/FTPDirectoryDocument.cpp:
438         (WebCore::FTPDirectoryTokenizer::createTDForFilename): Updated for KURL change.
439         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine): Removed use of
440         DeprecatedString.
441
442         * loader/FrameLoader.cpp:
443         (WebCore::FrameLoader::requestFrame): Use protocolIs.
444         (WebCore::FrameLoader::loadSubframe): Use blankURL.
445         (WebCore::FrameLoader::submitForm): Use protocolIs and removed use of
446         DeprecatedString.
447         (WebCore::FrameLoader::iconURL): Return KURL. Use protcolIs.
448         (WebCore::FrameLoader::didOpenURL): Use protocolIs.
449         (WebCore::FrameLoader::didExplicitOpen): Use blankURL.
450         (WebCore::FrameLoader::executeIfJavaScriptURL): Use protocolIs.
451         Update for name change to decodeURLEscapeSequences.
452         (WebCore::FrameLoader::receivedFirstData): Updated for KURL changes.
453         (WebCore::FrameLoader::begin): Removed DeprecatedString use.
454         Renamed baseurl to baseURL. Updated to use KURL more.
455         (WebCore::FrameLoader::gotoAnchor): Removed use of encodedHtmlRef
456         function, which is no different from ref.
457         (WebCore::FrameLoader::completeURL): Updated for KURL change.
458         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
459         (WebCore::FrameLoader::canCachePage): Use protocolIs.
460         (WebCore::FrameLoader::updatePolicyBaseURL): Update for KURL change.
461         (WebCore::FrameLoader::setPolicyBaseURL): Take KURL.
462         (WebCore::FrameLoader::startRedirectionTimer): Removed use of
463         DeprecatedString.
464         (WebCore::FrameLoader::load): Use protocolIs.
465         (WebCore::FrameLoader::shouldHideReferrer): Use protocolIs.
466         (WebCore::FrameLoader::shouldAllowNavigation): Updated for KURL change.
467         (WebCore::FrameLoader::commitProvisionalLoad): Use blankURL.
468         (WebCore::FrameLoader::open): Use protcolIs.
469         (WebCore::FrameLoader::createHistoryItem): Use blankURL.
470         (WebCore::FrameLoader::createJavaAppletWidget): Updated for KURL change.
471         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Removed
472         DeprecatedString use.
473         * loader/FrameLoader.h: Ditto.
474
475         * loader/ImageDocument.cpp:
476         (WebCore::ImageDocument::createDocumentStructure): Updated for KURL change.
477         * loader/PluginDocument.cpp:
478         (WebCore::PluginTokenizer::createDocumentStructure): Ditto.
479
480         * loader/icon/IconDatabase.cpp:
481         (WebCore::IconDatabase::iconForPageURL): Added a check for an empty URL
482         before trying to use it as a hash table key.
483
484         * loader/icon/IconLoader.h: Tweaked includes.
485
486         * loader/loader.cpp:
487         (WebCore::Loader::servePendingRequests): Use protcolIs. Also removed some
488         code to set up a local variable that is never used (and a DeprecatedString
489         on to boot!).
490
491         * loader/mac/LoaderNSURLExtras.m:
492         (suggestedFilenameWithMIMEType): Removed unnecessary typecast.
493
494         * page/ContextMenuController.cpp: Removed include.
495
496         * page/mac/EventHandlerMac.mm:
497         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
498         Use protocolIs.
499
500         * page/mac/WebCoreFrameBridge.mm:
501         (-[WebCoreFrameBridge URLWithAttributeString:]): Removed getNSURL call.
502         (-[WebCoreFrameBridge baseURL]): Ditto.
503
504         * platform/KURL.cpp:
505         (WebCore::isSchemeFirstChar): Fixed bug in handling of values >= 0x80.
506         (WebCore::isSchemeChar): Ditto.
507         (WebCore::isPathSegmentEndChar): Ditto.
508         (WebCore::hexDigitValue): Changed parameter type to UChar.
509         (WebCore::copyASCII): Added.
510         (WebCore::findFirstOf): Added.
511         (WebCore::KURL::protocolIs): Added.
512         (WebCore::KURL::KURL): Tightened logic up quite a bit. Changed parameter
513         types from DeprecatedString to String.
514         (WebCore::KURL::init): Changed parameter type to String. Preserved the
515         passed-in string even if the base is invalid. Cleaned up logic to determine
516         if the originalString should be pased in to the parse function. Simplified
517         by calling the new parse overload that takes String in many cases.
518         (WebCore::KURL::lastPathComponent): Return String.
519         (WebCore::KURL::protocol): Ditto.
520         (WebCore::KURL::host): Ditto.
521         (WebCore::KURL::port): Changed logic to use early return for clarity.
522         (WebCore::KURL::pass): Return String.
523         (WebCore::KURL::user): Ditto.
524         (WebCore::KURL::ref): Ditto.
525         (WebCore::assertProtocolIsGood): Added.
526         (WebCore::KURL::protocolIs): Added.
527         (WebCore::KURL::query): Return String.
528         (WebCore::KURL::path): Ditto.
529         (WebCore::KURL::setProtocol): Take String.
530         (WebCore::KURL::setHost): Ditto.
531         (WebCore::KURL::setPort): Use String.
532         (WebCore::KURL::setHostAndPort): Take String.
533         (WebCore::KURL::setUser): Ditto.
534         (WebCore::KURL::setPass): Ditto.
535         (WebCore::KURL::setRef): Ditto.
536         (WebCore::KURL::setQuery): Ditto.
537         (WebCore::KURL::setPath): Ditto.
538         (WebCore::KURL::prettyURL): Return String. Use Vector<UChar> to build it.
539         (WebCore::decodeURLEscapeSequences): Renamed from KURL::decode_string.
540         Return String. Use Vector<UChar> to build it.
541         (WebCore::KURL::isLocalFile): Use protocolIs.
542         (WebCore::KURL::parse): Added an overload that takes a String to replace
543         the use of DeprecatedString::ascii at various call sites. Updated for
544         name change (urlString -> m_string).
545         (WebCore::equalIgnoringRef): Wrote a new implementation that doesn't
546         do any allocation.
547         (WebCore::encodeWithURLEscapeSequences): Renamed from KURL::encode_string.
548         Return String.
549         (WebCore::appendEncodedHostname): Added. Replaces encodeHostname and
550         avoids the need to allocate a string.
551         (WebCore::findHostnamesInMailToURL): Update to use findFirstOf instead of
552         regular expressions.
553         (WebCore::findHostnameInHierarchicalURL): Ditto.
554         (WebCore::encodeHostnames): Use protocolIs and the other helpers above.
555         (WebCore::encodeRelativeString): Changed to put result into a CharBuffer.
556         (WebCore::substituteBackslashes): Updated to use String.
557         (WebCore::KURL::copyToBuffer): Added.
558         (WebCore::protocolIs): Added.
559         (WebCore::blankURL): Added.
560         (WebCore::KURL::print): Updated.
561         * platform/KURL.h: Added a number of comments. Reorganized the header a bit.
562         Made the string constructors explicit. Changed to use String instead of
563         DeprecatedString. Removed encodedHTMLRef. Renamed and added a few functions.
564
565         * platform/cf/KURLCFNet.cpp:
566         (WebCore::KURL::KURL): Streamlined the logic a bit.
567         (WebCore::KURL::createCFURL): Changed to use copyToBuffer.
568
569         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
570         (WebCore::MediaPlayerPrivate::createQTMovie): Removed getNSURL call.
571         Use protocolIs.
572         * platform/mac/ClipboardMac.mm:
573         (WebCore::ClipboardMac::declareAndWriteDragImage): Removed getNSURL call.
574         * platform/mac/CookieJar.mm:
575         (WebCore::cookies): Removed getNSURL call.
576         (WebCore::setCookies): Removed getNSURL call.
577         * platform/mac/KURLMac.mm:
578         (WebCore::KURL::KURL): Streamlined the logic a bit.
579         * platform/mac/PasteboardMac.mm:
580         (WebCore::Pasteboard::writeURL): Removed getNSURL call.
581         (WebCore::Pasteboard::writeImage): Ditto.
582         * platform/mac/SSLKeyGeneratorMac.mm:
583         (WebCore::signedPublicKeyAndChallengeString): Ditto.
584
585         * platform/network/HTTPParsers.cpp:
586         (WebCore::filenameFromHTTPContentDisposition): Updated for String::split.
587         * platform/network/ResourceHandle.cpp:
588         (WebCore::ResourceHandle::portAllowed): Use protocolIs.
589
590         * platform/network/cf/ResourceErrorCF.cpp:
591         (WebCore::ResourceError::operator CFErrorRef): Removed deprecatedString call.
592         * platform/network/curl/ResourceHandleManager.cpp:
593         (WebCore::headerCallback): Ditto.
594         (WebCore::parseDataUrl): Use String instead of DeprecatedString.
595         (WebCore::ResourceHandleManager::startJob): Updated for KURL changes.
596         * platform/network/mac/ResourceErrorMac.mm:
597         (WebCore::ResourceError::operator NSError*): Removed getNSURL call.
598         * platform/network/mac/ResourceRequest.h:
599         (WebCore::ResourceRequest::ResourceRequest): Removed DeprecatedString use.
600         * platform/network/mac/ResourceRequestMac.mm:
601         (WebCore::ResourceRequest::doUpdatePlatformRequest): Removed getNSURL call.
602         * platform/network/mac/ResourceResponseMac.mm:
603         (WebCore::ResourceResponse::nsURLResponse): Removed getNSURL call.
604
605         * platform/qt/ClipboardQt.cpp:
606         (WebCore::ClipboardQt::writeURL): Removed deprecatedString call.
607
608         * platform/text/CString.h:
609         (WebCore::CStringBuffer::length): Fixed size_t/unsigned mismatch to make it
610         possible to compile this on Windows with higher warning level
611
612         * platform/text/PlatformString.h: Updated split to modify a result parameter
613         rather than returning a Vector. Added charactersAreAllASCII and an append
614         function that appends a String to a Vector<UChar>.
615         * platform/text/String.cpp:
616         (WebCore::String::split): Updated.
617
618         * platform/win/BString.cpp:
619         (WebCore::BString::BString): Added conversion from KURL.
620         * platform/win/BString.h: Ditto.
621
622         * platform/win/ClipboardUtilitiesWin.cpp:
623         (WebCore::markupToCF_HTML): Removed use of deprecatedString.
624         * platform/win/ClipboardWin.cpp:
625         (WebCore::filesystemPathFromUrlOrTitle): Ditto.
626         (WebCore::createGlobalHDropContent): Ditto.
627         (WebCore::ClipboardWin::setData): Ditto.
628         (WebCore::ClipboardWin::writeRange): Ditto.
629         * platform/win/PasteboardWin.cpp:
630         (WebCore::Pasteboard::writeSelection): Ditto.
631         * plugins/PluginStream.cpp:
632         (WebCore::PluginStream::startStream): Ditto.
633         (WebCore::PluginStream::destroyStream): Ditto.
634         * plugins/win/PluginViewWin.cpp:
635         (WebCore::scriptStringIfJavaScriptURL): Ditto.
636         (WebCore::PluginView::performRequest): Ditto.
637         (WebCore::PluginView::PluginView): Ditto.
638
639         * rendering/HitTestResult.cpp:
640         (WebCore::HitTestResult::absoluteImageURL): Removed DeprecatedString use.
641         (WebCore::HitTestResult::absoluteLinkURL): Ditto.
642
643         * rendering/RenderFrameSet.cpp:
644         (WebCore::RenderFrameSet::layOutAxis): Fixed comment wording.
645         * rendering/RenderImage.cpp:
646         (WebCore::RenderImage::paintReplaced): Removed use of DeperecatedString,
647         (WebCore::RenderImage::imageMap): Changed to call useMap instead of imageMap;
648         both do the same thing, and the first is standard DOM.
649
650         * rendering/RenderObject.cpp:
651         (WebCore::RenderObject::addPDFURLRect): Rewrote and streamlined to remove
652         DeprecatedString use.
653         * rendering/RenderObject.h: Changed addPDFURLRect to take const IntRect&.
654
655         * rendering/RenderPartObject.cpp:
656         (WebCore::isURLAllowed): Updated for KURL change and use equalIgnoringRef
657         instead of doing a setRef to get the same effect.
658         (WebCore::RenderPartObject::updateWidget): Updated for KURL change.
659
660         * rendering/RenderText.cpp:
661         (WebCore::charactersAreAllASCII): Moved the guts to PlatformString.h.
662
663         * rendering/SVGRenderSupport.cpp:
664         (WebCore::renderSubtreeToImage): Added missing call to do layout. I ran
665         into this while doing some layout tests while URL processing was broken.
666
667         * rendering/SVGRenderTreeAsText.h: Removed include.
668
669         * svg/SVGImageLoader.cpp:
670         (WebCore::SVGImageLoader::updateFromElement): Removed DeprecatedString use.
671
672         * svg/graphics/SVGImage.cpp:
673         (WebCore::SVGImage::draw): Added missing call to do layout. I ran
674         into this while doing some layout tests while URL processing was broken.
675         (WebCore::SVGImage::dataChanged): Use a null URL rather than an arbitrary
676         string for the document.
677
678         * xml/XMLHttpRequest.cpp:
679         (WebCore::XMLHttpRequest::getResponseXML): Removed DeprecatedString use.
680         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain): Ditto.
681         (WebCore::XMLHttpRequest::open): Ditto.
682         (WebCore::XMLHttpRequest::send):  Namespace change.
683         (WebCore::XMLHttpRequest::dropProtection): Ditto.
684         * xml/XMLHttpRequest.h: Removed DeprecatedString use.
685
686         * xml/XSLImportRule.cpp:
687         (WebCore::XSLImportRule::loadSheet): Removed DeprecatedString use.
688         * xml/XSLStyleSheet.cpp:
689         (WebCore::XSLStyleSheet::loadChildSheets): Ditto.
690         (WebCore::XSLStyleSheet::loadChildSheet): Ditto.
691         * xml/XSLStyleSheet.h: Ditto.
692         * xml/XSLTProcessor.cpp:
693         (WebCore::docLoaderFunc): Ditto.
694         (WebCore::xsltStylesheetPointer): Ditto.
695         (WebCore::xmlDocPtrFromNode): Ditto.
696
697 2008-02-14  Ada Chan  <adachan@apple.com>
698
699         <rdar://problem/5744728> Fix leaks of RegularExpression objects in Frame.cpp.
700         
701         Reviewed by Jon and Darin.
702
703         * page/Frame.cpp:
704         (WebCore::createRegExpForLabels):
705         (WebCore::Frame::searchForLabelsBeforeElement):
706         (WebCore::Frame::matchLabelsAgainstElement):
707
708 2008-02-14  Stephanie Lewis  <slewis@apple.com>
709
710         Reviewed by Geoff.
711
712         Update order files.
713
714         * WebCore.order:
715
716 2008-02-14  Oliver Hunt  <oliver@apple.com>
717
718         Reviewed by Geoff G and Weinig.
719
720         <rdar://problem/5726608> REGRESSION (r29428): Assigning to window.status does not update status bar
721
722         Revert the portions of r29428 responsible for breaking the ability to
723         set window.status
724
725         * page/DOMWindow.cpp:
726         (WebCore::DOMWindow::setStatus):
727         (WebCore::DOMWindow::defaultStatus):
728         (WebCore::DOMWindow::setDefaultStatus):
729         * page/DOMWindow.h:
730         * page/DOMWindow.idl:
731
732 2008-02-14  Anders Carlsson  <andersca@apple.com>
733
734         Reviewed by Darin.
735
736         <rdar://problem/5721790>
737         Crash in WebCore::DeprecatedString::operator= + 31 at news.google.com
738         
739         Use pointers in the cache map tables. Otherwise when we rehash, 
740         we will end up destroying Cache objects that node lists might point to.
741         
742         * dom/Node.cpp:
743         (WebCore::NodeListsNodeData::~NodeListsNodeData):
744         (WebCore::Node::getElementsByName):
745         (WebCore::Node::getElementsByClassName):
746
747 2008-02-14  Alp Toker  <alp@atoker.com>
748
749         Reviewed by Darin.
750
751         http://bugs.webkit.org/show_bug.cgi?id=17353
752         XMLTokenizer installs global libxml2 callbacks that can break client applications
753
754         Patch by Mark Rowe (with a few changes).
755
756         The xmlRegisterInputCallbacks/xmlRegisterOutputCallbacks done at
757         init are global so we need to make sure these callbacks only get used
758         by XMLTokenizer and never by libxml2 calls in user applications.
759
760         This patch modifies the match and open functions to only apply when we
761         are certain the caller is XMLTokenizer by checking globalDocLoader and
762         ensuring we're on the correct thread.
763
764         Some possible issues remain. See the bug report for details.
765
766         * dom/XMLTokenizer.cpp:
767         (WebCore::matchFunc):
768         (WebCore::openFunc):
769         (WebCore::createStringParser):
770
771 2008-02-14  Timothy Hatcher  <timothy@apple.com>
772
773         Reviewed by Darin Adler.
774
775         <rdar://problem/5743768> A deadlock during storage layout tests
776
777         Make sure not to hold the m_openDatabaseMapGuard mutex when calling
778         Database::markAsDeletedAndClose(), since that can cause a deadlock
779         during the synchronous DatabaseThread call it triggers.
780
781         * storage/DatabaseTracker.cpp:
782         (WebCore::DatabaseTracker::deleteDatabaseFile):
783
784 2008-02-14  Adam Roben  <aroben@apple.com>
785
786         Turn on cross-document messaging support by default
787
788         Reviewed by Darin.
789
790         * Configurations/WebCore.xcconfig:
791         * WebCore.pro:
792         * WebCore.vcproj/WebCore.vcproj:
793
794 2008-02-14  Adam Roben  <aroben@apple.com>
795
796         Conditionalize cross-document messaging support
797
798         The cross-document messaging parts of HTML 5 are in flux and we want
799         ports to be able to turn off the support as needed.
800
801         Note that the support is turned off by default right now. A subsequent
802         commit will turn it on by default.
803
804         Reviewed by Darin.
805
806         * GNUmakefile.am:
807         * WebCore.vcproj/build-generated-files.sh:
808         * bindings/js/JSDOMWindowCustom.cpp:
809         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
810         * bindings/js/JSEventCustom.cpp:
811         (WebCore::toJS):
812         * dom/Event.cpp:
813         (WebCore::Event::isMessageEvent):
814         * dom/Event.h:
815         * dom/MessageEvent.cpp:
816         * dom/MessageEvent.h:
817         * dom/MessageEvent.idl:
818         * page/DOMWindow.cpp:
819         (WebCore::DOMWindow::postMessage):
820         * page/DOMWindow.h:
821         * page/DOMWindow.idl:
822
823 2008-02-14  Adam Roben  <aroben@apple.com>
824
825         Improve the efficiency of SecurityOriginHash
826
827         Reviewed by Alexey.
828
829         * platform/SecurityOriginHash.h:
830         (WebCore::SecurityOriginHash::hash): Now takes a const
831         RefPtr<SecurityOrigin>& to reduce ref-count churn.
832         (WebCore::SecurityOriginHash::equal): Ditto.
833
834 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
835
836         Reviewed by Oliver Hunt.
837
838         Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
839         but fails when run with other tests because FramePrivate's m_selectionGranularity
840         isn't reset when a Frame receives a new document.  It was also uninitialized in
841         the constructor.
842
843         * loader/FrameLoader.cpp:
844         (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
845         * page/Frame.cpp:
846         (WebCore::FramePrivate::FramePrivate): Ditto.
847
848 2008-02-13  Jon Honeycutt  <jhoneycutt@apple.com>
849
850         Reviewed by Anders.
851
852         <rdar://problem/5739282> Hangs after closing video trailer popup with
853         VLC plugin
854
855         VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window
856         handle.
857
858         * plugins/PluginQuirkSet.h: Added new quirk
859         PluginQuirkDontSetNullWindowHandleOnDestroy.
860         (WebCore::):
861         * plugins/win/PluginViewWin.cpp:
862         (WebCore::PluginView::stop): Selectively call NPP_SetWindow.
863         (WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in.
864
865 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
866
867         Reviewed by Alp Toker.
868
869         Fix non-SVG builds.
870
871         * css/CSSCursorImageValue.cpp:
872
873 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
874
875         Reviewed by Adam Roben.
876
877         <rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
878         
879         * editing/Editor.cpp:
880         (WebCore::Editor::deleteWithDirection): Fixed a typo.
881
882 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
883
884         Reviewed by Oliver.
885
886         Actually fix the manual-tests/svg-cursor-changes.svg testcase.
887         I only reran layout tests when fixing the last issues with the patch,
888         instead of trying the manual-test :( Fixed.
889
890         * css/CSSCursorImageValue.cpp:
891         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
892         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
893         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
894         * css/CSSCursorImageValue.h:
895
896 2008-02-13  Adam Roben  <aroben@apple.com>
897
898         Windows build fix
899
900         * css/CSSCursorImageValue.cpp: #include MathExtras.h to get roundf.
901
902 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
903
904         Reviewed by Darin & Eric.
905
906         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17258 (SVG uses erroneous cursor implementation)
907
908         SVG cursors are not well-integrated within the CSS(3) cursor support in WebCore.
909         SVGCursorElement duplicates CSSCursorImageValue functionality and inherits from
910         CachedResourceClient itself, handling remote-image acquisation on its own.
911
912         RenderStyle's CursorData class holds "IntPoint hotSpot", "CachedImage* image"
913         and just for SVG a 'String cursorFragmentId' (a reference to a SVG <cursor> element, by id).
914
915         SVG stores a reference to a SVGCursorElement, which holds a CachedImage pointer itself -
916         instead of storing the CachedImage in the CursorData class, as it's supposed to be.
917         Because of that several places in WebCore contain special SVG cursor handling - which
918         is unneeded.
919
920         Fix all issues by integrating within CSSCursorImageValue, remove 'String cursorFragmentId'
921         from RenderStyle, kill any special SVG cursor handling in WebCore and fix dynamic attribute
922         changes through DOM / SVG DOM (scripting of 'x' / 'y' / 'xlink:href' attribute). Now you
923         can script the mouse cursor location using SVG - the feature anyone has waited for.
924
925         Added manual test case: manual-tests/svg-cursor-changes.svg (no support for cursors in DRT)
926
927         * css/CSSCursorImageValue.cpp:
928         (WebCore::isSVGCursorIdentifier):
929         (WebCore::resourceReferencedByCursorElement):
930         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
931         (WebCore::CSSCursorImageValue::updateIfNeeded):
932         (WebCore::CSSCursorImageValue::image):
933         * css/CSSCursorImageValue.h:
934         * css/CSSImageValue.cpp:
935         (WebCore::CSSImageValue::image):
936         * css/CSSImageValue.h:
937         * css/CSSParser.cpp:
938         (WebCore::CSSParser::parseValue):
939         * css/CSSStyleSelector.cpp:
940         (WebCore::CSSStyleSelector::applyProperty):
941         * manual-tests/svg-cursor-changes.svg: Added.
942         * page/EventHandler.cpp:
943         (WebCore::EventHandler::selectCursor):
944         * rendering/RenderStyle.cpp:
945         * rendering/RenderStyle.h:
946         (WebCore::CursorData::operator==):
947         * svg/SVGCursorElement.cpp:
948         (WebCore::SVGCursorElement::SVGCursorElement):
949         (WebCore::SVGCursorElement::~SVGCursorElement):
950         (WebCore::SVGCursorElement::parseMappedAttribute):
951         (WebCore::SVGCursorElement::addClient):
952         (WebCore::SVGCursorElement::removeClient):
953         (WebCore::SVGCursorElement::svgAttributeChanged):
954         * svg/SVGCursorElement.h:
955         (WebCore::SVGCursorElement::isValid):
956
957 2008-02-13  Alp Toker  <alp@atoker.com>
958
959         Reviewed by Adam Roben.
960
961         Split out pure-cairo Font code to FontCairo.cpp.
962
963         Part of the ongoing work to share code with the Win port.
964
965         * GNUmakefile.am:
966         * WebCore.pro:
967         * platform/graphics/cairo/FontCairo.cpp: Added.
968         (WebCore::Font::drawGlyphs):
969         * platform/graphics/gtk/FontGtk.cpp:
970
971 2008-02-13  Kevin Ollivier <kevino@theolliviers.com>
972
973         Reviewed by Darin Adler.
974
975         Import wx/defs.h to keep windows.h from using ANSI functions
976         (see note in file for more info) and use the 8-bit string friendly
977         version of StringImpl::computeHash since we're passing it un UTF8
978         string. Also, don't cache the hash result.
979         
980         http://bugs.webkit.org/show_bug.cgi?id=17321
981
982         * config.h:
983         * platform/graphics/wx/FontPlatformData.h:
984         (WebCore::FontPlatformData::hash):
985         (WebCore::FontPlatformData::computeHash):
986
987 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
988
989         Fix Bug 17220: Illogical dependency between PluginView and
990         PluginDatabase
991         
992         <http://bugs.webkit.org/show_bug.cgi?id=17220>
993
994         Reviewed by Adam and Darin.
995
996         Rename PluginDatabase::createPluginView to PluginView::create, to make
997         the illogical dependency between the two, logical
998         Make PluginDatabase::findPlugin a public method
999         Update the includes in PluginView and PluginDatabase for the change
1000
1001         * plugins/PluginDatabase.h:
1002         * plugins/PluginView.h:
1003         * plugins/win/PluginDatabaseWin.cpp:
1004         * plugins/win/PluginViewWin.cpp:
1005
1006 2008-02-13  Adam Roben  <aroben@apple.com>
1007
1008         Build fix
1009
1010         * platform/graphics/cg/GraphicsContextCG.cpp: Added missing #include.
1011
1012 2008-02-13  Matt Lilek  <webkit@mattlilek.com>
1013
1014         Not reviewed, build fix.
1015
1016         * platform/graphics/cg/GraphicsContextCG.cpp:
1017         (WebCore::GraphicsContext::paintBuffer):
1018
1019 2008-02-13  Darin Adler  <darin@apple.com>
1020
1021         - try to fix Wx build
1022
1023         * platform/graphics/wx/GraphicsContextWx.cpp:
1024         (WebCore::GraphicsContext::paintBuffer): Added.
1025
1026         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1027         (WebCore::GraphicsContext::paintBuffer): Added missing paintingDisabled() check.
1028         * platform/graphics/cg/GraphicsContextCG.cpp:
1029         (WebCore::GraphicsContext::paintBuffer): Ditto.
1030         * platform/graphics/qt/GraphicsContextQt.cpp:
1031         (WebCore::GraphicsContext::paintBuffer): Ditto.
1032
1033 2008-02-13  Darin Adler  <darin@apple.com>
1034
1035         - try to fix Wx build
1036
1037         * platform/wx/LocalizedStringsWx.cpp: Add missing include.
1038
1039 2008-02-11  Darin Adler  <darin@apple.com>
1040
1041         - roll out fix for <rdar://problem/5726016> REGRESSION: Xcode News window renders
1042           incorrectly due to visibility fix
1043
1044         Removed the Xcode-specific quirk at the request of some folks on the Xcode team.
1045
1046         * WebCore.base.exp: Rolled out change.
1047         * css/CSSMutableStyleDeclaration.cpp:
1048         (WebCore::CSSMutableStyleDeclaration::setProperty): Ditto.
1049         * page/Settings.cpp:
1050         (WebCore::Settings::Settings): Ditto. But keep the initialization of
1051         m_fontRenderingMode.
1052         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Removed.
1053         * page/Settings.h:
1054         (WebCore::Settings::needsXcodeVisibilityQuirk): Removed.
1055
1056 2008-02-13  Alexey Proskuryakov  <ap@webkit.org>
1057
1058         Reviewed by Darin.
1059
1060         <rdar://problem/5740042> Database termination issues
1061
1062         Test: storage/close-during-stress-test.html
1063
1064         * dom/Document.cpp:
1065         (WebCore::Document::databaseThread):
1066         * dom/Document.h:
1067         Don't re-create the database thread if it has been already terminated.
1068
1069         * storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
1070         having a hanging reference.
1071
1072         * storage/DatabaseThread.cpp:
1073         (WebCore::DatabaseThread::requestTermination):
1074
1075         * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
1076         Transactions are deleted during GC, so it's usually not importatnt to know when it happens.
1077
1078 2008-02-12  Bernhard Rosenkraenzer  <bero@arklinux.org>
1079
1080         Reviewed by Darin.
1081
1082         - fix http://bugs.webkit.org/show_bug.cgi?id=17340
1083           WebCore/platform/Timer.cpp fails to build with gcc 4.3
1084
1085         * platform/Timer.cpp: Add include of <limits.h> since this file uses UINT_MAX.
1086
1087 2008-02-12  Timothy Hatcher  <timothy@apple.com>
1088
1089         Reviewed by Brady Eidson.
1090
1091         <rdar://problem/5652560> Can't delete database if the website that
1092         uses it has been opened in this session
1093
1094         Close the Database on the database thread before deleting the file.
1095         Tested and works on Windows and Mac.
1096
1097         * platform/sql/SQLiteDatabase.cpp:
1098         (WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
1099         * storage/Database.cpp:
1100         (WebCore::Database::markAsDeletedAndClose): Unschedule any pending
1101         Database tasks, and start and imediate DatabaseCloseTask.
1102         (WebCore::Database::close): Close the SQLDatabase.
1103         * storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
1104         * storage/DatabaseTask.cpp:
1105         (WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
1106         (WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
1107         (WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
1108         * storage/DatabaseTask.h: Add DatabaseCloseTask.
1109         * storage/DatabaseTracker.cpp:
1110         (WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
1111           markAsDeletedAndClose.
1112
1113 2008-02-12  Oliver Hunt  <oliver@apple.com>
1114
1115         Reviewed by NOBODY (Build fix).
1116
1117         Endeavour to fix qt and gtk builds
1118
1119         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1120         * platform/graphics/qt/GraphicsContextQt.cpp:
1121
1122 2008-02-12  Oliver Hunt  <oliver@apple.com>
1123
1124         Reviewed by Eric S.
1125
1126         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
1127         Remove ifdef's from canvas paint code
1128
1129         By making GraphicsContext aware of the crossplatform ImageBuffer
1130         type we can migrate the ifdef-ified paint code in HTMLCanvasElement
1131         into platform implementations of GraphicsContext.
1132
1133         * html/HTMLCanvasElement.cpp:
1134         (WebCore::HTMLCanvasElement::paint):
1135         * platform/graphics/GraphicsContext.h:
1136         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1137         (WebCore::GraphicsContext::paintBuffer):
1138         * platform/graphics/cg/GraphicsContextCG.cpp:
1139         (WebCore::GraphicsContext::paintBuffer):
1140         * platform/graphics/qt/GraphicsContextQt.cpp:
1141         (WebCore::GraphicsContext::paintBuffer):
1142
1143 2008-02-12  Brady Eidson  <beidson@apple.com>
1144
1145         Reviewed by Darin Adler
1146
1147         Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback
1148
1149         Layout tests will come shortly with a mess of DRT changes
1150
1151         * platform/SecurityOrigin.cpp:
1152         (WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
1153           as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
1154           SecurityOrigin
1155
1156         * storage/Database.cpp:
1157         (WebCore::Database::changeVersion): Pass in the successCallback
1158         (WebCore::Database::transaction): Ditto
1159
1160         * storage/SQLTransaction.cpp:
1161         (WebCore::SQLTransaction::SQLTransaction):
1162         (WebCore::SQLTransaction::debugStepName):
1163         (WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
1164         (WebCore::SQLTransaction::performPendingCallback): Ditto
1165         (WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
1166           skip straight to cleanupAfterSuccessCallback()
1167         (WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
1168           schedule cleanupAfterSuccessCallback()
1169         (WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
1170         (WebCore::SQLTransaction::handleTransactionError):
1171         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
1172         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
1173         * storage/SQLTransaction.h:
1174
1175 2008-02-12  Steve Falkenburg  <sfalken@apple.com>
1176
1177         Changes to support merged MIDL output.
1178         
1179         All COM interfaces are now generated to WebKit.h.
1180         
1181         Reviewed by Sam, Ada.
1182
1183         * bindings/scripts/CodeGeneratorCOM.pm:
1184
1185 2008-02-12  Dan Bernstein  <mitz@apple.com>
1186
1187         Reviewed by Adam Roben.
1188
1189         - fix http://bugs.webkit.org/show_bug.cgi?id=17041
1190           <rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel
1191
1192         Revised the system fallback font lookup logic to use MLang font linking
1193         again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
1194         for CJK characters, try linking based on a single code page at a time,
1195         starting with the user's default code page (if it is one of the CJK
1196         code pages) followed by the other CJK code pages in a prescribed order
1197         that matches what Firefox does.
1198
1199         * platform/graphics/win/FontCacheWin.cpp:
1200         (WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
1201         code pages, with the user's default code page first.
1202         (WebCore::currentFontContainsCharacter): Factored out of
1203         getFontDataForCharacters().
1204         (WebCore::createMLangFont): Ditto.
1205         (WebCore::FontCache::getFontDataForCharacters):
1206
1207 2008-02-12  Rodney Dawes  <dobey@wayofthemonkey.com>
1208
1209         Reviewed by Alp Toker.
1210
1211         Add -DMAEMO_CHANGES when the hildon CONFIG option is specified
1212         Add hildon-1 to PKGCONFIG when hildon CONFIG option is specified
1213
1214         * WebCore.pro:
1215
1216 2008-02-12  Dan Bernstein  <mitz@apple.com>
1217
1218         Reviewed by Timothy Hatcher.
1219
1220         - <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds
1221
1222         * platform/graphics/cg/GraphicsContextCG.cpp:
1223         (WebCore::GraphicsContext::setShadow):
1224
1225 2008-02-12  Brady Eidson  <beidson@apple.com>
1226
1227         Release build fix
1228
1229         * storage/DatabaseTask.cpp:
1230
1231 2008-02-12  Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>
1232
1233         Reviewed by Brady.
1234
1235         http://bugs.webkit.org/show_bug.cgi?id=17177
1236         <rdar://problem/5729619> Storage tasks are getting lost
1237
1238         <rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time
1239
1240         <rdar://problem/5729446> Major thread safety issue in Database code
1241
1242         * platform/MessageQueue.h: Added a thread-safe queue abstraction.
1243
1244         * WebCore.vcproj/WebCore.vcproj:
1245         * WebCore.xcodeproj/project.pbxproj:
1246         Added MessageQueue.h.
1247
1248         * dom/Document.cpp:
1249         (WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.
1250
1251         * storage/Database.idl: Fixed parameter declarations to actually match implementation
1252         (which is custom, so it got out of sync).
1253
1254         * storage/DatabaseTask.h:
1255         (WebCore::DatabaseTask::database):
1256         (WebCore::DatabaseTransactionTask::transaction):
1257         Changed tasks to hold more information internally. Added helpers for better debug logging.
1258
1259         * storage/DatabaseTask.cpp:
1260         (WebCore::DatabaseTask::DatabaseTask):
1261         (WebCore::DatabaseTask::performTask):
1262         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
1263         (WebCore::DatabaseOpenTask::doPerformTask):
1264         (WebCore::DatabaseOpenTask::debugTaskName):
1265         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
1266         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
1267         (WebCore::DatabaseTransactionTask::doPerformTask):
1268         (WebCore::DatabaseTransactionTask::debugTaskName):
1269         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
1270         (WebCore::DatabaseTableNamesTask::doPerformTask):
1271         (WebCore::DatabaseTableNamesTask::debugTaskName):
1272         Implementation for the above.
1273
1274         (WebCore::DatabaseTask::lockForSynchronousScheduling):
1275         (WebCore::DatabaseTask::waitForSynchronousCompletion):
1276         Fixed a potential race condition: if the task completed before we entered a wait, we'd never
1277         wake up. There was an assertion guarding against this, but no actual guarantee that I could see.
1278
1279         * storage/DatabaseThread.cpp:
1280         (WebCore::DatabaseThread::DatabaseThread):
1281         (WebCore::DatabaseThread::requestTermination):
1282         (WebCore::DatabaseThread::databaseThread):
1283         (WebCore::DatabaseThread::scheduleTask):
1284         (WebCore::DatabaseThread::scheduleImmediateTask):
1285         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
1286         * storage/DatabaseThread.h:
1287         Changed to use MessageQueue.
1288
1289         * storage/Database.cpp:
1290         (WebCore::guidMutex):
1291         (WebCore::guidToVersionMap):
1292         (WebCore::guidToDatabaseMap):
1293         (WebCore::Database::openDatabase):
1294         (WebCore::Database::Database):
1295         (WebCore::Database::~Database):
1296         (WebCore::Database::openAndVerifyVersion):
1297         (WebCore::guidForOriginAndName):
1298         (WebCore::Database::changeVersion):
1299         (WebCore::Database::transaction):
1300         (WebCore::Database::scheduleTransaction):
1301         (WebCore::Database::scheduleTransactionStep):
1302         (WebCore::Database::scheduleTransactionCallback):
1303         (WebCore::Database::version):
1304         (WebCore::Database::deliverPendingCallback):
1305         (WebCore::Database::tableNames):
1306         * storage/Database.h:
1307         Changed m_transactionQueue to a MessageQueue.
1308         Got rid of callback tracking - these can take care of themselves.
1309         Got rid of a DatabaseThread member, as the Document can be asked for it.
1310         Moved private static members and helpers out of the header.
1311         Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.
1312
1313         * storage/SQLTransaction.h:
1314         * storage/SQLTransaction.cpp: Added a lot of debug logging.
1315         (WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
1316         as it created a race condition. Everything seems to work better without it, although a real fix
1317         would be to get rid of this variable - it's evil shared data that isn't even protected in any way.
1318
1319         * manual-tests/database-threading-stress-test-2.html: Added.
1320         * manual-tests/database-threading-stress-test.html: Added.
1321
1322 2008-02-12  Adam Roben  <aroben@apple.com>
1323
1324         Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows
1325
1326         <http://bugs.webkit.org/show_bug.cgi?id=17328>
1327         <rdar://5737946>
1328
1329         Reviewed by Mitz.
1330
1331         Test: fast/loader/local-css-allowed-in-strict-mode.html
1332
1333         * platform/network/cf/ResourceResponseCFNet.cpp:
1334         (WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
1335         .css files.
1336
1337 2008-02-12  Anders Carlsson  <andersca@apple.com>
1338
1339         Build fix.
1340         
1341         * loader/ImageDocument.cpp:
1342
1343 2008-02-12  Anders Carlsson  <andersca@apple.com>
1344
1345         Reviewed by Mitz.
1346
1347         Make the code that sets the image title cross platform.
1348
1349         * WebCore.xcodeproj/project.pbxproj:
1350         Remove ImageDocumentMac.
1351         
1352         * loader/ImageDocument.cpp:
1353         (WebCore::ImageTokenizer::finish):
1354
1355         * loader/mac/ImageDocumentMac.h: Removed.
1356         * loader/mac/ImageDocumentMac.mm: Removed.
1357         
1358         * page/mac/WebCoreFrameBridge.h:
1359         * page/mac/WebCoreViewFactory.h:
1360         Move imageTitleForFilename:size from the bridge to
1361         the view factory.
1362         
1363         * platform/LocalizedStrings.h:
1364         Add imageTitle.
1365         
1366         * platform/mac/LocalizedStringsMac.mm:
1367         (WebCore::imageTitle):
1368         Have imageTitle call the view factory.
1369         
1370         * platform/qt/Localizations.cpp:
1371         (WebCore::imageTitle):
1372         * platform/wx/LocalizedStringsWx.cpp:
1373         (WebCore::imageTitle):
1374         * platform/gtk/LocalizedStringsGtk.cpp:
1375         (WebCore::imageTitle):
1376         Add stubs.
1377         
1378 2008-02-12  Oliver Hunt  <oliver@apple.com>
1379
1380         Reviewed by NOBODY (Build fix).
1381
1382         more Qt fixes
1383
1384         * html/HTMLCanvasElement.cpp:
1385         (WebCore::HTMLCanvasElement::paint):
1386
1387 2008-02-12  Oliver Hunt  <oliver@apple.com>
1388
1389         Reviewed by NOBODY (Build fix).
1390
1391         And another attempt to fixerate Qt
1392
1393         * html/HTMLCanvasElement.cpp:
1394         (WebCore::HTMLCanvasElement::paint):
1395
1396 2008-02-12  Oliver Hunt  <oliver@apple.com>
1397
1398         Reviewed by NOBODY (Build fix).
1399
1400         Attempt to fix Qt build
1401
1402         * html/HTMLCanvasElement.h:
1403
1404 2008-02-11  Oliver Hunt  <oliver@apple.com>
1405
1406         Reviewed by Alp Toker.
1407
1408         Make canvas use an ImageBuffer for its backing store
1409
1410         In order to make the canvas implementation less platform dependent
1411         (and thus reduce the current quagmire of ifdefs) we now use an 
1412         ImageBuffer to provide the backing buffer, an immediate consequence
1413         of this is to remove multiple ifdefs in the construction of the
1414         buffer.  This patch allows us to further reduce the platform
1415         dependencies in later patches.
1416
1417
1418         * html/CanvasRenderingContext2D.cpp:
1419         (WebCore::CanvasRenderingContext2D::drawImage):
1420         * html/HTMLCanvasElement.cpp:
1421         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
1422         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
1423         (WebCore::HTMLCanvasElement::reset):
1424         (WebCore::HTMLCanvasElement::paint):
1425         (WebCore::HTMLCanvasElement::createDrawingContext):
1426         (WebCore::HTMLCanvasElement::drawingContext):
1427         (WebCore::HTMLCanvasElement::createPlatformImage):
1428         * html/HTMLCanvasElement.h:
1429
1430 2008-02-11  Dan Bernstein  <mitz@apple.com>
1431
1432         Reviewed by Dave Hyatt.
1433
1434         - fix http://bugs.webkit.org/show_bug.cgi?id=17320
1435           <rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag
1436
1437         Test: fast/css/last-child-style-sharing.html
1438
1439         * css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
1440         CSS3 selectors that require it.
1441
1442 2008-02-11  Sam Weinig  <sam@webkit.org>
1443
1444         Reviewed by Darin Adler.
1445
1446         Make the cross-domain security model more closely match Firefox by always returning the
1447         native built-in functions when accessing functions cross-domain.
1448
1449         Fixes for:
1450         <rdar://problem/5735497> Match Firefox's cross-domain model more accurately by return the built-in version of functions even if they have been overridden
1451         <rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it
1452
1453         Tests: fast/dom/Window/window-custom-prototype-crash.html
1454                fast/dom/Window/window-function-frame-getter-precedence.html
1455                http/tests/security/cross-frame-access-get-override.html
1456                http/tests/security/cross-frame-access-location-get-override.html
1457                http/tests/security/cross-frame-access-location-get.html
1458                http/tests/security/cross-frame-access-location-put.html
1459
1460         * bindings/js/JSDOMWindowCustom.cpp:
1461         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
1462         - Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
1463           not it has been overridden, instead of undefined.
1464         - When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable) 
1465           instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
1466         - Allow access to the native toString function cross-domain.  It always returns "[object Window]".
1467         - Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
1468           the function an overridden function is not inadvertantly returned from the PropertyMap.\
1469
1470         * bindings/js/JSHistoryCustom.cpp:
1471         (WebCore::JSHistory::customGetOwnPropertySlot):
1472         - Implement the same model as described above for the History object, always returning the
1473           native built-in function cross-domain.
1474         - Allow access to the native toString function cross-domain.
1475         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
1476           access.
1477
1478         * bindings/js/JSLocation.cpp:
1479         (WebCore::JSLocation::getOwnPropertySlot):
1480         - Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
1481           function.  This will help moving to a generated class in the future.
1482         (WebCore::JSLocation::customGetOwnPropertySlot):
1483         - Implement the same model as described above for the Location object, always returning the
1484           native built-in function cross-domain.
1485         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
1486           access.
1487         (WebCore::JSLocation::put):
1488         (WebCore::JSLocation::deleteProperty):
1489         (WebCore::JSLocation::getPropertyNames):
1490         * bindings/js/JSLocation.h:
1491         - Clean up to match the rest of the file a little better.
1492
1493         * bindings/js/kjs_binding.cpp:
1494         (WebCore::allowsAccessFromFrame):
1495         (WebCore::printErrorMessageForFrame):
1496         (WebCore::nonCachingStaticFunctionGetter):
1497         (WebCore::objectToStringFunctionGetter):
1498         * bindings/js/kjs_binding.h:
1499         - Put common functionality related to cross-domain access here to serve as a central shared point.
1500           This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
1501           and JSLocation.cpp.
1502
1503         * bindings/js/kjs_dom.cpp:
1504         (WebCore::checkNodeSecurity):
1505         - Use the new allowsAccessFromFrame method.
1506
1507         * bindings/js/kjs_window.cpp:
1508         (KJS::Window::childFrameGetter): Cleanup.
1509         (KJS::Window::namedItemGetter): Cleanup.
1510         (KJS::Window::getOwnPropertySlot):
1511         - Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
1512           than the index or shortcut name getters.
1513         - Cleanup function to make it more understandable and slightly more efficient.
1514         (KJS::Window::allowsAccessFrom):
1515         - Add a new variant of this method that takes a reference to a String, which, on failure, will
1516           contain the error message to print out.  The caller can then pass this to printErrorMessage.
1517           This allows for code to check allowsAccessFrom and act on the result without printing out the
1518           error message. For convenience, a version with out the String parameter has been left which 
1519           prints out the message automatically.
1520         (KJS::Window::printErrorMessage):
1521         * bindings/js/kjs_window.h:
1522
1523 2008-02-11  Darin Adler  <darin@apple.com>
1524
1525         Reviewed by Mitz.
1526
1527         - fix <rdar://problem/5726016> REGRESSION: Xcode News window renders
1528           incorrectly due to visibility fix
1529
1530         Added an Xcode-specific quirk.
1531
1532         * WebCore.base.exp: Added export for new Settings function.
1533         * css/CSSMutableStyleDeclaration.cpp:
1534         (WebCore::CSSMutableStyleDeclaration::setProperty): Here's the crazy quirk.
1535         If you try to change the visibilty on a node with the class name tab_content,
1536         instead it will use display:none.
1537         * page/Settings.cpp:
1538         (WebCore::Settings::Settings): Initialize m_needsXcodeVisibilityQuirk. Also
1539         initialize m_fontRenderingMode! This seems like it was a bug before, but we
1540         probably were getting lucky and always getting 0 on Windows, which is the
1541         only place the setting matters.
1542         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Added.
1543         * page/Settings.h:
1544         (WebCore::Settings::needsXcodeVisibilityQuirk): Added.
1545
1546 2008-02-11  Timothy Hatcher  <timothy@apple.com>
1547
1548         Reviewed by Brady Eidson.
1549
1550         <rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard
1551
1552         * storage/DatabaseTracker.cpp:
1553         (WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
1554         (WebCore::DatabaseTracker::origins): Ditto.
1555         (WebCore::DatabaseTracker::setQuota): Ditto.
1556         (WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
1557         origins to call deleteOrigin().
1558         (WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.
1559
1560 2008-02-11  David Hyatt  <hyatt@apple.com>
1561
1562         Fix for bug 17286, crash accessing a null RenderStyle.  Add a simple null check.
1563
1564         Reviewed by aroben
1565
1566         Added fast/css/empty-generated-content.html
1567
1568         * css/CSSStyleSelector.cpp:
1569         (WebCore::CSSStyleSelector::checkOneSelector):
1570
1571 2008-02-11  Rob Buis  <buis@kde.org>
1572
1573         Reviewed by David Kilzer.
1574
1575         http://bugs.webkit.org/show_bug.cgi?id=17201
1576         Bug 17201: Use RefPtr in CSSParser::parseFont() to get rid of goto silliness
1577
1578         Gets rid of goto usage in parseFont.
1579
1580         * css/CSSParser.cpp:
1581         (WebCore::CSSParser::parseFont):
1582
1583 2008-02-11  David Hyatt  <hyatt@apple.com>
1584
1585         Fix for bug 17298, Acid3 text should be black and not red.  Make sure stylesheets with the wrong MIME type
1586         are not accepted in strict mode.
1587
1588         Reviewed by darin
1589
1590         Added http/tests/misc/css-reject-in-strict-mode.html
1591
1592         * css/CSSImportRule.cpp:
1593         (WebCore::CSSImportRule::setCSSStyleSheet):
1594         * css/CSSImportRule.h:
1595         * dom/Document.cpp:
1596         (WebCore::Document::setCSSStyleSheet):
1597         * dom/Document.h:
1598         * dom/ProcessingInstruction.cpp:
1599         (WebCore::ProcessingInstruction::setCSSStyleSheet):
1600         * dom/ProcessingInstruction.h:
1601         * html/HTMLLinkElement.cpp:
1602         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1603         * html/HTMLLinkElement.h:
1604         * html/HTMLMediaElement.cpp:
1605         (WebCore::HTMLMediaElement::pickMedia):
1606         * loader/CachedCSSStyleSheet.cpp:
1607         (WebCore::CachedCSSStyleSheet::ref):
1608         (WebCore::CachedCSSStyleSheet::checkNotify):
1609         (WebCore::CachedCSSStyleSheet::canUseSheet):
1610         * loader/CachedCSSStyleSheet.h:
1611         (WebCore::CachedCSSStyleSheet::sheetText):
1612         * loader/CachedResourceClient.h:
1613         (WebCore::CachedResourceClient::setCSSStyleSheet):
1614         * loader/mac/UserStyleSheetLoader.cpp:
1615         (UserStyleSheetLoader::setCSSStyleSheet):
1616         * loader/mac/UserStyleSheetLoader.h:
1617
1618 2008-02-11  Adam Roben  <aroben@apple.com>
1619
1620         Fix Bug 14316: Inspector's Console truncates long strings
1621
1622         <http://bugs.webkit.org/show_bug.cgi?id=14316>
1623         <rdar://5357695>
1624
1625         We no longer call Object.describe to format all the output of commands
1626         enetered into the Console. The ConsolePanel object now has a set of
1627         formatting functions that append a formatted representation of the
1628         passed-in object to the passed-in container node.
1629
1630         Reviewed by Sam.
1631
1632         * page/inspector/ConsolePanel.js:
1633         (WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
1634         _outputToNode to _format.
1635         (WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
1636         Object.type to get the type of the object, then call the appropriate
1637         formatting function.
1638         (WebInspector.ConsolePanel._formatvalue): Added.
1639         (WebInspector.ConsolePanel._formatstring): Added. This function
1640         contains the actual fix for the bug, since it doesn't truncate the
1641         string no matter how long it is.
1642         (WebInspector.ConsolePanel._formatregexp): Added.
1643         (WebInspector.ConsolePanel._formatarray): Added. This is a bit more
1644         functional than Object.describe for arrays, since it recursively
1645         formats each item in the array. One advantage of this is that Nodes in
1646         arrays will be linkified instead of just turning into "[Object
1647         HTMLBodyElement]" or similar.
1648         (WebInspector.ConsolePanel._formatnode): Added.
1649         (WebInspector.ConsolePanel._formatobject): Added.
1650         (WebInspector.ConsolePanel.
1651         * page/inspector/utilities.js:
1652         (Object.type): Added. Code was pulled out of Object.describe and
1653         reorganized slightly.
1654         (Object.describe): Call Object.type. There should be no change in
1655         behavior of this function.
1656
1657 2008-02-11  Alp Toker  <alp@atoker.com>
1658
1659         Wx build fix for breakage introduced in r30142. Spotted by Darin.
1660
1661         * platform/network/curl/ResourceHandleManager.cpp:
1662         (WebCore::parseDataUrl):
1663
1664 2008-02-11  Brent Fulgham  <bfulgham@gmail.com>
1665
1666         Reviewed and tweaked by Darin
1667
1668         - http://bugs.webkit.org/show_bug.cgi?id=17299
1669           a couple compilation fixes for Cairo/Win32 configuration
1670
1671         * platform/graphics/cairo/ImageSourceCairo.cpp:
1672         (WebCore::createDecoder): Turn off XBMImageDecoder for PLATFORM(WIN) configuration.
1673         * rendering/RenderThemeWin.cpp:
1674         (WebCore::prepareForDrawing): Added IntRect parameter.
1675         (WebCore::doneDrawing): Ditto.
1676         (WebCore::RenderThemeWin::paintButton): Ditto.
1677         (WebCore::RenderThemeWin::paintTextField): Ditto.
1678         (WebCore::RenderThemeWin::paintMenuListButton): Ditto.
1679         (WebCore::RenderThemeWin::systemFont): Added.
1680
1681 2008-02-11  Alp Toker  <alp@atoker.com>
1682
1683         Reviewed by Alexey.
1684
1685         Acid3 data URL parsing fix for the GTK+ port.
1686
1687         Avoid WebCore's base64Decode() when possible since it's not a
1688         general-purpose Base64 decoder and fails on newlines.
1689
1690         * platform/network/curl/ResourceHandleManager.cpp:
1691         (WebCore::parseDataUrl):
1692
1693 2008-02-11  Darin Adler  <darin@apple.com>
1694
1695         - another Qt build fix
1696
1697         * platform/qt/PopupMenuQt.cpp:
1698         (WebCore::PopupMenu::PopupMenu): Added explicit RefCounted constructor.
1699
1700 2008-02-10  Darin Adler  <darin@apple.com>
1701
1702         - another Qt build fix (wish the Qt bot wouldn't stop on the first error)
1703
1704         * platform/qt/FileChooserQt.cpp:
1705         (WebCore::FileChooser::FileChooser): Added explicit RefCounted constructor.
1706
1707 2008-02-10  Darin Adler  <darin@apple.com>
1708
1709         - another Qt build fix
1710
1711         * platform/graphics/qt/IconQt.cpp:
1712         (WebCore::Icon::Icon): Added explicit RefCounted constructor.
1713
1714 2008-02-10  Alp Toker  <alp@atoker.com>
1715
1716         Another Win build fix for r30133 breakage.
1717
1718         * plugins/win/PluginPackageWin.cpp:
1719         (WebCore::PluginPackage::PluginPackage):
1720
1721 2008-02-10  Alp Toker  <alp@atoker.com>
1722
1723         Build fix GTK+ and prospective build fix for Win breakage introduced
1724         in r30133.
1725
1726         * platform/Cursor.h:
1727         (WebCore::SharedCursor::SharedCursor):
1728         * platform/graphics/gtk/IconGtk.cpp:
1729         (WebCore::Icon::Icon):
1730         * platform/gtk/FileChooserGtk.cpp:
1731         (WebCore::FileChooser::FileChooser):
1732         * platform/gtk/PopupMenuGtk.cpp:
1733         (WebCore::PopupMenu::PopupMenu):
1734
1735 2008-02-10  Darin Adler  <darin@apple.com>
1736
1737         - try to fix Win, Qt, GTK, and WX builds
1738
1739         * platform/Cursor.h:
1740         (WebCore::SharedCursor::SharedCursor): Added explicit RefCounted constructor.
1741         * platform/graphics/win/IconWin.cpp:
1742         (WebCore::Icon::Icon): Ditto.
1743         * platform/win/FileChooserWin.cpp:
1744         (WebCore::FileChooser::FileChooser): Ditto.
1745         * platform/win/PopupMenuWin.cpp:
1746         (WebCore::PopupMenu::PopupMenu): Ditto.
1747         * platform/wx/TemporaryLinkStubs.cpp:
1748         (FileChooser::FileChooser): Ditto.
1749         (PopupMenu::PopupMenu): Ditto.
1750         (Icon::Icon): Ditto.
1751         * plugins/PluginStream.cpp:
1752         (WebCore::PluginStream::PluginStream): Ditto.
1753
1754 2008-02-10  David Hyatt  <hyatt@apple.com>
1755
1756         Fix for bug 17082, cssRules should be live.
1757
1758         Reviewed by olliej
1759
1760         Added fast/css/live-cssrules.html
1761
1762         * css/CSSRuleList.cpp:
1763         (WebCore::CSSRuleList::CSSRuleList):
1764         (WebCore::CSSRuleList::length):
1765         (WebCore::CSSRuleList::item):
1766         (WebCore::CSSRuleList::deleteRule):
1767         (WebCore::CSSRuleList::insertRule):
1768         * css/CSSRuleList.h:
1769
1770 2008-02-10  David Hyatt  <hyatt@apple.com>
1771
1772         Fix for bug 17253.  <iframe> contents need to be reflected into the DOM as a single text node.
1773
1774         Reviewed by olliej
1775
1776         fast/frames/iframe-text-contents.html
1777
1778         * html/HTMLParser.cpp:
1779         (WebCore::HTMLParser::getNode):
1780         * html/HTMLTokenizer.cpp:
1781         (WebCore::HTMLTokenizer::parseSpecial):
1782         (WebCore::HTMLTokenizer::parseComment):
1783         (WebCore::HTMLTokenizer::parseTag):
1784         * html/HTMLTokenizer.h:
1785         (WebCore::HTMLTokenizer::State::inIFrame):
1786         (WebCore::HTMLTokenizer::State::setInIFrame):
1787         (WebCore::HTMLTokenizer::State::inAnySpecial):
1788         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
1789         (WebCore::HTMLTokenizer::State::):
1790
1791 2008-02-10  Andrew Wellington  <proton@wiretapped.net>
1792
1793         Reviewed and tweaked by Darin.
1794         
1795         DOMRange.surroundContents throws wrong exception (Acid3 bug)
1796         http://bugs.webkit.org/show_bug.cgi?id=16749
1797         
1798         Throw BAD_BOUNDARYPOINTS_ERR if attempting to split a non-text node that
1799         has offsets in characters.
1800
1801         * dom/Range.cpp:
1802         (WebCore::Range::surroundContents):
1803
1804 2008-02-10  Darin Adler  <darin@apple.com>
1805
1806         Reviewed by Eric.
1807
1808         - http://bugs.webkit.org/show_bug.cgi?id=17256
1809           Make clients of RefCounted explicitly set the count to 0.
1810
1811         * bindings/js/JSSVGPODTypeWrapper.h:
1812         (WebCore::JSSVGPODTypeWrapper::JSSVGPODTypeWrapper):
1813         * css/CSSFontFace.h:
1814         (WebCore::CSSFontFace::CSSFontFace):
1815         * css/CSSRuleList.cpp:
1816         (WebCore::CSSRuleList::CSSRuleList):
1817         * css/CSSSegmentedFontFace.cpp:
1818         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
1819         * css/Counter.h:
1820         (WebCore::Counter::Counter):
1821         * css/Pair.h:
1822         (WebCore::Pair::Pair):
1823         * css/Rect.h:
1824         (WebCore::Rect::Rect):
1825         * css/StyleBase.h:
1826         (WebCore::StyleBase::StyleBase):
1827         * css/StyleSheetList.cpp:
1828         (WebCore::StyleSheetList::StyleSheetList):
1829         * dom/Attr.cpp:
1830         (WebCore::Attr::Attr):
1831         * dom/Attr.h:
1832         * dom/Attribute.h:
1833         (WebCore::Attribute::Attribute):
1834         * dom/Clipboard.cpp:
1835         (WebCore::Clipboard::Clipboard):
1836         * dom/DOMImplementation.h:
1837         (WebCore::DOMImplementation::DOMImplementation):
1838         * dom/Event.cpp:
1839         (WebCore::Event::Event):
1840         * dom/EventListener.h:
1841         (WebCore::EventListener::EventListener):
1842         * dom/ExceptionBase.cpp:
1843         (WebCore::ExceptionBase::ExceptionBase):
1844         * dom/NamedAttrMap.h:
1845         (WebCore::NamedAttrMap::insertAttribute):
1846         * dom/NamedNodeMap.h:
1847         (WebCore::NamedNodeMap::NamedNodeMap):
1848         * dom/NodeFilter.h:
1849         (WebCore::NodeFilter::NodeFilter):
1850         * dom/NodeFilterCondition.h:
1851         (WebCore::NodeFilterCondition::NodeFilterCondition):
1852         * dom/NodeList.h:
1853         (WebCore::NodeList::NodeList):
1854         * dom/QualifiedName.h:
1855         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
1856         (WebCore::QualifiedName::ref):
1857         * dom/Range.cpp:
1858         (WebCore::Range::Range):
1859         * dom/RegisteredEventListener.cpp:
1860         (WebCore::RegisteredEventListener::RegisteredEventListener):
1861         * dom/StyledElement.h:
1862         * dom/Traversal.cpp:
1863         (WebCore::Traversal::Traversal):
1864         * editing/EditCommand.cpp:
1865         (WebCore::EditCommand::EditCommand):
1866         * history/BackForwardList.cpp:
1867         (WebCore::BackForwardList::BackForwardList):
1868         * history/CachedPage.cpp:
1869         (WebCore::CachedPage::CachedPage):
1870         * history/HistoryItem.cpp:
1871         (WebCore::HistoryItem::HistoryItem):
1872         * html/CanvasGradient.cpp:
1873         (WebCore::CanvasGradient::CanvasGradient):
1874         * html/CanvasPattern.cpp:
1875         (WebCore::CanvasPattern::CanvasPattern):
1876         * html/CanvasRenderingContext2D.cpp:
1877         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
1878         * html/CanvasStyle.cpp:
1879         (WebCore::CanvasStyle::CanvasStyle):
1880         * html/HTMLCollection.cpp:
1881         (WebCore::HTMLCollection::HTMLCollection):
1882         * html/MediaError.h:
1883         (WebCore::MediaError::MediaError):
1884         * html/TimeRanges.cpp:
1885         (TimeRanges::TimeRanges):
1886         * html/TimeRanges.h:
1887         (WebCore::TimeRanges::TimeRanges):
1888         * html/VoidCallback.h:
1889         (WebCore::VoidCallback::VoidCallback):
1890         * loader/DocumentLoader.cpp:
1891         (WebCore::DocumentLoader::DocumentLoader):
1892         * loader/FormState.cpp:
1893         (WebCore::FormState::FormState):
1894         * loader/ResourceLoader.cpp:
1895         (WebCore::ResourceLoader::ResourceLoader):
1896         * loader/TextResourceDecoder.cpp:
1897         (WebCore::TextResourceDecoder::TextResourceDecoder):
1898         * loader/icon/IconRecord.cpp:
1899         (WebCore::IconRecord::IconRecord):
1900         * page/BarInfo.cpp:
1901         (WebCore::BarInfo::BarInfo):
1902         * page/Console.cpp:
1903         (WebCore::Console::Console):
1904         * page/DOMSelection.cpp:
1905         (WebCore::DOMSelection::DOMSelection):
1906         * page/DOMWindow.cpp:
1907         (WebCore::DOMWindow::DOMWindow):
1908         * page/Frame.cpp:
1909         (WebCore::Frame::Frame):
1910         * page/History.cpp:
1911         (WebCore::History::History):
1912         * page/InspectorController.cpp:
1913         (WebCore::InspectorResource::InspectorResource):
1914         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
1915         * page/Plugin.h:
1916         (WebCore::Plugin::Plugin):
1917         * page/Screen.cpp:
1918         (WebCore::Screen::Screen):
1919         * platform/ArrayImpl.cpp:
1920         (WebCore::ArrayImpl::ArrayPrivate::ArrayPrivate):
1921         * platform/DeprecatedValueListImpl.cpp:
1922         (WebCore::DeprecatedValueListImpl::Private::Private):
1923         * platform/ScrollBar.cpp:
1924         (WebCore::Scrollbar::Scrollbar):
1925         * platform/SharedBuffer.cpp:
1926         (WebCore::SharedBuffer::SharedBuffer):
1927         * platform/graphics/FontFallbackList.cpp:
1928         (WebCore::FontFallbackList::FontFallbackList):
1929         * platform/graphics/FontFamily.cpp:
1930         (WebCore::FontFamily::FontFamily):
1931         * platform/graphics/FontFamily.h:
1932         (WebCore::FontFamily::FontFamily):
1933         * platform/graphics/FontSelector.h:
1934         (WebCore::FontSelector::FontSelector):
1935         (WebCore::FontSelector::~FontSelector):
1936         * platform/graphics/GlyphPageTreeNode.h:
1937         (WebCore::GlyphPage::GlyphPage):
1938         * platform/graphics/mac/IconMac.mm:
1939         (WebCore::Icon::Icon):
1940         * platform/mac/FileChooserMac.mm:
1941         (WebCore::FileChooser::FileChooser):
1942         * platform/mac/PopupMenuMac.mm:
1943         (WebCore::PopupMenu::PopupMenu):
1944         * platform/mac/SharedBufferMac.mm:
1945         (WebCore::SharedBuffer::SharedBuffer):
1946         * platform/network/FormData.cpp:
1947         (WebCore::FormData::FormData):
1948         * platform/network/FormData.h:
1949         (WebCore::FormData::FormData):
1950         * platform/network/ResourceHandle.cpp:
1951         (WebCore::ResourceHandle::ResourceHandle):
1952         * platform/text/CString.h:
1953         (WebCore::CStringBuffer::CStringBuffer):
1954         * platform/text/RegularExpression.cpp:
1955         (WebCore::RegularExpression::Private::Private):
1956         * rendering/RenderStyle.cpp:
1957         (WebCore::StyleSurroundData::StyleSurroundData):
1958         (WebCore::StyleBoxData::StyleBoxData):
1959         (WebCore::StyleVisualData::StyleVisualData):
1960         (WebCore::StyleBackgroundData::StyleBackgroundData):
1961         (WebCore::StyleMarqueeData::StyleMarqueeData):
1962         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
1963         (WebCore::StyleMultiColData::StyleMultiColData):
1964         (WebCore::StyleTransformData::StyleTransformData):
1965         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1966         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1967         (WebCore::StyleInheritedData::StyleInheritedData):
1968         * rendering/RenderStyle.h:
1969         (WebCore::TransformOperation::TransformOperation):
1970         (WebCore::CursorList::CursorList):
1971         * rendering/SVGCharacterLayoutInfo.h:
1972         (WebCore::SVGCharOnPath::SVGCharOnPath):
1973         * rendering/SVGRenderStyle.cpp:
1974         (WebCore::SVGRenderStyle::SVGRenderStyle):
1975         * rendering/SVGRenderStyle.h:
1976         (WebCore::SVGRenderStyle::SVGRenderStyle):
1977         * rendering/SVGRenderStyleDefs.cpp:
1978         (StyleFillData::StyleFillData):
1979         (StyleStrokeData::StyleStrokeData):
1980         (StyleStopData::StyleStopData):
1981         (StyleTextData::StyleTextData):
1982         (StyleClipData::StyleClipData):
1983         (StyleMaskData::StyleMaskData):
1984         (StyleMarkerData::StyleMarkerData):
1985         (StyleMiscData::StyleMiscData):
1986         * storage/SQLResultSetRowList.h:
1987         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
1988         * svg/SVGAngle.cpp:
1989         (WebCore::SVGAngle::SVGAngle):
1990         * svg/SVGAnimatedTemplate.h:
1991         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
1992         * svg/SVGElementInstanceList.cpp:
1993         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
1994         * svg/SVGList.h:
1995         (WebCore::SVGList::SVGList):
1996         (WebCore::SVGPODListItem::SVGPODListItem):
1997         * svg/SVGPathSeg.h:
1998         (WebCore::SVGPathSeg::SVGPathSeg):
1999         * svg/SVGPreserveAspectRatio.cpp:
2000         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
2001         * svg/SVGRenderingIntent.h:
2002         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
2003         * svg/SVGUnitTypes.h:
2004         (WebCore::SVGUnitTypes::SVGUnitTypes):
2005         * svg/graphics/SVGPaintServerGradient.h:
2006         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
2007         * svg/graphics/SVGResource.cpp:
2008         (WebCore::SVGResource::SVGResource):
2009         * xml/DOMParser.h:
2010         (WebCore::DOMParser::DOMParser):
2011         * xml/XMLHttpRequest.cpp:
2012         (WebCore::XMLHttpRequest::XMLHttpRequest):
2013         * xml/XMLSerializer.h:
2014         (WebCore::XMLSerializer::XMLSerializer):
2015         * xml/XPathEvaluator.h:
2016         (WebCore::XPathEvaluator::XPathEvaluator):
2017         * xml/XPathExpression.h:
2018         (WebCore::XPathExpression::XPathExpression):
2019         * xml/XPathNSResolver.h:
2020         (WebCore::XPathNSResolver::XPathNSResolver):
2021         * xml/XPathResult.cpp:
2022         (WebCore::XPathResult::XPathResult):
2023         * xml/XPathValue.h:
2024         (WebCore::XPath::ValueData::ValueData):
2025         * xml/XSLTProcessor.h:
2026         (WebCore::XSLTProcessor::XSLTProcessor):
2027
2028 2008-02-09  Kevin Ollivier  <kevino@theolliviers.com>
2029
2030         Reviewed by Eric Seidel.
2031
2032         Calling select() when all the file descriptors are NULL
2033         stops the file download on Windows. As a result, do not
2034         call select() when there are no valid descriptors.
2035
2036         http://bugs.webkit.org/show_bug.cgi?id=17178
2037
2038         * platform/network/curl/ResourceHandleManager.cpp:
2039         (WebCore::ResourceHandleManager::downloadTimerCallback):
2040
2041 2008-02-09  Dan Bernstein  <mitz@apple.com>
2042
2043         Reviewed by Sam Weinig.
2044
2045         - fix http://bugs.webkit.org/show_bug.cgi?id=17259
2046           Element::recalcStyle() needlessly null-checks the result of styleForElement()
2047
2048         * dom/Element.cpp:
2049         (WebCore::Element::recalcStyle): Removed unneeded null checks.
2050         styleForElement() can never return null.
2051
2052 2008-02-09  David Hyatt  <hyatt@apple.com>
2053
2054         Fix for bug 17254, nth-* selectors do not work with negative coefficients.
2055
2056         Reviewed by Mitz.
2057
2058         fast/css/negative-nth-child.html
2059
2060         * css/CSSStyleSelector.cpp:
2061         (WebCore::parseNth):
2062
2063 2008-02-09  David Hyatt  <hyatt@apple.com>
2064
2065         Fix for bug 17203, high CPU usage loading HTML5 spec.  This patch significantly improves the performance
2066         of CSS3 selectors.
2067
2068         (1) Split the notion of being affected by positional rules into "forward" and "backward."  The "forward"
2069         selectors do not need to re-resolve during parsing, since children are appended on the end.  Only the
2070         "backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.
2071
2072         (2) Extend childrenChanged to specify whether the children were changed by the parser or not.  This allows
2073         Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
2074         possible.
2075
2076         (3) Make sure all Elements now know whether or not their children are currently parsing.  Backwards selectors
2077         like last-child will always return false when children are still being parsed.  When an Element finishes
2078         parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.
2079
2080         (4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.
2081
2082         (5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.
2083
2084         (6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
2085         base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).
2086
2087         Reviewed by Eric
2088
2089         * css/CSSStyleSelector.cpp:
2090         (WebCore::CSSStyleSelector::checkSelector):
2091         (WebCore::CSSStyleSelector::checkOneSelector):
2092         * dom/Attr.cpp:
2093         (WebCore::Attr::childrenChanged):
2094         * dom/Attr.h:
2095         * dom/ContainerNode.cpp:
2096         (WebCore::ContainerNode::addChild):
2097         * dom/Document.cpp:
2098         (WebCore::Document::childrenChanged):
2099         * dom/Document.h:
2100         * dom/Element.cpp:
2101         (WebCore::Element::Element):
2102         (WebCore::Element::recalcStyle):
2103         (WebCore::checkFirstChildRules):
2104         (WebCore::checkLastChildRules):
2105         (WebCore::checkEmptyRules):
2106         (WebCore::checkStyleRules):
2107         (WebCore::Element::childrenChanged):
2108         (WebCore::Element::finishParsingChildren):
2109         * dom/Element.h:
2110         (WebCore::Element::finishedParsingChildren):
2111         (WebCore::Element::beginParsingChildren):
2112         * dom/Node.cpp:
2113         * dom/Node.h:
2114         (WebCore::Node::finishParsingChildren):
2115         (WebCore::Node::beginParsingChildren):
2116         (WebCore::Node::childrenChanged):
2117         * dom/StyledElement.cpp:
2118         (WebCore::StyledElement::StyledElement):
2119         * dom/StyledElement.h:
2120         * dom/XMLTokenizer.cpp:
2121         (WebCore::XMLTokenizer::startElementNs):
2122         (WebCore::XMLTokenizer::endElementNs):
2123         (WebCore::):
2124         * html/HTMLAppletElement.cpp:
2125         (WebCore::HTMLAppletElement::HTMLAppletElement):
2126         (WebCore::HTMLAppletElement::finishParsingChildren):
2127         * html/HTMLAppletElement.h:
2128         * html/HTMLElementFactory.cpp:
2129         (WebCore::objectConstructor):
2130         * html/HTMLGenericFormElement.cpp:
2131         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
2132         * html/HTMLGenericFormElement.h:
2133         * html/HTMLObjectElement.cpp:
2134         (WebCore::HTMLObjectElement::HTMLObjectElement):
2135         (WebCore::HTMLObjectElement::finishParsingChildren):
2136         (WebCore::HTMLObjectElement::childrenChanged):
2137         * html/HTMLObjectElement.h:
2138         * html/HTMLOptGroupElement.cpp:
2139         (WebCore::HTMLOptGroupElement::childrenChanged):
2140         * html/HTMLOptGroupElement.h:
2141         * html/HTMLOptionElement.cpp:
2142         (WebCore::HTMLOptionElement::childrenChanged):
2143         * html/HTMLOptionElement.h:
2144         * html/HTMLParser.cpp:
2145         (WebCore::HTMLParser::insertNode):
2146         (WebCore::HTMLParser::pushBlock):
2147         (WebCore::HTMLParser::popOneBlockCommon):
2148         * html/HTMLScriptElement.cpp:
2149         (WebCore::HTMLScriptElement::childrenChanged):
2150         (WebCore::HTMLScriptElement::finishParsingChildren):
2151         * html/HTMLScriptElement.h:
2152         * html/HTMLSelectElement.cpp:
2153         (WebCore::HTMLSelectElement::childrenChanged):
2154         * html/HTMLSelectElement.h:
2155         * html/HTMLStyleElement.cpp:
2156         (WebCore::HTMLStyleElement::finishParsingChildren):
2157         (WebCore::HTMLStyleElement::childrenChanged):
2158         * html/HTMLStyleElement.h:
2159         * html/HTMLTextAreaElement.cpp:
2160         (WebCore::HTMLTextAreaElement::childrenChanged):
2161         * html/HTMLTextAreaElement.h:
2162         * html/HTMLTitleElement.cpp:
2163         (WebCore::HTMLTitleElement::childrenChanged):
2164         * html/HTMLTitleElement.h:
2165          * rendering/RenderApplet.cpp:
2166         (WebCore::RenderApplet::createWidgetIfNecessary):
2167         * rendering/RenderPartObject.cpp:
2168         (WebCore::RenderPartObject::updateWidget):
2169         * rendering/RenderStyle.cpp:
2170         (WebCore::RenderStyle::RenderStyle):
2171         * rendering/RenderStyle.h:
2172         (WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
2173         (WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
2174         (WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
2175         (WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
2176         * svg/SVGAnimationElement.cpp:
2177         (WebCore::SVGAnimationElement::finishParsingChildren):
2178         * svg/SVGAnimationElement.h:
2179         * svg/SVGClipPathElement.cpp:
2180         (WebCore::SVGClipPathElement::childrenChanged):
2181         * svg/SVGClipPathElement.h:
2182         * svg/SVGDefinitionSrcElement.cpp:
2183         (WebCore::SVGDefinitionSrcElement::childrenChanged):
2184         * svg/SVGDefinitionSrcElement.h:
2185         * svg/SVGElement.cpp:
2186         (WebCore::SVGElement::finishParsingChildren):
2187         * svg/SVGElement.h:
2188         * svg/SVGFontFaceElement.cpp:
2189         (WebCore::SVGFontFaceElement::childrenChanged):
2190         * svg/SVGFontFaceElement.h:
2191         * svg/SVGFontFaceFormatElement.cpp:
2192         (WebCore::SVGFontFaceFormatElement::childrenChanged):
2193         * svg/SVGFontFaceFormatElement.h:
2194         * svg/SVGFontFaceSrcElement.cpp:
2195         (WebCore::SVGFontFaceSrcElement::childrenChanged):
2196         * svg/SVGFontFaceSrcElement.h:
2197         * svg/SVGFontFaceUriElement.cpp:
2198         (WebCore::SVGFontFaceUriElement::childrenChanged):
2199         * svg/SVGFontFaceUriElement.h:
2200         * svg/SVGGElement.cpp:
2201         (WebCore::SVGGElement::childrenChanged):
2202         * svg/SVGGElement.h:
2203         * svg/SVGGradientElement.cpp:
2204         (WebCore::SVGGradientElement::childrenChanged):
2205         * svg/SVGGradientElement.h:
2206         * svg/SVGMarkerElement.cpp:
2207         (WebCore::SVGMarkerElement::childrenChanged):
2208         * svg/SVGMarkerElement.h:
2209         * svg/SVGMaskElement.cpp:
2210         (WebCore::SVGMaskElement::childrenChanged):
2211         * svg/SVGMaskElement.h:
2212         * svg/SVGPatternElement.cpp:
2213         (WebCore::SVGPatternElement::childrenChanged):
2214         * svg/SVGPatternElement.h:
2215         * svg/SVGStyleElement.cpp:
2216         (WebCore::SVGStyleElement::finishParsingChildren):
2217         (WebCore::SVGStyleElement::childrenChanged):
2218         * svg/SVGStyleElement.h:
2219         * svg/SVGStyledElement.cpp:
2220         (WebCore::SVGStyledElement::childrenChanged):
2221         * svg/SVGStyledElement.h:
2222         * svg/SVGTitleElement.cpp:
2223         (WebCore::SVGTitleElement::childrenChanged):
2224         * svg/SVGTitleElement.h:
2225         * svg/SVGUseElement.cpp:
2226         (WebCore::SVGUseElement::childrenChanged):
2227         * svg/SVGUseElement.h:
2228         
2229 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2230
2231         Unreviewed build fix
2232
2233         Somehow the removal of adjustSliderThumbSize(RenderObject*) sneaked
2234         into the patch.
2235
2236         * platform/qt/RenderThemeQt.h:
2237
2238 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
2239
2240         Reviewed by Adele.
2241
2242         paintResizeControl is dead, remove the code. This painting
2243         is done by the RenderLayer.
2244
2245         * platform/qt/RenderThemeQt.cpp:
2246         * platform/qt/RenderThemeQt.h:
2247         * rendering/RenderThemeMac.h:
2248         * rendering/RenderThemeMac.mm:
2249
2250 2008-02-07  Kevin Ollivier <kevino@theolliviers.com>
2251
2252         Reviewed by Eric Seidel, Adam Roben.
2253
2254         MSVC7 fixes.
2255         http://bugs.webkit.org/show_bug.cgi?id=17211
2256
2257         * platform/Threading.h:
2258         - On MSVC7, when the Interlocked* functions are used, the ref count gets out of sync.
2259           (MSVC8 seems not to have this problem.) Use the old implementation which works correctly.
2260         * platform/win/SharedTimerWin.cpp:
2261         - USER_TIMER_MINIMUM/MAXIMUM aren't defined in winuser.h for the MSVC 2003 Platform SDK
2262           so define them if they are not already defined.
2263
2264 2008-02-08  Brent Fulgham  <bfulgham@gmail.com>
2265
2266         Reviewed by Adam Roben.
2267
2268         Bug 17226: Fix Windows (Cairo) build of image-decoders
2269         http://bugs.webkit.org/show_bug.cgi?id=17226
2270
2271         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2272         * platform/image-decoders/png/PNGImageDecoder.cpp:
2273
2274 2008-02-08  Timothy Hatcher  <timothy@apple.com>
2275
2276         Reviewed by Brady Eidson.
2277
2278         <rdar://problem/5640896> Removing database then trying
2279         to recreate it causes trouble
2280
2281         Added open Database support to DatabaseTracker. So any Database that 
2282         is deleted will be marked as deleted and will fail to open any transaction
2283         or execute any new SQL queries.
2284
2285         * storage/Database.cpp:
2286         (WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
2287         (WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
2288         (WebCore::Database::markAsDeleted): Set the m_deleted flag.
2289         (WebCore::Database::version): Return a null String if m_deleted is true.
2290         * storage/Database.h:
2291         (WebCore::Database::deleted): Return m_deleted.
2292         * storage/DatabaseTracker.cpp:
2293         (WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
2294         (WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
2295         (WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
2296           matching the origin/name.
2297         * storage/DatabaseTracker.h:
2298         * storage/SQLStatement.cpp:
2299         (WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
2300         * storage/SQLStatement.h:
2301         * storage/SQLTransaction.cpp:
2302         (WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
2303         (WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
2304           if the Database was marked as deleted.
2305
2306 2008-02-08  Darin Adler  <darin@apple.com>
2307
2308         Reviewed by Eric.
2309
2310         - fix http://bugs.webkit.org/show_bug.cgi?id=15003
2311           Function.prototype.constructor should not be DontDelete/ReadOnly (Acid3 bug)
2312
2313         Test: fast/js/constructor-attributes.html
2314
2315         * bindings/scripts/CodeGeneratorJS.pm: Remove unwanted attributes from "constructor".
2316
2317 2008-02-08  Anders Carlsson  <andersca@apple.com>
2318
2319         Reviewed by Mitz.
2320
2321         <rdar://problem/5650446>
2322         http://bugs.webkit.org/show_bug.cgi?id=16102
2323         Crash in FrameLoader::stopLoadingSubframes() on IMDB page
2324
2325         Store the child frame in a RefPtr to prevent it from being deleted when the
2326         frame tree changes while calling stopAllLoaders().
2327         
2328         * loader/FrameLoader.cpp:
2329         (WebCore::FrameLoader::stopLoadingSubframes):
2330
2331 2008-02-08  Kevin Ollivier  <kevino@theolliviers.com>
2332
2333         wx port build fix. Add time.h to define time_t.
2334
2335         * platform/FileSystem.h:
2336
2337 2008-02-08  Alp Toker  <alp@atoker.com>
2338
2339         Reviewed by Adam Roben.
2340
2341         Avoid null-dereference crasher noticed in the GTK+ port and also
2342         affecting the Win debug build.
2343
2344         Covered by existing tests.
2345
2346         * dom/Document.cpp:
2347         (WebCore::Document::userStyleSheet):
2348
2349 2008-02-08  Anders Carlsson  <andersca@apple.com>
2350
2351         Reviewed by Adam.
2352
2353         <rdar://problem/5724188> 
2354         REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
2355         
2356         Revert r29926 which caused the regression.
2357         
2358         * dom/Text.cpp:
2359         (WebCore::Text::createWithLengthLimit):
2360         * dom/Text.h:
2361         * html/HTMLParser.cpp:
2362         (WebCore::HTMLParser::parseToken):
2363         * loader/TextDocument.cpp:
2364         (WebCore::TextTokenizer::write):
2365
2366 2008-02-08  Sam Weinig  <sam@webkit.org>
2367
2368         Reviewed by Hyatt.
2369
2370         Fix for <rdar://problem/5732491>
2371         http://bugs.webkit.org/show_bug.cgi?id=17213
2372         The querySelectorAll method on an element node does not search only the element's descendants
2373
2374         Test: fast/dom/SelectorAPI/elementRoot.html
2375
2376         * dom/Node.cpp:
2377         (WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
2378         * dom/SelectorNodeList.cpp:
2379         (WebCore::SelectorNodeList::SelectorNodeList): ditto.
2380
2381
2382
2383 2008-02-08  David Hyatt  <hyatt@apple.com>
2384
2385         Fix for bug 16798, button should default to type=submit.
2386
2387         Reviewed by darin
2388
2389         * html/HTMLButtonElement.cpp:
2390         (WebCore::HTMLButtonElement::type):
2391         (WebCore::HTMLButtonElement::parseMappedAttribute):
2392
2393 2008-02-08  Rodney Dawes  <dobey@wayofthemonkey.com>
2394
2395         Reviewed by Jon Honeycutt.
2396
2397         Redefine some platform-specific types as cross-platform types
2398         Add pathGetFileName method to get the filename from a path string
2399         Add unloadModule method to unload a loadable module from the process
2400         Implement new methods for GTK+ and Windows
2401         Implement missing homeDirectoryPath method for GTK+
2402         Add stub methods for new and missing methods for Wx and Qt
2403
2404         * platform/FileSystem.h:
2405         * platform/gtk/FileSystemGtk.cpp:
2406         * platform/qt/FileSystemQt.cpp:
2407         * platform/win/FileSystemWin.cpp:
2408         * platform/wx/FileSystemWx.cpp:
2409
2410 2008-02-08  Adam Roben  <aroben@apple.com>
2411
2412         Windows build fix after r30088
2413
2414         * bindings/scripts/CodeGeneratorCOM.pm: Touch this to force the COM
2415         bindings to rebuild.
2416
2417 2008-02-08  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
2418
2419         Reviewed by Alp Toker.
2420
2421         http://bugs.webkit.org/show_bug.cgi?id=17009
2422         [Gtk] Webkit strips accents from some dead-key combinations
2423
2424         KeyEvents have to go through the gtk input method.
2425
2426         Also implement the isKeypad check and make disambiguateKeyDownEvent
2427         behave more like other ports.
2428
2429         * platform/PlatformKeyboardEvent.h:
2430         * platform/gtk/KeyEventGtk.cpp:
2431         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2432         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2433         (WebCore::PlatformKeyboardEvent::gdkEventKey):
2434
2435 2008-02-08  Darin Adler  <darin@apple.com>
2436
2437         Reviewed by Eric.
2438
2439         - fix http://bugs.webkit.org/show_bug.cgi?id=3492
2440           TreeWalker implementation needs to be fixed (affects Acid3)
2441         - fix http://bugs.webkit.org/show_bug.cgi?id=4714
2442           NodeIterator does not handle exceptions from the filter function (affects Acid3)
2443         - fix http://bugs.webkit.org/show_bug.cgi?id=4716
2444           NodeIterator will crash if the filter function removes the current node from the document
2445
2446         Test: traversal/exception-forwarding.html
2447
2448         This turned into a near-rewrite of NodeIterator and TreeWalker.
2449
2450         * bindings/js/JSNodeFilterCondition.h:
2451         * bindings/js/JSNodeFilterCondition.cpp:
2452         (WebCore::takeException): Added.
2453         (WebCore::JSNodeFilterCondition::acceptNode): Added an out parameter to return
2454         a JavaScript exception.
2455
2456         * bindings/js/JSNodeFilterCustom.cpp:
2457         (WebCore::JSNodeFilter::acceptNode): Wrote a custom binding for this that raises
2458         a JavaScript exception if the out parameter is set.
2459
2460         * bindings/js/JSNodeIteratorCustom.cpp:
2461         (WebCore::JSNodeIterator::nextNode): Wrote a custom binding for this that raises
2462         a JavaScript exception if the out parameter is set.
2463         (WebCore::JSNodeIterator::previousNode): Ditto.
2464
2465         * bindings/js/JSTreeWalkerCustom.cpp:
2466         (WebCore::JSTreeWalker::parentNode): Wrote a custom binding for this that raises
2467         a JavaScript exception if the out parameter is set.
2468         (WebCore::JSTreeWalker::firstChild): Ditto.
2469         (WebCore::JSTreeWalker::lastChild): Ditto.
2470         (WebCore::JSTreeWalker::nextSibling): Ditto.
2471         (WebCore::JSTreeWalker::previousSibling): Ditto.
2472         (WebCore::JSTreeWalker::previousNode): Ditto.
2473         (WebCore::JSTreeWalker::nextNode): Ditto.
2474
2475         * bindings/objc/DOM.mm:
2476         (WebCore::ObjCNodeFilterCondition::acceptNode): Updated to include new exception
2477         out parameter.
2478         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
2479         Use RefPtr to make object lifetimes clearer.
2480         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
2481         Ditto.
2482
2483         * bindings/scripts/CodeGeneratorJS.pm: Added include of NodeFilter.h for
2484         JSDocument.cpp.
2485
2486         * dom/Document.h:
2487         * dom/Document.cpp:
2488         (WebCore::Document::createNodeIterator): Changed to use PassRefPtr.
2489         (WebCore::Document::createTreeWalker): Ditto.
2490
2491         * dom/NodeFilter.h:
2492         * dom/NodeFilter.cpp:
2493         (WebCore::NodeFilter::NodeFilter): Changed to use PassRefPtr.
2494         (WebCore::NodeFilter::acceptNode): Added an out parameter to return
2495         a JavaScript exception.
2496         * dom/NodeFilter.idl: Custom binding for acceptNode.
2497
2498         * dom/NodeFilterCondition.h:
2499         * dom/NodeFilterCondition.cpp:
2500         (WebCore::NodeFilterCondition::acceptNode): Added an out parameter to return
2501         a JavaScript exception.
2502
2503         * dom/NodeIterator.cpp:
2504         (WebCore::NodeIterator::NodeIterator): Changed to use PassRefPtr more.
2505         Eliminated m_doc, using the root node instead, and unnecessary check for
2506         null -- rootNode must be non-null and all nodes have a non-null document.
2507         (WebCore::NodeIterator::~NodeIterator): Changed to get document from root.
2508         (WebCore::NodeIterator::nextNode): Rewrote to use a RefPtr since the
2509         acceptNode function could do anything, including removing the last
2510         reference to the current node. Also folded findNextNode into this function
2511         since it's the only one that needs to call it.
2512         (WebCore::NodeIterator::previousNode): Same thing, but the other direction.
2513         (WebCore::NodeIterator::detach): Changed to use the root node as the indication
2514         that we're detached rather than a separate boolean.
2515         (WebCore::NodeIterator::notifyBeforeNodeRemoval): Removed some unnneeded
2516         checks. Removed incorrect use of findNextNode/findPreviousNode -- those
2517         functions call acceptNode and the DOM standard is quite clear that these
2518         functions do not take that into account, allowing the current node to become
2519         one that's not accepted.
2520
2521         * dom/NodeIterator.h: Changed constructor to use PassRefPtr more. Changed
2522         nextNode and previousNode to have an out parameter with a JavaScript exception.
2523         Removed helper functions setReferenceNode, setPointerBeforeReferenceNode,
2524         detached, setDetached, document, findNextNode, and findPreviousNode. All were
2525         unnecessary. Removed data member m_doc which was just rootNode()->document().
2526
2527         * dom/NodeIterator.idl: Custom binding for nextNode and previousNode.
2528
2529         * dom/Traversal.cpp:
2530         (WebCore::Traversal::Traversal): Use PassRefPtr more.
2531         (WebCore::Traversal::acceptNode): Added out parameter for JavaScript exception.
2532         Also rearranged the function a little bit for clarity.
2533
2534         * dom/Traversal.h: Changed acceptNode to have an out parameter with a JavaScript
2535         exception and made it protected, since it's only for use by the derived classes.
2536
2537         * dom/TreeWalker.cpp:
2538         (WebCore::TreeWalker::TreeWalker): Updated to use PassRefPtr.
2539         (WebCore::TreeWalker::setCurrentNode): Updated to use PassRefPtr and deleted
2540         the overloaded version since it's not needed.
2541         (WebCore::TreeWalker::parentNode): Rewrote to propagate the exception and also
2542         to implement rules about when to check things like whether we're in the tree.
2543         The previous fix where we called isDescendantOf was not entirely correct, because
2544         the specification allows you to walk outside the tree if you get there somehow.
2545         What it doesn't allow is walking outside the tree from inside. The new
2546         implementation handles this correctly.
2547         (WebCore::TreeWalker::firstChild): Ditto.
2548         (WebCore::TreeWalker::lastChild): Ditto.
2549         (WebCore::TreeWalker::previousSibling): Ditto.
2550         (WebCore::TreeWalker::nextSibling): Ditto.
2551         (WebCore::TreeWalker::previousNode): Ditto. Because of the need to check the
2552         acceptNode function on parents, this can't use traversePreviousNode (more's the
2553         pity, because it's a bit complicated).
2554         (WebCore::TreeWalker::nextNode): Ditto.
2555
2556         * dom/TreeWalker.h: Changed constructor and setCurrentNode to use PassRefPtr
2557         more. Changed the navigation functions to have an out parameter with a JavaScript
2558         exception. Removed helper functions setCurrentNode and ancestorRejected.
2559
2560         * dom/TreeWalker.idl: Custom binding for navigation functions.
2561
2562 2008-02-08  Eric Seidel  <eric@webkit.org>
2563
2564         Reviewed by darin.
2565
2566         Add support for Text.wholeText and Text.replaceWholeText
2567         http://bugs.webkit.org/show_bug.cgi?id=17125
2568
2569         Test EntityReferences to make sure they're always treated as read-only
2570         In doing so I discovered a bug in document.adoptNode(readonlyNode) (and fixed it)
2571
2572         * dom/Document.cpp:
2573         (WebCore::Document::adoptNode): throw NO_MODIFICATION_ALLOWED_ERR when passed a readonly node
2574         * dom/Node.cpp:
2575         * dom/Node.cpp:
2576         (WebCore::Node::textContent):
2577         * dom/Text.cpp:
2578         (WebCore::earliestLogicallyAdjacentTextNode):
2579         (WebCore::latestLogicallyAdjacentTextNode):
2580         (WebCore::Text::wholeText):
2581         (WebCore::Text::replaceWholeText):
2582         * dom/Text.h:
2583         * dom/Text.idl:
2584
2585 2008-02-06  Kimmo Kinnunen  <kimmok@iki.fi>
2586
2587         Reviewed by Tim Hatcher.
2588
2589         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
2590         HTML5: Client-side database queries should return values of type number
2591         Test: storage/sql-data-types.html
2592
2593         Make the DB queries return a value as a number if it was inserted
2594         as a number to the database.
2595         * platform/sql/SQLiteStatement.cpp:
2596         (WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
2597         * platform/sql/SQLiteStatement.h:
2598         * storage/SQLStatement.cpp:
2599         (WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText
2600
2601 2008-02-07  Ada Chan  <adachan@apple.com>
2602
2603         <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
2604         Added mechanism to communicate client certificate info back to CFNetwork.
2605
2606         Reviewed by Adam.
2607
2608         * platform/network/ResourceHandle.h:
2609         * platform/network/cf/ResourceHandleCFNet.cpp:
2610         (WebCore::clientCerts): Keep a mapping of hosts to client certificates.
2611         (WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
2612         to CFNetwork by setting it in the SSL properties.
2613         (WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.
2614
2615 2008-02-07  Adam Roben  <aroben@apple.com>
2616
2617         Qt build fix
2618
2619         * platform/SharedBuffer.cpp: Removed a stub implementation of
2620         createWithContentsOfFile, now that each platform has its own stub.
2621
2622 2008-02-07  Adam Roben  <aroben@apple.com>
2623
2624         Fix Bug 17138: REGRESSION: Node highlight not updated properly
2625
2626         <http://bugs.webkit.org/show_bug.cgi?id=17138>
2627         <rdar://problem/5719869>
2628
2629         Reviewed by Darin.
2630
2631         No test possible.
2632
2633         * page/InspectorController.cpp:
2634         (WebCore::InspectorController::drawNodeHighlight): Update the
2635         overlayRect after scrolling to make sure that we translate the context
2636         by the correct amount.
2637
2638 2008-02-07  Adam Roben  <aroben@apple.com>
2639
2640         Qt and GTK+ build fixes
2641
2642         * platform/gtk/FileSystemGtk.cpp: Added a missing #include.
2643         * platform/qt/FileSystemQt.cpp: Ditto.
2644
2645 2008-02-07  Adam Roben  <aroben@apple.com>
2646
2647         Some cleanup of Mac-only user stylesheet code
2648
2649         I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
2650         moved some Mac-only Frame methods to FrameMac.mm.
2651
2652         Reviewed by Darin.
2653
2654         * WebCore.xcodeproj/project.pbxproj: Added new files to project.
2655         * loader/mac/UserStyleSheetLoader.cpp: Added.
2656         (UserStyleSheetLoader::UserStyleSheetLoader):
2657         (UserStyleSheetLoader::~UserStyleSheetLoader):
2658         * loader/mac/UserStyleSheetLoader.h: Added.
2659         * page/Frame.cpp: Removed setUserStyleSheet[Location]
2660         * page/mac/FrameMac.mm:
2661         (WebCore::Frame::setUserStyleSheetLocation): Moved here from
2662         Frame.cpp.
2663         (WebCore::Frame::setUserStyleSheet): Ditto.
2664
2665 2008-02-07  Adam Roben  <aroben@apple.com>
2666
2667         Fix <rdar://5555260> GMail never loads when a user stylesheet is
2668         specified
2669
2670         The fix in r29841 did not guarantee that the user stylesheet would not
2671         still be loading by the time GMail called document.write, and so was
2672         not a complete fix.
2673
2674         This change reworks the user stylesheet loading mechanism on non-Mac
2675         platforms to load the stylesheet synchronously from disk, and then
2676         keeps it in memory. This obsoletes the issue of what our behavior
2677         should be before the user stylesheet has loaded and what should happen
2678         when it finishes loading, as the user stylesheet will always be
2679         available when the Document first asks for it. Note, however, that
2680         this removes the ability to specify a non-file: URL for the user
2681         stylesheet. This change was not made for the Mac platform because it's
2682         possible that WebKit clients are relying on non-file: URLs for user
2683         stylesheets. It would also be nice to move back to an asynchronous
2684         loading model someday, but that is not currently possible since we
2685         don't have an asynchronous loading mechanism that is not tied to a
2686         particular Frame.
2687
2688         The responsibility of loading and storing the user stylesheet has
2689         moved from Frame to Page, since the user stylesheet URL is set on the
2690         Page-level Settings object.
2691
2692         Reviewed by Darin.
2693
2694         * dom/Document.cpp:
2695         (WebCore::Document::Document): Changed to call userStyleSheet().
2696         (WebCore::Document::setUserStyleSheet): Made Mac-only.
2697         (WebCore::Document::userStyleSheet): Changed to call up to Page on
2698         non-Mac platforms.
2699         (WebCore::Document::recalcStyleSelector): Changed to call
2700         userStyleSheet().
2701         * dom/Document.h:
2702             - Made setUserStyleSheet and the m_usersheet member Mac-only
2703             - Changed userStyleSheet to return a String instance instead of a
2704               String reference, since we now might return a new null String.
2705         * loader/FrameLoader.cpp:
2706         (WebCore::FrameLoader::begin): Made the call to
2707         Frame::setUserStyleSheetLocation Mac-only.
2708         * page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
2709         (WebCore::Frame::~Frame): Ditto.
2710         (WebCore::Frame::reapplyStyles): Made the call to
2711         setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
2712         Document will pick up the new stylesheet in Document::reapplyStyles.
2713         (WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
2714         Mac-only.
2715         * page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
2716         * page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
2717         * page/Page.cpp:
2718         (WebCore::Page::Page): Initialize new members.
2719         (WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
2720         Mac. On non-Mac, resets all members relating to the user stylesheet so
2721         we'll know to load it again the next time it's asked for.
2722         (WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
2723         the user stylesheet location has changed since the last time we loaded
2724         it, or if the file has been modified since we last loaded it, then
2725         returns the contents of the user stylesheet as a String.
2726         * page/Page.h: Added new methods/members.
2727         * page/Settings.cpp:
2728         (WebCore::Settings::setUserStyleSheetLocation): Changed to call
2729         Page::userStyleSheetLocationChanged.
2730         * page/Settings.h: Changed userStyleSheetLocation to return the KURL
2731         by reference instead of making a copy.
2732         * platform/FileSystem.h: Added declaration for getFileModificationTime.
2733         * platform/KURL.h: Added declaration for fileSystemPath method.
2734         * platform/cf/KURLCFNet.cpp:
2735         (WebCore::KURL::fileSystemPath): Added.
2736         * platform/posix/FileSystemPOSIX.cpp:
2737         (WebCore::getFileModificationTime): Added.
2738         * platform/qt/KURLQt.cpp:
2739         (WebCore::KURL::fileSystemPath): Stubbed out.
2740         * platform/win/FileSystemWin.cpp:
2741         (WebCore::getFileModificationTime): Added.
2742         * platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
2743         * platform/gtk/FileSystemGtk.cpp: Ditto.
2744         * platform/wx/FileSystemWx.cpp: Ditto.
2745         * platform/qt/TemporaryLinkStubs.cpp: Stubbed out
2746         SharedBuffer::createWithContentsOfFile.
2747         * platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
2748         KURL::fileSystemPath.
2749         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
2750
2751 2008-02-07  Adam Roben  <aroben@apple.com>
2752
2753         Clean up FileSystemWin.cpp
2754
2755         This cleanup also makes us call _wstat64 instead of _wstat32i64. The
2756         only difference between these two functions is that _wstat64 gives
2757         64-bit time values, while _wstat32i64 only gives 32-bit time values.
2758
2759         Reviewed by Darin.
2760
2761         All tests pass.
2762
2763         * platform/win/FileSystemWin.cpp:
2764         (WebCore::statFile): New static helper that wraps _wstat64.
2765         (WebCore::getFileSize): Changed to call statFile.
2766         (WebCore::fileExists): Ditto.
2767
2768 2008-02-07  Adam Roben  <aroben@apple.com>
2769
2770         Rename fileSize to getFileSize
2771
2772         Rubberstamped by Darin.
2773
2774         * platform/FileSystem.h:
2775         * platform/gtk/FileSystemGtk.cpp:
2776         * platform/network/cf/FormDataStreamCFNet.cpp:
2777         (WebCore::setHTTPBody):
2778         * platform/network/curl/ResourceHandleManager.cpp:
2779         (WebCore::ResourceHandleManager::setupPOST):
2780         * platform/posix/FileSystemPOSIX.cpp:
2781         * platform/qt/FileSystemQt.cpp:
2782         * platform/win/FileSystemWin.cpp:
2783         * platform/wx/FileSystemWx.cpp:
2784         * storage/Database.cpp:
2785         (WebCore::Database::databaseSize):
2786         * storage/DatabaseTracker.cpp:
2787         (WebCore::DatabaseTracker::usageForDatabase):
2788         * storage/OriginUsageRecord.cpp:
2789         (WebCore::OriginUsageRecord::diskUsage):
2790
2791 2008-02-06  Adam Roben  <aroben@apple.com>
2792
2793         Make KURL::isLocalFile treat the URL's protocol case-insensitively
2794
2795         Reviewed by Darin.
2796
2797         * platform/KURL.cpp:
2798         (WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.
2799
2800 2008-02-07  David Hyatt  <hyatt@apple.com>
2801
2802         Fix for bug 6248, implement the nth-* CSS3 selectors.  Patch based on original KHTML work from Allan Jensen
2803         and improved upon by Nick Shanks.
2804
2805         Reviewed by Eric
2806
2807         * css/CSSGrammar.y:
2808         * css/CSSParser.cpp:
2809         (WebCore::CSSParser::lex):
2810         * css/CSSSelector.cpp:
2811         (WebCore::CSSSelector::extractPseudoType):
2812         * css/CSSSelector.h:
2813         (WebCore::CSSSelector::):
2814         * css/CSSStyleSelector.cpp:
2815         (WebCore::parseNth):
2816         (WebCore::matchNth):
2817         (WebCore::CSSStyleSelector::checkOneSelector):
2818         * css/tokenizer.flex:
2819         * rendering/RenderStyle.cpp:
2820         (WebCore::RenderStyle::RenderStyle):
2821         * rendering/RenderStyle.h:
2822         (WebCore::RenderStyle::childIndex):
2823         (WebCore::RenderStyle::setChildIndex):
2824
2825 2008-02-07  Dan Bernstein  <mitz@apple.com>
2826
2827         Reviewed by Dave Hyatt.
2828
2829         - fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice
2830
2831         Test: fast/block/float/relative-painted-twice.html
2832
2833         * rendering/RenderBlock.cpp:
2834         (WebCore::RenderBlock::addOverhangingFloats): Added another case where
2835         the child should not take over painting the float: when they do not have
2836         the same enclosing layer. In that case, the float is already being
2837         painted by one of its closer ancestors.
2838
2839 2008-02-07  Dan Bernstein  <mitz@apple.com>
2840
2841         Reviewed by Darin Adler.
2842
2843         - fix http://bugs.webkit.org/show_bug.cgi?id=17194
2844           Changing text to bold changes font family
2845
2846         Test: platform/mac/fast/text/family-for-font-matched-by-name.html
2847
2848         * platform/mac/WebFontCache.mm:
2849         (+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
2850         the family of the font whose name matches the desired family if there
2851         is no exact family match.
2852
2853 2008-02-07  Beth Dakin  <bdakin@apple.com>
2854
2855         Reviewed by Geoff.
2856
2857         Fix for <rdar://problem/5697882> Traffic or Street View button on 
2858         Google Maps is sometimes not positioned correctly (17000)
2859
2860         On the Mac, timers fire in the order that they are registered. 
2861         Geoff and I discovered that this is not necessarily true on 
2862         Windows, and that turned out to be the cause of this intermittent 
2863         layout problem at Google Maps. This patch adds a new member 
2864         variable to Timer to remember the timer's insertion point into the 
2865         heap. Now when comparing timers, if two timers were registered at 
2866         the same time, their insertion orders are compared to determine 
2867         which should fire first. This code actually never runs on Debug 
2868         builds on the Mac; the system clock on the Mac is accurate enough 
2869         that it knows that the two timers were not registered at *exactly* 
2870         the same time. This is not the case on Windows. In theory, if we 
2871         sped up Javascript enough on the Mac, this code would run and would 
2872         prevent misrenderings such as the one found on Google Maps.
2873
2874         * platform/Timer.cpp:
2875         (WebCore::operator<):
2876         (WebCore::TimerBase::setNextFireTime):
2877         * platform/Timer.h:
2878
2879 2008-02-06  Justin Garcia  <justin.garcia@apple.com>
2880
2881         Reviewed by Darin Adler.
2882
2883         <rdar://problem/5195056> Huge plain text pastes are slow
2884         
2885         This was fixed in r27369 and then r29367 and r29667 caused performance to
2886         regress.
2887
2888         * editing/EditCommand.cpp:
2889         (WebCore::EditCommand::apply): Only updateLayout() for high level commands.
2890         (WebCore::EditCommand::unapply): Ditto.
2891         (WebCore::EditCommand::reapply): Ditto.
2892         * editing/Editor.cpp:
2893         (WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls 
2894         that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
2895         (WebCore::Editor::unappliedEditing): Ditto.
2896         (WebCore::Editor::reappliedEditing): Ditto.
2897         * editing/SelectionController.cpp:
2898         (WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
2899         base and extent with the expensive isCandidate operation if the node that will
2900         be removed is in a fragment, since such a removal is guaranteed to have no effect
2901         on a selection.  This is to speed up the paste operation, which does many removes from
2902         a fragment.
2903
2904 2008-02-06  Kevin Ollivier  <kevino@theolliviers.com>
2905
2906         Reviewed by Darin Adler.
2907
2908         Rather than directly handing scroll wheel events, use
2909         PlatformWheelEvent to send them to WebCore first, so that
2910         mouse wheel scrolling info can be retrieved via JavaScript.
2911
2912         http://bugs.webkit.org/show_bug.cgi?id=17179
2913
2914         * platform/ScrollView.h:
2915         * platform/wx/MouseWheelEventWx.cpp:
2916         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2917         * platform/wx/ScrollViewWx.cpp:
2918         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
2919         (WebCore::ScrollView::wheelEvent):
2920         (WebCore::ScrollView::maximumScroll):
2921
2922 2008-02-06  Mark Rowe  <mrowe@apple.com>
2923
2924         Fix Windows builds.
2925
2926         * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
2927
2928 2008-02-06  Mark Rowe  <mrowe@apple.com>
2929
2930         Mac build fix.  Track rename that happened in r30056.
2931
2932         * platform/graphics/mac/GraphicsContextMac.mm:
2933
2934 2008-02-06  Brent Fulgham  <bfulgham@gmail.com>
2935
2936         Reviewed by Adam Roben.
2937
2938         http://bugs.webkit.org/show_bug.cgi?id=16979
2939         Conditionalize CoreGraphics vs Cairo support in Windows port.
2940
2941         * WebCore.vcproj/WebCore.vcproj:
2942         * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
2943         (WebCore::imageFromSelection):
2944         * bridge/win/FrameCairoWin.cpp: Added.
2945         (WebCore::imageFromSelection):
2946         * bridge/win/FrameWin.cpp:
2947         (WebCore::computePageRectsForFrame):
2948         * platform/graphics/SimpleFontData.h:
2949         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2950         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
2951         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2952         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
2953         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
2954         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
2955         * platform/graphics/cg/GraphicsContextCG.cpp:
2956         (WebCore::GraphicsContext::savePlatformState):
2957         (WebCore::GraphicsContext::restorePlatformState):
2958         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
2959         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
2960         * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
2961         (WebCore::Font::drawGlyphs):
2962         * platform/graphics/win/FontCairoWin.cpp: Added.
2963         (WebCore::Font::drawGlyphs):
2964         * platform/graphics/win/FontWin.cpp:
2965         * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
2966         (WebCore::CGContextWithHDC):
2967         (WebCore::GraphicsContext::inTransparencyLayer):
2968         (WebCore::GraphicsContext::getWindowsContext):
2969         (WebCore::GraphicsContext::releaseWindowsContext):
2970         (WebCore::GraphicsContextPlatformPrivate::scale):
2971         (WebCore::GraphicsContextPlatformPrivate::rotate):
2972         (WebCore::GraphicsContextPlatformPrivate::translate):
2973         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
2974         (WebCore::setCGStrokeColor):
2975         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
2976         * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
2977         (WebCore::GraphicsContext::GraphicsContext):
2978         (WebCore::GraphicsContext::getWindowsContext):
2979         (WebCore::GraphicsContext::inTransparencyLayer):
2980         (WebCore::GraphicsContext::releaseWindowsContext):
2981         (WebCore::GraphicsContext::concatCTM):
2982         * platform/graphics/win/GraphicsContextWin.cpp:
2983         * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
2984         (WebCore::BitmapImage::getHBITMAPOfSize):
2985         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
2986         * platform/graphics/win/ImageCairoWin.cpp: Added.
2987         (WebCore::BitmapImage::getHBITMAPOfSize):
2988         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
2989         * platform/graphics/win/ImageWin.cpp:
2990         * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
2991         (WebCore::scaleEmToUnits):
2992         (WebCore::SimpleFontData::platformInit):
2993         (WebCore::SimpleFontData::platformWidthForGlyph):
2994         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
2995         (WebCore::SimpleFontData::platformInit):
2996         (WebCore::SimpleFontData::platformDestroy):
2997         (WebCore::SimpleFontData::platformWidthForGlyph):
2998         * platform/graphics/win/SimpleFontDataWin.cpp:
2999         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
3000         (WebCore::SimpleFontData::shouldApplyMacAscentHack):
3001         * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
3002         (WebCore::scaleDragImage):
3003         (WebCore::createDragImageFromImage):
3004         * platform/win/DragImageCairoWin.cpp: Added.
3005         (WebCore::scaleDragImage):
3006         (WebCore::createDragImageFromImage):
3007         * platform/win/DragImageWin.cpp:
3008
3009 2008-02-06  Anders Carlsson  <andersca@apple.com>
3010
3011         Reviewed by Darin.
3012
3013         Change httpBodyFromStream to take the request instead of the stream.
3014         
3015         * platform/network/cf/FormDataStreamCFNet.cpp:
3016         (WebCore::httpBodyFromRequest):
3017         * platform/network/cf/FormDataStreamCFNet.h:
3018         * platform/network/cf/ResourceRequestCFNet.cpp:
3019         (WebCore::ResourceRequest::doUpdateResourceRequest):
3020
3021 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
3022
3023         Reviewed by Darin.
3024
3025         - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
3026         one URL uses an explicit port number and another doesn't
3027
3028         * manual-tests/Default-port-frame.html: Added.
3029         * manual-tests/resources/Default-port-frame-contents.html: Added.
3030
3031 2008-02-06  Oliver Hunt  <oliver@apple.com>
3032
3033         Reviewed by NOBODY (Build fix).
3034
3035         Fix windows build
3036
3037         * WebCore.vcproj/build-generated-files.sh:
3038
3039 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
3040
3041         Rubberstamped by Darin.
3042
3043         <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
3044         - Reverted the change that caused the regression.
3045
3046         * dom/Document.cpp:
3047         (WebCore::Document::createElement):
3048         (WebCore::Document::createElementNS):
3049         (WebCore::Document::getElementById):
3050         (WebCore::Document::parseQualifiedName):
3051         (WebCore::Document::createAttributeNS):
3052         * dom/Document.idl:
3053
3054 2008-02-06  Geoffrey Garen  <ggaren@apple.com>
3055
3056         Reviewed by Oliver Hunt.
3057         
3058         Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
3059
3060         The problem was refCount underflow in NamedAttrMap.
3061         
3062         Neither our regression tests nor the stress test have yet discovered
3063         another instance of this problem.
3064
3065         * dom/NamedAttrMap.cpp:
3066         (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
3067         for fast and correct refCount management. Also, change a rediculously
3068         slow malloc to a slightly less rediculously slow realloc.
3069
3070         * dom/NamedAttrMap.h:
3071         (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
3072         for fast and correct refCount management.
3073
3074         * html/HTMLTokenizer.cpp:
3075         (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
3076         object starts with a refCount of 1.
3077
3078 2008-02-06  Darin Adler  <darin@apple.com>
3079
3080         Reviewed by Tim Hatcher.
3081
3082         - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
3083           with View Source window as target
3084
3085         * page/InspectorController.cpp:
3086         (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
3087         JavaScript disabled.
3088         (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
3089         it returns false.
3090
3091 2008-02-06  David Hyatt  <hyatt@apple.com>
3092
3093         Fix for bug 16799, object elements should return absolute URLs from .data.
3094
3095         Reviewed by Mark Rowe
3096
3097         * dom/Document.cpp:
3098         (WebCore::Document::completeURL):
3099         * html/HTMLAnchorElement.cpp:
3100         (WebCore::HTMLAnchorElement::href):
3101         * html/HTMLObjectElement.cpp:
3102         (WebCore::HTMLObjectElement::data):
3103
3104 2008-02-05  Antti Koivisto  <antti@apple.com>
3105
3106         Reviewed by Darin.
3107
3108         <rdar://problem/5726340>
3109         <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
3110         
3111         When moving document in and out from the page cache:
3112         - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
3113         - Restart the load if it was aborted in the middle.
3114
3115         * html/HTMLMediaElement.cpp:
3116         (WebCore::HTMLMediaElement::~HTMLMediaElement):
3117         (WebCore::HTMLMediaElement::load):
3118         (WebCore::HTMLMediaElement::willSaveToCache):
3119         (WebCore::HTMLMediaElement::didRestoreFromCache):
3120         * html/HTMLMediaElement.h:
3121         (WebCore::HTMLMediaElement::player):
3122
3123 2008-02-06  Darin Adler  <darin@apple.com>
3124
3125         Reviewed by Sam.
3126
3127         - replace calls to put to set up properties with calls to putDirect, to
3128           prepare for a future change where put won't take attributes any more,
3129           and for a slight performance boost
3130
3131         * bindings/js/JSAudioConstructor.cpp:
3132         (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
3133         * bindings/js/JSEventTargetBase.h:
3134         (WebCore::JSEventTargetPrototype::self): Ditto.
3135         * bindings/js/JSHTMLOptionElementConstructor.cpp:
3136         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
3137         * bindings/js/JSSQLResultSetRowListCustom.cpp:
3138         (WebCore::JSSQLResultSetRowList::item): Ditto.
3139
3140 2008-02-06  Dan Bernstein  <mitz@apple.com>
3141
3142         Reviewed by Darin Adler.
3143
3144         - fix http://bugs.webkit.org/show_bug.cgi?17093
3145         'border-color' does not animate to the value of 'color' when unspecified
3146
3147         Test: fast/css/transition-color-unspecified.html
3148
3149         * page/AnimationController.cpp:
3150         (WebCore::ImplicitAnimation::animate): Changed to use the value of the
3151         'color' property in the source or destination style as the source or
3152         destination value of properties whose inital value is defined to be the
3153         computed value of 'color'.
3154
3155 2008-02-06  Dan Bernstein  <mitz@apple.com>
3156
3157         Build fix.
3158
3159         * svg/svgtags.in:
3160
3161 2008-02-05  Oliver Hunt  <oliver@apple.com>
3162
3163         Build fix -- touch generate-bindings to trigger regeneration of bindings
3164
3165         * bindings/scripts/generate-bindings.pl:
3166
3167 2008-02-05  Oliver Hunt  <oliver@apple.com>
3168
3169         RS=Eric.
3170
3171         Re-enable foreignObject by default as it is needed for a number of 
3172         non-fO related SVG tests and none of the old known crashes occur
3173         anymore.
3174
3175         * Configurations/WebCore.xcconfig:
3176         * WebCore.vcproj/WebCore.vcproj:
3177
3178 2008-02-05  Sam Weinig  <sam@webkit.org>
3179
3180         Reviewed by Anders Carlsson.
3181
3182         Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
3183         NodeList (and other DOM lists) items are not enumeratable using for..in
3184
3185         - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
3186           the array bracket, nodeList[0], notation) by including all the items in the
3187           list before the attributes and methods of the interface.
3188
3189         Test: fast/dom/domListEnumeration.html
3190
3191         * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
3192         * bindings/js/JSDOMWindowCustom.cpp:
3193         (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
3194         * bindings/js/JSHistoryCustom.cpp:
3195         (WebCore::JSHistory::customGetPropertyNames): ditto.
3196         * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
3197         getProperyNames and implementing the method in the Custom.cpp, move to a the 
3198         model used by generated getOwnPropertySlot() and put() where the custom code
3199         is written in a separate customGetPropertyNames which returns a bool indicating
3200         whether to call up to the base class.  This enables adding the list indexes
3201         to the PropertyNameArray for interfaces with indexGetters automatically.
3202
3203 2008-02-05  Samuel Weinig  <sam@webkit.org>
3204
3205         Reviewed by Darin Adler.
3206
3207         Fix for <rdar://problem/5726604> 
3208         dom-checker: deleting properties of the window object cross-domain should not be allowed
3209
3210         Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
3211
3212         Test: http/tests/security/cross-frame-access-delete.html
3213
3214         * bindings/js/JSDOMWindowCustom.cpp:
3215         (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
3216         * bindings/js/JSHistoryCustom.cpp:
3217         (WebCore::JSHistory::deleteProperty): ditto.
3218         * bindings/js/JSLocation.cpp:
3219         (WebCore::JSLocation::deleteProperty): ditto.
3220         * bindings/js/JSLocation.h:
3221
3222         * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
3223         * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
3224         * page/History.idl: ditto.
3225
3226 2008-02-05  Alp Toker  <alp@atoker.com>
3227
3228         Rubber-stamped by Mark Rowe.
3229
3230         Fix a "missing sentinel in function call" warning by using NULL
3231         instead of 0.
3232
3233         * platform/gtk/RenderThemeGtk.cpp:
3234         (WebCore::RenderThemeGtk::caretBlinkFrequency):
3235
3236 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
3237
3238         Reviewed by Oliver.
3239
3240         Fix dynamic updates of <circle> element's properties.
3241
3242         Added tests: svg/dynamic-updates/SVGCircleElement*
3243
3244         * svg/SVGCircleElement.cpp:
3245         (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
3246         * svg/SVGCircleElement.h:
3247
3248 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
3249
3250         Wx build fix.  Add WebCore/plugins to the include path.
3251
3252         * webcore-base.bkl:
3253
3254 2008-02-05  Mark Rowe  <mrowe@apple.com>
3255
3256         Mac build fix.  Update the Xcode project to follow a moved file,
3257         and track a rename in two files that were missed earlier.
3258
3259         * WebCore.xcodeproj/project.pbxproj:
3260         * page/mac/WebCoreFrameBridge.mm:
3261         (-[WebCoreFrameBridge canProvideDocumentSource]):
3262         * platform/mac/PlugInInfoStoreMac.mm:
3263         (WebCore::PluginInfoStore::pluginNameForMIMEType):
3264
3265 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
3266
3267         Reviewed by Holger.
3268
3269         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
3270         Fix dynamic SVG DOM updates of <a> element's href property.
3271
3272         This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
3273         Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
3274         one test per property per class. As a first pass it's sufficient to add testcases for all
3275         SVG*Element classes, and their properties - and only common-used base-class properties.
3276
3277         For SVGAElement - for example - it makes most sense to test scripting its parent
3278         SVGURIReference object ('href' property) and its own property 'target'.
3279
3280         Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
3281         SVGExternalResourcesRequired interface, should really be done in a second pass.
3282
3283         All tests within the new framework are supposed to be created using make-js-tests-wrappers.
3284
3285         Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
3286         Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
3287         Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
3288         Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
3289
3290         * svg/SVGAElement.cpp:
3291         (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
3292         (WebCore::SVGAElement::svgAttributeChanged):
3293         (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
3294         * svg/SVGAElement.h:
3295
3296 2008-02-05  Justin Garcia  <justin.garcia@apple.com>
3297
3298         Reviewed by Alexey Proskuryakov.
3299
3300         <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
3301
3302         * editing/CompositeEditCommand.cpp:
3303         (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
3304         when the editing code actively looked for <br>s of that type in order to handle them
3305         specially.  That is no longer the case.
3306         * editing/InsertParagraphSeparatorCommand.cpp:
3307         (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
3308         would be inserted when hitting return inside an editable root held open by a placeholder
3309         <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
3310         triggered to cause the bug. 
3311
3312 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
3313
3314         Reviewed by Anders Carlsson.
3315
3316         Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
3317         Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
3318
3319         Remove the Win suffix on several plugin-related classes that will
3320         soon be refactored to be more portable.
3321
3322         * WebCore.vcproj/WebCore.vcproj:
3323         * bindings/js/kjs_navigator.cpp:
3324         (KJS::PluginBase::cachePluginDataIfNecessary):
3325         * bindings/js/kjs_window.cpp:
3326         * bridge/win/FrameWin.cpp:
3327         (WebCore::Frame::createScriptInstanceForWidget):
3328         * dom/Clipboard.cpp:
3329         * dom/DOMImplementation.cpp:
3330         (WebCore::DOMImplementation::createDocument):
3331         * loader/FrameLoader.cpp:
3332         (WebCore::FrameLoader::shouldUsePlugin):
3333         * page/DragController.cpp:
3334         * platform/PlugInInfoStore.h: Removed.
3335         * platform/gtk/TemporaryLinkStubs.cpp:
3336         (PluginInfoStore::createPluginInfoForPluginAtIndex):
3337         (PluginInfoStore::pluginCount):
3338         (PluginInfoStore::pluginNameForMIMEType):
3339         (WebCore::PluginInfoStore::supportsMIMEType):
3340         * platform/qt/PlugInInfoStoreQt.cpp:
3341         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
3342         (WebCore::PluginInfoStore::pluginCount):
3343         (WebCore::PluginInfoStore::pluginNameForMIMEType):
3344         (WebCore::PluginInfoStore::supportsMIMEType):
3345         * platform/qt/TemporaryLinkStubs.cpp:
3346         * platform/win/SharedTimerWin.cpp:
3347         (WebCore::TimerWindowWndProc):
3348         * platform/wx/TemporaryLinkStubs.cpp:
3349         (PluginInfoStore::createPluginInfoForPluginAtIndex):
3350         (PluginInfoStore::pluginCount):
3351         (WebCore::PluginInfoStore::supportsMIMEType):
3352         (PluginInfoStore::pluginNameForMIMEType):
3353         * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
3354         * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
3355         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
3356         (WebCore::PluginInfoStore::pluginCount):
3357         (WebCore::PluginInfoStore::pluginNameForMIMEType):
3358         (WebCore::PluginInfoStore::supportsMIMEType):
3359         (WebCore::refreshPlugins):
3360         * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
3361         * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
3362         (WebCore::PluginPackageHash::hash):
3363         (WebCore::PluginPackageHash::equal):
3364         (WTF::):
3365         * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
3366         (WebCore::PluginView::plugin):
3367         * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
3368         (pluginViewForInstance):
3369         (NPN_UserAgent):
3370         * plugins/win/PlugInInfoStoreWin.cpp: Removed.
3371         * plugins/win/PluginDatabaseWin.cpp:
3372         (WebCore::PluginDatabase::installedPlugins):
3373         (WebCore::PluginDatabase::addExtraPluginPath):
3374         (WebCore::PluginDatabase::refresh):
3375         (WebCore::PluginDatabase::plugins):
3376         (WebCore::addPluginsFromRegistry):
3377         (WebCore::PluginDatabase::getPluginsInPaths):
3378         (WebCore::PluginDatabase::defaultPluginPaths):
3379         (WebCore::PluginDatabase::isMIMETypeRegistered):
3380         (WebCore::PluginDatabase::pluginForMIMEType):
3381         (WebCore::PluginDatabase::MIMETypeForExtension):
3382         (WebCore::PluginDatabase::findPlugin):
3383         (WebCore::PluginDatabase::createPluginView):
3384         * plugins/win/PluginDatabaseWin.h: Removed.
3385         * plugins/win/PluginPackageWin.cpp:
3386         (WebCore::PluginPackage::~PluginPackage):
3387         (WebCore::PluginPackage::freeLibrarySoon):
3388         (WebCore::PluginPackage::freeLibraryTimerFired):
3389         (WebCore::PluginPackage::PluginPackage):
3390         (WebCore::PluginPackage::compareFileVersion):
3391         (WebCore::PluginPackage::storeFileVersion):
3392         (WebCore::PluginPackage::isPluginBlacklisted):
3393         (WebCore::PluginPackage::fetchInfo):
3394         (WebCore::PluginPackage::load):
3395         (WebCore::PluginPackage::unload):
3396         (WebCore::PluginPackage::unloadWithoutShutdown):
3397         (WebCore::PluginPackage::createPackage):
3398         (WebCore::PluginPackage::hash):
3399         (WebCore::PluginPackage::equal):
3400         * plugins/win/PluginPackageWin.h: Removed.
3401         * plugins/win/PluginViewWin.cpp:
3402         (WebCore::PluginRequest::PluginRequest):
3403         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
3404         (WebCore::registerPluginView):
3405         (WebCore::PluginViewWndProc):
3406         (WebCore::PluginView::popPopupsStateTimerFired):
3407         (WebCore::PluginView::wndProc):
3408         (WebCore::PluginView::updateWindow):
3409         (WebCore::PluginView::windowClipRect):
3410         (WebCore::PluginView::setFrameGeometry):
3411         (WebCore::PluginView::geometryChanged):
3412         (WebCore::PluginView::setFocus):
3413         (WebCore::PluginView::show):
3414         (WebCore::PluginView::hide):
3415         (WebCore::PluginView::paintMissingPluginIcon):
3416         (WebCore::PluginView::dispatchNPEvent):
3417         (WebCore::PluginView::paint):
3418         (WebCore::PluginView::handleKeyboardEvent):
3419         (WebCore::PluginView::handleMouseEvent):
3420         (WebCore::PluginView::handleEvent):
3421         (WebCore::PluginView::setParent):
3422         (WebCore::PluginView::attachToWindow):
3423         (WebCore::PluginView::detachFromWindow):
3424         (WebCore::PluginView::setNPWindowRect):
3425         (WebCore::PluginView::start):
3426         (WebCore::PluginView::stop):
3427         (WebCore::PluginView::setCurrentPluginView):
3428         (WebCore::PluginView::currentPluginView):
3429         (WebCore::PluginView::performRequest):
3430         (WebCore::PluginView::requestTimerFired):
3431         (WebCore::PluginView::scheduleRequest):
3432         (WebCore::PluginView::load):
3433         (WebCore::PluginView::getURLNotify):
3434         (WebCore::PluginView::getURL):
3435         (WebCore::PluginView::handlePost):
3436         (WebCore::PluginView::postURLNotify):
3437         (WebCore::PluginView::postURL):
3438         (WebCore::PluginView::newStream):
3439         (WebCore::PluginView::write):
3440         (WebCore::PluginView::destroyStream):
3441         (WebCore::PluginView::userAgent):
3442         (WebCore::PluginView::status):
3443         (WebCore::PluginView::getValue):
3444         (WebCore::PluginView::setValue):
3445         (WebCore::PluginView::invalidateTimerFired):
3446         (WebCore::PluginView::invalidateRect):
3447         (WebCore::PluginView::invalidateRegion):
3448         (WebCore::PluginView::forceRedraw):
3449         (WebCore::PluginView::pushPopupsEnabledState):
3450         (WebCore::PluginView::popPopupsEnabledState):
3451         (WebCore::PluginView::arePopupsAllowed):
3452         (WebCore::PluginView::bindingInstance):
3453         (WebCore::PluginView::~PluginView):
3454         (WebCore::PluginView::disconnectStream):
3455         (WebCore::PluginView::determineQuirks):
3456         (WebCore::PluginView::setParameters):
3457         (WebCore::PluginView::PluginView):
3458         (WebCore::PluginView::init):
3459         (WebCore::PluginView::didReceiveResponse):
3460         (WebCore::PluginView::didReceiveData):
3461         (WebCore::PluginView::didFinishLoading):
3462         (WebCore::PluginView::didFail):
3463         (WebCore::PluginView::setCallingPlugin):
3464         (WebCore::PluginView::isCallingPlugin):
3465         * plugins/win/PluginViewWin.h: Removed.
3466         * plugins/win/npapi.cpp: Removed.
3467
3468 2008-02-05  Alexey Proskuryakov  <ap@webkit.org>
3469
3470         Reviewed by Darin.
3471
3472         http://bugs.webkit.org/show_bug.cgi?id=17158
3473         Setting innerHTML in a detached XHTML element doesn't use the right namespace
3474
3475         Test: fast/dom/innerHTML-detached-element.xhtml
3476
3477         * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
3478         into account.
3479
3480 2008-02-05  Antti Koivisto  <antti@apple.com>
3481
3482         Reviewed by Geoff.
3483         
3484         Fix <rdar://problem/5698200>
3485         eBay photo uploading hangs and causes slow script warning to pop up
3486         
3487         In a case like this
3488         
3489             var f = window.parent.parentFunction;
3490             document.domain = document.domain; // this makes window.parent inaccessible
3491             f();
3492         
3493         Firefox allows parentFunction to access parents properties. Match this behavior.
3494         
3495         In a domain security check against the dynamic global object fails for the specific reason that one of 
3496         the frames has written to the document.domain property and another has not (but they match otherwise), 
3497         then recheck against the lexical global object.
3498
3499         Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
3500               http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
3501
3502         * bindings/js/kjs_window.cpp:
3503         (KJS::Window::allowsAccessFrom):
3504         (KJS::Window::printErrorMessage):
3505         * bindings/js/kjs_window.h:
3506         * loader/FrameLoader.cpp:
3507         (WebCore::FrameLoader::shouldAllowNavigation):
3508         * platform/SecurityOrigin.cpp:
3509         (WebCore::SecurityOrigin::canAccess):
3510         * platform/SecurityOrigin.h:
3511         (WebCore::SecurityOrigin::):
3512
3513 2008-02-05  Adam Roben  <aroben@apple.com>
3514
3515         Remove an unused member from Document
3516
3517         Reviewed by Mitz.
3518
3519         * dom/Document.cpp:
3520         (WebCore::Document::recalcStyleSelector): There's no need to take
3521         m_printSheet into account anymore as it's never anything but the null
3522         string.
3523         * dom/Document.h: Removed m_printSheet and methods relating to it.
3524
3525 2008-02-05  Dan Bernstein  <mitz@apple.com>
3526
3527         Reviewed by Darin Adler.
3528
3529         - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
3530
3531         * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
3532         Frame::baseWritingDirectionForSelectionStart().
3533         * page/mac/WebCoreFrameBridge.h: Removed
3534         -baseWritingDirectionForSelectionStart.
3535         * page/mac/WebCoreFrameBridge.mm: Ditto.
3536
3537 2008-02-05  Mark Rowe  <mrowe@apple.com>
3538
3539         Reviewed by Oliver Hunt.
3540
3541         Update versioning to support the mysterious future.
3542
3543         * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
3544
3545 2008-02-05  Mark Rowe  <mrowe@apple.com>
3546
3547         Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
3548
3549         * editing/SmartReplaceICU.cpp:
3550         (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
3551         (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
3552