17908035bfd363ad2844bae905e4ec704d4ba3f6
[WebKit-https.git] / WebCore / ChangeLog
1 2007-12-12  Steve Falkenburg  <sfalken@apple.com>
2
3         <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
4         
5         Reviewed by Anders.
6
7         * platform/win/SharedTimerWin.cpp:
8         (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
9
10 2007-12-12  Beth Dakin  <bdakin@apple.com>
11
12         Reviewed by Oliver.
13
14         Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
15         with width and height 100% clip to 300 x 150
16
17         Though it was correct in an earlier iteration of my patch, it is 
18         not sufficient in the final, committed version to ask if the 
19         relativeWidthValue() or relativeHeightValue() is greater than 0 
20         just to determine if one has been set, for, they are now 
21         initialized to 300 and 150 respectively! This patch instead adds a 
22         bool to keep track of whether a container size has been set, and 
23         only used the relative value if it has.
24
25         * rendering/RenderSVGRoot.cpp:
26         (WebCore::RenderSVGRoot::calcViewport):
27         * svg/SVGSVGElement.cpp:
28         (WebCore::SVGSVGElement::SVGSVGElement):
29         * svg/SVGSVGElement.h:
30         (WebCore::SVGSVGElement::setContainerSize):
31         (WebCore::SVGSVGElement::hasSetContainerSize):
32
33 2007-12-12  Brady Eidson  <beidson@apple.com>
34
35         Reviewed by Steve Falkenburg 
36
37         <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
38
39         * platform/network/ProtectionSpace.cpp:
40         (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
41
42 2007-12-12  Alp Toker  <alp@atoker.com>
43
44         Reviewed by Maciej.
45
46         http://bugs.webkit.org/show_bug.cgi?id=16388
47         [GTK] Widget::setCursor() gets called frequently
48
49         Cache the current cursor to avoid calling gdk_window_set_cursor() when
50         there's no change in cursor.
51
52         * platform/gtk/WidgetGtk.cpp:
53         (WebCore::Widget::Widget):
54         (WebCore::Widget::cursor):
55         (WebCore::Widget::setCursor):
56
57 2007-12-12  Rodney Dawes  <dobey@wayofthemonkey.com>
58
59         Reviewed by Maciej.
60
61         http://bugs.webkit.org/show_bug.cgi?id=16342
62         Build Warning and Error fixes in WebCore GTK+
63
64         Use C-style casts for casting function pointers to gpointer
65         Use static_cast<int> to cast a float to int to fix a warning
66
67         * platform/gtk/PlatformScrollBarGtk.cpp:
68         (PlatformScrollbar::PlatformScrollbar):
69         (PlatformScrollbar::~PlatformScrollbar):
70         (PlatformScrollbar::gtkValueChanged):
71         * platform/gtk/ThreadingGtk.cpp:
72         (callFunctionOnMainThread):
73         (callOnMainThread):
74
75 2007-12-12  Dan Bernstein  <mitz@apple.com>
76
77         Reviewed by Darin Adler.
78
79         - better fix for a crash when pressing a key that is not associated
80           with a command
81
82         * editing/EditorCommand.cpp:
83         (WebCore::Editor::command): Return the empty command if the command name
84         is empty.
85
86 2007-12-12  Alexey Proskuryakov  <ap@webkit.org>
87
88         Reviewed by Darin.
89
90         http://bugs.webkit.org/show_bug.cgi?id=16410
91         Implement isKeypadEvent() on Windows
92
93         Test: platform/win/fast/events/keyLocation-numpad.html
94
95         * platform/win/KeyEventWin.cpp:
96         (WebCore::isKeypadEvent): Added.
97         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
98
99 2007-12-12  Oliver Hunt  <oliver@apple.com>
100
101         Reviewed by Maciej.
102
103         <rdar://problem/5071781> window.mouseout events are not sent 
104         to window when mouse moves out of window 
105
106         Make PlatformMouseEvent recognise WM_MOUSELEAVE.
107
108         * platform/win/PlatformMouseEventWin.cpp:
109         (WebCore::messageToEventType):
110         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
111
112 2007-12-12  Sam Weinig  <sam@webkit.org>
113
114         Fix Mac release build.
115
116         * WebCore.base.exp:
117
118 2007-12-12  Sam Weinig  <sam@webkit.org>
119
120         Build fix for Qt, Gtk, and Wx.
121
122         * css/CSSParser.cpp:
123         (WebCore::CSSParser::parseValue):
124         * loader/win/FrameLoaderWin.cpp:
125         (WebCore::FrameLoader::urlSelected):
126         * platform/network/curl/ResourceHandleManager.cpp:
127         (WebCore::parseDataUrl):
128         (WebCore::ResourceHandleManager::startJob):
129         * platform/network/win/CookieJarWin.cpp:
130         (WebCore::setCookies):
131         (WebCore::cookies):
132         * platform/network/win/ResourceHandleWin.cpp:
133         (WebCore::ResourceHandle::start):
134         * platform/qt/PasteboardQt.cpp:
135         (WebCore::Pasteboard::writeURL):
136
137 2007-12-11  Dan Bernstein  <mitz@apple.com>
138
139         Reviewed by Maciej Stachowiak.
140
141         - allow non-integer font sizes on Windows for small caps
142
143         * platform/graphics/win/FontDataWin.cpp:
144         (WebCore::FontData::smallCapsFontData):
145         * platform/graphics/win/FontPlatformData.h:
146         (WebCore::FontPlatformData::size):
147         (WebCore::FontPlatformData::setSize):
148         * platform/graphics/win/FontPlatformDataWin.cpp:
149         (WebCore::FontPlatformData::FontPlatformData):
150
151 2007-12-11  Sam Weinig  <sam@webkit.org>
152
153         Build fix for Qt, Gtk, and Wx.
154
155         * platform/gtk/CookieJarGtk.cpp:
156         (WebCore::setCookies):
157         (WebCore::cookies):
158         * platform/qt/ClipboardQt.cpp:
159         (WebCore::ClipboardQt::writeURL):
160         * platform/qt/CookieJarQt.cpp:
161         (WebCore::setCookies):
162         (WebCore::cookies):
163         * platform/wx/PasteboardWx.cpp:
164         (WebCore::Pasteboard::writeURL):
165
166 2007-12-11  Sam Weinig  <sam@webkit.org>
167
168         Reviewed by Darin Adler.
169
170         Scrub URL out of the tree in preparation for renaming KURL to URL.
171             - Renames Document::URL() -> Document::url()
172             - Renames DocumentLoader::URL() -> DocumentLoader::url()
173             - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
174             - Remove FrameLoader::URL()
175             - Various variable renames.
176
177         The change from Document::URL() to Document::url() required changes
178         to the bindings scripts as well, because URL() is the name of a DOM
179         method.  The code generation scripts now have code to special case URL()
180         to url().
181
182         * WebCore.base.exp:
183         * bindings/js/kjs_events.cpp:
184         (WebCore::JSLazyEventListener::parseCode):
185         * bindings/js/kjs_navigator.cpp:
186         (KJS::Navigator::getValueProperty):
187         * bindings/js/kjs_proxy.cpp:
188         (WebCore::KJSProxy::initScript):
189         * bindings/js/kjs_window.cpp:
190         (KJS::Window::put):
191         (KJS::Window::allowsAccessFrom):
192         (KJS::Location::put):
193         (KJS::LocationProtoFuncReplace::callAsFunction):
194         (KJS::LocationProtoFuncReload::callAsFunction):
195         (KJS::LocationProtoFuncAssign::callAsFunction):
196         * bindings/scripts/CodeGenerator.pm:
197         * bindings/scripts/CodeGeneratorCOM.pm:
198         * bindings/scripts/CodeGeneratorJS.pm:
199         * bindings/scripts/CodeGeneratorObjC.pm:
200         * css/CSSImportRule.cpp:
201         (WebCore::CSSImportRule::insertedIntoParent):
202         * css/CSSParser.cpp:
203         (WebCore::CSSParser::parseValue):
204         (WebCore::CSSParser::parseContent):
205         (WebCore::CSSParser::parseBackgroundImage):
206         (WebCore::CSSParser::parseFontFaceSrc):
207         (WebCore::CSSParser::parseBorderImage):
208         (WebCore::CSSParser::createImportRule):
209         * css/CSSStyleSelector.cpp:
210         (WebCore::CSSStyleSelector::setEncodedURL):
211         * dom/Document.cpp:
212         (WebCore::Document::processHttpEquiv):
213         (WebCore::Document::cookie):
214         (WebCore::Document::setCookie):
215         (WebCore::Document::domain):
216         (WebCore::Document::setDomain):
217         (WebCore::Document::getImageMap):
218         (WebCore::Document::completeURL):
219         * dom/Document.h:
220         (WebCore::Document::url):
221         (WebCore::Document::baseURL):
222         * dom/Element.cpp:
223         (WebCore::Element::baseURI):
224         * dom/ProcessingInstruction.h:
225         * dom/StyledElement.cpp:
226         (WebCore::StyledElement::addCSSImageProperty):
227         * dom/StyledElement.h:
228         * dom/XMLTokenizer.cpp:
229         (WebCore::XMLTokenizer::endElementNs):
230         (WebCore::XMLTokenizer::end):
231         (WebCore::):
232         * dom/XMLTokenizer.h:
233         * editing/Editor.cpp:
234         (WebCore::Editor::copy):
235         * editing/markup.cpp:
236         (WebCore::completeURLs):
237         * history/CachedPage.h:
238         (WebCore::CachedPage::url):
239         * history/HistoryItem.cpp:
240         (WebCore::HistoryItem::HistoryItem):
241         (WebCore::HistoryItem::setURL):
242         (WebCore::HistoryItem::isCurrentDocument):
243         * html/HTMLBaseElement.cpp:
244         (WebCore::HTMLBaseElement::process):
245         * html/HTMLParser.cpp:
246         (WebCore::HTMLParser::reportErrorToConsole):
247         * html/HTMLScriptElement.cpp:
248         (WebCore::HTMLScriptElement::childrenChanged):
249         (WebCore::HTMLScriptElement::insertedIntoDocument):
250         (WebCore::HTMLScriptElement::evaluateScript):
251         * html/HTMLScriptElement.h:
252         * html/HTMLTokenizer.cpp:
253         (WebCore::HTMLTokenizer::scriptExecution):
254         * loader/Cache.cpp:
255         (WebCore::createResource):
256         (WebCore::Cache::requestResource):
257         * loader/CachedCSSStyleSheet.cpp:
258         (WebCore::CachedCSSStyleSheet::checkNotify):
259         * loader/CachedResource.cpp:
260         (WebCore::CachedResource::CachedResource):
261         * loader/CachedResource.h:
262         (WebCore::CachedResource::):
263         * loader/CachedScript.h:
264         * loader/DocLoader.cpp:
265         (WebCore::DocLoader::checkForReload):
266         (WebCore::DocLoader::requestResource):
267         * loader/DocumentLoader.cpp:
268         (WebCore::DocumentLoader::url):
269         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
270         (WebCore::DocumentLoader::setRequest):
271         (WebCore::DocumentLoader::startLoadingMainResource):
272         * loader/DocumentLoader.h:
273         * loader/FrameLoader.cpp:
274         (WebCore::FormSubmission::FormSubmission):
275         (WebCore::ScheduledRedirection::ScheduledRedirection):
276         (WebCore::FrameLoader::changeLocation):
277         (WebCore::FrameLoader::urlSelected):
278         (WebCore::FrameLoader::requestFrame):
279         (WebCore::FrameLoader::loadSubframe):
280         (WebCore::FrameLoader::submitFormAgain):
281         (WebCore::FrameLoader::submitForm):
282         (WebCore::FrameLoader::didExplicitOpen):
283         (WebCore::FrameLoader::replaceContentsWithScriptResult):
284         (WebCore::FrameLoader::executeScript):
285         (WebCore::FrameLoader::receivedFirstData):
286         (WebCore::FrameLoader::begin):
287         (WebCore::FrameLoader::startIconLoader):
288         (WebCore::FrameLoader::commitIconURLToIconDatabase):
289         (WebCore::FrameLoader::scheduleRefresh):
290         (WebCore::FrameLoader::redirectionTimerFired):
291         (WebCore::FrameLoader::loadPlugin):
292         (WebCore::FrameLoader::didNotOpenURL):
293         (WebCore::FrameLoader::updatePolicyBaseURL):
294         (WebCore::FrameLoader::scrollToAnchor):
295         (WebCore::FrameLoader::startRedirectionTimer):
296         (WebCore::FrameLoader::load):
297         (WebCore::FrameLoader::canLoad):
298         (WebCore::FrameLoader::shouldHideReferrer):
299         (WebCore::FrameLoader::shouldAllowNavigation):
300         (WebCore::FrameLoader::commitProvisionalLoad):
301         (WebCore::FrameLoader::clientRedirected):
302         (WebCore::FrameLoader::open):
303         (WebCore::FrameLoader::didTellBridgeAboutLoad):
304         (WebCore::FrameLoader::haveToldBridgeAboutLoad):
305         (WebCore::FrameLoader::post):
306         (WebCore::FrameLoader::loadResourceSynchronously):
307         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
308         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
309         (WebCore::FrameLoader::createHistoryItem):
310         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
311         (WebCore::FrameLoader::loadItem):
312         (WebCore::FrameLoader::urlsMatchItem):
313         (WebCore::FrameLoader::recursiveGoToItem):
314         (WebCore::FrameLoader::updateHistoryForStandardLoad):
315         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
316         * loader/FrameLoader.h:
317         (WebCore::FrameLoader::url):
318         * loader/ImageDocument.cpp:
319         (WebCore::ImageDocument::createDocumentStructure):
320         * loader/MainResourceLoader.cpp:
321         (WebCore::shouldLoadAsEmptyDocument):
322         (WebCore::MainResourceLoader::didFinishLoading):
323         * loader/NavigationAction.cpp:
324         (WebCore::NavigationAction::NavigationAction):
325         * loader/NavigationAction.h:
326         (WebCore::NavigationAction::url):
327         * loader/PluginDocument.cpp:
328         (WebCore::PluginTokenizer::createDocumentStructure):
329         * loader/SubresourceLoader.cpp:
330         (WebCore::SubresourceLoader::load):
331         (WebCore::SubresourceLoader::create):
332         * loader/icon/IconLoader.cpp:
333         (WebCore::IconLoader::startLoading):
334         (WebCore::IconLoader::finishLoading):
335         * loader/loader.cpp:
336         (WebCore::Loader::servePendingRequests):
337         * loader/mac/LoaderNSURLExtras.m:
338         (urlOriginalData):
339         * page/Chrome.cpp:
340         (WebCore::Chrome::setToolTip):
341         * page/ContextMenuController.cpp:
342         (WebCore::ContextMenuController::contextMenuItemSelected):
343         * page/Frame.cpp:
344         (WebCore::Frame::setUserStyleSheetLocation):
345         * page/InspectorController.cpp:
346         (WebCore::InspectorResource::type):
347         (WebCore::addSourceToFrame):
348         (WebCore::InspectorController::addScriptResource):
349         (WebCore::InspectorController::updateScriptResourceRequest):
350         (WebCore::InspectorController::didCommitLoad):
351         * page/mac/WebCoreFrameBridge.mm:
352         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
353         * platform/KURL.h:
354         (WebCore::KURL::string):
355         (WebCore::KURL::deprecatedString):
356         * platform/mac/ClipboardMac.mm:
357         (WebCore::ClipboardMac::getData):
358         * platform/mac/CookieJar.mm:
359         (WebCore::cookies):
360         (WebCore::setCookies):
361         * platform/mac/PasteboardMac.mm:
362         (WebCore::Pasteboard::writeURL):
363         (WebCore::fileWrapperForImage):
364         (WebCore::Pasteboard::writeImage):
365         (WebCore::Pasteboard::plainText):
366         * platform/network/ResourceHandle.cpp:
367         (WebCore::ResourceHandle::portAllowed):
368         * platform/network/ResourceRequestBase.cpp:
369         (WebCore::ResourceRequestBase::isNull):
370         * platform/network/cf/ResourceHandleCFNet.cpp:
371         (WebCore::willSendRequest):
372         (WebCore::didReceiveResponse):
373         (WebCore::didReceiveData):
374         (WebCore::didFinishLoading):
375         (WebCore::didFail):
376         (WebCore::didReceiveChallenge):
377         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
378         (WebCore::ResourceHandle::~ResourceHandle):
379         (WebCore::ResourceHandle::start):
380         * platform/win/ClipboardUtilitiesWin.cpp:
381         (WebCore::createGlobalData):
382         (WebCore::urlToMarkup):
383         * platform/win/ClipboardWin.cpp:
384         (WebCore::writeURL):
385         (WebCore::writeImageToDataObject):
386         (WebCore::ClipboardWin::writeURL):
387         (WebCore::ClipboardWin::writeRange):
388         * platform/win/PasteboardWin.cpp:
389         (WebCore::Pasteboard::writeSelection):
390         (WebCore::Pasteboard::writeURL):
391         * plugins/win/PluginDatabaseWin.cpp:
392         (WebCore::PluginDatabaseWin::findPlugin):
393         * plugins/win/PluginStreamWin.cpp:
394         (WebCore::PluginStreamWin::startStream):
395         (WebCore::PluginStreamWin::destroyStream):
396         * plugins/win/PluginViewWin.cpp:
397         (WebCore::scriptStringIfJavaScriptURL):
398         (WebCore::PluginViewWin::performRequest):
399         * svg/SVGImageLoader.cpp:
400         (WebCore::SVGImageLoader::updateFromElement):
401         * xml/XMLHttpRequest.cpp:
402         (WebCore::XMLHttpRequest::getResponseXML):
403         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
404         * xml/XSLImportRule.cpp:
405         (WebCore::XSLImportRule::loadSheet):
406         * xml/XSLTProcessor.cpp:
407         (WebCore::XSLTProcessor::createDocumentFromSource):
408         (WebCore::xsltStylesheetPointer):
409         (WebCore::xmlDocPtrFromNode):
410
411 2007-12-11  Beth Dakin  <bdakin@apple.com>
412
413         Reviewed by Darin.
414
415         Fix for <rdar://problem/5641255> SVGs with width and height 100% 
416         fail to render when used as background images
417
418         CachedImage now has a setImageContainerSize function. It is only 
419         needed for SVG right now.
420         * loader/CachedImage.cpp:
421         (WebCore::CachedImage::setImageContainerSize):
422         * loader/CachedImage.h:
423
424         Relatively sized SVGs have no intrinsic size. Because this call is 
425         low-level enough that we cannot pass in the container size and get 
426         the real size of the SVG, we need to know if it has relative 
427         dimensions, and if so, we need to get the size from scaledTileSize.
428         * platform/graphics/Image.cpp:
429         (WebCore::Image::drawTiled):
430         * platform/graphics/Image.h:
431         (WebCore::Image::setContainerSize):
432         (WebCore::Image::hasRelativeWidth):
433         (WebCore::Image::hasRelativeHeight):
434
435         Re-factored calculateBackgroundSize a bit so that it returns an 
436         IntSize. Made it a member function so that it can send m_width and 
437         m_height along to setImageContainerSize.
438         * rendering/RenderBox.cpp:
439         (WebCore::RenderBox::calculateBackgroundSize):
440         (WebCore::RenderBox::calculateBackgroundImageGeometry):
441         * rendering/RenderBox.h:
442
443         Need to account for relatively sized SVGs in calcViewport()
444         * rendering/RenderSVGRoot.cpp:
445         (WebCore::RenderSVGRoot::calcViewport):
446         
447         Added new member variables to store the size of the SVG container. 
448         relativeWidthValue() and relativeHeightValue() use the stored SVG 
449         container size to correctly calculate the width and height of a 
450         relatively sized SVG.
451         * svg/SVGSVGElement.cpp:
452         (WebCore::SVGSVGElement::SVGSVGElement):
453         (WebCore::SVGSVGElement::setContainerSize):
454         (WebCore::SVGSVGElement::relativeWidthValue):
455         (WebCore::SVGSVGElement::relativeHeightValue):
456         * svg/SVGSVGElement.h:
457         (WebCore::SVGSVGElement::containerSize):
458         
459         Re-factored size calculations to use the size of the container.
460         * svg/graphics/SVGImage.cpp:
461         (WebCore::SVGImage::setContainerSize):
462         (WebCore::SVGImage::size):
463         (WebCore::SVGImage::hasRelativeWidth):
464         (WebCore::SVGImage::hasRelativeHeight):
465         * svg/graphics/SVGImage.h:
466
467 2007-12-11  Darin Adler  <darin@apple.com>
468
469         * editing/Editor.cpp:
470         (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
471         a missing return statement.
472
473 2007-12-11  Darin Adler  <darin@apple.com>
474
475         Reviewed by Geoff.
476
477         - exposed many new commands to the DOM Document executeCommand function by
478           merging the JSEditor and Editor executeCommand implementations
479         - replaced the execCommand function with a EditorCommand class
480         - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
481         - replaced the WTF::CaseInsensitiveHash<> class template with the
482           WebCore::CaseFoldingHash class
483
484         * WebCore.base.exp: Updated.
485         * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
486         * WebCore.vcproj/WebCore.vcproj: Ditto.
487         * WebCore.xcodeproj/project.pbxproj: Ditto.
488         * WebCoreSources.bkl: Ditto.
489
490         * dom/Document.cpp:
491         (WebCore::Document::Document): Removed code to set up m_jsEditor.
492         (WebCore::Document::~Document): Removed code to delete m_jsEditor.
493         (WebCore::command): Added. Helper function that gets an Editor::Command.
494         (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
495         JSEditor.
496         (WebCore::Document::queryCommandEnabled): Ditto.
497         (WebCore::Document::queryCommandIndeterm):
498         (WebCore::Document::queryCommandState): Ditto.
499         (WebCore::Document::queryCommandSupported): Ditto.
500         (WebCore::Document::queryCommandValue): Ditto.
501
502         * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
503         use CaseFoldingHash.
504
505         * editing/Editor.cpp:
506         (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
507         made into a member function so it is accessible from the new EditorCommand.cpp file.
508         Also changed to get the selection from the passed-in frame instead of from the
509         page, because this should work on the targeted frame unless the event overrides it.
510         (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
511         (WebCore::Editor::handleInputMethodKeypress): Ditto.
512         (WebCore::imageElementFromImageDocument): Renamed and changed to return
513         a HTMLImageElement instead of a Node*.
514         (WebCore::Editor::canCopy): Updated for name change.
515         (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
516         (WebCore::Editor::selectionOrderedListState): Ditto.
517         (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
518         (WebCore::updateState): Moved here from Frame.
519         (WebCore::Editor::selectionHasStyle): Ditto.
520         (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
521         (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
522         selectionForCommand change.
523         (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
524         (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
525         machinery since it's no longer in this file as a local function.
526         (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
527         (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
528         local variable.
529         (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
530         without a kill ring, but it's relatively straightforward to implement one.
531         (WebCore::Editor::appendToKillRing): Put default implementation here for
532         platforms other than Mac. We should probably put a simple kill ring
533         implementation here -- doesn't need to be shared with the OS oh platforms
534         other than Mac.
535         (WebCore::Editor::prependToKillRing): Ditto.
536         (WebCore::Editor::yankFromKillRing): Ditto.
537         (WebCore::Editor::startNewKillRingSequence): Ditto.
538         (WebCore::Editor::setKillRingToYankedState): Ditto.
539
540         * editing/Editor.h: Moved the TriState enum here instead of inside the
541         Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
542         here from the Frame class. Added Editor::Command class with five functions
543         for the various things you can do with a command (execute it, check if it
544         can be used, and its state and value). Changed hte parameter of
545         setBaseWritingDirection to be a const String& rather than a String.
546         Got rid of the kill-ring-related operations, but added the kill ring
547         functions themselves. Made selectedRange() public. Made the
548         m_startNewKillRingSequence not Mac-specific and added "should" to its
549         name.
550
551         * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
552         Retained only the editing commands.
553         (WebCore::targetFrame): Moved to the top of the file.
554         (WebCore::executeApplyStyle): Added. Helper function for commands
555         that need to apply styles.
556         (WebCore::executeToggleStyle): Added. Helper function for commands
557         that need to toggle styles based on the style of the start of selection.
558         (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
559         for paragraph styles.
560         (WebCore::executeInsertFragment): Added. Helper function for commands
561         that need to insert a DOM fragment.
562         (WebCore::executeInsertNode): Added. Helper function for commands that
563         need to insert a tree rooted in a single DOM node.
564         (WebCore::stateStyle): Added. Helper function for the state of commands
565         that represent style.
566         (WebCore::valueStyle): Added. Helper function for the value of commands
567         that represent style.
568         (WebCore::canScroll): Added. Helper functions for some move and scroll
569         commands that need to determine if the renderer they are in can scroll.
570         (WebCore::unionDOMRanges): Moved here from EditorMac.
571         (WebCore::executeBackColor):
572         (WebCore::executeBackwardDelete):
573         (WebCore::executeCopy):
574         (WebCore::executeCreateLink):
575         (WebCore::executeCut):
576         (WebCore::executeDelete):
577         (WebCore::executeDeleteToMark):
578         (WebCore::executeDeleteWordBackward):
579         (WebCore::executeDeleteWordForward):
580         (WebCore::executeFindString):
581         (WebCore::executeFontName):
582         (WebCore::executeFontSize):
583         (WebCore::executeFontSizeDelta):
584         (WebCore::executeForeColor):
585         (WebCore::executeFormatBlock):
586         (WebCore::executeForwardDelete):
587         (WebCore::executeIndent):
588         (WebCore::executeInsertBacktab):
589         (WebCore::executeInsertHorizontalRule):
590         (WebCore::executeInsertHTML):
591         (WebCore::executeInsertImage):
592         (WebCore::executeInsertLineBreak):
593         (WebCore::executeInsertNewline):
594         (WebCore::executeInsertNewlineInQuotedContent):
595         (WebCore::executeInsertOrderedList):
596         (WebCore::executeInsertParagraph):
597         (WebCore::executeInsertTab):
598         (WebCore::executeInsertText):
599         (WebCore::executeInsertUnorderedList):
600         (WebCore::executeJustifyCenter):
601         (WebCore::executeJustifyFull):
602         (WebCore::executeJustifyLeft):
603         (WebCore::executeJustifyRight):
604         (WebCore::executeMoveBackward):
605         (WebCore::executeMoveBackwardAndModifySelection):
606         (WebCore::executeMoveDown):
607         (WebCore::executeMoveDownAndModifySelection):
608         (WebCore::executeMoveDownByPageAndModifyCaret):
609         (WebCore::executeMoveForward):
610         (WebCore::executeMoveForwardAndModifySelection):
611         (WebCore::executeMoveLeft):
612         (WebCore::executeMoveLeftAndModifySelection):
613         (WebCore::executeMoveRight):
614         (WebCore::executeMoveRightAndModifySelection):
615         (WebCore::executeMoveToBeginningOfDocument):
616         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
617         (WebCore::executeMoveToBeginningOfLine):
618         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
619         (WebCore::executeMoveToBeginningOfParagraph):
620         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
621         (WebCore::executeMoveToBeginningOfSentence):
622         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
623         (WebCore::executeMoveToEndOfDocument):
624         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
625         (WebCore::executeMoveToEndOfSentence):
626         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
627         (WebCore::executeMoveToEndOfLine):
628         (WebCore::executeMoveToEndOfLineAndModifySelection):
629         (WebCore::executeMoveToEndOfParagraph):
630         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
631         (WebCore::executeMoveParagraphBackwardAndModifySelection):
632         (WebCore::executeMoveParagraphForwardAndModifySelection):
633         (WebCore::executeMoveUp):
634         (WebCore::executeMoveUpAndModifySelection):
635         (WebCore::executeMoveUpByPageAndModifyCaret):
636         (WebCore::executeMoveWordBackward):
637         (WebCore::executeMoveWordBackwardAndModifySelection):
638         (WebCore::executeMoveWordForward):
639         (WebCore::executeMoveWordForwardAndModifySelection):
640         (WebCore::executeMoveWordLeft):
641         (WebCore::executeMoveWordLeftAndModifySelection):
642         (WebCore::executeMoveWordRight):
643         (WebCore::executeMoveWordRightAndModifySelection):
644         (WebCore::executeOutdent):
645         (WebCore::executePaste):
646         (WebCore::executePasteAndMatchStyle):
647         (WebCore::executePrint):
648         (WebCore::executeRedo):
649         (WebCore::executeRemoveFormat):
650         (WebCore::executeSelectAll):
651         (WebCore::executeSelectToMark):
652         (WebCore::executeSetMark):
653         (WebCore::executeStrikethrough):
654         (WebCore::executeSubscript):
655         (WebCore::executeSuperscript):
656         (WebCore::executeSwapWithMark):
657         (WebCore::executeToggleBold):
658         (WebCore::executeToggleItalic):
659         (WebCore::executeTranspose):
660         (WebCore::executeUnderline):
661         (WebCore::executeUndo):
662         (WebCore::executeUnlink):
663         (WebCore::executeUnscript):
664         (WebCore::executeUnselect):
665         (WebCore::executeYank):
666         (WebCore::executeYankAndSelect):
667         (WebCore::supported):
668         (WebCore::supportedPaste):
669         (WebCore::enabled):
670         (WebCore::enabledAnySelection):
671         (WebCore::enabledAnySelectionAndMark):
672         (WebCore::enableCaretInEditableText):
673         (WebCore::enabledCopy):
674         (WebCore::enabledCut):
675         (WebCore::enabledInEditableText):
676         (WebCore::enabledInRichlyEditableText):
677         (WebCore::enabledPaste):
678         (WebCore::enabledRangeInEditableText):
679         (WebCore::enabledRangeInRichlyEditableText):
680         (WebCore::enabledRedo):
681         (WebCore::enabledUndo):
682         (WebCore::stateNone):
683         (WebCore::stateBold):
684         (WebCore::stateItalic):
685         (WebCore::stateOrderedList):
686         (WebCore::stateStrikethrough):
687         (WebCore::stateSubscript):
688         (WebCore::stateSuperscript):
689         (WebCore::stateUnderline):
690         (WebCore::stateUnorderedList):
691         (WebCore::valueNull):
692         (WebCore::valueBackColor):
693         (WebCore::valueFontName):
694         (WebCore::valueFontSize):
695         (WebCore::valueFontSizeDelta):
696         (WebCore::valueForeColor):
697         (WebCore::createCommandMap): Added lots of commands, including all the commands
698         from JSEditor. A few commands needed different behavior based on whether they are
699         invoked from the DOM or a keyboard binding.
700         (WebCore::Editor::command): Added. Gets a command object given a name.
701         (WebCore::Editor::Command::Command): Added.
702         (WebCore::Editor::Command::execute): Added.
703         (WebCore::Editor::Command::isSupported): Added.
704         (WebCore::Editor::Command::isEnabled): Added.
705         (WebCore::Editor::Command::state): Added.
706         (WebCore::Editor::Command::value): Added.
707         (WebCore::Editor::execCommand): Changed to call command().execute().
708
709         * editing/JSEditor.cpp: Removed.
710         * editing/JSEditor.h: Removed.
711
712         * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
713         kill ring commands, so the kill ring commands can be cross-platform.
714         (WebCore::Editor::appendToKillRing): Added.
715         (WebCore::Editor::prependToKillRing): Added.
716         (WebCore::Editor::yankFromKillRing): Added.
717         (WebCore::Editor::startNewKillRingSequence): Added.
718         (WebCore::Editor::setKillRingToYankedState): Added.
719
720         * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
721         * page/Frame.h: Ditto.
722
723         * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
724         * page/mac/WebCoreFrameBridge.h: Ditto.
725
726         * platform/ContextMenu.cpp:
727         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
728
729         * platform/text/StringHash.h:
730         (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
731         (WebCore::StringHash::equal): Ditto.
732         (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
733         classes into this.
734         (WebCore::CaseFoldingHash::equal): Ditto.
735
736         * platform/text/StringImpl.cpp:
737         (WebCore::equal): Changed to invoke StringHash.
738         (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
739
740         * dom/DOMImplementation.cpp:
741         (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
742         (WebCore::isSVG10Feature): Ditto.
743         (WebCore::isSVG11Feature): Ditto.
744         * loader/FrameLoader.cpp:
745         (WebCore::localSchemes): Ditto.
746         * platform/graphics/FontCache.cpp:
747         (WebCore::computeHash): Ditto.
748         * platform/network/HTTPHeaderMap.h: Ditto.
749         * platform/text/PlatformString.h: Ditto.
750         * platform/text/StringImpl.h: Ditto.
751         * rendering/RenderPartObject.cpp:
752         (WebCore::RenderPartObject::updateWidget): Ditto.
753         * xml/XMLHttpRequest.cpp:
754         (WebCore::canSetRequestHeader): Ditto.
755
756         * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
757
758 2007-12-11  Darin Adler  <darin@apple.com>
759
760         * platform/wx/KeyboardEventWx.cpp:
761         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
762         WX build. Changes the code around a little bit.
763
764 2007-12-11  Darin Adler  <darin@apple.com>
765
766         * platform/wx/KeyboardEventWx.cpp:
767         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
768
769 2007-12-11  Dan Bernstein  <mitz@apple.com>
770
771         Reviewed by Darin Adler.
772
773         - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
774
775         Test: fast/text/international/complex-character-based-fallback.html
776
777         * platform/graphics/Font.cpp:
778         (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
779         that forces this function to use the small caps font. It is used for
780         combining marks that need to combine with a small cap.
781         * platform/graphics/Font.h:
782         * platform/win/UniscribeController.cpp:
783         (WebCore::UniscribeController::advance): Changed to split the string
784         into runs of characters that will be rendered using the same FontData.
785         This is done by calling glyphDataForCharacter() for each cahracter to
786         find the FontData it should be rendered with.
787         (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
788         argument that is passed on to shapeAndPlaceItem() instead of the
789         smallCaps argument.
790         (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
791         argument and removed the font fallback logic from this function, as
792         it is now expected to be called with an item all of whose characters
793         can be rendered with the given fontData.
794         * platform/win/UniscribeController.h:
795
796 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
797
798         Reviewed by Darin.
799
800         <rdar://problem/5535636>
801         Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
802
803         http://bugs.webkit.org/show_bug.cgi?id=13916
804         JavaScript detects Tab as a character input on a textfield validation
805
806         Test: platform/win/fast/events/double-dead-char.html
807
808         * platform/PlatformKeyboardEvent.h:
809         (WebCore::PlatformKeyboardEvent::):
810         (WebCore::PlatformKeyboardEvent::type):
811         (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
812         (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
813         (WebCore::PlatformKeyboardEvent::keyIdentifier):
814         (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
815         Added an explicit type member to differentiate different kinds of events:
816           RawKeyDown == keydown == WM_KEYDOWN
817           KeyUp == keyup == WM_KEYUP
818           Char == keypress == WM_CHAR
819           KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
820           event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
821
822         * platform/mac/KeyEventMac.mm:
823         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
824         Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
825         (WebCore::windowsKeyCodeForKeyEvent): 
826         (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
827         that it still fails.
828         (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
829         should not be available in those (because it cannot be provided on Windows).
830
831         * platform/win/KeyEventWin.cpp:
832         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
833         Used standard Windows constants for bit masks instead of our own ones.
834         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
835
836         * platform/gtk/KeyEventGtk.cpp:
837         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
838         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
839         * platform/qt/PlatformKeyboardEventQt.cpp:
840         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
841         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
842         * platform/wx/KeyboardEventWx.cpp:
843         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
844         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
845         Updated for cross-platform changes as much as it was possible without appropriate build
846         environments.
847
848         * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
849         convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
850
851         * bridge/EditorClient.h:
852         Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
853         Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
854
855         * dom/Document.h:
856         * dom/Document.cpp:
857         (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
858
859         * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
860
861         * dom/KeyboardEvent.cpp:
862         (WebCore::eventTypeForKeyboardEventType):
863         (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
864         now straightforward, so scary hacks such as using autorepeat to distinguish types are
865         not needed.
866         (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
867         (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
868         Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
869         character codes.
870
871         * editing/Editor.h:
872         * editing/Editor.cpp:
873         (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
874         (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
875         (WebCore::Editor::handleInputMethodKeydown): Ditto.
876
877         * html/HTMLButtonElement.cpp:
878         (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
879         appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
880         not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
881         highlighted when Space is pressed.
882
883         * html/HTMLInputElement.cpp:
884         (WebCore::HTMLInputElement::defaultEventHandler):
885         * html/HTMLSelectElement.cpp:
886         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
887         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
888         Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
889         described above.
890
891         * page/EventHandler.cpp:
892         (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
893         to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
894         handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
895         now being handleInputMethodKeydown().
896         (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
897         (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
898         as default tab handling happens when processing keydown.
899         (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
900         event handling. Fixed accesskey processing to use information that's available in a raw keydown
901         event.
902
903         (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
904         handle tabs during keydown processing.
905
906         * page/mac/EventHandlerMac.mm:
907         (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
908         what callers want.
909
910         * platform/text/PlatformString.h:
911         * platform/text/String.cpp:
912         (WebCore::String::characterStartingAt):
913         * platform/text/StringImpl.cpp:
914         (WebCore::StringImpl::characterStartingAt):
915         * platform/text/StringImpl.h:
916         Added a UChar32 accessor.
917
918         * svg/graphics/SVGImageEmptyClients.h:
919         (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
920         (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
921         Updated for new function names.
922
923 2007-12-11  John Sullivan  <sullivan@apple.com>
924
925         Reviewed by Adele
926
927         Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
928
929         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
930         (WebCore::MediaPlayerPrivate::createQTMovieView):
931         (WebCore::MediaPlayerPrivate::detachQTMovieView):
932
933 2007-12-11  Alexey Proskuryakov  <ap@webkit.org>
934
935         Reviewed by Darin.
936
937         http://bugs.webkit.org/show_bug.cgi?id=16325
938         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
939
940         Fix this on Windows, too!
941
942         Test: http/tests/misc/empty-cookie.html
943
944         * platform/network/win/CookieJarWin.cpp:
945         (WebCore::setCookies):
946         (WebCore::cookies):
947         Same fix as on Mac, translated into CF.
948
949         * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
950
951 2007-12-11  Christian Dywan  <christian@twotoasts.de>
952
953         Reviewed by Alp Toker.
954
955         http://bugs.webkit.org/show_bug.cgi?id=16371
956         Implement additional mouse cursors for Gtk
957
958         Added cursor bitmaps from Mozilla:
959         http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
960
961         * platform/gtk/CursorGtk.cpp:
962         (WebCore::customCursorNew):
963         (WebCore::verticalTextCursor):
964         (WebCore::cellCursor):
965         (WebCore::contextMenuCursor):
966         (WebCore::noDropCursor):
967         (WebCore::copyCursor):
968         (WebCore::progressCursor):
969         (WebCore::aliasCursor):
970         (WebCore::noneCursor):
971         (WebCore::notAllowedCursor):
972         (WebCore::zoomInCursor):
973         (WebCore::zoomOutCursor):
974         * platform/gtk/CursorGtk.h: Added.
975
976 2007-12-10  Oliver Hunt  <oliver@apple.com>
977
978         Reviewed by Weinig, Dan, and Alexey.
979
980         Fix character set used for dynamically loaded scripts.
981
982         Fix for:
983             <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
984             <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
985             <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
986             
987         Use the same logic to determine the charset for a script loaded dynamically
988         as we do for a statically loaded script.
989
990         * html/HTMLScriptElement.cpp:
991         (WebCore::HTMLScriptElement::insertedIntoDocument):
992
993 2007-12-10  Justin Garcia  <justin.garcia@apple.com>
994
995         Reviewed by Oliver Hunt.
996
997         <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
998         
999         We were trying to insert a block of the requested type before the body element.
1000         
1001         * editing/FormatBlockCommand.cpp:
1002         (WebCore::FormatBlockCommand::doApply): 
1003         Removed unnecessary ()s in the if condition.
1004         Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
1005         a) upstreamStart will never be outside the root editable element, since in that case
1006         there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
1007         *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
1008         at [root, 0].
1009         Added comments to explain the use of upstream() in the second if-clause.
1010         Added an early return for case where there is nothing selected, in that case, there is nothing
1011         to move.
1012
1013 2007-12-10  Adele Peterson  <adele@apple.com>
1014
1015         Reviewed and partially fixed by Tim Hatcher.
1016
1017         Remaining part of fix for <rdar://problem/5633400>
1018         Transformed <video> is not clipped correctly until a repaint is forced
1019
1020         Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
1021         from clobbering the WebCore repaints.
1022
1023         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
1024         * html/HTMLMediaElement.h:
1025         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
1026         * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
1027
1028         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1029         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1030         (method_setImplementation): Added for Tiger.
1031
1032         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
1033         (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
1034         (WebCore::MediaPlayerPrivate::setVisible): ditto.
1035         (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
1036
1037         (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
1038         (-[WebCoreMovieObserver repaint]): ditto.
1039
1040         (WebCore::mainThreadSetNeedsDisplay): Added.
1041          Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
1042         (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
1043
1044 2007-12-10  Geoffrey Garen  <ggaren@apple.com>
1045
1046         Reviewed by Sam Weinig.
1047
1048         Updated for rename in JavaScriptCore.
1049
1050         * bridge/mac/WebCoreScriptDebugger.mm:
1051         (-[WebCoreScriptCallFrame scopeChain]):
1052         (-[WebCoreScriptCallFrame functionName]):
1053         (-[WebCoreScriptCallFrame evaluateWebScript:]):
1054
1055 2007-12-10  Rodney Dawes  <dobey@wayofthemonkey.com>
1056
1057         Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
1058         <http://bugs.webkit.org/show_bug.cgi?id=16383>
1059
1060         Use KJS::Window not the ambiguous Window
1061
1062         Reviewed by ddkilzer.
1063
1064         * bindings/js/kjs_dom.cpp (checkNodeSecurity):
1065
1066 2007-12-10  Sam Weinig  <sam@webkit.org>
1067
1068         Fix non-mac builds.
1069
1070         * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
1071
1072 2007-12-10  Marvin Decker  <marv.decker@gmail.com>
1073
1074         Reviewed by Darin.
1075
1076         Fix a divide by 0 in the progress tracker.
1077         http://bugs.webkit.org/show_bug.cgi?id=15055
1078
1079         * loader/ProgressTracker.cpp:
1080         (WebCore::ProgressTracker::incrementProgress):
1081
1082 2007-12-09  Sam Weinig  <sam@webkit.org>
1083
1084         Reviewed by Darin.
1085
1086         More cleanup of kjs_window.
1087         - Move WindowFeatures from bridge/ to page/
1088         - Move functions related to WindowFeatures (boolFeature,
1089           floatFeature, setWindowFeature, parseWindowFeatures) into the class.
1090         - Fix up whitespace.
1091
1092         * WebCore.vcproj/WebCore.vcproj:
1093         * WebCore.xcodeproj/project.pbxproj:
1094         * bindings/js/kjs_window.cpp:
1095         (KJS::DOMWindowTimer::~DOMWindowTimer):
1096         (KJS::createWindow):
1097         (KJS::showModalDialog):
1098         (KJS::Window::getOwnPropertySlot):
1099         (KJS::Window::allowsAccessFrom):
1100         (KJS::Window::shouldInterruptScript):
1101         (KJS::WindowProtoFuncAToB::callAsFunction):
1102         (KJS::WindowProtoFuncOpen::callAsFunction):
1103         (KJS::Window::setReturnValueSlot):
1104         (KJS::ScheduledAction::execute):
1105         (KJS::Window::timerFired):
1106         (KJS::Location::Location):
1107         (KJS::Location::getValueProperty):
1108         (KJS::Location::getOwnPropertySlot):
1109         (KJS::Location::put):
1110         (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
1111         (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
1112         (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
1113         allowsAccessFrom, cleanup the function a little.
1114         (KJS::PausedTimeouts::~PausedTimeouts):
1115         * bridge/WindowFeatures.h: Removed.
1116         * page/WindowFeatures.cpp: Added.
1117         (WebCore::isSeparator):
1118         (WebCore::WindowFeatures::WindowFeatures):
1119         (WebCore::WindowFeatures::setWindowFeature):
1120         (WebCore::WindowFeatures::boolFeature):
1121         (WebCore::WindowFeatures::floatFeature):
1122         * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
1123         (WebCore::WindowFeatures::WindowFeatures):
1124
1125 2007-12-10  Timothy Hatcher  <timothy@apple.com>
1126
1127         Reviewed by Mark Rowe.
1128
1129         <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
1130
1131         * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
1132           so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
1133
1134 2007-12-10  Alp Toker  <alp@atoker.com>
1135
1136         Reviewed by Niko.
1137
1138         Cairo implementation of GraphicsContext::setUseAntialiasing().
1139
1140         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1141         (WebCore::GraphicsContext::setUseAntialiasing):
1142
1143 2007-12-10  Rob Buis  <buis@kde.org>
1144
1145         Reviewed by Darin.
1146
1147         http://bugs.webkit.org/show_bug.cgi?id=16182
1148         SVG should disable antialiasing for shape-rendering="crispEdges"
1149
1150         Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
1151
1152         * platform/graphics/GraphicsContext.h:
1153         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1154         (WebCore::GraphicsContext::setUseAntialiasing):
1155         * platform/graphics/cg/GraphicsContextCG.cpp:
1156         (WebCore::GraphicsContext::setUseAntialiasing):
1157         * platform/graphics/qt/GraphicsContextQt.cpp:
1158         (WebCore::GraphicsContext::setUseAntialiasing):
1159         * platform/graphics/wx/GraphicsContextWx.cpp:
1160         (WebCore::GraphicsContext::setUseAntialiasing):
1161         * rendering/RenderPath.cpp:
1162         (WebCore::RenderPath::paint):
1163
1164 2007-12-09  Rob Buis  <buis@kde.org>
1165
1166         Reviewed by Niko.
1167
1168         http://bugs.webkit.org/show_bug.cgi?id=16163
1169         SVG crash in Node::setChanged() on Debug builds only (trashed parent)
1170
1171         Fix the crash by properly unregistering as client from SVGResource
1172         when deleting a styled svg node.
1173
1174         * svg/SVGStyledElement.cpp:
1175         (WebCore::SVGStyledElement::~SVGStyledElement):
1176
1177 2007-12-10  Brady Eidson  <beidson@apple.com>
1178
1179         Rubberstamped by John
1180
1181         * storage/DatabaseTracker.cpp:
1182         (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
1183           for the new quota, we should allow the database to be created
1184
1185 2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>
1186
1187         Bug 9683: Implement select.options.remove() method
1188         <http://bugs.webkit.org/show_bug.cgi?id=9683>
1189
1190         Reviewed by Maciej.
1191
1192         Implement select.options.remove() by calling select.remove()
1193         with the same arguments.  This is what MSIE 7 does, although its
1194         select.remove() method differs from WebKit's by throwing an
1195         exception when called with no arguments or with a negative
1196         integer argument.  Note that the DOM Level 1 documentation
1197         specifies that select.remove() does not throw an exception.
1198
1199         Tests: fast/js/select-options-remove-gc.html
1200                fast/js/select-options-remove.html
1201
1202         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1203         (WebCore::JSHTMLOptionsCollection::remove): Added.
1204         * html/HTMLOptionsCollection.cpp:
1205         (WebCore::HTMLOptionsCollection::remove): Added.
1206         * html/HTMLOptionsCollection.h:
1207         * html/HTMLOptionsCollection.idl:
1208
1209 2007-12-09  Sam Weinig  <sam@webkit.org>
1210
1211         Rubber stamped by Mark Rowe.
1212
1213         * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
1214
1215 2007-12-09  Oliver Hunt  <oliver@apple.com>
1216
1217         Reviewed by Niko.
1218
1219         Correction, 'z' and 'Z' are the only commands that cannot have an extended
1220         list of arguments.
1221
1222         * svg/SVGParserUtilities.cpp:
1223         (WebCore::SVGPathParser::parseSVG):
1224
1225 2007-12-09  Oliver Hunt  <oliver@apple.com>
1226
1227         Reviewed by Niko.
1228
1229         Prevent unlimited iteration in the case of invalid path data.
1230         
1231         The only path commands that can leave numbers trailing the command processing
1232         are 'm' and 'M', in which trailing numbers are parsed as arguments to an
1233         implicit lineto command.  In any case we should just terminate as an invalid
1234         path.
1235
1236         * svg/SVGParserUtilities.cpp:
1237         (WebCore::SVGPathParser::parseSVG):
1238
1239 2007-12-09  Luca Bruno  <lethalman88@gmail.com>
1240
1241         Reviewed by Alp Toker.
1242
1243         http://bugs.webkit.org/show_bug.cgi?id=15825
1244         [GTK] curl - slow dns causing hangs.
1245
1246         Create a vector of jobs, to satisfy requests in the right order.
1247         Set a limit to the number of simultaneous connections.
1248
1249         * platform/network/curl/ResourceHandleManager.cpp:
1250         (WebCore::maxRunningJobs): added
1251         (WebCore::ResourceHandleManager::ResourceHandleManager):
1252         (WebCore::ResourceHandleManager::removeFromCurl):
1253         (WebCore::ResourceHandleManager::startScheduledJobs):
1254
1255         * platform/network/curl/ResourceHandleManager.h:
1256         (WebCore::ResourceHandleList): removed
1257         (WebCore::ResourceHandleManager::m_runningJobs): added
1258         (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
1259         (WebCore::ResourceHandleManager::m_resourceHandleList): added
1260
1261 2007-12-08  Sam Weinig  <sam@webkit.org>
1262
1263         Reviewed by Oliver.
1264
1265         Cleanup kjs_window.h/cpp.
1266
1267         * bindings/js/kjs_window.cpp:
1268         (KJS::WindowPrivate::WindowPrivate):
1269         (KJS::DOMWindowTimer::DOMWindowTimer):
1270         (KJS::Window::Window):
1271         (KJS::Window::retrieveWindow):
1272         (KJS::Window::retrieveActive):
1273         (KJS::Window::retrieve):
1274         (KJS::Window::location):
1275         (KJS::Window::mark):
1276         (KJS::allowPopUp):
1277         (KJS::parseModalDialogFeatures):
1278         (KJS::floatFeature):
1279         (KJS::canShowModalDialog):
1280         (KJS::canShowModalDialogNow):
1281         (KJS::showModalDialog):
1282         (KJS::Window::getValueProperty):
1283         (KJS::Window::getOwnPropertySlot):
1284         (KJS::Window::globalExec):
1285         (KJS::Window::setListener):
1286         (KJS::Window::getListener):
1287         (KJS::Window::findOrCreateJSEventListener):
1288         (KJS::Window::findOrCreateJSUnprotectedEventListener):
1289         (KJS::Window::clearHelperObjectProperties):
1290         (KJS::Window::setCurrentEvent):
1291         (KJS::WindowProtoFuncAToB::callAsFunction):
1292         (KJS::WindowProtoFuncBToA::callAsFunction):
1293         (KJS::WindowProtoFuncOpen::callAsFunction):
1294         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
1295         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
1296         (KJS::WindowProtoFuncSetInterval::callAsFunction):
1297         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
1298         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
1299         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
1300         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
1301         * bindings/js/kjs_window.h:
1302         (KJS::PausedTimeouts::PausedTimeouts):
1303         (KJS::PausedTimeouts::takeTimeouts):
1304         (KJS::ScheduledAction::ScheduledAction):
1305
1306 2007-12-08  Sam Weinig  <sam@webkit.org>
1307
1308         Reviewed by Mitz.
1309
1310         Move window scrolling, moving and resizing methods from KJS::Window
1311         to WebCore::DOMWindow so that there bindings can be autogenerated.
1312
1313         Tests: fast/dom/Window/window-resize-and-move-arguments.html
1314                fast/dom/Window/window-scroll-arguments.html
1315
1316         * WebCore.xcodeproj/project.pbxproj:
1317         * bindings/js/kjs_window.cpp:
1318         (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
1319         (KJS::WindowProtoFuncOpen::callAsFunction):
1320         (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
1321         * bindings/js/kjs_window.h:
1322         * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
1323         to ensure that the no less than the declared number of attributes
1324         is allowed.
1325         * page/DOMWindow.cpp:
1326         (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
1327         (WebCore::DOMWindow::scrollBy):
1328         (WebCore::DOMWindow::scrollTo):
1329         (WebCore::DOMWindow::moveBy):
1330         (WebCore::DOMWindow::moveTo):
1331         (WebCore::DOMWindow::resizeBy):
1332         (WebCore::DOMWindow::resizeTo):
1333         * page/DOMWindow.h:
1334         (WebCore::DOMWindow::scroll):
1335         * page/DOMWindow.idl:
1336
1337 2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>
1338
1339         Reviewed by Alp Toker.
1340
1341         http://bugs.webkit.org/show_bug.cgi?id=14651
1342         [CURL] didReceiveResponse() only called for HTTP loads
1343
1344         http://bugs.webkit.org/show_bug.cgi?id=14583
1345         [GDK] file:// relative CSS include URLs handled incorrectly
1346
1347         Make sure CURL sets the ResourceResponse URL and calls
1348         didReceiveResponse for local files too. 
1349
1350         * platform/network/curl/ResourceHandleManager.cpp:
1351         (WebCore::writeCallback):
1352
1353 2007-12-08  Oliver Hunt  <oliver@apple.com>
1354
1355         Reviewed by Sam W.
1356
1357         Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
1358         
1359         Fixes <rdar://problem/5620249> Must disable SVG animation
1360         <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
1361         
1362         In order to allow finer grained control over the set of SVG features
1363         this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
1364         distinct flags:
1365         ENABLE_SVG_ANIMATION
1366         ENABLE_SVG_FILTERS
1367         ENABLE_SVG_FONTS
1368         ENABLE_SVG_AS_IMAGE
1369         ENABLE_SVG_USE
1370         
1371         by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
1372
1373         * Configurations/WebCore.xcconfig:
1374         * DerivedSources.make:
1375           Handle the increased number of build flags that may be necessary
1376           
1377         * WebCore.SVG.Animation.exp: Added.
1378         * WebCore.SVG.Filters.exp: Added.
1379         * WebCore.SVG.exp:
1380           We now may not need the animation or filter exports so 
1381           these need to be separate.
1382           
1383         * WebCore.vcproj/WebCore.vcproj:
1384         * WebCore.vcproj/build-generated-files.sh:
1385           Update for new flags
1386           
1387         Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
1388         with the appropriate specific feature flag.  
1389         * bindings/js/JSSVGElementWrapperFactory.cpp:
1390         (WebCore::createJSSVGWrapper):
1391         * bindings/objc/DOM.mm:
1392         (WebCore::createElementClassMap):
1393         * dom/make_names.pl:
1394         * loader/CachedImage.cpp:
1395         (WebCore::CachedImage::createImage):
1396         * page/DOMWindow.idl:
1397         * rendering/RenderPath.cpp:
1398         (WebCore::RenderPath::absoluteClippedOverflowRect):
1399         * rendering/RenderSVGContainer.cpp:
1400         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
1401         * rendering/RenderSVGImage.cpp:
1402         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
1403         * rendering/RenderSVGRoot.cpp:
1404         (WebCore::RenderSVGRoot::paint):
1405         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
1406         * rendering/RenderSVGText.cpp:
1407         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
1408         * rendering/SVGRenderSupport.cpp:
1409         (WebCore::prepareToRenderSVGContent):
1410         (WebCore::finishRenderSVGContent):
1411         * svg/SVGAnimateElement.cpp:
1412         * svg/SVGAnimateElement.h:
1413         * svg/SVGAnimateElement.idl:
1414         * svg/SVGAnimateMotionElement.cpp:
1415         * svg/SVGAnimateMotionElement.h:
1416         * svg/SVGAnimateTransformElement.cpp:
1417         * svg/SVGAnimateTransformElement.h:
1418         * svg/SVGAnimateTransformElement.idl:
1419         * svg/SVGComponentTransferFunctionElement.cpp:
1420         * svg/SVGComponentTransferFunctionElement.h:
1421         * svg/SVGComponentTransferFunctionElement.idl:
1422         * svg/SVGDocumentExtensions.cpp:
1423         (WebCore::SVGDocumentExtensions::startAnimations):
1424         * svg/SVGFEBlendElement.cpp:
1425         * svg/SVGFEBlendElement.h:
1426         * svg/SVGFEBlendElement.idl:
1427         * svg/SVGFEColorMatrixElement.cpp:
1428         * svg/SVGFEColorMatrixElement.h:
1429         * svg/SVGFEColorMatrixElement.idl:
1430         * svg/SVGFEComponentTransferElement.cpp:
1431         * svg/SVGFEComponentTransferElement.h:
1432         * svg/SVGFEComponentTransferElement.idl:
1433         * svg/SVGFECompositeElement.cpp:
1434         * svg/SVGFECompositeElement.h:
1435         * svg/SVGFECompositeElement.idl:
1436         * svg/SVGFEDiffuseLightingElement.cpp:
1437         * svg/SVGFEDiffuseLightingElement.h:
1438         * svg/SVGFEDiffuseLightingElement.idl:
1439         * svg/SVGFEDisplacementMapElement.cpp:
1440         * svg/SVGFEDisplacementMapElement.h:
1441         * svg/SVGFEDisplacementMapElement.idl:
1442         * svg/SVGFEDistantLightElement.cpp:
1443         * svg/SVGFEDistantLightElement.h:
1444         * svg/SVGFEDistantLightElement.idl:
1445         * svg/SVGFEFloodElement.cpp:
1446         * svg/SVGFEFloodElement.h:
1447         * svg/SVGFEFloodElement.idl:
1448         * svg/SVGFEFuncAElement.cpp:
1449         * svg/SVGFEFuncAElement.h:
1450         * svg/SVGFEFuncAElement.idl:
1451         * svg/SVGFEFuncBElement.cpp:
1452         * svg/SVGFEFuncBElement.h:
1453         * svg/SVGFEFuncBElement.idl:
1454         * svg/SVGFEFuncGElement.cpp:
1455         * svg/SVGFEFuncGElement.h:
1456         * svg/SVGFEFuncGElement.idl:
1457         * svg/SVGFEFuncRElement.cpp:
1458         * svg/SVGFEFuncRElement.h:
1459         * svg/SVGFEFuncRElement.idl:
1460         * svg/SVGFEGaussianBlurElement.cpp:
1461         * svg/SVGFEGaussianBlurElement.h:
1462         * svg/SVGFEGaussianBlurElement.idl:
1463         * svg/SVGFEImageElement.cpp:
1464         * svg/SVGFEImageElement.h:
1465         * svg/SVGFEImageElement.idl:
1466         * svg/SVGFELightElement.cpp:
1467         * svg/SVGFELightElement.h:
1468         * svg/SVGFEMergeElement.cpp:
1469         * svg/SVGFEMergeElement.h:
1470         * svg/SVGFEMergeElement.idl:
1471         * svg/SVGFEMergeNodeElement.cpp:
1472         * svg/SVGFEMergeNodeElement.h:
1473         * svg/SVGFEMergeNodeElement.idl:
1474         * svg/SVGFEOffsetElement.cpp:
1475         * svg/SVGFEOffsetElement.h:
1476         * svg/SVGFEOffsetElement.idl:
1477         * svg/SVGFEPointLightElement.cpp:
1478         * svg/SVGFEPointLightElement.h:
1479         * svg/SVGFEPointLightElement.idl:
1480         * svg/SVGFESpecularLightingElement.cpp:
1481         * svg/SVGFESpecularLightingElement.h:
1482         * svg/SVGFESpecularLightingElement.idl:
1483         * svg/SVGFESpotLightElement.cpp:
1484         * svg/SVGFESpotLightElement.h:
1485         * svg/SVGFESpotLightElement.idl:
1486         * svg/SVGFETileElement.cpp:
1487         * svg/SVGFETileElement.h:
1488         * svg/SVGFETileElement.idl:
1489         * svg/SVGFETurbulenceElement.cpp:
1490         * svg/SVGFETurbulenceElement.h:
1491         * svg/SVGFETurbulenceElement.idl:
1492         * svg/SVGFilterElement.cpp:
1493         * svg/SVGFilterElement.h:
1494         * svg/SVGFilterElement.idl:
1495         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1496         * svg/SVGTimer.cpp:
1497         (WebCore::SVGTimer::animationsByElement):
1498         * svg/SVGUseElement.cpp:
1499         (WebCore::SVGUseElement::buildPendingResource):
1500         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1501         * svg/SVGUseElement.h:
1502         * svg/TimeScheduler.cpp:
1503         (WebCore::TimeScheduler::connectIntervalTimer):
1504         (WebCore::TimeScheduler::disconnectIntervalTimer):
1505         * svg/graphics/SVGResourceFilter.cpp:
1506         * svg/graphics/SVGResourceFilter.h:
1507         * svg/graphics/cg/SVGResourceFilterCg.cpp:
1508         * svg/graphics/cg/SVGResourceFilterCg.mm:
1509         * svg/graphics/filters/SVGDistantLightSource.h:
1510         * svg/graphics/filters/SVGFEBlend.cpp:
1511         * svg/graphics/filters/SVGFEBlend.h:
1512         * svg/graphics/filters/SVGFEColorMatrix.cpp:
1513         * svg/graphics/filters/SVGFEColorMatrix.h:
1514         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
1515         * svg/graphics/filters/SVGFEComponentTransfer.h:
1516         * svg/graphics/filters/SVGFEComposite.cpp:
1517         * svg/graphics/filters/SVGFEComposite.h:
1518         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
1519         * svg/graphics/filters/SVGFEConvolveMatrix.h:
1520         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
1521         * svg/graphics/filters/SVGFEDiffuseLighting.h:
1522         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
1523         * svg/graphics/filters/SVGFEDisplacementMap.h:
1524         * svg/graphics/filters/SVGFEFlood.cpp:
1525         * svg/graphics/filters/SVGFEFlood.h:
1526         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
1527         * svg/graphics/filters/SVGFEGaussianBlur.h:
1528         * svg/graphics/filters/SVGFEImage.cpp:
1529         * svg/graphics/filters/SVGFEImage.h:
1530         * svg/graphics/filters/SVGFEMerge.cpp:
1531         * svg/graphics/filters/SVGFEMerge.h:
1532         * svg/graphics/filters/SVGFEMorphology.cpp:
1533         * svg/graphics/filters/SVGFEMorphology.h:
1534         * svg/graphics/filters/SVGFEOffset.cpp:
1535         * svg/graphics/filters/SVGFEOffset.h:
1536         * svg/graphics/filters/SVGFESpecularLighting.cpp:
1537         * svg/graphics/filters/SVGFESpecularLighting.h:
1538         * svg/graphics/filters/SVGFETile.h:
1539         * svg/graphics/filters/SVGFETurbulence.cpp:
1540         * svg/graphics/filters/SVGFETurbulence.h:
1541         * svg/graphics/filters/SVGFilterEffect.cpp:
1542         * svg/graphics/filters/SVGFilterEffect.h:
1543         * svg/graphics/filters/SVGLightSource.cpp:
1544         * svg/graphics/filters/SVGLightSource.h:
1545         * svg/graphics/filters/SVGPointLightSource.h:
1546         * svg/graphics/filters/SVGSpotLightSource.h:
1547         * svg/graphics/filters/cg/SVGFEBlendCg.mm:
1548         * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
1549         * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
1550         * svg/graphics/filters/cg/SVGFECompositeCg.mm:
1551         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
1552         * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
1553         * svg/graphics/filters/cg/SVGFEFloodCg.mm:
1554         * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
1555         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
1556         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
1557         * svg/graphics/filters/cg/SVGFEImageCg.mm:
1558         * svg/graphics/filters/cg/SVGFEMergeCg.mm:
1559         * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
1560         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
1561         * svg/graphics/filters/cg/SVGFETileCg.mm:
1562         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
1563         * svg/graphics/filters/cg/WKArithmeticFilter.h:
1564         * svg/graphics/filters/cg/WKArithmeticFilter.m:
1565         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
1566         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
1567         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
1568         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
1569         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
1570         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
1571         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
1572         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
1573         * svg/graphics/filters/cg/WKDistantLightFilter.h:
1574         * svg/graphics/filters/cg/WKDistantLightFilter.m:
1575         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
1576         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
1577         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
1578         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
1579         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
1580         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
1581         * svg/graphics/filters/cg/WKNormalMapFilter.h:
1582         * svg/graphics/filters/cg/WKNormalMapFilter.m:
1583         * svg/graphics/filters/cg/WKPointLightFilter.h:
1584         * svg/graphics/filters/cg/WKPointLightFilter.m:
1585         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
1586         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
1587         * svg/graphics/filters/cg/WKSpotLightFilter.h:
1588         * svg/graphics/filters/cg/WKSpotLightFilter.m:
1589         * svg/graphics/filters/cg/WKTableTransferFilter.h:
1590         * svg/graphics/filters/cg/WKTableTransferFilter.m:
1591         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
1592         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
1593         * svg/svgtags.in:
1594
1595 2007-12-08  Dan Bernstein  <mitz@apple.com>
1596
1597         Reviewed by Adele Peterson.
1598
1599         - fix two bugs in parsing of stylesheets in <style> elements created by
1600           the parser:
1601           1. each such stylesheet is parsed twice, once when the text node is
1602              added and again when the </style> tag is reached
1603           2. re-inserting such a <style> element into the document fails to
1604              re-parse and apply its stylesheet.
1605
1606         Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
1607
1608         * html/HTMLStyleElement.cpp:
1609         (WebCore::HTMLStyleElement::finishedParsing):
1610         * svg/SVGStyleElement.cpp:
1611         (WebCore::SVGStyleElement::finishedParsing):
1612
1613 2007-12-07  Sam Weinig  <sam@webkit.org>
1614
1615         Reviewed by Darin.
1616
1617         - Removes the faulty isSafeScript implementation that was only
1618           used for plugins.
1619         - Renames isSafeScript to allowsAccessFrom.
1620
1621         * bindings/js/JSDOMWindowCustom.cpp:
1622         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
1623         (WebCore::JSDOMWindow::customPut):
1624         * bindings/js/kjs_dom.cpp:
1625         (WebCore::checkNodeSecurity):
1626         * bindings/js/kjs_window.cpp:
1627         (KJS::createWindow):
1628         (KJS::Window::getValueProperty):
1629         (KJS::Window::namedItemGetter):
1630         (KJS::Window::getOwnPropertySlot):
1631         (KJS::Window::put):
1632         (KJS::Window::allowsAccessFrom):
1633         (KJS::Window::setListener):
1634         (KJS::Window::getListener):
1635         (KJS::WindowProtoFuncOpen::callAsFunction):
1636         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
1637         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
1638         (KJS::WindowProtoFuncSetInterval::callAsFunction):
1639         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
1640         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
1641         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
1642         (KJS::Location::getOwnPropertySlot):
1643         (KJS::Location::put):
1644         (KJS::LocationProtoFuncReplace::callAsFunction):
1645         (KJS::LocationProtoFuncReload::callAsFunction):
1646         (KJS::LocationProtoFuncAssign::callAsFunction):
1647         (KJS::LocationProtoFuncToString::callAsFunction):
1648         * bindings/js/kjs_window.h:
1649         (KJS::Window::allowsAccessFrom):
1650         * bindings/objc/WebScriptObject.mm:
1651         (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
1652         the new call.
1653         * bindings/scripts/CodeGeneratorJS.pm:
1654
1655 2007-12-08  Rob Buis  <buis@kde.org>
1656
1657         Reviewed by Darin.
1658
1659         http://bugs.webkit.org/show_bug.cgi?id=15464
1660         SVGLengthList allows bad values
1661
1662         Be more strict with svg lengths without a unit identifier.
1663
1664         Test: svg/custom/invalid-lengthlist.svg
1665
1666         * svg/SVGLength.cpp:
1667         (WebCore::SVGLength::setValueAsString):
1668
1669 2007-12-08  Rob Buis  <buis@kde.org>
1670
1671         Mac Tiger build fix.
1672
1673         Use the wtf prefix when including MathExtras.h.
1674
1675         * rendering/RenderMedia.cpp:
1676
1677 2007-12-08  Alp Toker  <alp@atoker.com>
1678
1679         GTK+ build fix (for ENABLE_VIDEO builds):
1680
1681         Include MathExtras.h to get isfinite().
1682
1683         * rendering/RenderMedia.cpp:
1684
1685 2007-12-08  Rob Buis  <buis@kde.org>
1686
1687         Reviewed by Darin.
1688
1689         http://bugs.webkit.org/show_bug.cgi?id=15528
1690         svg_dynamic_cast should be removed
1691
1692         Replace svg_dynamic_cast with a combination of
1693         isSVGElement and static_cast.
1694
1695         * rendering/SVGRootInlineBox.cpp:
1696         (WebCore::SVGRootInlineBox::buildLayoutInformation):
1697         (WebCore::SVGRootInlineBox::buildTextChunks):
1698         * svg/SVGAnimationElement.cpp:
1699         (WebCore::SVGAnimationElement::targetElement):
1700         * svg/SVGElement.h:
1701         * svg/SVGElementInstance.cpp:
1702         (WebCore::SVGElementInstance::updateInstance):
1703         * svg/SVGFilterElement.cpp:
1704         (WebCore::SVGFilterElement::canvasResource):
1705         * svg/SVGGradientElement.cpp:
1706         (WebCore::SVGGradientElement::buildStops):
1707         * svg/SVGLocatable.cpp:
1708         (WebCore::SVGLocatable::getTransformToElement):
1709         * svg/SVGMaskElement.cpp:
1710         (WebCore::SVGMaskElement::drawMaskerContent):
1711         * svg/SVGSwitchElement.cpp:
1712         (WebCore::SVGSwitchElement::childShouldCreateRenderer):
1713         * svg/SVGUseElement.cpp:
1714         (WebCore::SVGUseElement::insertedIntoDocument):
1715         (WebCore::SVGUseElement::buildPendingResource):
1716         (WebCore::SVGUseElement::buildInstanceTree):
1717         (WebCore::SVGUseElement::handleDeepUseReferencing):
1718         (WebCore::SVGUseElement::buildShadowTree):
1719         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
1720         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1721         * svg/graphics/SVGResource.cpp:
1722         (WebCore::getResourceById):
1723
1724 2007-12-07  Antti Koivisto  <antti@apple.com>
1725
1726         Reviewed by Adele.
1727         
1728         Partial fix for <rdar://problem/5633400>
1729         Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
1730         
1731         Fix video painting when transform is applied.
1732
1733         Test: media/video-transformed.html
1734
1735         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1736         (WebCore::MediaPlayerPrivate::paint):
1737
1738 2007-12-07  Dan Bernstein  <mitz@apple.com>
1739
1740         Reviewed by Sam Weinig.
1741
1742         - fix http://bugs.webkit.org/show_bug.cgi?id=16348
1743           @font-face does not affect the default style
1744
1745         Test: fast/css/font-face-default-font.html
1746
1747         * dom/Document.cpp:
1748         (WebCore::Document::recalcStyle): Pass our font selector to
1749         Font::update() if we already have one.
1750
1751 2007-12-07  Darin Adler  <darin@apple.com>
1752
1753         - fix Windows build
1754
1755         * bridge/win/GlobalHistoryWin.cpp:
1756         (WebCore::historyContains): Missed a rename.
1757
1758 2007-12-07  Brady Eidson  <beidson@apple.com>
1759
1760         Reviewed by Anders and Darin
1761
1762         When a statement bumps up against the quota and the UI Delegate grants more space, we need to
1763         actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
1764         in the DatabaseTracker, which was already done)
1765
1766         * storage/SQLTransaction.cpp:
1767         (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
1768           the SQLiteDatabase to the new maximum size
1769
1770 2007-12-07  Darin Adler  <darin@apple.com>
1771
1772         - fix Tiger build
1773
1774         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
1775         QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
1776
1777 2007-12-07  Darin Adler  <darin@apple.com>
1778
1779         - fix 64-bit build, hopefully without breaking Tiger build
1780
1781         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1782         (WebCore::MediaPlayerPrivate::updateStates):
1783         Don't use Movies.h constants that are nonexistent in 64-bit.
1784         Define the new QTMovie.h constants, though, when using an older QTKit.
1785
1786 2007-12-07  Brady Eidson  <beidson@apple.com>
1787
1788         Reviewed by Anders
1789
1790         Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
1791
1792         * storage/DatabaseTracker.cpp:
1793         (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
1794         (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
1795         * storage/DatabaseTracker.h:
1796
1797 2007-12-07  Darin Adler  <darin@apple.com>
1798
1799         Reviewed by Mitz.
1800
1801         - http://bugs.webkit.org/show_bug.cgi?id=15981
1802           speed up visited-link code a bit
1803
1804         * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
1805         instead of requiring a DeprecatedString.
1806
1807         * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
1808         Also removes pointless "fast Latin-1" case that was never used.
1809         * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
1810         * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
1811         * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
1812
1813         * css/CSSStyleSelector.cpp:
1814         (WebCore::findHash): Added. Helper for cleanpath.
1815         (WebCore::findSlashDotDotSlash): Ditto.
1816         (WebCore::findSlashSlash): Ditto.
1817         (WebCore::findSlashDotSlash): Ditto.
1818         (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
1819         DeprecatedString find function.
1820         (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
1821         (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
1822         instead of an AtomicString for the attribute value. Changed to use fast helper function
1823         instead of slower DeprecatedString::contains function, and also made the fast case not
1824         bother allocating a DeprecatedConstString.
1825
1826         - unrelated tiny cleanup
1827
1828         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1829         (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
1830         (WebCore::cgGradientCallback): Ditto.
1831
1832 2007-12-07  Darin Adler  <darin@apple.com>
1833
1834         Fix build on Tiger (Mark Rowe told me how).
1835
1836         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1837         Include <objc/objc-runtime.h>, which existed back on Tiger,
1838         rather than <objc/runtime.h>, which did not.
1839
1840 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
1841
1842         Build fix: rolling out last build fix to change #include path.
1843
1844         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1845
1846 2007-12-07  Steve Falkenburg  <sfalken@apple.com>
1847
1848         Re-named our B&I flag from BUILDBOT to PRODUCTION.
1849
1850         Reviewed by Sam Weinig.
1851
1852         * WebCore.vcproj/WebCore.make:
1853
1854 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
1855
1856         Build fix: corrected #include path.
1857
1858         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1859
1860 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
1861
1862         Reviewed by Sam Weinig.
1863
1864         Added some namespace qualifications and a forwarding header, now that
1865         KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
1866
1867         * ForwardingHeaders/wtf/ListRefPtr.h: Added.
1868         * bindings/js/JSXSLTProcessor.cpp:
1869         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
1870         * bindings/js/kjs_binding.cpp:
1871         (KJS::ScriptInterpreter::getDOMNodeForDocument):
1872         (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
1873         (KJS::ScriptInterpreter::putDOMNodeForDocument):
1874         (KJS::ScriptInterpreter::markDOMNodesForDocument):
1875         (KJS::ScriptInterpreter::updateDOMNodeDocument):
1876
1877 2007-12-07  Adam Roben  <aroben@apple.com>
1878
1879         Add SoftLinking.h for Windows and use it in a few places
1880
1881         Reviewed by Oliver.
1882
1883         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
1884         * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
1885         (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
1886         soft-linking calls.
1887         (WebCore::PlatformScrollbar::paintButton): Check for the presence of
1888         the SafariTheme library now that we can't check for the presence of
1889         paintThemePart directly.
1890         (WebCore::PlatformScrollbar::paintTrack): Ditto.
1891         (WebCore::PlatformScrollbar::paintThumb): Ditto.
1892         * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
1893         * rendering/RenderThemeSafari.cpp: Same basic changes as to
1894         PlatformScrollBarSafari.cpp.
1895         (WebCore::RenderThemeSafari::RenderThemeSafari):
1896         (WebCore::RenderThemeSafari::isControlStyled):
1897         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
1898         * rendering/RenderThemeSafari.h: Removed m_themeDLL member.
1899
1900 2007-12-07  Darin Adler  <darin@apple.com>
1901
1902         Reviewed by Adele.
1903
1904         - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
1905           at WebCore::HTMLSelectElement::saveState const + 152
1906
1907         Test: fast/forms/select-set-inner.html
1908
1909         * dom/ContainerNode.cpp:
1910         (WebCore::ContainerNode::removeChildren): Added a return value, as with other
1911         calls that change children, so we can optimize for the case where it does nothing.
1912         (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
1913         * dom/ContainerNode.h: See above.
1914
1915         * html/HTMLOptGroupElement.cpp:
1916         (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
1917         recalcSelectOptions in that case.
1918         (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
1919         addChild, for consistency with HTMLSelectElement; no need to override both.
1920         (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
1921         * html/HTMLOptGroupElement.h: See above.
1922
1923         * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
1924         override childrenChanged, and addChild calls that.
1925         (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
1926         recalcSelectOptions in that case.
1927         (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
1928         by using a for loop and traverseNextSibling. Also added some new comments and
1929         removed some obsolete ones.
1930         (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
1931         sure we don't have a stale list items vector.
1932         * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
1933         This will help us catch cases where we have too few calls to setRecalcListItems.
1934
1935 2007-12-07  Dan Bernstein  <mitz@apple.com>
1936
1937         Reviewed by Darin Adler.
1938
1939         - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
1940
1941         Test: fast/repaint/focus-ring.html
1942
1943         * editing/SelectionController.cpp:
1944         (WebCore::SelectionController::caretRepaintRect): Changed to return just
1945         the caret rect without any padding.
1946         (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
1947         just the caret rect without any padding.
1948         * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
1949         clearFocusRingClip().
1950         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
1951         * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
1952         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
1953         m_focusRingClip member.
1954         * platform/graphics/mac/GraphicsContextMac.mm:
1955         (WebCore::GraphicsContext::drawFocusRing): Changed to call
1956         wkDrawFocusRing() once without setting up additional clip. On Leopard,
1957         wkDrawFocusRing() respects the context clip now. On Tiger, a
1958         transparency layer is used to apply clipping to the focus ring.
1959         * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
1960         methods and member.
1961         * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
1962         * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
1963         to wkDrawFocusRing().
1964         * platform/mac/WebCoreSystemInterface.mm: Ditto.
1965         * rendering/RenderLayer.cpp:
1966         (WebCore::setClip): Removed call to set the focus ring clip.
1967         (WebCore::restoreClip): Removed call to reset the focus ring clip.
1968
1969 2007-12-07  Darin Adler  <darin@apple.com>
1970
1971         Reviewed by Antti Koivisto and Kevin Decker.
1972
1973         - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
1974
1975         Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
1976
1977         * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
1978
1979         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
1980         Made a lot more functions const. Made a few more members private and a couple inline.
1981         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
1982         things we currently use in QTKit. It's a little more awkward for classes and other data objects
1983         than it is for functions, but still relatively straightforward, with no changes needed to the
1984         client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
1985         it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
1986         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
1987         members to nil.
1988         (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
1989         (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
1990         (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
1991         Changed to use long instead of int because that's the type for a QTTime time scale anyway.
1992         (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
1993         (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
1994         (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
1995         points set to avoid a potential problem with a set being modified as we iterate it.
1996         (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
1997         (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
1998         values, used the constants from the headers directly.
1999         (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
2000         pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
2001         of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
2002         no better). Used RetainPtr instead of explicit CFRelease calls.
2003
2004         * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
2005         It's not quite as automatic as the soft linking we can do for functions, since these define
2006         functions to get the values, so you need to define macros to make what look like variable
2007         accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
2008
2009         * html/HTMLMediaElement.h:
2010         * html/TimeRanges.h:
2011         * html/VoidCallback.h:
2012         * platform/graphics/MediaPlayer.h:
2013         Use angle brackets for wtf includes. Omit unneeded includes.
2014
2015 2007-12-07  Dan Bernstein  <mitz@apple.com>
2016
2017         Reviewed by Darin Adler.
2018
2019         - fix http://bugs.webkit.org/show_bug.cgi?id=16334
2020           <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
2021
2022         Test: fast/dynamic/subtree-no-common-root-static-y.html
2023
2024         * rendering/RenderObject.cpp:
2025         (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
2026         to setChildNeedsLayout() to not mark containing blocks and added a
2027         separate call to markContainingBlocksForLayout() that will not schedule
2028         a layout if we are already in the middle of scheduleRelayoutOfSubtree().
2029
2030 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
2031
2032         Reviewed by Darin.
2033
2034         http://bugs.webkit.org/show_bug.cgi?id=16325
2035         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
2036         
2037         Test: http/tests/misc/empty-cookie.html
2038
2039         * platform/mac/CookieJar.mm:
2040         (WebCore::setCookies): Don't store empty cookies.
2041         (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
2042         with an earlier version of Leopard!
2043
2044 2007-12-06  Ada Chan  <adachan@apple.com>
2045
2046         Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
2047         returning true when there's an error).
2048
2049         Reviewed by Steve.
2050
2051         * platform/win/FileSystemWin.cpp:
2052         (WebCore::makeAllDirectories):
2053
2054 2007-12-06  Darin Adler  <darin@apple.com>
2055
2056         - fix broken regression test
2057
2058         * bindings/js/kjs_binding.cpp:
2059         (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
2060
2061 2007-12-06  Darin Adler  <darin@apple.com>
2062
2063         Reviewed by Sam Weinig.
2064
2065         - fix http://bugs.webkit.org/show_bug.cgi?id=16332
2066           ObjC DOM exception object descriptions should include the exception name
2067
2068         * WebCore.pro: Added ExceptionCode.cpp.
2069         * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
2070         * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
2071         * WebCoreSources.bkl: Added ExceptionCode.cpp.
2072
2073         * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
2074         ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
2075         the many unneeded includes that were here. Had to keep one special case here, for
2076         SECURITY_ERR.
2077
2078         * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
2079         new getExceptionCodeDescription function so that this shares the exception name
2080         information that was previously only available to JavaScript.
2081
2082         * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
2083         (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
2084         handle exception names in a slightly more robust way that is not subject to integer
2085         overflow. (Not a real world issue since we should never receive a bad exception code.)
2086
2087         * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
2088         getExceptionCodeDescription function.
2089
2090         * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
2091         the comments were mildly helpful, but others were incorrect. This now matches the other
2092         exception-related headers such as RangeException.h.
2093
2094 2007-12-06  Brady Eidson  <beidson@apple.com>
2095
2096         Reviewed by Darin
2097
2098         Fixed a glaring bug that would prevent a statement from getting run a second time
2099
2100         * storage/SQLStatement.cpp:
2101         (WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
2102           and return early
2103         (WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error
2104
2105 2007-12-06  Timothy Hatcher  <timothy@apple.com>
2106
2107         Reviewed by Oliver Hunt.
2108
2109         Use keydown instead of keypress so keyIdentifier can be used.
2110
2111         * page/inspector/ConsolePanel.js: Use keydown instead of keypress.
2112         * page/inspector/DatabasePanel.js: Ditto.
2113         * page/inspector/inspector.js: Ditto. Plus call removeEventListener
2114         before deleting windowLoaded.
2115
2116 2007-12-06  Adam Roben  <aroben@apple.com>
2117
2118         Rename FontsTable.plist to FontsList.plist
2119
2120         Rubberstamped by Hyatt.
2121
2122         * platform/graphics/win/FontDatabase.cpp:
2123
2124 2007-12-06  Brady Eidson  <beidson@apple.com>
2125
2126         Reviewed by Darin
2127
2128         Tweaked a comment and a few assertions from my last checkin
2129
2130         * storage/SQLStatement.cpp:
2131         (WebCore::SQLStatement::execute):
2132         (WebCore::SQLStatement::clearFailureDueToQuota):
2133         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
2134
2135 2007-12-06  Brady Eidson <beidson@apple.com>
2136
2137         Reviewed by Darin
2138
2139         Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
2140         will ask the UI Delegate for more space when that quota is met
2141
2142         * platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
2143         * platform/sql/SQLiteDatabase.h: Ditto
2144
2145         * storage/Database.cpp:
2146         (WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
2147         (WebCore::Database::stringIdentifier): Ditto
2148         * storage/Database.h:
2149
2150         * storage/SQLStatement.cpp:
2151         (WebCore::SQLStatement::SQLStatement):
2152         (WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
2153           If the result is quota, this statement expects that it might be run again, presumably after the user increases 
2154           the quota
2155         (WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
2156         (WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
2157         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
2158         * storage/SQLStatement.h:
2159
2160         * storage/SQLTransaction.cpp:
2161         (WebCore::SQLTransaction::SQLTransaction):
2162         (WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
2163         (WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this 
2164           transaction.  Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
2165         (WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
2166           decision and whether the current statement was already run
2167         (WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
2168         (WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
2169           that handles a statement error was moved here
2170         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then 
2171           reschedule the current statement on the database thread
2172         * storage/SQLTransaction.h:
2173
2174 2007-12-06  Steve Falkenburg  <sfalken@apple.com>
2175
2176         <rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
2177         
2178         Don't use callback-based timers, since these cause Windows to eat Windows crashes
2179         in code the timers call.
2180         
2181         Windows appears to be defending against "shatter" attacks partially by setting
2182         up a structured exception block while dispatching callback-based WM_TIMERs.
2183         
2184         I verified this by adding a divide by zero into some timer callback code.
2185         In the case where the timer was dispatched via a callback, the divide by zero
2186         exception was silently handled and ignored, with execution continuing after
2187         our call to DispatchMessage.  When processed via the WNDPROC, no SEH
2188         block was established by Windows, and our divide by zero generated a real
2189         crash (which is what we wanted).
2190         
2191         Windows handling our crashes for us led us to leave the timer data structures
2192         in an invalid state so the next time a timer was set, we'd crash accessing an
2193         invalid HashMap of timer data.
2194         
2195         Reviewed by Hyatt.
2196
2197         * platform/win/SharedTimerWin.cpp:
2198         (WebCore::TimerWindowWndProc):
2199         (WebCore::setSharedTimerFireTime):
2200
2201 2007-12-06  Adam Roben  <aroben@apple.com>
2202
2203         Fix <rdar://5108390> Feed title is too low in blue banner
2204
2205         Way back in r23069 we started applying the same font ascent hack that
2206         Mac WebKit applies to Helvetica, Times, and Courier. We did this so
2207         that those fonts would match the Mac metrics when we run the
2208         regression tests. However, this hack was applying to Arial on Windows
2209         when a site would specify the Helvetica font face because Windows will
2210         alias the font names. Instead of removing the hack entirely, we
2211         turn it off by default but provide some SPI so that DumpRenderTree can
2212         turn it on.
2213
2214         Reviewed by Hyatt.
2215
2216         All tests pass.
2217
2218         * platform/graphics/FontData.h: Add a new static method to turn on the
2219         hack on Windows only.
2220         * platform/graphics/win/FontDataWin.cpp:
2221         (WebCore::FontData::setShouldApplyMacAscentHack): Added.
2222         (WebCore::FontData::platformInit): Only perform the hack if
2223         shouldApplyMacAscentHack is true.
2224
2225 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
2226
2227         Reviewed by Sam Weinig.
2228
2229         Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
2230         REGRESSION (r28470): Crash expanding a GMail conversation
2231         
2232         * page/Frame.cpp:
2233         (WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
2234         we haven't created the proxy yet. If we've created the proxy already, a
2235         script may be in the midst of execution, even though we've lost our
2236         settings object. During execution, scripts assume they have free access
2237         to the proxy.
2238
2239 2007-12-06  Adele Peterson  <adele@apple.com>
2240
2241         Reviewed by Oliver.
2242
2243         Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost
2244
2245         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
2246         * html/HTMLMediaElement.h:
2247
2248 2007-12-05  Antti Koivisto  <antti@apple.com>
2249
2250         Reviewed by Oliver.
2251
2252         Rename
2253
2254         Movie -> MediaPlayer
2255         MoviePrivate -> MediaPlayerPrivate
2256         
2257         Movie is QuickTime terminology and clashes with its C API.
2258
2259         * WebCore.xcodeproj/project.pbxproj:
2260         * html/HTMLMediaElement.cpp:
2261         (WebCore::HTMLMediaElement::HTMLMediaElement):
2262         (WebCore::HTMLMediaElement::~HTMLMediaElement):
2263         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
2264         (WebCore::HTMLMediaElement::bufferingRate):
2265         (WebCore::HTMLMediaElement::load):
2266         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
2267         (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
2268         (WebCore::HTMLMediaElement::setReadyState):
2269         (WebCore::HTMLMediaElement::progressEventTimerFired):
2270         (WebCore::HTMLMediaElement::seek):
2271         (WebCore::HTMLMediaElement::currentTime):
2272         (WebCore::HTMLMediaElement::duration):
2273         (WebCore::HTMLMediaElement::playbackRate):
2274         (WebCore::HTMLMediaElement::setPlaybackRate):
2275         (WebCore::HTMLMediaElement::play):
2276         (WebCore::HTMLMediaElement::pause):
2277         (WebCore::HTMLMediaElement::setVolume):
2278         (WebCore::HTMLMediaElement::setMuted):
2279         (WebCore::HTMLMediaElement::pickMedia):
2280         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
2281         (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
2282         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
2283         (WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
2284         (WebCore::HTMLMediaElement::addCuePoint):
2285         (WebCore::HTMLMediaElement::buffered):
2286         (WebCore::HTMLMediaElement::seekable):
2287         (WebCore::HTMLMediaElement::effectiveStart):
2288         (WebCore::HTMLMediaElement::effectiveEnd):
2289         (WebCore::HTMLMediaElement::effectiveLoopStart):
2290         (WebCore::HTMLMediaElement::effectiveLoopEnd):
2291         (WebCore::HTMLMediaElement::updateMediaPlayer):
2292         (WebCore::HTMLMediaElement::willSaveToCache):
2293         * html/HTMLMediaElement.h:
2294         (WebCore::HTMLMediaElement::player):
2295         * html/HTMLVideoElement.cpp:
2296         (WebCore::HTMLVideoElement::videoWidth):
2297         (WebCore::HTMLVideoElement::videoHeight):
2298         * platform/MIMETypeRegistry.cpp:
2299         (WebCore::initialiseSupportedMediaMIMETypes):
2300         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
2301         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
2302         * platform/MIMETypeRegistry.h:
2303         * platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
2304         (WebCore::MediaPlayer::MediaPlayer):
2305         (WebCore::MediaPlayer::~MediaPlayer):
2306         (WebCore::MediaPlayer::load):
2307         (WebCore::MediaPlayer::cancelLoad):
2308         (WebCore::MediaPlayer::play):
2309         (WebCore::MediaPlayer::pause):
2310         (WebCore::MediaPlayer::duration):
2311         (WebCore::MediaPlayer::currentTime):
2312         (WebCore::MediaPlayer::seek):
2313         (WebCore::MediaPlayer::paused):
2314         (WebCore::MediaPlayer::seeking):
2315         (WebCore::MediaPlayer::naturalSize):
2316         (WebCore::MediaPlayer::hasVideo):
2317         (WebCore::MediaPlayer::networkState):
2318         (WebCore::MediaPlayer::readyState):
2319         (WebCore::MediaPlayer::volume):
2320         (WebCore::MediaPlayer::setVolume):
2321         (WebCore::MediaPlayer::rate):
2322         (WebCore::MediaPlayer::setRate):
2323         (WebCore::MediaPlayer::muted):
2324         (WebCore::MediaPlayer::setMuted):
2325         (WebCore::MediaPlayer::dataRate):
2326         (WebCore::MediaPlayer::setEndTime):
2327         (WebCore::MediaPlayer::addCuePoint):
2328         (WebCore::MediaPlayer::removeCuePoint):
2329         (WebCore::MediaPlayer::clearCuePoints):
2330         (WebCore::MediaPlayer::maxTimeBuffered):
2331         (WebCore::MediaPlayer::maxTimeSeekable):
2332         (WebCore::MediaPlayer::bytesLoaded):
2333         (WebCore::MediaPlayer::totalBytesKnown):
2334         (WebCore::MediaPlayer::totalBytes):
2335         (WebCore::MediaPlayer::setRect):
2336         (WebCore::MediaPlayer::visible):
2337         (WebCore::MediaPlayer::setVisible):
2338         (WebCore::MediaPlayer::paint):
2339         (WebCore::MediaPlayer::getSupportedTypes):
2340         (WebCore::MediaPlayer::networkStateChanged):
2341         (WebCore::MediaPlayer::readyStateChanged):
2342         (WebCore::MediaPlayer::volumeChanged):
2343         (WebCore::MediaPlayer::timeChanged):
2344         (WebCore::MediaPlayer::cuePointReached):
2345         * platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
2346         (WebCore::MediaPlayerClient::~MediaPlayerClient):
2347         (WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
2348         (WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
2349         (WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
2350         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
2351         (WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
2352         * platform/graphics/Movie.cpp: Removed.
2353         * platform/graphics/Movie.h: Removed.
2354         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
2355         (WebCore::mediaPlayerPrivateErrorCallback):
2356         (WebCore::mediaPlayerPrivateEOSCallback):
2357         (WebCore::mediaPlayerPrivateStateCallback):
2358         (WebCore::mediaPlayerPrivateBufferingCallback):
2359         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2360         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2361         (WebCore::MediaPlayerPrivate::load):
2362         (WebCore::MediaPlayerPrivate::play):
2363         (WebCore::MediaPlayerPrivate::pause):
2364         (WebCore::MediaPlayerPrivate::duration):
2365         (WebCore::MediaPlayerPrivate::currentTime):
2366         (WebCore::MediaPlayerPrivate::seek):
2367         (WebCore::MediaPlayerPrivate::setEndTime):
2368         (WebCore::MediaPlayerPrivate::addCuePoint):
2369         (WebCore::MediaPlayerPrivate::removeCuePoint):
2370         (WebCore::MediaPlayerPrivate::clearCuePoints):
2371         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
2372         (WebCore::MediaPlayerPrivate::cancelSeek):
2373         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
2374         (WebCore::MediaPlayerPrivate::paused):
2375         (WebCore::MediaPlayerPrivate::seeking):
2376         (WebCore::MediaPlayerPrivate::naturalSize):
2377         (WebCore::MediaPlayerPrivate::hasVideo):
2378         (WebCore::MediaPlayerPrivate::setVolume):
2379         (WebCore::MediaPlayerPrivate::setMuted):
2380         (WebCore::MediaPlayerPrivate::setRate):
2381         (WebCore::MediaPlayerPrivate::dataRate):
2382         (WebCore::MediaPlayerPrivate::networkState):
2383         (WebCore::MediaPlayerPrivate::readyState):
2384         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
2385         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2386         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2387         (WebCore::MediaPlayerPrivate::bytesLoaded):
2388         (WebCore::MediaPlayerPrivate::totalBytesKnown):
2389         (WebCore::MediaPlayerPrivate::totalBytes):
2390         (WebCore::MediaPlayerPrivate::cancelLoad):
2391         (WebCore::MediaPlayerPrivate::updateStates):
2392         (WebCore::MediaPlayerPrivate::loadStateChanged):
2393         (WebCore::MediaPlayerPrivate::rateChanged):
2394         (WebCore::MediaPlayerPrivate::sizeChanged):
2395         (WebCore::MediaPlayerPrivate::timeChanged):
2396         (WebCore::MediaPlayerPrivate::volumeChanged):
2397         (WebCore::MediaPlayerPrivate::didEnd):
2398         (WebCore::MediaPlayerPrivate::loadingFailed):
2399         (WebCore::MediaPlayerPrivate::setRect):
2400         (WebCore::MediaPlayerPrivate::setVisible):
2401         (WebCore::MediaPlayerPrivate::paint):
2402         (WebCore::MediaPlayerPrivate::getSupportedTypes):
2403         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
2404         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
2405         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
2406         * platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
2407         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
2408         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
2409         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2410         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2411         (WebCore::MediaPlayerPrivate::createQTMovie):
2412         (WebCore::MediaPlayerPrivate::createQTMovieView):
2413         (WebCore::MediaPlayerPrivate::createQTTime):
2414         (WebCore::MediaPlayerPrivate::load):
2415         (WebCore::MediaPlayerPrivate::play):
2416         (WebCore::MediaPlayerPrivate::pause):
2417         (WebCore::MediaPlayerPrivate::duration):
2418         (WebCore::MediaPlayerPrivate::currentTime):
2419         (WebCore::MediaPlayerPrivate::seek):
2420         (WebCore::MediaPlayerPrivate::doSeek):
2421         (WebCore::MediaPlayerPrivate::cancelSeek):
2422         (WebCore::MediaPlayerPrivate::seekTimerFired):
2423         (WebCore::MediaPlayerPrivate::setEndTime):
2424         (WebCore::MediaPlayerPrivate::addCuePoint):
2425         (WebCore::MediaPlayerPrivate::removeCuePoint):
2426         (WebCore::MediaPlayerPrivate::clearCuePoints):
2427         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
2428         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
2429         (WebCore::MediaPlayerPrivate::paused):
2430         (WebCore::MediaPlayerPrivate::seeking):
2431         (WebCore::MediaPlayerPrivate::naturalSize):
2432         (WebCore::MediaPlayerPrivate::hasVideo):
2433         (WebCore::MediaPlayerPrivate::setVolume):
2434         (WebCore::MediaPlayerPrivate::setMuted):
2435         (WebCore::MediaPlayerPrivate::setRate):
2436         (WebCore::MediaPlayerPrivate::dataRate):
2437         (WebCore::MediaPlayerPrivate::networkState):
2438         (WebCore::MediaPlayerPrivate::readyState):
2439         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
2440         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2441         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2442         (WebCore::MediaPlayerPrivate::bytesLoaded):
2443         (WebCore::MediaPlayerPrivate::totalBytesKnown):
2444         (WebCore::MediaPlayerPrivate::totalBytes):
2445         (WebCore::MediaPlayerPrivate::cancelLoad):
2446         (WebCore::MediaPlayerPrivate::updateStates):
2447         (WebCore::MediaPlayerPrivate::loadStateChanged):
2448         (WebCore::MediaPlayerPrivate::rateChanged):
2449         (WebCore::MediaPlayerPrivate::sizeChanged):
2450         (WebCore::MediaPlayerPrivate::timeChanged):
2451         (WebCore::MediaPlayerPrivate::volumeChanged):
2452         (WebCore::MediaPlayerPrivate::didEnd):
2453         (WebCore::MediaPlayerPrivate::setRect):
2454         (WebCore::MediaPlayerPrivate::setVisible):
2455         (WebCore::MediaPlayerPrivate::paint):
2456         (WebCore::MediaPlayerPrivate::getSupportedTypes):
2457         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
2458         * platform/graphics/mac/MoviePrivateQTKit.h: Removed.
2459         * platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
2460         * rendering/RenderMedia.cpp:
2461         (WebCore::RenderMedia::player):
2462         * rendering/RenderMedia.h:
2463         * rendering/RenderVideo.cpp:
2464         (WebCore::RenderVideo::RenderVideo):
2465         (WebCore::RenderVideo::~RenderVideo):
2466         (WebCore::RenderVideo::videoSizeChanged):
2467         (WebCore::RenderVideo::paintReplaced):
2468         (WebCore::RenderVideo::layout):
2469         (WebCore::RenderVideo::updateFromElement):
2470         (WebCore::RenderVideo::updatePlayer):
2471         * rendering/RenderVideo.h:
2472
2473 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
2474
2475         Build fix: access global object directly.
2476
2477         * plugins/win/PluginViewWin.cpp:
2478         (WebCore::PluginViewWin::bindingInstance):
2479
2480 2007-12-06  Mark Rowe  <mrowe@apple.com>
2481
2482         Reviewed by Eric.
2483
2484         Fix bug spotted by GCC 4.2.
2485
2486         * bindings/js/kjs_window.cpp:
2487         (KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.
2488
2489 2007-12-06  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
2490
2491         Reviewed by Alp Toker.
2492
2493         http://bugs.webkit.org/show_bug.cgi?id=16173
2494         Licensing change
2495
2496         Change license from BSD to LGPL.
2497
2498         * platform/gtk/FileSystemGtk.cpp:
2499
2500 2007-12-05  Rob Buis  <buis@kde.org>
2501
2502         Reviewed by Mitz.
2503
2504         http://bugs.webkit.org/show_bug.cgi?id=15289
2505         WebKit does not respect clip paths of a 0x0 rect
2506
2507         Make empty clip paths clip the whole referencing graphic.
2508
2509         * svg/SVGClipPathElement.cpp:
2510         (WebCore::SVGClipPathElement::canvasResource):
2511         * svg/graphics/SVGResourceClipper.h:
2512         (WebCore::ClipDataList::isEmpty):
2513
2514 2007-12-05  Darin Adler  <darin@apple.com>
2515
2516         Reviewed by Maciej.
2517
2518         - fix http://bugs.webkit.org/show_bug.cgi?id=16266
2519           <rdar://problem/5625279> REGRESSION: crash loading CNN.com at
2520           Interpreter::createObjectsForGlobalObjectProperties()
2521
2522         I don't know how to reproduce this in a test.
2523
2524         * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
2525         Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
2526         right now, but it's best to call your base class, not your base's base.
2527
2528         * bindings/js/kjs_events.h: Removed unneeded virtual from the
2529         JSUnprotectedEventListener::mark() function; it neither derives from or is
2530         derived from anyone else with a mark() function so there's no need for virtual.
2531
2532         * bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
2533         not JSObject::mark. This is the actual bug fix.
2534
2535 2007-12-05  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
2536
2537         http://bugs.webkit.org/show_bug.cgi?id=16145
2538         [gtk] Implement media support in GTK backend
2539
2540         Reviewed by Alp Toker.
2541
2542         Remove old comments, fix variable names, match WebKit coding style.
2543
2544         * platform/graphics/gtk/MoviePrivateGStreamer.cpp:
2545         (WebCore::moviePrivateEOSCallback):
2546         (WebCore::MoviePrivate::MoviePrivate):
2547         (WebCore::MoviePrivate::load):
2548         (WebCore::MoviePrivate::play):
2549         (WebCore::MoviePrivate::pause):
2550         (WebCore::MoviePrivate::currentTime):
2551         (WebCore::MoviePrivate::seek):
2552         (WebCore::MoviePrivate::cancelSeek):
2553         (WebCore::MoviePrivate::seeking):
2554         (WebCore::MoviePrivate::naturalSize):
2555         (WebCore::MoviePrivate::setVolume):
2556         (WebCore::MoviePrivate::setMuted):
2557         (WebCore::MoviePrivate::maxTimeBuffered):
2558         (WebCore::MoviePrivate::bytesLoaded):
2559         (WebCore::MoviePrivate::totalBytesKnown):
2560         (WebCore::MoviePrivate::totalBytes):
2561         (WebCore::MoviePrivate::updateStates):
2562         (WebCore::MoviePrivate::didEnd):
2563         (WebCore::MoviePrivate::paint):
2564         (WebCore::MoviePrivate::createGSTPlayBin):
2565         * platform/graphics/gtk/MoviePrivateGStreamer.h:
2566
2567 2007-12-05  Mark Rowe  <mrowe@apple.com>
2568
2569         Speculative wx build fix.  Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.
2570
2571         * platform/wx/TemporaryLinkStubs.cpp:
2572
2573 2007-12-05  Alp Toker  <alp@atoker.com>
2574
2575         Rubber stamped by Mark Rowe.
2576
2577         Remove DEPENDPATH on the generated sources directory. This causes
2578         trouble and is no longer necessary following the glib-genmarshal
2579         generator split.
2580
2581         * WebCore.pro:
2582
2583 2007-12-04  Geoffrey Garen  <ggaren@apple.com>
2584
2585         Reviewed by Darin Adler.
2586
2587         Third step in refactoring JSGlobalObject: Moved data members and data
2588         member access from Interpreter to JSGlobalObject. Changed Interpreter
2589         member functions to static functions. Same for the subclass, 
2590         ScriptInterpreter.
2591         
2592         This is a big change, but it's mostly code motion and renaming.
2593         
2594 2007-12-05  Darin Adler  <darin@apple.com>
2595
2596         "Reviewed" by Geoff.
2597
2598         * loader/FrameLoader.cpp:
2599         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Removed assertion.
2600         (WebCore::FrameLoader::dispatchDidCommitLoad): This one too.
2601         The assertions are firing like crazy. Not sure why yet.
2602
2603 2007-12-05  Darin Adler  <darin@apple.com>
2604
2605         Reviewed by Adam Roben.
2606
2607         - fix http://bugs.webkit.org/show_bug.cgi?id=16306
2608           Assertion failed in WebCore/loader/FrameLoader.cpp:4642
2609
2610         * loader/FrameLoader.cpp:
2611         (WebCore::FrameLoader::dispatchDidCommitLoad): Check m_creatingInitialEmptyDocument
2612         and don't deliver the client call in that case.
2613
2614 2007-12-05  Mark Rowe  <mrowe@apple.com>
2615
2616         Reviewed by Kevin Decker.
2617
2618         Fix 64-bit debug build.
2619
2620         * platform/text/mac/TextCodecMac.cpp:
2621         (WebCore::TextCodecMac::decode): OSStatus is a long for 32-bit but int on 64-bit,
2622         so we need to cast it to be able to use a single format specifier on both.
2623
2624 2007-12-05  Kevin Decker  <kdecker@apple.com>
2625
2626         Reviewed by Hyatt.
2627
2628         <rdar://problem/5613106> Acordex: REGRESSION (Tiger-Leopard): plug-ins can no longer take over TIFF images (affects uspto.gov)
2629        
2630         * loader/FrameLoader.cpp:
2631         (WebCore::FrameLoader::shouldUsePlugin): Allow plug-ins (with the exception of QuickTime) to
2632         takeover TIFF once again.
2633         
2634 2007-12-05  Luca Bruno  <lethalman88@gmail.com>
2635
2636         Reviewed by Alp Toker.
2637
2638         http://bugs.webkit.org/show_bug.cgi?id=16290
2639         [GTK] Pasting clipboard in rich text.
2640
2641         * platform/gtk/PasteboardGtk.cpp:
2642         (Pasteboard::documentFragment): Implement rich text paste support.
2643
2644 2007-12-05  Adele Peterson  <adele@apple.com>
2645
2646         Reviewed by Hyatt.
2647
2648         Reverting fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
2649
2650         We need to just fix the underlying focus ring repaint problem.
2651
2652         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
2653
2654 2007-12-04  Kevin McCullough  <kmccullough@apple.com>
2655
2656         Reviewed by Darin.
2657
2658         - <rdar://5621435>
2659         - Security Fix. Instead of having it off by default, WebKit now must
2660         explicitly turn off local-resource restriction when needed for backwards
2661         compatibility reasons.
2662
2663         * loader/FrameLoader.cpp:
2664
2665 2007-12-05  Adam Roben  <aroben@apple.com>
2666
2667         Set the menu item identifier for all menu items
2668
2669         This allows WebKit clients to distinguish between submenus in the
2670         context menu.
2671
2672         Reviewed by Darin.
2673
2674         No test possible.
2675
2676         * platform/win/ContextMenuItemWin.cpp:
2677         (WebCore::ContextMenuItem::ContextMenuItem):
2678
2679 2007-12-05  Dan Bernstein  <mitz@apple.com>
2680
2681         Reviewed by Darin Adler.
2682
2683         - WebCore part of fixing <rdar://problem/5111082> Flash popup video ad doesn't close when clicked at http://www.firestonecompleteautocare.com/
2684
2685         * manual-tests/nested-plug-ins.html: Added.
2686         * manual-tests/resources/nested-plug-ins-inner-frame.html: Added.
2687         * manual-tests/resources/nested-plug-ins-outer-frame.html: Added.
2688         * platform/ScrollView.h:
2689         * platform/Widget.h:
2690         (WebCore::Widget::attachToWindow): Added. Tells the widget that it is connected
2691         via visible ScrollViews to the root ScrollView of the WebView.
2692         (WebCore::Widget::detachFromWindow): Added. Tells the widget that it is no longer
2693         connected via visible ScrollViews to the root ScrollView of the WebView.
2694         * platform/win/ScrollViewWin.cpp:
2695         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added
2696         m_visible and m_attachedToWindow members.
2697         (WebCore::ScrollView::attachToWindow): Added. Attaches all children if this
2698         view is visible.
2699         (WebCore::ScrollView::detachFromWindow): Added. Detaches all children if this
2700         view is visible (otherwise they would be detached already).
2701         (WebCore::ScrollView::show): Added. Attaches all children if this view
2702         is attached.
2703         (WebCore::ScrollView::hide): Added. Detaches all children if this view
2704         is attached (otherwise they would be detached already).
2705         (WebCore::ScrollView::isAttachedToWindow): Added.
2706         * platform/win/WidgetWin.cpp:
2707         (WebCore::Widget::setParent): Added calls to attachToWindow() and detachFromWindow()
2708         depending on whether the parent is set and attached or not.
2709         * plugins/win/PluginViewWin.cpp:
2710         (WebCore::PluginViewWin::setFocus):
2711         (WebCore::PluginViewWin::show): Changed to show the plug-in only if
2712         this view is attached.
2713         (WebCore::PluginViewWin::hide): Changed to hide the plug-in only if this
2714         view is attached (otherwise it would be hidden already).
2715         (WebCore::PluginViewWin::attachToWindow): Added. Shows the plug-in if this view
2716         is visible.
2717         (WebCore::PluginViewWin::detachFromWindow): Added. Hides the plug-in if this view
2718         is visible (otherwise it would be hidden already).
2719         (WebCore::PluginViewWin::PluginViewWin):
2720         * plugins/win/PluginViewWin.h: Added m_attachedToWindow member.
2721
2722 2007-12-04  Alp Toker  <alp@atoker.com>
2723
2724         Potential GTK+ build fix for the glib-genmarshal issue.
2725
2726         Split the glib-genmarshal qmake generator in two; one for the source
2727         file, another for the header.
2728
2729         * WebCore.pro:
2730
2731 2007-12-04  Alp Toker  <alp@atoker.com>
2732
2733         GTK+ build fix.
2734
2735         * platform/PlugInInfoStore.h:
2736
2737 2007-12-04  Kevin Decker  <kdecker@apple.com>
2738
2739         Reviewed by Anders.
2740
2741         <rdar://problem/5629125> PluginInfoStore needs the ability to return the name of a plug-in for a given MIME type
2742
2743         * page/mac/WebCoreViewFactory.h: Added pluginNameForMIMEType: method.
2744         * platform/PlugInInfoStore.h:
2745         * platform/gtk/TemporaryLinkStubs.cpp: Added stub version of pluginNameForMIMEType.
2746         (PlugInInfoStore::pluginNameForMIMEType):
2747         * platform/mac/PlugInInfoStoreMac.mm:
2748         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added.
2749         * platform/qt/PlugInInfoStoreQt.cpp: 
2750         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
2751         * plugins/win/PlugInInfoStoreWin.cpp: 
2752         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
2753
2754 2007-12-04  Adele Peterson  <adele@apple.com>
2755
2756         Reviewed by Darin.
2757
2758         Fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
2759
2760         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
2761         Adjust outline-offset so it doesn't extend beyond the border to interfere with typing
2762
2763 2007-12-04  Anders Carlsson  <andersca@apple.com>
2764
2765         Reviewed by Jon.
2766
2767         Always call NPP_NewStream, NPP_DestroyStream and NPP_URLNotify for JavaScript
2768         result streams, even if the JavaScript expression threw an exception or returned undefined.
2769         This matches what Firefox does.
2770         
2771         * plugins/win/PluginStreamWin.cpp:
2772         (WebCore::PluginStreamWin::sendJavaScriptStream):
2773         Handle the result string being null, and set the correct NPReason if it is.
2774         
2775         * plugins/win/PluginViewWin.cpp:
2776         (WebCore::PluginViewWin::performRequest):
2777         Always send the JavaScript stream, regardless of the result could be converted to a string or not.
2778
2779 2007-12-04  Adele Peterson  <adele@apple.com>
2780
2781         Reviewed by Hyatt.
2782
2783         Fix for <rdar://problem/5622464> controls should show up for audio element
2784
2785         * css/html4.css: Added styles for audio controls.  This will need to be refined, since we may want a different look for audio controls.
2786         * html/HTMLMediaElement.cpp:
2787         (WebCore::HTMLMediaElement::attributeChanged): When the controls attribute changes detach and reattach if necessary. 
2788         (WebCore::HTMLMediaElement::rendererIsNeeded): Added.
2789         (WebCore::HTMLMediaElement::createRenderer): Added.  Uses RenderMedia.
2790         * html/HTMLMediaElement.h:
2791         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Added constructor that doesn't take intrinsic size.
2792         * rendering/RenderMedia.h:
2793
2794 2007-12-04  Anders Carlsson  <andersca@apple.com>
2795
2796         Reviewed by Sam.
2797
2798         Add isSafeScript(const JSGlobalObject*) so we won't get the JSGlobalObject
2799         implementation, which always returns true(!).
2800         
2801         * bindings/js/kjs_window.cpp:
2802         (KJS::Window::isSafeScript):
2803         Make the static isSafeScript method take two JSGlobalObjects.
2804         
2805         * bindings/js/kjs_window.h:
2806         (KJS::Window::isSafeScript):
2807         Implement isSafeScript and have it call the static method.
2808
2809 2007-11-27  Adam Roben  <aroben@apple.com>
2810
2811         Make the implementation of Frame::setNeedsReapplyStyles cross-platform
2812
2813         Reviewed by Hyatt.
2814
2815         No change in functionality.
2816
2817         * page/Frame.cpp:
2818         (WebCore::Frame::setNeedsReapplyStyles): Added. Invalidates the
2819         FrameView so that FrameView::layout will be called, which ends up
2820         calling reapplyStyles.
2821         (WebCore::Frame::needsReapplyStyles): Added.
2822         (WebCore::Frame::reapplyStyles): Renamed from reparseConfiguration.
2823         (WebCore::FramePrivate::FramePrivate):
2824         * page/Frame.h:
2825         * page/FramePrivate.h: Added new boolean member.
2826         * page/FrameView.cpp:
2827         (WebCore::FrameView::layout): Call Frame::reapplyStyles if needed.
2828         (WebCore::FrameView::needsLayout): Say that we need layout if the
2829         Frame needs styles reapplied.
2830         * page/mac/WebCoreFrameBridge.h: Removed setNeedsReapplyStyles.
2831         * page/mac/WebCoreFrameBridge.mm:
2832         (-[WebCoreFrameBridge reapplyStylesForDeviceType:]): Updated for
2833         rename.
2834
2835         * bridge/win/FrameWin.cpp: Removed Frame::setNeedsReapplyStyles.
2836         * page/gtk/FrameGtk.cpp: Ditto.
2837         * page/mac/FrameMac.mm: Ditto.
2838         * page/qt/FrameQt.cpp: Ditto.
2839         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
2840
2841 2007-12-04  Antti Koivisto  <antti@apple.com>
2842
2843         Reviewed by Adele.
2844
2845         Pass intrinsic size to the base class.
2846
2847         * rendering/RenderMedia.cpp:
2848         (WebCore::RenderMedia::RenderMedia):
2849
2850 2007-12-04  Adele Peterson  <adele@apple.com>
2851
2852         Reviewed by Darin.
2853
2854         Fix for <rdar://problem/5578209> REGRESSION: Crash in WebCore::DeprecatedValueListImpl::Private::copyList when going back on zoomerang.com/survey
2855
2856         * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
2857           When the new url is exactly the same as the old url, don't treat it like a fragment navigation, since its going to cause a reload.
2858
2859 2007-12-04  Darin Adler  <darin@apple.com>
2860
2861         Reviewed by Kevin Decker.
2862
2863         - added an assertion for a situation that leads to a Safari assertion:
2864           a commit that is not followed by a load completion
2865
2866         - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
2867           class cut down to size
2868
2869         * loader/FrameLoader.cpp:
2870         (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
2871         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
2872         that we already sent a commit before sending a complete.
2873         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
2874         client directly instead of indirecting through a function.
2875         (WebCore::FrameLoader::loadItem): Ditto.
2876         (WebCore::FrameLoader::goToItem): Ditto.
2877         (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
2878         state from Settings instead of FrameLoaderClient. Also call client directly
2879         instead of indirecting through a function.
2880         (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
2881         of indirecting through a function.
2882         (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
2883         that we did not yet send a commit and set the flag that will be used to check
2884         that we don't do this twice in a row without an intervening completion call.
2885
2886         * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
2887         now-unneeded functions.
2888
2889         * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.
2890
2891         * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
2892         the private browsing state from Settings instead of FrameLoaderClient.
2893
2894         * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.
2895
2896 2007-12-03  Antti Koivisto  <antti@apple.com>
2897
2898         Reviewed by Adele.
2899         
2900         Fix <rdar://problem/5624802> 
2901         Controller displays outside of <video> element when width and height aren't specified 
2902
2903         - Explicitly adjust size of the controls tree root.
2904         - Switch RenderMedia base class back to RenderReplaced. It is easier to manage the shadow tree
2905           by hand. This also allows better code sharing with other replaced element classes.
2906         - Move duplicated layout and painting code from subclasses up to RenderReplaced.
2907
2908         Test: media/video-controls-rendering.html
2909
2910         * rendering/RenderHTMLCanvas.cpp:
2911         (WebCore::RenderHTMLCanvas::paintReplaced):
2912         * rendering/RenderHTMLCanvas.h:
2913             Share code.
2914         * rendering/RenderImage.cpp:
2915         (WebCore::RenderImage::paintReplaced):
2916         (WebCore::RenderImage::minimumReplacedHeight):
2917         * rendering/RenderImage.h:
2918             Share code.
2919         * rendering/RenderMedia.cpp:
2920         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
2921         (WebCore::RenderMediaControlShadowRoot::setParent):
2922             Add a subclass just to get through encapsulation to use setParent().
2923         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
2924             Move initialization to the constructor.
2925         (WebCore::RenderMedia::RenderMedia):
2926         (WebCore::RenderMedia::~RenderMedia):
2927         (WebCore::RenderMedia::layout):
2928             Resize and layout the controller root by hand.
2929         (WebCore::RenderMedia::firstChild):
2930         (WebCore::RenderMedia::lastChild):
2931         (WebCore::RenderMedia::removeChild):
2932             Support one child renderer for controls.
2933         (WebCore::RenderMedia::createControlsShadowRoot):
2934         * rendering/RenderMedia.h:
2935         (WebCore::RenderMedia::isMedia):
2936             Switch base class to RenderReplaced, delete the now unnecessary stuff.
2937         * rendering/RenderReplaced.cpp:
2938         (WebCore::RenderReplaced::layout):
2939         (WebCore::RenderReplaced::paint):
2940         * rendering/RenderReplaced.h:
2941         (WebCore::RenderReplaced::minimumReplacedHeight):
2942         (WebCore::RenderReplaced::paintReplaced):
2943             Share code.
2944         * rendering/RenderVideo.cpp:
2945         (WebCore::RenderVideo::videoSizeChanged):
2946             Simplify, just request relayout.
2947         (WebCore::RenderVideo::paintReplaced):
2948         (WebCore::RenderVideo::layout):
2949         * rendering/RenderVideo.h:
2950             Share code.
2951
2952 2007-12-04  Michael Natterer  <mitch@imendio.com>
2953
2954         Reviewed by Alp Toker.
2955
2956         * WebCore.pro: fix build of webkit-marshal by building the
2957         functions into a separate .cpp file instead of including them in
2958         the header. This way we can use the marshallers from more than one
2959         file without using bad hacks.
2960
2961         Add the generated sources directory to DEPENDPATH.
2962
2963 2007-12-04  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
2964
2965         Reviewed by Alp Toker.
2966
2967         http://bugs.webkit.org/show_bug.cgi?id=16145
2968         [gtk] Implement media support in GTK backend
2969
2970         This implements the media tags of HTML5 on the GTK+ port based on the 
2971         Mac port. Media tests pass although some tests required a small modifications: 
2972         As per the HTML5 spec, the loading of the clip should start only after 
2973         all script are done.  But in the case of the tests, the loading starts 
2974         before some callbacks get registered.  This has been discussed with 
2975         Antti Koivisto, and the tests should be updated.
2976
2977         There is only one known issue: one time in 10 tries, loading a buffered 
2978         clip will never end buffering.  The buffering will stall at 97% for no 
2979         apparent reasons.  Reloading the page usually works around the problem.
2980         On the GStreamer side, some codecs don't return correct values, therefore
2981         they make the tests fail.  For instance H.264 will make the video-end 
2982         test fail.  This should be fixed in GStreamer 0.10.15.
2983
2984         This version displays video in a pop up window.  A place holder is drawn
2985         on the page where the video should appear.
2986
2987         By default, it is turned off in WebCore.pro until GStreamer/X
2988         detection issues are sorted out.
2989
2990         * WebCore.pro:
2991         Disable video for now
2992         * platform/Logging.cpp:
2993         (WebCore::):
2994         * platform/Logging.h:
2995         Added a logging level for Media stuff
2996         * platform/graphics/Movie.cpp:
2997         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Added.
2998         (WebCore::moviePrivateErrorCallback):
2999         (WebCore::moviePrivateEOSCallback):
3000         (WebCore::moviePrivateStateCallback):
3001         (WebCore::moviePrivateBufferingCallback):
3002         (WebCore::moviePrivateWindowIDCallback):
3003         (WebCore::MoviePrivate::MoviePrivate):
3004         (WebCore::MoviePrivate::~MoviePrivate):
3005         (WebCore::MoviePrivate::load):
3006         (WebCore::MoviePrivate::play):
3007         (WebCore::MoviePrivate::pause):
3008         (WebCore::MoviePrivate::duration):
3009         (WebCore::MoviePrivate::currentTime):
3010         (WebCore::MoviePrivate::seek):
3011         (WebCore::MoviePrivate::setEndTime):
3012         (WebCore::MoviePrivate::addCuePoint):
3013         (WebCore::MoviePrivate::removeCuePoint):
3014         (WebCore::MoviePrivate::clearCuePoints):
3015         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
3016         (WebCore::MoviePrivate::cancelSeek):
3017         (WebCore::MoviePrivate::cuePointTimerFired):
3018         (WebCore::MoviePrivate::paused):
3019         (WebCore::MoviePrivate::seeking):
3020         (WebCore::MoviePrivate::naturalSize):
3021         (WebCore::MoviePrivate::hasVideo):
3022         (WebCore::MoviePrivate::setVolume):
3023         (WebCore::MoviePrivate::setMuted):
3024         (WebCore::MoviePrivate::setRate):
3025         (WebCore::MoviePrivate::dataRate):
3026         (WebCore::MoviePrivate::networkState):
3027         (WebCore::MoviePrivate::readyState):
3028         (WebCore::MoviePrivate::maxTimeBuffered):
3029         (WebCore::MoviePrivate::maxTimeSeekable):
3030         (WebCore::MoviePrivate::maxTimeLoaded):
3031         (WebCore::MoviePrivate::bytesLoaded):
3032         (WebCore::MoviePrivate::totalBytesKnown):
3033         (WebCore::MoviePrivate::totalBytes):
3034         (WebCore::MoviePrivate::cancelLoad):
3035         (WebCore::MoviePrivate::updateStates):
3036         (WebCore::MoviePrivate::loadStateChanged):
3037         (WebCore::MoviePrivate::rateChanged):
3038         (WebCore::MoviePrivate::sizeChanged):
3039         (WebCore::MoviePrivate::timeChanged):
3040         (WebCore::MoviePrivate::volumeChanged):
3041         (WebCore::MoviePrivate::didEnd):
3042         (WebCore::MoviePrivate::loadingFailed):
3043         (WebCore::MoviePrivate::setRect):
3044         (WebCore::MoviePrivate::setVisible):
3045         (WebCore::MoviePrivate::paint):
3046         (WebCore::MoviePrivate::getSupportedTypes):
3047         (WebCore::MoviePrivate::createGSTPlayBin):
3048         * platform/graphics/gtk/MoviePrivateGStreamer.h: Added.
3049
3050 2007-12-04  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
3051
3052         Reviewed by Simon.
3053
3054         * Implement the InspectorClient for the Qt port
3055         * It does not support highlighting of nodes yet
3056         * Use QRC to open the internal page. The important thing is the
3057         '/' in the URL to make WebCore::Document::completeURL behave the
3058         way we want.
3059         * To make the InspectorClient work we will have to mark qrc as secure.
3060
3061         * WebCore.pro:
3062         * loader/FrameLoader.cpp:
3063         (WebCore::localSchemes):
3064         * page/inspector/WebKit.qrc: Added.
3065
3066 2007-12-04  Alp Toker  <alp@atoker.com>
3067
3068         Rubber stamped by Mark Rowe.
3069
3070         Remove two unused variables to silence warnings.
3071
3072         * html/CanvasRenderingContext2D.cpp:
3073         (WebCore::CanvasRenderingContext2D::fill):
3074         (WebCore::CanvasRenderingContext2D::stroke):
3075
3076 2007-12-03  Dan Bernstein  <mitz@apple.com>
3077
3078         Reviewed by Darin Adler.
3079
3080         - fix <rdar://problem/5134044> fast/frames/frame-src-attribute.html fails on Windows
3081
3082         * platform/win/ScrollViewWin.cpp:
3083         (WebCore::ScrollView::visibleWidth): Do not return negative values.
3084         (WebCore::ScrollView::visibleHeight): Ditto.
3085
3086 2007-12-03  Dan Bernstein  <mitz@apple.com>
3087
3088         Reviewed by Dave Hyatt.
3089
3090         - fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame
3091
3092         Test: fast/events/resize-subframe.html
3093
3094         * page/FrameView.cpp:
3095         (WebCore::FrameViewPrivate::FrameViewPrivate): Added a timer used when
3096         deferring tasks that need to be done after layout.
3097         (WebCore::FrameViewPrivate::reset):
3098         (WebCore::FrameView::~FrameView):
3099         (WebCore::FrameView::layout): Moved the updating of widget positions,
3100         loading plug-ins and sending events queued up during layout into
3101         performPostLayoutTasks(). performPostLayoutTasks() is called after
3102         layout unless the layout was triggered by a previous layout's post-
3103         layout tasks. In the latter case, performPostLayoutTasks() is scheduled
3104         to run later.
3105         (WebCore::FrameView::performPostLayoutTasks): Performs work that needs
3106         to be done after layout but which can result in arbitrary code
3107         execution and therefore may re-invalidate the layout. This includes
3108         updating widget positions, loading plug-ins, and dispatching layout-
3109         related DOM events (scroll, overflow and resize).
3110         (WebCore::FrameView::postLayoutTimerFired):
3111         (WebCore::FrameView::dispatchScheduledEvents):
3112         * page/FrameView.h:
3113         * page/mac/WebCoreFrameBridge.h:
3114         * page/mac/WebCoreFrameBridge.mm: Removed -sendResizeEvent since this
3115         is handled by FrameView now.
3116
3117 2007-12-03  Rob Buis  <buis@kde.org>
3118
3119         Reviewed by Darin.
3120
3121         http://bugs.webkit.org/show_bug.cgi?id=15767
3122         Text decorations do not respect "visibility" property
3123
3124         Only paint decorations if visibility is "visible".
3125
3126         * rendering/SVGInlineTextBox.cpp:
3127         (WebCore::SVGInlineTextBox::paintDecoration):
3128
3129 2007-12-03  Steve Falkenburg  <sfalken@apple.com>
3130
3131         Fix build.
3132
3133         * WebCore.vcproj/WebCore.vcproj:
3134
3135 2007-12-03  Nikolas Zimmermann  <zimmermann@kde.org>
3136
3137         Reviewed by David.
3138
3139         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15645
3140         Don't allow selectors to interfere with the SVG shadow tree (<use> internal non-exposed tree).
3141
3142         * css/CSSStyleSelector.cpp:
3143         (WebCore::CSSStyleSelector::checkSelector):
3144
3145 2007-12-03  Dan Bernstein  <mitz@apple.com>
3146
3147         Reviewed by Adam Roben.
3148
3149         - fix <rdar://problem/5538651> REGRESSSION: domfuzz: null deref in WebCore::Document::canReplaceChild
3150
3151         Test: fast/dom/Document/replaceChild-null-oldChild.html
3152
3153         * dom/Document.cpp:
3154         (WebCore::Document::canReplaceChild):
3155
3156 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3157
3158         Reviewed by Simon.
3159
3160         * Avoid crashes by making sure everything is layouted before
3161         we start painting. This avoids a crash in Widget::invalidateRect
3162         because QPainter::begin would fail
3163         * The QWebFrame::layout() methods and calls are left untouched because
3164         this would be an API decision.
3165         
3166
3167         WARNING: NO TEST CASES ADDED OR CHANGED
3168
3169         * page/FrameView.cpp:
3170         (WebCore::FrameView::updateControlTints):
3171         * page/FrameView.h:
3172         * platform/ScrollView.h:
3173         * platform/qt/ScrollViewQt.cpp:
3174         (WebCore::ScrollView::children):
3175
3176 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3177
3178         Reviewed by Simon.
3179
3180         * Implement GraphicsContext::fillRoundedRect similiar to the
3181         CoreGraphics implementation only addPath is not called this
3182         seems to be only needed for CoreGraphics.
3183         
3184
3185         WARNING: NO TEST CASES ADDED OR CHANGED
3186
3187         * platform/graphics/qt/GraphicsContextQt.cpp:
3188         (WebCore::GraphicsContext::fillRoundedRect):
3189
3190 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3191
3192         Reviewed by Simon.
3193
3194         * Coding Style fixes
3195         
3196
3197         WARNING: NO TEST CASES ADDED OR CHANGED
3198
3199         * platform/qt/ScrollViewQt.cpp:
3200         (WebCore::ScrollView::addChild):
3201         (WebCore::ScrollView::removeChild):
3202
3203 2007-12-03  Alp Toker  <alp@atoker.com>
3204
3205         Reviewed by Mark Rowe.
3206
3207         Don't delete the decoder if it's already been created. The one we have
3208         is fine.
3209
3210         Cairo image cleanups. Nothing substantial.
3211
3212         Notify ImageObservers where appropriate.
3213
3214         * platform/graphics/cairo/ImageCairo.cpp:
3215         (WebCore::BitmapImage::draw):
3216         (WebCore::Image::drawPattern):
3217         * platform/graphics/cairo/ImageSourceCairo.cpp:
3218         (WebCore::ImageSource::setData):
3219         * platform/graphics/gtk/ImageGtk.cpp:
3220
3221 2007-12-03  Simon Hausmann  <hausmann@webkit.org>
3222
3223         Reviewed by Lars.
3224
3225         Fixed crash when rendering form elements with Qt 4.4
3226
3227         QPainter::device() is not guaranteed to return a QWidget, so do the safe "cast" with the
3228         help of QPaintDevice::devType().
3229         Also fall back to the QApplication::style() if we don't have a widget.
3230
3231         * platform/qt/RenderThemeQt.cpp:
3232         (WebCore::RenderThemeQt::paintButton):
3233         (WebCore::RenderThemeQt::paintTextField):
3234         (WebCore::RenderThemeQt::paintMenuList):
3235         (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
3236
3237 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3238
3239         Reviewed by Sam Weinig.
3240
3241         * Add FrameLoader::shouldTreatSchemeAsLocal which is similar to
3242         shouldTreatURLAsLocal.
3243         * Make use of FrameLoader::shouldTreatSchemeAsLocal in SecurityOrigin
3244         and do not hardcode "file". This is needed for the WebKit/qt port to make
3245         the Web Inspector work as it using the qrc protocol instead of file.
3246
3247
3248         * loader/FrameLoader.cpp:
3249         (WebCore::FrameLoader::shouldTreatSchemeAsLocal):
3250         * loader/FrameLoader.h:
3251         * platform/SecurityOrigin.cpp:
3252         (WebCore::SecurityOrigin::isSecureTransitionTo):
3253
3254 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3255
3256         Rubber stamped by Sam Weinig.
3257
3258         Only add applewebdata to the localSchemes when building for the
3259         mac. This is in preparation of adding qrc for the Qt port there
3260         as well and http://bugs.webkit.org/show_bug.cgi?id=15938.
3261
3262         According to Anders applewebdata is not used on the win port.
3263
3264         * loader/FrameLoader.cpp:
3265         (WebCore::localSchemes):
3266
3267 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3268
3269         Rubber stamped by Sam Weinig.
3270
3271         Fix a typo. It is contains and not containts
3272
3273         * loader/FrameLoader.cpp:
3274
3275 2007-12-03  Alp Toker  <alp@atoker.com>
3276
3277         Add another missing DEPENDPATH.
3278
3279         Noticed when fixing the build.
3280
3281         * WebCore.pro:
3282
3283 2007-12-03  Adam Roben  <aroben@apple.com>
3284
3285         Speculative Windows build fix
3286
3287         * plugins/win/PluginViewWin.cpp:
3288         (WebCore::getString):
3289
3290 2007-12-03  Geoffrey Garen  <ggaren@apple.com>
3291
3292         Build fix: added symbols to the right .exp file.
3293
3294         * WebCore.base.exp:
3295
3296 2007-12-02  Geoffrey Garen  <ggaren@apple.com>
3297
3298         Reviewed by Eric Seidel.
3299
3300         Updated to match the JavaScriptCore change to move virtual methods from
3301         Interpreter to JSGlobalObject.
3302         
3303         Moved virtual ScriptInterpreter functions to Window.
3304
3305 2007-12-02  Darin Adler  <darin@apple.com>
3306
3307         Reviewed by Mitz.
3308
3309         - fix <rdar://problem/5601995> Hang/crash on http://ebay-uk.custhelp.com/
3310
3311         There were two problems here:
3312
3313             1) Incorrect HTMLCollection behavior led to us trying to insert a
3314                new row inside an existing row instead of next to it. The fix for
3315                this is to make HTMLCollection work better for table-related
3316                collections.
3317
3318             2) HTMLTableRowElement::insertCell would return a bad pointer if
3319                the insertion failed. The code should have failed, but not crashed,
3320                so it's worth fixing that too.
3321
3322         While fixing the HTMLCollection issues, I did some clean-up of that
3323         class and its derived classes.
3324
3325         Test: fast/dom/HTMLTableElement/rows.html
3326         Test: fast/dom/HTMLTableElement/tBodies.html
3327         Test: fast/dom/HTMLTableRowElement/cells.html
3328         Test: fast/dom/HTMLTableRowElement/insertCell.html
3329         Test: fast/dom/HTMLTableSectionElement/rows.html
3330
3331         * bindings/js/JSHTMLCollectionCustom.cpp:
3332         (WebCore::toJS): Updated because collectionType() was renamed to type().
3333
3334         * html/HTMLCollection.cpp:
3335         (WebCore::HTMLCollection::HTMLCollection): Updated for data member name
3336         changes. Also added a protected constructor for use by derived classes
3337         that pass in a CollectionInfo.
3338         (WebCore::HTMLCollection::CollectionInfo::copyCacheMap): Moved out of
3339         the header.
3340         (WebCore::isTableSection): Added.
3341         (WebCore::HTMLCollection::itemAfter): Renamed from traverseNextItem,
3342         because the old name was grammatically incorrect and thus a bit confusing.
3343         Changed to operate on Element* instead of Node*, and use 0 to start
3344         rather than passing in the base node (required since the base node can be
3345         a document, which is not an element). Generalized the code that made
3346         NodeChildren not descend into deeper descendants so it can be used for
3347         TRCells, TSectionRows, TableTBodies, and TableRows. Reformatted the
3348         switch statement and got rid of the "found" boolean since we can just
3349         return when we find something. Got rid of the default case, and instead
3350         listed all the enum values. Also changed to use a for loop for clarity.
3351         (WebCore::HTMLCollection::calcLength): Updated for itemAfter changes.
3352         (WebCore::HTMLCollection::item): Ditto.
3353         (WebCore::HTMLCollection::nextItem): Ditto.
3354         (WebCore::HTMLCollection::checkForNameMatch): Updated to take an Element
3355         instead of a Node pointer.
3356         (WebCore::HTMLCollection::namedItem): More of the same.
3357         (WebCore::HTMLCollection::updateNameCache): Ditto.
3358         (WebCore::HTMLCollection::namedItems): Ditto.
3359         (WebCore::HTMLCollection::nextNamedItem): Ditto.
3360         (WebCore::HTMLCollection::tags): Ditto.
3361
3362         * html/HTMLCollection.h: Added a type FormElements, so that the
3363         HTMLFormCollection would not have a type of DocImages, which is what
3364         it previously did. Changed the base parameter to be a PassRefPtr to
3365         make it clear we take ownership of it. Added a comment explaining
3366         why we should change the name CollectionInfo. Made a lot more members
3367         private instead of protected. Renamed traverseNextItem to itemAfter.
3368         Changed most functions to take Element* instead of Node*.
3369
3370         * html/HTMLFormCollection.cpp:
3371         (WebCore::HTMLFormCollection::formCollectionInfo): Added.
3372         (WebCore::HTMLFormCollection::HTMLFormCollection): Updated to pass
3373         collection info into the base class.
3374         (WebCore::HTMLFormCollection::calcLength): Updated to use base() so we
3375         don't need to get at m_base directly.
3376         (WebCore::HTMLFormCollection::item): Same, but for info().
3377         (WebCore::HTMLFormCollection::getNamedItem): Removed unused first
3378         argument.
3379         (WebCore::HTMLFormCollection::getNamedFormItem): Got rid of unneeded
3380         checks that the base is still an element and still a form, since that's
3381         guaranteed.
3382         (WebCore::HTMLFormCollection::nextItem): Use info().
3383         (WebCore::HTMLFormCollection::nextNamedItemInternal): Node instead of
3384         Element, some name changes.
3385         (WebCore::HTMLFormCollection::namedItem): Update for changes elsewhere.
3386         (WebCore::HTMLFormCollection::nextNamedItem): Ditto, also rewrote loop
3387         to be much simpler.
3388         (WebCore::HTMLFormCollection::updateNameCache): More of the same.
3389
3390         * html/HTMLFormCollection.h: Changed constructor to take an
3391         HTMLFormElement, using a PassRefPtr to communicate transfer of
3392         ownership. Made everything private instead of protected. Removed
3393         unneeded override of firstItem. Made getNamedItem and
3394         nextNamedItemInternal non-virtual. Removed unused first argument of
3395         getNamedItem. Added declaration of formCollectionInfo.
3396
3397         * html/HTMLNameCollection.cpp:
3398         (WebCore::HTMLNameCollection::HTMLNameCollection): Updated to pass
3399         collection info into the base class.
3400         (WebCore::HTMLNameCollection::itemAfter): Reformatted a bit and
3401         changed into a for loop.
3402
3403         * html/HTMLNameCollection.h: Updated for name changes. Made function
3404         private instead of public. Used PassRefPtr in constructor.
3405
3406         * html/HTMLOptionsCollection.cpp:
3407         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Updated to
3408         pass collection info into the base class.
3409         (WebCore::HTMLOptionsCollection::add): Updated for public/private
3410         changes in the base class.
3411         (WebCore::HTMLOptionsCollection::selectedIndex): Ditto.
3412         (WebCore::HTMLOptionsCollection::setSelectedIndex): Ditto.
3413         (WebCore::HTMLOptionsCollection::setLength): Ditto.
3414
3415         * html/HTMLOptionsCollection.h: Changed constructor parameter to be a
3416         PassRefPtr.
3417
3418         * html/HTMLTableRowElement.cpp:
3419         (WebCore::HTMLTableRowElement::insertCell): Changed code to use RefPtr
3420         and PassRefPtr since this creates a new object. This alone fixed the
3421         crash. Also cleaned up logic a bit to be more readable.
3422
3423         * html/HTMLTableRowElement.h: Changed insertCell to return a PassRefPtr.
3424         Also reordered functions a bit to make things a little more logical and
3425         removed the unused ncols data member.
3426
3427         * html/HTMLTableSectionElement.cpp:
3428         (WebCore::HTMLTableSectionElement::rows): Pass TSectionRows, not
3429         TableRows. This mistake was harmless before because TableRows and
3430         TSectionRows were handled identically inside HTMLCollection, but that is
3431         no longer the case with this fix.
3432
3433         * bindings/scripts/CodeGeneratorJS.pm: Add an include to cope with the
3434         fact that HTMLOptionsCollection no longer includes HTMLOptionElement.
3435         I don't think this really should be a special case -- might be worth
3436         returning later to see if this can be optimized.
3437
3438 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
3439
3440         Reviewed by Adam.
3441
3442         RenderSVGViewportContainer sets wrong width/height.
3443         Share code with RenderSVGContainer in a central calcBounds() function.
3444
3445         Fixes:
3446         - svg/custom/use-css-events.svg (http://bugs.webkit.org/show_bug.cgi?id=15403)
3447         - svg/custom/deep-dynamic-updates.svg
3448         - svg/custom/use-clipped-hit.svg
3449         - svg/custom/image-clipped-hit.svg
3450
3451         * rendering/RenderSVGContainer.cpp:
3452         (WebCore::RenderSVGContainer::layout):
3453         (WebCore::RenderSVGContainer::calcBounds):
3454         * rendering/RenderSVGContainer.h:
3455         * rendering/RenderSVGViewportContainer.cpp:
3456         (WebCore::RenderSVGViewportContainer::layout):
3457
3458 2007-12-02  Brady Eidson <beidson@apple.com>
3459
3460         Reviewed by Darin
3461
3462         databaseChanged notifications were being sent out on the database thread - they need to be on the main thread
3463         like all other notifications we send out!
3464
3465         * platform/SecurityOriginData.cpp:
3466         (WebCore::SecurityOriginData::copy): Add a deep copy method, for when an object thread hops
3467         * platform/SecurityOriginData.h:
3468
3469         * storage/DatabaseTracker.cpp:
3470         (WebCore::notificationMutex):
3471         (WebCore::notificationQueue):
3472         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Add the origin/name pair to a queue
3473         (WebCore::DatabaseTracker::scheduleForNotification): Schedule to deliver this queue of notifications
3474           on the main thread
3475         (WebCore::DatabaseTracker::notifyDatabasesChanged): Deliver all notifications in the queue
3476         * storage/DatabaseTracker.h:
3477
3478         * storage/SQLTransaction.cpp:
3479         (WebCore::SQLTransaction::postflightAndCommit): scheduleNotifyDatabaseChanged() instead of "notify now!"
3480         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
3481
3482 2007-12-02  Rob Buis  <buis@kde.org>
3483
3484         Reviewed by Darin.
3485
3486         http://bugs.webkit.org/show_bug.cgi?id=16002
3487         Load SVG (and other) UA StyleSheets dynamically when needed
3488
3489         Load svg sheet when needed.
3490
3491         * css/CSSStyleSelector.cpp:
3492         (WebCore::screenEval):
3493         (WebCore::printEval):
3494         (WebCore::CSSStyleSelector::CSSStyleSelector):
3495         (WebCore::CSSStyleSelector::loadDefaultStyle):
3496         (WebCore::CSSStyleSelector::styleForElement):
3497         (WebCore::CSSRuleSet::addRulesFromSheet):
3498
3499 2007-12-02  Mark Rowe  <mrowe@apple.com>
3500
3501         Try and fix the Windows build.
3502
3503         * plugins/win/PluginViewWin.cpp:
3504         (WebCore::PluginViewWin::bindingInstance):
3505
3506 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
3507
3508         Rubber stamped by Eric.
3509
3510         Move platform/graphics/svg to graphics/svg as discussed on webkit-dev.
3511         Updated all project files.
3512
3513         * WebCore.pro:
3514         * WebCore.vcproj/WebCore.vcproj:
3515         * WebCore.xcodeproj/project.pbxproj:
3516         * platform/graphics/svg: Removed.
3517         * platform/graphics/svg/SVGImage.cpp: Removed.
3518         * platform/graphics/svg/SVGImage.h: Removed.
3519         * platform/graphics/svg/SVGImageEmptyClients.h: Removed.
3520         * platform/graphics/svg/SVGPaintServer.cpp: Removed.
3521         * platform/graphics/svg/SVGPaintServer.h: Removed.
3522         * platform/graphics/svg/SVGPaintServerGradient.cpp: Removed.
3523         * platform/graphics/svg/SVGPaintServerGradient.h: Removed.
3524         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp: Removed.
3525         * platform/graphics/svg/SVGPaintServerLinearGradient.h: Removed.
3526         * platform/graphics/svg/SVGPaintServerPattern.cpp: Removed.
3527         * platform/graphics/svg/SVGPaintServerPattern.h: Removed.
3528         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp: Removed.
3529         * platform/graphics/svg/SVGPaintServerRadialGradient.h: Removed.
3530         * platform/graphics/svg/SVGPaintServerSolid.cpp: Removed.
3531         * platform/graphics/svg/SVGPaintServerSolid.h: Removed.
3532         * platform/graphics/svg/SVGResource.cpp: Removed.
3533         * platform/graphics/svg/SVGResource.h: Removed.
3534         * platform/graphics/svg/SVGResourceClipper.cpp: Removed.
3535         * platform/graphics/svg/SVGResourceClipper.h: Removed.
3536         * platform/graphics/svg/SVGResourceFilter.cpp: Removed.
3537         * platform/graphics/svg/SVGResourceFilter.h: Removed.
3538         * platform/graphics/svg/SVGResourceListener.h: Rem