861adcb2f40db4f1ea22ee42037d876ead5f6166
[WebKit-https.git] / WebCore / ChangeLog
1 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
2
3         Reviewed by Geoff Garen.
4
5         Move the remaining files in the kjs subdirectory of JavaScriptCore to
6         a new parser subdirectory, and remove the kjs subdirectory entirely.
7
8         * ForwardingHeaders/kjs: Removed.
9         * ForwardingHeaders/kjs/Parser.h: Removed.
10         * ForwardingHeaders/kjs/SavedBuiltins.h: Removed.
11         * ForwardingHeaders/kjs/SourceCode.h: Removed.
12         * ForwardingHeaders/kjs/SourceProvider.h: Removed.
13         * ForwardingHeaders/parser: Added.
14         * ForwardingHeaders/parser/Parser.h: Copied from ForwardingHeaders/kjs/Parser.h.
15         * ForwardingHeaders/parser/SourceCode.h: Copied from ForwardingHeaders/kjs/SourceCode.h.
16         * ForwardingHeaders/parser/SourceProvider.h: Copied from ForwardingHeaders/kjs/SourceProvider.h.
17         * WebCore.pro:
18         * WebCore.vcproj/WebCore.vcproj:
19         * bindings/js/StringSourceProvider.h:
20         * bindings/js/WorkerScriptController.cpp:
21         * bridge/NP_jsobject.cpp:
22         * bridge/jni/jni_jsobject.mm:
23         * bridge/testbindings.pro:
24         * inspector/JavaScriptDebugServer.cpp:
25
26 2008-11-06  David Kilzer  <ddkilzer@apple.com>
27
28         BUILD WAS NOT BROKEN: Rolling r38189 back in.
29
30         Please perform a clean build if you see crashes.
31
32 2008-11-06  David Kilzer  <ddkilzer@apple.com>
33
34         BUILD FIX: Backed out r38189 since it apparently broke the world.
35
36 2008-11-06  Chris Fleizach  <cfleizach@apple.com>
37
38         Reviewed by Beth Dakin.
39
40         Bug 22112: if a <body> has contenteditable=true, it should report a writable AXValue
41         https://bugs.webkit.org/show_bug.cgi?id=22112
42
43         Test: accessibility/content-editable.html
44
45         * page/AccessibilityRenderObject.cpp:
46         (WebCore::AccessibilityRenderObject::isReadOnly):
47
48 2008-11-06  Sam Weinig  <sam@webkit.org>
49
50         Reviewed by Alice Liu.
51
52         Fix failed assert at launch caused by unintialized data member on the mac.
53
54         * platform/network/mac/NetworkStateNotifierMac.cpp:
55         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
56
57 2008-11-06  Steve Falkenburg  <sfalken@apple.com>
58
59         Fix failed assert at launch caused by unintialized data member.
60         
61         Reviewed by Maciej Stachowiak.
62
63         * platform/network/win/NetworkStateNotifierWin.cpp:
64         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
65
66 2008-11-06  Simon Fraser  <simon.fraser@apple.com>
67
68         Reviewed by Antti Koivisto
69
70         https://bugs.webkit.org/show_bug.cgi?id=22109
71         Make <input type="range"> work correctly with transforms
72
73         Test: fast/forms/slider-transformed.html
74
75         * html/HTMLInputElement.cpp:
76         (WebCore::HTMLInputElement::defaultEventHandler):
77             Compute a correct local point when the event is retargeted
78         * rendering/RenderSlider.cpp:
79         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
80             Compute m_initialClickPoint in slider-local coords, so that
81             deltas are computed correctly with transforms
82         (WebCore::RenderSlider::mouseEventIsInThumb):
83             Rather than computing an absolute bounds for the thumb,
84             convert the point to local coords and compare it with the border box.
85
86 2008-11-06  Greg Bolsinga  <bolsinga@apple.com>
87
88         Reviewed by Darin Adler.
89
90         Bug 21810: Remove use of static C++ objects that are destroyed at exit time (destructors)
91         https://bugs.webkit.org/show_bug.cgi?id=21810
92
93         * bindings/js/GCController.cpp:
94         (WebCore::gcController): Changed to leak an object to avoid an exit-time destructor.
95         * bindings/js/JSDOMBinding.cpp:
96         (WebCore::wrapperSet): Ditto
97         * bindings/js/JSInspectedObjectWrapper.cpp:
98         (WebCore::wrappers): Ditto
99         * bindings/js/JSInspectorCallbackWrapper.cpp:
100         (WebCore::wrappers): Ditto
101         * bridge/runtime_root.cpp:
102         (JSC::Bindings::rootObjectSet): Ditto
103         * css/CSSMutableStyleDeclaration.cpp:
104         (WebCore::CSSMutableStyleDeclaration::removeProperty): Ditto
105         * css/CSSPrimitiveValue.cpp:
106         (WebCore::CSSPrimitiveValue::cssText): Ditto
107         * css/CSSSelector.cpp:
108         (WebCore::CSSSelector::extractPseudoType): Ditto
109         * css/CSSStyleSelector.cpp:
110         (WebCore::screenEval): Ditto
111         (WebCore::printEval): Ditto
112         * dom/DOMImplementation.cpp:
113         (WebCore::isSVG10Feature): Ditto
114         (WebCore::isSVG11Feature): Ditto
115         (WebCore::DOMImplementation::isXMLMIMEType): Ditto
116         * dom/Document.cpp:
117         (WebCore::Document::hasPrefixNamespaceMismatch): Ditto
118         * dom/ScriptElement.cpp:
119         (WebCore::isSupportedJavaScriptLanguage): Ditto
120         * editing/ApplyStyleCommand.cpp:
121         (WebCore::styleSpanClassString): Ditto
122         * editing/HTMLInterchange.cpp:
123         (WebCore::): Ditto
124         * editing/IndentOutdentCommand.cpp:
125         (WebCore::indentBlockquoteString): Ditto
126         * editing/ReplaceSelectionCommand.cpp:
127         (WebCore::isInterchangeNewlineNode): Ditto
128         (WebCore::isInterchangeConvertedSpaceSpan): Ditto
129         * editing/htmlediting.cpp:
130         (WebCore::stringWithRebalancedWhitespace): Ditto
131         (WebCore::nonBreakingSpaceString): Ditto
132         * editing/markup.cpp:
133         (WebCore::appendAttributeValue): Ditto
134         (WebCore::appendEscapedContent): Ditto
135         (WebCore::shouldAddNamespaceAttr): Ditto
136         (WebCore::appendNamespace): Ditto
137         (WebCore::appendStartMarkup): Ditto
138         (WebCore::createMarkup): Ditto
139         * html/HTMLButtonElement.cpp:
140         (WebCore::HTMLButtonElement::type): Ditto
141         * html/HTMLElement.cpp:
142         (WebCore::HTMLElement::isRecognizedTagName): Ditto
143         (WebCore::inlineTagList): Ditto
144         (WebCore::blockTagList): Ditto
145         * html/HTMLFieldSetElement.cpp:
146         (WebCore::HTMLFieldSetElement::type): Ditto
147         * html/HTMLInputElement.cpp:
148         (WebCore::HTMLInputElement::type): Ditto
149         * html/HTMLKeygenElement.cpp:
150         (WebCore::HTMLKeygenElement::type): Ditto
151         * html/HTMLLegendElement.cpp:
152         (WebCore::HTMLLegendElement::type): Ditto
153         * html/HTMLOptGroupElement.cpp:
154         (WebCore::HTMLOptGroupElement::type): Ditto
155         * html/HTMLOptionElement.cpp:
156         (WebCore::HTMLOptionElement::type): Ditto
157         * html/HTMLParser.cpp:
158         (WebCore::HTMLParser::getNode): Ditto
159         (WebCore::HTMLParser::isHeaderTag): Ditto
160         (WebCore::HTMLParser::isResidualStyleTag): Ditto
161         (WebCore::HTMLParser::isAffectedByResidualStyle): Ditto
162         * html/HTMLSelectElement.cpp:
163         (WebCore::HTMLSelectElement::type): Ditto
164         * html/HTMLTextAreaElement.cpp:
165         (WebCore::HTMLTextAreaElement::type): Ditto
166         * inspector/InspectorController.cpp:
167         (WebCore::platform): Ditto
168         * inspector/JavaScriptDebugServer.cpp:
169         (WebCore::JavaScriptDebugServer::shared): Ditto
170         * inspector/JavaScriptProfile.cpp:
171         (WebCore::profileCache): Ditto
172         * inspector/JavaScriptProfileNode.cpp:
173         (WebCore::profileNodeCache): Ditto
174         * loader/FrameLoader.cpp:
175         (WebCore::localSchemes): Ditto
176         * loader/appcache/ApplicationCacheStorage.cpp:
177         (WebCore::cacheStorage): Ditto
178         * loader/archive/ArchiveFactory.cpp:
179         (WebCore::archiveMIMETypes): Ditto
180         * loader/icon/IconDatabase.cpp:
181         (WebCore::IconDatabase::defaultDatabaseFilename): Ditto
182         * page/EventHandler.cpp:
183         (WebCore::EventHandler::dragState): Ditto
184         * page/Frame.cpp:
185         (WebCore::createRegExpForLabels): Ditto
186         (WebCore::keepAliveSet): Ditto
187         * page/Page.cpp:
188         (WebCore::Page::groupName): Ditto
189         * page/SecurityOrigin.cpp:
190         (WebCore::isDefaultPortForProtocol): Ditto
191         (WebCore::SecurityOrigin::databaseIdentifier): Ditto
192         * page/mac/FrameMac.mm:
193         (WebCore::regExpForLabels): Ditto
194         * platform/KURL.cpp:
195         (WebCore::blankURL): Ditto
196         * platform/graphics/FontCache.cpp:
197         (WebCore::alternateFamilyName): Ditto
198         * platform/graphics/mac/FontCacheMac.mm:
199         (WebCore::FontCache::getSimilarFontPlatformData): Ditto
200         (WebCore::FontCache::getLastResortFallbackFont): Ditto
201         * platform/mac/ScrollbarThemeMac.mm:
202         (WebCore::ScrollbarTheme::nativeTheme): Ditto
203         * platform/mac/ThemeMac.mm:
204         (WebCore::platformTheme): Ditto
205         * platform/mac/ThreadCheck.mm:
206         (WebCoreReportThreadViolation): Ditto
207         * platform/network/NetworkStateNotifier.cpp:
208         (WebCore::networkStateNotifier): Ditto
209         * platform/network/mac/FormDataStreamMac.mm:
210         (WebCore::getStreamFormDataMap): Ditto
211         (WebCore::getStreamResourceHandleMap): Ditto
212         * platform/network/mac/ResourceResponseMac.mm:
213         (WebCore::ResourceResponse::platformLazyInit): Ditto
214         * platform/text/TextEncoding.cpp:
215         (WebCore::TextEncoding::isJapanese): Ditto
216         * rendering/RenderBlock.cpp:
217         (WebCore::continuationOutlineTable): Ditto
218         * rendering/RenderCounter.cpp:
219         (WebCore::counterMaps): Ditto
220         * rendering/RenderFlexibleBox.cpp:
221         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto
222         * rendering/RenderListItem.cpp:
223         (WebCore::RenderListItem::markerText): Ditto
224         * rendering/RenderScrollbarTheme.cpp:
225         (WebCore::RenderScrollbarTheme::renderScrollbarTheme): Ditto
226         * rendering/RenderThemeMac.mm:
227         (WebCore::RenderThemeMac::systemFont): Ditto
228         * rendering/bidi.cpp:
229         (WebCore::RenderBlock::checkLinesForTextOverflow): Ditto
230         * rendering/style/RenderStyle.cpp:
231         (WebCore::RenderStyle::initialDashboardRegions): Ditto
232         (WebCore::RenderStyle::noneDashboardRegions): Ditto
233         * storage/LocalStorage.cpp:
234         (WebCore::localStorageMap): Ditto
235         * svg/SVGAnimateMotionElement.cpp:
236         (WebCore::SVGAnimateMotionElement::rotateMode): Ditto
237         * svg/SVGAnimationElement.cpp:
238         (WebCore::SVGAnimationElement::calcMode): Ditto
239         (WebCore::SVGAnimationElement::attributeType): Ditto
240         (WebCore::SVGAnimationElement::isAdditive): Ditto
241         (WebCore::SVGAnimationElement::isAccumulated): Ditto
242         * svg/SVGLangSpace.cpp:
243         (WebCore::SVGLangSpace::xmlspace): Ditto
244         * svg/SVGSVGElement.cpp:
245         (WebCore::SVGSVGElement::contentScriptType): Ditto
246         (WebCore::SVGSVGElement::contentStyleType): Ditto
247         * svg/SVGStyleElement.cpp:
248         (WebCore::SVGStyleElement::type): Ditto
249         (WebCore::SVGStyleElement::media): Ditto
250         * svg/SVGTextContentElement.cpp:
251         (WebCore::SVGTextContentElement::parseMappedAttribute): Ditto
252         * svg/animation/SVGSMILElement.cpp:
253         (WebCore::SVGSMILElement::parseClockValue): Ditto
254         (WebCore::SVGSMILElement::restart): Ditto
255         (WebCore::SVGSMILElement::fill): Ditto
256         (WebCore::SVGSMILElement::repeatCount): Ditto
257         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged): Ditto
258         * svg/graphics/SVGResource.cpp:
259         (WebCore::clientMap): Ditto
260         * svg/graphics/SVGResourceMarker.cpp:
261         (WebCore::SVGResourceMarker::draw): Ditto
262         * xml/XMLHttpRequest.cpp:
263         (WebCore::preflightResultCache): Ditto
264         (WebCore::isSafeRequestHeader): Ditto
265         (WebCore::isOnAccessControlResponseHeaderWhitelist): Ditto
266         * xml/XPathExpressionNode.cpp:
267         (WebCore::XPath::Expression::evaluationContext): Ditto
268         * xml/XPathParser.cpp:
269         (WebCore::XPath::isAxisName): Ditto
270         (WebCore::XPath::isNodeTypeName): Ditto
271         * xml/XPathValue.cpp:
272         (WebCore::XPath::Value::toNodeSet): Ditto
273
274 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
275
276         Rubber-stamped by Simon Hausmann.
277
278         Remove a bunch of unused methods in the Qt media element implementation
279
280         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
281         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
282         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
283
284 2008-11-05  Simon Fraser  <simon.fraser@apple.com>
285
286         Reviewed by Dave Hyatt
287
288         https://bugs.webkit.org/show_bug.cgi?id=21870
289         
290         Implement absoluteToLocal() to convert a point from absolute
291         to local coordinates, optionally taking transforms into account.
292         
293         Use this to set offsetX/offsetY in mouse events, thus fixing
294         offsetX/offsetY in events on elements with transforms.
295
296         Test: fast/events/offsetX-offsetY.html
297
298         * dom/MouseRelatedEvent.cpp:
299         (WebCore::MouseRelatedEvent::receivedTarget):
300         * rendering/RenderBox.cpp:
301         (WebCore::RenderBox::localToAbsolute):
302         (WebCore::RenderBox::absoluteToLocal):
303         (WebCore::RenderBox::offsetFromContainer):
304         * rendering/RenderBox.h:
305         * rendering/RenderObject.cpp:
306         (WebCore::RenderObject::absoluteToLocal):
307         * rendering/RenderObject.h:
308         * rendering/RenderTableCell.cpp:
309         (WebCore::RenderTableCell::localToAbsolute):
310         (WebCore::RenderTableCell::absoluteToLocal):
311         * rendering/RenderTableCell.h:
312         * rendering/RenderView.cpp:
313         (WebCore::RenderView::absoluteToLocal):
314         * rendering/RenderView.h:
315
316 2008-11-06  Alp Toker  <alp@nuanti.com>
317
318         Reviewed by Cameron Zwarich.
319
320         https://bugs.webkit.org/show_bug.cgi?id=22067
321         [GTK] Sun Java plugin segfaults at PluginPackage::createPackage()
322
323         null-check symbols loaded from plugin modules, initialize the function
324         table (like Win already does) and update it with the latest
325         additions. Adjust whitespace for easy diff'ing with the Win port code
326         from which it was forked.
327
328         This fixes crashes with libnspr4.so and any other plugins that don't
329         provide the symbols we expect.
330
331         * plugins/gtk/PluginPackageGtk.cpp:
332         (WebCore::PluginPackage::fetchInfo):
333         (WebCore::PluginPackage::load):
334
335 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
336
337         Reviewed by Simon Hausmann.
338
339         Removed dead (and broken) code from an ancient Symbian port.
340
341         * config.h:
342         * platform/text/AtomicString.h:
343         * platform/text/PlatformString.h:
344
345 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
346
347         Reviewed by Simon Hausmann.
348
349         Use QLibrary as PlatformModule when compiling with Qt for S60.
350
351         * platform/FileSystem.h:
352
353 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
354
355         Reviewed by Simon Hausmann.
356
357         Compile fix for Symbian.
358         The snprintf function is defined in stdio.h, the inclusion
359         of snprintf.h inside this PLATFORM(SYMBIAN) block does not
360         compile.
361
362         * config.h:
363
364 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
365
366         Reviewed by Simon Hausmann.
367
368         Disable webkit plugins for Symbian.
369
370         * WebCore.pro:
371
372 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
373
374         Fix build break in debug mode when XSLT is not enabled
375
376         * loader/Cache.cpp:
377         (WebCore::Cache::dumpStats):
378
379 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
380
381         Reviewed by Simon Hausmann.
382
383         Repaint video on UpdateRequest to prevent recursive painting
384
385         Calling QWidget::render() to update the video generates a paint
386         event that's then picked up by the event filter once more :(
387
388         We're really only interested in updates from Phonon, which we
389         get through the UpdateRequest for each new frame.
390
391         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
392         (WebCore::MediaPlayerPrivate::eventFilter):
393
394 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
395
396         Not reviewed.
397
398         Fix the WebCore build for some platforms by changing build scripts to
399         account for the recent move of the create_hash_table script from the kjs
400         subdirectory of JavaScriptCore to the root directory.
401
402         * WebCore.pro:
403         * make-generated-sources.sh:
404
405 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
406
407         Not reviewed.
408
409         Fix a case-sensitivity issue in Mac forwarding headers. Strangely
410         enough, this does not always cause the build to break, even with a
411         case-sensitive filesystem.
412
413         * ForwardingHeaders/runtime/Interpreter.h:
414
415 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
416
417         Reviewed by Maciej Stachowiak.
418
419         https://bugs.webkit.org/show_bug.cgi?id=22083
420         MessageEvents cannot be used across threads
421
422         * dom/Event.idl:
423         * dom/MessageEvent.idl:
424         Add a NoStaticTables attribute - MessageEvent is used in worker threads, so static tables
425         won't work.
426
427         * dom/MessagePort.cpp:
428         (WebCore::MessagePort::EventData::EventData):
429         (WebCore::MessagePort::EventData::~EventData):
430         (WebCore::MessagePort::clone):
431         (WebCore::MessagePort::postMessage):
432         (WebCore::MessagePort::startConversation):
433         (WebCore::MessagePort::dispatchMessages):
434         * dom/MessagePort.h:
435         Don't create a MessageEvent until dispatch time - messages can be posted across threads,
436         but MessageEvents are tied to the thread that they were created in.
437
438 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
439
440         Reviewed by Darin Adler.
441
442         https://bugs.webkit.org/show_bug.cgi?id=22066
443         Implement Worker global object
444
445         * DerivedSources.make: Added WorkerLocation IDL and JSWorkerContext lookup table.
446
447         * WebCore.xcodeproj/project.pbxproj: Only adding files to Mac project for now, as Worker
448         support is still disabled by default.
449
450         * bindings/js/JSDOMGlobalObject.cpp: (WebCore::toJSDOMGlobalObject): Implemented Worker case.
451
452         * bindings/js/JSMessageChannelConstructor.cpp:
453         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): Ditto.
454
455         * bindings/js/JSWorkerContext.cpp: Added.
456         * bindings/js/JSWorkerContext.h: Added.
457         * bindings/js/WorkerScriptController.cpp: Added.
458         * bindings/js/WorkerScriptController.h: Added.
459         * dom/WorkerContext.cpp: Added.
460         * dom/WorkerContext.h: Added.
461         Added an implementation of worker contexts.
462
463         * dom/DedicatedWorker.cpp:
464         (WebCore::DedicatedWorker::startLoad): Fixed a lifetime bug I saw on my tests.
465         (WebCore::DedicatedWorker::notifyFinished): Create a thread. Currently, object ownership
466         and lifetime is not clear at all.
467
468         * dom/WorkerLocation.cpp: Added.
469         * dom/WorkerLocation.h: Added.
470         * dom/WorkerLocation.idl: Added.
471         Added WorkerLocation, which is one of the objects available to workers.
472
473         * dom/WorkerThread.cpp: Added.
474         (WebCore::WorkerThread::WorkerThread):
475         (WebCore::WorkerThread::start):
476         (WebCore::WorkerThread::workerThreadStart):
477         (WebCore::WorkerThread::workerThread):
478         * dom/WorkerThread.h: Added.
479         (WebCore::WorkerThread::create):
480         Run some code in a worker thread (no message loop yet).
481
482 2008-11-05  Antti Koivisto  <antti@apple.com>
483
484         Reviewed by Dan Bernstein.
485         
486         https://bugs.webkit.org/show_bug.cgi?id=22093
487         Don't keep decoded stylesheet data in cache
488         
489         <rdar://problem/6343588>
490
491         Don't keep decoded stylesheet string around in the cache. There are no sharing benefits and
492         performance benefits are negligible (no measured PLT impact). Reduces memory consumption of
493         style sheet data in cache by 2/3 in common case.  
494
495         * loader/CachedCSSStyleSheet.cpp:
496         (WebCore::CachedCSSStyleSheet::sheetText):
497         (WebCore::CachedCSSStyleSheet::data):
498         * loader/CachedCSSStyleSheet.h:
499
500 2008-11-05  David Kilzer  <ddkilzer@apple.com>
501
502         Bug 21596: WebCore::Cache should use parsed Pragma and Cache-Control headers
503
504         <https://bugs.webkit.org/show_bug.cgi?id=21596>
505
506         Reviewed by Antti.
507
508         This patch adds real parsing for Pragma and Cache-Control headers
509         based on RFC 2616, Sections 2, 14.9 and 14.32.  It also adds some
510         new String and StringImpl methods to assist with the parsing.
511
512         * loader/Cache.cpp:
513         (WebCore::Cache::dumpStats): Added.  Convenience method for dumping
514         stats outside of Safari.
515         * loader/Cache.h: Declared dumpStats().
516
517         * loader/CachedResource.cpp:
518         (WebCore::CachedResource::mustRevalidate): Updated to use
519         ResourceResponseBase::cacheControlDirectives() instead of substring
520         matching of the entire Cache-Control header.
521
522         * loader/loader.cpp:
523         (WebCore::Loader::Host::didReceiveResponse): Used the local
524         'resource' variable instead of 'request->cachedResource()'.
525
526         * platform/network/ResourceResponseBase.cpp:
527         (WebCore::ResourceResponseBase::setHTTPHeaderField): Set
528         m_haveParsedCacheControlHeader to false when a "Cache-Control"
529         header is set.  Ditto for m_haveParsedPragmaHeader and "Pragma".
530         (WebCore::ResourceResponseBase::parsePragmaDirectives): Added.
531         Provides parsed Pragma header directives.
532         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Added.
533         Provides parsed Cache-Control header directives.
534         (WebCore::isCacheHeaderSeparator): Added.  Returns true if a
535         character is a separator character per RFC 2616, Section 2.2, else
536         returns false.
537         (WebCore::isControlCharacter): Added.  Returns true if a character
538         is a control character per RFC 2616 Section 2.2, else returns false.
539         (WebCore::trimToNextSeparator): Added.  Returns a string truncated
540         at the first separator character per isCacheHeaderSeparator().
541         (WebCore::parseCacheHeader): Added.  This is the main parsing
542         routine for both Cache-Control and Pragma headers.
543         (WebCore::parseCacheControlDirectiveValues): Added.  This splits
544         certain Cache-Control directive values into a vector of strings.
545         * platform/network/ResourceResponseBase.h:
546         (WebCore::CacheControlDirectiveMap): Added.  Typedef for a parsed
547         Cache-Control header.
548         (WebCore::PragmaDirectiveMap): Added.  Typedef for a parsed Pragma
549         header.
550         (WebCore::ResourceResponseBase::parsePragmaDirectives): Added
551         declaration.
552         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Ditto.
553         (WebCore::ResourceResponseBase::m_haveParsedCacheControlHeader):
554         Added.  Boolean to describe when the "Cache-Control" header needs to
555         be reparsed.
556         (WebCore::ResourceResponseBase::m_haveParsedPragmaHeader):  Added.
557         Boolean to describe when the "Pragma" header needs to be reparsed.
558         (WebCore::ResourceResponseBase::m_cacheControlDirectiveMap): Added.
559         Cached map to hold parsed "Cache-Control" headers.
560         (WebCore::ResourceResponseBase::m_pragmaDirectiveMap): Added.
561         Cached map to hold parsed "Pragma" headers.
562
563         * platform/text/PlatformString.h:
564         (WebCore::String::find): Added.  Returns the first match based on
565         the character-matching function pointer passed in.
566         (WebCore::String::removeCharacters): Added declaration.
567         (WebCore::find): Added.  Inline method that takes a character-
568         matching function pointer.  Called by StringImpl::find().
569         * platform/text/String.cpp:
570         (WebCore::String::removeCharacters): Added.  Calls
571         StringImpl::removeCharacters().
572         * platform/text/StringImpl.cpp:
573         (WebCore::StringImpl::removeCharacters): Added.  Returns a string
574         with all characters removed that match the character-matching
575         function pointer passed in.  If there is no change to the string, it
576         returns itself.  Based heavily on StringImpl::simplifyWhitespace().
577         (WebCore::StringImpl::find): Added.  Calls WebCore::find().
578         * platform/text/StringImpl.h:
579         (WebCore::FindMatchFunctionPtr): Added.  Typedef for a character-
580         matching function pointer.
581         (WebCore::StringImpl::removeCharacters): Added declaration.
582         (WebCore::StringImpl::find): Ditto.
583
584 2008-11-05  Justin Garcia  <justin.garcia@apple.com>
585
586         Reviewed by Beth Dakin.
587
588         <rdar://problem/5480736> In Mail and Gmail, copied indented text pastes with line break
589         
590         As a rule, we don't allow merges out of blockquotes.  In the bug, we are inserting a text node 
591         between two blockquotes.  Because the start merge moves the text node into a blockquote, when we
592         determine whether or not we should do the end merge, it incorrectly appears as though the end merge 
593         is merging out of a blockquote.  The fix is to determine whether or not we should do the end merge
594         before we do the start merge, so that the start merge doesn't effect our decision.
595
596         * editing/ReplaceSelectionCommand.cpp:
597         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): Initialize the new boolean.
598         (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Moved code from doApply() here for clarity.
599         (WebCore::ReplaceSelectionCommand::doApply): Set m_shouldMergeEnd before we do the start merge.
600         * editing/ReplaceSelectionCommand.h: Added m_shouldMergeEnd.
601
602 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
603
604         Not reviewed.
605
606         Speculatively fix the Windows build, even though these changes may not
607         actually matter for anything in the build, because the Windows bots are
608         behind.
609
610         * WebCore.vcproj/WebCore.vcproj:
611
612 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
613
614         Not reviewed.
615
616         Fix the Qt build.
617
618         * bridge/qt/qt_class.cpp:
619         * bridge/qt/qt_runtime.h:
620
621 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
622
623         Rubber-stamped by Sam Weinig.
624
625         Move more files to the runtime subdirectory of JavaScriptCore.
626
627         * ForwardingHeaders/kjs/collector.h: Removed.
628         * ForwardingHeaders/kjs/completion.h: Removed.
629         * ForwardingHeaders/kjs/identifier.h: Removed.
630         * ForwardingHeaders/kjs/interpreter.h: Removed.
631         * ForwardingHeaders/kjs/lookup.h: Removed.
632         * ForwardingHeaders/kjs/operations.h: Removed.
633         * ForwardingHeaders/kjs/protect.h: Removed.
634         * ForwardingHeaders/kjs/ustring.h: Removed.
635         * ForwardingHeaders/runtime/Collector.h: Copied from ForwardingHeaders/kjs/collector.h.
636         * ForwardingHeaders/runtime/Completion.h: Copied from ForwardingHeaders/kjs/completion.h.
637         * ForwardingHeaders/runtime/Identifier.h: Copied from ForwardingHeaders/kjs/identifier.h.
638         * ForwardingHeaders/runtime/Interpreter.h: Copied from ForwardingHeaders/kjs/interpreter.h.
639         * ForwardingHeaders/runtime/Lookup.h: Copied from ForwardingHeaders/kjs/lookup.h.
640         * ForwardingHeaders/runtime/Operations.h: Copied from ForwardingHeaders/kjs/operations.h.
641         * ForwardingHeaders/runtime/Protect.h: Copied from ForwardingHeaders/kjs/protect.h.
642         * ForwardingHeaders/runtime/UString.h: Copied from ForwardingHeaders/kjs/ustring.h.
643         * bindings/js/GCController.cpp:
644         * bindings/js/JSCustomPositionCallback.h:
645         * bindings/js/JSCustomPositionErrorCallback.h:
646         * bindings/js/JSCustomSQLStatementCallback.h:
647         * bindings/js/JSCustomSQLStatementErrorCallback.h:
648         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
649         * bindings/js/JSCustomVoidCallback.h:
650         * bindings/js/JSDOMBinding.h:
651         * bindings/js/JSDOMWindowBase.h:
652         * bindings/js/JSEventListener.h:
653         * bindings/js/ScheduledAction.h:
654         * bindings/js/ScriptController.cpp:
655         * bindings/js/ScriptController.h:
656         * bindings/objc/WebScriptObject.mm:
657         * bindings/scripts/CodeGeneratorJS.pm:
658         * bridge/NP_jsobject.cpp:
659         * bridge/c/c_class.cpp:
660         * bridge/jni/jni_class.cpp:
661         * bridge/jni/jni_jsobject.mm:
662         * bridge/npruntime.cpp:
663         * bridge/runtime_root.h:
664         * history/CachedPage.h:
665         * html/CanvasRenderingContext2D.cpp:
666         * html/HTMLCanvasElement.cpp:
667         * inspector/InspectorController.cpp:
668         * inspector/JavaScriptCallFrame.cpp:
669         * page/Console.cpp:
670         * page/Page.cpp:
671         * platform/text/AtomicString.cpp:
672         * platform/text/PlatformString.h:
673
674 2008-11-05  Sam Weinig  <sam@webkit.org>
675
676         Reviewed by Anders Carlsson.
677
678         Fix https://bugs.webkit.org/show_bug.cgi?id=22085
679         The Plugin JS object should expose item() and namedItem() methods to match Firefox
680
681         * bindings/js/JSPluginCustom.cpp:
682         (WebCore::JSPlugin::nameGetter):
683         * plugins/Plugin.cpp:
684         (WebCore::Plugin::namedItem):
685         * plugins/Plugin.h:
686         * plugins/Plugin.idl:
687
688 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
689
690         Reviewed by Maciej Stachowiak.
691
692         https://bugs.webkit.org/show_bug.cgi?id=21060
693         Range#surroundContents incorrectly throws BAD_BOUNDARYPOINTS_ERR
694
695         Test: fast/dom/Range/surroundContents-check-boundary-points.html
696
697         * dom/Range.cpp: (WebCore::Range::surroundContents): Fix BAD_BOUNDARYPOINTS_ERR checks.
698
699 2008-11-05  Anders Carlsson  <andersca@apple.com>
700
701         Reviewed by Dan Bernstein.
702
703         Remove two global destructors from CoreTextController.
704         
705         * platform/graphics/mac/CoreTextController.cpp:
706         (WebCore::CoreTextController::collectCoreTextRunsForCharacters):
707
708 2008-11-05  Darin Fisher  <darin@chromium.org>
709
710         Reviewed by Darin Adler.
711
712         CRASH at Scrollbar::invalidateRect due to null m_client
713         https://bugs.webkit.org/show_bug.cgi?id=22080
714
715         * platform/Scrollbar.cpp:
716         (WebCore::Scrollbar::isWindowActive):
717         (WebCore::Scrollbar::invalidateRect):
718
719 2008-11-04  Sam Weinig  <sam@webkit.org>
720
721         Reviewed by Simon Hausmann.
722
723         Fix https://bugs.webkit.org/show_bug.cgi?id=21648
724         navigator.mimeTypes and navigator.plugins don't expose item and namedItem to JS
725
726         - Also adds constructors for Plugin, PluginArray, MimeType and MimeTypeArray.
727
728         * bindings/js/JSMimeTypeArrayCustom.cpp:
729         (WebCore::JSMimeTypeArray::nameGetter):
730         * bindings/js/JSPluginArrayCustom.cpp:
731         (WebCore::JSPluginArray::nameGetter):
732         * page/DOMWindow.idl:
733         * plugins/MimeType.idl:
734         * plugins/MimeTypeArray.cpp:
735         (WebCore::MimeTypeArray::namedItem):
736         * plugins/MimeTypeArray.h:
737         * plugins/MimeTypeArray.idl:
738         * plugins/Plugin.idl:
739         * plugins/PluginArray.cpp:
740         (WebCore::PluginArray::namedItem):
741         * plugins/PluginArray.h:
742         * plugins/PluginArray.idl:
743
744 2008-11-05  Steve Falkenburg  <sfalken@apple.com>
745
746         Build fix.
747
748         * plugins/PluginPackage.cpp:
749
750 2008-11-05  Jeff Cook  <cookiecaper@gmail.com>
751
752         Reviewed by Simon Hausmann and Tor Arne.
753
754         Fix crash in the Qt port when unloading swfdec and Flash 10
755         by reordering window destruction and plugin stop.
756
757         See https://bugs.webkit.org/show_bug.cgi?id=20779
758
759         * plugins/qt/PluginViewQt.cpp:
760         (WebCore::PluginView::stop):
761
762 2008-11-05  Simon Hausmann  <hausmann@webkit.org>
763
764         Reviewed by Tor Arne Vestbø
765
766         Fix loading of Flash 10 in the Qt port by faking the toolkit to be Gtk.
767
768         Otherwise Flash refuses to load and function :(
769
770         * plugins/PluginPackage.cpp:
771         (WebCore::PluginPackage::determineQuirks):
772         * plugins/PluginQuirkSet.h:
773         (WebCore::):
774         * plugins/qt/PluginViewQt.cpp:
775         (WebCore::PluginView::getValue):
776
777 2008-11-05  Simon Hausmann  <hausmann@webkit.org>
778
779         Reviewed by Tor Arne Vestbø
780
781         Unify determineQuirks between the Qt and the Gtk PluginPackage.
782         Share the code for parsing the module version from the description.
783         This is currently used to determine Flash based quirks.
784
785         * plugins/PluginPackage.cpp:
786         (WebCore::PluginPackage::createPackage):
787         (WebCore::PluginPackage::determineQuirks):
788         (WebCore::PluginPackage::determineModuleVersionFromDescription):
789         * plugins/PluginPackage.h:
790         * plugins/gtk/PluginPackageGtk.cpp:
791         (WebCore::PluginPackage::fetchInfo):
792         * plugins/qt/PluginPackageQt.cpp:
793         (WebCore::PluginPackage::fetchInfo):
794
795 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
796
797         Rubber-stamped by Sam Weinig.
798
799         Move kjs/dtoa.h to the wtf subdirectory of JavaScriptCore.
800
801         * ForwardingHeaders/kjs/dtoa.h: Removed.
802         * ForwardingHeaders/wtf/dtoa.h: Copied from ForwardingHeaders/kjs/dtoa.h.
803         * css/CSSParser.cpp:
804         * platform/text/String.cpp:
805         * platform/text/StringImpl.cpp:
806
807 2008-11-04  Jonathan Haas  <myrdred@gmail.com>
808
809         Addiitonal tweaks and patch prep by Pamela Greene <pam@chromium.org>
810
811         Reviewed by Darin Adler.
812
813         Fixed an issue which could cause memory corruption using ToT libxml.
814         See https://bugs.webkit.org/show_bug.cgi?id=15715
815
816         Test: fast/xsl/xslt-nested-stylesheets.xml
817
818         * xml/XSLImportRule.cpp:
819         (WebCore::XSLImportRule::setXSLStyleSheet): Set parent rather than owner document
820         * xml/XSLStyleSheet.cpp:
821         (WebCore::XSLStyleSheet::XSLStyleSheet): Initialize m_parentStyleSheet
822         (WebCore::XSLStyleSheet::parseString): Make all child stylesheets use parent's dictionary
823         (WebCore::XSLStyleSheet::setParentStyleSheet): Added
824         * xml/XSLStyleSheet.h: Added m_parentStyleSheet member
825
826 2008-11-04  Simon Fraser  <simon.fraser@apple.com>
827
828         No review.
829
830         Improved buid fix: include MathExtras.h to get roundf on all platforms.
831
832         * platform/graphics/FloatPoint.h:
833
834 2008-11-04  Brady Eidson  <beidson@apple.com>
835
836         Reviewed by John Sullivan
837
838         Add a simple "visited" method to HistoryItem for use by global history
839
840         * WebCore.base.exp:
841
842         * history/HistoryItem.cpp:
843         (WebCore::HistoryItem::visited):  Update the title on the item, set last visited time,
844           and bump the visit count.  All things that should happen when a url is visited again!
845         * history/HistoryItem.h:
846
847 2008-11-04  Jan Michael Alonzo  <jmalonzo@webkit.org>
848
849         Build fix. Not reviewed.
850
851         * platform/graphics/FloatPoint.h: include math.h.
852         reported by zdobersek in #webkit.
853
854 2008-11-04  Darin Fisher  <darin@chromium.org>
855  
856         Reviewed by Anders Carlsson.
857  
858         No need to clobber all ResourceRequest fields in FrameLoader::reload()
859         https://bugs.webkit.org/show_bug.cgi?id=21949
860  
861         * loader/FrameLoader.cpp:
862         (WebCore::FrameLoader::reload):
863
864 2008-11-04  Darin Adler  <darin@apple.com>
865
866         Reviewed by Tim Hatcher.
867
868         * storage/Database.cpp:
869         (WebCore::databaseVersionKey): Tweaked formatting.
870
871 2008-11-03  Darin Adler  <darin@apple.com>
872
873         Reviewed by Tim Hatcher.
874
875         - https://bugs.webkit.org/show_bug.cgi?id=22061
876           create script to check for exit-time destructors
877
878         * WebCore.xcodeproj/project.pbxproj: Added a script
879         phase that runs the check-for-exit-time-destructors script.
880
881         * html/HTMLAttributeNames.in: Removed some unused attribute names.
882
883         * html/HTMLEmbedElement.cpp:
884         (WebCore::HTMLEmbedElement::parseMappedAttribute): Removed code that
885         sets the write-only m_pluginPage.
886         * html/HTMLEmbedElement.h: Ditto.
887
888         * platform/mac/CursorMac.mm:
889         (WebCore::leakNamedCursor): Changed to return a Cursor&.
890         (WebCore::pointerCursor): Changed to leak an object to avoid an
891         exit-time destructor.
892         (WebCore::crossCursor): Ditto.
893         (WebCore::handCursor): Ditto.
894         (WebCore::moveCursor): Ditto.
895         (WebCore::verticalTextCursor): Ditto.
896         (WebCore::cellCursor): Ditto.
897         (WebCore::contextMenuCursor): Ditto.
898         (WebCore::aliasCursor): Ditto.
899         (WebCore::zoomInCursor): Ditto.
900         (WebCore::zoomOutCursor): Ditto.
901         (WebCore::copyCursor): Ditto.
902         (WebCore::noneCursor): Ditto.
903         (WebCore::progressCursor): Ditto.
904         (WebCore::noDropCursor): Ditto.
905         (WebCore::notAllowedCursor): Ditto.
906         (WebCore::iBeamCursor): Ditto.
907         (WebCore::waitCursor): Ditto.
908         (WebCore::helpCursor): Ditto.
909         (WebCore::eastResizeCursor): Ditto.
910         (WebCore::northResizeCursor): Ditto.
911         (WebCore::northEastResizeCursor): Ditto.
912         (WebCore::northWestResizeCursor): Ditto.
913         (WebCore::southResizeCursor): Ditto.
914         (WebCore::southEastResizeCursor): Ditto.
915         (WebCore::southWestResizeCursor): Ditto.
916         (WebCore::westResizeCursor): Ditto.
917         (WebCore::northSouthResizeCursor): Ditto.
918         (WebCore::eastWestResizeCursor): Ditto.
919         (WebCore::northEastSouthWestResizeCursor): Ditto.
920         (WebCore::northWestSouthEastResizeCursor): Ditto.
921         (WebCore::columnResizeCursor): Ditto.
922         (WebCore::rowResizeCursor): Ditto.
923         (WebCore::grabCursor): Ditto.
924         (WebCore::grabbingCursor): Ditto.
925
926         * storage/Database.cpp:
927         (WebCore::guidMutex): Changed to leak an object to avoid an
928         exit-time destructor. Also added a comment explaining why it's
929         thread safe.
930         (WebCore::guidToVersionMap): Ditto.
931         (WebCore::guidToDatabaseMap): Ditto.
932         (WebCore::Database::databaseInfoTableName): Ditto.
933         (WebCore::databaseVersionKey): Ditto.
934         (WebCore::Database::getVersionFromDatabase): Ditto.
935         (WebCore::Database::setVersionInDatabase): Ditto.
936         (WebCore::guidForOriginAndName): Ditto.
937         * storage/DatabaseTracker.cpp:
938         (WebCore::DatabaseTracker::tracker): Ditto.
939         (WebCore::notificationMutex): Ditto.
940         (WebCore::notificationQueue): Ditto.
941         (WebCore::DatabaseTracker::notifyDatabasesChanged): Ditto.
942
943 2008-11-04  Simon Fraser  <simon.fraser@apple.com>
944
945         Reviewed by Dave Hyatt
946
947         https://bugs.webkit.org/show_bug.cgi?id=21941
948
949         Rename absolutePosition() to localToAbsolute(), and add the ability
950         to optionally take transforms into account (which will eventually be the
951         default behavior).
952
953         * WebCore.base.exp:
954         * WebCore.xcodeproj/project.pbxproj:
955         * dom/ContainerNode.cpp:
956         (WebCore::ContainerNode::getUpperLeftCorner):
957         (WebCore::ContainerNode::getLowerRightCorner):
958         (WebCore::ContainerNode::getRect):
959         * dom/ContainerNode.h:
960         * dom/MouseRelatedEvent.cpp:
961         (WebCore::MouseRelatedEvent::receivedTarget):
962         * dom/Node.cpp:
963         (WebCore::Node::getRect):
964         * editing/SelectionController.cpp:
965         (WebCore::SelectionController::layout):
966         (WebCore::SelectionController::caretRect):
967         * editing/visible_units.cpp:
968         (WebCore::previousLinePosition):
969         (WebCore::nextLinePosition):
970         * html/HTMLAnchorElement.cpp:
971         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
972         (WebCore::HTMLAnchorElement::defaultEventHandler):
973         * html/HTMLAreaElement.cpp:
974         (WebCore::HTMLAreaElement::getRect):
975         * html/HTMLImageElement.cpp:
976         (WebCore::HTMLImageElement::x):
977         (WebCore::HTMLImageElement::y):
978         * html/HTMLInputElement.cpp:
979         (WebCore::HTMLInputElement::defaultEventHandler):
980         * html/HTMLInputElement.h:
981         * page/AccessibilityRenderObject.cpp:
982         (WebCore::AccessibilityRenderObject::boundingBoxRect):
983         * page/EventHandler.cpp:
984         (WebCore::EventHandler::handleDrag):
985         * platform/graphics/FloatPoint.h:
986         (WebCore::roundedIntPoint):
987         * platform/graphics/IntSize.h:
988         (WebCore::IntSize::expand):
989         * rendering/LayoutState.cpp:
990         (WebCore::LayoutState::LayoutState):
991         * rendering/RenderBlock.cpp:
992         (WebCore::RenderBlock::layoutBlock):
993         (WebCore::RenderBlock::paintObject):
994         (WebCore::RenderBlock::selectionGapRects):
995         (WebCore::RenderBlock::fillBlockSelectionGaps):
996         (WebCore::RenderBlock::nodeAtPoint):
997         (WebCore::RenderBlock::positionForCoordinates):
998         * rendering/RenderBox.cpp:
999         (WebCore::RenderBox::localToAbsolute):
1000         (WebCore::RenderBox::computeAbsoluteRepaintRect):
1001         (WebCore::RenderBox::caretRect):
1002         * rendering/RenderBox.h:
1003         (WebCore::RenderBox::relativePositionOffset):
1004         * rendering/RenderContainer.cpp:
1005         (WebCore::RenderContainer::addLineBoxRects):
1006         * rendering/RenderFlow.cpp:
1007         (WebCore::RenderFlow::absoluteClippedOverflowRect):
1008         (WebCore::RenderFlow::caretRect):
1009         (WebCore::RenderFlow::addFocusRingRects):
1010         * rendering/RenderLayer.cpp:
1011         (WebCore::RenderLayer::updateLayerPosition):
1012         (WebCore::RenderLayer::convertToLayerCoords):
1013         (WebCore::RenderLayer::addScrolledContentOffset):
1014         (WebCore::RenderLayer::subtractScrolledContentOffset):
1015         (WebCore::RenderLayer::scrollRectToVisible):
1016         * rendering/RenderLayer.h:
1017         (WebCore::RenderLayer::scrolledContentOffset):
1018         (WebCore::RenderLayer::relativePositionOffset):
1019         * rendering/RenderListBox.cpp:
1020         (WebCore::RenderListBox::panScroll):
1021         (WebCore::RenderListBox::scrollToward):
1022         * rendering/RenderListMarker.cpp:
1023         (WebCore::RenderListMarker::selectionRect):
1024         * rendering/RenderObject.cpp:
1025         (WebCore::RenderObject::absoluteBoundingBoxRect):
1026         (WebCore::RenderObject::computeAbsoluteRepaintRect):
1027         (WebCore::RenderObject::localToAbsolute):
1028         (WebCore::RenderObject::addDashboardRegions):
1029         (WebCore::RenderObject::absoluteContentBox):
1030         (WebCore::RenderObject::absoluteOutlineBox):
1031         * rendering/RenderObject.h:
1032         (WebCore::RenderObject::localToAbsoluteForContent):
1033         * rendering/RenderPart.cpp:
1034         (WebCore::RenderPart::updateWidgetPosition):
1035         * rendering/RenderReplaced.cpp:
1036         (WebCore::RenderReplaced::selectionRect):
1037         * rendering/RenderSVGInlineText.cpp:
1038         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
1039         * rendering/RenderSVGText.cpp:
1040         (WebCore::RenderSVGText::absoluteRects):
1041         * rendering/RenderTableCell.cpp:
1042         (WebCore::RenderTableCell::localToAbsolute):
1043         * rendering/RenderTableCell.h:
1044         * rendering/RenderText.cpp:
1045         (WebCore::RenderText::addLineBoxRects):
1046         (WebCore::RenderText::caretRect):
1047         (WebCore::RenderText::selectionRect):
1048         * rendering/RenderVideo.cpp:
1049         (WebCore::RenderVideo::updatePlayer):
1050         * rendering/RenderView.cpp:
1051         (WebCore::RenderView::localToAbsolute):
1052         * rendering/RenderView.h:
1053         * rendering/RenderWidget.cpp:
1054         (WebCore::RenderWidget::updateWidgetPosition):
1055         * svg/SVGSVGElement.cpp:
1056         (WebCore::SVGSVGElement::getScreenCTM):
1057
1058 2008-11-03  Yael Aharon  <yael.aharon@nokia.com>
1059
1060         Reviewed by Simon Hausmann.
1061
1062         Add methods for getting and setting user data on History Item.
1063         This change is limited to QT port only. Tests were added in
1064         the patch for https://bugs.webkit.org/show_bug.cgi?id=21864.
1065
1066         Minor change by Simon: made the functions inline and added a missing
1067         const.
1068
1069         * history/HistoryItem.h:
1070
1071 2008-11-01  Alexey Proskuryakov  <ap@webkit.org>
1072
1073         Reviewed by Darin Adler.
1074
1075         https://bugs.webkit.org/show_bug.cgi?id=22030
1076         Make EventNames usable from multiple threads
1077
1078         * platform/text/AtomicString.cpp:
1079         (WebCore::stringTable):
1080         (WebCore::AtomicString::add):
1081         (WebCore::AtomicString::remove):
1082         (WebCore::AtomicString::find):
1083         (WebCore::AtomicString::init):
1084         * platform/text/AtomicString.h:
1085         Atomic string table is now per-thread. Individual strings cannot be shared between threads,
1086         so global AtomicString constants cannot be used from threads other than the main one.
1087
1088         * dom/EventNames.cpp:
1089         (WebCore::EventNames::EventNames):
1090         (WebCore::eventNames):
1091         (WebCore::EventNames::init):
1092         * dom/EventNames.h:
1093         Made EventNames a ThreadSpecific struct. Individual event names are now accessed as
1094         eventNames().fooEvent, not EventNames::fooEvent. This makes EventNames usable from all
1095         threads.
1096
1097         * WebCore.base.exp:
1098         * bindings/js/JSDOMWindowBase.cpp:
1099         * bindings/js/JSEventListener.cpp:
1100         * bindings/js/ScriptController.cpp:
1101         (WebCore::ScriptController::processingUserGesture):
1102         * dom/BeforeTextInsertedEvent.cpp:
1103         (WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent):
1104         * dom/BeforeUnloadEvent.cpp:
1105         (WebCore::BeforeUnloadEvent::BeforeUnloadEvent):
1106         * dom/CharacterData.cpp:
1107         (WebCore::CharacterData::dispatchModifiedEvent):
1108         * dom/ContainerNode.cpp:
1109         (WebCore::dispatchChildInsertionEvents):
1110         (WebCore::dispatchChildRemovalEvents):
1111         * dom/DedicatedWorker.cpp:
1112         (WebCore::DedicatedWorker::dispatchErrorEvent):
1113         * dom/Document.cpp:
1114         (WebCore::Document::implicitClose):
1115         (WebCore::Document::setFocusedNode):
1116         (WebCore::Document::addListenerTypeIfNeeded):
1117         (WebCore::Document::removeWindowInlineEventListenerForType):
1118         (WebCore::Document::addWindowEventListener):
1119         (WebCore::Document::removeWindowEventListener):
1120         (WebCore::Document::finishedParsing):
1121         * dom/EventTargetNode.cpp:
1122         (WebCore::EventTargetNode::dispatchGenericEvent):
1123         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
1124         (WebCore::EventTargetNode::dispatchWindowEvent):
1125         (WebCore::EventTargetNode::dispatchUIEvent):
1126         (WebCore::EventTargetNode::dispatchSimulatedClick):
1127         (WebCore::EventTargetNode::dispatchMouseEvent):
1128         (WebCore::EventTargetNode::dispatchFocusEvent):
1129         (WebCore::EventTargetNode::dispatchBlurEvent):
1130         (WebCore::EventTargetNode::defaultEventHandler):
1131         (WebCore::EventTargetNode::on*): (multiple methods)
1132         (WebCore::EventTargetNode::setOn*): (multiple methods)
1133         * dom/KeyboardEvent.cpp:
1134         (WebCore::eventTypeForKeyboardEventType):
1135         (WebCore::KeyboardEvent::keyCode):
1136         (WebCore::KeyboardEvent::charCode):
1137         * dom/MessageEvent.cpp:
1138         (WebCore::MessageEvent::MessageEvent):
1139         * dom/MessagePort.cpp:
1140         (WebCore::MessagePort::dispatchMessages):
1141         (WebCore::MessagePort::dispatchCloseEvent):
1142         * dom/MouseEvent.cpp:
1143         (WebCore::MouseEvent::isDragEvent):
1144         (WebCore::MouseEvent::toElement):
1145         (WebCore::MouseEvent::fromElement):
1146         * dom/OverflowEvent.cpp:
1147         (WebCore::OverflowEvent::OverflowEvent):
1148         * dom/TextEvent.cpp:
1149         (WebCore::TextEvent::TextEvent):
1150         * dom/WebKitAnimationEvent.cpp:
1151         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
1152         (WebCore::WebKitAnimationEvent::~WebKitAnimationEvent):
1153         (WebCore::WebKitAnimationEvent::initWebKitAnimationEvent):
1154         (WebCore::WebKitAnimationEvent::animationName):
1155         (WebCore::WebKitAnimationEvent::elapsedTime):
1156         * dom/WebKitTransitionEvent.cpp:
1157         (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
1158         (WebCore::WebKitTransitionEvent::~WebKitTransitionEvent):
1159         (WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
1160         (WebCore::WebKitTransitionEvent::propertyName):
1161         (WebCore::WebKitTransitionEvent::elapsedTime):
1162         * dom/WheelEvent.cpp:
1163         (WebCore::WheelEvent::WheelEvent):
1164         (WebCore::WheelEvent::initWheelEvent):
1165         * dom/XMLTokenizerLibxml2.cpp:
1166         * dom/XMLTokenizerQt.cpp:
1167         * editing/DeleteButton.cpp:
1168         (WebCore::DeleteButton::defaultEventHandler):
1169         * editing/EditCommand.cpp:
1170         * editing/Editor.cpp:
1171         (WebCore::Editor::canDHTMLCut):
1172         (WebCore::Editor::canDHTMLCopy):
1173         (WebCore::Editor::canDHTMLPaste):
1174         (WebCore::Editor::tryDHTMLCopy):
1175         (WebCore::Editor::tryDHTMLCut):
1176         (WebCore::Editor::tryDHTMLPaste):
1177         (WebCore::dispatchEditableContentChangedEvents):
1178         * editing/ReplaceSelectionCommand.cpp:
1179         (WebCore::ReplacementFragment::ReplacementFragment):
1180         * editing/SelectionController.cpp:
1181         (WebCore::SelectionController::setFocused):
1182         * html/HTMLAnchorElement.cpp:
1183         (WebCore::HTMLAnchorElement::defaultEventHandler):
1184         * html/HTMLBodyElement.cpp:
1185         (WebCore::HTMLBodyElement::parseMappedAttribute):
1186         * html/HTMLButtonElement.cpp:
1187         (WebCore::HTMLButtonElement::parseMappedAttribute):
1188         (WebCore::HTMLButtonElement::defaultEventHandler):
1189         * html/HTMLElement.cpp:
1190         (WebCore::HTMLElement::parseMappedAttribute):
1191         * html/HTMLFormControlElement.cpp:
1192         (WebCore::HTMLFormControlElement::onChange):
1193         * html/HTMLFormElement.cpp:
1194         (WebCore::HTMLFormElement::handleLocalEvents):
1195         (WebCore::HTMLFormElement::prepareSubmit):
1196         (WebCore::HTMLFormElement::reset):
1197         (WebCore::HTMLFormElement::parseMappedAttribute):
1198         * html/HTMLFrameElementBase.cpp:
1199         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
1200         * html/HTMLFrameSetElement.cpp:
1201         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
1202         * html/HTMLImageElement.cpp:
1203         (WebCore::HTMLImageElement::parseMappedAttribute):
1204         * html/HTMLImageLoader.cpp:
1205         (WebCore::HTMLImageLoader::dispatchLoadEvent):
1206         * html/HTMLInputElement.cpp:
1207         (WebCore::HTMLInputElement::parseMappedAttribute):
1208         (WebCore::HTMLInputElement::setValueFromRenderer):
1209         (WebCore::HTMLInputElement::preDispatchEventHandler):
1210         (WebCore::HTMLInputElement::postDispatchEventHandler):
1211         (WebCore::HTMLInputElement::defaultEventHandler):
1212         (WebCore::HTMLInputElement::onSearch):
1213         * html/HTMLLabelElement.cpp:
1214         (WebCore::HTMLLabelElement::defaultEventHandler):
1215         * html/HTMLMediaElement.cpp:
1216         (WebCore::HTMLMediaElement::load):
1217         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
1218         (WebCore::HTMLMediaElement::setReadyState):
1219         (WebCore::HTMLMediaElement::progressEventTimerFired):
1220         (WebCore::HTMLMediaElement::seek):
1221         (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
1222         (WebCore::HTMLMediaElement::setPlaybackRate):
1223         (WebCore::HTMLMediaElement::play):
1224         (WebCore::HTMLMediaElement::pause):
1225         (WebCore::HTMLMediaElement::setVolume):
1226         (WebCore::HTMLMediaElement::setMuted):
1227         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
1228         (WebCore::HTMLMediaElement::documentWillBecomeInactive):
1229         * html/HTMLObjectElement.cpp:
1230         (WebCore::HTMLObjectElement::parseMappedAttribute):
1231         * html/HTMLOptionElement.cpp:
1232         * html/HTMLScriptElement.cpp:
1233         (WebCore::HTMLScriptElement::parseMappedAttribute):
1234         (WebCore::HTMLScriptElement::dispatchLoadEvent):
1235         (WebCore::HTMLScriptElement::dispatchErrorEvent):
1236         * html/HTMLSelectElement.cpp:
1237         (WebCore::HTMLSelectElement::parseMappedAttribute):
1238         (WebCore::HTMLSelectElement::defaultEventHandler):
1239         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
1240         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
1241         * html/HTMLTextAreaElement.cpp:
1242         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
1243         (WebCore::HTMLTextAreaElement::defaultEventHandler):
1244         * html/HTMLTokenizer.cpp:
1245         (WebCore::HTMLTokenizer::notifyFinished):
1246         * loader/FrameLoader.cpp:
1247         (WebCore::FrameLoader::stopLoading):
1248         (WebCore::FrameLoader::canCachePage):
1249         * loader/ImageDocument.cpp:
1250         (WebCore::ImageEventListener::handleEvent):
1251         * loader/ImageLoader.cpp:
1252         * loader/MediaDocument.cpp:
1253         (WebCore::MediaDocument::defaultEventHandler):
1254         * loader/appcache/DOMApplicationCache.cpp:
1255         (WebCore::DOMApplicationCache::callCheckingListener):
1256         (WebCore::DOMApplicationCache::callErrorListener):
1257         (WebCore::DOMApplicationCache::callNoUpdateListener):
1258         (WebCore::DOMApplicationCache::callDownloadingListener):
1259         (WebCore::DOMApplicationCache::callProgressListener):
1260         (WebCore::DOMApplicationCache::callUpdateReadyListener):
1261         (WebCore::DOMApplicationCache::callCachedListener):
1262         * page/AccessibilityObject.cpp:
1263         * page/AccessibilityRenderObject.cpp:
1264         (WebCore::AccessibilityRenderObject::mouseButtonListener):
1265         * page/ContextMenuController.cpp:
1266         (WebCore::ContextMenuController::handleContextMenuEvent):
1267         * page/DOMWindow.cpp:
1268         (WebCore::DOMWindow::on*): (multiple methods)
1269         (WebCore::DOMWindow::setOn*): (multiple methods)
1270         * page/EventHandler.cpp:
1271         (WebCore::EventHandler::handleMousePressEvent):
1272         (WebCore::EventHandler::handleMouseDoubleClickEvent):
1273         (WebCore::EventHandler::handleMouseMoveEvent):
1274         (WebCore::EventHandler::handleMouseReleaseEvent):
1275         (WebCore::EventHandler::updateDragAndDrop):
1276         (WebCore::EventHandler::cancelDragAndDrop):
1277         (WebCore::EventHandler::performDragAndDrop):
1278         (WebCore::EventHandler::updateMouseEventTargetNode):
1279         (WebCore::EventHandler::dispatchMouseEvent):
1280         (WebCore::EventHandler::sendContextMenuEvent):
1281         (WebCore::EventHandler::canMouseDownStartSelect):
1282         (WebCore::EventHandler::canMouseDragExtendSelect):
1283         (WebCore::EventHandler::defaultKeyboardEventHandler):
1284         (WebCore::EventHandler::dragSourceMovedTo):
1285         (WebCore::EventHandler::dragSourceEndedAt):
1286         (WebCore::EventHandler::handleDrag):
1287         (WebCore::EventHandler::handleTextInputEvent):
1288         * page/FocusController.cpp:
1289         * page/Frame.cpp:
1290         (WebCore::Frame::sendResizeEvent):
1291         (WebCore::Frame::sendScrollEvent):
1292         * page/Page.cpp:
1293         (WebCore::networkStateChanged):
1294         * page/animation/AnimationBase.cpp:
1295         (WebCore::AnimationBase::updateStateMachine):
1296         (WebCore::AnimationBase::animationTimerCallbackFired):
1297         (WebCore::AnimationBase::primeEventTimers):
1298         * page/animation/ImplicitAnimation.cpp:
1299         (WebCore::ImplicitAnimation::onAnimationEnd):
1300         (WebCore::ImplicitAnimation::sendTransitionEvent):
1301         * page/animation/KeyframeAnimation.cpp:
1302         (WebCore::KeyframeAnimation::onAnimationStart):
1303         (WebCore::KeyframeAnimation::onAnimationIteration):
1304         (WebCore::KeyframeAnimation::onAnimationEnd):
1305         (WebCore::KeyframeAnimation::sendAnimationEvent):
1306         * page/gtk/EventHandlerGtk.cpp:
1307         * page/mac/EventHandlerMac.mm:
1308         (WebCore::isKeyboardOptionTab):
1309         * page/mac/FrameMac.mm:
1310         * page/qt/EventHandlerQt.cpp:
1311         (WebCore::isKeyboardOptionTab):
1312         * plugins/PluginView.cpp:
1313         * plugins/gtk/PluginViewGtk.cpp:
1314         * plugins/qt/PluginViewQt.cpp:
1315         * plugins/win/PluginViewWin.cpp:
1316         (WebCore::PluginView::handleKeyboardEvent):
1317         (WebCore::PluginView::handleMouseEvent):
1318         * rendering/MediaControlElements.cpp:
1319         (WebCore::MediaControlMuteButtonElement::defaultEventHandler):
1320         (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
1321         (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
1322         (WebCore::MediaControlTimelineElement::defaultEventHandler):
1323         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
1324         * rendering/RenderFrameSet.cpp:
1325         (WebCore::RenderFrameSet::userResize):
1326         * rendering/RenderLayer.cpp:
1327         (WebCore::RenderLayer::scrollToOffset):
1328         * rendering/RenderListBox.cpp:
1329         (WebCore::RenderListBox::valueChanged):
1330         * rendering/RenderMedia.cpp:
1331         (WebCore::RenderMedia::forwardEvent):
1332         * rendering/RenderObject.cpp:
1333         * rendering/RenderSlider.cpp:
1334         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
1335         * rendering/RenderTextControl.cpp:
1336         (WebCore::RenderTextControl::forwardEvent):
1337         (WebCore::RenderTextControl::selectionChanged):
1338         * rendering/RenderWidget.cpp:
1339         * rendering/TextControlInnerElements.cpp:
1340         (WebCore::TextControlInnerTextElement::defaultEventHandler):
1341         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
1342         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
1343         * storage/LocalStorageArea.cpp:
1344         (WebCore::LocalStorageArea::dispatchStorageEvent):
1345         * storage/SessionStorageArea.cpp:
1346         (WebCore::SessionStorageArea::dispatchStorageEvent):
1347         * svg/SVGAElement.cpp:
1348         (WebCore::SVGAElement::defaultEventHandler):
1349         * svg/SVGDocument.cpp:
1350         (WebCore::SVGDocument::dispatchZoomEvent):
1351         (WebCore::SVGDocument::dispatchScrollEvent):
1352         * svg/SVGElement.cpp:
1353         (WebCore::SVGElement::parseMappedAttribute):
1354         (WebCore::hasLoadListener):
1355         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
1356         * svg/SVGElementInstance.cpp:
1357         (WebCore::SVGElementInstance::on*): (multiple methods)
1358         (WebCore::SVGElementInstance::setOn*): (multiple methods)
1359         * svg/SVGImageLoader.cpp:
1360         (WebCore::SVGImageLoader::dispatchLoadEvent):
1361         * svg/SVGSVGElement.cpp:
1362         (WebCore::SVGSVGElement::parseMappedAttribute):
1363         * svg/SVGScriptElement.cpp:
1364         (WebCore::SVGScriptElement::dispatchErrorEvent):
1365         * xml/XMLHttpRequest.cpp:
1366         (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent):
1367         (WebCore::XMLHttpRequest::dispatchAbortEvent):
1368         (WebCore::XMLHttpRequest::dispatchErrorEvent):
1369         (WebCore::XMLHttpRequest::dispatchLoadEvent):
1370         (WebCore::XMLHttpRequest::dispatchLoadStartEvent):
1371         (WebCore::XMLHttpRequest::dispatchProgressEvent):
1372         * xml/XMLHttpRequestUpload.cpp:
1373         (WebCore::XMLHttpRequestUpload::dispatchAbortEvent):
1374         (WebCore::XMLHttpRequestUpload::dispatchErrorEvent):
1375         (WebCore::XMLHttpRequestUpload::dispatchLoadEvent):
1376         (WebCore::XMLHttpRequestUpload::dispatchLoadStartEvent):
1377         (WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
1378         * xml/XPathResult.cpp:
1379         (WebCore::XPathResult::XPathResult):
1380         (WebCore::XPathResult::~XPathResult):
1381         (WebCore::XPathResult::invalidateIteratorState):
1382         Access event names via eventNames() function.
1383
1384 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
1385
1386         Reviewed by Mark Rowe.
1387
1388         Delete unused forwarding headers.
1389
1390         * ForwardingHeaders/kjs/Activation.h: Removed.
1391         * ForwardingHeaders/kjs/Register.h: Removed.
1392         * ForwardingHeaders/kjs/RegisterID.h: Removed.
1393
1394 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
1395
1396         Not reviewed.
1397
1398         Fix stupid typo in previous build fix.
1399
1400         * bindings/js/JSStorageCustom.cpp:
1401         * bindings/scripts/CodeGeneratorJS.pm:
1402         * bridge/NP_jsobject.cpp:
1403
1404 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
1405
1406         Not reviewed.
1407
1408         Fix the build for all non-Mac platforms.
1409
1410         * ForwardingHeaders/kjs/PropertyNameArray.h: Removed.
1411         * ForwardingHeaders/runtime/PropertyNameArray.h: Copied from ForwardingHeaders/kjs/PropertyNameArray.h.
1412         * bindings/js/JSStorageCustom.cpp:
1413         * bindings/scripts/CodeGeneratorJS.pm:
1414         * bridge/NP_jsobject.cpp:
1415
1416 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
1417
1418         Not reviewed.
1419
1420         Fix the wxWindows build.
1421
1422         * bridge/c/c_instance.cpp:
1423
1424 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
1425
1426         Rubber-stamped by Maciej Stachowiak.
1427
1428         Move more files into the runtime subdirectory of JavaScriptCore.
1429
1430         * ForwardingHeaders/kjs/ArgList.h: Removed.
1431         * ForwardingHeaders/kjs/CollectorHeapIterator.h: Removed.
1432         * ForwardingHeaders/kjs/ExecState.h: Removed.
1433         * ForwardingHeaders/kjs/InitializeThreading.h: Removed.
1434         * ForwardingHeaders/kjs/JSGlobalData.h: Removed.
1435         * ForwardingHeaders/kjs/JSLock.h: Removed.
1436         * ForwardingHeaders/kjs/SymbolTable.h: Removed.
1437         * ForwardingHeaders/runtime/ArgList.h: Copied from ForwardingHeaders/kjs/ArgList.h.
1438         * ForwardingHeaders/runtime/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/CollectorHeapIterator.h.
1439         * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
1440         * ForwardingHeaders/runtime/InitializeThreading.h: Copied from ForwardingHeaders/kjs/InitializeThreading.h.
1441         * ForwardingHeaders/runtime/JSGlobalData.h: Copied from ForwardingHeaders/kjs/JSGlobalData.h.
1442         * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
1443         * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
1444         * bindings/js/GCController.cpp:
1445         * bindings/js/JSCustomPositionCallback.cpp:
1446         * bindings/js/JSCustomPositionErrorCallback.cpp:
1447         * bindings/js/JSCustomSQLStatementCallback.cpp:
1448         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1449         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1450         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
1451         * bindings/js/JSCustomVoidCallback.cpp:
1452         * bindings/js/JSCustomXPathNSResolver.cpp:
1453         * bindings/js/JSDOMWindowBase.cpp:
1454         * bindings/js/JSEventCustom.cpp:
1455         * bindings/js/JSEventListener.cpp:
1456         * bindings/js/JSNodeFilterCondition.cpp:
1457         * bindings/js/ScheduledAction.cpp:
1458         * bindings/js/ScriptController.cpp:
1459         * bindings/js/ScriptControllerMac.mm:
1460         * bindings/objc/WebScriptObject.mm:
1461         * bridge/NP_jsobject.cpp:
1462         * bridge/c/c_class.cpp:
1463         * bridge/c/c_instance.cpp:
1464         * bridge/c/c_runtime.cpp:
1465         * bridge/c/c_utility.cpp:
1466         * bridge/jni/jni_class.cpp:
1467         * bridge/jni/jni_instance.cpp:
1468         * bridge/jni/jni_jsobject.mm:
1469         * bridge/jni/jni_objc.mm:
1470         * bridge/jni/jni_runtime.cpp:
1471         * bridge/jni/jni_runtime.h:
1472         * bridge/jni/jni_utility.cpp:
1473         * bridge/npruntime.cpp:
1474         * bridge/objc/objc_instance.mm:
1475         * bridge/objc/objc_runtime.mm:
1476         * bridge/objc/objc_utility.mm:
1477         * bridge/runtime.cpp:
1478         * dom/Document.cpp:
1479         * dom/Node.cpp:
1480         * dom/NodeFilter.cpp:
1481         * dom/NodeIterator.cpp:
1482         * dom/TreeWalker.cpp:
1483         * history/CachedPage.cpp:
1484         * inspector/InspectorController.cpp:
1485         * inspector/JavaScriptCallFrame.cpp:
1486         * inspector/JavaScriptCallFrame.h:
1487         * inspector/JavaScriptDebugServer.cpp:
1488         * inspector/JavaScriptProfileNode.cpp:
1489         * loader/FrameLoader.cpp:
1490         * loader/icon/IconDatabase.cpp:
1491         * page/Console.cpp:
1492         * page/Page.cpp:
1493         * page/mac/FrameMac.mm:
1494         * plugins/PluginView.cpp:
1495         * plugins/gtk/PluginViewGtk.cpp:
1496         * plugins/qt/PluginViewQt.cpp:
1497         * plugins/win/PluginViewWin.cpp:
1498         * storage/Database.cpp:
1499         * xml/XMLHttpRequest.cpp:
1500
1501 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
1502
1503         Reviewed by Sam Weinig.
1504
1505         Remove the forwarding header for FunctionCallProfile, because it was
1506         renamed to ProfileNode in r33466.
1507
1508         * ForwardingHeaders/kjs/FunctionCallProfile.h: Removed.
1509
1510 2008-11-03  Simon Fraser  <simon.fraser@apple.com>
1511
1512         Reviewed by Dave Hyatt
1513
1514         https://bugs.webkit.org/show_bug.cgi?id=22026
1515
1516         When computing the bounds of the transparency layer, we need to
1517         map the clipRect through the enclosing transform.
1518         
1519         Test: fast/layers/opacity-transforms.html
1520
1521         * rendering/RenderLayer.cpp:
1522         (WebCore::transparencyClipBox):
1523
1524 2008-11-03  Kevin Decker  <kdecker@apple.com>
1525
1526         Reviewed by Anders Carlsson.
1527
1528         https://bugs.webkit.org/show_bug.cgi?id=22053
1529
1530         Added additional support needed for the NPDrawingModelCoreAnimation drawing model. 
1531
1532         * bridge/npapi.h:
1533
1534 2008-11-03  Xan Lopez  <xan@gnome.org>
1535
1536         Reviewed by Alp Toker.
1537
1538         Update parseDataUrl() function in the libsoup http backend with
1539         the one from the curl backend which has recent correctness and crash
1540         fixes.
1541
1542         * platform/network/soup/ResourceHandleSoup.cpp:
1543         (WebCore::parseDataUrl):
1544
1545 2008-11-03  Holger Hans Peter Freyther  <zecke@selfish.org>
1546
1547         Reviewed by Alp Toker.
1548
1549         https://bugs.webkit.org/show_bug.cgi?id=22041
1550         Fix CURL crashes on the test suite
1551
1552         Fix segfault with setDefersLoading(). Do not call into curl when we
1553         don't have a CURL handle.
1554
1555         It is attempted to defer the loading before the load has been
1556         started (no curl handle was allocated yet). If that happens then
1557         just remember that. ResourceHandleManager::startJob is already taking
1558         care of this and in initResourceHandle the the downloading will
1559         be paused if needed.
1560
1561         Fixes fast/loader/simultaneous-reloads-assert.html
1562
1563         * platform/network/curl/ResourceHandleCurl.cpp:
1564         (WebCore::ResourceHandle::setDefersLoading):
1565
1566 2008-11-03  Holger Hans Peter Freyther  <zecke@selfish.org>
1567
1568         Reviewed by Alp Toker.
1569
1570         https://bugs.webkit.org/show_bug.cgi?id=22041
1571         Fix CURL crashes on the test suite
1572
1573         Do not send "no data" to WebCore in parseDataUrl().
1574
1575         Fixes assert on fast/tokenizer/image-empty-crash.html
1576
1577         * platform/network/curl/ResourceHandleManager.cpp:
1578         (WebCore::parseDataUrl):
1579
1580 2008-11-02  Xan Lopez  <xan@gnome.org>
1581
1582         Reviewed by Holger Freyther.
1583
1584         https://bugs.webkit.org/show_bug.cgi?id=22009
1585         HTML5 Video with GStreamer pulls gnome-vfs without using it
1586
1587         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1588         Remove gnome-vfs include.
1589
1590 2008-11-01  Adam Barth  <abarth@webkit.org>
1591
1592         Reviewed by Sam Weinig.
1593
1594         Be sure to check the final URLs of requested resources to make sure we
1595         don't get fooled by HTTP redirects.
1596
1597         https://bugs.webkit.org/show_bug.cgi?id=21963
1598
1599         Tests: http/tests/security/xss-DENIED-xsl-document-redirect.xml
1600                http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml
1601
1602         * dom/XMLTokenizerLibxml2.cpp:
1603         (WebCore::openFunc):
1604         * loader/DocLoader.cpp:
1605         (WebCore::DocLoader::canRequest):
1606         (WebCore::DocLoader::requestResource):
1607         * loader/DocLoader.h:
1608         * xml/XSLTProcessor.cpp:
1609         (WebCore::docLoaderFunc):
1610
1611 2008-11-01  Alexey Proskuryakov  <ap@webkit.org>
1612
1613         Reviewed by Darin Adler.
1614
1615         https://bugs.webkit.org/show_bug.cgi?id=22001
1616         AtomicStringImpl* keys of event listener maps can outlive their strings
1617
1618         Test: fast/events/destroyed-atomic-string.html
1619
1620         * dom/MessagePort.cpp:
1621         (WebCore::MessagePort::addEventListener):
1622         (WebCore::MessagePort::removeEventListener):
1623         (WebCore::MessagePort::dispatchEvent):
1624         * dom/MessagePort.h:
1625         * loader/appcache/DOMApplicationCache.cpp:
1626         (WebCore::DOMApplicationCache::addEventListener):
1627         (WebCore::DOMApplicationCache::removeEventListener):
1628         (WebCore::DOMApplicationCache::dispatchEvent):
1629         * loader/appcache/DOMApplicationCache.h:
1630         * xml/XMLHttpRequest.cpp:
1631         (WebCore::XMLHttpRequest::addEventListener):
1632         (WebCore::XMLHttpRequest::removeEventListener):
1633         (WebCore::XMLHttpRequest::dispatchEvent):
1634         * xml/XMLHttpRequest.h:
1635         * xml/XMLHttpRequestUpload.cpp:
1636         (WebCore::XMLHttpRequestUpload::addEventListener):
1637         (WebCore::XMLHttpRequestUpload::removeEventListener):
1638         (WebCore::XMLHttpRequestUpload::dispatchEvent):
1639         * xml/XMLHttpRequestUpload.h:
1640         Changed EventListenersMap to use AtomicString as key (instead of AtomicStringImpl*).
1641
1642 2008-10-31  Alexey Proskuryakov  <ap@webkit.org>
1643
1644         Reviewed by Darin Adler.
1645
1646         https://bugs.webkit.org/show_bug.cgi?id=21998
1647         Use JSDOMGlobalObject in EventListener-related bindings
1648
1649         * dom/MessagePort.idl: Auto-generate bindings for onclose and onmessage.
1650
1651         * bindings/scripts/CodeGeneratorJS.pm: Use JSDOMGlobalObject instead of JSDOMWindow in JS
1652         bindings for inline event handlers.
1653
1654         * bindings/js/JSDOMApplicationCacheCustom.cpp:
1655         (WebCore::JSDOMApplicationCache::addEventListener):
1656         (WebCore::JSDOMApplicationCache::removeEventListener):
1657         * bindings/js/JSEventTargetNodeCustom.cpp:
1658         (WebCore::JSEventTargetNode::addEventListener):
1659         (WebCore::JSEventTargetNode::removeEventListener):
1660         * bindings/js/JSMessagePortCustom.cpp:
1661         (WebCore::JSMessagePort::removeEventListener):
1662         * bindings/js/JSSVGElementInstanceCustom.cpp:
1663         (WebCore::JSSVGElementInstance::addEventListener):
1664         (WebCore::JSSVGElementInstance::removeEventListener):
1665         * bindings/js/JSXMLHttpRequestCustom.cpp:
1666         (WebCore::JSXMLHttpRequest::addEventListener):
1667         (WebCore::JSXMLHttpRequest::removeEventListener):
1668         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
1669         (WebCore::JSXMLHttpRequestUpload::addEventListener):
1670         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
1671         Use ScriptExecutionContext and JSDOMGlobalObject in bindings.
1672
1673         * dom/EventTarget.h:
1674         * dom/EventTargetNode.cpp:
1675         (WebCore::EventTargetNode::scriptExecutionContext):
1676         * dom/EventTargetNode.h:
1677         * dom/MessagePort.cpp:
1678         * dom/MessagePort.h:
1679         (WebCore::MessagePort::scriptExecutionContext):
1680         * loader/appcache/DOMApplicationCache.cpp:
1681         (WebCore::DOMApplicationCache::scriptExecutionContext):
1682         * loader/appcache/DOMApplicationCache.h:
1683         * svg/SVGElementInstance.cpp:
1684         (WebCore::SVGElementInstance::scriptExecutionContext):
1685         * svg/SVGElementInstance.h:
1686         * xml/XMLHttpRequest.cpp:
1687         (WebCore::XMLHttpRequest::scriptExecutionContext):
1688         * xml/XMLHttpRequest.h:
1689         * xml/XMLHttpRequestUpload.cpp:
1690         (WebCore::XMLHttpRequestUpload::scriptExecutionContext):
1691         * xml/XMLHttpRequestUpload.h:
1692         Remove associatedFrame() method, and provide scriptExecutionContext() where it wasn't
1693         available yet.
1694
1695 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
1696
1697         Rubber-stamped by Geoff Garen.
1698
1699         Rename SourceRange.h to SourceCode.h.
1700
1701         * ForwardingHeaders/kjs/SourceCode.h: Copied from ForwardingHeaders/kjs/SourceRange.h.
1702         * ForwardingHeaders/kjs/SourceRange.h: Removed.
1703         * bindings/js/StringSourceProvider.h:
1704         * bridge/NP_jsobject.cpp:
1705
1706 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
1707
1708         Reviewed by Darin Adler.
1709
1710         Bug 22019: Move JSC::Interpreter::shouldPrintExceptions() to WebCore::Console
1711         <https://bugs.webkit.org/show_bug.cgi?id=22019>
1712
1713         * WebCore.base.exp:
1714         * page/Console.cpp:
1715         (WebCore::printToStandardOut):
1716         (WebCore::Console::shouldPrintExceptions):
1717         (WebCore::Console::setShouldPrintExceptions):
1718         * page/Console.h:
1719
1720 2008-10-31  Dan Bernstein  <mitz@apple.com>
1721
1722         Reviewed by John Sullivan.
1723
1724         - WebCore part of <rdar://problem/6334641> Add WebView SPI for disabling document.cookie
1725
1726         * dom/Document.cpp:
1727         (WebCore::Document::cookie): Added checking if cookies are disabled.
1728         (WebCore::Document::setCookie): Ditto.
1729         * page/Navigator.cpp:
1730         (WebCore::Navigator::cookieEnabled): Ditto.
1731         * page/Page.cpp:
1732         (WebCore::Page::Page): Initialize m_cookieEnabled to true.
1733         * page/Page.h:
1734         (WebCore::Page::cookieEnabled): Added.
1735         (WebCore::Page::setCookieEnabled): Added.
1736
1737 2008-10-31  Adele Peterson  <adele@apple.com>
1738
1739         Reviewed by Darin Adler.
1740
1741         WebCore Windows part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
1742         https://bugs.webkit.org/show_bug.cgi?id=22008
1743
1744         * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): 
1745         Rename newIconForFile and newIconForFiles to createIconForFile and createIconForFiles.
1746         * platform/graphics/Icon.h: ditto.
1747         * platform/graphics/gtk/IconGtk.cpp:
1748         (WebCore::Icon::createIconForFile): ditto.
1749         (WebCore::Icon::createIconForFiles): ditto.
1750         * platform/graphics/mac/IconMac.mm:
1751         (WebCore::Icon::createIconForFile): ditto.
1752         (WebCore::Icon::createIconForFiles): ditto.
1753         * platform/graphics/qt/IconQt.cpp:
1754         (WebCore::Icon::createIconForFile): ditto.
1755         (WebCore::Icon::createIconForFiles): ditto.
1756         * platform/wx/TemporaryLinkStubs.cpp:
1757         (Icon::createIconForFile): ditto.
1758         (Icon::createIconForFiles): ditto.
1759         * platform/graphics/win/IconWin.cpp:
1760         (WebCore::Icon::createIconForFile): ditto.
1761         (WebCore::Icon::createIconForFiles): Add creation of an icon for multiple files.
1762
1763         * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):        
1764         Improve icon creation code to match new code in Icon::createIconForFiles
1765         
1766 2008-10-31  Timothy Hatcher  <timothy@apple.com>
1767
1768         Add manual tests that check breakpoints on a blockless body of "for" loops.
1769
1770         https://bugs.webkit.org/show_bug.cgi?id=22004
1771
1772         Reviewed by Darin Adler.
1773
1774         * manual-tests/inspector/debugger-pause-on-for-in-statements.html: Added.
1775         * manual-tests/inspector/debugger-pause-on-for-statements.html: Added.
1776
1777 2008-10-31  Darin Adler  <darin@apple.com>
1778
1779         - fix build
1780
1781         * platform/win/WCDataObject.cpp: Added missing include of "config.h".
1782
1783 2008-10-30  Alexey Proskuryakov  <ap@webkit.org>
1784
1785         Reviewed by Darin Adler.
1786
1787         https://bugs.webkit.org/show_bug.cgi?id=21970
1788         Make MessagePort event dispatch work in workers
1789
1790         * bindings/js/JSDOMGlobalObject.cpp:
1791         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
1792         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
1793         (WebCore::JSDOMGlobalObject::findJSEventListener):
1794         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
1795         (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
1796         (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
1797         (WebCore::JSDOMGlobalObject::jsEventListeners):
1798         (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
1799         (WebCore::JSDOMGlobalObject::jsUnprotectedEventListeners):
1800         (WebCore::JSDOMGlobalObject::jsUnprotectedInlineEventListeners):
1801         (WebCore::JSDOMGlobalObject::setCurrentEvent):
1802         (WebCore::JSDOMGlobalObject::currentEvent):
1803         (WebCore::toJSDOMGlobalObject):
1804         * bindings/js/JSDOMGlobalObject.h:
1805         * bindings/js/JSDOMWindowBase.cpp:
1806         (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
1807         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
1808         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
1809         * bindings/js/JSDOMWindowBase.h:
1810         Moved event listener tracking from JSDOMWindow to JSDOMGlobalObject.
1811
1812         * bindings/js/JSEventListener.cpp:
1813         (WebCore::JSAbstractEventListener::handleEvent):
1814         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
1815         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
1816         (WebCore::JSUnprotectedEventListener::globalObject):
1817         (WebCore::JSUnprotectedEventListener::clearGlobalObject):
1818         (WebCore::JSEventListener::JSEventListener):
1819         (WebCore::JSEventListener::~JSEventListener):
1820         (WebCore::JSEventListener::globalObject):
1821         (WebCore::JSEventListener::clearGlobalObject):
1822         (WebCore::JSLazyEventListener::JSLazyEventListener):
1823         (WebCore::JSLazyEventListener::parseCode):
1824         * bindings/js/JSEventListener.h:
1825         (WebCore::JSUnprotectedEventListener::create):
1826         (WebCore::JSEventListener::create):
1827         (WebCore::JSLazyEventListener::create):
1828         Changed to use JSDOMGlobalObject and ScriptExecutionContext.
1829
1830         * bindings/js/JSMessagePortCustom.cpp:
1831         (WebCore::JSMessagePort::startConversation):
1832         (WebCore::JSMessagePort::addEventListener):
1833         (WebCore::JSMessagePort::removeEventListener):
1834         (WebCore::JSMessagePort::setOnmessage):
1835         (WebCore::JSMessagePort::setOnclose):
1836         Updated bindings to work with JSDOMGlobalObject. Next step is to make code generator emit
1837         such code, and stop using a custom implementation for JSMessagePort inline event handler
1838         getters and setters.
1839
1840         * dom/Document.cpp:
1841         (WebCore::Document::virtualURL):
1842         * dom/Document.h:
1843         * dom/ScriptExecutionContext.h:
1844         Expose url() method on ScriptExecutionContext (necessary for compiling scripts in
1845         JSLazyEventListener).
1846
1847 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
1848
1849         Not reviewed.
1850
1851         Speculative wxWindows build fix.
1852
1853         * webcore-base.bkl:
1854
1855 2008-10-30  Mark Rowe  <mrowe@apple.com>
1856
1857         Reviewed by Jon Homeycutt.
1858
1859         Explicitly default to building for only the native architecture in debug and release builds.
1860
1861         * Configurations/DebugRelease.xcconfig:
1862
1863 2008-10-30  Cameron Zwarich  <zwarich@apple.com>
1864
1865         Rubber-stamped by Sam Weinig.
1866
1867         Create a debugger directory in JavaScriptCore and move the relevant
1868         files to it.
1869
1870         * ForwardingHeaders/debugger: Added.
1871         * ForwardingHeaders/debugger/Debugger.h: Copied from ForwardingHeaders/kjs/debugger.h.
1872         * ForwardingHeaders/debugger/DebuggerCallFrame.h: Copied from ForwardingHeaders/kjs/DebuggerCallFrame.h.
1873         * ForwardingHeaders/kjs/DebuggerCallFrame.h: Removed.
1874         * ForwardingHeaders/kjs/debugger.h: Removed.
1875         * WebCore.pro:
1876         * bindings/js/ScriptController.cpp:
1877         * inspector/JavaScriptCallFrame.cpp:
1878         * inspector/JavaScriptCallFrame.h:
1879         * inspector/JavaScriptDebugServer.cpp:
1880         * inspector/JavaScriptDebugServer.h:
1881
1882 2008-10-30  Tony Chang <tony@chromium.org>
1883
1884         Fix 2 Windows theme bugs:
1885         1) Checkboxes marked readonly were rendered incorrectly
1886         2) If a button has focus and is pressed, it was rendered
1887            as focused rather than pressed.
1888
1889         https://bugs.webkit.org/show_bug.cgi?id=21859
1890
1891         Reviewed by Dave Hyatt.
1892
1893         * rendering/RenderThemeWin.cpp:
1894         (WebCore::RenderThemeWin::determineState):
1895         (WebCore::RenderThemeWin::determineButtonState):
1896
1897 2008-10-30  Benjamin K. Stuhl  <bks24@cornell.edu>
1898
1899         gcc 4.3.3/linux-x86 generates "suggest parentheses around && within ||"
1900         warnings; add some parentheses to disambiguate things. No functional
1901         changes, so no tests.
1902
1903         https://bugs.webkit.org/show_bug.cgi?id=21973
1904         Add parentheses to clean up some gcc warnings
1905
1906         Reviewed by Dan Bernstein.
1907
1908         * platform/graphics/Font.h:
1909         (WebCore::Font::treatAsZeroWidthSpace):
1910
1911 2008-10-30  Aaron Boodman  <aa@chromium.org>
1912
1913         Added an explicit dependency on HashMap.h. It was getting pulled in via
1914         <kjs/identifier.h> in the case of JSC, causing errors for the Chromium port.
1915
1916         Reviewed by Darin Adler.
1917
1918         * platform/text/PlatformString.h:
1919
1920 2008-10-30  Greg Bolsinga  <bolsinga@apple.com>
1921
1922         Reviewed by Sam Weinig
1923
1924         https://bugs.webkit.org/show_bug.cgi?id=21967
1925         
1926         For some platforms the GeolocationService must be suspended and resumed.
1927
1928         * page/Geolocation.cpp:
1929         (WebCore::Geolocation::clearWatch): now uses Geolocation::hasListeners()
1930         (WebCore::Geolocation::suspend): calls GeolocationService::suspend() if there are listeners
1931         (WebCore::Geolocation::resume): calls GeolocationService::resume() if there are listeners
1932         (WebCore::Geolocation::geolocationServicePositionChanged): now uses Geolocation::hasListeners()
1933         * page/Geolocation.h:
1934         (WebCore::Geolocation::hasListeners): Indicates of the Geolocation has interested GeolocationService listeners
1935         * platform/GeolocationService.h:
1936         (WebCore::GeolocationService::suspend): empty implementation
1937         (WebCore::GeolocationService::resume): empty implementation
1938
1939 2008-10-30  Greg Bolsinga  <bolsinga@apple.com>
1940
1941         Reviewed by Sam Weinig
1942
1943         https://bugs.webkit.org/show_bug.cgi?id=21966
1944         
1945         The Geolocation spec was updated on 10/27/2008. This brings WebCore up to date.
1946         http://dev.w3.org/geo/api/spec-source.html
1947
1948         * page/Geolocation.cpp:
1949         (WebCore::Geolocation::GeoNotifier::GeoNotifier): PositionOptions' timeout now unsigned
1950         * page/Geoposition.cpp: velocity is now called speed
1951         (WebCore::Geoposition::toString):
1952         * page/Geoposition.h: velocity is now called speed
1953         (WebCore::Geoposition::create):
1954         (WebCore::Geoposition::speed):
1955         (WebCore::Geoposition::Geoposition):
1956         * page/Geoposition.idl: velocity is now called speed
1957         * page/PositionOptions.h: timeout is now unsigned
1958         (WebCore::PositionOptions::create):
1959         (WebCore::PositionOptions::timeout):
1960         (WebCore::PositionOptions::setTimeout):
1961         (WebCore::PositionOptions::PositionOptions):
1962         * page/PositionOptions.idl: timeout is now unsigned long
1963
1964 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
1965
1966         Also handle preserved newlines.
1967
1968         * editing/BreakBlockquoteCommand.cpp:
1969         (WebCore::BreakBlockquoteCommand::doApply):
1970
1971 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
1972
1973         Reviewed by Beth Dakin.
1974
1975         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
1976
1977         * editing/BreakBlockquoteCommand.cpp:
1978         (WebCore::BreakBlockquoteCommand::doApply): 
1979         Don't store the endingSelection() in selection, just call endingSelection() in the few places it's 
1980         needed.  This function is cheap since it just returns a reference to a Selection instead of creating one.
1981         Don't store an affinity.  In the one place that it was used, isLastVisiblePositionInNode(VisiblePosition(pos, affinity), topBlockquote),
1982         we now use visiblePos (in order to avoid VisiblePosition creation).
1983         Set pos after we delete the current selection (if there is one), and be consistent about what we set 
1984         pos to.  Before, we upstream()ed it if there was a selection to delete and left it alone otherwise.  In fact...
1985         ...we need to use downstream() for pos so that when a caret is at the boundary between two nodes, pos is 
1986         in the first node that we want to move.  This fixes the bug, since it lets code that checks for the case 
1987         where the caret is between text and a br work correctly.
1988
1989 2008-10-30  Yael Aharon  <yael.aharon@nokia.com>
1990
1991         Reviewed by Darin Adler.
1992
1993         Fix the Qt build.
1994
1995         https://bugs.webkit.org/show_bug.cgi?id=21969
1996
1997         * inspector/front-end/WebKit.qrc:
1998         * platform/graphics/qt/ImageBufferQt.cpp:
1999         (WebCore::ImageBufferData::ImageBufferData):
2000         (WebCore::ImageBuffer::ImageBuffer):
2001         (WebCore::ImageBuffer::context):
2002         (WebCore::ImageBuffer::image):
2003         (WebCore::ImageBuffer::toDataURL):
2004
2005 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
2006
2007         Reviewed by Darin Adler.
2008
2009         More preparation for:
2010         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
2011
2012         * editing/BreakBlockquoteCommand.cpp:
2013         (WebCore::BreakBlockquoteCommand::doApply): Added comments.  Don't need to use newStartNode.  If the 
2014         startNode needs to change, change it.  Afterwords, check to make sure that it hasn't left topBlockquote.  
2015         This is slightly stricter than before, where we just made sure that it still had a topBlockquote.  This 
2016         doesn't really fix a bug, since we can't really get into a situation where we move to a different 
2017         topBlockquote, but it simplifies the code.
2018
2019 2008-10-30  Dirk Schulze  <vbs85@gmx.de>
2020
2021         Reviewed by Alp Toker.
2022
2023         https://bugs.webkit.org/show_bug.cgi?id=21883
2024         [CAIRO] globalAlpha has to be stored and restored
2025
2026         Cairo's globalAlpha has to be stored and reloaded on calling
2027         save() and restore(). We use the power of GraphicsContextState for this.
2028
2029         * platform/graphics/GraphicsContextPrivate.h:
2030         (WebCore::GraphicsContextState::GraphicsContextState):
2031         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2032         (WebCore::GraphicsContext::fillPath):
2033         (WebCore::GraphicsContext::strokePath):
2034         (WebCore::GraphicsContext::setAlpha):
2035         (WebCore::GraphicsContext::getAlpha):
2036         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2037         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2038
2039 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
2040
2041         Reviewed by Maciej Stachowiak.
2042
2043         Rename "attachedToEventTargetNode" to "isInline".
2044
2045         Inline (onXXX) attributes are used not just with event target nodes, but also with Window,
2046         XMLHttpRequest, MessagePort et al.
2047
2048         Also renamed createHTMLEventHandler() (which was a leftover from earlier isHTMLEvent ->
2049         attachedToEventTargetNode rename made for SVG) to createInlineEventListener().
2050         And also renamed EventTargetNode, Document and Window "eventListenerForType" methods to
2051         "inlineEventListenerForType", as they work with inline listeners.
2052
2053         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2054         (WebCore::JSDOMApplicationCache::addEventListener):
2055         (WebCore::JSDOMApplicationCache::removeEventListener):
2056         * bindings/js/JSMessagePortCustom.cpp:
2057         (WebCore::JSMessagePort::setOnmessage):
2058         (WebCore::JSMessagePort::setOnclose):
2059         * bindings/js/JSXMLHttpRequestCustom.cpp:
2060         (WebCore::JSXMLHttpRequest::addEventListener):
2061         (WebCore::JSXMLHttpRequest::removeEventListener):
2062         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
2063         (WebCore::JSXMLHttpRequestUpload::addEventListener):
2064         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
2065         Pass a correct value for this argument - callers used to be confused, because they didn't
2066         consider themselves event target nodes. This doesn't affect behavior however, as the only
2067         difference between inline and non-inline event handlers is that the former treat
2068         "return false" as "event.preventDefault()", which is not important to any of these objects.
2069
2070         * bindings/js/JSEventListener.cpp: (WebCore::JSLazyEventListener::parseCode):
2071         Assert that isInline is true instead of checking its value, as the constructor of this class
2072         always sets it to true.
2073
2074         * bindings/js/JSDOMWindowBase.cpp:
2075         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
2076         (WebCore::JSDOMWindowBase::findJSEventListener):
2077         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
2078         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
2079         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
2080         (WebCore::JSDOMWindowBase::jsInlineEventListeners):
2081         (WebCore::JSDOMWindowBase::jsUnprotectedInlineEventListeners):
2082         * bindings/js/JSDOMWindowBase.h:
2083         * bindings/js/JSEventListener.cpp:
2084         (WebCore::JSAbstractEventListener::handleEvent):
2085         (WebCore::JSAbstractEventListener::isInline):
2086         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
2087         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
2088         (WebCore::JSEventListener::JSEventListener):
2089         (WebCore::JSEventListener::~JSEventListener):
2090         (WebCore::JSLazyEventListener::parseCode):
2091         * bindings/js/JSEventListener.h:
2092         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
2093         (WebCore::JSUnprotectedEventListener::create):
2094         (WebCore::JSEventListener::create):
2095         * bindings/js/ScriptController.cpp:
2096         (WebCore::ScriptController::createInlineEventHandler):
2097         * bindings/js/ScriptController.h:
2098         * dom/Document.cpp:
2099         (WebCore::Document::setWindowInlineEventListenerForType):
2100         (WebCore::Document::windowInlineEventListenerForType):
2101         (WebCore::Document::removeWindowInlineEventListenerForType):
2102         (WebCore::Document::createEventListener):
2103         (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute):
2104         * dom/Document.h:
2105         * dom/EventListener.h:
2106         (WebCore::EventListener::isInline):
2107         * dom/EventTargetNode.cpp:
2108         (WebCore::EventTargetNode::removeInlineEventListenerForType):
2109         (WebCore::EventTargetNode::setInlineEventListenerForType):
2110         (WebCore::EventTargetNode::setInlineEventListenerForTypeAndAttribute):
2111         (WebCore::EventTargetNode::inlineEventListenerForType):
2112         (WebCore::EventTargetNode::on*): (many methods)
2113         (WebCore::EventTargetNode::setOn*): (many methods)
2114         * dom/EventTargetNode.h:
2115         * editing/ReplaceSelectionCommand.cpp:
2116         (WebCore::ReplacementFragment::ReplacementFragment):
2117         * html/HTMLBodyElement.cpp:
2118         (WebCore::HTMLBodyElement::parseMappedAttribute):
2119         * html/HTMLButtonElement.cpp:
2120         (WebCore::HTMLButtonElement::parseMappedAttribute):
2121         * html/HTMLElement.cpp:
2122         (WebCore::HTMLElement::parseMappedAttribute):
2123         * html/HTMLFormElement.cpp:
2124         (WebCore::HTMLFormElement::parseMappedAttribute):
2125         * html/HTMLFrameElementBase.cpp:
2126         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
2127         * html/HTMLFrameSetElement.cpp:
2128         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
2129         * html/HTMLImageElement.cpp:
2130         (WebCore::HTMLImageElement::parseMappedAttribute):
2131         * html/HTMLInputElement.cpp:
2132         (WebCore::HTMLInputElement::parseMappedAttribute):
2133         * html/HTMLObjectElement.cpp:
2134         (WebCore::HTMLObjectElement::parseMappedAttribute):
2135         * html/HTMLScriptElement.cpp:
2136         (WebCore::HTMLScriptElement::parseMappedAttribute):
2137         * html/HTMLSelectElement.cpp:
2138         (WebCore::HTMLSelectElement::parseMappedAttribute):
2139         * html/HTMLTextAreaElement.cpp:
2140         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
2141         * page/AccessibilityRenderObject.cpp:
2142         (WebCore::AccessibilityRenderObject::mouseButtonListener):
2143         * page/DOMWindow.cpp:
2144         (WebCore::DOMWindow::setInlineEventListenerForType):
2145         (WebCore::DOMWindow::inlineEventListenerForType):
2146         (WebCore::DOMWindow::on*): (many methods)
2147         (WebCore::DOMWindow::setOn*): (many methods)
2148         * page/DOMWindow.h:
2149         * svg/SVGElement.cpp:
2150         (WebCore::SVGElement::parseMappedAttribute):
2151         * svg/SVGElementInstance.cpp:
2152         (WebCore::SVGElementInstance::on*): (many methods)
2153         (WebCore::SVGElementInstance::setOn*): (many methods)
2154         * svg/SVGSVGElement.cpp:
2155         (WebCore::SVGSVGElement::parseMappedAttribute):
2156         Rename things, as described above.
2157
2158 2008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
2159
2160         Reviewed and slightly changed by Holger Freyther.
2161
2162         Added all the files that need to be installed for the Inspector to
2163         work.
2164
2165         * GNUmakefile.am: Invoke the shell to get the files.
2166
2167 2008-10-29  Andrew Scherkus  <scherkus@chromium.org>
2168
2169         Reviewed by Darin Adler
2170
2171         Add MediaPlayerPrivateChromium to MediaPlayer
2172         https://bugs.webkit.org/show_bug.cgi?id=21930
2173
2174         * platform/graphics/MediaPlayer.cpp:
2175
2176 2008-10-29  Justin Garcia  <justin.garcia@apple.com>
2177
2178         Reviewed by Darin Adler.
2179
2180         Some preparation for:
2181         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
2182         
2183         Added an early return to avoid a level of if-nesting.  No other changes.  We probably don't
2184         need to rebalance whitespace before the early return but for now don't risk any change in behavior
2185         I'll revisit that later.
2186
2187         * editing/BreakBlockquoteCommand.cpp:
2188         (WebCore::BreakBlockquoteCommand::doApply):
2189
2190 2008-10-29  Kevin Ollivier  <kevino@theolliviers.com>
2191
2192         wx build fixes after addition of runtime and ImageBuffer changes.
2193         
2194         * platform/graphics/wx/ImageBufferData.h: Added.
2195         * platform/graphics/wx/ImageBufferWx.cpp:
2196         (WebCore::ImageBufferData::ImageBufferData):
2197         (WebCore::ImageBuffer::ImageBuffer):
2198         (WebCore::ImageBuffer::context):
2199         * webcore-base.bkl:
2200
2201 2008-10-29  Brett Wilson  <brettw@chromium.org>
2202
2203         Reviewed by Darin Adler
2204         https://bugs.webkit.org/attachment.cgi?id=24745
2205
2206         Allow Skia implementations to get text style changed notifications.
2207
2208         * platform/graphics/GraphicsContext.cpp:
2209
2210 2008-10-29  Timothy Hatcher  <timothy@apple.com>
2211
2212         Add a manual test that checks breakpoints on a blockless body of
2213         an "else" statement.
2214
2215         https://bugs.webkit.org/show_bug.cgi?id=21944
2216
2217         Reviewed by Maciej Stachowiak.
2218
2219         * manual-tests/inspector/debugger-pause-on-else-statements.html: Added.
2220
2221 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
2222
2223         Reviewed by Darin Adler.
2224
2225         https://bugs.webkit.org/show_bug.cgi?id=21921
2226         MessagePort messages are dispatched to documents that are not fully active
2227
2228         Covered by corrected fast/events/message-port-inactive-document.html
2229
2230         * bindings/js/JSEventListener.cpp:
2231         (WebCore::JSAbstractEventListener::handleEvent): Don't dispatch messages to contexts
2232         that are not fully active.
2233
2234 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
2235
2236         Reviewed by Sam Weinig.
2237
2238         https://bugs.webkit.org/show_bug.cgi?id=21922
2239         Expose MessagePort global constructor
2240
2241         Covered by existing dumper tests.
2242
2243         * dom/MessagePort.idl:
2244         * page/DOMWindow.idl:
2245
2246 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
2247
2248         Reviewed by Darin Adler.
2249
2250         https://bugs.webkit.org/show_bug.cgi?id=21924
2251         HashTable internal index is not always deleted
2252
2253         * bindings/js/JSDOMBinding.cpp: (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
2254         Call deleteTable for HashTables that are being deleted.
2255
2256 2008-10-28  Alexey Proskuryakov  <ap@webkit.org>
2257
2258         Reviewed by Darin Adler.
2259
2260         https://bugs.webkit.org/show_bug.cgi?id=21923
2261         Create an abstraction for script execution context
2262
2263         * GNUmakefile.am:
2264         * WebCore.pro:
2265         * WebCore.vcproj/WebCore.vcproj:
2266         * WebCore.xcodeproj/project.pbxproj:
2267         * WebCoreSources.bkl:
2268         Added ScriptExecutionContext.{h,cpp}.
2269
2270         * bindings/js/JSAudioConstructor.cpp:
2271         (WebCore::JSAudioConstructor::JSAudioConstructor):
2272         * bindings/js/JSAudioConstructor.h:
2273         * bindings/js/JSImageConstructor.cpp:
2274         (WebCore::JSImageConstructor::JSImageConstructor):
2275         * bindings/js/JSImageConstructor.h:
2276         * bindings/js/JSOptionConstructor.cpp:
2277         (WebCore::JSOptionConstructor::JSOptionConstructor):
2278         * bindings/js/JSOptionConstructor.h:
2279         * bindings/js/JSXMLHttpRequestConstructor.cpp:
2280         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
2281         * bindings/js/JSXMLHttpRequestConstructor.h:
2282         Pass ScriptExecutionContext instead of Document to make getDOMConstructor() happy.
2283         Since these objects can only work within documents now, it is immediately converted back
2284         to Document.
2285
2286         * bindings/js/JSMessageChannelConstructor.cpp:
2287         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
2288         (WebCore::JSMessageChannelConstructor::construct):
2289         * bindings/js/JSMessageChannelConstructor.h:
2290         (WebCore::JSMessageChannelConstructor::scriptExecutionContext):
2291         MessageChannel needs to be supported in workers right away, so the constructor operates with
2292         it directly.
2293
2294         * dom/ActiveDOMObject.cpp:
2295         (WebCore::ActiveDOMObject::ActiveDOMObject):
2296         (WebCore::ActiveDOMObject::~ActiveDOMObject):
2297         (WebCore::ActiveDOMObject::contextDestroyed):
2298         * dom/ActiveDOMObject.h:
2299         (WebCore::ActiveDOMObject::scriptExecutionContext):
2300         * bindings/js/JSDOMBinding.cpp:
2301         (WebCore::markActiveObjectsForContext):
2302         (WebCore::markCrossHeapDependentObjectsForContext):
2303         Use ScriptExecutionContext instead of Document, now that ActiveDOMObject and MessagePort
2304         tracking is handled by ScriptExecutionContext.
2305
2306         * bindings/js/JSDOMBinding.h: (WebCore::getDOMPrototype): Moved to JSDOMGlobalObject.
2307
2308         * bindings/js/JSDOMGlobalObject.h:
2309         (WebCore::getDOMConstructor): Moved to this file, as constructors live in JSDOMGlobalObject.
2310         Also, the two-argument version that used to be in JSDOMWindowBase.cpp need to be accessible
2311         to worker context implementation.
2312         (WebCore::scriptExecutionContext): Added a pure virtual method to access
2313         ScriptExecutionContext, implemented by subclasses.
2314
2315         * bindings/js/JSDOMWindowBase.h:
2316         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::scriptExecutionContext):
2317         Implement by returning the associated document. Note that this method currently gives bogus
2318         results after navigation - DOMWindow Frame reference is not zeroed out, so we get a document
2319         that is currently in the frame, not the one associated with this window.
2320
2321         * bindings/js/JSDedicatedWorkerConstructor.cpp: Removed unnecessary include of DOMWindow.h.
2322
2323         * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
2324         Call markActiveObjectsForContext() by its new name.
2325
2326         * dom/DedicatedWorker.cpp:
2327         (WebCore::DedicatedWorker::DedicatedWorker):
2328         (WebCore::DedicatedWorker::document):
2329         * dom/DedicatedWorker.h:
2330         * xml/XMLHttpRequest.cpp:
2331         (WebCore::XMLHttpRequest::document):
2332         * xml/XMLHttpRequest.h:
2333         Added a document() function that upcasts ScriptExecutionContext, as these objects only work
2334         within documents currently (at least for XMLHttpRequest, this will change soon though).
2335
2336         * dom/Document.cpp:
2337         (WebCore::Document::Document):
2338         (WebCore::Document::~Document):
2339         Moved active object and MessagePort tracking up to ScriptExecutionContext, to share code
2340         with workers.
2341         
2342         * dom/Document.h:
2343         (WebCore::Document::isDocument):
2344         (WebCore::Document::refScriptExecutionContext):
2345         (WebCore::Document::derefScriptExecutionContext):
2346         Inherit from ScriptExecutionContext.
2347
2348         * dom/MessageChannel.cpp:
2349         (WebCore::MessageChannel::MessageChannel):
2350         * dom/MessageChannel.h:
2351         (WebCore::MessageChannel::create):
2352         Use ScriptExecutionContext instead of Document.
2353
2354         * dom/MessagePort.cpp:
2355         (WebCore::CloseMessagePortTimer::CloseMessagePortTimer): Make m_port a RefPtr, because
2356         MessagePort doesn't ref() itself when posting this event any more (this is a fix for an
2357         unrelated issue that was causing random crashes in layout tests).
2358         (WebCore::MessagePort::MessagePort):
2359         (WebCore::MessagePort::~MessagePort):
2360         (WebCore::MessagePort::associatedFrame):
2361         (WebCore::MessagePort::clone):
2362         (WebCore::MessagePort::postMessage):
2363         (WebCore::MessagePort::startConversation):
2364         (WebCore::MessagePort::start):
2365         (WebCore::MessagePort::contextDestroyed):
2366         (WebCore::MessagePort::dispatchMessages):
2367         * dom/MessagePort.h:
2368         (WebCore::MessagePort::create):
2369         (WebCore::MessagePort::scriptExecutionContext):
2370         Use ScriptExecutionContext instead of Document. This is a step toward making MessagePort
2371         work in worker contexts - we need to also make some its method thread safe for cross-thread
2372         messaging, and make event dispatching thread safe.
2373
2374         * dom/ScriptExecutionContext.cpp: Added.
2375         * dom/ScriptExecutionContext.h: Added.
2376         ActiveDOMObject and MessagePort tracking is moved from Document.
2377         It is debatable whether ScriptExecutionContext should be a parent of Document or DOMWindow,
2378         but as I'm just moving Document code, and it is Document that is the main context object
2379         in our implementation currently.
2380         Changing ScriptExecutionContext to be a parent of DOMWindow causes a number of bugs that
2381         seem non-trivial to fix, and isn't really a part of this task.
2382
2383 2008-10-28  Alp Toker  <alp@nuanti.com>
2384
2385         List newly-added ImageBufferData.h in build system.
2386
2387         * GNUmakefile.am:
2388
2389 2008-10-28  Alp Toker  <alp@nuanti.com>
2390
2391         Reviewed by Cameron Zwarich.
2392
2393         De-list unused WebCore ForwardingHeaders to fix the dist target.
2394
2395         * GNUmakefile.am:
2396
2397 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
2398
2399         Not reviewed.
2400
2401         Attempt to fix the Windows build by generating Forwardingheaders for the
2402         runtime directory in JavaScriptCore.
2403
2404         * WebCore.vcproj/WebCore.vcproj:
2405
2406 2008-10-28  Justin Garcia  <justin.garcia@apple.com>
2407
2408         Reviewed by Darin Adler.
2409
2410         <rdar://problem/5188560> REGRESSION: Spell checker doesn't clear spelling/grammar marker after error is marked as Ignored
2411
2412         * editing/Editor.cpp:
2413         (WebCore::Editor::ignoreSpelling): Remove misspelling markers from the word.
2414         (WebCore::Editor::learnSpelling): Added a FIXME about <rdar://problem/5396072>, which 
2415         will probably require a change more complicated than just marking the learned word as 
2416         misspelled.  I'll address it with a separate patch.
2417         * editing/EditorCommand.cpp:
2418         (WebCore::executeIgnoreSpelling): Added.
2419         (WebCore::CommandEntry::): Added an entry for IgnoreSpelling.
2420
2421 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
2422
2423         Reviewed by Mark Rowe.
2424
2425         Move ForwardingHeaders to their correct location after the creation of
2426         the runtime directory in JavaScriptCore.
2427
2428         * ForwardingHeaders/kjs/ArrayPrototype.h: Removed.
2429         * ForwardingHeaders/kjs/BooleanObject.h: Removed.
2430         * ForwardingHeaders/kjs/CallData.h: Removed.
2431         * ForwardingHeaders/kjs/ConstructData.h: Removed.
2432         * ForwardingHeaders/kjs/DateInstance.h: Removed.
2433         * ForwardingHeaders/kjs/Error.h: Removed.
2434         * ForwardingHeaders/kjs/FunctionConstructor.h: Removed.
2435         * ForwardingHeaders/kjs/FunctionPrototype.h: Removed.
2436         * ForwardingHeaders/kjs/InternalFunction.h: Removed.
2437         * ForwardingHeaders/kjs/JSArray.h: Removed.
2438         * ForwardingHeaders/kjs/JSFunction.h: Removed.
2439         * ForwardingHeaders/kjs/JSGlobalObject.h: Removed.
2440         * ForwardingHeaders/kjs/JSNumberCell.h: Removed.
2441         * ForwardingHeaders/kjs/JSObject.h: Removed.
2442         * ForwardingHeaders/kjs/JSString.h: Removed.
2443         * ForwardingHeaders/kjs/JSValue.h: Removed.
2444         * ForwardingHeaders/kjs/ObjectPrototype.h: Removed.
2445         * ForwardingHeaders/kjs/PropertyMap.h: Removed.
2446         * ForwardingHeaders/kjs/PrototypeFunction.h: Removed.
2447         * ForwardingHeaders/kjs/StringObject.h: Removed.
2448         * ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h: Removed.
2449         * ForwardingHeaders/kjs/StringPrototype.h: Removed.
2450         * ForwardingHeaders/kjs/StructureID.h: Removed.
2451         * ForwardingHeaders/runtime: Added.
2452         * ForwardingHeaders/runtime/ArrayPrototype.h: Copied from ForwardingHeaders/kjs/ArrayPrototype.h.
2453         * ForwardingHeaders/runtime/BooleanObject.h: Copied from ForwardingHeaders/kjs/BooleanObject.h.
2454         * ForwardingHeaders/runtime/CallData.h: Copied from ForwardingHeaders/kjs/CallData.h.
2455         * ForwardingHeaders/runtime/ConstructData.h: Copied from ForwardingHeaders/kjs/ConstructData.h.
2456         * ForwardingHeaders/runtime/DateInstance.h: Copied from ForwardingHeaders/kjs/DateInstance.h.
2457         * ForwardingHeaders/runtime/Error.h: Copied from ForwardingHeaders/kjs/Error.h.
2458         * ForwardingHeaders/runtime/FunctionConstructor.h: Copied from ForwardingHeaders/kjs/FunctionConstructor.h.
2459         * ForwardingHeaders/runtime/FunctionPrototype.h: Copied from ForwardingHeaders/kjs/FunctionPrototype.h.
2460         * ForwardingHeaders/runtime/InternalFunction.h: Copied from ForwardingHeaders/kjs/InternalFunction.h.
2461         * ForwardingHeaders/runtime/JSArray.h: Copied from ForwardingHeaders/kjs/JSArray.h.
2462         * ForwardingHeaders/runtime/JSFunction.h: Copied from ForwardingHeaders/kjs/JSFunction.h.
2463         * ForwardingHeaders/runtime/JSGlobalObject.h: Copied from ForwardingHeaders/kjs/JSGlobalObject.h.
2464         * ForwardingHeaders/runtime/JSNumberCell.h: Copied from ForwardingHeaders/kjs/JSNumberCell.h.
2465         * ForwardingHeaders/runtime/JSObject.h: Copied from ForwardingHeaders/kjs/JSObject.h.
2466         * ForwardingHeaders/runtime/JSString.h: Copied from ForwardingHeaders/kjs/JSString.h.
2467         * ForwardingHeaders/runtime/JSValue.h: Copied from ForwardingHeaders/kjs/JSValue.h.
2468         * ForwardingHeaders/runtime/ObjectPrototype.h: Copied from ForwardingHeaders/kjs/ObjectPrototype.h.
2469         * ForwardingHeaders/runtime/PropertyMap.h: Copied from ForwardingHeaders/kjs/PropertyMap.h.
2470         * ForwardingHeaders/runtime/PrototypeFunction.h: Copied from ForwardingHeaders/kjs/PrototypeFunction.h.
2471         * ForwardingHeaders/runtime/StringObject.h: Copied from ForwardingHeaders/kjs/StringObject.h.
2472         * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h: Copied from ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h.
2473         * ForwardingHeaders/runtime/StringPrototype.h: Copied from ForwardingHeaders/kjs/StringPrototype.h.
2474         * ForwardingHeaders/runtime/StructureID.h: Copied from ForwardingHeaders/kjs/StructureID.h.
2475         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2476         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2477         * bindings/js/JSClipboardCustom.cpp:
2478         * bindings/js/JSConsoleCustom.cpp:
2479         * bindings/js/JSCustomPositionCallback.h:
2480         * bindings/js/JSCustomPositionErrorCallback.h:
2481         * bindings/js/JSCustomSQLStatementCallback.h:
2482         * bindings/js/JSCustomSQLStatementErrorCallback.h:
2483         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
2484         * bindings/js/JSCustomVoidCallback.h:
2485         * bindings/js/JSCustomXPathNSResolver.h:
2486         * bindings/js/JSDOMBinding.cpp:
2487         * bindings/js/JSDOMBinding.h:
2488         * bindings/js/JSDOMGlobalObject.h:
2489         * bindings/js/JSDOMWindowBase.cpp:
2490         * bindings/js/JSDOMWindowCustom.cpp:
2491         * bindings/js/JSDOMWindowShell.cpp:
2492         * bindings/js/JSDatabaseCustom.cpp:
2493         * bindings/js/JSEventListener.cpp:
2494         * bindings/js/JSEventTarget.h:
2495         * bindings/js/JSHTMLDocumentCustom.cpp:
2496         * bindings/js/JSHistoryCustom.cpp:
2497         * bindings/js/JSInspectedObjectWrapper.cpp:
2498         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
2499         * bindings/js/JSLocationCustom.cpp:
2500         * bindings/js/JSNodeFilterCondition.h:
2501         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2502         * bindings/js/JSQuarantinedObjectWrapper.h:
2503         * bindings/js/JSXMLHttpRequestCustom.cpp:
2504         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
2505         * bindings/objc/WebScriptObject.mm:
2506         * bindings/objc/WebScriptObjectPrivate.h:
2507         * bindings/scripts/CodeGeneratorJS.pm:
2508         * bridge/NP_jsobject.cpp:
2509         * bridge/c/c_instance.cpp:
2510         * bridge/c/c_utility.cpp:
2511         * bridge/c/c_utility.h:
2512         * bridge/jni/jni_instance.cpp:
2513         * bridge/jni/jni_jsobject.h:
2514         * bridge/jni/jni_jsobject.mm:
2515         * bridge/jni/jni_runtime.cpp:
2516         * bridge/jni/jni_utility.cpp:
2517         * bridge/jni/jni_utility.h:
2518         * bridge/objc/objc_instance.mm:
2519         * bridge/objc/objc_runtime.h:
2520         * bridge/objc/objc_runtime.mm:
2521         * bridge/objc/objc_utility.h:
2522         * bridge/objc/objc_utility.mm:
2523         * bridge/runtime.h:
2524         * bridge/runtime_array.cpp:
2525         * bridge/runtime_array.h:
2526         * bridge/runtime_method.cpp:
2527         * bridge/runtime_method.h:
2528         * bridge/runtime_object.cpp:
2529         * bridge/runtime_object.h:
2530         * bridge/runtime_root.cpp:
2531         * inspector/JavaScriptCallFrame.cpp:
2532         * inspector/JavaScriptProfile.cpp:
2533         * inspector/JavaScriptProfile.h:
2534         * inspector/JavaScriptProfileNode.cpp:
2535         * inspector/JavaScriptProfileNode.h:
2536         * loader/FrameLoader.cpp:
2537         * page/Console.cpp:
2538         * plugins/PluginView.cpp:
2539         * plugins/gtk/PluginViewGtk.cpp:
2540         * plugins/qt/PluginViewQt.cpp:
2541         * plugins/win/PluginViewWin.cpp:
2542
2543 2008-10-28  Adele Peterson  <adele@apple.com>
2544
2545         Windows build fix.  This removes Cairo include directories from non-Cairbo build configurations.
2546
2547         * WebCore.vcproj/WebCore.vcproj:
2548
2549 2008-10-28  Adele Peterson  <adele@apple.com>
2550
2551         Windows build fix.
2552
2553         * platform/graphics/ImageBuffer.h:
2554         (WebCore::ImageBuffer::create):
2555
2556 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
2557
2558         Not reviewed.
2559
2560         Roll out a mistaken attempt at fixing the GTK build in r37947.
2561
2562         * GNUmakefile.am:
2563
2564 2008-10-28  Adele Peterson  <adele@apple.com>
2565
2566         Reviewed by John Sullivan.
2567
2568         Fix for https://bugs.webkit.org/show_bug.cgi?id=21880
2569         "files" string for multifile uploads needs to be localized
2570
2571         * page/mac/WebCoreViewFactory.h:
2572         * platform/LocalizedStrings.h:
2573         * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth):
2574         * platform/gtk/LocalizedStringsGtk.cpp: (WebCore::multipleFileUploadText):
2575         * platform/mac/FileChooserMac.mm: (WebCore::FileChooser::basenameForWidth):
2576         * platform/mac/LocalizedStringsMac.mm: (WebCore::multipleFileUploadText):
2577         * platform/qt/Localizations.cpp: (WebCore::multipleFileUploadText):
2578         * platform/wx/LocalizedStringsWx.cpp: (WebCore::multipleFileUploadText):
2579
2580 2008-10-28  Brett Wilson  <brettw@chromium.org>
2581
2582         Reviewed by Darin Adler.
2583
2584         https://bugs.webkit.org/show_bug.cgi?id=21816
2585
2586         Remove platform ifdefs in ImageBuffer.h by moving platform specific code
2587         into a new PlatformImageBuffer class. Move the static create function
2588         into the header because it can be cross-platform. Initialization now
2589         happens in the cunstructor which sets a flag that create uses to know
2590         whether it should return null or not. I also made passing of IntSize
2591         more consistent (always by reference).
2592
2593         This change also changes the ifdefs in GraphicsContext to allow Skia
2594         ports to implement text drawing modes.
2595
2596         * platform/graphics/ImageBuffer.h:
2597         (WebCore::ImageBuffer::create):
2598         (WebCore::ImageBuffer::size):
2599         * platform/graphics/cairo/ImageBufferCairo.cpp:
2600         (WebCore::ImageBufferData::ImageBufferData):
2601         (WebCore::ImageBuffer::ImageBuffer):
2602         (WebCore::ImageBuffer::~ImageBuffer):
2603         (WebCore::ImageBuffer::image):
2604         (WebCore::ImageBuffer::getImageData):
2605         (WebCore::ImageBuffer::putImageData):
2606         * platform/graphics/cairo/ImageBufferData.h:
2607         * platform/graphics/cg/ImageBufferCG.cpp:
2608         (WebCore::ImageBufferData::ImageBufferData):
2609         (WebCore::ImageBuffer::ImageBuffer):
2610         (WebCore::ImageBuffer::~ImageBuffer):
2611         (WebCore::ImageBuffer::getImageData):
2612         (WebCore::ImageBuffer::putImageData):
2613         * platform/graphics/cg/ImageBufferData.h:
2614         * platform/graphics/qt/ImageBufferData.h:
2615         * platform/graphics/qt/ImageBufferQt.cpp:
2616         (WebCore::ImageBufferData::ImageBufferData):
2617         (WebCore::ImageBuffer::ImageBuffer):
2618         (WebCore::ImageBuffer::~ImageBuffer):
2619
2620 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
2621
2622         Not reviewed.
2623
2624         Fix the GTK build.
2625
2626         * GNUmakefile.am:
2627
2628 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
2629
2630         Not reviewed.
2631
2632         Another Qt build fix.
2633
2634         * WebCore.pro:
2635
2636 2008-10-28  Greg Bolsinga  <bolsinga@apple.com>
2637
2638         Reviewed by David Kilzer.
2639
2640         https://bugs.webkit.org/show_bug.cgi?id=21932
2641         Add non-pointer constant lookups to SoftLinking.h
2642
2643         * platform/mac/SoftLinking.h:
2644
2645 2008-10-28  Greg Bolsinga  <bolsinga@apple.com>
2646
2647         Reviewed by David Kilzer.
2648
2649         https://bugs.webkit.org/show_bug.cgi?id=2192
2650         Missing semi-colons in Geoposition.idl
2651
2652         * page/Geoposition.idl: Add missing semi-colons
2653
2654 2008-10-28  Timothy Hatcher  <timothy@apple.com>
2655
2656         Make the Profiles panel in the Web Inspector have an enable screen.
2657         Profiling now needs to be enabled before console.profile() works.
2658
2659         <rdar://problem/6211578> Make the JavaScript profiler opt-in, so it does
2660         not slow down JavaScript all the time
2661
2662         Reviewed by Darin Adler and Kevin McCullough.
2663
2664         * English.lproj/localizedStrings.js: New strings.
2665         * WebCore.base.exp: New and changed exports.
2666         * WebCore.vcproj/WebCore.vcproj: Add the PanelEnablerView.js file.
2667         * bindings/js/JSDOMWindowBase.cpp:
2668         (WebCore::JSDOMWindowBase::supportsProfiling): Call InspectorController:profilerEnabled.
2669         * inspector/InspectorController.cpp:
2670         (WebCore::InspectorController::InspectorController): Initialize the m_startProfiling
2671         Timer to call InspectorController::startUserInitiatedProfiling.
2672         (WebCore::InspectorController::startUserInitiatedProfilingSoon): Start a one-shot timer
2673         that calls InspectorController::startUserInitiatedProfiling.
2674         (WebCore::InspectorController::startUserInitiatedProfiling): Recompile all JavaScript
2675         and enable the profiler if the profiler was not enabled.
2676         (WebCore::InspectorController::stopUserInitiatedProfiling): Rearrange code for readability.
2677         (WebCore::InspectorController::enableProfiler): Recompile all the JavaScript functions
2678         if the skipRecompile argument is false. Call the profilerWasEnabled script function.
2679         (WebCore::InspectorController::disableProfiler): Recompile all the JavaScript functions.
2680         Call the profilerWasEnabled script function.
2681         (WebCore::InspectorController::disableDebugger): Set m_attachDebuggerWhenShown to false,
2682         so it won't be started later.
2683         * inspector/InspectorController.h:
2684         (WebCore::InspectorController::profilerEnabled): Return enabled() && m_profilerEnabled.
2685         * inspector/front-end/Images/debuggingButtons.png: Remove.
2686         * inspector/front-end/Images/enableButtons.png: Added.
2687         * inspector/front-end/Images/profilesSilhouette.png: Added.
2688         * inspector/front-end/Images/scriptsSilhouette.png: Added.
2689         * inspector/front-end/PanelEnablerView.js: Added.
2690         (WebInspector.PanelEnablerView):
2691         (WebInspector.PanelEnablerView.prototype._enableButtonCicked): Fire the "enable clicked"
2692         event so listeners can do their thing.
2693         (WebInspector.PanelEnablerView.prototype._windowResized): Test if the icon should be hidden.
2694         * inspector/front-end/ProfilesPanel.js:
2695         (WebInspector.ProfilesPanel): Create the PanelEnablerView and the strings needed for it.
2696         (WebInspector.ProfilesPanel.prototype.get statusBarItems): Include the enableToggleButton.
2697         (WebInspector.ProfilesPanel.prototype.profilerWasEnabled): Call reset and populateInterface.
2698         (WebInspector.ProfilesPanel.prototype.profilerWasDisabled): Call reset.
2699         (WebInspector.ProfilesPanel.prototype.reset): Call _updateInterface.
2700         (WebInspector.ProfilesPanel.prototype.setRecordingProfile): Moved in the code, no changes.
2701         (WebInspector.ProfilesPanel.prototype._updateInterface): Update the toggle button and
2702         show/hide other buttons. Also show/hide the PanelEnablerView.
2703         (WebInspector.ProfilesPanel.prototype._enableProfiling): Call _toggleProfiling if not enabled.
2704         (WebInspector.ProfilesPanel.prototype._toggleProfiling): Call InspectorController's
2705         disableProfiler or enableProfiler.
2706         * inspector/front-end/ScriptsPanel.js:
2707         (WebInspector.ScriptsPanel): Replace the overlay element with a PanelEnablerView. Replace the
2708         debuggingButton with the enableToggleButton.
2709         (WebInspector.ScriptsPanel.prototype.get statusBarItems): Replace the debuggingButton with
2710         the enableToggleButton.
2711         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Hide/show the pauseOnExceptionButton
2712         when needed. Replace the overlay element with a PanelEnablerView. Replace the debuggingButton
2713         with the enableToggleButton.
2714         (WebInspector.ScriptsPanel.prototype._enableDebugging): Call _toggleDebugging when not enabled.
2715         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Remove the call to _clearInterface,
2716         since reset is called from debuggerWasEnabled and debuggerWasDisabled.
2717         * inspector/front-end/View.js: Inherit from WebInspector.Object.
2718         * inspector/front-end/WebKit.qrc: Add the PanelEnablerView.js file.
2719         * inspector/front-end/inspector.css: New styles for the PanelEnablerView.
2720         * inspector/front-end/inspector.html: Add the PanelEnablerView.js file.
2721         * inspector/front-end/inspector.js:
2722         (WebInspector.profilerWasEnabled): Added. Calls the ProfilesPanel.
2723         (WebInspector.profilerWasDisabled): Ditto.
2724         * page/Console.cpp:
2725         (WebCore::Console::error): Remove null check for m_frame, since m_frame isn't used.
2726         (WebCore::Console::info): Ditto.
2727         (WebCore::Console::log): Ditto.
2728         (WebCore::Console::assertCondition): Ditto.
2729         (WebCore::Console::dirxml): Remove null check for m_frame and use this->page().
2730         (WebCore::Console::count): Ditto.
2731         (WebCore::Console::profile): Return early if InspectorController::profilerEnabled is false.
2732         (WebCore::Console::profileEnd): Ditto.
2733         (WebCore::Console::warn): Remove null check for m_frame, since m_frame isn't used.
2734         * page/Settings.cpp:
2735         (WebCore::Settings::Settings): Remove initialization of m_didInitializeDeveloperExtrasEnabled.
2736         (WebCore::Settings::setDeveloperExtrasEnabled): Remove code that recompiled functions.
2737         Now just sets the member boolean.
2738         * page/Settings.h: Remove m_didInitializeDeveloperExtrasEnabled.
2739
2740 2008-10-28  Timothy Hatcher  <timothy@apple.com>
2741
2742         Rename a few methods related to attaching and detaching the debugger. Also
2743         adds stub methods for enabling and disabling the profiler.
2744
2745         * Rename attachDebugger to enableDebugger.
2746         * Rename detachDebugger to disableDebugger.
2747         * Rename the debuggerAttached getter to debuggerEnabled.
2748         * Rename the debuggerAttached callback to debuggerWasEnabled.
2749         * Rename the debuggerDetached callback to debuggerWasDisabled.
2750
2751         Reviewed by Darin Adler.
2752
2753         * WebCore.base.exp:
2754         * inspector/InspectorController.cpp:
2755         (WebCore::InspectorController::InspectorController):
2756         (WebCore::InspectorController::setWindowVisible):
2757         (WebCore::InspectorController::windowScriptObjectAvailable):
2758         (WebCore::InspectorController::close):
2759         (WebCore::InspectorController::enableProfiler):
2760         (WebCore::InspectorController::disableProfiler):
2761         (WebCore::InspectorController::enableDebugger):
2762         (WebCore::InspectorController::disableDebugger):
2763         (WebCore::InspectorController::pauseInDebugger):
2764         (WebCore::InspectorController::resumeDebugger):
2765         (WebCore::InspectorController::stepOverStatementInDebugger):
2766         (WebCore::InspectorController::stepIntoStatementInDebugger):
2767         (WebCore::InspectorController::stepOutOfFunctionInDebugger):
2768         * inspector/InspectorController.h:
2769         (WebCore::InspectorController::profilerEnabled):
2770         (WebCore::InspectorController::debuggerEnabled):
2771         * inspector/front-end/BreakpointsSidebarPane.js:
2772         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
2773         (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
2774         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
2775         * inspector/front-end/Object.js:
2776         * inspector/front-end/ProfilesPanel.js:
2777         (WebInspector.ProfilesPanel):
2778         * inspector/front-end/ScriptsPanel.js:
2779         (WebInspector.ScriptsPanel):
2780         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
2781         (WebInspector.ScriptsPanel.prototype.debuggerWasEnabled):
2782         (WebInspector.ScriptsPanel.prototype.debuggerWasDetached):
2783         (WebInspector.ScriptsPanel.prototype.reset):
2784         (WebInspector.ScriptsPanel.prototype.canShowResource):
2785         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
2786         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
2787         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2788         * inspector/front-end/View.js:
2789         * inspector/front-end/inspector.css:
2790         * inspector/front-end/inspector.html:
2791         * inspector/front-end/inspector.js:
2792         (WebInspector.addResource):
2793         (WebInspector.debuggerWasEnabled):
2794         (WebInspector.debuggerWasDisabled):
2795
2796 2008-10-28  Timothy Hatcher  <timothy@apple.com>
2797
2798         Fix an exception when searching the Resources panel while there
2799         and resources queued to be added to the list.
2800
2801         Reviewed by Kevin McCullough.
2802
2803         * inspector/front-end/ResourcesPanel.js:
2804         (WebInspector.ResourcesPanel.prototype.searchCanceled): Null check
2805         the _resourcesTreeElement property.
2806         (WebInspector.ResourcesPanel.prototype.performSearch): Ditto.
2807
2808 2008-10-28  Alp Toker  <alp@nuanti.com>
2809
2810         GTK+ build fix for older versions of Pango where PANGO_VERSION_CHECK
2811         isn't defined.
2812
2813         * platform/graphics/gtk/FontGtk.cpp:
2814         (WebCore::getDefaultPangoLayout):
2815         * platform/graphics/gtk/FontPlatformDataPango.cpp:
2816
2817 2008-10-28  Alexey Proskuryakov  <ap@webkit.org>
2818
2819         Reviewed by Darin Adler.
2820
2821         https://bugs.webkit.org/show_bug.cgi?id=21893
2822         Character set is incorrect for external scripts in XHTML pages
2823
2824         <rdar://problem/6317451> Incorrect encoding for text in a popup at http://xpoint.ru/
2825
2826         Test: fast/encoding/external-script-charset.xhtml
2827
2828         Expose scriptCharset() function on all ScriptElements, and call it from XML tokenizer.
2829
2830         * dom/ScriptElement.h:
2831         * dom/XMLTokenizerLibxml2.cpp:
2832         (WebCore::XMLTokenizer::endElementNs):
2833         * dom/XMLTokenizerQt.cpp:
2834         (WebCore::XMLTokenizer::parseEndElement):
2835         * html/HTMLScriptElement.h:
2836         * svg/SVGScriptElement.cpp:
2837         (WebCore::SVGScriptElement::scriptCharset):
2838         * svg/SVGScriptElement.h:
2839
2840 2008-10-28  Alp Toker  <alp@nuanti.com>
2841
2842         Include copyright license files in the autotools dist target and
2843         exclude unused zlib headers.
2844
2845         Change suggested by Mike Hommey.
2846
2847         * GNUmakefile.am:
2848
2849 2008-10-27  Sam Weinig  <sam@webkit.org>
2850
2851         Reviewed by Maciej Stachowiak.
2852
2853         Clear the window shell when destroying a page to allow documents
2854         which have no way of being reached anymore, to be torn down.
2855
2856         * page/Frame.cpp:
2857         (WebCore::Frame::pageDestroyed):
2858
2859 2008-10-27  Kevin Watters  <kevinwatters@gmail.com>
2860
2861         Reviewed by Kevin Ollivier.
2862         
2863         Update the active state as well as the focused state as both need to be true
2864         for the caret to be drawn.
2865         
2866         https://bugs.webkit.org/show_bug.cgi?id=21900
2867
2868         * WebView.cpp:
2869         (wxWebView::OnSetFocus):
2870         (wxWebView::OnKillFocus):
2871
2872 2008-10-27  Kevin Ollivier  <kevino@theolliviers.com>
2873
2874         wx build fix on Linux/GTK. Enable support for #include <JavaScriptCore/XYZ.h> style includes.
2875
2876         * webcore-wx.bkl:
2877
2878 2008-10-27  Michael Knaup  <michael.knaup@mac.com>
2879
2880         Reviewed and tweaked by Darin Adler.
2881
2882         - https://bugs.webkit.org/show_bug.cgi?id=8988
2883
2884         Bug 8988: Add support for Mozilla CSS custom cursors.
2885         Added -webkit-grab and -webkit-grabbing cursor suppport
2886         for the Mac, dummy implementations for other platforms.
2887
2888         * css/CSSParser.cpp:
2889         (WebCore::CSSParser::parseValue): Updated since the
2890         -webkit-grabbing cursor is now the last one.
2891
2892         * css/CSSPrimitiveValueMappings.h:
2893         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added
2894         CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
2895
2896         * css/CSSValueKeywords.in: Added -webkit-grab and
2897         -webkit-grabbing.
2898
2899         * manual-tests/cursor.html: Added -webkit-zoom-in,
2900         webkit-zoom-out, -webkit-grab, and -webkit-grabbing.
2901
2902         * page/EventHandler.cpp:
2903         (WebCore::EventHandler::selectCursor): Added
2904         CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
2905
2906         * platform/Cursor.h: Added grabCursor and grabbingCursor.
2907
2908         * platform/gtk/CursorGtk.cpp:
2909         (WebCore::grabCursor): Added.
2910         (WebCore::grabbingCursor): Added.
2911         * platform/mac/CursorMac.mm:
2912         (WebCore::grabCursor): Added.
2913         (WebCore::grabbingCursor): Added.
2914         * platform/qt/CursorQt.cpp:
2915         (WebCore::grabCursor): Added.
2916         (WebCore::grabbingCursor): Added.
2917         * platform/win/CursorWin.cpp:
2918         (WebCore::grabCursor): Added.
2919         (WebCore::grabbingCursor): Added.
2920         * platform/wx/CursorWx.cpp:
2921         (WebCore::grabCursor): Added.
2922         (WebCore::grabbingCursor): Added.
2923
2924         * rendering/style/RenderStyleConstants.h:
2925         Added CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
2926         Also broke ECursor out into a single constant per line.
2927         Also added a couple of comments.
2928
2929 2008-10-27  Dimitri Glazkov  <dglazkov@chromium.org>
2930
2931         Reviewed by Darin Adler.
2932
2933         * svg/SVGAnimatedTemplate.h: needed a HashMap define
2934
2935 2008-10-21  Eric Seidel  <eric@webkit.org>
2936
2937         Reviewed by Dave Hyatt.
2938
2939         Infinite recursion crash in WebCore::RenderSVGRoot::absoluteClippedOverflowRect on a <stop> element outside of a gradient block
2940         https://bugs.webkit.org/show_bug.cgi?id=20400
2941
2942         Test: svg/custom/stop-crash.svg
2943
2944         * WebCore.xcodeproj/project.pbxproj:
2945         * rendering/RenderSVGGradientStop.h:
2946         (WebCore::RenderSVGGradientStop::absoluteClippedOverflowRect):
2947
2948 2008-10-27  Anders Carlsson  <andersca@apple.com>
2949
2950         Reviewed by Sam Weinig.
2951
2952         No need to call release if the connection is null.
2953         
2954         * platform/network/mac/ResourceHandleMac.mm:
2955         (WebCore::ResourceHandle::start):
2956
2957 2008-10-27  Anders Carlsson  <andersca@apple.com>
2958
2959         Reviewed by Kevin Decker.
2960
2961         <rdar://problem/6322650> Crash in fast/loader/simultaneous-reloads-assert.html
2962         
2963         Make sure to null check the NSURLConnection object.
2964         
2965         * platform/network/mac/ResourceHandleMac.mm:
2966         (WebCore::ResourceHandle::start):
2967         (WebCore::ResourceHandle::setDefersLoading):
2968
2969 2008-10-27  Alexey Proskuryakov  <ap@webkit.org>
2970
2971         Fix non-Mac builds.
2972
2973         * GNUmakefile.am:
2974         * WebCore.pro:
2975         * WebCore.vcproj/WebCore.vcproj:
2976         * WebCoreSources.bkl:
2977         Renamed JSHTMLOptionElementConstructor to JSOptionConstructor.
2978
2979 2008-10-26  Alexey Proskuryakov  <ap@webkit.org>
2980
2981         Reviewed by Sam Weinig.
2982
2983         https://bugs.webkit.org/show_bug.cgi?id=21886
2984         window.HTMLOptionElement == "[object HTMLElementConstructor]" instead of HTMLOptionElementConstructor
2985
2986         Test: fast/dom/HTMLOptionElement/option-prototype.html
2987
2988         We now have separate objects for window.Option and window.HTMLOptionElement - the latter
2989         "constructor" cannot be used to construct anything. This matches Firefox behavior.
2990
2991         * WebCore.xcodeproj/project.pbxproj:
2992         * bindings/js/JSDOMWindowBase.cpp:
2993         (jsDOMWindowBaseOption):
2994         * bindings/js/JSHTMLOptionElementConstructor.cpp: Removed.
2995         * bindings/js/JSHTMLOptionElementConstructor.h: Removed.
2996         * bindings/js/JSOptionConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLOptionElementConstructor.cpp.
2997         * bindings/js/JSOptionConstructor.h: Copied from WebCore/bindings/js/JSHTMLOptionElementConstructor.h.
2998         * html/HTMLOptionElement.idl:
2999         Renamed JSHTMLOptionElementConstructor to JSOptionConstructor.
3000
3001         * html/HTMLOptionElement.idl: Generate a constructor.
3002
3003 2008-10-25  Geoffrey Garen  <ggaren@apple.com>
3004
3005         Not reviewed.
3006         
3007         Try to fix Mac debug build on the buildbot.
3008
3009         * platform/FileChooser.cpp:
3010         (WebCore::FileChooserClient::~FileChooserClient):
3011         * platform/FileChooser.h: Moved destructor to .cpp file, to avoid a
3012         weak exported symbol.
3013
3014 2008-10-25  Jade Han  <jade.han@nokia.com>
3015
3016         Reviewed by Anders.
3017
3018         Enable custom properties for Qt runtime objects in QtWebKit
3019
3020         https://bugs.webkit.org/show_bug.cgi?id=21813
3021
3022         * bridge/runtime_object.cpp:
3023         (JSC::RuntimeObjectImp::getOwnPropertySlot):
3024         (JSC::RuntimeObjectImp::put):
3025
3026 2008-10-24  Sam Weinig  <sam@webkit.org>
3027
3028         Fix windows build.
3029
3030         * page/Chrome.cpp:
3031         * page/Chrome.h:
3032
3033 2008-10-24  Sam Weinig  <sam@webkit.org>
3034
3035         Fix Qt build.
3036
3037         * platform/qt/FileChooserQt.cpp:
3038
3039 2008-10-24  Sam Weinig  <sam@webkit.org>
3040
3041         Reviewed by Dan Bernstein.
3042
3043         Fix https://bugs.webkit.org/show_bug.cgi?id=21759
3044         Layering violation: FileChooser should not depend on Document/Frame/Page
3045
3046         Move file choosing into WebKit ChromeClient.
3047
3048         * loader/EmptyClients.h:
3049         (WebCore::EmptyChromeClient::runOpenPanel):
3050         * page/Chrome.cpp:
3051         (WebCore::Chrome::runOpenPanel):
3052         * page/Chrome.h:
3053         * page/ChromeClient.h:
3054         * page/mac/ChromeMac.mm:
3055         * platform/FileChooser.h:
3056         * platform/mac/FileChooserMac.mm:
3057         * platform/qt/FileChooserQt.cpp:
3058         * platform/win/FileChooserWin.cpp:
3059         * platform/wx/TemporaryLinkStubs.cpp:
3060         * rendering/RenderFileUploadControl.cpp:
3061         (WebCore::RenderFileUploadControl::click):
3062
3063 2008-10-24  Kevin Ollivier  <kevino@theolliviers.com>
3064
3065         wx build fix - add newIconForFiles stub.
3066
3067         * platform/wx/TemporaryLinkStubs.cpp:
3068         (Icon::newIconForFiles):
3069
3070 2008-10-24  Kevin Watters  <kevinwatters@gmail.com>
3071
3072         Reviewed by Kevin Ollivier.
3073
3074         Use the CGFont metrics APIs for more accurate measurements, and tweak the y
3075         value the text is drawn at (it was a couple pixels off before because wx
3076         internally adds to the y value.
3077
3078         https://bugs.webkit.org/show_bug.cgi?id=21853
3079
3080         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
3081         (wxFontProperties::wxFontProperties):
3082         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp:
3083         (WebCore::drawTextWithSpacing):
3084
3085 2008-10-24  Eric Seidel  <eric@webkit.org>
3086
3087         Reviewed by Sam Weinig.
3088
3089         Generate missing constructors and add test to prevent missing ones in the future
3090         https://bugs.webkit.org/show_bug.cgi?id=21846
3091
3092         Test: fast/js/global-constructors.html
3093
3094         * css/CSSStyleSheet.idl:
3095         * css/RGBColor.idl:
3096         * dom/NodeIterator.idl:
3097         * dom/TreeWalker.idl:
3098         * xml/XPathExpression.idl:
3099
3100 2008-10-24  Alexey Proskuryakov  <ap@webkit.org>
3101
3102         Reviewed by Darin Adler.
3103
3104         https://bugs.webkit.org/show_bug.cgi?id=21836
3105         REGRESSION: Sign-in on Fancast.com causes crash in Webkit nightly
3106
3107         Test: http/tests/xmlhttprequest/detaching-frame.html
3108
3109         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::dropProtection): Null check the window -
3110         even though XHR needs a context (AKA frame) to be serviced, the frame may be disconnected
3111         when dispatching the same callback that results in this function being called.
3112
3113 2008-10-24  David Kilzer  <ddkilzer@apple.com>
3114
3115         Gtk build fix.
3116
3117         * platform/gtk/TemporaryLinkStubs.cpp:
3118         (WebCore::setFocusRingColorChangeFunction): Removed in r37858.
3119
3120 2008-10-24  Mark Rowe  <mrowe@apple.com>
3121
3122         Reviewed by Sam Weinig.
3123
3124         <rdar://problem/6164952> Use constant kCGInterpolationMedium in GraphicsContextCG.cpp rather than hard-coded values.
3125
3126         * platform/graphics/cg/GraphicsContextCG.cpp:
3127         (WebCore::GraphicsContext::setImageInterpolationQuality):
3128         (WebCore::GraphicsContext::imageInterpolationQuality):
3129
3130 2008-10-24  Anders Carlsson  <andersca@apple.com>
3131
3132         Reviewed by Sam Weinig.
3133
3134         <rdar://problem/5440917> Support NPN_Construct
3135                 
3136         * WebCore.NPAPI.exp:
3137         Export _NPN_Construct.
3138         
3139         * bridge/NP_jsobject.cpp:
3140         (_NPN_Construct):
3141         Implement this.
3142         
3143         * bridge/c/c_instance.cpp:
3144         (JSC::Bindings::CInstance::supportsConstruct):
3145         (JSC::Bindings::CInstance::invokeConstruct):
3146         Have this call the appropriate NPClass method.
3147         
3148         * bridge/npruntime.h:
3149         Add NPN_Construct.
3150
3151         * bridge/npruntime_impl.h:
3152         Add _NPN_Construct.
3153         
3154         * bridge/runtime.h:
3155         (JSC::Bindings::Instance::supportsConstruct):
3156         (JSC::Bindings::Instance::invokeConstruct):
3157         New methods.
3158         
3159         * bridge/runtime_object.cpp:
3160         (JSC::callRuntimeConstructor):
3161         Call the native instance.
3162         
3163         (JSC::RuntimeObjectImp::getConstructData):
3164         Implement this.
3165         
3166         * bridge/runtime_object.h:
3167         Add new method declarations.
3168         
3169         * plugins/gtk/PluginPackageGtk.cpp:
3170         (WebCore::PluginPackage::load):
3171         * plugins/qt/PluginPackageQt.cpp:
3172         (WebCore::PluginPackage::load):
3173         * plugins/win/PluginPackageWin.cpp:
3174         (WebCore::PluginPackage::load):
3175         Initialize m_pluginFuncs.construct.
3176
3177 2008-10-24  Adele Peterson  <adele@apple.com>
3178
3179         Build fix.
3180
3181         * platform/FileChooser.h: (WebCore::FileChooserClient::~FileChooserClient):
3182         * platform/graphics/mac/IconMac.mm: (WebCore::Icon::newIconForFiles):
3183
3184 2008-10-24  Greg Bolsinga  <bolsinga@apple.com>
3185
3186         Fix GTK build break.
3187
3188         Reviewed by David Kilzer.
3189
3190         * GNUmakefile.am: Do not include .idl files whose generated files should not be
3191         compiled.
3192
3193 2008-10-24  David Kilzer  <ddkilzer@apple.com>
3194
3195         Wx build fix.
3196
3197         * platform/wx/TemporaryLinkStubs.cpp:
3198         (WebCore::setFocusRingColorChangeFunction): Removed in r37858.
3199
3200 2008-10-24  Adele Peterson  <adele@apple.com>
3201
3202         Reviewed by Sam Weinig.
3203
3204         WebCore part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
3205
3206         This change adds support for multiple file selection in an <input type="file"> control when the "multiple" attribute is used.
3207         This is consistent with the direction HTML5 will be going in the future.
3208
3209         The initial implementation here will show "n files" as the text next to the control when multiple files are selected.  You can view
3210         the individual files in a tooltip for now.  Improvements to this control will come later.  
3211
3212         Web developers will be able to access the FileList from the HTMLInputElement element, where they can get a base name and a size for each file.  
3213         These FileList Files can also be sent in an XMLHTTPRequest.
3214
3215         * manual-tests/post-multi-file-upload.html: Added.
3216         * manual-tests/resources/multiFileResources: Added.
3217         * manual-tests/resources/multiFileResources/post-echo-and-notify-done.cgi: Added.
3218         * manual-tests/resources/multiFileResources/testFile1.html: Added.
3219         * manual-tests/resources/multiFileResources/testFile2.html: Added.
3220         * manual-tests/resources/multiFileResources/testFile3.html: Added.
3221
3222         * WebCore.base.exp: Added support to export the new "chooseFilenames" method to be used in WebKit.
3223
3224         * html/HTMLInputElement.cpp:
3225         (WebCore::HTMLInputElement::parseMappedAttribute): Add support for the multiple attribute.
3226         (WebCore::HTMLInputElement::value): Added comments.  The HTML5 spec says that value shouldn't apply for the file upload control,
3227         but we don't want to break the behavior for existing websites that may rely on this.
3228         (WebCore::HTMLInputElement::setValue): ditto.
3229         (WebCore::HTMLInputElement::setValueFromRenderer): This is no longer used for file upload controls. setFileListFromRenderer is used instead.
3230         (WebCore::HTMLInputElement::setFileListFromRenderer): Added. 
3231         * html/HTMLInputElement.h:
3232
3233         * page/Chrome.cpp: (WebCore::Chrome::setToolTip): Show a tooltip with the file name list for the multi-file upload control.
3234
3235         * page/DragController.cpp: (WebCore::DragController::concludeDrag): Updated to support multiple files.
3236
3237         * platform/FileChooser.cpp: Add support for maintaining a list of file paths that can be retrieved by the renderer.
3238         (WebCore::FileChooser::FileChooser):
3239         (WebCore::FileChooser::create):
3240         (WebCore::FileChooser::clear):
3241         (WebCore::FileChooser::chooseFile):
3242         (WebCore::FileChooser::chooseFiles):
3243         (WebCore::FileChooser::chooseIcon):
3244         * platform/FileChooser.h:
3245         (WebCore::FileChooser::filePaths):
3246         (WebCore::FileChooser::allowsMultipleFiles):
3247
3248         * platform/graphics/Icon.h:
3249         * platform/graphics/mac/IconMac.mm: (WebCore::Icon::newIconForFiles): Returns a generic icon for multiple files.
3250         * platform/graphics/gtk/IconGtk.cpp: (WebCore::Icon::newIconForFiles): stubbed out.
3251         * platform/graphics/qt/IconQt.cpp: (WebCore::Icon::newIconForFiles): ditto.
3252         * platform/graphics/win/IconWin.cpp: (WebCore::Icon::newIconForFiles): ditto.
3253
3254         * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth):  Updated to deal with new filenames vector.
3255         * platform/mac/FileChooserMac.mm: (WebCore::FileChooser::basenameForWidth): ditto.
3256         * platform/qt/FileChooserQt.cpp:
3257         (WebCore::FileChooser::openFileChooser):
3258         (WebCore::FileChooser::basenameForWidth):
3259         * platform/win/FileChooserWin.cpp: (WebCore::FileChooser::basenameForWidth):
3260
3261         * platform/network/mac/FormDataStreamMac.mm: (WebCore::disassociateStreamWithResourceHandle):
3262         Removed unnecessary assertion.  This can get hit when connectionDidFinishLoading and cancel
3263         both get called for the same ResourceHandle.  This getting called twice has no negative effect.
3264
3265         * rendering/RenderFileUploadControl.cpp:
3266         (WebCore::RenderFileUploadControl::valueChanged):  Calls setFileListFromRenderer.
3267         (WebCore::RenderFileUploadControl::allowsMultipleFiles):  Added.
3268         (WebCore::RenderFileUploadControl::updateFromElement):  Uses the new filenames call from FileChooser.
3269         (WebCore::RenderFileUploadControl::receiveDroppedFiles):  Updated to support multiple files.
3270         * rendering/RenderFileUploadControl.h:
3271
3272 2008-10-23  Peter Kasting  <pkasting@google.com>
3273
3274         Reviewed by David Hyatt.
3275
3276         https://bugs.webkit.org/show_bug.cgi?id=21844
3277         Remove setFocusRingColorChangeFunction.
3278
3279         * page/Page.cpp:
3280         (WebCore::Page::Page):
3281         * platform/graphics/Color.h:
3282         * platform/graphics/mac/ColorMac.mm:
3283         (WebCore::focusRingColor):
3284         * platform/graphics/qt/GraphicsContextQt.cpp:
3285         * platform/graphics/win/ColorSafari.cpp:
3286
3287 2008-10-24  David Kilzer  <ddkilzer@apple.com>
3288
3289         Build fix for Qt.
3290
3291         Reviewed by Greg.
3292
3293         * WebCore.pro: Added missing *.idl files.
3294
3295 2008-10-24  Greg Bolsinga  <bolsinga@apple.com>
3296
3297         Reviewed by Sam Weinig.
3298
3299         https://bugs.webkit.org/show_bug.cgi?id=21475
3300         
3301         Provide support for the Geolocation API
3302         
3303         http://dev.w3.org/geo/api/spec-source.html
3304
3305         Test: geolocation/geolocation-not-implemented.html
3306
3307         * DerivedSources.make:
3308         * GNUmakefile.am: Added Geolocation support
3309         * WebCore.pro: Added Geolocation support
3310         * WebCore.vcproj/WebCore.vcproj: Added Geolocation support
3311         * WebCore.xcodeproj/project.pbxproj: Added Geolocation support
3312         * WebCoreSources.bkl: Added Geolocation support
3313         * bindings/js/JSCustomPositionCallback.cpp: Added.
3314         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
3315         (WebCore::JSCustomPositionCallback::handleEvent):
3316         * bindings/js/JSCustomPositionCallback.h: Added.
3317         (WebCore::JSCustomPositionCallback::create):
3318         * bindings/js/JSCustomPositionErrorCallback.cpp: Added.
3319         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
3320         (WebCore::JSCustomPositionErrorCallback::handleEvent):
3321         * bindings/js/JSCustomPositionErrorCallback.h: Added.
3322         (WebCore::JSCustomPositionErrorCallback::create):
3323         * bindings/js/JSDOMBinding.cpp: move markDOMObjectWrapper here from JSDOMWindowCustom
3324         (WebCore::markDOMObjectWrapper):
3325         * bindings/js/JSDOMBinding.h: move markDOMObjectWrapper here from JSDOMWindowCustom
3326         * bindings/js/JSDOMWindowCustom.cpp: move markDOMObjectWrapper to JSDOMBinding
3327         * bindings/js/JSGeolocationCustom.cpp: Added.
3328         (WebCore::JSGeolocation::getCurrentPosition):
3329         (WebCore::JSGeolocation::watchPosition):
3330         * bindings/js/JSNavigatorCustom.cpp: handle marking Geolocation
3331         (WebCore::JSNavigator::mark):
3332         * dom/Document.cpp:
3333         (WebCore::Document::Document):
3334         * dom/Document.h:
3335         (WebCore::Document::setUsingGeolocation):
3336         (WebCore::Document::usingGeolocation):
3337         * loader/FrameLoader.cpp: don't add to back forward cache if using Geolocation
3338         (WebCore::FrameLoader::canCachePage):
3339         * page/Geolocation.cpp: Added.
3340         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
3341         (WebCore::Geolocation::GeoNotifier::timerFired):
3342         (WebCore::Geolocation::Geolocation):
3343         (WebCore::Geolocation::disconnectFrame):
3344         (WebCore::Geolocation::getCurrentPosition):
3345         (WebCore::Geolocation::watchPosition):
3346         (WebCore::Geolocation::clearWatch):
3347         (WebCore::Geolocation::stopUpdatingIfEmpty):
3348         (WebCore::Geolocation::sendErrorToOneShots):
3349         (WebCore::Geolocation::sendErrorToWatchers):
3350         (WebCore::Geolocation::sendPositionToOneShots):
3351         (WebCore::Geolocation::sendPositionToWatchers):
3352         (WebCore::Geolocation::handleError):
3353         (WebCore::Geolocation::geolocationServicePositionChanged):
3354         (WebCore::Geolocation::geolocationServiceErrorOccurred):
3355         * page/Geolocation.h: Added.
3356         (WebCore::Geolocation::create):
3357         (WebCore::Geolocation::~Geolocation):
3358         (WebCore::Geolocation::lastPosition):
3359         (WebCore::Geolocation::GeoNotifier::create):
3360         * page/Geolocation.idl: Added.
3361         * page/Geoposition.cpp: Added.
3362         (WebCore::Geoposition::toString):
3363         * page/Geoposition.h: Added.
3364         (WebCore::Geoposition::create):
3365         (WebCore::Geoposition::latitude):
3366         (WebCore::Geoposition::longitude):
3367         (WebCore::Geoposition::altitude):
3368         (WebCore::Geoposition::accuracy):
3369         (WebCore::Geoposition::altitudeAccuracy):
3370         (WebCore::Geoposition::heading):
3371         (WebCore::Geoposition::velocity):
3372         (WebCore::Geoposition::timestamp):
3373         (WebCore::Geoposition::Geoposition):
3374         * page/Geoposition.idl: Added.
3375         * page/Navigator.cpp:
3376         (WebCore::Navigator::disconnectFrame): disconnect Geolocation
3377         (WebCore::Navigator::geolocation): accessor for Geolocation
3378         * page/Navigator.h:
3379         (WebCore::Navigator::optionalGeolocation): accessor for Geolocation
3380         * page/Navigator.idl: accessor for Geolocation
3381         * page/PositionCallback.h: Added.
3382         (WebCore::PositionCallback::~PositionCallback):
3383         * page/PositionCallback.idl: Added.
3384         * page/PositionError.h: Added.
3385         (WebCore::PositionError::):
3386         (WebCore::PositionError::create):
3387         (WebCore::PositionError::code):
3388         (WebCore::PositionError::message):
3389         (WebCore::PositionError::PositionError):
3390         * page/PositionError.idl: Added.
3391         * page/PositionErrorCallback.h: Added.
3392         (WebCore::PositionErrorCallback::~PositionErrorCallback):
3393         * page/PositionErrorCallback.idl: Added.
3394         * page/PositionOptions.h: Added.
3395         (WebCore::PositionOptions::create):
3396         (WebCore::PositionOptions::enableHighAccuracy):
3397         (WebCore::PositionOptions::setEnableHighAccuracy):
3398         (WebCore::PositionOptions::timeout):
3399         (WebCore::PositionOptions::setTimeout):
3400         (WebCore::PositionOptions::PositionOptions):
3401         * page/PositionOptions.idl: Added.
3402         * platform/GeolocationService.cpp: Added.
3403         (WebCore::GeolocationService::GeolocationService):
3404         (WebCore::GeolocationService::positionChanged):
3405         (WebCore::GeolocationService::errorOccurred):
3406         * platform/GeolocationService.h: Added.
3407         (WebCore::GeolocationServiceClient::~GeolocationServiceClient):
3408         (WebCore::GeolocationServiceClient::geolocationServicePositionChanged):
3409         (WebCore::GeolocationServiceClient::geolocationServiceErrorOccurred):
3410         (WebCore::GeolocationService::~GeolocationService):
3411
3412 2008-10-24  Simon Fraser  <simon.fraser@apple.com>
3413
3414         Reviewed by Darin Adler
3415
3416         https://bugs.webkit.org/show_bug.cgi?id=21818
3417         
3418         Add HashTraits for AtomicString so that AtomicString can be used as
3419         the key for a HashMap or HashSet.
3420
3421         * GNUmakefile.am: add AtomicStringHash.h
3422         * WebCore.vcproj/WebCore.vcproj: add AtomicStringHash.h
3423         * WebCore.xcodeproj/project.pbxproj: add AtomicStringHash.h
3424         * platform/text/AtomicString.h:
3425         (WebCore::AtomicString::AtomicString):
3426         (WebCore::AtomicString::isHashTableDeletedValue):
3427             specialize DefaultHash for AtomicString to use AtomicStringHash
3428         * platform/text/AtomicStringHash.h: Added.
3429         * platform/text/StringImpl.cpp:
3430         (WebCore::StringImpl::StringImpl):
3431             compute the hash up-front for the empty string
3432         * platform/text/StringImpl.h:
3433         (WebCore::StringImpl::existingHash):
3434             method to get the hash without a test and branch, for callers like
3435             AtomicStringHash who can guarantee that the hash has already been computed.
3436
3437 2008-10-24  Simon Fraser  <simon.fraser@apple.com>
3438
3439         Reviewed by Sam Weinig
3440
3441         https://bugs.webkit.org/show_bug.cgi?id=21857
3442
3443         Add WebKitCSSKeyframeRule and WebKitCSSKeyframesRule to the
3444         switch in _wrapCSSRule.
3445         
3446         * bindings/objc/DOMCSS.mm:
3447         (+[DOMCSSRule _wrapCSSRule:WebCore::]):
3448
3449 2008-10-24  Adam Roben  <aroben@apple.com>
3450
3451         Windows build fix
3452
3453         * plugins/PluginView.cpp:
3454
3455 2008-10-24  Dan Bernstein  <mitz@apple.com>
3456
3457         Reviewed by Sam Weinig.
3458
3459         - fix https://bugs.webkit.org/show_bug.cgi?id=21851
3460           <rdar://problem/6304151> REGRESSION (r36513): Crash when removing a widget with percent height
3461
3462         Test: fast/replaced/percent-height-in-anonymous-block-widget.html
3463
3464         * rendering/RenderWidget.cpp:
3465         (WebCore::RenderWidget::destroy): Copied code added to
3466         RenderBox::destroy() in r36513 into this function.
3467
3468 2008-10-24  Timothy Hatcher  <timothy@apple.com>
3469
3470         Add a mechanism to ask the InspectorClient for key/value setting pairs.
3471         These settings can be strings, numbers, booleans or string vectors. The
3472         settings are also bridged to and from JavaScript.
3473
3474         https://bugs.webkit.org/show_bug.cgi?id=21856
3475
3476         Reviewed by Darin Adler.
3477
3478         * WebCore.base.exp: Expose the String CFStringRef constructor.
3479         * inspector/InspectorClient.h:
3480         (WebCore::InspectorClient::populateSetting): Added, pure virtual.
3481         (WebCore::InspectorClient::storeSetting): Ditto.
3482         (WebCore::InspectorClient::removeSetting): Ditto.
3483         * inspector/InspectorController.cpp:
3484         (WebCore::setting): Calls InspectorController::setting and wraps the result in script types.
3485         (WebCore::setSetting): Calls InspectorController::setSetting after converting from script types.
3486         (WebCore::InspectorController::InspectorController): Increment a global static
3487         to track the number of live InspectorControllers.
3488         (WebCore::InspectorController::~InspectorController): Decrement the global static
3489         that tracks the number of live InspectorControllers. Delete the setting cache if there
3490         are no more live controllers.
3491         (WebCore::InspectorController::setting): Check the cache and return the setting from there,
3492         otherwise make a new Setting and ask the client to populate it.
3493         (WebCore::InspectorController::setSetting): Change the cache and ask the client to store it.
3494         (WebCore::InspectorController::windowScriptObjectAvailable): Add setting and setSetting
3495         to the InspectorController script class.
3496         * inspector/InspectorController.h:
3497         (WebCore::InspectorController::Setting::Setting):
3498         (WebCore::InspectorController::Setting::operator=):
3499         (WebCore::InspectorController::Setting::type): Return m_type.
3500         (WebCore::InspectorController::Setting::string): Return m_string. Assert the type is correct.
3501         (WebCore::InspectorController::Setting::stringVector): Return m_stringVector.
3502         Assert the type is correct.
3503         (WebCore::InspectorController::Setting::doubleValue): Return m_simpleContent.m_double.
3504         Assert the type is correct.
3505         (WebCore::InspectorController::Setting::integerValue): Return m_simpleContent.m_integer.
3506         Assert the type is correct.
3507         (WebCore::InspectorController::Setting::booleanValue): Return m_simpleContent.m_boolean.
3508         Assert the type is correct.
3509         (WebCore::InspectorController::Setting::set): Overloaded for each data type, sets the right
3510         field and the type.
3511         * loader/EmptyClients.h:
3512         (WebCore::EmptyInspectorClient::populateSetting): Added, empty method.
3513         (WebCore::EmptyInspectorClient::storeSetting): Ditto.
3514         (WebCore::EmptyInspectorClient::removeSetting): Ditto.
3515
3516 2008-10-24  Cameron Zwarich  <zwarich@apple.com>
3517
3518         Reviewed by Sam Weinig.
3519
3520         Remove some C-style casts.
3521
3522         * html/HTMLViewSourceDocument.cpp:
3523         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
3524
3525 2008-10-24  Darin Adler  <darin@apple.com>
3526
3527         - finish rolling out https://bugs.webkit.org/show_bug.cgi?id=21732
3528
3529         * bindings/js/JSAttrCustom.cpp:
3530         * bindings/js/JSCSSRuleCustom.cpp:
3531         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3532         * bindings/js/JSCSSValueCustom.cpp:
3533         * bindings/js/JSCanvasPixelArrayCustom.h:
3534         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
3535         * bindings/js/JSClipboardCustom.cpp:
3536         * bindings/js/JSConsoleCustom.cpp:
3537         * bindings/js/JSCustomSQLStatementCallback.cpp:
3538         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
3539         * bindings/js/JSCustomSQLTransactionCallback.cpp:
3540         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
3541         * bindings/js/JSCustomVoidCallback.cpp:
3542         * bindings/js/JSCustomVoidCallback.h:
3543         * bindings/js/JSCustomXPathNSResolver.cpp:
3544         * bindings/js/JSCustomXPathNSResolver.h:
3545         * bindings/js/JSDOMApplicationCacheCustom.cpp:
3546         * bindings/js/JSDOMBinding.cpp:
3547         * bindings/js/JSDOMBinding.h:
3548         * bindings/js/JSDOMWindowBase.cpp:
3549         * bindings/js/JSDOMWindowBase.h:
3550         * bindings/js/JSDOMWindowCustom.cpp:
3551         * bindings/js/JSDOMWindowCustom.h:
3552         * bindings/js/JSDOMWindowShell.cpp:
3553         * bindings/js/JSDOMWindowShell.h:
3554         * bindings/js/JSDatabaseCustom.cpp:
3555         * bindings/js/JSDedicatedWorkerCustom.cpp:
3556         * bindings/js/JSDocumentCustom.cpp:
3557         * bindings/js/JSElementCustom.cpp:
3558         * bindings/js/JSEventCustom.cpp:
3559         * bindings/js/JSEventListener.cpp:
3560         * bindings/js/JSEventTarget.cpp:
3561         * bindings/js/JSEventTarget.h:
3562         * bindings/js/JSEventTargetBase.h:
3563         * bindings/js/JSEventTargetNodeCustom.cpp:
3564         * bindings/js/JSHTMLAllCollection.h:
3565         * bindings/js/JSHTMLAppletElementCustom.cpp:
3566         * bindings/js/JSHTMLCollectionCustom.cpp:
3567         * bindings/js/JSHTMLDocumentCustom.cpp:
3568         * bindings/js/JSHTMLEmbedElementCustom.cpp:
3569         * bindings/js/JSHTMLFormElementCustom.cpp:
3570         * bindings/js/JSHTMLFrameElementCustom.cpp:
3571         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
3572         * bindings/js/JSHTMLIFrameElementCustom.cpp:
3573         * bindings/js/JSHTMLInputElementCustom.cpp:
3574         * bindings/js/JSHTMLObjectElementCustom.cpp:
3575         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
3576         * bindings/js/JSHTMLSelectElementCustom.cpp:
3577         * bindings/js/JSHTMLSelectElementCustom.h:
3578         * bindings/js/JSHistoryCustom.cpp:
3579         * bindings/js/JSImageDataCustom.cpp:
3580         * bindings/js/JSInspectedObjectWrapper.cpp:
3581         * bindings/js/JSInspectedObjectWrapper.h:
3582         * bindings/js/JSInspectorCallbackWrapper.cpp:
3583         * bindings/js/JSInspectorCallbackWrapper.h:
3584         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
3585         * bindings/js/JSLocationCustom.cpp:
3586         * bindings/js/JSMessagePortCustom.cpp:
3587         * bindings/js/JSMimeTypeArrayCustom.cpp:
3588         * bindings/js/JSNamedNodeMapCustom.cpp:
3589         * bindings/js/JSNamedNodesCollection.cpp:
3590         * bindings/js/JSNamedNodesCollection.h:
3591         * bindings/js/JSNavigatorCustom.cpp:
3592         * bindings/js/JSNodeCustom.cpp:
3593         * bindings/js/JSNodeFilterCondition.cpp:
3594         * bindings/js/JSNodeFilterCondition.h:
3595         * bindings/js/JSNodeFilterCustom.cpp:
3596         * bindings/js/JSNodeIteratorCustom.cpp:
3597         * bindings/js/JSNodeListCustom.cpp:
3598         * bindings/js/JSPluginArrayCustom.cpp:
3599         * bindings/js/JSPluginCustom.cpp:
3600         * bindings/js/JSPluginElementFunctions.cpp:
3601         * bindings/js/JSPluginElementFunctions.h:
3602         * bindings/js/JSQuarantinedObjectWrapper.cpp:
3603         * bindings/js/JSQuarantinedObjectWrapper.h:
3604         * bindings/js/JSRGBColor.cpp:
3605         * bindings/js/JSRGBColor.h:
3606         * bindings/js/JSSQLResultSetRowListCustom.cpp:
3607         * bindings/js/JSSQLTransactionCustom.cpp:
3608         * bindings/js/JSSVGElementInstanceCustom.cpp:
3609         * bindings/js/JSSVGLengthCustom.cpp:
3610         * bindings/js/JSSVGMatrixCustom.cpp:
3611         * bindings/js/JSSVGPathSegCustom.cpp:
3612         * bindings/js/JSSVGPathSegListCustom.cpp:
3613         * bindings/js/JSSVGPointListCustom.cpp:
3614         * bindings/js/JSSVGTransformListCustom.cpp:
3615         * bindings/js/JSStorageCustom.cpp:
3616         * bindings/js/JSStyleSheetCustom.cpp:
3617         * bindings/js/JSStyleSheetListCustom.cpp:
3618         * bindings/js/JSTextCustom.cpp:
3619         * bindings/js/JSTreeWalkerCustom.cpp:
3620         * bindings/js/JSXMLHttpRequestCustom.cpp:
3621         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
3622         * bindings/js/JSXSLTProcessorCustom.cpp:
3623         * bindings/js/ScheduledAction.cpp:
3624         * bindings/js/ScheduledAction.h:
3625         * bindings/js/ScriptController.cpp:
3626         * bindings/js/ScriptController.h:
3627         * bindings/objc/WebScriptObject.mm:
3628         * bindings/objc/WebScriptObjectPrivate.h:
3629         * bindings/scripts/CodeGeneratorJS.pm:
3630         * bridge/NP_jsobject.cpp:
3631         * bridge/c/c_instance.cpp:
3632         * bridge/c/c_instance.h:
3633         * bridge/c/c_runtime.cpp:
3634         * bridge/c/c_runtime.h:
3635         * bridge/c/c_utility.cpp:
3636         * bridge/c/c_utility.h:
3637         * bridge/jni/jni_instance.cpp:
3638         * bridge/jni/jni_instance.h:
3639         * bridge/jni/jni_jsobject.h:
3640         * bridge/jni/jni_jsobject.mm:
3641         * bridge/jni/jni_objc.mm:
3642         * bridge/jni/jni_runtime.cpp:
3643         * bridge/jni/jni_runtime.h:
3644         * bridge/jni/jni_utility.cpp:
3645         * bridge/jni/jni_utility.h:
3646         * bridge/objc/WebScriptObject.h:
3647         * bridge/objc/objc_class.h:
3648         * bridge/objc/objc_class.mm:
3649         * bridge/objc/objc_instance.h:
3650         * bridge/objc/objc_instance.mm:
3651         * bridge/objc/objc_runtime.h:
3652         * bridge/objc/objc_runtime.mm:
3653         * bridge/objc/objc_utility.h:
3654         * bridge/objc/objc_utility.mm:
3655         * bridge/qt/qt_class.cpp:
3656         * bridge/qt/qt_class.h:
3657         * bridge/qt/qt_instance.cpp:
3658         * bridge/qt/qt_instance.h:
3659         * bridge/qt/qt_runtime.cpp:
3660         * bridge/qt/qt_runtime.h:
3661         * bridge/runtime.cpp:
3662         * bridge/runtime.h:
3663         * bridge/runtime_array.cpp:
3664         * bridge/runtime_array.h:
3665         * bridge/runtime_method.cpp:
3666         * bridge/runtime_method.h:
3667         * bridge/runtime_object.cpp:
3668         * bridge/runtime_object.h:
3669         * bridge/testqtbindings.cpp:
3670         * inspector/JavaScriptCallFrame.cpp:
3671         * inspector/JavaScriptCallFrame.h:
3672         * inspector/JavaScriptProfile.cpp:
3673         * inspector/JavaScriptProfile.h:
3674         * inspector/JavaScriptProfileNode.cpp:
3675         * inspector/JavaScriptProfileNode.h:
3676         * loader/FrameLoader.cpp:
3677         * loader/FrameLoader.h:
3678         * page/Console.cpp:
3679         * page/Console.h:
3680         * plugins/MimeTypeArray.h:
3681         * plugins/Plugin.h:
3682         * plugins/PluginArray.h:
3683         * plugins/PluginView.cpp:
3684         * xml/XMLHttpRequest.cpp:
3685         Use JSValue* instead of JSValuePtr.
3686
3687 2008-10-24  Simon Hausmann  <hausmann@webkit.org>
3688
3689         Fix the Qt build.
3690
3691         * bridge/qt/qt_instance.cpp:
3692         (JSC::Bindings::QtField::valueFromInstance):
3693
3694 2008-10-24  David Kilzer  <ddkilzer@apple.com>
3695
3696         Rolled out r37840 and r37841.
3697
3698         * DerivedSources.make:
3699         * GNUmakefile.am:
3700         * WebCore.pro:
3701         * WebCore.vcproj/WebCore.vcproj:
3702         * WebCore.xcodeproj/project.pbxproj:
3703         * WebCoreSources.bkl:
3704         * bindings/js/JSCustomPositionCallback.cpp: Removed.
3705         * bindings/js/JSCustomPositionCallback.h: Removed.
3706         * bindings/js/JSCustomPositionErrorCallback.cpp: Removed.
3707         * bindings/js/JSCustomPositionErrorCallback.h: Removed.
3708         * bindings/js/JSDOMBinding.cpp:
3709         * bindings/js/JSDOMBinding.h:
3710         * bindings/js/JSDOMWindowCustom.cpp:
3711         (WebCore::markDOMObjectWrapper):
3712         * bindings/js/JSGeolocationCustom.cpp: Removed.
3713         * bindings/js/JSNavigatorCustom.cpp:
3714         * dom/Document.cpp:
3715         (WebCore::Document::Document):
3716         * dom/Document.h:
3717         * loader/FrameLoader.cpp:
3718         (WebCore::FrameLoader::canCachePage):
3719         * page/Geolocation.cpp: Removed.
3720         * page/Geolocation.h: Removed.
3721         * page/Geolocation.idl: Removed.
3722         * page/Geoposition.cpp: Removed.
3723         * page/Geoposition.h: Removed.
3724         * page/Geoposition.idl: Removed.
3725         * page/Navigator.cpp:
3726         (WebCore::Navigator::disconnectFrame):
3727         * page/Navigator.h:
3728         * page/Navigator.idl:
3729         * page/PositionCallback.h: Removed.
3730         * page/PositionCallback.idl: Removed.
3731         * page/PositionError.h: Removed.
3732         * page/PositionError.idl: Removed.
3733         * page/PositionErrorCallback.h: Removed.
3734         * page/PositionErrorCallback.idl: Removed.
3735         * page/PositionOptions.h: Removed.
3736         * page/PositionOptions.idl: Removed.
3737         * platform/GeolocationService.cpp: Removed.
3738         * platform/GeolocationService.h: Removed.
3739
3740 2008-10-23  David Kilzer  <ddkilzer@apple.com>
3741
3742         Attempt to fix GTK build.
3743
3744         * GNUmakefile.am: Added new *.idl files that were missing.
3745
3746 2008-10-23  Greg Bolsinga  <bolsinga@apple.com>
3747
3748         Reviewed by Sam Weinig.
3749
3750         https://bugs.webkit.org/show_bug.cgi?id=21475
3751         
3752         Provide support for the Geolocation API
3753         
3754         http://dev.w3.org/geo/api/spec-source.html
3755
3756         Test: geolocation/geolocation-not-implemented.html
3757
3758         * DerivedSources.make:
3759         * GNUmakefile.am: Added Geolocation support
3760         * WebCore.pro: Added Geolocation support
3761         * WebCore.vcproj/WebCore.vcproj: Added Geolocation support
3762         * WebCore.xcodeproj/project.pbxproj: Added Geolocation support
3763         * WebCoreSources.bkl: Added Geolocation support
3764         * bindings/js/JSCustomPositionCallback.cpp: Added.
3765         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
3766         (WebCore::JSCustomPositionCallback::handleEvent):
3767         * bindings/js/JSCustomPositionCallback.h: Added.
3768         (WebCore::JSCustomPositionCallback::create):
3769         * bindings/js/JSCustomPositionErrorCallback.cpp: Added.
3770         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
3771         (WebCore::JSCustomPositionErrorCallback::handleEvent):
3772         * bindings/js/JSCustomPositionErrorCallback.h: Added.
3773         (WebCore::JSCustomPositionErrorCallback::create):
3774         * bindings/js/JSDOMBinding.cpp: move markDOMObjectWrapper here from JSDOMWindowCustom
3775         (WebCore::markDOMObjectWrapper):
3776         * bindings/js/JSDOMBinding.h: move markDOMObjectWrapper here from JSDOMWindowCustom
3777         * bindings/js/JSDOMWindowCustom.cpp: move markDOMObjectWrapper to JSDOMBinding
3778         * bindings/js/JSGeolocationCustom.cpp: Added.
3779         (WebCore::JSGeolocation::getCurrentPosition):
3780         (WebCore::JSGeolocation::watchPosition):
3781         * bindings/js/JSNavigatorCustom.cpp: handle marking Geolocation
3782         (WebCore::JSNavigator::mark):
3783         * dom/Document.cpp:
3784         (WebCore::Document::Document):
3785         * dom/Document.h:
3786         (WebCore::Document::setUsingGeolocation):
3787         (WebCore::Document::usingGeolocation):
3788         * loader/FrameLoader.cpp: don't add to back forward cache if using Geolocation
3789         (WebCore::FrameLoader::canCachePage):
3790         * page/Geolocation.cpp: Added.
3791         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
3792         (WebCore::Geolocation::GeoNotifier::timerFired):
3793         (WebCore::Geolocation::Geolocation):
3794         (WebCore::Geolocation::disconnectFrame):
3795         (WebCore::Geolocation::getCurrentPosition):
3796         (WebCore::Geolocation::watchPosition):
3797         (WebCore::Geolocation::clearWatch):
3798         (WebCore::Geolocation::stopUpdatingIfEmpty):
3799         (WebCore::Geolocation::sendErrorToOneShots):
3800         (WebCore::Geolocation::sendErrorToWatchers):
3801         (WebCore::Geolocation::sendPositionToOneShots):
3802         (WebCore::Geolocation::sendPositionToWatchers):
3803         (WebCore::Geolocation::handleError):
3804         (WebCore::Geolocation::geolocationServicePositionChanged):
3805         (WebCore::Geolocation::geolocationServiceErrorOccurred):
3806         * page/Geolocation.h: Added.
3807         (WebCore::Geolocation::create):
3808         (WebCore::Geolocation::~Geolocation):
3809         (WebCore::Geolocation::lastPosition):
3810         (WebCore::Geolocation::GeoNotifier::create):
3811         * page/Geolocation.idl: Added.
3812         * page/Geoposition.cpp: Added.
3813         (WebCore::Geoposition::toString):
3814         * page/Geoposition.h: Added.
3815         (WebCore::Geoposition::create):
3816         (WebCore::Geoposition::latitude):
3817         (WebCore::Geoposition::longitude):
3818         (WebCore::Geoposition::altitude):
3819         (WebCore::Geoposition::accuracy):
3820         (WebCore::Geoposition::altitudeAccuracy):
3821         (WebCore::Geoposition::heading):
3822         (WebCore::Geoposition::velocity):
3823         (WebCore::Geoposition::timestamp):
3824         (WebCore::Geoposition::Geoposition):
3825         * page/Geoposition.idl: Added.
3826         * page/Navigator.cpp:
3827         (WebCore::Navigator::disconnectFrame): disconnect Geolocation
3828         (WebCore::Navigator::geolocation): accessor for Geolocation
3829         * page/Navigator.h:
3830         (WebCore::Navigator::optionalGeolocation): accessor for Geolocation
3831         * page/Navigator.idl: accessor for Geolocation
3832         * page/PositionCallback.h: Added.
3833         (WebCore::PositionCallback::~PositionCallback):
3834         * page/PositionCallback.idl: Added.
3835         * page/PositionError.h: Added.
3836         (WebCore::PositionError::):
3837         (WebCore::PositionError::create):
3838         (WebCore::PositionError::code):
3839         (WebCore::PositionError::message):
3840         (WebCore::PositionError::PositionError):
3841         * page/PositionError.idl: Added.
3842         * page/PositionErrorCallback.h: Added.
3843         (WebCore::PositionErrorCallback::~PositionErrorCallback):
3844         * page/PositionErrorCallback.idl: Added.
3845         * page/PositionOptions.h: Added.
3846         (WebCore::PositionOptions::create):
3847         (WebCore::PositionOptions::enableHighAccuracy):
3848         (WebCore::PositionOptions::setEnableHighAccuracy):
3849         (WebCore::PositionOptions::timeout):
3850         (WebCore::PositionOptions::setTimeout):
3851         (WebCore::PositionOptions::PositionOptions):
3852         * page/PositionOptions.idl: Added.
3853         * platform/GeolocationService.cpp: Added.
3854         (WebCore::GeolocationService::GeolocationService):
3855         (WebCore::GeolocationService::positionChanged):
3856         (WebCore::GeolocationService::errorOccurred):
3857         * platform/GeolocationService.h: Added.
3858         (WebCore::GeolocationServiceClient::~GeolocationServiceClient):
3859         (WebCore::GeolocationServiceClient::geolocationServicePositionChanged):
3860         (WebCore::GeolocationServiceClient::geolocationServiceErrorOccurred):
3861         (WebCore::GeolocationService::~GeolocationService):
3862
3863 2008-10-23  Alp Toker  <alp@nuanti.com>
3864
3865         Fix typo in comment in previous commit. GTK -> GLIB
3866
3867         * platform/gtk/guriescape.c:
3868
3869 2008-10-23  Kalle Vahlman  <kalle.vahlman@movial.com>
3870
3871         Reviewed by Alp Toker.
3872
3873         https://bugs.webkit.org/show_bug.cgi?id=21824
3874         [GTK] FileSystem abstraction uses features from Glib 2.16
3875
3876         Wrap g_uri_unescape_string() to fix building with pre-2.16 Glib
3877
3878         * platform/gtk/guriescape.c:
3879         (unescape_character):
3880         (_webcore_g_uri_unescape_segment):
3881         (_webcore_g_uri_unescape_string):
3882         * platform/gtk/guriescape.h:
3883
3884 2008-10-23  Jan Michael Alonzo  <jmalonzo@webkit.org>
3885
3886         Fix Gtk build typo introduced in http://trac.webkit.org/changeset/37826.
3887
3888         * GNUmakefile.am:
3889
3890 2008-10-23  Darin Fisher  <darin@chromium.org>
3891
3892         Reviewed by Eric Seidel.
3893
3894         m_frame null checked but then dereferenced
3895         https://bugs.webkit.org/show_bug.cgi?id=21845
3896
3897         This error was found using a static analysis tool, and so I do not know
3898         how to produce a null m_frame on entry to this method.  Hence, I have
3899         not included a regression test.
3900
3901         * page/EventHandler.cpp:
3902         (WebCore::EventHandler::allowDHTMLDrag): Add an early return.
3903
3904 2008-10-23  Dan Bernstein  <mitz@apple.com>
3905
3906         Reviewed by Sam Weinig with no hesitation.
3907
3908         - fix the HTML/CSS case of https://bugs.webkit.org/show_bug.cgi?id=19839
3909           <rdar://problem/6304805> A PDF,RLE sequence that should be a no-op affects bidi reordering
3910
3911         Test: fast/text/bidi-embedding-pop-and-push-same.html
3912
3913         * platform/text/BidiResolver.h:
3914         (WebCore::BidiResolver::embed): Changed to only add the embedding
3915         operation to a vector of pending operations.
3916
3917         (WebCore::BidiResolver::lowerExplicitEmbeddingLevel): Added. Moved the
3918         code that used to be in the PDF case of embed() here, except the part
3919         that sets the context.
3920
3921         (WebCore::BidiResolver::raiseExplicitEmbeddingLevel): Added. Moved the
3922         code that used to be in the non-PDF case of embed() here, except the
3923         part the sets the context.
3924
3925         (WebCore::BidiResolver::commitExplicitEmbedding): Added. Processes the
3926         explicit embedding operations in the vector by creating an updated
3927         context and determining the old and new embedding levels. If the levels
3928         are not the same, calls {lower,raise}ExplicitEmbeddingLevel(). Always
3929         sets the context to the new one.
3930
3931         (WebCore::BidiResolver::createBidiRunsForLine): Added calls to
3932         commitExplicitEmbedding() after calling embed() and after calling
3933         increment().
3934
3935         * rendering/bidi.cpp:
3936         (WebCore::bidiFirst): Added calls to commitExplicitEmbedding() because
3937         this function increments the resolver.
3938
3939         (WebCore::RenderBlock::skipLeadingWhitespace): Ditto.
3940
3941 2008-10-23  Jan Michael Alonzo  <jmalonzo@webkit.org>
3942
3943         Gtk build fix. Not reviewed.
3944
3945         Add DNSCurl and DNSSoup to the Gtk build
3946
3947         * GNUmakefile.am:
3948         * platform/gtk/TemporaryLinkStubs.cpp:
3949         * platform/network/soup/DNSSoup.cpp: Copied from WebCore/platform/network/curl/DNSCurl.cpp.
3950         (WebCore::prefetchDNS):
3951
3952 2008-10-23  Eric Seidel  <eric@webkit.org>
3953
3954         Reviewed by Sam Weinig.
3955
3956         Un-break the Darwin build.
3957
3958         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
3959         * platform/graphics/cg/ImageCG.cpp:
3960
3961 2008-10-23  Darin Fisher  <darin@chromium.org>
3962
3963         Reviewed by Eric Seidel.
3964
3965         Fix forward decls to be struct instead of class.
3966         https://bugs.webkit.org/show_bug.cgi?id=21838
3967
3968         * rendering/style/StyleRareInheritedData.h:
3969         * rendering/style/StyleRareNonInheritedData.h:
3970
3971 2008-10-23  Brent Fulgham  <bfulgham@gmail.com>
3972
3973         Reviewed by Oliver Hunt.
3974
3975         * platform/network/curl/ResourceRequest.h:  A better implementation
3976           of CFURLRequest, rather than void*.  This gives better compatibility 
3977           with the WebKit.idl interface.
3978         (WebCore::ResourceRequest::cfURLRequest):
3979
3980 2008-10-23  Mike Pinkerton  <pinkerton@chromium.org>
3981
3982         Reviewed by Eric Seidel.
3983
3984         PLATFORM(CHROMIUM) uses CG the same way PLATFORM(MAC) does so fix
3985         ifdefs to reflect that.
3986
3987         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
3988         * platform/graphics/cg/ImageCG.cpp:
3989
3990 2008-10-23  Peter Kasting  <pkasting@google.com>
3991
3992         Reviewed by Adam Roben.
3993
3994         https://bugs.webkit.org/show_bug.cgi?id=21833
3995         Place JavaScript Debugger hooks under #if ENABLE(JAVASCRIPT_DEBUGGER).
3996
3997         * inspector/InspectorController.cpp:
3998         (WebCore::InspectorController::InspectorController):
3999         (WebCore::InspectorController::setWindowVisible):
4000         (WebCore::InspectorController::windowScriptObjectAvailable):
4001         (WebCore::InspectorController::close):
4002         * inspector/InspectorController.h:
4003         * page/Page.cpp:
4004         (WebCore::Page::Page):
4005
4006 2008-10-23  Kevin McCullough  <kmccullough@apple.com>
4007
4008         Reviewed by Tim Hatcher.
4009
4010         https://bugs.webkit.org/show_bug.cgi?id=21817
4011         Bug 21817: Manual profiler tests should be made into layout tests
4012
4013         -Moving the tests before diffing so that it's clear what changed.
4014
4015         * manual-tests/inspector/profiler-test-anonymous-event-handler.html: Removed.
4016         * manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Removed.
4017         * manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Removed.
4018         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Removed.
4019         * manual-tests/inspector/profiler-test-apply.html: Removed.
4020         * manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Removed.
4021         * manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Removed.
4022         * manual-tests/inspector/profiler-test-call-nodelist-as-function.html: Removed.
4023         * manual-tests/inspector/profiler-test-calling-the-function-that-started-the-profiler-from-another-scope.html: Removed.
4024         * manual-tests/inspector/profiler-test-compare-multiple-profiles.html: Removed.
4025         * manual-tests/inspector/profiler-test-constructor.html: Removed.
4026         * manual-tests/inspector/profiler-test-dead-time.html: Removed.
4027         * manual-tests/inspector/profiler-test-deep-recursion.html: Removed.
4028         * manual-tests/inspector/profiler-test-document-dot-write.html: Removed.
4029         * manual-tests/inspector/profiler-test-event-handler.html: Removed.
4030         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Removed.
4031         * manual-tests/inspector/profiler-test-heavy-view.html: Removed.
4032         * manual-tests/inspector/profiler-test-inline-event-handler.html: Removed.
4033         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Removed.
4034         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Removed.
4035         * manual-tests/inspector/profiler-test-multiple-frames.html: Removed.
4036         * manual-tests/inspector/profiler-test-multiple-windows.html: Removed.
4037         * manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Removed.
4038         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Removed.
4039         * manual-tests/inspector/profiler-test-no-execution-context.html: Removed.
4040         * manual-tests/inspector/profiler-test-one-execution-context.html: Removed.
4041         * manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Removed.
4042         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Removed.
4043         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Removed.
4044         * manual-tests/inspector/profiler-test-simple-event-call.html: Removed.
4045         * manual-tests/inspector/profiler-test-simple-no-level-change.html: Removed.
4046         * manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Removed.
4047         * manual-tests/inspector/profiler-test-start-and-stop-profiling-in-the-same-function.html: Removed.
4048         * manual-tests/inspector/profiler-test-start-but-dont-stop-profiling.html: Removed.
4049         * manual-tests/inspector/profiler-test-stop-profiling-after-setTimeout.html: Removed.
4050         * manual-tests/inspector/profiler-test-stop-then-function-call.html: Removed.
4051         * manual-tests/inspector/profiler-test-throw-exception-from-eval.html: Removed.
4052         * manual-tests/inspector/profiler-test-two-execution-contexts.html: Removed.
4053         * manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Removed.
4054         * manual-tests/inspector/profiler-test-window-dot-eval.html: Removed.
4055         * manual-tests/inspector/resources/other-frame.html: Removed.
4056         * manual-tests/inspector/resources/other-window.html: Removed.
4057         * manual-tests/inspector/resources/profiler-test-JS-resources.js: Removed.
4058
4059 2008-10-23  Adam Barth  <abarth@webkit.org>
4060
4061         Reviewed by Sam Weinig.
4062
4063         https://bugs.webkit.org/show_bug.cgi?id=21826
4064
4065         Add accessor for SecurityOrigin::m_domainWasSetInDOM.
4066
4067         * page/SecurityOrigin.h:
4068         (WebCore::SecurityOrigin::domainWasSetInDOM):
4069
4070 2008-10-23  Darin Adler  <darin@apple.com>
4071
4072         - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
4073
4074         * bindings/js/ScheduledAction.h:
4075         * inspector/InspectorController.cpp:
4076         ProtectedPtr<JSValue> instead of ProtectedPtr<JSValuePtr>.
4077
4078 2008-10-23  Simon Hausmann  <hausmann@webkit.org>
4079
4080         Fix the Qt build.
4081
4082         * bridge/qt/qt_runtime.cpp:
4083         (JSC::Bindings::QtConnectionObject::execute):
4084         * bridge/qt/qt_runtime.h:
4085         (JSC::Bindings::QtRuntimeMethod::createStructureID):
4086
4087 2008-10-23  Alexey Proskuryakov  <ap@webkit.org>
4088
4089         Reviewed by Maciej Stachowiak.
4090
4091         https://bugs.webkit.org/show_bug.cgi?id=21825
4092         JSDOMBinding should not blindly cast the global object to JSDOMWindow
4093
4094         * bindings/js/JSDOMGlobalObject.cpp:
4095         * bindings/js/JSDOMGlobalObject.h:
4096         * GNUmakefile.am:
4097         * WebCore.pro:
4098         * WebCore.vcproj/WebCore.vcproj:
4099         * WebCore.xcodeproj/project.pbxproj:
4100         * WebCoreSources.bkl:
4101         Added JSDOMGlobalObject, a base class to be used by both Window and worker contexts.
4102
4103         * bindings/js/JSDOMBinding.cpp:
4104         (WebCore::getCachedDOMStructure):
4105         (WebCore::cacheDOMStructure):
4106         (WebCore::getCachedDOMConstructor):
4107         (WebCore::cacheDOMConstructor):
4108         Cast to JSDOMGlobalObject, as DOM objects live in DOM global objects.
4109
4110         * bindings/js/JSDOMWindowBase.cpp:
4111         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
4112         * bindings/js/JSDOMWindowBase.h:
4113         * bindings/js/JSDOMWindowCustom.cpp:
4114         (WebCore::JSDOMWindow::mark):
4115         Moved constructor and structure tracking to JSDOMGlobalObject.
4116
4117 2008-10-23  Adam Barth  <abarth@webkit.org>
4118
4119         Reviewed by Sam Weinig.
4120
4121         https://bugs.webkit.org/show_bug.cgi?id=21787
4122
4123         Update postMessage to send origin = "null" for non-serializable
4124         origins to match latest spec.  Merge SecurityOrigin::toString and
4125         SecurityOrigin::toHTTPOrigin because they are now the same.
4126
4127         Test: http/tests/security/postMessage/data-url-sends-null-origin.html
4128
4129         * loader/FrameLoader.cpp:
4130         (WebCore::FrameLoader::outgoingOrigin):
4131         (WebCore::FrameLoader::loadURL):
4132         (WebCore::FrameLoader::addHTTPOriginIfNeeded):
4133         (WebCore::FrameLoader::loadItem):
4134         * loader/loader.cpp:
4135         (WebCore::Loader::Host::servePendingRequests):
4136         * page/SecurityOrigin.cpp:
4137         (WebCore::SecurityOrigin::toString):
4138         * page/SecurityOrigin.h:
4139         * xml/XMLHttpRequest.cpp:
4140         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
4141         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
4142         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
4143         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
4144
4145 2008-10-22  David Kilzer  <ddkilzer@apple.com>
4146
4147         Bug 21781: WebCore::Settings should have a maximum decoded image size setting
4148
4149         <https://bugs.webkit.org/show_bug.cgi?id=21781>
4150
4151         Reviewed by Antti.
4152
4153         No tests since there is no change in behavior.
4154
4155         * loader/CachedImage.cpp:
4156         (WebCore::CachedImage::maximumDecodedImageSize): Added.  Returns
4157         WebCore::Settings::maximumDecodedImageSize() or 0 on error.
4158         (WebCore::CachedImage::data): Flag an error if the image being
4159         loaded is too big.
4160         * loader/CachedImage.h:
4161         (WebCore::CachedImage::maximumDecodedImageSize): Added declaration.
4162         * page/Settings.cpp:
4163         (WebCore::Settings::Settings): Initialize m_maximumDecodedImageSize
4164         to the maximum value of size_t.
4165         * page/Settings.h:
4166         (WebCore::Settings::setMaximumDecodedImageSize): Added method.
4167         (WebCore::Settings::maximumDecodedImageSize): Ditto.
4168
4169 2008-10-22  Mike Pinkerton  <pinkerton@chromium.org>
4170
4171         Reviewed by Dan Bernstein.
4172         Landed and tweaked a bit by Darin Adler.
4173
4174         - fix https://bugs.webkit.org/show_bug.cgi?id=21809
4175
4176         Remove PLATFORM(MAC) wrapping USE(ATSUI). It's redundant and inhibits 
4177         its use for PLATFORM(CHROMIUM) in the future.
4178
4179         * platform/graphics/SimpleFontData.h:
4180
4181 2008-10-22  David Smith  <catfish.man@gmail.com>
4182
4183         Reviewed by Anders Carlsson.
4184                
4185         https://bugs.webkit.org/show_bug.cgi?id=19974
4186         getElementsByClassName not live enough
4187
4188         Test: fast/dom/getElementsByClassName/015.html
4189
4190         * dom/StyledElement.cpp:
4191         (WebCore::StyledElement::classAttributeChanged): call dispatchSubtreeModifiedEvent()
4192
4193 2008-10-22  Darin Adler  <darin@apple.com>
4194
4195         Reviewed by Sam Weinig.
4196
4197         - fix https://bugs.webkit.org/show_bug.cgi?id=21294
4198           Bug 21294: Devirtualize getOwnPropertySlot()
4199
4200         * bindings/js/JSDOMWindowShell.h:
4201         (WebCore::JSDOMWindowShell::createStructureID): Added. Returns a structure without
4202         HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
4203
4204         * bindings/js/JSInspectorCallbackWrapper.cpp:
4205         (WebCore::JSInspectorCallbackWrapper::wrap): Change to use a unique structure
4206         for this class rather than sharing nullProtoStructureID, which no longer exists.
4207
4208         * bindings/js/JSNamedNodesCollection.h:
4209         (WebCore::JSNamedNodesCollection::createStructureID): Added. Returns a structure without
4210         HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.