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