b54c59ce5930760843708c17c72e5e65cdb22dae
[WebKit-https.git] / WebCore / ChangeLog
1 2008-04-17  Adam Roben  <aroben@apple.com>
2
3         Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash
4
5         <https://bugs.webkit.org/show_bug.cgi?id=18544>
6
7         r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
8         the context parameter. The caller in XSLTProcessor was changed, but
9         the one in XSLStyleSheet was missed.
10
11         Reviewed by Alexey Proskuryakov.
12
13         * xml/XSLStyleSheet.cpp:
14         (WebCore::XSLStyleSheet::parseString): Pass the Console as the context
15         to parseErrorFunc.
16
17 2008-04-17  Adam Roben  <aroben@apple.com>
18
19         Windows build fix after r31981
20
21         * dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
22
23 2008-04-17  Ariya Hidayat  <ariya.hidayat@trolltech.com>
24
25         Reviewed by Simon.
26
27         Implemented getFileModificationTime and pathGetFileName for the Qt port.
28
29         * platform/qt/FileSystemQt.cpp:
30         (WebCore::getFileModificationTime):
31
32 2008-04-17  Mark Rowe  <mrowe@apple.com>
33
34         Fix the non-Mac builds that I broke with my Mac build fix.
35
36         * css/CSSMutableStyleDeclaration.cpp:
37         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max
38         to avoid making assumptions about sizeof(size_t).
39
40 2008-04-17  Mark Rowe  <mrowe@apple.com>
41
42         Rubber-stamped by Dan Bernstein.
43
44         Fix the Mac build.
45
46         * css/CSSMutableStyleDeclaration.cpp:
47         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
48         * dom/NamedNodeMap.h: Ditto.
49         * page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.
50
51 2008-04-16  Jon Honeycutt  <jhoneycutt@apple.com>
52
53         Reviewed by Darin.
54
55         Use size_t instead of unsigned where appropriate.
56
57         * css/CSSValueList.h:
58         * dom/NamedAttrMap.h:
59         * rendering/RenderStyle.h:
60
61 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
62
63         Reviewed by Darin.
64
65         Add some methods to check AccessibilityObject state.
66
67         * page/AccessibilityObject.cpp:
68         (WebCore::AccessibilityObject::AccessibilityObject): Assert that the
69         passed renderer is not null.
70         (WebCore::AccessibilityObject::isPasswordField): Refactored to use early
71         return.
72         (WebCore::AccessibilityObject::isPressed): Return true if this is a
73         button in the pressed state.
74         (WebCore::AccessibilityObject::isIndeterminate): Return true if this is
75         a tri-state checkbox in the indeterminate state.
76         (WebCore::AccessibilityObject::isChecked): True if this is a radio
77         button or checkbox in the checked state.
78         (WebCore::AccessibilityObject::isHovered): True if object is currently
79         under the mouse cursor.
80         (WebCore::AccessibilityObject::isMultiSelect): True if this is a select
81         element capable of multi-select.
82         (WebCore::AccessibilityObject::isReadOnly): False if this object has
83         editable content.
84         (WebCore::AccessibilityObject::isOffScreen): True if this object is not
85         in the visible portion of the view.
86         * page/AccessibilityObject.h: Grouped methods into is-state and is-kind.
87
88 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
89
90         Reviewed by Darin.
91
92         Add AccessibilityObjectWrapper to Windows.
93
94         * WebCore.vcproj/WebCore.vcproj: Add AccessibilityObjectWrapperWin.h
95         * page/AccessibilityObject.h: Include COMPtr.h,
96         AccessibilityObjectWrapperWin.h on Windows. Define wrapper() and
97         setWrapper() if accessibility is present. Add an m_wrapper on Windows.
98         * page/AccessibilityObject.cpp:
99         (WebCore::AccessibilityObject::detach): Clear m_wrapper if
100         accessibility is present.
101         * page/win/AccessibilityObjectWrapperWin.h: Added; defines a wrapper for
102         AccessibilityObjects on Windows.
103         (WebCore::AccessibilityObjectWrapper::attached): Return true if attached
104         to an object.
105         (WebCore::AccessibilityObjectWrapper::accessibilityObject): Return the
106         wrapped object.
107         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
108
109 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
110
111         Reviewed by Darin.
112
113         Add AXObjectCache to Windows.
114
115         * WebCore.vcproj/WebCore.vcproj: Add AXObjectCacheWin.cpp.
116         * page/AXObjectCache.h: Add handleFocusedUIElementChanged definition to
117         non-Mac platforms, and added stub for it. Replace PLATFORM(MAC)
118         conditional with HAVE(ACCESSIBILITY) for stubs.
119         (WebCore::AXObjectCache::enableAccessibility):
120         (WebCore::AXObjectCache::accessibilityEnabled):
121         * page/win/AXObjectCacheWin.cpp: Added; contains stubs for the methods
122         below.
123         (WebCore::AXObjectCache::detachWrapper):
124         (WebCore::AXObjectCache::attachWrapper):
125         (WebCore::AXObjectCache::postNotification):
126         (WebCore::AXObjectCache::postNotificationToElement):
127         * config.h: Define HAVE_ACCESSIBILITY on Mac and Windows.
128
129 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
130
131         Reviewed by Darin.
132
133         * WebCore.vcproj/WebCore.vcproj: Fix path to AXObjectCache.h.
134
135 2008-04-16  Brady Eidson  <beidson@apple.com>
136
137         Reviewed by Darin Adler
138
139         Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
140         Add "LocalStorageArea" and "SessionStorageArea" implementations, and have SessionStorage
141         and LocalStorage instantiate the appropriate type of StorageArea object.
142
143         This purpose of this change is because while adding the persistent store to LocalStorage,
144         it became obvious that the client approach wasn't scaling well.  Additionally, a StorageArea
145         backing a local storage area required vastly different data members compared to one backing
146         a session storage area.
147
148         This will be much cleaner going forward.
149
150         * GNUmakefile.am:
151         * WebCore.pro:
152         * WebCore.vcproj/WebCore.vcproj:
153         * WebCore.xcodeproj/project.pbxproj:
154         * WebCoreSources.bkl:
155
156         * storage/LocalStorage.cpp:
157         (WebCore::LocalStorage::storageArea):
158         * storage/LocalStorage.h:
159
160         * storage/LocalStorageArea.cpp: Added.
161         (WebCore::LocalStorageArea::LocalStorageArea):
162         (WebCore::LocalStorageArea::itemChanged):
163         (WebCore::LocalStorageArea::itemRemoved):
164         (WebCore::LocalStorageArea::dispatchStorageEvent):
165         * storage/LocalStorageArea.h: Added.
166         (WebCore::LocalStorageArea::create):
167
168         * storage/SessionStorage.cpp:
169         (WebCore::SessionStorage::copy):
170         (WebCore::SessionStorage::storageArea):
171         * storage/SessionStorage.h:
172
173         * storage/SessionStorageArea.cpp: Added.
174         (WebCore::SessionStorageArea::copy):
175         (WebCore::SessionStorageArea::SessionStorageArea):
176         (WebCore::SessionStorageArea::itemChanged):
177         (WebCore::SessionStorageArea::itemRemoved):
178         (WebCore::SessionStorageArea::dispatchStorageEvent):
179         * storage/SessionStorageArea.h: Added.
180         (WebCore::SessionStorageArea::create):
181         (WebCore::SessionStorageArea::page):
182
183         * storage/StorageArea.cpp:
184         (WebCore::StorageArea::StorageArea):
185         (WebCore::StorageArea::setItem):
186         (WebCore::StorageArea::removeItem):
187         (WebCore::StorageArea::storageMap):
188         * storage/StorageArea.h:
189
190         * storage/StorageAreaClient.h: Removed.
191
192 2008-04-16  David Hyatt  <hyatt@apple.com>
193
194         Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.
195
196         Reviewed by olliej
197
198         Added fast/canvas/canvas-bg.html
199
200         * GNUmakefile.am:
201         * WebCore.pro:
202         * WebCore.vcproj/WebCore.vcproj:
203         * WebCore.xcodeproj/project.pbxproj:
204         * WebCoreSources.bkl:
205         * css/CSSCanvasValue.cpp: Added.
206         (WebCore::CSSCanvasValue::~CSSCanvasValue):
207         (WebCore::CSSCanvasValue::cssText):
208         (WebCore::CSSCanvasValue::canvasChanged):
209         (WebCore::CSSCanvasValue::canvasResized):
210         (WebCore::CSSCanvasValue::fixedSize):
211         (WebCore::CSSCanvasValue::element):
212         (WebCore::CSSCanvasValue::image):
213         * css/CSSCanvasValue.h: Added.
214         (WebCore::CSSCanvasValue::CSSCanvasValue):
215         (WebCore::CSSCanvasValue::isFixedSize):
216         (WebCore::CSSCanvasValue::setName):
217         * css/CSSGradientValue.cpp:
218         * css/CSSGradientValue.h:
219         * css/CSSImageGeneratorValue.cpp:
220         (WebCore::CSSImageGeneratorValue::generatedImage):
221         * css/CSSImageGeneratorValue.h:
222         (WebCore::CSSImageGeneratorValue::isFixedSize):
223         (WebCore::CSSImageGeneratorValue::fixedSize):
224         * css/CSSParser.cpp:
225         (WebCore::CSSParser::parseContent):
226         (WebCore::CSSParser::parseBackgroundImage):
227         (WebCore::CSSParser::parseBorderImage):
228         (WebCore::CSSParser::parseCanvas):
229         * css/CSSParser.h:
230         * dom/Document.cpp:
231         (WebCore::Document::getCSSCanvasContext):
232         (WebCore::Document::getCSSCanvasElement):
233         * dom/Document.h:
234         * dom/Document.idl:
235         * html/HTMLCanvasElement.cpp:
236         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
237         (WebCore::HTMLCanvasElement::reset):
238         * html/HTMLCanvasElement.h:
239         (WebCore::HTMLCanvasElement::setSize):
240         * rendering/RenderBox.cpp:
241         (WebCore::RenderBox::calculateBackgroundSize):
242         (WebCore::RenderBox::imageChanged):
243         * rendering/RenderBox.h:
244         * rendering/RenderImage.cpp:
245         (WebCore::RenderImage::imageChanged):
246         * rendering/RenderImage.h:
247         (WebCore::RenderImage::imagePtr):
248         (WebCore::RenderImage::intrinsicSizeChanged):
249         * rendering/RenderImageGeneratedContent.h:
250         (WebCore::RenderImageGeneratedContent::imageSize):
251         (WebCore::RenderImageGeneratedContent::imagePtr):
252         * rendering/RenderListMarker.cpp:
253         (WebCore::RenderListMarker::layout):
254         (WebCore::RenderListMarker::imageChanged):
255         (WebCore::RenderListMarker::calcPrefWidths):
256         (WebCore::RenderListMarker::getRelativeMarkerRect):
257         * rendering/RenderListMarker.h:
258         * rendering/RenderObject.cpp:
259         (WebCore::RenderObject::paintBorderImage):
260         (WebCore::RenderObject::imageChanged):
261         * rendering/RenderObject.h:
262         (WebCore::RenderObject::imageChanged):
263         * rendering/RenderSVGImage.cpp:
264         (WebCore::RenderSVGImage::imageChanged):
265         * rendering/RenderSVGImage.h:
266         * rendering/RenderStyle.cpp:
267         (WebCore::StyleCachedImage::imageSize):
268         (WebCore::StyleGeneratedImage::imageSize):
269         * rendering/RenderStyle.h:
270         (WebCore::StyleCachedImage::data):
271         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
272         (WebCore::StyleGeneratedImage::data):
273         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
274         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
275         (WebCore::StyleGeneratedImage::usesImageContainerSize):
276         * rendering/RenderTableCol.cpp:
277         (WebCore::RenderTableCol::imageChanged):
278         * rendering/RenderTableCol.h:
279         * rendering/RenderTableRow.cpp:
280         (WebCore::RenderTableRow::imageChanged):
281         * rendering/RenderTableRow.h:
282         * rendering/RenderTableSection.cpp:
283         (WebCore::RenderTableSection::imageChanged):
284         * rendering/RenderTableSection.h:
285
286 2008-04-16  Anders Carlsson  <andersca@apple.com>
287
288         Reviewed by Darin.
289
290         Add manifest parser.
291
292         * loader/appcache/ManifestParser.cpp:
293         (WebCore::):
294         (WebCore::parseManifest):
295         * loader/appcache/ManifestParser.h:
296         * platform/text/CharacterNames.h:
297
298 2008-04-16  Darin Adler  <darin@apple.com>
299
300         Reviewed by Mitz.
301
302         - fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1):
303           Safari does not find words containing ß (German letter sharp-s)
304
305         Test: fast/text/find-case-folding.html
306
307         * platform/text/StringImpl.cpp:
308         (WebCore::StringImpl::foldCase):
309         Pass the folded length to foldCase rather than the original string length.
310         Without this, we get an error code every time.
311
312 2008-04-16  Anders Carlsson  <andersca@apple.com>
313
314         Fix build.
315         
316         * loader/appcache/ApplicationCache.cpp:
317         (WebCore::ApplicationCache::ApplicationCache):
318         (WebCore::ApplicationCache::setManifestResource):
319         (WebCore::ApplicationCache::addResource):
320
321 2008-04-16  Anders Carlsson  <andersca@apple.com>
322
323         Reviewed by Darin.
324
325         Add new protocolHostAndPortAreEqual function.
326         
327         * platform/KURL.cpp:
328         (WebCore::KURL::host):
329         (WebCore::KURL::setHost):
330         (WebCore::KURL::setHostAndPort):
331         (WebCore::protocolHostAndPortAreEqual):
332         * platform/KURL.h:
333         (WebCore::KURL::hostStart):
334
335 2008-04-16  Anders Carlsson  <andersca@apple.com>
336
337         Reviewed by Sam.
338         
339         Fix some style nits.
340         
341         * loader/appcache/ApplicationCache.cpp:
342         (WebCore::ApplicationCache::ApplicationCache):
343         (WebCore::ApplicationCache::setManifestResource):
344         (WebCore::ApplicationCache::addResource):
345         (WebCore::ApplicationCache::removeResource):
346         (WebCore::ApplicationCache::dump):
347         * loader/appcache/ApplicationCacheGroup.h:
348
349 2008-04-16  Anders Carlsson  <andersca@apple.com>
350
351         Reviewed by Brady and Sam.
352
353         Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
354         needed by ApplicationCache.
355         
356         * loader/appcache/ApplicationCache.cpp:
357         (WebCore::ApplicationCache::ApplicationCache):
358         (WebCore::ApplicationCache::~ApplicationCache):
359         (WebCore::ApplicationCache::setManifestResource):
360         (WebCore::ApplicationCache::addResource):
361         (WebCore::ApplicationCache::removeResource):
362         (WebCore::ApplicationCache::resourceForURL):
363         (WebCore::ApplicationCache::resourceForRequest):
364         (WebCore::ApplicationCache::numDynamicEntries):
365         (WebCore::ApplicationCache::dynamicEntry):
366         (WebCore::ApplicationCache::addDynamicEntry):
367         (WebCore::ApplicationCache::removeDynamicEntry):
368         (WebCore::ApplicationCache::setOnlineWhitelist):
369         (WebCore::ApplicationCache::isURLInOnlineWhitelist):
370         (WebCore::ApplicationCache::dump):
371         * loader/appcache/ApplicationCache.h:
372         (WebCore::ApplicationCache::create):
373         (WebCore::ApplicationCache::manifestResource):
374         (WebCore::ApplicationCache::group):
375         (WebCore::ApplicationCache::begin):
376         (WebCore::ApplicationCache::end):
377         * loader/appcache/ApplicationCacheGroup.h:
378         (WebCore::ApplicationCacheGroup::manifestURL):
379         (WebCore::ApplicationCacheGroup::cacheDestroyed):
380
381 2008-04-16  Adam Roben  <aroben@apple.com>
382
383         Fix Bug 18505: REGRESSION: Search is disabled and not functional
384
385         <https://bugs.webkit.org/show_bug.cgi?id=18505>
386
387         Reviewed by Tim Hatcher.
388
389         * page/inspector/ResourcesPanel.js:
390         (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
391         * page/inspector/inspector.css: Added back rules for the search field
392         that were removed in r31736.
393         * page/inspector/inspector.html:
394           - Removed the disabled attribute from the search field
395           - Added back the #searchResults and #searchResultsResizer divs which
396             were removed in r31736
397         * page/inspector/inspector.js:
398         (WebInspector.set showingSearchResults): Updated for class rename
399         panels -> main-panels.
400         (WebInspector.loaded): Added back the mousedown event listener for the
401         search results resizer that was removed in r31736.
402         (WebInspector.searchResultsResizerDrag): Updated for class rename
403         panels -> main-panels.
404         (WebInspector.performSearch):
405           - Changed to use sourceFrameForResource
406           - Changed to use showResource
407           - Changed to save/restore the focused element around the setting of
408             the current panel
409           - Changed to get the source document from the match range instead of
410             by crawling back up to the source view
411           - Changed to bind the onselect handlers to this so that we can
412             access the Elements/Resources panels
413
414 2008-04-16  Brady Eidson  <beidson@apple.com>
415
416         Reviewed by Sam Weinig
417
418         Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
419         adoptRef() that initial reference.
420
421         * bindings/js/JSCustomSQLStatementCallback.h:
422         (WebCore::JSCustomSQLStatementCallback::create):
423         * bindings/js/JSCustomSQLStatementErrorCallback.h:
424         (WebCore::JSCustomSQLStatementErrorCallback::create):
425         * bindings/js/JSCustomSQLTransactionCallback.h:
426         (WebCore::JSCustomSQLTransactionCallback::create):
427         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
428         (WebCore::JSCustomSQLTransactionErrorCallback::create):
429
430         * bindings/js/JSDatabaseCustom.cpp:
431         (WebCore::JSDatabase::changeVersion):
432         (WebCore::JSDatabase::transaction):
433
434         * bindings/js/JSSQLTransactionCustom.cpp:
435         (WebCore::JSSQLTransaction::executeSql):
436
437         * dom/Document.cpp:
438         (WebCore::Document::databaseThread):
439
440         * platform/SecurityOrigin.cpp:
441         (WebCore::SecurityOrigin::create):
442
443         * platform/sql/SQLiteAuthorizer.h:
444         (WebCore::SQLiteAuthorizer::create):
445         (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
446
447         * storage/ChangeVersionWrapper.cpp:
448         (WebCore::ChangeVersionWrapper::performPreflight):
449         (WebCore::ChangeVersionWrapper::performPostflight):
450         * storage/ChangeVersionWrapper.h:
451         (WebCore::ChangeVersionWrapper::create):
452
453         * storage/Database.cpp:
454         (WebCore::Database::openAndVerifyVersion):
455         (WebCore::Database::markAsDeletedAndClose):
456         (WebCore::Database::changeVersion):
457         (WebCore::Database::transaction):
458         (WebCore::Database::scheduleTransaction):
459         (WebCore::Database::scheduleTransactionStep):
460         (WebCore::Database::tableNames):
461
462         * storage/DatabaseAuthorizer.h:
463         (WebCore::DatabaseAuthorizer::create):
464
465         * storage/DatabaseTask.h:
466         (WebCore::DatabaseOpenTask::create):
467         (WebCore::DatabaseCloseTask::create):
468         (WebCore::DatabaseTransactionTask::create):
469         (WebCore::DatabaseTableNamesTask::create):
470
471         * storage/DatabaseThread.cpp:
472         (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw
473         (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
474         * storage/DatabaseThread.h:
475         (WebCore::DatabaseThread::create):
476
477         * storage/SQLError.h:
478         (WebCore::SQLError::create):
479         (WebCore::SQLError::SQLError):
480
481         * storage/SQLResultSet.h:
482         (WebCore::SQLResultSet::create):
483
484         * storage/SQLStatement.cpp:
485         (WebCore::SQLStatement::create):
486         (WebCore::SQLStatement::execute):
487         (WebCore::SQLStatement::setDatabaseDeletedError):
488         (WebCore::SQLStatement::setVersionMismatchedError):
489         (WebCore::SQLStatement::setFailureDueToQuota):
490         * storage/SQLStatement.h:
491
492         * storage/SQLTransaction.cpp:
493         (WebCore::SQLTransaction::create):
494         (WebCore::SQLTransaction::executeSQL):
495         (WebCore::SQLTransaction::openTransactionAndPreflight):
496         (WebCore::SQLTransaction::deliverTransactionCallback):
497         (WebCore::SQLTransaction::handleCurrentStatementError):
498         (WebCore::SQLTransaction::deliverStatementCallback):
499         (WebCore::SQLTransaction::postflightAndCommit):
500         * storage/SQLTransaction.h:
501
502 2008-04-16  Anders Carlsson  <andersca@apple.com>
503
504         Reviewed by Adam and Brady.
505         
506         Add implementation of ApplicationCacheResource.
507         
508         * loader/appcache/ApplicationCacheResource.cpp:
509         (WebCore::ApplicationCacheResource::ApplicationCacheResource):
510         (WebCore::ApplicationCacheResource::dumpType):
511         * loader/appcache/ApplicationCacheResource.h:
512         (WebCore::ApplicationCacheResource::):
513         (WebCore::ApplicationCacheResource::create):
514         (WebCore::ApplicationCacheResource::type):
515         (WebCore::ApplicationCacheResource::addType):
516
517 2008-04-16  Timothy Hatcher  <timothy@apple.com>
518
519         Fixes an issue where the source for a resource that had errors would
520         not be shown because the view was created before the resource load
521         finished. The right view is now created, even if the resource isn't 
522         finished. The SourceView just makes sure to not load the source until
523         the resource is finished. Only if the category changes, does the view
524         need to be recreated.
525
526         Reviewed by Adam Roben.
527
528         * page/inspector/Resource.js:
529         (WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.
530         * page/inspector/ResourcesPanel.js:
531         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
532         Added. Tries to make a new view, if the view is the same prototype of the
533         previous view, return early. If they differ, close and detach the old view
534         and associate the resource with the new view. Calling updateErrorsAndWarnings
535         is needed, because the errors and warnings that might have been added to the
536         previous view will be lost, so make the tree element match.
537         (WebInspector.Resource.prototype._createResourceView): Always create a view
538         that matches the resource category. Ignore the loading and failed status.
539         * page/inspector/SourceView.js:
540         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
541         frame if the resource hasn't finished or if the load failed.
542
543 2008-04-16  Timothy Hatcher  <timothy@apple.com>
544
545         Adds a console formatter for Error objects. So typing a expression in the
546         console that ends in an exception will print meaningful info. Also calling
547         console.{log,error,warn,info} with an error object will output nicely.
548
549         Reviewed by Adam Roben.
550
551         * page/inspector/Console.js:
552         (WebInspector.Console.prototype._formaterror): Added. Formats an error
553         object by showing it like other exceptions, with a clickable file URL.
554
555 2008-04-16  Timothy Hatcher  <timothy@apple.com>
556
557         Refactors code that updates the errors and warnings count in the
558         resources sidebar so other functions can easily trigger updates.
559
560         Reviewed by Adam Roben.
561
562         * page/inspector/ResourcesPanel.js:
563         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
564         Removes code that updates the bubbleText and class names.
565         (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
566         (WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
567         Added. Updates the bubbleText and adds or removes the class names
568         depending on if the values are zero.
569
570 2008-04-16  Antti Koivisto  <antti@apple.com>
571
572         Reviewed by Alexey.
573         
574         Fix <rdar://problem/5863728>
575         REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
576         
577         Parse the encoding attribute in PreloadScanner.
578
579         Test: fast/encoding/script-preload-encoding.html
580
581         * html/PreloadScanner.cpp:
582         (WebCore::PreloadScanner::processAttribute):
583         (WebCore::PreloadScanner::emitTag):
584         (WebCore::PreloadScanner::emitCSSRule):
585         * html/PreloadScanner.h:
586         * loader/DocLoader.cpp:
587         (WebCore::DocLoader::preload):
588         * loader/DocLoader.h:
589
590 2008-04-16  Anders Carlsson  <andersca@apple.com>
591
592         Reviewed by Adam.
593
594         Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and 
595         fix typos in the #if line.
596         
597         * DerivedSources.make:
598         * WebCore.vcproj/WebCore.vcproj:
599         * WebCore.xcodeproj/project.pbxproj:
600         * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
601         * loader/appcache/ApplicationCache.cpp:
602         * loader/appcache/ApplicationCache.h:
603         * loader/appcache/ApplicationCacheGroup.cpp:
604         * loader/appcache/ApplicationCacheGroup.h:
605         * loader/appcache/ApplicationCacheResource.cpp:
606         * loader/appcache/ApplicationCacheResource.h:
607         * loader/appcache/DOMApplicationCache.cpp:
608         * loader/appcache/DOMApplicationCache.h:
609         * loader/appcache/DOMApplicationCache.idl:
610         * loader/appcache/ManifestParser.cpp:
611         * loader/appcache/ManifestParser.h:
612
613 2008-04-16  Sam Weinig  <sam@webkit.org>
614
615         Reviewed by Geoffrey Garen.
616
617         - To keep the behavior of the WebKit and JavaScriptCore API's the same,
618           we need to hide the fact that the global object and the window object
619           are no longer the same thing, and the the global object now changes on
620           navigations.  To do this, only the wrapper should ever be exposed.  This
621           fixes the two remaining spots where the internal global object is exposed,
622           the windowScriptObject returned from [WebFrame windowObject] and the object
623           return by calling JSContextGetGlobalObject on [WebFrame globalContext]
624
625         * bindings/js/JSDOMWindowWrapper.cpp:
626         (WebCore::JSDOMWindowWrapper::putWithAttributes):
627         * bindings/js/JSDOMWindowWrapper.h:
628         Forward this new method so that JSObjectSetProperty doesn't set properties on the 
629         wrapper.
630
631         * page/mac/FrameMac.mm:
632         (WebCore::Frame::windowScriptObject):
633         Return the wrapper instead of the global object.
634
635 2008-04-16  David Hyatt  <hyatt@apple.com>
636
637         Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
638         snagging an Image* from the ImageBuffer and drawing that instead.
639
640         Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
641         a consumer.
642
643         Reviewed by olliej
644
645         * html/CanvasRenderingContext2D.cpp:
646         (WebCore::CanvasRenderingContext2D::drawImage):
647         * html/HTMLCanvasElement.cpp:
648         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
649         (WebCore::HTMLCanvasElement::willDraw):
650         (WebCore::HTMLCanvasElement::reset):
651         (WebCore::HTMLCanvasElement::paint):
652         * html/HTMLCanvasElement.h:
653         (WebCore::CanvasObserver::~CanvasObserver):
654         (WebCore::HTMLCanvasElement::setSize):
655         (WebCore::HTMLCanvasElement::setObserver):
656         * platform/graphics/GraphicsContext.cpp:
657         (WebCore::GraphicsContext::drawImage):
658         (WebCore::GraphicsContext::drawTiledImage):
659         * platform/graphics/GraphicsContext.h:
660         * platform/graphics/ImageBuffer.h:
661         (WebCore::ImageBuffer::clearImage):
662         * platform/graphics/cairo/GraphicsContextCairo.cpp:
663         * platform/graphics/cg/GraphicsContextCG.cpp:
664         * platform/graphics/cg/ImageCG.cpp:
665         (WebCore::BitmapImage::draw):
666         (WebCore::Image::drawPattern):
667         * platform/graphics/cg/ImageSourceCG.cpp:
668         (WebCore::ImageSource::createFrameAtIndex):
669         * platform/graphics/qt/GraphicsContextQt.cpp:
670         * platform/graphics/wx/GraphicsContextWx.cpp:
671
672 2008-04-16  Steve Falkenburg  <sfalken@apple.com>
673
674         Improve timer latency/resolution.
675                 
676         The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
677         the callback proc.  This event will be delivered sooner than if we used SetTimer(),
678         since it is higher priority than other messages.
679         
680         If there is an input message pending, we'll use we SetTimer() based timers to avoid
681         starving user input.
682
683         Don't call PostMessage immediately on all timers < 10ms.  Only call immediately if
684         timer is already expired.  This avoids the case where no timers would be processed,
685         causing the timer to be re-posted via the slower SetTimer method.
686
687         Don't call PostMessage immediately if there's a pending WM_PAINT, since
688         we don't want to starve all paints when bombarded with a continuous stream of low
689         duration timers.
690
691         Removed reentrancy check, since we're now looking for specific starvation cases,
692         and will typically defer non-expired timers through CreateTimerQueueTimer.
693
694         The reason Windows wouldn't starve paints in favor of timers with the old code:
695         When we went to reset the timer when it fired, the timer reset code treated this as a
696         reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
697         even for timers expiring in < 10ms.  I corrected that, exposing the paint starvation problem.
698
699         Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
700         Limit this resolution change to within 20ms of the last high resolution timer request.
701                         
702         Corrected GetQueueStatus to check for specific input (and paint) messages rather than
703         checking QS_ALLINPUT.  Contrary to its name, QS_ALLINPUT actually indicates interest
704         in ALL queued messages, not just input messages.
705         
706         Fix SetTimer/KillTimer calls to pass our window handle.
707
708         Reviewed by Brady.
709
710         * platform/win/SharedTimerWin.cpp:
711         (WebCore::):
712         (WebCore::TimerWindowWndProc):
713         (WebCore::queueTimerProc):
714         (WebCore::setSharedTimerFireTime):
715         (WebCore::stopSharedTimer):
716
717 2008-04-16  Adam Roben  <aroben@apple.com>
718
719         Fix console-log-formatting to truly test formatting an undefined value
720
721         Exceptions thrown by the test will also now be shown as errors.
722
723         Reviewed by Tim Hatcher.
724
725         * manual-tests/inspector/console-log-formatting.html:
726         (test): Use console.error to report exceptions.
727         (runTests): Use window.noSuchVariable instead of just noSuchVariable
728         to avoid an exception.
729
730 2008-04-16  Anatoli Papirovski  <apapirovski@mac.com>
731
732         Reviewed by David.
733
734         Optimized the calculation of background-size.
735
736         * rendering/RenderBox.cpp:
737         (WebCore::RenderBox::calculateBackgroundSize):
738
739 2008-04-16  Adam Roben  <aroben@apple.com>
740
741         Fix Bug 17228: console.{log,warn,info,error} should support format
742         strings, variable arguments
743
744         <https://bugs.webkit.org/show_bug.cgi?id=17228>
745         <rdar://problem/5732828>
746
747         Reviewed by Tim Hatcher.
748
749         Test: manual-tests/inspector/console-log-formatting.html
750
751         * page/inspector/Console.js:
752         (WebInspector.ConsoleMessage): Pass any extra arguments down to
753         _format.
754         (WebInspector.ConsoleMessage._format): This method constructs
755         this.formattedMessage. We treat the first parameter as a format
756         string. Any parameters that have not been used after substituting into
757         the format string are concatenated together, separated by spaces.
758         (WebInspector.ConsoleMessage.toMessageElement): Updated to use
759         this.formattedMessage.
760         (WebInspector.ConsoleMessage.toString): Ditto.
761
762 2008-04-15  Adam Roben  <aroben@apple.com>
763
764         Make String.format return an array of unused substitutions
765
766         String.format now returns an object with two properties:
767         formattedResult and unusedSubstitutions.
768
769         Reviewed by Tim Hatcher.
770
771         * page/inspector/utilities.js:
772         (String.vsprintf): Updated for changes to String.format. We throw away
773         the array of unused substitutions.
774         (String.format): Changed to keep track of which substitutions are used
775         when formatting. We then return both the formatted result and the
776         array of unused substitutions.
777
778 2008-04-15  Adam Roben  <aroben@apple.com>
779
780         Generalize String.format some more
781
782         String.format now takes an initial value and an append function which
783         it uses to build the result. Each time a token is processed,
784         append(valueSoFar, newValue) is called.
785
786         Reviewed by Tim Hatcher.
787
788         * page/inspector/utilities.js:
789         (String.vsprintf): Pass the empty string for the initial value, and
790         a function that concatenates two strings as the append function.
791         (String.format): Use initialValue and append to build the result
792         instead of only working with strings.
793
794 2008-04-15  Adam Roben  <aroben@apple.com>
795
796         Add String.format
797
798         String.format is a more generic form of String.vsprintf that takes a
799         set of formatter functions, one for each supported format specifier.
800         Each formatter function is passed the relevant token and substitution
801         value, and returns the formatted result.
802
803         Reviewed by Tim Hatcher.
804
805         * page/inspector/utilities.js:
806         (String.standardFormatters): Added.
807         (String.vsprintf): Changed to call through to String.format.
808         (String.format): Added. Most of the code came from String.vsprintf,
809         except that we use the passed-in formatters to format the
810         substitutions rather than hard-coding how to handle each format
811         specifier.
812
813 2008-04-15  Adam Roben  <aroben@apple.com>
814
815         Refactor String.vsprintf to separate tokenizing and substituting
816
817         This will eventually be useful for the various console methods that
818         take a format string.
819
820         Reviewed by Tim Hatcher.
821
822         * page/inspector/utilities.js:
823         (String.tokenizeFormatString): Added. This uses the format parsing
824         code from String.vsprintf but just returns an array of "string" and
825         "specifier" tokens.
826         (String.vsprintf): Now calls String.tokenizeFormatString and processes
827         the tokens one at a time.
828
829 2008-04-15  Adam Roben  <aroben@apple.com>
830
831         Pass all arguments to console.{log,warn,info,error} into the Inspector's JS
832
833         Part of Bug 17228: console.{log,warn,info,error} should support format
834         strings, variable arguments
835         <http://bugs.webkit.org/show_bug.cgi?id=17228>
836         <rdar://problem/5732828>
837
838         We don't use the extra arguments yet.
839
840         Reviewed by Tim Hatcher.
841
842         * page/Console.cpp:
843         (WebCore::Console::error): Pass the arguments list to
844         InspectorController.
845         (WebCore::Console::info): Ditto.
846         (WebCore::Console::log): Ditto.
847         (WebCore::Console::warn): Ditto.
848         * page/InspectorController.cpp:
849         (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor
850         that takes an ExecState and a List instead of a String. We wrap and
851         store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >.
852         (WebCore::InspectorController::addMessageToConsole): Added an overload
853         that takes an ExecState and a List.
854         (WebCore::InspectorController::addConsoleMessage): Moved code here
855         from addMessageToConsole. Both overloads of addMessageToConsole now
856         call this helper method.
857         (WebCore::InspectorController::addScriptConsoleMessage): Updated for
858         the new parameter order of WebInspector.ConsoleMessage. If the
859         ConsoleMessage has a non-empty wrappedArguments Vector, we use that
860         instead of the ConsoleMessage's message String.
861         * page/InspectorController.h:
862         * page/inspector/Console.js:
863         (WebInspector.ConsoleMessage): Removed the explicit message parameter.
864         We now get the message from the unnamed 5th parameter.
865         * page/inspector/Resource.js: Updated for the change to
866         WebInspector.ConsoleMessage's parameter order.
867
868 2008-04-15  Adam Roben  <aroben@apple.com>
869
870         Change calls to Chrome::addMessageToConsole to use Console::addMessage
871
872         Part of Bug 17228: console.{log,warn,info,error} should support format
873         strings, variable arguments
874         <http://bugs.webkit.org/show_bug.cgi?id=17228>
875         <rdar://problem/5732828>
876
877         Console now takes care of calling ChromeClient::addMessageToConsole
878         for the appropriate messages (i.e., just messages from JavaScript). If
879         you ever want to add a message to the console, Console is the place to
880         do it.
881
882         Reviewed by Darin Adler.
883
884         * WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
885         * page/Chrome.cpp: Removed addMessageToConsole
886         * page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
887         * page/Console.cpp:
888         (WebCore::Console::addMessage): Added. Calls
889         ChromeClient::addMessageToConsole for JS messages, and calls
890         InspectorController::addMessageToConsole for all messages.
891         (WebCore::Console::error): Changed to call directly to
892         InspectorController in addition to ChromeClient.
893         (WebCore::Console::info): Ditto.
894         (WebCore::Console::log): Ditto.
895         (WebCore::Console::warn): Ditto.
896         * page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
897
898 2008-04-15  Adam Roben  <aroben@apple.com>
899
900         Pass JSConsole's arguments unmodified to Console
901
902         Part of Bug 17228: console.{log,warn,info,error} should support format
903         strings, variable arguments
904         <http://bugs.webkit.org/show_bug.cgi?id=17228>
905         <rdar://problem/5732828>
906
907         All of JSConsole's methods are now custom, so that we can pass the
908         arguments unmodified to Console. Console now handles calling
909         toString() on the first argument. Later it will pass the arguments off
910         to InspectorController.
911
912         There should be no behavioral changes caused by this patch.
913
914         Reviewed by Darin Adler.
915
916         * ForwardingHeaders/kjs/list.h: Added.
917         * GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
918         * WebCore.pro: Ditto.
919         * WebCore.vcproj/WebCore.vcproj: Ditto.
920         * WebCore.xcodeproj/project.pbxproj: Ditto.
921         * WebCoreSources.bkl: Ditto.
922         * bindings/js/JSConsoleCustom.cpp: Added.
923         (WebCore::JSConsole::error):
924         (WebCore::JSConsole::info):
925         (WebCore::JSConsole::log):
926         (WebCore::JSConsole::warn):
927         * page/Console.cpp: Changed all methods to take an ExecState* and a
928         const List&. The first item in the List is toString()ed and passed to
929         Chrome.
930         (WebCore::Console::error):
931         (WebCore::Console::info):
932         (WebCore::Console::log):
933         (WebCore::Console::warn):
934         * page/Console.h:
935         * page/Console.idl:
936
937 2008-04-16  Sam Weinig  <sam@webkit.org>
938
939         Reviewed by Darin Adler.
940
941         Rename kjs_strtod to KJS::strtod.
942
943         * platform/text/String.cpp:
944         (WebCore::charactersToDouble):
945
946 2008-04-16  Alexey Proskuryakov  <ap@webkit.org>
947
948         Reviewed by Adam.
949
950         http://bugs.webkit.org/show_bug.cgi?id=18259
951         XML+XSLT pages in iframe contains document.location of a parent window
952
953         Test: fast/xsl/subframe-location.html
954
955         * xml/XSLTProcessor.cpp:
956         (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening
957         it, so that the document loader picks a correct URL, too.
958
959 2008-04-16  Dan Bernstein  <mitz@apple.com>
960
961         Rubber-stamped by John Sullivan.
962
963         - remove unreachable code which was added in r8802
964
965         * rendering/RenderText.cpp:
966         (WebCore::RenderText::caretRect):
967
968 2008-04-15  Timothy Hatcher  <timothy@apple.com>
969
970         Adds a script resource icon. Update the CSS icon to better match the script icon.
971
972         https://bugs.webkit.org/show_bug.cgi?id=18499
973
974         Rubber-stamped by Adele Peterson.
975
976         * page/inspector/Images/resourceCSSIcon.png: Updated.
977         * page/inspector/Images/resourceJSIcon.png: Added.
978         * page/inspector/inspector.css: Changed the script icon rule to reference the new image.
979
980 2008-04-16  Eric Seidel  <eric@webkit.org>
981
982         Reviewed by hyatt.
983
984         Fix leaky ImageBuffer code.
985
986         * platform/graphics/GeneratedImage.cpp:
987         (WebCore::GeneratedImage::drawPattern):
988         * platform/graphics/ImageBuffer.h:
989         * platform/graphics/cg/ImageBufferCG.cpp:
990         (WebCore::ImageBuffer::image):
991
992 2008-04-15  Justin Garcia  <justin.garcia@apple.com>
993
994         Reviewed by Oliver.
995
996         <rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
997
998         * editing/markup.cpp:
999         (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold
1000         paragraphs if the enclosing block is the root editable element.
1001
1002 2008-04-15  Mark Rowe  <mrowe@apple.com>
1003
1004         Reviewed by Jon Honeycutt.
1005
1006         Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.  It is really
1007         a subrole of NSAccessibilityButtonRole.  As it is not used inside WebCore there is no change in
1008         behaviour as a result of doing this.  This fixes <rdar://problem/5866444>.
1009
1010         * page/AccessibilityObject.cpp:
1011         (WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.
1012         * page/AccessibilityObject.h: Ditto.
1013         (WebCore::):
1014         * page/mac/AccessibilityObjectWrapper.mm:
1015         (RoleEntry::):
1016
1017 2008-04-15  Anders Carlsson  <andersca@apple.com>
1018
1019         Fix leaks seen on bot.
1020         
1021         * loader/SubstituteResource.h:
1022         (WebCore::SubstituteResource::~SubstituteResource):
1023         Add a virtual destructor.
1024
1025 2008-04-15  Brady Eidson  <beidson@apple.com>
1026
1027         Reviewed by Anders Carlsson
1028
1029         Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.
1030
1031         Each SubresourceLoader has a client.  That client is often a Loader::Host object.  
1032         The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
1033         object lifetime manually.
1034
1035         The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when 
1036         beginning the new navigation, and once when the new navigation is committed.
1037
1038         The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly 
1039         thereafter.  But the SubresourceLoader had a dangling pointer to the Host which is now invalid.
1040
1041         I explored a few options to fix this bug.  The one that was most obviously "clean" was to call cancel() on
1042         the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
1043         cleanup.
1044
1045         This problem with that approach was that it had other side effects - when you cut off a load that had already
1046         partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
1047         turn into broken image icons.  This was visually jarring and pretty unacceptable. 
1048
1049         So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
1050         SubresourceLoader before it forgets about it.  This leaves things the same visually and fixes the crash.
1051
1052         Note that the layout test for this - if possible - will require other enhancements to DRT including possibly 
1053         adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826> 
1054
1055         * loader/SubresourceLoader.h:
1056         (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient.  This is 
1057           perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less,
1058           and already null-check the client before calling it.
1059
1060         * loader/loader.cpp:
1061         (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide 
1062           to call into its client later.  Since the client has no guaranteed lifetime and is liable to be deleted 
1063           after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
1064
1065 2008-04-15  Anders Carlsson  <andersca@apple.com>
1066
1067         Reviewed by Adam.
1068
1069         Add empty files for the application cache.
1070         
1071         * Configurations/WebCore.xcconfig:
1072         * WebCore.vcproj/WebCore.vcproj:
1073         * WebCore.vcproj/build-generated-files.sh:
1074         Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
1075         
1076         * WebCore.xcodeproj/project.pbxproj:
1077         * loader/appcache: Added.
1078         * loader/appcache/ApplicationCache.cpp: Added.
1079         * loader/appcache/ApplicationCache.h: Added.
1080         * loader/appcache/ApplicationCacheGroup.cpp: Added.
1081         * loader/appcache/ApplicationCacheGroup.h: Added.
1082         * loader/appcache/ApplicationCacheResource.cpp: Added.
1083         * loader/appcache/ApplicationCacheResource.h: Added.
1084         * loader/appcache/DOMApplicationCache.cpp: Added.
1085         * loader/appcache/DOMApplicationCache.h: Added.
1086         * loader/appcache/DOMApplicationCache.idl: Added.
1087         * loader/appcache/ManifestParser.cpp: Added.
1088         * loader/appcache/ManifestParser.h: Added.
1089
1090 2008-04-15  Kevin McCullough  <kmccullough@apple.com>
1091
1092         Reviewed by Tim.
1093
1094         - <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
1095         - Add XMLHttpRequest support to the inspector.
1096
1097         * English.lproj/InspectorLocalizedStrings.js: Specify capitalization
1098         instead of using text-transform because XHR must capitalize all the letters.
1099         * page/inspector/Resource.js: Assume XHRs are textType even though this
1100         may not always be true.
1101         Also add the XHR category and let all mime types be consistent with it.
1102         * page/inspector/ResourcesPanel.js: Set the XHR category color.
1103         * page/inspector/inspector.css: Make XHRs yellow and fonts red because
1104         XHRs are more common than fonts and yellow next to orange (scripts) is
1105         not as harsh on the eyes as red next to orange.
1106         * page/inspector/inspector.js: Specify capitalization again.
1107
1108 2008-04-15  David Hyatt  <hyatt@apple.com>
1109
1110         Fix the zoom property so that it works properly with font-size.
1111
1112         Reviewed by John Sullivan
1113
1114         Added fast/css/zoom-font-size.html
1115
1116         * css/CSSStyleSelector.cpp:
1117         (WebCore::CSSStyleSelector::updateFont):
1118         (WebCore::CSSStyleSelector::applyProperty):
1119         (WebCore::CSSStyleSelector::checkForZoomChange):
1120         * css/CSSStyleSelector.h:
1121
1122 2008-04-15  Timothy Hatcher  <timothy@apple.com>
1123
1124         Fixes the bug where a resource view could still be shown after the inspected
1125         page navigates to another page.
1126
1127         https://bugs.webkit.org/show_bug.cgi?id=18517
1128
1129         Reviewed by Adam Roben.
1130
1131         * page/inspector/ResourcesPanel.js:
1132         (WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
1133         Iterate over all the resources and zero errors and warnings and delete the
1134         resource view and tree element. Removes all children of resourceViews. Passes
1135         true to _updateGraphDividersIfNeeded to force an immediate update.
1136         (WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
1137         the resource view if it is visible. Removes the resource from the _resources
1138         array. Removes the tree element from the outline tree. Zeros out the errors
1139         and warnings properties. Deletes the tree element and resource view properties.
1140         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
1141         this._calculator for times when reset is called before the calculator is set.
1142         * page/inspector/inspector.js:
1143         (WebInspector.removeResource): Call ResourcesPanel.removeResource.
1144
1145 2008-04-15  Anders Carlsson  <andersca@apple.com>
1146
1147         Reviewed by Adam.
1148
1149         Rename "archive" to "substitute" in a couple of places.
1150         
1151         * loader/DocumentLoader.cpp:
1152         (WebCore::DocumentLoader::DocumentLoader):
1153         (WebCore::DocumentLoader::clearArchiveResources):
1154         (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay):
1155         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
1156         (WebCore::DocumentLoader::isSubstituteLoadPending):
1157         (WebCore::DocumentLoader::cancelPendingSubstituteLoad):
1158         (WebCore::DocumentLoader::scheduleArchiveLoad):
1159         (WebCore::DocumentLoader::setDefersLoading):
1160         * loader/DocumentLoader.h:
1161         * loader/ResourceLoader.cpp:
1162         (WebCore::ResourceLoader::load):
1163         (WebCore::ResourceLoader::didCancel):
1164
1165 2008-04-15  Anders Carlsson  <andersca@apple.com>
1166
1167         Reviewed by Adam.
1168
1169         Move the URL, response and data to SubstituteResource.
1170         
1171         * loader/SubstituteResource.h:
1172         (WebCore::SubstituteResource::url):
1173         (WebCore::SubstituteResource::response):
1174         (WebCore::SubstituteResource::data):
1175         (WebCore::SubstituteResource::SubstituteResource):
1176         * loader/archive/ArchiveResource.cpp:
1177         (WebCore::ArchiveResource::ArchiveResource):
1178         * loader/archive/ArchiveResource.h:
1179         (WebCore::ArchiveResource::frameName):
1180
1181 2008-04-15  David Hyatt  <hyatt@apple.com>
1182
1183         https://bugs.webkit.org/show_bug.cgi?id=18467
1184
1185         Make sure to ignore zoom:0.  That is not supposed to actually do anything.  It's a hack in IE
1186         to cause an element to set "hasLayout."
1187
1188         Reviewed by Anders
1189
1190         Added fast/css/zoom-property-parsing.html
1191
1192         * css/CSSParser.cpp:
1193         (WebCore::CSSParser::parseValue):
1194         * css/CSSStyleSelector.cpp:
1195         (WebCore::CSSStyleSelector::applyProperty):
1196
1197 2008-04-15  Anders Carlsson  <andersca@apple.com>
1198
1199         Reviewed by Adam.
1200
1201         Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.
1202         
1203         * WebCore.vcproj/WebCore.vcproj:
1204         * WebCore.xcodeproj/project.pbxproj:
1205         * loader/SubstituteResource.h: Added.
1206         * loader/archive/ArchiveResource.h:
1207
1208 2008-04-15  Antti Koivisto  <antti@apple.com>
1209
1210         Reviewed by Geoff.
1211
1212         Fix <rdar://problem/5862921>
1213         REGRESSION: Leak in SVGSVGElement::SVGSVGElement
1214         
1215         In these strange days RefCounted starts with count of one.
1216
1217         * svg/SVGSVGElement.cpp:
1218         (WebCore::SVGSVGElement::SVGSVGElement):
1219         * svg/animation/SMILTimeContainer.h:
1220         (WebCore::SMILTimeContainer::create):
1221
1222 2008-04-15  Anatoli Papirovski  <apapirovski@mac.com>
1223
1224         Reviewed by hyatt
1225
1226         [CSS1, CSS3] Fixed the background-origin calculation for root elements
1227         (background-size and background-position are affected), r10794
1228         [CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto
1229
1230         Test: fast/backgrounds/background-origin-root-element.html
1231
1232         * rendering/RenderBox.cpp:
1233         (WebCore::RenderBox::calculateBackgroundSize):
1234         (WebCore::RenderBox::calculateBackgroundImageGeometry):
1235
1236 2008-04-15  Timothy Hatcher  <timothy@apple.com>
1237
1238         Fixes the regression where the error and warning counts did not show up in the Resources
1239         sidebar next to resources.
1240
1241         https://bugs.webkit.org/show_bug.cgi?id=18494
1242
1243         Reviewed by Adam Roben.
1244
1245         * page/inspector/ResourcesPanel.js:
1246         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
1247         on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
1248         or warning class to the bubble.
1249         (WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
1250         properties on each resource. Set the bubbleText back to an empty string.
1251         * page/inspector/SidebarTreeElement.js:
1252         (WebInspector.SidebarTreeElement): Create a statusElement.
1253         (WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
1254         (WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
1255         Assign the value to _bubbleText and bubbleElement.textContent.
1256         (WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.
1257         * page/inspector/inspector.css: Style rules for bubbles and status elements.
1258
1259 2008-04-15  Timothy Hatcher  <timothy@apple.com>
1260
1261         Fixes the regression where error and warning bubbles would not be added
1262         to the source view of a resource.
1263
1264         https://bugs.webkit.org/show_bug.cgi?id=18495
1265
1266         Reviewed by Adam Roben.
1267
1268         * css/view-source.css:
1269         (.webkit-html-message-bubble): Add a min-height to make sure the border-radius
1270         has enough room to apply.
1271         * page/inspector/Console.js:
1272         (WebInspector.Console.prototype.addMessage): Removed code that added messages
1273         to resource panels and incremented error and warning counts on resources.
1274         Now just call ResourcesPanel.addMessageToResource after assigning the resource
1275         to the console message.
1276         (WebInspector.Console.prototype.clearMessages): Removed code that cleared error
1277         and warning counts from resources an call ResourcesPanel.clearMessages.
1278         * page/inspector/ResourcesPanel.js:
1279         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
1280         on the resource's view, if it is implemented.
1281         (WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
1282         on all the resource views for the ones that implement it.
1283         (WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
1284         to make the resource's view if needed. Use a local view variable.
1285         (WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
1286         to create a resource view if needed.
1287         * page/inspector/SourceView.js:
1288         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the 
1289         _frameNeedsSetup property at the beginning to prevent recursion. Get the
1290         length of the messages array when assigning the local length variable.
1291         (WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
1292         (WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
1293         bubbles that might be sprinkled in the source. Also clears the messages array.
1294         (WebInspector.SourceView.prototype._addMessageToSource): Create the image
1295         element in the Inspector's document so we can use relative image URLs. Then
1296         adopt the image element into the frame's document.
1297
1298 2008-04-15  Brady Eidson  <beidson@apple.com>
1299
1300         Reviewed by Anders
1301
1302         Hook up event dispatching for window.localStorage changes.
1303
1304         Tests: storage/domstorage/localstorage/enumerate-storage.html
1305                storage/domstorage/localstorage/iframe-events.html
1306                storage/domstorage/localstorage/index-get-and-set.html
1307                storage/domstorage/localstorage/onstorage-attribute-markup.html
1308                storage/domstorage/localstorage/onstorage-attribute-setattribute.html
1309                storage/domstorage/localstorage/simple-events.html
1310                storage/domstorage/localstorage/simple-usage.html
1311                storage/domstorage/localstorage/window-open.html
1312
1313         * storage/LocalStorage.cpp:
1314         (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding
1315           each Frame that matches the storage area's security origin to a Vector.  Then dispatch
1316           the StorageEvent to each Frame in the Vector
1317
1318         * storage/SessionStorage.cpp:
1319         (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage,
1320           which is to only add the Frames to the Vector if their security origin matches
1321
1322 2008-04-15  Olivier Goffart  <ogoffart@trolltech.com>
1323
1324         Reviewed by Simon.
1325
1326         Fixes: copy to clipboard when selecting, and paste when clicking with the middle button
1327
1328         * platform/Pasteboard.h: Added Qt-specific selection mode
1329         * platform/qt/PasteboardQt.cpp: Choose the clipboard or the selecton
1330         according to the selection mode
1331         (WebCore::Pasteboard::writeSelection):
1332         (WebCore::Pasteboard::plainText):
1333         (WebCore::Pasteboard::documentFragment):
1334         (WebCore::Pasteboard::writeURL):
1335         (WebCore::Pasteboard::clear):
1336         (WebCore::Pasteboard::isSelectionMode):
1337
1338 2008-04-15  Andre Poenitz  <andre.poenitz@trolltech.com>
1339
1340         Reviewed by Simon.
1341
1342         Fix compilation with Qt namespaces
1343
1344         Qt can be configured to have all of its classes inside a specified namespaces.
1345         This is for example used in plugin/component environments like Eclipse.
1346
1347         This change makes it possible to let the Qt port compile against a namespaced
1348         Qt by the use of macros Qt provides to properly forward declare Qt classes in
1349         the namespace.
1350
1351         * WebCore.pro:
1352         * bridge/qt/qt_class.h:
1353         * bridge/qt/qt_instance.h:
1354         * html/HTMLCanvasElement.h:
1355         * platform/DragData.h:
1356         * platform/DragImage.h:
1357         * platform/KURL.h:
1358         * platform/PlatformKeyboardEvent.h:
1359         * platform/PlatformMouseEvent.h:
1360         * platform/PlatformWheelEvent.h:
1361         * platform/Widget.h:
1362         * platform/graphics/Color.h:
1363         * platform/graphics/FloatPoint.h:
1364         * platform/graphics/FloatRect.h:
1365         * platform/graphics/Gradient.h:
1366         * platform/graphics/GraphicsContext.h:
1367         * platform/graphics/ImageBuffer.h:
1368         * platform/graphics/ImageSource.h:
1369         * platform/graphics/IntPoint.h:
1370         * platform/graphics/IntRect.h:
1371         * platform/graphics/IntSize.h:
1372         * platform/graphics/Path.h:
1373         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
1374         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
1375         * platform/network/qt/QNetworkReplyHandler.h:
1376         * platform/network/qt/ResourceRequest.h:
1377         * platform/qt/ClipboardQt.h:
1378         * platform/qt/RenderThemeQt.h:
1379         * platform/text/PlatformString.h:
1380         * platform/text/qt/TextCodecQt.h:
1381         * svg/graphics/SVGPaintServer.h:
1382         * svg/graphics/SVGPaintServerGradient.h:
1383
1384 2008-04-14  Brady Eidson  <beidson@apple.com>
1385
1386         Reviewed by Anders
1387
1388         Lay the underpinnings for LocalStorage.
1389
1390         For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
1391         like SessionStorage.  The primary difference at this point is that the object returned is shared globally,
1392         and isn't copied for new top-level browsing contexts like SessionStorage.
1393
1394         Later, I'll add proper event dispatch and a persistent storage backing.
1395
1396         * GNUmakefile.am:
1397         * WebCore.base.exp:
1398         * WebCore.pro:
1399         * WebCore.vcproj/WebCore.vcproj:
1400         * WebCore.xcodeproj/project.pbxproj:
1401         * WebCoreSources.bkl:
1402
1403         * bindings/js/JSDOMWindowCustom.cpp:
1404         (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
1405
1406         * page/DOMWindow.cpp:
1407         (WebCore::DOMWindow::clear):
1408         (WebCore::DOMWindow::localStorage):
1409         * page/DOMWindow.h:
1410         (WebCore::DOMWindow::optionalLocalStorage):
1411
1412         * storage/LocalStorage.cpp: Added.
1413         (WebCore::LocalStorage::sharedLocalStorage):
1414         (WebCore::LocalStorage::LocalStorage):
1415         (WebCore::LocalStorage::storageArea):
1416         (WebCore::LocalStorage::itemChanged):
1417         (WebCore::LocalStorage::itemRemoved):
1418         (WebCore::LocalStorage::dispatchStorageEvent):
1419         * storage/LocalStorage.h: Added.
1420
1421         * storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects
1422         (WebCore::SessionStorage::SessionStorage):
1423         (WebCore::SessionStorage::copy):
1424         (WebCore::SessionStorage::storageArea):
1425         (WebCore::SessionStorage::itemChanged):
1426         (WebCore::SessionStorage::itemRemoved):
1427         (WebCore::SessionStorage::dispatchStorageEvent):
1428         * storage/SessionStorage.h:
1429
1430         * storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed.
1431         (WebCore::StorageArea::create):
1432         (WebCore::StorageArea::StorageArea):
1433         (WebCore::StorageArea::copy):
1434         (WebCore::StorageArea::setItem):
1435         (WebCore::StorageArea::removeItem):
1436         (WebCore::StorageArea::setClient):
1437         * storage/StorageArea.h:
1438         (WebCore::StorageArea::page):
1439         (WebCore::StorageArea::securityOrigin):
1440
1441         * storage/StorageAreaClient.h: Added.  Break out "itemChanged" and "itemRemoved" to a StorageAreaClient
1442           This way, both SessionStorage and LocalStorage areas can have different behavior on changes with
1443           that behavior managed from a central location.
1444         (WebCore::StorageAreaClient::~StorageAreaClient):
1445         (WebCore::StorageAreaClient::StorageAreaClient):
1446         (WebCore::StorageAreaClient::itemChanged):
1447         (WebCore::StorageAreaClient::itemRemoved):
1448
1449 2008-04-14  Brady Eidson  <beidson@apple.com>
1450
1451         Reviewed by Anders
1452
1453         Add a hidden pref to debug WebArchive loading.  With this pref on, when loading a WebArchive,
1454         if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the 
1455         network and will instead fail the load with a "cannot show URL" error.
1456
1457         * loader/ResourceLoader.cpp:
1458         (WebCore::ResourceLoader::load): Do the check here.
1459
1460         * page/Settings.cpp:
1461         (WebCore::Settings::Settings):
1462         (WebCore::Settings::setWebArchiveDebugModeEnabled):
1463         * page/Settings.h:
1464         (WebCore::Settings::webArchiveDebugModeEnabled):
1465
1466 2008-04-14  Antti Koivisto  <antti@apple.com>
1467
1468         Reviewed by Eric.
1469
1470         Some preparations for additive animations and animations in <use>.
1471         - Disallow animation elements in instance trees.
1472         - Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it 
1473           public and static
1474         - Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree
1475           there as well.
1476         - Add mechanism for blocking instance updates when an animation changes
1477           the referenced tree.
1478         
1479         The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
1480         with the existing test cases.
1481
1482         * svg/SVGAElement.cpp:
1483         (WebCore::SVGAElement::defaultEventHandler):
1484         * svg/SVGElementInstance.cpp:
1485         (WebCore::SVGElementInstance::updateInstance):
1486         * svg/SVGStyledElement.cpp:
1487         (WebCore::SVGStyledElement::updateElementInstance):
1488         (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
1489         * svg/SVGStyledElement.h:
1490         * svg/SVGUseElement.cpp:
1491         (WebCore::isDisallowedElement):
1492         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
1493         * svg/SVGUseElement.h:
1494         * svg/animation/SVGSMILElement.cpp:
1495         (WebCore::SVGSMILElement::insertedIntoDocument):
1496         (WebCore::SVGSMILElement::isSMILElement):
1497         (WebCore::SVGSMILElement::connectConditions):
1498         (WebCore::SVGSMILElement::disconnectConditions):
1499         * svg/animation/SVGSMILElement.h:
1500
1501 2008-04-14  Adam Roben  <aroben@apple.com>
1502
1503         Don't let the inspected page overwrite properties of JS objects in the
1504         Inspector
1505
1506         <https://bugs.webkit.org/show_bug.cgi?id=16011>
1507         <rdar://problem/5604409>
1508
1509         <https://bugs.webkit.org/show_bug.cgi?id=16837>
1510         <rdar://problem/5813850>
1511
1512         Reviewed by Sam Weinig and Geoff Garen.
1513
1514         Tests (contributed by Adam Barth and Collin Jackson):
1515         manual-tests/inspector-wrappers
1516
1517         * GNUmakefile.am:
1518         * WebCore.pro:
1519         * WebCore.vcproj/WebCore.vcproj:
1520         * WebCore.xcodeproj/project.pbxproj:
1521         * WebCoreSources.bkl:
1522         Added new files to the projects.
1523
1524         * bindings/js/JSQuarantinedObjectWrapper.cpp: Added.
1525         (WebCore::):
1526         (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue
1527         into a JSQuarantinedObjectWrapper, if the JSValue is in fact a
1528         JSQuarantinedObjectWrapper.
1529         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to
1530         be used with PropertySlot.
1531         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
1532         Hold onto the object we're wrapping and its global object. Pass the
1533         wrapped prototype up to the JSObject constructor.
1534         (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper):
1535         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches):
1536         Returns true if our underlying object originated from the same global
1537         object as the passed-in ExecState.
1538         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState):
1539         (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
1540         Wraps and moves an exception from our underlying ExecState to the
1541         passed-in one.
1542         (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the
1543         objects we're holding references to.
1544
1545         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
1546         (WebCore::JSQuarantinedObjectWrapper::put):
1547         (WebCore::JSQuarantinedObjectWrapper::deleteProperty):
1548         (WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
1549         (WebCore::JSQuarantinedObjectWrapper::construct):
1550         (WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
1551         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
1552         (WebCore::JSQuarantinedObjectWrapper::implementsCall):
1553         (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
1554         (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
1555         JSObject overrides. These each check the appropriate permission before
1556         allowing the call to proceed. We wrap all outgoing values using
1557         m_wrapOutgoingValue, and we prepare all incoming values with the
1558         virtual prepareIncomingValue function. If an exception is raised when
1559         calling the underlying object, we transfer the exception in wrapped
1560         form to the passed-in ExecState.
1561
1562         * bindings/js/JSQuarantinedObjectWrapper.h: Added.
1563         (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
1564         (WebCore::JSQuarantinedObjectWrapper::className): We return the
1565         underlying object's class name so that we can successfully masquerade
1566         as that underlying object when, e.g., Object.prototype.toString is
1567         called on us.
1568         (WebCore::JSQuarantinedObjectWrapper::classInfo):
1569
1570         (WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
1571         (WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
1572         (WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
1573         (WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
1574         (WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
1575         (WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
1576         (WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
1577         These virtual methods let subclasses define the allowed operations on
1578         the wrapped object. By default all operations are disabled.
1579
1580         * bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of
1581         JSQuarantinedObjectWrapper is used to wrap objects from the inspected
1582         page being passed to the Inspector.
1583         (WebCore::wrappers):
1584         (WebCore::):
1585         (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object
1586         if needed and returns the wrapper. If this object has been wrapped
1587         previously we'll return the old wrapper rather than make a new one.
1588         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add
1589         ourselves to the wrapper map.
1590         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove
1591         ourselves from the wrapper map.
1592         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that
1593         any objects passed to the inspected object are either wrappers around
1594         objects from the inspected page (in which case we unwrap them so that
1595         the inspected page never sees the wrapper), or wrapped callbacks from
1596         the Inspector.
1597         * bindings/js/JSInspectedObjectWrapper.h: Added.
1598         (WebCore::JSInspectedObjectWrapper::classInfo):
1599         (WebCore::JSInspectedObjectWrapper::allowsGetProperty):
1600         (WebCore::JSInspectedObjectWrapper::allowsSetProperty):
1601         (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty):
1602         (WebCore::JSInspectedObjectWrapper::allowsConstruct):
1603         (WebCore::JSInspectedObjectWrapper::allowsHasInstance):
1604         (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction):
1605         (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames):
1606         These all return true so that the Inspector can use objects from the
1607         inspected page however it needs.
1608         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all
1609         outgoing values as JSInspectedObjectWrappers.
1610
1611         * bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of
1612         JSQuarantinedObjectWrapper is used to wrap callbacks that the
1613         Inspector passes to the inspected page (e.g., for event listeners or
1614         client-side storage callbacks).
1615         (WebCore::wrappers):
1616         (WebCore::):
1617         (WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in
1618         object if needed and returns the wrapper. If this object has been
1619         wrapped previously we'll return the old wrapper rather than make a new
1620         one.
1621         (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add
1622         ourselves to the wrapper map.
1623         (WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper):
1624         Remove ourselves from the wrapper map.
1625         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure
1626         that values passed from the inspected page to an Inspector callback
1627         are wrapped in JSInspectedObjectWrappers. We also allow the inspected
1628         page to pass ourselves in (which will happen in the case of a
1629         client-side storage callback, where the callback itself is passed as
1630         the `this` object). In this case we unwrap ourselves so that the
1631         Inspector doesn't have to deal with the wrapper.
1632         * bindings/js/JSInspectorCallbackWrapper.h: Added.
1633         (WebCore::JSInspectorCallbackWrapper::classInfo):
1634         (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction):
1635         This is the only allowed operation on a JSInspectorCallbackWrapper.
1636         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all
1637         outgoing values as JSInspectorCallbackWrappers.
1638
1639         * page/InspectorController.cpp:
1640         (WebCore::getResourceDocumentNode): Wrap the Document before passing
1641         it to the Inspector.
1642         (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed
1643         to us.
1644         (WebCore::databaseTableNames): Unwrap the Database that the Inspector
1645         passed to us.
1646         (WebCore::inspectedWindow): Wrap the Window before passing it to the
1647         Inspector.
1648         (WebCore::InspectorController::focusNode): Wrap the Node before
1649         passing it to the Inspector.
1650         (WebCore::wrapCallback): Wraps the passed-in callback in a
1651         JSInspectorCallbackWrapper.
1652         (WebCore::InspectorController::addDatabaseScriptResource): Wrap the
1653         Database beore pasing it to the Inspector.
1654         (WebCore::InspectorController::windowScriptObjectAvailable): Add the
1655         new wrapCallback function to the InspectorController JS object.
1656
1657         * page/inspector/ElementsPanel.js:
1658         (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
1659
1660         * page/inspector/DatabaseQueryView.js:
1661         (WebInspector.DatabaseQueryView._enterKeyPressed):
1662         * page/inspector/DatabaseTableView.js:
1663         (WebInspector.DatabaseTableView.update):
1664         Pass null instead of an empty array to executeSql since we're no
1665         longer allowed to pass any unwrapped objects to the inspected page.
1666         We now wrap all callbacks being passed to the inspected page using
1667         InspectorController.wrapCallback.
1668
1669 2008-04-14  Adam Roben  <aroben@apple.com>
1670
1671         Use prototypes/constructors from the inspected page when operating on
1672         objects from the inspected page
1673
1674         Reviewed by Tim Hatcher.
1675
1676         * page/inspector/Console.js:
1677         (WebInspector.ConsolePanel._format): Use the Node constructor from the
1678         inspected Window with the instanceof operator.
1679         * page/inspector/ElementsPanel.js:
1680         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the
1681         Element prototype from the inspected Window instead of the Element
1682         prototype from this Window.
1683         * page/inspector/inspector.js:
1684         (WebInspector.performSearch): Ditto for Document prototype.
1685         * page/inspector/utilities.js:
1686         (Object.type): Now takes an optional Window parameter that is used to
1687         find the built-in constructors.
1688
1689 2008-04-14  Adam Roben  <aroben@apple.com>
1690
1691         Don't store objects from the Inspector on CSSStyleRules from the
1692         inspected page
1693
1694         Reviewed by Tim Hatcher.
1695
1696         * page/inspector/StylesSidebarPane.js:
1697         (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules
1698         from the inspected page in the styleRules array. Instead, always use a
1699         wrapper object. This will keep us from setting Inspector objects as
1700         properties of inspected objects.
1701
1702 2008-04-14  Timothy Hatcher  <timothy@apple.com>
1703
1704         Fixes a regression where clicking a resource URL in the Console would not
1705         show the resource in the Resources panel.
1706
1707         https://bugs.webkit.org/show_bug.cgi?id=18493
1708
1709         Reviewed by Adam Roben.
1710
1711         * page/inspector/Console.js:
1712         (WebInspector.Console.prototype._messagesClicked): Removed console-message-url
1713         handling to show resources. This is now handled by WebInspector.showResourceForURL.
1714         (WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
1715         class name to the URL anchor. Also add the line number as a property to the anchor.
1716         * page/inspector/ResourcesPanel.js:
1717         (WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
1718         (WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
1719         the sidebar. Call showLine on the resource view if it is implemented.
1720         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
1721         tree element in the sidebar.
1722         (WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
1723         the calculator changes since closeVisibleResource uses the calculator.
1724         * page/inspector/SourceView.js:
1725         (WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
1726         (WebInspector.SourceView.prototype.showLine):  Renamed from showSourceLine.
1727         * page/inspector/inspector.css:
1728         (body.console-visible #main-panels): Made the bottom 24px to match
1729         the height of #main-status-bar.
1730         (.console-message-url): Make the color important so it wins over
1731         the .webkit-html-resource-link rule.
1732         (.resource-view .resource-view-content): Made more generic from .image
1733         so all resource views get sized correctly.
1734         (.resource-view.image .resource-view-content): Removed.
1735         * page/inspector/inspector.js:
1736         (WebInspector.documentClick): Pass the line number from the anchor to
1737         WebInspector.showResourceForURL.
1738         (WebInspector.showResourceForURL): Add line number support. Pass the line
1739         to ResourcesPanel.showResource.
1740         (WebInspector.addMainEventListeners): Use bind for the event listeners.
1741
1742 2008-04-14  Xan Lopez  <xan@gnome.org>
1743
1744         Reviewed by Alp Toker.
1745
1746         http://bugs.webkit.org/show_bug.cgi?id=17917
1747         Bug 17917: Cookie support for HTTP soup backend
1748
1749         Initial implementation of cookies for the http soup backend.
1750
1751         Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
1752         one as CookieJarCurl in network/curl.
1753
1754         * GNUmakefile.am:
1755         * platform/CookieJar.h:
1756         * platform/network/curl/CookieJarCurl.cpp: Renamed from WebCore/platform/gtk/CookieJarGtk.cpp.
1757         (WebCore::setCookies):
1758         (WebCore::cookies):
1759         * platform/network/soup/CookieJarSoup.cpp: Added.
1760         (WebCore::getCookieJar):
1761         (WebCore::setCookies):
1762         (WebCore::cookies):
1763         * platform/network/soup/ResourceHandleSoup.cpp:
1764         (WebCore::ResourceHandle::start):
1765
1766 2008-04-14  Holger Freyther  <zecke@selfish.org>
1767
1768         Reviewed by Alp Toker.
1769
1770         https://bugs.webkit.org/show_bug.cgi?id=18411
1771         Enable Page caching and create FrameViews on the fly
1772
1773         Create the FrameView on the fly and cache pages
1774
1775         - Keep a copy of the GtkAdjustment to be able to reuse it for the
1776           FrameViews
1777         - Do not initially create a FrameView and update the WebKit code to
1778           cope with not having a view.
1779         - Cache seven pages by default.
1780
1781         * platform/gtk/ScrollViewGtk.cpp:
1782         (WebCore::ScrollView::setGtkAdjustments):
1783
1784 2008-04-14  David Hyatt  <hyatt@apple.com>
1785
1786         Add a new optimized layout path for positioned objects that move.  Also avoid always marking the <html>
1787         object for layout when it has a percentage height, since the RenderView already does that when its size
1788         changes.
1789
1790         Reviewed by mjs
1791
1792         * rendering/RenderBlock.cpp:
1793         (WebCore::RenderBlock::layoutBlockChildren):
1794         (WebCore::RenderBlock::layoutPositionedObjects):
1795         * rendering/RenderBox.h:
1796         (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
1797         * rendering/RenderObject.cpp:
1798         (WebCore::RenderObject::RenderObject):
1799         (WebCore::RenderObject::setNeedsLayout):
1800         (WebCore::RenderObject::setChildNeedsLayout):
1801         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
1802         (WebCore::RenderObject::setStyle):
1803         * rendering/RenderObject.h:
1804         (WebCore::RenderObject::needsLayout):
1805         (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
1806         (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
1807         * rendering/RenderStyle.cpp:
1808         (WebCore::positionedObjectMoved):
1809         (WebCore::RenderStyle::diff):
1810         * rendering/RenderStyle.h:
1811         (WebCore::RenderStyle::):
1812
1813 2008-04-14  David Hyatt  <hyatt@apple.com>
1814
1815         Add support for gradients in the CSS content property.
1816
1817         Reviewed by olliej
1818
1819         Added fast/gradients/generated-gradients.html
1820
1821         * GNUmakefile.am:
1822         * WebCore.pro:
1823         * WebCore.vcproj/WebCore.vcproj:
1824         * WebCore.xcodeproj/project.pbxproj:
1825         * WebCoreSources.bkl:
1826         * css/CSSParser.cpp:
1827         (WebCore::CSSParser::parseContent):
1828         * css/CSSStyleSelector.cpp:
1829         (WebCore::CSSStyleSelector::applyProperty):
1830         (WebCore::CSSStyleSelector::styleImage):
1831         (WebCore::CSSStyleSelector::mapBackgroundImage):
1832         * css/CSSStyleSelector.h:
1833         * html/HTMLImageElement.cpp:
1834         (WebCore::HTMLImageElement::attach):
1835         * rendering/RenderContainer.cpp:
1836         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
1837         * rendering/RenderImage.cpp:
1838         (WebCore::RenderImage::RenderImage):
1839         (WebCore::RenderImage::setCachedImage):
1840         (WebCore::RenderImage::paintReplaced):
1841         (WebCore::RenderImage::calcReplacedWidth):
1842         (WebCore::RenderImage::calcReplacedHeight):
1843         (WebCore::RenderImage::calcAspectRatioWidth):
1844         (WebCore::RenderImage::calcAspectRatioHeight):
1845         * rendering/RenderImage.h:
1846         (WebCore::RenderImage::hasImage):
1847         (WebCore::RenderImage::image):
1848         (WebCore::RenderImage::errorOccurred):
1849         (WebCore::RenderImage::usesImageContainerSize):
1850         (WebCore::RenderImage::setImageContainerSize):
1851         (WebCore::RenderImage::imageHasRelativeWidth):
1852         (WebCore::RenderImage::imageHasRelativeHeight):
1853         (WebCore::RenderImage::imageSize):
1854         * rendering/RenderImageGeneratedContent.cpp: Added.
1855         (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent):
1856         (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent):
1857         (WebCore::RenderImageGeneratedContent::setStyleImage):
1858         * rendering/RenderImageGeneratedContent.h: Added.
1859         (WebCore::RenderImageGeneratedContent::hasImage):
1860         (WebCore::RenderImageGeneratedContent::image):
1861         (WebCore::RenderImageGeneratedContent::errorOccurred):
1862         (WebCore::RenderImageGeneratedContent::usesImageContainerSize):
1863         (WebCore::RenderImageGeneratedContent::setImageContainerSize):
1864         (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth):
1865         (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight):
1866         (WebCore::RenderImageGeneratedContent::imageSize):
1867         * rendering/RenderObject.cpp:
1868         (WebCore::RenderObject::createObject):
1869         * rendering/RenderStyle.cpp:
1870         (WebCore::StyleCachedImage::imageHasRelativeWidth):
1871         (WebCore::StyleCachedImage::imageHasRelativeHeight):
1872         (WebCore::StyleCachedImage::usesImageContainerSize):
1873         (WebCore::RenderStyle::contentDataEquivalent):
1874         (WebCore::RenderStyle::setContent):
1875         (WebCore::ContentData::clear):
1876         * rendering/RenderStyle.h:
1877         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
1878         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
1879         (WebCore::StyleGeneratedImage::usesImageContainerSize):
1880         (WebCore::BackgroundLayer::setBackgroundImage):
1881         (WebCore::ContentData::):
1882         (WebCore::RenderStyle::setListStyleImage):
1883
1884 2008-04-14  Brady Eidson  <beidson@apple.com>
1885
1886         Reviewed by Sam, but Anders too, and he was more thorough in his review
1887         and thats the only reason Sam beat him
1888
1889         Swap the Page and SecurityOrigin arguments when creating a StorageArea.
1890
1891         SecurityOrigin is really the primary identifying characteristic of a StorageArea,
1892         and StorageAreas that represent LocalStorage won't have an owner Page.
1893
1894         * storage/SessionStorage.cpp:
1895         (WebCore::SessionStorage::copy):
1896         (WebCore::SessionStorage::storageArea):
1897
1898         * storage/StorageArea.cpp:
1899         (WebCore::StorageArea::create):
1900         (WebCore::StorageArea::StorageArea):
1901         (WebCore::StorageArea::copy):
1902         (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future
1903           it might be null
1904         * storage/StorageArea.h:
1905
1906 2008-04-14  Timothy Hatcher  <timothy@apple.com>
1907
1908         Add support for changing the sort order of the resources. The two sorting
1909         methods supported current are Time and Size.
1910
1911         Reviewed by Adam Roben.
1912
1913         * page/inspector/Images/statusbarMenuButton.png: Added.
1914         * page/inspector/Images/statusbarMenuButtonSelected.png: Added.
1915         * page/inspector/ResourcesPanel.js:
1916         (WebInspector.ResourcesPanel): Create the status bar menu button and
1917         setup the event listener to call _changeSortingFunction. Each option in
1918         the select references a sorting function.
1919         (WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
1920         items returned.
1921         (WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
1922         to the selected option's function in the sorting menu.
1923         * page/inspector/inspector.css: Added CSS rules for select elements in status bars.
1924
1925 2008-04-14  Timothy Hatcher  <timothy@apple.com>
1926
1927         Add support for toggling between small and large resource rows
1928         in the Resources panel.
1929
1930         Reviewed by Adam Roben.
1931
1932         * English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
1933         * page/inspector/Images/largerResourcesButtons.png: Added.
1934         * page/inspector/Images/resourceDocumentIconSmall.png: Added.
1935         * page/inspector/Images/resourcePlainIconSmall.png: Added.
1936         * page/inspector/ResourcesPanel.js:
1937         (WebInspector.ResourcesPanel): Create the status bar button and
1938         setup the event listener to call _toggleLargerResources.
1939         (WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
1940         (WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
1941         for the resources children list and the status bar button.
1942         * page/inspector/inspector.css: New style rules for small resources
1943         and the status bar item.
1944
1945 2008-04-14  Chris Fleizach  <cfleizach@apple.com>
1946
1947         Reviewed by Darin Adler
1948
1949         <rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
1950         AX was using the wrong method to determine the view to use to create the screen position 
1951
1952         * page/AccessibilityObject.cpp:
1953         (WebCore::AccessibilityObject::documentFrameView):
1954         * page/mac/AccessibilityObjectWrapper.mm:
1955         (-[AccessibilityObjectWrapper position]):
1956
1957 2008-04-14  David Smith  <catfish.man@gmail.com>
1958
1959         Reviewed by Timothy Hatcher.
1960         
1961         - Fix https://bugs.webkit.org/show_bug.cgi?id=14258
1962         Response time vs. download time should be shown in the network profile
1963
1964         * page/inspector/Resource.js: Change the sorting function to sort by response received time.
1965         * page/inspector/ResourcesPanel.js: Hook up the existing infrastructure to two bars instead of one; one for the total time, one for the time post-response.
1966         * page/inspector/inspector.css: Add a new rule to make the waiting bar have a lower opacity, and change the total bar opacity to handle the overlap
1967
1968 2008-04-14  Julien Chaffraix  <jchaffraix@webkit.org>
1969
1970         Reviewed by Ap.
1971
1972         Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
1973         http://bugs.webkit.org/show_bug.cgi?id=17403
1974
1975         The previous code had callbacks for the normal parsing (full document) and fragment parsing.
1976         The difference was induced by the method we were using which did not accept a xmlParserCtxt.
1977         The code has been refactored to allow us to share the callbacks between the different cases.
1978         A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
1979         some internal intialization is done in WebCore.
1980
1981         Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml
1982
1983         * dom/XMLTokenizer.cpp:
1984         (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the
1985         2 create methods.
1986
1987         (WebCore::createMemoryParser): Create a memory parser similar to the previous code.
1988         Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.
1989
1990         (WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
1991         which create method to call.
1992
1993         * dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.
1994
1995 2008-04-14  Rob Buis  <buis@kde.org>
1996
1997         Reviewed by Eric.
1998
1999         http://bugs.webkit.org/show_bug.cgi?id=18230
2000         tspan in link not working
2001
2002         Implement SVG Errata: "The 'a' element may contain any
2003         element that its parent may contain, except itself."
2004
2005         * svg/SVGAElement.cpp:
2006         (WebCore::SVGAElement::childShouldCreateRenderer):
2007
2008 2008-04-13  David Hyatt  <hyatt@apple.com>
2009
2010         Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark.  Improve layout's rect
2011         invalidation code to only invalidate a single unioned rect once enough individual little rects have
2012         been detected.
2013
2014         Reviewed by olliej
2015
2016         * page/FrameView.cpp:
2017         (WebCore::FrameViewPrivate::reset):
2018         (WebCore::FrameView::layout):
2019         (WebCore::FrameView::repaintRectangle):
2020         (WebCore::FrameView::beginDeferredRepaints):
2021         (WebCore::FrameView::endDeferredRepaints):
2022         * page/FrameView.h:
2023
2024 2008-04-13  Eric Seidel  <eric@webkit.org>
2025
2026         Reviewed by Oliver.
2027
2028         Fix spelling error in function name, no test case.
2029
2030         * svg/SVGTextContentElement.cpp:
2031         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
2032
2033 2008-04-13  Eric Seidel  <eric@webkit.org>
2034
2035         Reviewed by Oliver.
2036
2037         Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.
2038
2039         * svg/SVGAnimateMotionElement.cpp:
2040         (WebCore::SVGAnimateMotionElement::hasValidTarget):
2041
2042 2008-04-13  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2043
2044         Reviewed by Oliver Hunt.
2045
2046         http://bugs.webkit.org/show_bug.cgi?id=18239
2047         [Gtk] Build breaks if SVG is enabled but SVG Fonts disabled
2048
2049         * svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
2050
2051 2008-04-13  Julien Chaffraix  <jchaffraix@webkit.org>
2052
2053         Reviewed by David.
2054
2055         More SVG filters build fix.
2056
2057         * svg/graphics/filters/SVGFEImage.cpp:
2058         (WebCore::SVGFEImage::~SVGFEImage):
2059         (WebCore::SVGFEImage::setCachedImage):
2060
2061 2008-04-13  David Hyatt  <hyatt@apple.com>
2062
2063         Fix build bustage on the filters SVG code path (not built by default).
2064
2065         * svg/SVGFEImageElement.cpp:
2066         (WebCore::SVGFEImageElement::~SVGFEImageElement):
2067         (WebCore::SVGFEImageElement::parseMappedAttribute):
2068
2069 2008-04-13  Dan Winship  <danw@gnome.org>
2070
2071         Reviewed by Alp Toker.
2072
2073         http://bugs.webkit.org/show_bug.cgi?id=18391
2074         return body data incrementally from libsoup backend
2075
2076         Fix libsoup backend to pass data to the loader incrementally
2077         rather than all at once at the end.
2078
2079         * platform/network/soup/ResourceHandleSoup.cpp
2080         (ResourceHandle::start): connect to "got-headers" and "got-chunk"
2081         signals on the message
2082         (gotHeadersCallback): call client->didReceiveResponse() from here
2083         (gotChunkCallback): call client->didReceiveData() from here
2084         (finishedCallback): renamed from dataCallback. mostly just calls
2085         client->didFinishLoading() now.
2086
2087 2008-04-13  Dan Bernstein  <mitz@apple.com>
2088
2089         Reviewed by Jessica Kahn.
2090
2091         - remove duplicate condition in canHaveChildrenForEditing()
2092
2093         * editing/htmlediting.cpp:
2094         (WebCore::canHaveChildrenForEditing):
2095
2096 2008-04-13  Dan Bernstein  <mitz@apple.com>
2097
2098         Reviewed by Darin Adler.
2099
2100         - fix http://bugs.webkit.org/show_bug.cgi?id=18307
2101           <rdar://problem/5842546> REGRESSION (r31620): Incorrect Hiragino Kaku Gothic, font-weight:500
2102
2103         Test: fast/css/font-weight-1.html
2104
2105         * platform/graphics/mac/FontCacheMac.mm:
2106         (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit
2107         weight range from 2 to 12, because AppKit weight 1 never occurs. The
2108         new mapping matches font-weight: n00 to ISO weight Wn.
2109         * platform/mac/WebFontCache.mm:
2110         (betterChoice): Changed the midpoint used when deciding between two
2111         candidates that deviate from the desired weight by the same amount.
2112
2113 2008-04-12  David Hyatt  <hyatt@apple.com>
2114
2115         Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes.  Make the back end
2116         values hold refptrs to cached front end values.  This will avoid malloc churn as RenderStyles get
2117         re-resolved.
2118
2119         Reviewed by olliej
2120
2121         * css/CSSCursorImageValue.cpp:
2122         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2123         (WebCore::CSSCursorImageValue::cachedImage):
2124         * css/CSSCursorImageValue.h:
2125         * css/CSSImageGeneratorValue.cpp:
2126         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
2127         (WebCore::CSSImageGeneratorValue::generatedImage):
2128         * css/CSSImageGeneratorValue.h:
2129         * css/CSSImageValue.cpp:
2130         (WebCore::CSSImageValue::CSSImageValue):
2131         (WebCore::CSSImageValue::~CSSImageValue):
2132         (WebCore::CSSImageValue::cachedImage):
2133         * css/CSSImageValue.h:
2134         * css/CSSStyleSelector.cpp:
2135         (WebCore::CSSStyleSelector::applyProperty):
2136         (WebCore::CSSStyleSelector::createStyleImage):
2137         * css/CSSStyleSelector.h:
2138         * rendering/RenderStyle.h:
2139         (WebCore::StyleCachedImage::cachedImage):
2140         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
2141         (WebCore::StyleGeneratedImage::data):
2142
2143 2008-04-12  Julien Chaffraix  <jchaffraix@webkit.org>
2144
2145         Not reviewed, Qt build fix.
2146
2147         * dom/XMLTokenizer.cpp:
2148        (WebCore::XMLTokenizer::parseEndElement):
2149         * platform/graphics/qt/GraphicsContextQt.cpp:
2150         (WebCore::GraphicsContext::clip):
2151         * platform/qt/ClipboardQt.cpp:
2152         (WebCore::ClipboardQt::setDragImage):
2153
2154 2008-04-12  David Hyatt  <hyatt@apple.com>
2155
2156         Add support for list-style-image gradients.  Also improve the image comparisons between two RenderStyles        
2157         to not mistakenly believe that images have changed.
2158
2159         Reviewed by olliej
2160
2161         Added fast/gradients/list-item-gradient.html
2162
2163         * css/CSSComputedStyleDeclaration.cpp:
2164         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2165         * css/CSSParser.cpp:
2166         (WebCore::CSSParser::parseValue):
2167         * css/CSSStyleSelector.cpp:
2168         (WebCore::CSSStyleSelector::applyProperty):
2169         (WebCore::CSSStyleSelector::createStyleImage):
2170         * rendering/RenderListMarker.cpp:
2171         (WebCore::RenderListMarker::RenderListMarker):
2172         (WebCore::RenderListMarker::paint):
2173         (WebCore::RenderListMarker::imageChanged):
2174         (WebCore::RenderListMarker::calcPrefWidths):
2175         * rendering/RenderListMarker.h:
2176         * rendering/RenderStyle.cpp:
2177         (WebCore::imagesEquivalent):
2178         (WebCore::BorderImage::operator==):
2179         (WebCore::StyleCachedImage::errorOccurred):
2180         (WebCore::BackgroundLayer::operator==):
2181         (WebCore::StyleInheritedData::StyleInheritedData):
2182         (WebCore::cursorDataEquivalent):
2183         (WebCore::StyleInheritedData::operator==):
2184         (WebCore::RenderStyle::diff):
2185         * rendering/RenderStyle.h:
2186         (WebCore::StyleImage::errorOccurred):
2187         (WebCore::RenderStyle::listStyleImage):
2188         (WebCore::RenderStyle::setListStyleImage):
2189         (WebCore::RenderStyle::initialListStyleImage):
2190
2191 2008-04-12  Dan Bernstein  <mitz@apple.com>
2192
2193         - Windows build fix
2194
2195         * platform/win/ClipboardWin.cpp:
2196         (WebCore::ClipboardWin::setDragImage):
2197
2198 2008-04-12  Kevin Ollivier  <kevino@theolliviers.com>
2199
2200         wx build fix. Update clip to take a FloatRect.
2201
2202         * platform/graphics/wx/GraphicsContextWx.cpp:
2203         (WebCore::GraphicsContext::clip):
2204
2205 2008-04-12  David Hyatt  <hyatt@apple.com>
2206
2207         Add gradient support to border-image (even though it's mostly just weird).
2208
2209         Reviewed by Dan
2210
2211         Added fast/gradients/border-image-gradient.html
2212               fast/gradients/border-image-gradient-sides-and-corners.html
2213
2214         * css/CSSBorderImageValue.h:
2215         (WebCore::CSSBorderImageValue::imageValue):
2216         * css/CSSStyleSelector.cpp:
2217         (WebCore::CSSStyleSelector::applyProperty):
2218         * platform/graphics/GeneratedImage.cpp:
2219         (WebCore::GeneratedImage::draw):
2220         * rendering/InlineFlowBox.cpp:
2221         (WebCore::InlineFlowBox::paintBoxDecorations):
2222         * rendering/RenderBox.cpp:
2223         (WebCore::RenderBox::imageChanged):
2224         * rendering/RenderObject.cpp:
2225         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2226         (WebCore::RenderObject::paintBorderImage):
2227         (WebCore::RenderObject::paintBorder):
2228         (WebCore::RenderObject::updateBackgroundImages):
2229         (WebCore::RenderObject::arenaDelete):
2230         * rendering/RenderStyle.cpp:
2231         (WebCore::StyleCachedImage::isLoaded):
2232         * rendering/RenderStyle.h:
2233         (WebCore::StyleImage::isLoaded):
2234         (WebCore::BorderImage::image):
2235
2236 2008-04-11  Dan Bernstein  <mitz@apple.com>
2237
2238         Reviewed by Dave Hyatt.
2239
2240         - fix a regression from r31324 which caused most Arabic text to render
2241           as missing glyphs
2242
2243         Test: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
2244
2245         * svg/SVGFont.cpp:
2246         (WebCore::SVGTextRunWalker::walk): Changed to always process characters
2247         in logical order and therefore dispatch the callbacks with a logically-
2248         ordered glyph stream. Changed the call to isCompatibleGlyph() to check
2249         for compatibility only with the range of characters the candidate glyph
2250         is derived from rather than with the entire lookup range. Changed to
2251         mark the <missing-glyph> glyph identifier as valid, to facilitate the
2252         use of invalid glyph identifiers to mark font fallback.
2253         (WebCore::drawTextUsingSVGFontCallback): Changed to only append the
2254         glyph identifier to a vector.
2255         (WebCore::drawTextMissingGlyphCallback): Changed to only append the
2256         character to a vector and append an invalid glyph identifier to the
2257         glyph vector.
2258         (WebCore::Font::drawTextUsingSVGFont): Moved the drawing from the
2259         callbacks into this function, iterating over the glyph and fallback
2260         characters vector in visual order.
2261
2262 2008-04-11  Dirk Schulze <vbs85@gmx.de>
2263
2264         Reviewed by eseidel.
2265
2266         Attempt to fix Cairo build.
2267
2268         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2269         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2270
2271 2008-04-11  David Hyatt  <hyatt@apple.com>
2272
2273         Rename CachedResource's ref/deref methods to addClient/removeClient.  This matches the new
2274         StyleImage class and is a more accurate description of what those methods really do.
2275
2276         Reviewed by olliej
2277
2278         * WebCore.base.exp:
2279         * css/CSSCursorImageValue.cpp:
2280         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2281         * css/CSSFontFaceSource.cpp:
2282         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
2283         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
2284         * css/CSSImageValue.cpp:
2285         (WebCore::CSSImageValue::~CSSImageValue):
2286         (WebCore::CSSImageValue::image):
2287         * css/CSSImportRule.cpp:
2288         (WebCore::CSSImportRule::~CSSImportRule):
2289         (WebCore::CSSImportRule::insertedIntoParent):
2290         * dom/ProcessingInstruction.cpp:
2291         (WebCore::ProcessingInstruction::~ProcessingInstruction):
2292         (WebCore::ProcessingInstruction::checkStyleSheet):
2293         (WebCore::ProcessingInstruction::parseStyleSheet):
2294         * dom/XMLTokenizer.cpp:
2295         (WebCore::XMLTokenizer::~XMLTokenizer):
2296         (WebCore::XMLTokenizer::endElementNs):
2297         (WebCore::XMLTokenizer::notifyFinished):
2298         * html/CanvasPattern.cpp:
2299         (WebCore::CanvasPattern::CanvasPattern):
2300         (WebCore::CanvasPattern::~CanvasPattern):
2301         * html/HTMLImageLoader.cpp:
2302         (WebCore::HTMLImageLoader::~HTMLImageLoader):
2303         (WebCore::HTMLImageLoader::setImage):
2304         (WebCore::HTMLImageLoader::updateFromElement):
2305         * html/HTMLLinkElement.cpp:
2306         (WebCore::HTMLLinkElement::~HTMLLinkElement):
2307         (WebCore::HTMLLinkElement::process):
2308         * html/HTMLScriptElement.cpp:
2309         (WebCore::HTMLScriptElement::~HTMLScriptElement):
2310         (WebCore::HTMLScriptElement::parseMappedAttribute):
2311         (WebCore::HTMLScriptElement::insertedIntoDocument):
2312         (WebCore::HTMLScriptElement::removedFromDocument):
2313         (WebCore::HTMLScriptElement::notifyFinished):
2314         * html/HTMLTokenizer.cpp:
2315         (WebCore::HTMLTokenizer::reset):
2316         (WebCore::HTMLTokenizer::scriptHandler):
2317         (WebCore::HTMLTokenizer::notifyFinished):
2318         * loader/CachedCSSStyleSheet.cpp:
2319         (WebCore::CachedCSSStyleSheet::addClient):
2320         * loader/CachedCSSStyleSheet.h:
2321         * loader/CachedFont.cpp:
2322         (WebCore::CachedFont::addClient):
2323         * loader/CachedFont.h:
2324         * loader/CachedImage.cpp:
2325         (WebCore::CachedImage::addClient):
2326         * loader/CachedImage.h:
2327         * loader/CachedResource.cpp:
2328         (WebCore::CachedResource::addClient):
2329         (WebCore::CachedResource::removeClient):
2330         * loader/CachedResource.h:
2331         * loader/CachedScript.cpp:
2332         (WebCore::CachedScript::addClient):
2333         * loader/CachedScript.h:
2334         * loader/CachedXBLDocument.h:
2335         * loader/CachedXSLStyleSheet.cpp:
2336         (WebCore::CachedXSLStyleSheet::addClient):
2337         * loader/CachedXSLStyleSheet.h:
2338         * loader/mac/UserStyleSheetLoader.cpp:
2339         (UserStyleSheetLoader::UserStyleSheetLoader):
2340         (UserStyleSheetLoader::~UserStyleSheetLoader):
2341         * platform/mac/ClipboardMac.mm:
2342         (WebCore::ClipboardMac::setDragImage):
2343         * rendering/RenderImage.cpp:
2344         (WebCore::RenderImage::~RenderImage):
2345         (WebCore::RenderImage::setCachedImage):
2346         * rendering/RenderListMarker.cpp:
2347         (WebCore::RenderListMarker::~RenderListMarker):
2348         (WebCore::RenderListMarker::setStyle):
2349         * rendering/RenderObject.cpp:
2350         (WebCore::RenderObject::updateBackgroundImages):
2351         (WebCore::RenderObject::arenaDelete):
2352         * rendering/RenderStyle.cpp:
2353         (WebCore::StyleCachedImage::addClient):
2354         (WebCore::StyleCachedImage::removeClient):
2355         * svg/SVGImageLoader.cpp:
2356         (WebCore::SVGImageLoader::updateFromElement):
2357         * xml/XSLImportRule.cpp:
2358         (WebCore::XSLImportRule::~XSLImportRule):
2359         (WebCore::XSLImportRule::loadSheet):
2360
2361 2008-04-11  David Hyatt  <hyatt@apple.com>
2362
2363         This patch adds support for CSS gradients as background images.  RenderStyles now hold a StyleImage
2364         RefPtr, which is a wrapper for two types of images: CachedImages (loaded from URLs) and generated images
2365         (patterns created on the fly such as gradients).
2366
2367         All of the features of <canvas> are supported: gradients can be linear or radial, have multiple stops, and
2368         can specify their points as percentages (for reusable gradients across different box sizes).
2369
2370         Reviewed by olliej
2371
2372         Added fast/gradients/simple-gradients.html
2373
2374         * WebCore.xcodeproj/project.pbxproj:
2375         * css/CSSBorderImageValue.cpp:
2376         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
2377         * css/CSSBorderImageValue.h:
2378         (WebCore::CSSBorderImageValue::imageValue):
2379         (WebCore::CSSBorderImageValue::generatorValue):
2380         * css/CSSComputedStyleDeclaration.cpp:
2381         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2382         * css/CSSGradientValue.cpp: Added.
2383         (WebCore::CSSGradientValue::cssText):
2384         (WebCore::CSSGradientValue::createGradient):
2385         (WebCore::CSSGradientValue::image):
2386         (WebCore::compareStops):
2387         (WebCore::CSSGradientValue::sortStopsIfNeeded):
2388         (WebCore::CSSGradientValue::resolvePoint):
2389         (WebCore::CSSGradientValue::resolveRadius):
2390         * css/CSSGradientValue.h: Added.
2391         (WebCore::):
2392         (WebCore::CSSGradientColorStop::CSSGradientColorStop):
2393         (WebCore::CSSGradientValue::CSSGradientValue):
2394         (WebCore::CSSGradientValue::type):
2395         (WebCore::CSSGradientValue::setType):
2396         (WebCore::CSSGradientValue::setFirstX):
2397         (WebCore::CSSGradientValue::setFirstY):
2398         (WebCore::CSSGradientValue::setSecondX):
2399         (WebCore::CSSGradientValue::setSecondY):
2400         (WebCore::CSSGradientValue::setFirstRadius):
2401         (WebCore::CSSGradientValue::setSecondRadius):
2402         (WebCore::CSSGradientValue::addStop):
2403         * css/CSSImageGeneratorValue.cpp: Added.
2404         (WebCore::CSSImageGeneratorValue::~CSSImageGeneratorValue):
2405         (WebCore::CSSImageGeneratorValue::addClient):
2406         (WebCore::CSSImageGeneratorValue::removeClient):
2407         (WebCore::CSSImageGeneratorValue::getImage):
2408         (WebCore::CSSImageGeneratorValue::putImage):
2409         * css/CSSImageGeneratorValue.h: Added.
2410         (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
2411         * css/CSSImageValue.h:
2412         (WebCore::CSSImageValue::isImageValue):
2413         * css/CSSParser.cpp:
2414         (WebCore::CSSParser::parseBackgroundImage):
2415         (WebCore::BorderImageParseContext::commitImage):
2416         (WebCore::CSSParser::parseBorderImage):
2417         (WebCore::parseGradientPoint):
2418         (WebCore::parseGradientColorStop):
2419         (WebCore::CSSParser::parseGradient):
2420         * css/CSSParser.h:
2421         * css/CSSStyleSelector.cpp:
2422         (WebCore::CSSStyleSelector::applyProperty):
2423         (WebCore::CSSStyleSelector::createStyleImage):
2424         (WebCore::CSSStyleSelector::mapBackgroundImage):
2425         * css/CSSStyleSelector.h:
2426         * css/CSSValue.h:
2427         (WebCore::CSSValue::isImageValue):
2428         (WebCore::CSSValue::isImageGeneratorValue):
2429         * html/CanvasRenderingContext2D.cpp:
2430         (WebCore::CanvasRenderingContext2D::isPointInPath):
2431         * platform/graphics/BitmapImage.cpp:
2432         (WebCore::BitmapImage::BitmapImage):
2433         (WebCore::BitmapImage::dataChanged):
2434         (WebCore::BitmapImage::frameCount):
2435         * platform/graphics/BitmapImage.h:
2436         * platform/graphics/GraphicsContext.cpp:
2437         (WebCore::GraphicsContext::clipToImageBuffer):
2438         * platform/graphics/GraphicsContext.h:
2439         * platform/graphics/ImageBuffer.h:
2440         (WebCore::ImageBuffer::cgImage):
2441         (WebCore::ImageBuffer::image):
2442         * platform/graphics/cg/GraphicsContextCG.cpp:
2443         (WebCore::GraphicsContext::clipToImageBuffer):
2444         (WebCore::GraphicsContext::paintBuffer):
2445         (WebCore::GraphicsContext::drawImage):
2446         * platform/graphics/cg/ImageBufferCG.cpp:
2447         (WebCore::ImageBuffer::create):
2448         (WebCore::ImageBuffer::ImageBuffer):
2449         (WebCore::ImageBuffer::~ImageBuffer):
2450         (WebCore::ImageBuffer::image):
2451         (WebCore::ImageBuffer::getImageData):
2452         (WebCore::ImageBuffer::putImageData):
2453         (WebCore::ImageBuffer::toDataURL):
2454         * platform/graphics/cg/ImageCG.cpp:
2455         (WebCore::BitmapImage::BitmapImage):
2456         (WebCore::BitmapImage::draw):
2457         (WebCore::Image::drawPattern):
2458         * platform/graphics/qt/ImageQt.cpp:
2459         (WebCore::BitmapImage::BitmapImage):
2460         * rendering/InlineFlowBox.cpp:
2461         (WebCore::InlineFlowBox::paintBackground):
2462         * rendering/RenderBox.cpp:
2463         (WebCore::RenderBox::calculateBackgroundSize):
2464         (WebCore::RenderBox::imageChanged):
2465         (WebCore::RenderBox::paintBackgroundExtended):
2466         * rendering/RenderObject.cpp:
2467         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2468         (WebCore::RenderObject::updateBackgroundImages):
2469         (WebCore::RenderObject::arenaDelete):
2470         * rendering/RenderStyle.cpp:
2471         (WebCore::StyleCachedImage::cssValue):
2472         (WebCore::StyleCachedImage::canRender):
2473         (WebCore::StyleCachedImage::imageSize):
2474         (WebCore::StyleCachedImage::setImageContainerSize):
2475         (WebCore::StyleCachedImage::addClient):
2476         (WebCore::StyleCachedImage::removeClient):
2477         (WebCore::StyleCachedImage::image):
2478         (WebCore::StyleGeneratedImage::cssValue):
2479         (WebCore::StyleGeneratedImage::imageSize):
2480         (WebCore::StyleGeneratedImage::setImageContainerSize):
2481         (WebCore::StyleGeneratedImage::addClient):
2482         (WebCore::StyleGeneratedImage::removeClient):
2483         (WebCore::StyleGeneratedImage::image):
2484         * rendering/RenderStyle.h:
2485         (WebCore::StyleImage::StyleImage):
2486         (WebCore::StyleImage::~StyleImage):
2487         (WebCore::StyleImage::operator==):
2488         (WebCore::StyleImage::canRender):
2489         (WebCore::StyleImage::isCachedImage):
2490         (WebCore::StyleImage::isGeneratedImage):
2491         (WebCore::StyleCachedImage::StyleCachedImage):
2492         (WebCore::StyleCachedImage::data):
2493         (WebCore::StyleCachedImage::isCachedImage):
2494         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
2495         (WebCore::StyleGeneratedImage::data):
2496         (WebCore::StyleGeneratedImage::isGeneratedImage):
2497         (WebCore::BackgroundLayer::backgroundImage):
2498         (WebCore::BackgroundLayer::setBackgroundImage):
2499         (WebCore::BackgroundLayer::containsImage):
2500         (WebCore::RenderStyle::backgroundImage):
2501         (WebCore::RenderStyle::initialBackgroundImage):
2502         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
2503         (WebCore::SVGPaintServerGradient::teardown):
2504         * svg/graphics/cg/SVGResourceMaskerCg.mm:
2505         (WebCore::SVGResourceMasker::applyMask):
2506
2507 2008-04-11  Dan Bernstein  <mitz@apple.com>
2508
2509         Reviewed by Oliver Hunt.
2510
2511         - add SVGGlyphMap.h to project files
2512
2513         * WebCore.vcproj/WebCore.vcproj:
2514         * WebCore.xcodeproj/project.pbxproj:
2515
2516 2008-04-11  Anders Carlsson  <andersca@apple.com>
2517
2518         Fix release build.
2519         
2520         * WebCore.base.exp:
2521         
2522         * loader/archive/ArchiveResource.h:
2523         (WebCore::ArchiveResource::response):
2524         This should be const.
2525
2526 2008-04-11  Antti Koivisto  <antti@apple.com>
2527
2528         Try to fix Qt build.
2529
2530         * svg/animation/SMILTime.cpp:
2531
2532 2008-04-11  Anders Carlsson  <andersca@apple.com>
2533
2534         Reviewed by Brady.
2535
2536         Don't create the ArchiveResource response lazily.
2537         
2538         * loader/archive/ArchiveResource.cpp:
2539         (WebCore::ArchiveResource::ArchiveResource):
2540         * loader/archive/ArchiveResource.h:
2541         (WebCore::ArchiveResource::response):
2542
2543 2008-04-11  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2544
2545         Reviewed by Mark Rowe.
2546
2547         Added missing '\' in the svg include path
2548
2549         * GNUmakefile.am:
2550
2551 2008-04-11  Antti Koivisto  <antti@apple.com>
2552
2553         Another attempted Qt build fix.
2554
2555         * WebCore.pro:
2556
2557 2008-04-11  Antti Koivisto  <antti@apple.com>
2558
2559         Reviewed by Oliver.
2560
2561         Fix build when SVG is enabled but SVG_ANIMATION is not.
2562
2563         * ChangeLog:
2564         * bindings/js/JSSVGElementWrapperFactory.cpp:
2565         * bindings/objc/DOM.mm:
2566         (WebCore::createElementClassMap):
2567         * svg/SVGAElement.cpp:
2568         (WebCore::SVGAElement::defaultEventHandler):
2569         * svg/SVGAnimateColorElement.cpp:
2570         * svg/SVGAnimateColorElement.h:
2571         * svg/SVGAnimateColorElement.idl:
2572         * svg/SVGAnimateMotionElement.h:
2573         * svg/SVGAnimationElement.cpp:
2574         (WebCore::SVGAnimationElement::animationMode):
2575         * svg/SVGAnimationElement.h:
2576         * svg/SVGAnimationElement.idl:
2577         * svg/SVGSetElement.cpp:
2578         * svg/SVGSetElement.h:
2579         * svg/SVGSetElement.idl:
2580         * svg/animation/SMILTimeContainer.cpp:
2581         (WebCore::SMILTimeContainer::begin):
2582         (WebCore::SMILTimeContainer::pause):
2583         (WebCore::SMILTimeContainer::resume):
2584         (WebCore::SMILTimeContainer::elapsed):
2585         (WebCore::SMILTimeContainer::isPaused):
2586         (WebCore::SMILTimeContainer::timerFired):
2587         * svg/animation/SMILTimeContainer.h:
2588         * svg/animation/SVGSMILElement.cpp:
2589         * svg/animation/SVGSMILElement.h:
2590         * svg/svgtags.in:
2591
2592 2008-04-11  Anders Carlsson  <andersca@apple.com>
2593
2594         Reviewed by Brady.
2595
2596         Move archive loading from FrameLoader to DocumentLoader.
2597         
2598         * loader/DocumentLoader.cpp:
2599         (WebCore::DocumentLoader::DocumentLoader):
2600         (WebCore::DocumentLoader::clearArchiveResources):
2601         (WebCore::DocumentLoader::deliverArchivedResourcesAfterDelay):
2602         (WebCore::DocumentLoader::archiveResourceDeliveryTimerFired):
2603         (WebCore::DocumentLoader::isArchiveLoadPending):
2604         (WebCore::DocumentLoader::cancelPendingArchiveLoad):
2605         (WebCore::DocumentLoader::scheduleArchiveLoad):
2606         (WebCore::DocumentLoader::setDefersLoading):
2607         * loader/DocumentLoader.h:
2608         * loader/FrameLoader.cpp:
2609         (WebCore::FrameLoader::FrameLoader):
2610         (WebCore::FrameLoader::setDefersLoading):
2611         (WebCore::FrameLoader::stopAllLoaders):
2612         * loader/FrameLoader.h:
2613         * loader/ResourceLoader.cpp:
2614         (WebCore::ResourceLoader::load):
2615         (WebCore::ResourceLoader::didCancel):
2616
2617 2008-04-11  Timothy Hatcher  <timothy@apple.com>
2618
2619         Fixes the regression where the DOM tree does not update when navigating
2620         to another page with the Inspector open.
2621
2622         https://bugs.webkit.org/show_bug.cgi?id=18418
2623
2624         Reviewed by Adam Roben.
2625
2626         * page/inspector/ElementsPanel.js:
2627         (WebInspector.ElementsPanel.prototype.reset): If the inspected document does not have a
2628         firstChild yet, add an event listener for DOMContentLoaded. The event listener just sets
2629         a proeprty that a polling functions looks for then triggers the reset.
2630         (WebInspector.ElementsPanel.prototype._focusedNodeChanged): Always call updateStyles with
2631         forceUpdate as true. This makes sure the Styles pane clears when there isn't a focused node.
2632
2633 2008-04-11  Dan Bernstein  <mitz@apple.com>
2634
2635         Reviewed by Timothy Hatcher.
2636
2637         - fix http://bugs.webkit.org/show_bug.cgi?id=18412
2638           Inspector truncates text when editing a CSS property
2639
2640         * page/inspector/inspector.css:
2641
2642 2008-04-11  Antti Koivisto  <antti@apple.com>
2643
2644         Try to fix Qt build by including some headers.
2645
2646         * ChangeLog:
2647         * platform/graphics/UnitBezier.h:
2648         * svg/SVGAnimationElement.cpp:
2649         * svg/animation/SMILTime.h:
2650         * svg/animation/SVGSMILElement.cpp:
2651
2652 2008-04-11  Antti Koivisto  <antti@apple.com>
2653
2654         Try to fix Windows build by switching to std::sort().
2655
2656         * svg/animation/SVGSMILElement.cpp:
2657         (WebCore::sortTimeList):
2658
2659 2008-04-11  Rob Buis  <buis@kde.org>
2660
2661         Reviewed by Eric.
2662
2663         http://bugs.webkit.org/show_bug.cgi?id=18340
2664         Elements with display="none" in a <clipPath> still contribute to clipping path
2665
2666         Skip elements in clip-path container that have display=none specified.
2667
2668         * svg/SVGClipPathElement.cpp:
2669         (WebCore::SVGClipPathElement::canvasResource):
2670
2671 2008-04-10  Antti Koivisto  <antti@apple.com>
2672
2673         Reviewed by Eric.
2674
2675         Redo the SVG animation support.
2676         
2677         It does
2678         - Full SMIL interval timing model including syncbase and event base timing (the hard part).
2679         - CSS and XML attribute animation.
2680         - Linear, discrete and spline calcModes.
2681         - Values animation with keyTimes and keySplines.
2682         - Link activated animations.
2683         - Pretty good support for <animate> and <set> animations
2684         - Basic support for <animateColor>, <animateMotion> and <animateTransform>.
2685
2686         This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
2687         with some subtest failures.
2688
2689         What is still missing
2690         - Additive animation with multiple animations operating on the same property. This is a
2691           major architectural feature in animation code. It shouldn't be too hard to add.
2692         - Only <animate> implements accumulate.
2693         - <animateMotion> does not do paths, keypoints, rotate.
2694         - <animateTransform> does not work correctly in all cases
2695         - calcMode paced is missing.
2696         - repeat, beginEvent, endEvent are missing.
2697         - accesskey() is missing.
2698         - JS does not see correct values for baseVal/animVal, changing values that are being
2699           animted for a script produces wrong results. This problem needs to be solved outside
2700           the animation code.
2701         - Some other stuff I forgot or do not know about.
2702
2703         * GNUmakefile.am:
2704         * WebCore.pro:
2705         * WebCore.vcproj/WebCore.vcproj:
2706         * WebCore.xcodeproj/project.pbxproj:
2707         * dom/Document.cpp:
2708         * history/CachedPage.cpp:
2709         (WebCore::CachedPage::CachedPage):
2710         
2711         Use cache notification mechanism to start/stop animations.
2712
2713         * svg/SVGAElement.cpp:
2714         (WebCore::SVGAElement::defaultEventHandler):
2715         
2716         Start target animation on link activation.
2717         
2718         * svg/SVGAnimateColorElement.cpp:
2719         (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
2720         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
2721         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
2722         (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
2723         * svg/SVGAnimateColorElement.h:
2724         * svg/SVGAnimateElement.cpp:
2725         (WebCore::SVGAnimateElement::SVGAnimateElement):
2726         (WebCore::parseNumberValueAndUnit):
2727         (WebCore::SVGAnimateElement::applyAnimatedValueToElement):
2728         (WebCore::SVGAnimateElement::updateAnimatedValue):
2729         (WebCore::isColorAttribute):
2730         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2731         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2732         * svg/SVGAnimateElement.h:
2733         (WebCore::SVGAnimateElement::):
2734         * svg/SVGAnimateMotionElement.cpp:
2735         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
2736         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
2737         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
2738         (WebCore::parsePoint):
2739         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
2740         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
2741         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
2742         (WebCore::SVGAnimateMotionElement::startedActiveInterval):
2743         * svg/SVGAnimateMotionElement.h:
2744         * svg/SVGAnimateTransformElement.cpp:
2745         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
2746         (WebCore::SVGAnimateTransformElement::hasValidTarget):
2747         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
2748         (WebCore::transformListFor):
2749         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
2750         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
2751         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
2752         (WebCore::SVGAnimateTransformElement::startedActiveInterval):
2753         (WebCore::SVGAnimateTransformElement::parseTransformValue):
2754         * svg/SVGAnimateTransformElement.h:
2755         
2756         Concrete anmation element classes.
2757         
2758         * svg/SVGAnimationElement.cpp:
2759         (WebCore::SVGAnimationElement::SVGAnimationElement):
2760         (WebCore::SVGAnimationElement::~SVGAnimationElement):
2761         (WebCore::parseKeyTimes):
2762         (WebCore::parseKeySplines):
2763         (WebCore::SVGAnimationElement::parseMappedAttribute):
2764         (WebCore::SVGAnimationElement::attributeChanged):
2765         (WebCore::SVGAnimationElement::getStartTime):
2766         (WebCore::SVGAnimationElement::getCurrentTime):
2767         (WebCore::SVGAnimationElement::getSimpleDuration):
2768         (WebCore::SVGAnimationElement::beginElement):
2769         (WebCore::SVGAnimationElement::beginElementAt):
2770         (WebCore::SVGAnimationElement::endElement):
2771         (WebCore::SVGAnimationElement::endElementAt):
2772         (WebCore::SVGAnimationElement::animationMode):
2773         (WebCore::SVGAnimationElement::calcMode):
2774         (WebCore::SVGAnimationElement::attributeType):
2775         (WebCore::SVGAnimationElement::toValue):
2776         (WebCore::SVGAnimationElement::byValue):
2777         (WebCore::SVGAnimationElement::fromValue):
2778         (WebCore::SVGAnimationElement::attributeName):
2779         (WebCore::SVGAnimationElement::isAdditive):
2780         (WebCore::SVGAnimationElement::isAccumulated):
2781         (WebCore::SVGAnimationElement::hasValidTarget):
2782         (WebCore::SVGAnimationElement::targetAttributeIsCSS):
2783         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2784         (WebCore::SVGAnimationElement::targetAttributeBaseValue):
2785         (WebCore::solveEpsilon):
2786         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
2787         (WebCore::SVGAnimationElement::startedActiveInterval):
2788         (WebCore::SVGAnimationElement::applyAnimation):
2789         (WebCore::SVGAnimationElement::unapplyAnimation):
2790         (WebCore::SVGAnimationElement::endedActiveInterval):
2791         * svg/SVGAnimationElement.h:
2792         (WebCore::SVGAnimationElement::):
2793         
2794         This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
2795         was refactored to SMILTimingElement class that this class now inherits.
2796         
2797         * svg/SVGDocumentExtensions.cpp:
2798         (WebCore::SVGDocumentExtensions::startAnimations):
2799         * svg/SVGElement.cpp:
2800         (WebCore::SVGElement::ownerSVGElement):
2801         * svg/SVGSVGElement.cpp:
2802         
2803         We need to reach the <svg> element from <use> too so go out from the shadow tree.
2804         
2805         (WebCore::SVGSVGElement::SVGSVGElement):
2806         (WebCore::SVGSVGElement::~SVGSVGElement):
2807         (WebCore::SVGSVGElement::pauseAnimations):
2808         (WebCore::SVGSVGElement::unpauseAnimations):
2809         (WebCore::SVGSVGElement::animationsPaused):
2810         (WebCore::SVGSVGElement::getCurrentTime):
2811         (WebCore::SVGSVGElement::willSaveToCache):
2812         (WebCore::SVGSVGElement::willRestoreFromCache):
2813         * svg/SVGSVGElement.h:
2814         (WebCore::SVGSVGElement::timeContainer):
2815         * svg/SVGSetElement.cpp:
2816         (WebCore::SVGSetElement::applyAnimatedValueToElement):
2817         (WebCore::SVGSetElement::calculateFromAndToValues):
2818         (WebCore::SVGSetElement::calculateFromAndByValues):
2819         (WebCore::SVGSetElement::updateAnimatedValue):
2820         * svg/SVGSetElement.h:
2821         
2822         Concrete anmation element classes.
2823         
2824         * svg/SVGTimer.cpp: Removed.
2825         * svg/SVGTimer.h: Removed.
2826         * svg/SVGUseElement.cpp:
2827         (WebCore::SVGUseElement::removedFromDocument):
2828         * svg/TimeScheduler.cpp: Removed.
2829         * svg/TimeScheduler.h: Removed.
2830         
2831         Replaced these with SMILTimeContainer class.
2832         
2833         * svg/animation: Added.
2834         * svg/animation/SMILTime.cpp: Added.
2835         (WebCore::operator+):
2836         (WebCore::operator-):
2837         (WebCore::operator*):
2838         * svg/animation/SMILTime.h: Added.
2839         (WebCore::SMILTime::SMILTime):
2840         (WebCore::SMILTime::unresolved):
2841         (WebCore::SMILTime::indefinite):
2842         (WebCore::SMILTime::operator=):
2843         (WebCore::SMILTime::value):
2844         (WebCore::SMILTime::isFinite):
2845         (WebCore::SMILTime::isIndefinite):
2846         (WebCore::SMILTime::isUnresolved):
2847         (WebCore::operator==):
2848         (WebCore::operator!=):
2849         (WebCore::operator>):
2850         (WebCore::operator<):
2851         (WebCore::operator>=):
2852         (WebCore::operator<=):
2853         (WebCore::max):
2854         (WebCore::min):
2855         
2856         A floating point number with special values "indefinite" and "unresolved". Defines math for those.
2857         
2858         * svg/animation/SMILTimeContainer.cpp: Added.
2859         (WebCore::SMILTimeContainer::SMILTimeContainer):
2860         (WebCore::SMILTimeContainer::schedule):
2861         (WebCore::SMILTimeContainer::unschedule):
2862         (WebCore::SMILTimeContainer::elapsed):
2863         (WebCore::SMILTimeContainer::isActive):
2864         (WebCore::SMILTimeContainer::isPaused):
2865         (WebCore::SMILTimeContainer::begin):
2866         (WebCore::SMILTimeContainer::pause):
2867         (WebCore::SMILTimeContainer::resume):
2868         (WebCore::SMILTimeContainer::startTimer):
2869         (WebCore::SMILTimeContainer::timerFired):
2870         (WebCore::SMILTimeContainer::updateAnimations):
2871         * svg/animation/SMILTimeContainer.h: Added.
2872         
2873         Manages the clock and time line for active animations in a document.
2874         
2875         * svg/animation/SVGSMILElement.cpp: Added.
2876         (WebCore::ConditionEventListener::ConditionEventListener):
2877         (WebCore::ConditionEventListener::handleEvent):
2878         (WebCore::SVGSMILElement::Condition::Condition):
2879         (WebCore::SVGSMILElement::SVGSMILElement):
2880         (WebCore::SVGSMILElement::~SVGSMILElement):
2881         (WebCore::SVGSMILElement::insertedIntoDocument):
2882         (WebCore::SVGSMILElement::removedFromDocument):
2883         (WebCore::SVGSMILElement::finishParsingChildren):
2884         (WebCore::SVGSMILElement::parseOffsetValue):
2885         (WebCore::SVGSMILElement::parseClockValue):
2886         (WebCore::smilTimeSortFunction):
2887         (WebCore::sortTimeList):
2888         (WebCore::SVGSMILElement::parseCondition):
2889         (WebCore::SVGSMILElement::isTimingElement):
2890         (WebCore::SVGSMILElement::parseBeginOrEnd):
2891         (WebCore::SVGSMILElement::parseMappedAttribute):
2892         (WebCore::SVGSMILElement::attributeChanged):
2893         (WebCore::SVGSMILElement::connectConditions):
2894         (WebCore::SVGSMILElement::disconnectConditions):
2895         (WebCore::SVGSMILElement::reschedule):
2896         (WebCore::SVGSMILElement::targetElement):
2897         (WebCore::SVGSMILElement::elapsed):
2898         (WebCore::SVGSMILElement::restart):
2899         (WebCore::SVGSMILElement::fill):
2900         (WebCore::SVGSMILElement::xlinkHref):
2901         (WebCore::SVGSMILElement::dur):
2902         (WebCore::SVGSMILElement::repeatDur):
2903         (WebCore::SVGSMILElement::repeatCount):
2904         (WebCore::SVGSMILElement::maxValue):
2905         (WebCore::SVGSMILElement::minValue):
2906         (WebCore::SVGSMILElement::simpleDuration):
2907         (WebCore::SVGSMILElement::addBeginTime):
2908         (WebCore::SVGSMILElement::addEndTime):
2909         (WebCore::SVGSMILElement::findInstanceTime):
2910         (WebCore::SVGSMILElement::repeatingDuration):
2911         (WebCore::SVGSMILElement::resolveActiveEnd):
2912         (WebCore::SVGSMILElement::resolveInterval):
2913         (WebCore::SVGSMILElement::resolveFirstInterval):
2914         (WebCore::SVGSMILElement::resolveNextInterval):
2915         (WebCore::SVGSMILElement::nextProgressTime):
2916         (WebCore::SVGSMILElement::beginListChanged):
2917         (WebCore::SVGSMILElement::endListChanged):
2918         (WebCore::SVGSMILElement::checkRestart):
2919         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
2920         (WebCore::SVGSMILElement::calculateNextProgressTime):
2921         (WebCore::SVGSMILElement::determineActiveState):
2922         (WebCore::SVGSMILElement::progress):
2923         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
2924         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
2925         (WebCore::SVGSMILElement::addTimeDependent):
2926         (WebCore::SVGSMILElement::removeTimeDependent):
2927         (WebCore::SVGSMILElement::handleConditionEvent):
2928         (WebCore::SVGSMILElement::beginByLinkActivation):
2929         * svg/animation/SVGSMILElement.h: Added.
2930         (WebCore::SVGSMILElement::timeContainer):
2931         (WebCore::SVGSMILElement::):
2932         (WebCore::SVGSMILElement::intervalBegin):
2933         (WebCore::SVGSMILElement::intervalEnd):
2934         (WebCore::SVGSMILElement::Condition::):
2935         
2936             This abstract class implements the SMIL timing model. As an output it produces calls
2937             to these virtual functions:
2938         
2939             virtual void startedActiveInterval() = 0;
2940             virtual void applyAnimation(float percent, unsigned repeat) = 0;
2941             virtual void unapplyAnimation() = 0;
2942             virtual void endedActiveInterval() = 0;
2943
2944 2008-04-10  Antti Koivisto  <antti@apple.com>
2945
2946         Reviewed by Eric.
2947
2948         Move CurveData out from AnimationController.cpp and rename
2949         it to UnitBezier. This makes it possible to reuse this nice class from the 
2950         SVG animation code.
2951
2952         * WebCore.vcproj/WebCore.vcproj:
2953         * WebCore.xcodeproj/project.pbxproj:
2954         * page/AnimationController.cpp:
2955         (WebCore::solveCubicBezierFunction):
2956         * platform/graphics/UnitBezier.h: Added.
2957         (WebCore::UnitBezier::UnitBezier):
2958         (WebCore::UnitBezier::sampleCurveX):
2959         (WebCore::UnitBezier::sampleCurveY):
2960         (WebCore::UnitBezier::sampleCurveDerivativeX):
2961         (WebCore::UnitBezier::solveCurveX):
2962         (WebCore::UnitBezier::solve):
2963
2964 2008-04-10  Brady Eidson  <beidson@apple.com>
2965
2966         Reviewed by Sam Weinig
2967
2968         The name "OriginStorage" never felt right to a few of us.  The HTML5 spec refers to our 
2969         concept of "OriginStorage" as a "storage area", which makes more sense here.
2970
2971         This patch is basically:
2972         s/OriginStorage/StorageArea/
2973
2974         * GNUmakefile.am:
2975         * WebCore.pro:
2976         * WebCore.vcproj/WebCore.vcproj:
2977         * WebCore.xcodeproj/project.pbxproj:
2978         * WebCoreSources.bkl:
2979
2980         * loader/FrameLoader.cpp:
2981
2982         * page/DOMWindow.cpp:
2983         (WebCore::DOMWindow::sessionStorage):
2984         * page/Page.cpp:
2985
2986         * storage/OriginStorage.cpp: Removed.
2987         * storage/OriginStorage.h: Removed.
2988
2989         * storage/SessionStorage.cpp:
2990         (WebCore::SessionStorage::copy):
2991         (WebCore::SessionStorage::storageArea):
2992         * storage/SessionStorage.h:
2993
2994         * storage/Storage.cpp:
2995         (WebCore::Storage::create):
2996         (WebCore::Storage::Storage):
2997         (WebCore::Storage::length):
2998         (WebCore::Storage::key):
2999         (WebCore::Storage::getItem):
3000         (WebCore::Storage::setItem):
3001         (WebCore::Storage::removeItem):
3002         (WebCore::Storage::contains):
3003         * storage/Storage.h:
3004
3005         * storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp.
3006         (WebCore::StorageArea::create):
3007         (WebCore::StorageArea::StorageArea):
3008         (WebCore::StorageArea::~StorageArea):
3009         (WebCore::StorageArea::copy):
3010         (WebCore::StorageArea::length):
3011         (WebCore::StorageArea::key):
3012         (WebCore::StorageArea::getItem):
3013         (WebCore::StorageArea::setItem):
3014         (WebCore::StorageArea::removeItem):
3015         (WebCore::StorageArea::contains):
3016         (WebCore::StorageArea::dispatchStorageEvent):
3017         * storage/StorageArea.h: Copied from storage/OriginStorage.h.
3018
3019 2008-04-10  Xan Lopez  <xan@gnome.org>
3020
3021         Reviewed by Alp Toker.
3022
3023         http://bugs.webkit.org/show_bug.cgi?id=18342
3024         Bug #18342 - Add logging to HTTP soup backend
3025         
3026         Add soup logging facilities to HTTP soup backend.
3027         Enable defining WEBKIT_SOUP_LOGGING, with values from
3028         0 to 3 for more verbosity.
3029         
3030         * platform/network/soup/ResourceHandleSoup.cpp:
3031         (WebCore::ResourceHandle::start):
3032
3033 2008-04-10  Timothy Hatcher  <timothy@apple.com>
3034
3035         Fixes floating point precision in the Resources graph labels by using String.sprintf to
3036         format the values. Also makes the image view use Number.bytesToString when showing the file
3037         size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
3038         so the Inspector can pass WebInspector.UIString, so the format strings can be localized.
3039
3040         https://bugs.webkit.org/show_bug.cgi?id=18381
3041         https://bugs.webkit.org/show_bug.cgi?id=14333
3042
3043         Reviewed by Adam Roben.
3044
3045         * English.lproj/InspectorLocalizedStrings.js: Added the new strings.
3046         * page/inspector/ImageView.js:
3047         (WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
3048         * page/inspector/ResourcesPanel.js:
3049         (WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
3050         to Number.secondsToString.
3051         (WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
3052         to Number.bytesToString.
3053         * page/inspector/utilities.js:
3054         (Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
3055         to control the number precision.
3056         (Number.bytesToString): Ditto.
3057
3058 2008-04-010  Alice Liu  <alice.liu@apple.com>
3059
3060         Reviewed by Dan Bernstein.
3061
3062         Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6
3063
3064         Test: fast/events/mouseout-dead-subframe.html
3065
3066         * page/EventHandler.cpp:
3067         dispatching a mouse event can change the document structure, necessitating
3068         a check for whether we still want to pass the event to the pre-determined subframe 
3069         (WebCore::EventHandler::handleMouseMoveEvent):
3070
3071 2008-04-10  Antti Koivisto  <antti@apple.com>
3072
3073         Reviewed by Eric.
3074
3075         Fix scale transform. This will be tested by the animation test suite when
3076         SVG animation support lands.
3077
3078         * svg/SVGTransformDistance.cpp:
3079         (WebCore::SVGTransformDistance::SVGTransformDistance):
3080
3081 2008-04-10  David Hyatt  <hyatt@apple.com>
3082
3083         Add a gradient fillRect method to GraphicsContext.  This is implemented only in the CG port.  I stubbed
3084         out a method in GraphicsContext.cpp with notImplemented().  Other platforms will need to add their own
3085         gradient fill methods.
3086
3087         Reviewed by aroben
3088
3089         * platform/graphics/GraphicsContext.cpp:
3090         (WebCore::GraphicsContext::fillRect):
3091         * platform/graphics/GraphicsContext.h:
3092         * platform/graphics/cg/GraphicsContextCG.cpp:
3093         (WebCore::GraphicsContext::fillRect):
3094
3095 2008-04-10  David Hyatt  <hyatt@apple.com>
3096
3097         Gradient improvements.  Support for adding color stops by Color and not just by String.  Add the ability to mark
3098         stops as already being sorted.
3099
3100         Reviewed by aroben
3101
3102         * platform/graphics/Gradient.cpp:
3103         (WebCore::Gradient::addColorStop):
3104         * platform/graphics/Gradient.h:
3105         (WebCore::Gradient::setStopsSorted):
3106
3107 2008-04-10  Timothy Hatcher  <timothy@apple.com>
3108
3109         Fixes the build where some wtf headers would not be copied due
3110         to a bug in some older versions of Xcode.
3111
3112         Rubber-stamped by Adam Roben.
3113
3114         * WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle
3115         the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
3116         Removes the old copy files phase and the icu and ForwardingHeaders folder references.
3117
3118 2008-04-09  Brady Eidson  <beidson@apple.com>
3119
3120         Reviewed by Mitz Pettel
3121
3122         Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.
3123
3124         Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html
3125                storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
3126
3127         * html/HTMLAttributeNames.in: Added "onstorage"
3128         * html/HTMLBodyElement.cpp:
3129         (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only*
3130           because that's where the HTML5 spec says StorageEvents go.  This might change in the future
3131
3132 2008-04-09  Antti Koivisto  <antti@apple.com>
3133
3134         Reviewed by Mitz.
3135
3136         Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!
3137
3138         Also moved setting of the guard to dispatchSimulatedClick for better consistency. 
3139         No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.
3140
3141         * dom/EventTargetNode.cpp:
3142         (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
3143         (WebCore::EventTargetNode::dispatchSimulatedClick):
3144         * dom/Node.cpp:
3145         (WebCore::Node::Node):
3146         * dom/Node.h:
3147
3148 2008-04-09  Sam Weinig  <sam@webkit.org>
3149
3150         Reviewed by Geoffrey Garen.
3151
3152         Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
3153         Crash in JSDOMWindowWrapper::mark loading digg.com
3154
3155         - Add a null check to JSDOMWindowWrapper::mark for the case when the collector
3156           runs during its allocation.
3157         - Cleans up the creation of the window to be a little more straight forward.
3158
3159         * bindings/js/JSDOMWindowBase.cpp:
3160         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
3161         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
3162         (WebCore::JSDOMWindowBase::clear):
3163         (WebCore::JSDOMWindowBase::wrapper):
3164         * bindings/js/JSDOMWindowBase.h:
3165         * bindings/js/JSDOMWindowWrapper.cpp:
3166         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
3167         (WebCore::JSDOMWindowWrapper::mark):
3168         * bindings/js/JSDOMWindowWrapper.h:
3169         * bindings/js/kjs_proxy.cpp:
3170         (WebCore::KJSProxy::initScript):
3171         * bindings/scripts/CodeGeneratorJS.pm:
3172
3173 2008-04-09  Brady Eidson  <beidson@apple.com>
3174
3175         Rubberstamped by Mitzpettel
3176
3177         Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing, 
3178         and sorted the html group
3179
3180         * WebCore.xcodeproj/project.pbxproj:
3181
3182 2008-04-09  Brent Fulgham  <bfulgham@gmail.com>
3183
3184         Reviewed by Mitz.
3185
3186         Correct build regression in Windows (Cairo) build due to changes
3187         in FontDescription.h signature.  (see http://bugs.webkit.org/show_bug.cgi?id=18394)
3188
3189         * rendering/RenderThemeWin.cpp:  Change for new font methods.
3190         (WebCore::RenderThemeWin::systemFont):
3191
3192 2008-04-09  Brady Eidson  <beidson@apple.com>
3193
3194         Reviewed by Sam Weinig
3195
3196         When enumerating a Storage object, the Storage built-ins should not be included, but the 
3197         prototype chain SHOULD be included.
3198
3199         * bindings/js/JSStorageCustom.cpp:
3200         (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
3201
3202         * storage/Storage.idl: Mark all built-ins as "DontEnum"
3203
3204 2008-04-09  Brady Eidson  <beidson@apple.com>
3205
3206         Reviewed by Adam Roben
3207
3208         Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area, 
3209         and should not return the built-in properties.
3210
3211         Test: storage/domstorage/sessionstorage/enumerate-storage.html
3212
3213         * bindings/js/JSLocationCustom.cpp:
3214         (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
3215
3216         * bindings/js/JSStorageCustom.cpp:
3217         (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
3218
3219         * storage/Storage.idl: Add CustomGetPropertyNames
3220
3221 2008-04-09  Timothy Hatcher  <timothy@apple.com>
3222
3223         Fixes the regression where resource time/size pills do not
3224         update during a load in the Inspector.
3225
3226         http://bugs.webkit.org/show_bug.cgi?id=18374
3227
3228         Reviewed by John Sullivan.
3229
3230         * page/inspector/ResourcesPanel.js:
3231         (ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
3232         since _updateSidebarWidth already calls _updateGraphBars.
3233         (ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
3234         (ResourcesPanel.prototype._updateGraphBars): Ditto.
3235         (ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
3236         style for graphSideElement with the passed in width.
3237
3238 2008-04-09  Antti Koivisto  <antti@apple.com>
3239
3240         Reviewed by Mitz.
3241
3242         Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.
3243         - do the the checking in call sites instead of inside the function
3244         - rename to updateStyleAttribute()
3245         - use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument 
3246           to avoid calling attributes() which may trigger style attribute update.
3247         
3248         * dom/Element.cpp:
3249         (WebCore::Element::attributes):
3250         (WebCore::Element::getAttribute):
3251         (WebCore::Element::hasAttributes):
3252         (WebCore::Element::insertedIntoDocument):
3253         (WebCore::Element::removedFromDocument):
3254         * dom/Element.h:
3255         (WebCore::Element::updateStyleAttribute):
3256         * dom/NamedAttrMap.cpp:
3257         (WebCore::NamedAttrMap::addAttribute):
3258         * dom/StyledElement.cpp:
3259         (WebCore::StyledElement::updateStyleAttribute):
3260         * dom/StyledElement.h:
3261
3262 2008-04-09  Timothy Hatcher  <timothy@apple.com>
3263
3264         A more complete fix for: can't drag the Web Inspector when grabbing
3265         in the toolbar area. Makes dragging under the search field in the
3266         empty space work again.
3267
3268         http://bugs.webkit.org/show_bug.cgi?id=18373
3269
3270         Reviewed by Adam Roben.
3271
3272         * page/inspector/inspector.js:
3273         (WebInspector.toolbarDragStart): Prevent dragging if the event target
3274         is a toggleable toolbar item. Allow dragging when the target is a
3275         normal toolbar item.
3276
3277 2008-04-08  Sam Weinig  <sam@webkit.org>
3278
3279         Reviewed by Timothy Hatcher.
3280
3281         Fix for http://bugs.webkit.org/show_bug.cgi?id=18373
3282         REGRESSION: Can't drag the Web Inspector when grabbing in the toolbar area
3283
3284         * page/inspector/inspector.css:
3285
3286 2008-04-08  Christian Persch  <chpe@gnome.org>
3287
3288         Reviewed by Alp Toker.
3289
3290         http://bugs.webkit.org/show_bug.cgi?id=18360
3291         "missing sentinel" warnings in PluginDatabaseGtk.cpp
3292
3293         Use NULL, not 0 as sentinel in varargs calls.
3294
3295         * plugins/gtk/PluginDatabaseGtk.cpp:
3296         (WebCore::PluginDatabase::getPluginPathsInDirectories):
3297         (WebCore::PluginDatabase::defaultPluginDirectories):
3298
3299 2008-04-04  Sam Weinig  <sam@webkit.org>
3300
3301         Reviewed by Geoffrey Garen.
3302
3303         First step in implementing the "split window"
3304
3305         - This patch takes the first step in changing the window navigation model
3306           from clearing the window properties on navigation, to replacing
3307           an inner window.  This is necessary to safely perform security checks
3308           using the lexical global object.
3309
3310           This first step adds a new class called JSDOMWindowWrapper, which wraps
3311           the real window object.  All JS calls that would go to the window object
3312           now go to it, which it forwards to the current inner window.  To accomplish
3313           this, the wrapper window is used as the ThisValue wherever the window was used
3314           before.
3315
3316         * WebCore.base.exp:
3317         * WebCore.xcodeproj/project.pbxproj:
3318         * bindings/js/JSDOMWindowBase.cpp:
3319         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
3320         (WebCore::JSDOMWindowBase::clear): Reset the wrapper windows prototype too.
3321         (WebCore::JSDOMWindowBase::toThisObject):
3322         (WebCore::JSDOMWindowBase::wrapper):
3323         (WebCore::windowProtoFuncAToB):
3324         (WebCore::windowProtoFuncBToA):
3325         (WebCore::windowProtoFuncOpen):
3326         (WebCore::windowProtoFuncSetTimeout):
3327         (WebCore::windowProtoFuncClearTimeout):
3328         (WebCore::windowProtoFuncSetInterval):
3329         (WebCore::windowProtoFuncAddEventListener):
3330         (WebCore::windowProtoFuncRemoveEventListener):
3331         (WebCore::windowProtoFuncShowModalDialog):
3332         (WebCore::windowProtoFuncNotImplemented):
3333         (WebCore::toJS):
3334         * bindings/js/JSDOMWindowBase.h:
3335         Fix to expect the wrapper as the thisObj.
3336         * bindings/js/JSDOMWindowCustom.cpp:
3337         (WebCore::JSDOMWindow::postMessage):
3338         (WebCore::toDOMWindow):
3339         * bindings/js/JSDOMWindowWrapper.cpp: Added.
3340         (WebCore::):
3341         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
3342         (WebCore::JSDOMWindowWrapper::~JSDOMWindowWrapper):
3343         (WebCore::JSDOMWindowWrapper::mark):
3344         (WebCore::JSDOMWindowWrapper::className):
3345         (WebCore::JSDOMWindowWrapper::getOwnPropertySlot):
3346         (WebCore::JSDOMWindowWrapper::put):
3347         (WebCore::JSDOMWindowWrapper::deleteProperty):
3348         (WebCore::JSDOMWindowWrapper::getPropertyNames):
3349         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3350         (WebCore::JSDOMWindowWrapper::defineGetter):
3351         (WebCore::JSDOMWindowWrapper::defineSetter):
3352         (WebCore::JSDOMWindowWrapper::lookupGetter):
3353         (WebCore::JSDOMWindowWrapper::lookupSetter):
3354         (WebCore::JSDOMWindowWrapper::toGlobalObject):
3355         (WebCore::JSDOMWindowWrapper::impl):
3356         (WebCore::JSDOMWindowWrapper::disconnectFrame):
3357         (WebCore::JSDOMWindowWrapper::clear):
3358         (WebCore::toJS):
3359         * bindings/js/JSDOMWindowWrapper.h: Added.
3360         (WebCore::JSDOMWindowWrapper::innerWindow):
3361         (WebCore::JSDOMWindowWrapper::setInnerWindow):
3362         (WebCore::JSDOMWindowWrapper::classInfo):
3363         Forward methods to the innerWindow.
3364         * bindings/js/JSHTMLDocumentCustom.cpp:
3365         (WebCore::JSHTMLDocument::open):
3366         * bindings/js/ScheduledAction.cpp:
3367         (WebCore::ScheduledAction::execute):
3368         * bindings/js/kjs_events.cpp:
3369         (WebCore::JSAbstractEventListener::handleEvent):
3370         * bindings/js/kjs_proxy.cpp:
3371         (WebCore::KJSProxy::~KJSProxy):
3372         (WebCore::KJSProxy::evaluate):
3373         (WebCore::KJSProxy::clear):
3374         (WebCore::KJSProxy::initScript):
3375         (WebCore::KJSProxy::clearDocumentWrapper):
3376         (WebCore::KJSProxy::processingUserGesture):
3377         (WebCore::KJSProxy::attachDebugger):
3378         * bindings/js/kjs_proxy.h:
3379         (WebCore::KJSProxy::haveWindowWrapper):
3380         (WebCore::KJSProxy::windowWrapper):
3381         (WebCore::KJSProxy::globalObject):
3382         (WebCore::KJSProxy::initScriptIfNeeded):
3383         Hold onto the wrapper window instead of global object.  As a convenience,
3384         keep the globalObject() as a forward to the inner window.
3385         * bindings/objc/DOMUtility.mm:
3386         (KJS::createDOMWrapper):
3387         * bindings/scripts/CodeGeneratorJS.pm:
3388         * dom/Document.cpp:
3389         (WebCore::Document::domWindow):
3390         * dom/Document.h:
3391         (WebCore::Document::defaultView):
3392         * loader/FrameLoader.cpp:
3393         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
3394         * page/DOMWindow.idl:
3395         * page/Frame.cpp:
3396         (WebCore::Frame::~Frame):
3397         (WebCore::Frame::pageDestroyed):
3398
3399 2008-04-08  Brady Eidson  <beidson@apple.com>
3400
3401         Encourage Windows to rebuild - AGAIN...
3402
3403         * WebCore.vcproj/build-generated-files.sh:
3404         * bindings/scripts/CodeGenerator.pm:
3405         * bindings/scripts/CodeGeneratorJS.pm:
3406         * config.h:
3407
3408 2008-04-08  Brady Eidson  <beidson@apple.com>
3409
3410         OMG release builds didn't have this flag Windows build bots I'm so 
3411         sorry will you ever forgive me?
3412
3413         (Found by Stephanie, rubberstamped and landed by Brady)
3414
3415         * WebCore.vcproj/WebCore.vcproj: Add ENABLE_DOM_STORAGE for release builds
3416
3417 2008-04-08  Timothy Hatcher  <timothy@apple.com>
3418
3419         Fixes a crash in KJS::JSValue::toObject when closing
3420         Safari with Inspector open.
3421
3422         http://bugs.webkit.org/show_bug.cgi?id=18371
3423
3424         Reviewed by Adam Roben.
3425
3426         * page/InspectorController.cpp:
3427         (WebCore::inspectedWindow): NULL check the result of toJSDOMWindow.
3428         Return JSNull if JSDOMWindow is 0.
3429         * page/inspector/ElementsPanel.js:
3430         (ElementsPanel.prototype.reset): NULL check the result of
3431         InspectorController.inspectedWindow.
3432
3433 2008-04-08  Adam Roben  <aroben@apple.com>
3434
3435         Wx build fix
3436
3437         * webcore-wx.bkl: Removed entry for non-existent file.
3438
3439 2008-04-08  Adam Roben  <aroben@apple.com>
3440
3441         qmake build fixes
3442
3443         * WebCore.pro: Removed entries for non-existent files.
3444
3445 2008-04-08  Brady Eidson  <beidson@apple.com>
3446
3447         Rubberstamped by Adam Roben
3448         
3449         Touch some files to *strongly* encourage Windows to rebuilt with DOM_STORAGE enabled
3450
3451         * WebCore.vcproj/build-generated-files.sh:
3452         * bindings/scripts/CodeGenerator.pm:
3453         * config.h:
3454
3455 2008-04-08  Timothy Hatcher  <timothy@apple.com>
3456
3457         Implements the majority of the Inspector UI refresh as shown at:
3458         http://trac.webkit.org/projects/webkit/wiki/ProposedWebInspectorUIRefresh
3459
3460         http://bugs.webkit.org/show_bug.cgi?id=17773
3461
3462         A few areas that have not been re-implemented with the new UI are:
3463         * Search and search results.
3464         * Request and response headers in the Resources panel.
3465         * Changing the sorting, grouping or toggling small rows in Resources.
3466         * Image and font previews in the icon of resources.
3467
3468         Reviewed by Adam Roben.
3469
3470         * English.lproj/InspectorLocalizedStrings.js: Updated to match actual strings.
3471         * WebCore.vcproj/WebCore.vcproj: Added new files.
3472         * page/InspectorController.cpp:
3473         (WebCore::InspectorController::setWindowVisible): Call resetScriptObjects()
3474         instead of individual clear functions.
3475         (WebCore::InspectorController::populateScriptObjects): Renamed from
3476         populateScriptResources.
3477         (WebCore::InspectorController::addDatabaseScriptResource): Call
3478         addDatabase instead of addResource.
3479         (WebCore::InspectorController::removeDatabaseScriptResource): Call
3480         removeDatabase instead of removeResource.
3481         (WebCore::InspectorController::resetScriptObjects): Renamed from
3482         clearScriptResources.
3483         (WebCore::InspectorController::didCommitLoad): Call resetScriptObjects()
3484         instead of individual clear functions.
3485         * page/InspectorController.h: Rename functions.
3486         * page/inspector/Console.js: Changed the object name to Console from
3487         ConsolePanel. Made it inherit the prototype from View. Added code
3488         to animate in and out.
3489         * page/inspector/Database.js: Removed title updating and Resource
3490         pseudo-subclassing. Made more of a Model object that just encapsulates
3491         data. Add a getter for table names.
3492         * page/inspector/DatabaseQueryView.js: Added. Implements the view seen
3493         when selecting a Database in the DatabasesPanel. Implemented as an
3494         interactive console-like area.
3495         * page/inspector/DatabaseTableView.js: Added. Implements the view seen
3496         when selecting a Database Table in the DatabasesPanel. Matches the old
3497         Browse view of Database panels.
3498         * page/inspector/DatabasesPanel.js: Changed the object name to DatabasesPanel
3499         from DatabasePanel. Implements a panel that shows a sidebar of Databases
3500         and Database Tables.
3501         * page/inspector/ElementsPanel.js:  Changed the object name to ElementsPanel
3502         from DocumentPanel. Implements the DOM tree that shows the DOM rooted at the
3503         main resource.
3504         * page/inspector/FontView.js: Use this.contentElement instead of this.element.
3505         * page/inspector/ImageView.js: Ditto.
3506         * page/inspector/Images/clearConsoleButtons.png: Added.
3507         * page/inspector/Images/consoleButtons.png: Added.
3508         * page/inspector/Images/darkShadow.png: Flipped.
3509         * page/inspector/Images/database.png: Modified to be 32x32.
3510         * page/inspector/Images/databaseTable.png: Added.
3511         * page/inspector/Images/databasesIcon.png: Added.
3512         * page/inspector/Images/disclosureTriangleSmallDown.png: Added.
3513         * page/inspector/Images/disclosureTriangleSmallDownBlack.png: Added.
3514         * page/inspector/Images/disclosureTriangleSmallDownWhite.png: Added.
3515         * page/inspector/Images/disclosureTriangleSmallRight.png: Added.
3516         * page/inspector/Images/disclosureTriangleSmallRightBlack.png: Added.
3517         * page/inspector/Images/disclosureTriangleSmallRightDown.png: Added.
3518         * page/inspector/Images/disclosureTriangleSmallRightDownBlack.png: Added.
3519         * page/inspector/Images/disclosureTriangleSmallRightDownWhite.png: Added.
3520         * page/inspector/Images/disclosureTriangleSmallRightWhite.png: Added.
3521         * page/inspector/Images/dockButtons.png: Added.
3522         * page/inspector/Images/elementsIcon.png: Added.
3523         * page/inspector/Images/gradientHighlightBottom.png:
3524         * page/inspector/Images/resourceCSSIcon.png: Added.
3525         * page/inspector/Images/resourceDocumentIcon.png: Added.
3526         * page/inspector/Images/resourcePlainIcon.png: Added.
3527         * page/inspector/Images/resourcesIcon.png: Added.
3528         * page/inspector/Images/resourcesSizeGraphIcon.png: Added.
3529         * page/inspector/Images/resourcesTimeGraphIcon.png: Added.
3530         * page/inspector/Images/scriptsIcon.png: Added.
3531         * page/inspector/Images/segment.png: Modified to fit the taller status bar.
3532         * page/inspector/Images/segmentEnd.png: Ditto.
3533         * page/inspector/Images/segmentHover.png: Ditto.
3534         * page/inspector/Images/segmentHoverEnd.png: Ditto.
3535         * page/inspector/Images/segmentSelected.png: Ditto.
3536         * page/inspector/Images/segmentSelectedEnd.png: Ditto.
3537         * page/inspector/Images/sidebarSelectionBackground.png: Added.
3538         * page/inspector/Images/sidebarSelectionBackgroundFocused.png: Added.
3539         * page/inspector/Images/sidebarSelectionBackgroundInactive.png: Added.
3540         * page/inspector/Images/sidebarSmallSelectionBackground.png: Added.
3541         * page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Added.
3542         * page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Added.
3543         * page/inspector/Images/statusbarBackground.png: Added.
3544         * page/inspector/Images/statusbarBottomBackground.png: Added.
3545         * page/inspector/Images/statusbarButtons.png: Added.
3546         * page/inspector/Images/statusbarResizerVertical.png: Added.
3547         * page/inspector/Images/toolbarItemSelected.png: Added.
3548         * page/inspector/Panel.js: Added support for toolbar items and status bar items.
3549         Inherits from the View prototype.
3550         * page/inspector/Resource.js: Removed title updating and the ResourceTreeElement.
3551         Made more of a Model object that just encapsulates data.
3552         * page/inspector/ResourceCategory.js: Removed the ResourceCategoryTreeElement.
3553         Made more of a Model object that just encapsulates data.
3554         * page/inspector/ResourceView.js: A simple base object for Resource views
3555         shown in ResourcesPanel. Inherits from the View prototype.
3556         * page/inspector/ResourcesPanel.js: Changed the object name to ResourcesPanel
3557         from NetworkPanel. Implements the timeline graph, size graph and resource
3558         viewing by using ResourceViews.
3559         * page/inspector/SidebarTreeElement.js: Added. Inherits from TreeElement and implements
3560         a section element and a regular element that has an icon, title and optional subtitle.
3561         * page/inspector/SourceView.js: Use this.contentElement instead of this.element.
3562         * page/inspector/StylesSidebarPane.js: Null check WebInspector.mainResource.
3563         * page/inspector/View.js: Added. A simple object to manage showing and hiding an element.
3564         * page/inspector/WebKit.qrc: Added new files.
3565         * page/inspector/inspector.css: New and changed style rules to support the new UI.
3566         * page/inspector/inspector.html: New and changed HTML for the UI. The search field
3567         is disabled until search is reimplemented.
3568         * page/inspector/inspector.js: Removed code related to the sidebar and back-forward lists.
3569         Also removed code related to navigation to panels. Added code to instantiate the new
3570         panels and setup the toolbar.
3571
3572 2008-04-08  Dan Bernstein  <mitz@apple.com>
3573
3574         Reviewed by Antti Koivisto.
3575
3576         - fix a regression from r31313 which made the inspector highlight and
3577           yellow find highlight for table cells with extra top appear in the
3578           wrong position
3579
3580         * rendering/LayoutState.cpp:
3581         (WebCore::LayoutState::LayoutState): Changed absolutePosition() to
3582         absolutePositionForContent(), to get the right position for children of
3583         table cells. This is the correct fix for this part of r31313.
3584         * rendering/RenderBox.cpp:
3585         (WebCore::RenderBox::absolutePosition): Reverted the change from r31313
3586         by changing absolutePosition() to absolutePositionForContent() here too.
3587         * rendering/RenderObject.h:
3588         (WebCore::RenderObject::absolutePositionForContent): Changed to return
3589         the result from absolutePosition().
3590         * rendering/RenderTableCell.cpp:
3591         (WebCore::RenderTableCell::absoluteClippedOverflowRect): Turned the
3592         "else" case into an early return.
3593         (WebCore::RenderTableCell::absolutePosition): Reverted the change from
3594         r31313.
3595
3596 2008-04-08  Dan Bernstein  <mitz@apple.com>
3597
3598         Reviewed by Antti Koivisto.
3599
3600         - fix http://bugs.webkit.org/show_bug.cgi?id=18172
3601           REGRESSION (r31114-31132): Page renders structured almost horizontally (at flickr.com)
3602
3603         Test: fast/block/float/br-with-clear-2.html
3604
3605         * rendering/bidi.cpp:
3606         (WebCore::RenderBlock::layoutInlineChildren): The existing code for
3607         handling a float-clearing <br> in incremental layout had several bugs in
3608         it: it only applied when the <br> was on the last line of the block; it
3609         assumed that the <br> was always the rightmost box on the line (which is
3610         false in right-to-left runs); and in some places it looked at the last
3611         child of the block instead of the last box on the line. Fixed these
3612         bugs.
3613
3614 2008-04-08  Adam Roben  <aroben@apple.com>
3615
3616         Mac build fix
3617
3618         * WebCore.xcodeproj/project.pbxproj: Removed MainThread* files which
3619         were moved to WTF.
3620
3621 2008-04-08  Timothy Hatcher  <timothy@apple.com>
3622
3623         Change WebInspector.elementDragStart and WebInspector.elementDragEnd to have more
3624         state, so calling elementDragEnd does not need the listener functions. Also makes
3625         calling elementDragStart again without elementDragEnd work correctly.
3626
3627         Reviewed by Adam Roben.
3628
3629         * page/inspector/ElementsPanel.js:
3630         (DocumentPanel.prototype.rightSidebarResizerDragStart): Just call WebInspector.elementDragStart.
3631         Removed code that stored away the listeners now that elementDragStart does it.
3632         (DocumentPanel.prototype.rightSidebarResizerDragEnd): Just call WebInspector.elementDragEnd.
3633         Removed code that deleted listeners properties now that elementDragEnd does it.
3634         * page/inspector/inspector.js:
3635         (WebInspector.sidebarResizerDragEnd): Pass less arguments to elementDragEnd.
3636         (WebInspector.searchResultsResizerDragEnd): Ditto.
3637         (WebInspector.elementDragStart): Store the listeners as private properties on WebInspector.
3638         If the properties are already defined, call elementDragEnd first.
3639         (WebInspector.elementDragEnd): Remove the event listeners using the stored properties.
3640         Delete the private listener properties.
3641
3642 2008-04-08  Adam Roben  <aroben@apple.com>
3643
3644         Build fix
3645
3646         * ForwardingHeaders/wtf/MainThread.h: Added. Forgot to commit this.
3647
3648 2008-04-08  Adam Roben  <aroben@apple.com>
3649
3650         Move callOnMainThread to WTF
3651
3652         Reviewed by Alexey Proskuryakov.
3653
3654         * GNUmakefile.am:
3655         * WebCore.pro:
3656         * WebCore.vcproj/WebCore.vcproj:
3657         * WebCoreSources.bkl:
3658         Removed MainThread files.
3659
3660         * bindings/js/JSCustomSQLTransactionCallback.cpp:
3661         * loader/icon/IconDatabase.cpp:
3662         (WebCore::iconDatabase):
3663         * storage/Database.cpp:
3664         (WebCore::Database::Database):
3665         * storage/DatabaseTracker.cpp:
3666         Updated #includes and replaced calls to
3667         WebCore::initializeThreadingAndMainThread with calls to
3668         KJS::initializeThreading.
3669
3670         * platform/MainThread.cpp: Removed.
3671         * platform/MainThread.h: Removed.
3672         * platform/gtk/MainThreadGtk.cpp: Removed.
3673         * platform/mac/MainThreadMac.mm: Removed.
3674         * platform/qt/MainThreadQt.cpp: Removed.
3675         * platform/win/MainThreadWin.cpp: Removed.
3676         * platform/wx/MainThreadWx.cpp: Removed.
3677
3678 2008-04-07  Timothy Hatcher  <timothy@apple.com>
3679
3680         Makes the Network timeline graph resource sizes on the bar graph
3681         when Transfer Size is selected.
3682
3683         http://bugs.webkit.org/show_bug.cgi?id=18351
3684
3685         Reviewed by Adam Roben.
3686
3687         * page/inspector/Resource.js:
3688         (WebInspector.Resource.CompareByTime): Array sorting function for time.
3689         Copied from WebInspector.NetworkPanel.timelineEntryCompare.
3690
3691         * page/inspector/ResourcesPanel.js:
3692         (WebInspector.NetworkPanel): Set the selectedIndex of graphModeSelectElement to
3693         make Transfer Time the default graph.
3694         (WebInspector.NetworkPanel.prototype.changeGraphMode): Call calculator.reset,
3695         _refreshAllResources and _updateGraphDividersIfNeeded.
3696         (WebInspector.NetworkPanel.prototype.get totalDuration): Removed.
3697         (WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded): Removed boundary
3698         checking code and just call calculator.updateBoundries.
3699         (WebInspector.NetworkPanel.prototype._updateGraphDividersIfNeeded): Add a force argument.
3700         Use calculator.boundarySpan when computing the slice. If the slice is NaN, don't make a label.
3701         Ask the calculator to format the label values for each slice.
3702         (WebInspector.NetworkPanel.prototype.clearTimeline): Call calculator.reset.
3703         (WebInspector.NetworkPanel.timelineEntryCompare): Call WebInspector.Resource.CompareByTime.
3704
3705         (WebInspector.NetworkTimelineEntry.prototype.refresh): Ask the panel's calculator to compute
3706         bar graph percentages for a resource. Use those percentages to change the bar style.
3707
3708         (WebInspector.ResourceCalculator): Renamed from WebInspector.TimelineValueCalculator.
3709         (WebInspector.ResourceCalculator.prototype.computeSummaryValues): Changed the Array.forEach
3710         to a normal for loop. Work with resources instead of TimelineEntries.
3711         (WebInspector.ResourceCalculator.prototype.computeBarGraphPercentages): Return basic bar graph
3712         percents with start always being zero.
3713         (WebInspector.ResourceCalculator.prototype.get boundarySpan): Return the difference between
3714         maximumBoundary and minimumBoundary.
3715         (WebInspector.ResourceCalculator.prototype.updateBoundries): Update maximumBoundary based on _value.
3716         The minimumBoundary is always zero.
3717         (WebInspector.ResourceCalculator.prototype.reset): Delete maximumBoundary and minimumBoundary.
3718         (WebInspector.ResourceCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
3719
3720         (WebInspector.ResourceTransferTimeCalculator): Renamed from TransferTimeCalculator.
3721         (WebInspector.ResourceTransferTimeCalculator.prototype.computeSummaryValues): Work with resources
3722         instead of entries. Changed the Array.forEach to a normal for loop.
3723         (WebInspector.ResourceTransferTimeCalculator.prototype.computeBarGraphPercentages): Return percents
3724         just like WebInspector.NetworkTimelineEntry.prototype.refresh was doing before.
3725         (WebInspector.ResourceTransferTimeCalculator.prototype.updateBoundries): Update minimumBoundary and
3726         maximumBoundary just like the checks WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded was doing.
3727
3728         (WebInspector.ResourceTransferSizeCalculator): Renamed from TransferSizeCalculator.
3729         (WebInspector.ResourceTransferSizeCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
3730
3731 2008-04-08  Rob Buis  <buis@kde.org>
3732
3733         Fix the SVG build.
3734
3735         * svg/SVGFEFloodElement.cpp:
3736         (WebCore::SVGFEFloodElement::filterEffect):
3737
3738 2008-04-08  Alice Liu  <alice.liu@apple.com>
3739
3740         Reviewed by Dan Bernstein.
3741         
3742         fixed http://bugs.webkit.org/show_bug.cgi?id=18329
3743         REGRESSION: Assertion failure in -[WebViewFactory endOfTextMarkerRange:] 
3744         when invoking the Dictionary pop-up
3745
3746         * page/mac/AccessibilityObjectWrapper.mm:
3747         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
3748         In the section of code where WebCore-equivalents of mac-specific types are
3749         prepared, some functions weren't meant to operate on the default initialized
3750         values.  Checking for nil in certain places will better maintain the original
3751         pre-refactoring code path. 
3752
3753 2008-04-08  Dan Bernstein  <mitz@apple.com>
3754
3755         Reviewed by Maciej Stachowiak.
3756
3757         - fix most of the Windows layout test regressions from the font-weight patch
3758
3759         * platform/graphics/win/FontCacheWin.cpp:
3760         (WebCore::matchImprovingEnumProc): Changed to be symmetric with respect
3761         to italics: always prefer (reject) a candidate that changes the italics
3762         trait to (from) the desired value.
3763         (WebCore::createGDIFont): Added code to set more members of the LOGFONT
3764         structure before creating the font.
3765
3766 2008-04-07  Rob Buis  <buis@kde.org>
3767
3768         Reviewed by Ollie.
3769
3770         http://bugs.webkit.org/show_bug.cgi?id=18354
3771         feFlood in attribute should be removed according to SVG 1.1 Errata
3772
3773         Remove the in attribute from SVGFEFlood DOM.
3774
3775         * svg/SVGFEFloodElement.cpp:
3776         (WebCore::SVGFEFloodElement::parseMappedAttribute):
3777         * svg/SVGFEFloodElement.h:
3778         * svg/SVGFEFloodElement.idl:
3779
3780 2008-04-07  Brady Eidson  <beidson@apple.com>
3781
3782         Touch JSStorageCustom.cpp to try to FORCE a recompile on bots that haven't gotten the message
3783
3784         * bindings/js/JSStorageCustom.cpp:
3785         (WebCore::JSStorage::customPut):
3786
3787 2008-04-07  Brady Eidson  <beidson@apple.com>
3788
3789         Reviewed by John Honeycutt
3790
3791         ENABLE_DOM_STORAGE for Windows
3792
3793         * WebCore.vcproj/WebCore.vcproj:
3794         * WebCore.vcproj/build-generated-files.sh:
3795
3796 2008-04-07  Brady Eidson  <beidson@apple.com>
3797
3798         Fix build for builds without DOM_STORAGE enabled
3799
3800         * dom/EventTargetNode.cpp:
3801         (WebCore::EventTargetNode::dispatchStorageEvent):
3802         * dom/EventTargetNode.h:
3803
3804 2008-04-07  Alice Liu  <alice.liu@apple.com>
3805
3806         Reviewed by Beth Dakin.
3807
3808         * WebCore.vcproj/WebCore.vcproj:
3809             Added a few cross-platform accessibility source files
3810             
3811         * WebCore.xcodeproj/project.pbxproj:
3812             Added AXObjectCache.cpp
3813             
3814         * page/AXObjectCache.cpp: Added.
3815             These were made cross-platform:
3816         (WebCore::AXObjectCache::~AXObjectCache):
3817         (WebCore::AXObjectCache::get):
3818         (WebCore::AXObjectCache::remove):
3819         (WebCore::AXObjectCache::childrenChanged):
3820         
3821         * page/AXObjectCache.h:
3822             These were made platform-specific
3823         (WebCore::AXObjectCache::isIDinUse):
3824         (WebCore::AXObjectCache::detachWrapper):
3825         (WebCore::AXObjectCache::attachWrapper):
3826         (WebCore::AXObjectCache::postNotificationToElement):
3827         
3828         * page/AccessibilityObject.cpp:
3829         (WebCore::AccessibilityObject::detach):
3830             Since only the mac has a wrapper for now, so temporarily 
3831             wrapping this line in #if PLATFORM(MAC)
3832             
3833         (WebCore::AccessibilityObject::removeAXObjectID):
3834             Since only the mac has uses Accessibility Object IDs,
3835             wrap this line in #if PLATFORM(MAC)
3836             
3837         * page/mac/AXObjectCacheMac.mm:
3838             Detaching and attaching the wrapper is platform-specific 
3839             since each wrapper class is platform-specific.
3840         (WebCore::AXObjectCache::detachWrapper):
3841         (WebCore::AXObjectCache::attachWrapper):        
3842
3843 2008-04-07  Brady Eidson  <beidson@apple.com>
3844
3845         Lovingly reviewed by Sam Weinig
3846
3847         <rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage
3848
3849         Tests: storage/domstorage/sessionstorage/iframe-events.html
3850                storage/domstorage/sessionstorage/index-get-and-set.html
3851                storage/domstorage/sessionstorage/simple-events.html
3852                storage/domstorage/sessionstorage/simple-usage.html
3853                storage/domstorage/sessionstorage/window-open.html
3854                storage/domstorage/window-attributes-exist.html
3855
3856         * Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
3857
3858         * bindings/js/JSDOMWindowCustom.cpp:
3859         (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
3860
3861         * bindings/js/JSEventCustom.cpp:
3862         (WebCore::toJS): Add StorageEvent case
3863
3864         * bindings/js/JSStorageCustom.cpp:
3865         (WebCore::JSStorage::canGetItemsForName):
3866         (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem()
3867         (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
3868
3869         * dom/Event.cpp:
3870         (WebCore::Event::isStorageEvent):
3871         * dom/Event.h:
3872
3873         * dom/EventNames.h: Add "storage"
3874
3875         * dom/EventTargetNode.cpp:
3876         (WebCore::EventTargetNode::dispatchStorageEvent):
3877         * dom/EventTargetNode.h:
3878
3879         * loader/FrameLoader.cpp:
3880         (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object
3881           to a copy of the previous Page's
3882
3883         * page/DOMWindow.cpp:
3884         (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's
3885           SessionStorage.
3886         (WebCore::DOMWindow::localStorage): To be filled in later
3887         * page/DOMWindow.h:
3888         (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, 
3889           if any exists
3890         * page/DOMWindow.idl:
3891
3892         * page/Page.cpp:
3893         (WebCore::Page::sessionStorage):  Create and/or return the SessionStorage for this Page.
3894         (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a
3895           Window.open();
3896         * page/Page.h:
3897
3898         * storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap 
3899           objects.  There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such
3900           as the SessionStorage.  This layer forwards DOM-level calls down to the backing StorageMap, handles 
3901           copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will
3902           eventually handle quota enforcement.
3903         (WebCore::OriginStorage::create):
3904         (WebCore::OriginStorage::OriginStorage):
3905         (WebCore::OriginStorage::~OriginStorage):
3906         (WebCore::OriginStorage::copy):
3907         (WebCore::OriginStorage::length):
3908         (WebCore::OriginStorage::key):
3909         (WebCore::OriginStorage::getItem):
3910         (WebCore::OriginStorage::setItem):
3911         (WebCore::OriginStorage::removeItem):
3912         (WebCore::OriginStorage::contains):
3913         (WebCore::OriginStorage::dispatchStorageEvent):
3914         * storage/OriginStorage.h:
3915
3916         * storage/SessionStorage.cpp: From the HTML5 spec:
3917           "Each top-level browsing context has a unique set of session storage areas, one for each origin."
3918           This object represents that "unique set of session storage areas", and creates or returns the Storage
3919           object for the requested SecurityOrigin
3920         (WebCore::SessionStorage::create):
3921         (WebCore::SessionStorage::SessionStorage):
3922         (WebCore::SessionStorage::copy):
3923         (WebCore::SessionStorage::originStorage):
3924         * storage/SessionStorage.h:
3925         (WebCore::SessionStorage::page):
3926
3927         * storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage.  There is a unique
3928           Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object.
3929         (WebCore::Storage::create):
3930         (WebCore::Storage::Storage):
3931         (WebCore::Storage::length):
3932         (WebCore::Storage::key):
3933         (WebCore::Storage::getItem):
3934         (WebCore::Storage::setItem):
3935         (WebCore::Storage::removeItem):
3936         (WebCore::Storage::contains):
3937         * storage/Storage.h:
3938         * storage/Storage.idl:
3939
3940         * storage/StorageEvent.cpp:
3941         (WebCore::StorageEvent::StorageEvent):
3942         (WebCore::StorageEvent::initStorageEvent):
3943         * storage/StorageEvent.h:
3944         (WebCore::StorageEvent::isStorageEvent):
3945
3946         * storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, 
3947           and implements copy-on-write semantics whenever a value is changed
3948         (WebCore::StorageMap::create):
3949         (WebCore::StorageMap::StorageMap):
3950         (WebCore::StorageMap::copy):
3951         (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API
3952         (WebCore::StorageMap::setIteratorToIndex): Ditto
3953         (WebCore::StorageMap::length):
3954         (WebCore::StorageMap::key):
3955         (WebCore::StorageMap::getItem):
3956         (WebCore::StorageMap::setItem):
3957         (WebCore::StorageMap::removeItem):
3958         (WebCore::StorageMap::contains):
3959         * storage/StorageMap.h:
3960
3961 2008-04-07  Timothy Hatcher  <timothy@apple.com>
3962
3963         Renamed various functions that are internal to the Console
3964         object to have an underscore prefix.
3965
3966         Rubber-stamped by Adam Roben.
3967
3968         * page/inspector/Console.js:
3969
3970 2008-04-07  Timothy Hatcher  <timothy@apple.com>
3971
3972         Renamed various functions and properties that are internal
3973         to an object to have an underscore prefix.
3974
3975         Rubber-stamped by Adam Roben.
3976
3977         * page/inspector/Resource.js:
3978         * page/inspector/ResourcesPanel.js:
3979
3980 2008-04-07  Timothy Hatcher  <timothy@apple.com>
3981
3982         Fixes coding style for two utility getters.
3983
3984         * page/inspector/utilities.js: Fix coding style for the
3985         totalOffsetLeft and totalOffsetTop getters.
3986
3987 2008-04-07  Dan Bernstein  <mitz@apple.com>
3988
3989         Reviewed by Dave Hyatt.
3990
3991         - fix http://bugs.webkit.org/show_bug.cgi?id=18311
3992           <rdar://problem/5842980> REGRESSION (r31620): Font variants (e.g. Helvetica Neue *Light*) don't render correctly
3993
3994         * platform/mac/WebFontCache.mm:
3995         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
3996         match by family name first, and only if that fails, look for a match by
3997         full (PostScript) name. Reverted the full name-based match logic to only
3998         distinguish between the broad categories of "bold" and "not bold".
3999
4000 2008-04-07  Timothy Hatcher  <timothy@apple.com>
4001
4002         When the WebInspector.currentFocusElement changes, move the caret
4003         selection to be inside the focused element. This makes sure the
4004         caret moves in and out of the console when the focus changes.
4005
4006         Reviewed by Adam Roben.
4007
4008         * page/inspector/TextPrompt.js:
4009         (TextPrompt.prototype.isCaretInsidePrompt): Just call isInsertionCaretInside.
4010         * page/inspector/inspector.js: 
4011         (WebInspector.set currentFocusElement): Make a caret selection inside
4012         the focused element if there isn't a range selection and there isn't
4013         already a caret selection inside.
4014         * page/inspector/utilities.js:
4015         (Element.prototype.isInsertionCaretInside): Added. Tests if the
4016         selection is collapsed and is inside the element.
4017
4018 2008-04-07  Brady Eidson  <beidson@apple.com>
4019
4020         Reviewed by Tim Hatcher
4021
4022         Add 1 more empty file for upcoming work, as a separate step, to keep all build-systems working
4023
4024         * GNUmakefile.am:
4025         * WebCore.pro:
4026         * WebCore.vcproj/WebCore.vcproj:
4027         * WebCore.xcodeproj/project.pbxproj:
4028         * WebCoreSources.bkl:
4029
4030         * bindings/js/JSStorageCustom.cpp: Added.
4031
4032 2008-04-07  Alexey Proskuryakov  <ap@webkit.org>
4033
4034         Reviewed by Dan Bernstein.
4035
4036         <rdar://problem/5574946> Inline frame ISO-8859-1 even though parent character set is UTF-8
4037
4038         Test: fast/loader/inherit-charset-to-empty-frame.html
4039
4040         * loader/FrameLoader.cpp:
4041         (WebCore::FrameLoader::write): Treat an empty m_encoding the same as null one.
4042
4043 2008-04-07  Timothy Hatcher  <timothy@apple.com>
4044
4045         Rename some Inspector panel objects to facilitate the up-coming
4046         UI refresh changes.
4047
4048         Reviewed by Adam Roben.
4049
4050         * page/inspector/DatabasesPanel.js: Renamed ResourcePanel to ResourceView.
4051         * page/inspector/ElementsPanel.js: Renamed SourcePanel to SourceView.
4052         * page/inspector/FontView.js: Renamed FontPanel to FontView.
4053         * page/inspector/ImageView.js: Renamed ImagePanel to ImageView.
4054         * page/inspector/Resource.js: Instantiate the new "View" named objects.
4055         * page/inspector/ResourceView.js: Renamed ResourcePanel to ResourceView.
4056         * page/inspector/SourceView.js: Renamed SourcePanel to SourceView.
4057
4058 2008-04-07  Timothy Hatcher  <timothy@apple.com>
4059
4060         Fix an exception and remove code that was missed when TextPrompt
4061         was added. This makes the Console work again.
4062         
4063         Reviewed by Adam Roben.
4064         
4065         * page/inspector/Console.js: Removed code that used non-existent
4066         properties.
4067
4068 2008-04-07  Timothy Hatcher  <timothy@apple.com>
4069
4070         Remove the workaround for bug 11399 now that it is fixed.
4071
4072         Reviewed by Adam Roben.
4073
4074         * page/inspector/Console.js: Removed the 'with' statement
4075         around the eval and call eval directly on the inspected window.
4076
4077 2008-04-07  Luca Bruno  <lethalman88@gmail.com>
4078
4079         Reviewed by Alp Toker.
4080
4081         http://bugs.webkit.org/show_bug.cgi?id=18297
4082         Bug #18297 - Acid2/Acid3 -tests don't load load with soup.
4083
4084         Fixes in the libsoup backend: data url parsing, acid tests, redirects,
4085         response headers handling and re-entrancy issues on job cancellation.
4086         Thanks to Dan Winship for libsoup hints.
4087
4088         * platform/network/ResourceHandleInternal.h:
4089         (WebCore::ResourceHandleInternal::ResourceHandleInternal): add m_cancelled and remove unuseful m_session
4090         * platform/network/soup/ResourceHandleSoup.cpp:
4091         (WebCore::restartedCallback): added to route redirects to webkit
4092         (WebCore::dataCallback): add response headers, some checks and fix re-entrancy
4093         (WebCore::parseDataUrl): be an idle callback for the main loop
4094         (WebCore::ResourceHandle::start):
4095         (WebCore::ResourceHandle::cancel): fixed re-entrancy
4096
4097 2008-04-07  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
4098
4099         Build fix, rubber-stamped and landed by ap.
4100
4101         * GNUmakefile.am: Fix dom_storage conditional and typo: ENABLE_DOM_STORAG
4102
4103 2008-04-07  Brady Eidson  <beidson@apple.com>
4104
4105         Whoops, idls don't go in the vcproj!
4106
4107         * WebCore.vcproj/WebCore.vcproj:
4108
4109 2008-04-06  Brady Eidson <beidson@apple.com>
4110
4111         Attempt to tickle Windows build into accepting this idl
4112
4113         * storage/StorageEvent.idl:
4114
4115 2008-04-06  Brady Eidson <beidson@apple.com>
4116
4117         Reviewed by Sam
4118
4119         HTML5 Session and Local Storage
4120
4121         Land a bunch of empty files and interfaces to keep things building while 
4122         I finish off the rest of the implementation of SessionStorage
4123
4124         * DerivedSources.make:
4125         * GNUmakefile.am:
4126         * WebCore.pro:
4127         * WebCore.vcproj/WebCore.vcproj:
4128         * WebCore.xcodeproj/project.pbxproj:
4129         * WebCoreSources.bkl:
4130
4131         * storage/OriginStorage.cpp: Added.
4132         * storage/OriginStorage.h: Added.
4133
4134         * storage/SessionStorage.cpp: Added.
4135         * storage/SessionStorage.h: Added.
4136
4137         * storage/Storage.cpp: Added.
4138         (WebCore::Storage::length):
4139         (WebCore::Storage::key):
4140         (WebCore::Storage::getItem):
4141         (WebCore::Storage::setItem):
4142         (WebCore::Storage::removeItem):
4143         * storage/Storage.h: Added.
4144         * storage/Storage.idl: Added.
4145
4146         * storage/StorageEvent.cpp: Added.
4147         * storage/StorageEvent.h: Added.
4148         (WebCore::StorageEvent::key):
4149         (WebCore::StorageEvent::oldValue):
4150         (WebCore::StorageEvent::newValue):
4151         (WebCore::StorageEvent::uri):
4152         (WebCore::StorageEvent::source):
4153         (WebCore::StorageEvent::initStorageEvent):
4154         * storage/StorageEvent.idl: Added.
4155
4156         * storage/StorageMap.cpp: Added.
4157         * storage/StorageMap.h: Added.
4158
4159 2008-04-05  Kevin Ollivier  <kevino@theolliviers.com>
4160
4161         Reviewed by Mark Rowe.
4162
4163         Add CSS to the MIMETypeRegistry, which ensures CSS files get
4164         the right MIMEType when loaded from disk.