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