1 2008-01-08 Oliver Hunt <oliver@apple.com>
3 Reviewed by Adele and John.
5 Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
6 dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
8 We hit this crash if the page reloads between DragController::dragUpdated
9 and DragController::performDrag, meaning that m_document starts pointing to
10 a now viewless document. This is picked up by an assertion in performDrag
11 which I have now replaced with an assignment given that the assertion is
12 invalid -- it is possible for m_document to be changed between dragUpdated
15 * page/DragController.cpp:
16 (WebCore::DragController::performDrag):
18 2008-01-08 Alexey Proskuryakov <ap@webkit.org>
22 <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
23 WebCore::Node::setChanged + 96
25 Test: fast/dom/cssTarget-crash.html
27 * dom/Node.cpp: (WebCore::Node::removedFromDocument):
28 Check to see if the node being removed is currently set as the Document's cssTarget.
29 If it is, clear the cssTarget to prevent a hanging reference to it.
31 2008-01-08 Adam Roben <aroben@apple.com>
33 * svg/svgtags.in: Touch this again for the sake of the Windows bots.
35 2008-01-08 Timothy Hatcher <timothy@apple.com>
37 Reviewed by Adam Roben.
39 Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
40 Also added some #pragma marks to help find places in the file.
42 * page/InspectorController.cpp:
43 (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
44 And return the result of JSObjectCallAsFunction.
45 (WebCore::search): Use JSRetainPtr<JSStringRef>.
46 (WebCore::databaseTableNames): Ditto.
47 (WebCore::localizedStrings): Ditto.
48 (WebCore::InspectorController::~InspectorController): Ditto.
49 (WebCore::InspectorController::focusNode): Ditto.
50 (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
51 (WebCore::InspectorController::scriptObjectReady): Ditto.
52 (WebCore::addHeaders): Ditto.
53 (WebCore::InspectorController::addScriptResource): Ditto.
54 (WebCore::InspectorController::removeScriptResource): Ditto.
55 (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
56 (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
57 (WebCore::InspectorController::updateScriptResource): Ditto.
58 (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
59 (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
60 (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
62 2008-01-08 Dan Bernstein <mitz@apple.com>
64 Rubber-stamped by Sam Weinig.
66 - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
70 * WebCore.vcproj/WebCore.vcproj:
71 * WebCore.xcodeproj/project.pbxproj:
74 * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
75 * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
76 * platform/graphics/FontDataBaseClass.cpp: Removed.
77 * platform/graphics/FontDataBaseClass.h: Removed.
78 * platform/graphics/SegmentedFontData.h:
79 * platform/graphics/SimpleFontData.h:
81 2008-01-08 Dan Bernstein <mitz@apple.com>
85 * platform/graphics/wx/GlyphMapWx.cpp:
86 (WebCore::GlyphPage::fill):
88 2008-01-08 Dan Bernstein <mitz@apple.com>
92 * platform/graphics/qt/SimpleFontDataQt.cpp:
93 (WebCore::SimpleFontData::containsCharacters):
94 (WebCore::SimpleFontData::fontDataForCharacter):
95 (WebCore::SimpleFontData::isSegmented):
97 2008-01-08 Adam Roben <aroben@apple.com>
101 Touch config.h to force a rebuild (apparently changing preprocessor
102 definitions in the .vcproj doesn't force a rebuild).
106 2008-01-08 Dan Bernstein <mitz@apple.com>
108 Fix a Wx build failure.
112 2008-01-08 Dan Bernstein <mitz@apple.com>
114 Fix a Qt build failure.
118 2008-01-08 John Sullivan <sullivan@apple.com>
120 Reviewed by Adam Roben
122 - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field,
123 Delete menu item is enabled but shouldn't be
125 The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
126 parameter to the enabled functions so that they can have parallel logic to the execute functions.
128 * editing/EditorCommand.cpp:
129 added EditorCommandSource parameter to isEnabled function prototype
131 added unused EditorCommandSource parameter to these isEnabled functions:
132 (WebCore::enabledAnySelection):
133 (WebCore::enabledAnySelectionAndMark):
134 (WebCore::enableCaretInEditableText):
135 (WebCore::enabledCopy):
136 (WebCore::enabledCut):
138 (WebCore::enabledDelete):
139 new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
142 added unused EditorCommandSource parameter to these isEnabled functions:
143 (WebCore::enabledInEditableText):
144 (WebCore::enabledInRichlyEditableText):
145 (WebCore::enabledPaste):
146 (WebCore::enabledRangeInEditableText):
147 (WebCore::enabledRangeInRichlyEditableText):
148 (WebCore::enabledRedo):
149 (WebCore::enabledUndo):
151 (WebCore::CommandEntry::):
152 wire up new enabledDelete function as delete function for Delete command
154 (WebCore::Editor::Command::isEnabled):
155 pass EditorCommandSource parameter to isEnabled function
157 2008-01-08 Adam Roben <aroben@apple.com>
159 Visual C++ Express build fix
161 * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
162 and advapi32.lib. VS implicitly links against these, VC++ Express
165 2008-01-08 Dan Bernstein <mitz@apple.com>
169 * platform/graphics/mac/FontCustomPlatformData.cpp:
170 (WebCore::createFontCustomPlatformData):
172 2008-01-08 Dan Bernstein <mitz@apple.com>
174 Try to fix the Qt build.
178 2008-01-08 Nikolas Zimmermann <zimmermann@kde.org>
180 Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
182 * page/inspector/WebKit.qrc:
184 2008-01-08 Maciej Stachowiak <mjs@apple.com>
188 - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
190 * bindings/objc/PublicDOMInterfaces.h:
191 * html/HTMLDocument.idl:
193 2008-01-08 David D. Kilzer <ddkilzer@webkit.org>
195 Renamed CharacterData::str to m_str to match coding style
197 Rubber-stamped by Adam.
199 No test cases added since there is no change in behavior.
201 * dom/CDATASection.cpp:
202 * dom/CharacterData.cpp:
203 (WebCore::CharacterData::CharacterData):
204 (WebCore::CharacterData::setData):
205 (WebCore::CharacterData::substringData):
206 (WebCore::CharacterData::appendData):
207 (WebCore::CharacterData::insertData):
208 (WebCore::CharacterData::deleteData):
209 (WebCore::CharacterData::replaceData):
210 (WebCore::CharacterData::nodeValue):
211 (WebCore::CharacterData::containsOnlyWhitespace):
212 (WebCore::CharacterData::dispatchModifiedEvent):
213 (WebCore::CharacterData::checkCharDataOperation):
214 (WebCore::CharacterData::dump):
215 * dom/CharacterData.h:
218 (WebCore::Text::splitText):
219 (WebCore::Text::createRenderer):
220 (WebCore::Text::recalcStyle):
222 2008-01-08 Oliver Hunt <oliver@apple.com>
224 Reviewed by NOBODY (Build fix).
226 Set the ENABLE_SVG_FONTS flag in Windows build, now builds,
227 I'm not sure if it just caused the right files to regenerate,
228 or if there's some configuration weirdness in the non-SVG-fonts
231 * WebCore.vcproj/WebCore.vcproj:
233 2008-01-07 Maciej Stachowiak <mjs@apple.com>
237 - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
239 Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
242 (WebCore::Document::Document):
244 (WebCore::Document::setHasOpenDatabases):
245 (WebCore::Document::hasOpenDatabases):
246 * loader/FrameLoader.cpp:
247 (WebCore::FrameLoader::canCachePage):
248 * storage/Database.cpp:
249 (WebCore::Database::openDatabase):
251 2008-01-07 Dan Bernstein <mitz@apple.com>
253 Reviewed by Oliver Hunt.
255 - fix leaks seen on the build bot
257 * css/CSSFontSelector.cpp:
258 (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
259 CSSFontFaceSource for SVG font-face elements going into an
260 SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
261 face elements to a CSSFontFace because it will not work as expected.
263 2008-01-07 Mark Rowe <mrowe@apple.com>
267 * platform/graphics/mac/FontCustomPlatformData.cpp:
268 (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
269 It's not needed on Tiger, and breaks the build.
271 2008-01-07 Antti Koivisto <antti@apple.com>
275 Re-enable media support in Windows build.
277 * WebCore.vcproj/QTMovieWin.vcproj:
278 * WebCore.vcproj/WebCore.vcproj:
279 * WebCore.vcproj/build-generated-files.sh:
281 2008-01-07 Steve Falkenburg <sfalken@apple.com>
283 Add version resource to QTMovieWin.dll
287 * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
288 * WebCore.vcproj/QTMovieWin.rc: Added.
289 * WebCore.vcproj/QTMovieWin.vcproj:
290 * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
291 * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
293 2008-01-07 Dan Bernstein <mitz@apple.com>
297 * platform/graphics/qt/FontCustomPlatformData.cpp:
298 (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
299 Calls QFontDatabase::removeApplicationFont().
300 * platform/graphics/qt/FontCustomPlatformData.h:
301 * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
302 (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
303 implementation because Qt does not use the WebCore glyph cache.
305 2008-01-07 Dan Bernstein <mitz@apple.com>
307 Reviewed by Oliver Hunt.
309 - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
310 Tiger and multiple SVG layout test failures on Leopard.
312 * css/CSSSegmentedFontFace.cpp:
313 (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
314 empty SegmentedFontData.
315 * platform/graphics/mac/FontCustomPlatformData.cpp:
316 (WebCore::createFontCustomPlatformData): Avoid creating a font that
317 contains no glyphs. On Leopard, ATS might create such a font given
318 data in an unsupported format (such as SVG).
320 2008-01-07 Steve Falkenburg <sfalken@apple.com>
324 * WebCore.vcproj/WebCore.sln:
325 * WebCore.vcproj/WebCore.submit.sln:
327 2008-01-07 Oliver Hunt <oliver@apple.com>
331 Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
333 Test: svg/custom/image-with-aspect-ratio-stretch.svg
335 * rendering/RenderSVGImage.cpp:
336 (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
338 2008-01-07 Dan Bernstein <mitz@apple.com>
342 * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
343 (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
345 2008-01-07 Adele Peterson <adele@apple.com>
349 * rendering/MediaControlElements.cpp:
351 2008-01-07 Jon Honeycutt <jhoneycutt@apple.com>
355 <rdar://problem/5673489> Safari does not render windowless plugins in an
356 iframe when opacity < 1.0
358 Plugins in transparency layers handle their own world transforms, so
359 only apply the horizontal/vertical transform if we are not in a
362 * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
363 inTransparencyLayer() function
364 * platform/win/GraphicsContextWin.cpp:
365 (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
366 (WebCore::GraphicsContext::inTransparencyLayer):
367 (WebCore::GraphicsContext::releaseWindowsContext): Use
368 inTransparencyLayer()
369 * plugins/win/PluginViewWin.cpp:
370 (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
371 relative to the window. Pass m_isTransparent to
372 get/releaseWindowsContext(). Only set the world transform if we are not
373 in a transparency layer.
375 2008-01-07 Adele Peterson <adele@apple.com>
377 Build fix. Need to wrap these classes in #if ENABLE(VIDEO)
379 * rendering/MediaControlElements.cpp:
380 * rendering/MediaControlElements.h:
382 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
386 Enable SVG_FONTS by default.
388 * Configurations/WebCore.xcconfig:
389 * WebCore.vcproj/build-generated-files.sh:
391 2008-01-07 Dan Bernstein <mitz@apple.com>
395 * platform/graphics/qt/SimpleFontDataQt.cpp:
396 (WebCore::SimpleFontData::SimpleFontData):
397 (WebCore::SimpleFontData::~SimpleFontData):
399 2008-01-07 Adam Barth <hk9565@gmail.com>
401 Reviewed by Sam Weinig
403 Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
404 <rdar://problem/5657447>
406 When a frame is created with the URL "about:blank" or "", it should
407 inherit its SecurityOrigin from its opener. However, once it has
408 decided on that SecurityOrigin, it should not change its mind.
409 Prior to this patch, several events could induce the frame to change
410 its SecurityOrigin, permitting an attacker to inject script into an
411 arbitrary SecurityOrigin.
413 This patch makes several changes:
415 1) Documents refuse to change from one SecurityOrigin to another
416 unless explicitly instructed to do so.
418 2) Navigating to a JavaScript URL that produces a value
419 preserves the current SecurityOrigin explicitly instead of
420 relying on the URL to preserve the origin (which fails for
421 about:blank URLs and SecurityOrigins with document.domain set).
423 Ideally, we should not preserve the URL at all. Instead, the
424 frame's URL should be the JavaScript URL, as in Firefox, but this
425 would require changes that are too risky for this patch. I'll
426 file this as a separate issue.
428 3) Various methods of navigating to JavaScript URLs were not
429 properly handling JavaScript that returned a value (and should
430 therefore replace the current document). This patch unifies
431 those code paths with the path that works.
433 There are still a handful of bugs relating to the handling of
434 JavaScript URLs, but I'll file those as separate issues.
436 Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
437 http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
438 http/tests/security/aboutBlank/xss-DENIED-set-opener.html
441 (WebCore::Document::initSecurityOrigin):
443 (WebCore::Document::setSecurityOrigin):
444 * loader/FrameLoader.cpp:
445 (WebCore::FrameLoader::changeLocation):
446 (WebCore::FrameLoader::urlSelected):
447 (WebCore::FrameLoader::requestFrame):
448 (WebCore::FrameLoader::submitForm):
449 (WebCore::FrameLoader::executeIfJavaScriptURL):
450 (WebCore::FrameLoader::begin):
451 * loader/FrameLoader.h:
452 * platform/SecurityOrigin.cpp:
453 (WebCore::SecurityOrigin::setForURL):
454 (WebCore::SecurityOrigin::createForFrame):
455 * platform/SecurityOrigin.h:
457 2008-01-07 Adele Peterson <adele@apple.com>
459 Forgot to check in these changes in my last checkin.
461 * rendering/RenderThemeSafari.cpp:
463 2008-01-07 Dan Bernstein <mitz@apple.com>
468 * platform/graphics/qt/FontCacheQt.cpp:
469 (WebCore::FontCache::getCachedFontData):
471 2008-01-07 Timothy Hatcher <timothy@apple.com>
473 Reviewed by John Sullivan.
475 <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
477 * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
478 normal height when not docked, and small when docked. Also added some cursor properties
479 prevent showing the text cursor over areas that are not selectable.
480 * page/inspector/Images: A few images added and old ones removed or renamed.
482 2008-01-07 Alp Toker <alp@atoker.com>
484 Prospective GTK+ autotools/qmake VIDEO build fix for breakage
485 introduced in r29257.
490 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
494 Build fix affecting all builds - again related to the unicode-range addition.
496 * css/CSSFontSelector.cpp:
497 (WebCore::CSSFontSelector::addFontFaceRule):
498 * css/SVGCSSFontFace.cpp:
499 (WebCore::SVGCSSFontFace::SVGCSSFontFace):
500 * css/SVGCSSFontFace.h:
501 * rendering/RenderSVGText.cpp:
503 (WebCore::svgFontAndFontFaceElementForFontData):
504 (WebCore::floatWidthMissingGlyphCallback):
505 (WebCore::drawTextMissingGlyphCallback):
506 * svg/SVGFontFaceElement.cpp:
508 2008-01-07 Adele Peterson <adele@apple.com>
510 Reviewed by Antti, Adam, and Mitz.
512 WebCore part of fix for
513 <rdar://problem/5619073> Updated look for <video> controls
514 <rdar://problem/5619057> Add volume control to video controls
516 * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
517 * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
518 * WebCore.vcproj/WebCore.vcproj: ditto.
520 * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
521 * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
522 * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
523 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
524 * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
525 * css/html4.css: Added new styles for new controls.
527 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
528 * html/HTMLMediaElement.h:
530 * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
532 * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
533 * platform/mac/WebCoreSystemInterface.mm: ditto.
535 * rendering/MediaControlElements.cpp: Added.
536 (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia. Made this relatively positioned, instead of absolute.
537 (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia. Removed call to updateFromElement,
538 since its too early to do this here, and causes crashes for the slider.
539 (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
540 (WebCore::MediaControlInputElement::update): ditto.
541 (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
542 (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
543 (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
544 (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
545 (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
546 (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
547 (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
548 (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
549 (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
550 (WebCore::MediaControlTimelineElement::update): ditto.
551 (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
552 (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
553 * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
554 (WebCore::MediaControlShadowRootElement::isShadowNode):
555 (WebCore::MediaControlShadowRootElement::shadowParentNode):
556 (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
557 (WebCore::RenderMediaControlShadowRoot::setParent):
559 * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
560 (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
561 (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
562 (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
563 (WebCore::RenderMedia::createMuteButton): Added.
564 (WebCore::RenderMedia::createSeekBackButton): ditto.
565 (WebCore::RenderMedia::createSeekForwardButton): ditto.
566 (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
567 (WebCore::RenderMedia::createFullscreenButton): Added.
568 (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
569 (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls.
570 (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
571 * rendering/RenderMedia.h: Added new methods for creating new controls.
573 * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements,
574 but also can contain children (the controls' container) that may need to look for the containing block.
576 * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
578 * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
580 (WebCore::RenderStyle::):
582 * rendering/RenderTheme.cpp:
583 (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
584 (WebCore::RenderTheme::paint): ditto.
585 * rendering/RenderTheme.h: Added new methods for painting new appearances.
586 (WebCore::RenderTheme::paintMediaBackground):
587 (WebCore::RenderTheme::paintMediaFullscreenButton):
588 (WebCore::RenderTheme::paintMediaPlayButton):
589 (WebCore::RenderTheme::paintMediaMuteButton):
590 (WebCore::RenderTheme::paintMediaSeekBackButton):
591 (WebCore::RenderTheme::paintMediaSeekForwardButton):
592 (WebCore::RenderTheme::paintMediaSliderThumb):
593 * rendering/RenderThemeMac.h:
594 * rendering/RenderThemeMac.mm:
595 (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
596 (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
597 (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
598 (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
599 (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
600 (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
601 (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
602 (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
603 (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
604 (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
605 (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
606 (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
607 * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
608 (WebCore::RenderThemeSafari::paintSliderTrack):
609 (WebCore::RenderThemeSafari::adjustSliderThumbSize):
610 (WebCore::RenderThemeSafari::paintMediaBackground):
611 (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
612 (WebCore::RenderThemeSafari::paintMediaMuteButton):
613 (WebCore::RenderThemeSafari::paintMediaPlayButton):
614 (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
615 (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
616 (WebCore::RenderThemeSafari::paintMediaSliderThumb):
617 * rendering/RenderThemeSafari.h:
619 2008-01-07 Timothy Hatcher <timothy@apple.com>
621 Reviewed by Darin Adler.
623 Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
624 when the replacment string is a different length.
626 * platform/text/StringImpl.cpp:
627 (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
628 the Vector size calculation, correcting the order of math operations.
630 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
632 Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
634 * platform/graphics/mac/FontCacheMac.mm:
636 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
638 Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
640 * css/CSSFontSelector.cpp:
641 (WebCore::CSSFontSelector::getFontData):
643 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
645 Not reviewed. Next try to fix wx/mac leopard build.
647 * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
648 * svg/SVGFontFaceElement.cpp:
649 (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
650 * webcore-base.bkl: Undo svg/ include.
652 2008-01-07 Dan Bernstein <mitz@apple.com>
654 Reviewed by Dave Hyatt.
656 - <rdar://problem/5665216> Support the unicode-range property in @font-face rules
660 * WebCore.vcproj/WebCore.vcproj:
661 * WebCore.xcodeproj/project.pbxproj:
662 * WebCoreSources.bkl:
663 * bindings/objc/DOM.mm:
664 * bridge/mac/WebCoreAXObject.mm:
665 * css/CSSComputedStyleDeclaration.cpp:
666 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
667 * css/CSSFontFace.cpp:
668 (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
670 (WebCore::CSSFontFace::getFontData):
672 (WebCore::CSSFontFace::CSSFontFace):
673 (WebCore::CSSFontFace::setSegmentedFontFace):
674 * css/CSSFontFaceSource.cpp:
675 (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
676 GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
677 font table are not exposed in the glyph page tree. Only the segmented
678 font is, and that is taken care of by the segmented font face.
679 (WebCore::CSSFontFaceSource::getFontData):
680 * css/CSSFontFaceSource.h:
681 * css/CSSFontSelector.cpp:
682 (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
683 @font-face rules with the same family and traits into a single
684 segmented font face, instead of just retaining the most recent one.
685 (WebCore::CSSFontSelector::fontLoaded):
686 (WebCore::CSSFontSelector::getFontData):
687 * css/CSSFontSelector.h:
690 (WebCore::CSSParser::parseValue):
691 (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
694 * css/CSSPrimitiveValue.h:
695 (WebCore::CSSPrimitiveValue::):
696 * css/CSSPropertyNames.in:
697 * css/CSSSegmentedFontFace.cpp: Added.
698 (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
699 (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
700 (WebCore::CSSSegmentedFontFace::pruneTable):
701 (WebCore::CSSSegmentedFontFace::isLoaded):
702 (WebCore::CSSSegmentedFontFace::isValid):
703 (WebCore::CSSSegmentedFontFace::fontLoaded):
704 (WebCore::CSSSegmentedFontFace::overlayRange):
705 (WebCore::CSSSegmentedFontFace::getFontData):
706 * css/CSSSegmentedFontFace.h: Added.
707 (WebCore::FontFaceRange::FontFaceRange):
708 (WebCore::FontFaceRange::from):
709 (WebCore::FontFaceRange::to):
710 (WebCore::FontFaceRange::fontFace):
711 (WebCore::CSSSegmentedFontFace::fontSelector):
712 * css/CSSStyleSelector.cpp:
713 (WebCore::CSSStyleSelector::applyProperty):
714 * css/CSSUnicodeRangeValue.cpp: Added.
715 (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
716 (WebCore::CSSUnicodeRangeValue::cssText):
717 * css/CSSUnicodeRangeValue.h: Added.
718 (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
719 (WebCore::CSSUnicodeRangeValue::from):
720 (WebCore::CSSUnicodeRangeValue::to):
721 * css/SVGCSSFontFace.cpp:
722 (WebCore::SVGCSSFontFace::getFontData):
723 * css/SVGCSSFontFace.h:
724 * editing/Editor.cpp:
725 (WebCore::Editor::fontForSelection):
727 * page/mac/FrameMac.mm:
728 * page/mac/WebCoreFrameBridge.mm:
729 (-[WebCoreFrameBridge fontForSelection:]):
730 * platform/graphics/Font.cpp:
731 (WebCore::WidthIterator::advance):
732 (WebCore::Font::glyphDataForCharacter):
733 (WebCore::Font::primaryFont): Changed to return the simple font data
734 used for the space character.
735 (WebCore::Font::fontDataAt):
736 (WebCore::Font::fontDataForCharacters):
737 (WebCore::Font::drawGlyphBuffer):
738 * platform/graphics/Font.h:
739 * platform/graphics/FontCache.cpp:
740 (WebCore::FontCache::getCachedFontData):
741 (WebCore::FontCache::getFontData):
742 * platform/graphics/FontCache.h:
743 * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
744 * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
745 * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
747 (WebCore::FontData::~FontData):
748 * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
750 * platform/graphics/FontFallbackList.cpp:
751 (WebCore::FontFallbackList::determinePitch):
752 (WebCore::FontFallbackList::fontDataAt):
753 (WebCore::FontFallbackList::fontDataForCharacters):
754 * platform/graphics/FontFallbackList.h:
755 (WebCore::FontFallbackList::primaryFont):
756 * platform/graphics/FontSelector.h:
757 * platform/graphics/GlyphBuffer.h:
758 (WebCore::GlyphBuffer::fontDataAt):
759 (WebCore::GlyphBuffer::swap):
760 (WebCore::GlyphBuffer::add):
761 * platform/graphics/GlyphPageTreeNode.cpp:
762 (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
763 (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
764 pages for segmented font data.
765 (WebCore::GlyphPageTreeNode::getChild):
766 (WebCore::GlyphPageTreeNode::pruneCustomFontData):
767 * platform/graphics/GlyphPageTreeNode.h:
768 (WebCore::GlyphPage::setGlyphDataForCharacter):
769 (WebCore::GlyphPage::setGlyphDataForIndex):
770 (WebCore::GlyphPageTreeNode::getRootChild):
771 * platform/graphics/SegmentedFontData.cpp: Added.
772 (WebCore::SegmentedFontData::~SegmentedFontData):
773 (WebCore::SegmentedFontData::fontDataForCharacter):
774 (WebCore::SegmentedFontData::containsCharacters):
775 (WebCore::SegmentedFontData::isCustomFont):
776 (WebCore::SegmentedFontData::isLoading):
777 (WebCore::SegmentedFontData::isSegmented):
778 * platform/graphics/SegmentedFontData.h: Added.
779 (WebCore::FontDataRange::FontDataRange):
780 (WebCore::FontDataRange::from):
781 (WebCore::FontDataRange::to):
782 (WebCore::FontDataRange::fontData):
783 (WebCore::SegmentedFontData::appendRange):
784 (WebCore::SegmentedFontData::numRanges):
785 (WebCore::SegmentedFontData::rangeAt):
786 * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
787 (WebCore::SimpleFontData::SimpleFontData):
788 (WebCore::SimpleFontData::~SimpleFontData):
789 (WebCore::SimpleFontData::ascent):
790 (WebCore::SimpleFontData::descent):
791 (WebCore::SimpleFontData::widthForGlyph):
792 (WebCore::SimpleFontData::fontDataForCharacter):
793 (WebCore::SimpleFontData::isSegmented):
794 * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
795 (WebCore::SimpleFontData::isCustomFont):
796 (WebCore::SimpleFontData::isLoading):
797 * platform/graphics/cairo/GraphicsContextCairo.cpp:
798 (WebCore::GraphicsContext::setPlatformFont):
799 * platform/graphics/gtk/FontCacheGtk.cpp:
800 (WebCore::FontCache::getFontDataForCharacters):
801 * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
802 SimpleFontDataGtk.cpp.
803 * platform/graphics/gtk/FontGtk.cpp:
804 (WebCore::Font::drawGlyphs):
805 * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
806 (WebCore::GlyphPage::fill):
807 * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
808 (WebCore::SimpleFontData::platformInit):
809 (WebCore::SimpleFontData::platformDestroy):
810 (WebCore::SimpleFontData::smallCapsFontData):
811 (WebCore::SimpleFontData::containsCharacters):
812 (WebCore::SimpleFontData::determinePitch):
813 (WebCore::SimpleFontData::platformWidthForGlyph):
814 (WebCore::SimpleFontData::setFont):
815 * platform/graphics/mac/FontCacheMac.mm:
816 (WebCore::FontCache::getFontDataForCharacters):
817 * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
818 * platform/graphics/mac/FontMac.mm:
819 (WebCore::initializeATSUStyle):
820 (WebCore::overrideLayoutOperation):
821 (WebCore::ATSULayoutParameters::initialize):
822 (WebCore::Font::drawGlyphs):
823 * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
824 (WebCore::GlyphPage::fill):
825 * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
826 (WebCore::initFontData):
827 (WebCore::SimpleFontData::platformInit):
828 (WebCore::SimpleFontData::platformDestroy):
829 (WebCore::SimpleFontData::smallCapsFontData):
830 (WebCore::SimpleFontData::containsCharacters):
831 (WebCore::SimpleFontData::determinePitch):
832 (WebCore::SimpleFontData::platformWidthForGlyph):
833 (WebCore::SimpleFontData::checkShapesArabic):
834 * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
835 * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
836 (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
837 * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
838 * platform/graphics/win/FontCacheWin.cpp:
839 (WebCore::FontCache::getFontDataForCharacters):
840 * platform/graphics/win/FontDataWin.cpp: Renamed to
841 SimpleFontDataWin.cpp.
842 * platform/graphics/win/FontWin.cpp:
843 (WebCore::Font::drawGlyphs):
844 * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
845 (WebCore::GlyphPage::fill):
846 * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
847 (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
848 (WebCore::SimpleFontData::platformInit):
849 (WebCore::SimpleFontData::platformDestroy):
850 (WebCore::SimpleFontData::smallCapsFontData):
851 (WebCore::SimpleFontData::containsCharacters):
852 (WebCore::SimpleFontData::determinePitch):
853 (WebCore::SimpleFontData::platformWidthForGlyph):
854 (WebCore::SimpleFontData::scriptFontProperties):
855 * platform/graphics/wx/FontCacheWx.cpp:
856 (WebCore::FontCache::getFontDataForCharacters):
857 * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
858 * platform/graphics/wx/FontWx.cpp:
859 (WebCore::Font::drawGlyphs):
860 * platform/graphics/wx/GlyphMapWx.cpp:
861 (WebCore::GlyphPage::fill):
862 * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
863 (WebCore::SimpleFontData::platformInit):
864 (WebCore::SimpleFontData::platformDestroy):
865 (WebCore::SimpleFontData::smallCapsFontData):
866 (WebCore::SimpleFontData::containsCharacters):
867 (WebCore::SimpleFontData::determinePitch):
868 (WebCore::SimpleFontData::platformWidthForGlyph):
869 * platform/mac/FileChooserMac.mm:
870 * platform/mac/PopupMenuMac.mm:
871 * platform/mac/WebCoreTextRenderer.mm:
872 * platform/win/PopupMenuWin.cpp:
873 * platform/win/UniscribeController.cpp:
874 (WebCore::UniscribeController::advance):
875 (WebCore::UniscribeController::itemizeShapeAndPlace):
876 (WebCore::UniscribeController::shapeAndPlaceItem):
877 (WebCore::UniscribeController::shape):
878 * platform/win/UniscribeController.h:
880 (WebCore::Font::drawGlyphsWithSVGFont):
881 * svg/SVGFontElement.cpp:
882 (WebCore::SVGFontElement::collectGlyphs):
883 * svg/SVGFontFaceElement.cpp:
884 (WebCore::SVGFontFaceElement::createFontData):
885 * svg/SVGFontFaceElement.h:
886 * svg/SVGGlyphElement.cpp:
888 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
890 Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
894 2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
896 Not reviewed. Proposed build fix for wx.
900 2008-01-07 Dan Bernstein <mitz@apple.com>
904 * platform/graphics/mac/FontCustomPlatformData.cpp:
905 (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
906 cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
908 2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
910 Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
911 Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
913 Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
914 measure & render glyphs contained in SVG Fonts, including ligature lookup support.
916 Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
918 Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
919 Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
921 Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
922 This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
923 required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
925 Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
927 <glyph> elements now register themselves in the SVGFontElement's glyph cache.
928 (insertedIntoDocument / removedFromDocument take care of this)
930 The cache is built once now, and is kept updated - it's not rebuild anymore
931 on painting (!) - which was a crude hack for testing.
933 W3C testcase which include SVG Fonts:
934 svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
935 svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
936 svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
937 svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
938 svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
939 svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
940 svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
941 svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
942 svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
943 svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
944 svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
945 svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
946 svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
947 svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
948 svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
949 svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
950 svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
951 svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
952 svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
953 svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
954 svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
955 svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
956 svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
958 Questionable testcases:
959 svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
960 I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
962 Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
964 * css/CSSFontSelector.cpp:
965 (WebCore::CSSFontSelector::addFontFaceRule):
966 (WebCore::CSSFontSelector::getFontData):
967 * platform/graphics/Font.cpp:
968 (WebCore::Font::lineSpacing):
969 (WebCore::Font::xHeight):
970 (WebCore::Font::canUseGlyphCache):
971 (WebCore::Font::drawGlyphBuffer):
972 (WebCore::Font::drawText):
973 (WebCore::Font::floatWidth):
974 (WebCore::Font::selectionRectForText):
975 * platform/graphics/Font.h:
976 (WebCore::TextRun::TextRun):
977 (WebCore::TextRun::activePaintServer):
978 (WebCore::TextRun::setActivePaintServer):
979 * platform/graphics/FontData.cpp:
980 (WebCore::FontData::lineSpacing):
981 (WebCore::FontData::lineGap):
982 (WebCore::FontData::xHeight):
983 * platform/graphics/FontData.h:
984 * platform/graphics/win/FontWin.cpp:
985 (WebCore::Font::drawGlyphs):
986 * rendering/RenderSVGText.cpp:
987 (WebCore::RenderSVGText::relativeBBox):
988 * rendering/SVGInlineTextBox.cpp:
989 (WebCore::SVGInlineTextBox::paintCharacters):
990 * rendering/SVGInlineTextBox.h:
991 * rendering/SVGRootInlineBox.cpp:
992 (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
995 (WebCore::processArabicFormDetection):
996 (WebCore::charactersWithArabicForm):
997 (WebCore::isCompatibleArabicForm):
998 (WebCore::isCompatibleGlyph):
999 (WebCore::svgFontAndFontFaceElementForFontData):
1000 (WebCore::SVGTextRunWalker::SVGTextRunWalker):
1001 (WebCore::SVGTextRunWalker::walk):
1002 (WebCore::floatWidthUsingSVGFontCallback):
1003 (WebCore::floatWidthMissingGlyphCallback):
1004 (WebCore::floatWidthOfSubStringUsingSVGFont):
1005 (WebCore::Font::floatWidthUsingSVGFont):
1006 (WebCore::drawTextUsingSVGFontCallback):
1007 (WebCore::drawTextMissingGlyphCallback):
1008 (WebCore::Font::drawTextUsingSVGFont):
1009 (WebCore::Font::selectionRectForTextUsingSVGFont):
1010 * svg/SVGFontElement.cpp:
1011 (WebCore::SVGFontElement::SVGFontElement):
1012 (WebCore::SVGFontElement::addGlyphToCache):
1013 (WebCore::SVGFontElement::removeGlyphFromCache):
1014 (WebCore::SVGFontElement::firstMissingGlyphElement):
1015 (WebCore::SVGFontElement::glyphIdentifiersForString):
1016 * svg/SVGFontElement.h:
1017 (WebCore::SVGFontElement::maximumHashKeyLength):
1018 * svg/SVGFontFaceElement.cpp:
1019 (WebCore::SVGFontFaceElement::createFontData):
1020 (WebCore::SVGFontFaceElement::rebuildFontFace):
1021 (WebCore::SVGFontFaceElement::associatedFontElement):
1022 * svg/SVGFontFaceElement.h:
1023 * svg/SVGGlyphElement.cpp:
1024 (WebCore::SVGGlyphElement::insertedIntoDocument):
1025 (WebCore::SVGGlyphElement::removedFromDocument):
1026 (WebCore::parseArabicForm):
1027 (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
1028 (WebCore::SVGGlyphElement::buildGlyphIdentifier):
1029 * svg/SVGGlyphElement.h:
1030 (WebCore::SVGGlyphIdentifier::):
1031 (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
1032 (WebCore::SVGGlyphIdentifier::inheritedValue):
1033 (WebCore::SVGGlyphIdentifier::operator==):
1034 (WebCore::SVGGlyphElement::~SVGGlyphElement):
1036 2008-01-07 David Hyatt <hyatt@apple.com>
1038 Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
1042 * rendering/RenderBox.h:
1043 * rendering/RenderTableCell.cpp:
1044 (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1046 2008-01-07 Holger Freyther <zecke@selfish.org>
1048 Reviewed by Alp Toker.
1052 * platform/gtk/ContextMenuGtk.cpp:
1053 (WebCore::ContextMenu::~ContextMenu):
1055 2008-01-07 Holger Freyther <zecke@selfish.org>
1057 Reviewed by Alp Toker.
1059 * The ContextMenuController is going to live longer than the ContextMenu. It is
1060 going to live as long as the WebCore::Page is around where the ContextMenu, specially
1061 in the case of a SubMenu, is gone before we popup the menu.
1063 * platform/gtk/ContextMenuGtk.cpp:
1064 (WebCore::menuItemActivated):
1065 (WebCore::ContextMenu::appendItem):
1067 2008-01-07 Holger Freyther <zecke@selfish.org>
1069 Reviewed by Alp Toker.
1071 * Fix SubMenu handling
1072 * Do not connect to the activated signal if we are a separator or submenu
1073 * Change our type from ActionType to SubMenuType when we have a submenu
1074 * Initialize the SubMenu
1076 * platform/gtk/ContextMenuGtk.cpp:
1077 (WebCore::ContextMenu::appendItem):
1078 * platform/gtk/ContextMenuItemGtk.cpp:
1079 (WebCore::ContextMenuItem::ContextMenuItem):
1080 (WebCore::ContextMenuItem::createNativeMenuItem):
1081 (WebCore::ContextMenuItem::setSubMenu):
1083 2008-01-07 Holger Freyther <zecke@selfish.org>
1085 Reviewed by Alp Toker.
1087 * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
1089 * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
1090 * Update the ContextMenuController to accept CheckableActionTypes as well.
1091 * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
1092 was extracted from ContextMenu::checkOrEnableIfNeeded.
1093 * Update the Qt and Windows port.
1096 * page/ContextMenuController.cpp:
1097 * platform/ContextMenu.cpp:
1098 (WebCore::createAndAppendFontSubMenu):
1099 (WebCore::createAndAppendSpellingAndGrammarSubMenu):
1100 (WebCore::createAndAppendSpellingSubMenu):
1101 (WebCore::createAndAppendWritingDirectionSubMenu):
1102 * platform/ContextMenuItem.h:
1103 * platform/gtk/ContextMenuItemGtk.cpp:
1104 (WebCore::ContextMenuItem::ContextMenuItem):
1105 (WebCore::ContextMenuItem::createNativeMenuItem):
1107 2008-01-07 Luca Bruno <lethalman88@gmail.com>
1109 Reviewed by Alp Toker.
1111 http://bugs.webkit.org/show_bug.cgi?id=16745
1112 [GTK] Context menu doesn't feel or look native - no icons
1114 Use GTK+ stock icons for menu items where possible.
1116 * platform/gtk/ContextMenuItemGtk.cpp:
1117 (WebCore::gtkStockIDFromContextMenuAction):
1118 (WebCore::ContextMenuItem::createNativeMenuItem):
1119 (WebCore::ContextMenuItem::setAction):
1121 2008-01-07 Dan Bernstein <mitz@apple.com>
1123 Reviewed by John Sullivan.
1125 - make the ATSUI code path work with custom fonts rather than crash
1127 * platform/graphics/mac/FontCustomPlatformData.cpp:
1128 (WebCore::FontCustomPlatformData::fontPlatformData):
1129 * platform/graphics/mac/FontMac.mm:
1130 (WebCore::initializeATSUStyle):
1132 2008-01-07 Thiago Macieira <thiago.macieira@trolltech.com>
1136 abort() now emits the signals, so disconnect them before you abort()
1138 * platform/network/qt/QNetworkReplyHandler.cpp:
1139 (WebCore::QNetworkReplyHandler::abort):
1141 2008-01-07 Simon Hausmann <hausmann@webkit.org>
1145 Use a faster and safer way of flattening the form data.
1147 * platform/network/qt/QNetworkReplyHandler.cpp:
1148 (WebCore::QNetworkReplyHandler::start):
1150 2008-01-07 Simon Hausmann <hausmann@webkit.org>
1154 Ported of the network backend of the Qt platform to Qt 4.4's new networking API.
1157 * platform/network/ResourceHandleInternal.h:
1158 * platform/network/qt/QNetworkReplyHandler.cpp: Added.
1159 (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
1160 (WebCore::QNetworkReplyHandler::abort):
1161 (WebCore::QNetworkReplyHandler::finish):
1162 (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
1163 (WebCore::QNetworkReplyHandler::forwardData):
1164 (WebCore::QNetworkReplyHandler::start):
1165 * platform/network/qt/QNetworkReplyHandler.h: Added.
1166 (WebCore::QNetworkReplyHandler::reply):
1167 * platform/network/qt/ResourceHandleQt.cpp:
1168 (WebCore::ResourceHandle::start):
1169 (WebCore::ResourceHandle::cancel):
1170 (WebCore::ResourceHandle::loadResourceSynchronously):
1171 * platform/network/qt/ResourceRequest.h:
1172 (WebCore::ResourceRequest::ResourceRequest):
1173 * platform/network/qt/ResourceRequestQt.cpp: Added.
1174 (WebCore::ResourceRequest::toNetworkRequest):
1175 * platform/qt/MIMETypeRegistryQt.cpp:
1176 (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
1177 * platform/qt/PlugInInfoStoreQt.cpp:
1178 (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
1179 (WebCore::PlugInInfoStore::pluginCount):
1180 (WebCore::PlugInInfoStore::pluginNameForMIMEType):
1182 2008-01-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
1186 * Remove m_dirtyRegion as it is not used as we pass every dirty region
1187 directly to the ChromeClient
1189 * platform/qt/ScrollViewQt.cpp:
1190 (WebCore::ScrollView::paint):
1192 2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
1196 Small CG paint server cleanups - use more GraphicsContext method where possible.
1198 * svg/graphics/cg/CgSupport.cpp:
1199 (WebCore::applyStrokeStyleToContext):
1200 (WebCore::strokeBoundingBox):
1201 * svg/graphics/cg/CgSupport.h:
1202 * svg/graphics/cg/RenderPathCg.cpp:
1203 (WebCore::RenderPath::strokeContains):
1204 * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
1205 (WebCore::SVGPaintServerGradient::setup):
1206 * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
1207 (WebCore::SVGPaintServerPattern::setup):
1208 * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
1209 (WebCore::SVGPaintServerSolid::setup):
1211 2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
1215 Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.
1217 * platform/graphics/mac/FontMac.mm:
1218 (WebCore::ATSULayoutParameters::initialize):
1220 2008-01-06 Andrew Wellington <proton@wiretapped.net>
1224 DOMRange doesn't correctly re-size when inserting items (Acid3)
1225 http://bugs.webkit.org/show_bug.cgi?id=16764
1227 Update the offset for the range when inserting items into the range.
1229 Test: fast/dom/Range/range-modifycontents.html
1232 (WebCore::Range::insertNode):
1234 2008-01-06 Alexey Proskuryakov <ap@webkit.org>
1238 http://bugs.webkit.org/show_bug.cgi?id=16731
1239 Incorrect node type for whitespace when setting innerHTML in an XHTML document
1241 Test: fast/dom/xhtml-fragment-whitespace.xhtml
1243 * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
1244 Use balancedCharactersHandler for ignorable whitespace.
1246 2008-01-06 Alexey Proskuryakov <ap@webkit.org>
1250 http://bugs.webkit.org/show_bug.cgi?id=16701
1251 <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
1252 causes page load error
1254 Test: http/tests/misc/location-with-space.php
1256 * platform/network/cf/ResourceRequestCFNet.cpp:
1257 (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
1259 2008-01-06 Andrew Wellington <proton@wiretapped.net>
1263 DOMRange.cloneContents does not work (Acid3 bug)
1264 http://bugs.webkit.org/show_bug.cgi?id=16748
1266 When cloning an empty range, return an empty DocmentFragment instead of
1269 Test: fast/dom/Range/range-clone-empty.html
1272 (WebCore::Range::processContents):
1274 2008-01-06 Luca Bruno <lethalman88@gmail.com>
1276 Reviewed by Alp Toker.
1278 Remove curl handles immediately if the timer is not running.
1280 * platform/network/curl/ResourceHandleManager.cpp:
1281 (WebCore::ResourceHandleManager::cancel):
1283 2008-01-06 Alp Toker <alp@atoker.com>
1287 Cairo canvas refcounting fix. Reference the surface in the constructor
1288 to match its destruction in the destructor.
1290 Fixes a crash triggered by leaving this page:
1291 http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
1293 * html/CanvasPattern.cpp:
1294 (WebCore::CanvasPattern::CanvasPattern):
1296 2008-01-06 Eric Seidel <eric@webkit.org>
1300 Make attr selectors case-insensitive for certain HTML attributes
1301 http://bugs.webkit.org/show_bug.cgi?id=15470
1303 Test: fast/css/html-attr-case-sensitivity.html
1305 * css/CSSStyleSelector.cpp:
1306 (WebCore::addLocalNameToSet):
1307 (WebCore::createHtmlCaseInsensitiveAttributesSet):
1308 (WebCore::htmlAttributeHasCaseInsensitiveValue):
1309 (WebCore::CSSStyleSelector::checkOneSelector):
1311 2008-01-06 Eric Seidel <eric@webkit.org>
1315 Fix :checked matching type='text' and add test case
1316 http://bugs.webkit.org/show_bug.cgi?id=16750
1318 Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
1320 * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
1322 2008-01-05 Sam Weinig <sam@webkit.org>
1324 Reviewed by Eric Seidel.
1326 Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
1327 ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
1329 - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
1331 Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
1333 * dom/TreeWalker.cpp:
1334 (WebCore::TreeWalker::parentNode):
1335 (WebCore::TreeWalker::firstChild):
1336 (WebCore::TreeWalker::lastChild):
1337 (WebCore::TreeWalker::previousSibling):
1338 (WebCore::TreeWalker::nextSibling):
1339 (WebCore::TreeWalker::previousNode):
1340 (WebCore::TreeWalker::nextNode):
1342 2008-01-04 Oliver Hunt <oliver@apple.com>
1344 Reviewed by Beth Dakin.
1346 Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
1347 and other image repaint bugs.
1349 We now cache the full local bounds for the <image> element, as otherwise certain
1350 combinations of attribute changes could result in incorrect dirty rects.
1351 Additionally we no longer use any of the integer bounds fields on RenderObject for
1352 determining repaint bounds (this was the principle cause of bug #16015).
1354 I also removed the outline painting code as it was both wrong, and not correctly
1355 repainted. I feel safe doing this as no other browser or viewer supports outline
1356 properties on svg elements.
1358 I was unable to make a testcase for this unfortunately, despite seemingly deterministic
1361 * rendering/RenderSVGImage.cpp:
1362 (WebCore::RenderSVGImage::layout):
1363 (WebCore::RenderSVGImage::paint):
1364 (WebCore::RenderSVGImage::nodeAtPoint):
1365 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
1366 * rendering/RenderSVGImage.h:
1368 2008-01-04 Beth Dakin <bdakin@apple.com>
1372 Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with
1373 type="hidden" matches :enabled/:disabled (Acid3 bug)
1375 Prevent :enabled and :disabled from applying to input type="hidden"
1377 * css/CSSStyleSelector.cpp:
1378 (WebCore::CSSStyleSelector::checkOneSelector): Rather than
1379 allowing :enabled and :disabled to apply to all controls, only
1380 allow it to apply to non-"hidden" controls
1382 (WebCore::Element::isInputTypeHidden):
1383 * html/HTMLInputElement.h:
1384 (WebCore::HTMLInputElement::isInputTypeHidden):
1386 2008-01-04 Sam Weinig <sam@webkit.org>
1388 Reviewed by Oliver Hunt.
1390 - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
1391 getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
1392 if the type of the CSSPrimitiveValue is not the same as the type requested.
1393 - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
1395 Test: fast/css/CSSPrimitiveValue-exceptions.html
1397 * css/CSSPrimitiveValue.cpp:
1398 (WebCore::CSSPrimitiveValue::getDoubleValue):
1399 (WebCore::CSSPrimitiveValue::getStringValue):
1400 (WebCore::CSSPrimitiveValue::getCounterValue):
1401 (WebCore::CSSPrimitiveValue::getRectValue):
1402 (WebCore::CSSPrimitiveValue::getRGBColorValue):
1403 (WebCore::CSSPrimitiveValue::getPairValue):
1404 * css/CSSPrimitiveValue.h:
1405 (WebCore::CSSPrimitiveValue::getFloatValue):
1406 (WebCore::CSSPrimitiveValue::getIntValue):
1407 (WebCore::CSSPrimitiveValue::getCounterValue):
1408 (WebCore::CSSPrimitiveValue::getRectValue):
1409 (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
1410 * css/CSSPrimitiveValue.idl:
1412 2008-01-04 Antti Koivisto <antti@apple.com>
1416 Windows part of <rdar://problem/5647034>
1417 Media tests crash if an old version of QuickTime is installed
1419 Check QuickTime version on Windows too.
1421 * platform/graphics/MediaPlayer.cpp:
1422 (WebCore::MediaPlayer::isAvailable):
1423 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1424 (WebCore::MediaPlayerPrivate::isAvailable):
1425 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1426 (WebCore::MediaPlayerPrivate::isAvailable):
1427 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
1428 * platform/graphics/win/QTMovieWin.cpp:
1429 (QTMovieWin::initializeQuickTime):
1431 2008-01-04 Darin Adler <darin@apple.com>
1433 Reviewed by Maciej and Alice.
1435 - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
1437 Test: fast/images/border.html
1439 * html/HTMLImageElement.cpp:
1440 (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
1441 where the border value is not a number to use the value "0" for the border width instead
1442 of not setting the border width and style at all. This matches other browsers, and makes
1445 2008-01-04 Antti Koivisto <antti@apple.com>
1447 Try to fix 64-bit build
1449 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1450 (WebCore::MediaPlayerPrivate::isAvailable):
1452 2008-01-04 Stephanie <slewis@apple.com>
1456 WARNING: NO TEST CASES ADDED OR CHANGED
1458 Fix another stringImpl leak.
1460 * platform/text/StringImpl.cpp: remove an extra allocation
1461 (WebCore::StringImpl::StringImpl):
1463 2008-01-04 Alice Liu <alice.liu@apple.com>
1467 * platform/graphics/win/FontCacheWin.cpp:
1468 fix loop condition that was causing crash
1470 2008-01-04 Timothy Hatcher <timothy@apple.com>
1472 Reviewed by Adam Roben.
1474 <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
1476 * page/inspector/inspector.css: Remove styles related to the toggle button
1477 and make the area always visible.
1478 * page/inspector/inspector.html: Remove the toggle button.
1479 * page/inspector/inspector.js: Remove code to toggle the status area.
1481 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
1483 Reviewed by Adam Roben.
1485 Temporarily restore BackwardDelete for Windows nightlies to work correctly.
1487 * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
1489 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
1493 <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
1495 Enable the fix on Windows.
1497 * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
1498 Always set a custom sort function, even if it doesn't implement proper collation on the platform.
1500 * xml/XSLTUnicodeSort.cpp:
1501 (WebCore::xsltUnicodeSortFunction):
1502 * xml/XSLTUnicodeSort.h:
1503 If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
1505 2008-01-04 Antti Koivisto <antti@apple.com>
1509 * bindings/js/JSHTMLElementWrapperFactory.cpp:
1511 2008-01-04 Antti Koivisto <antti@apple.com>
1515 Partial fix for <rdar://problem/5647034>
1516 Media tests crash if an old version of QuickTime is installed
1518 Disable media support if QuickTime is not current enough (>=7.3).
1520 Windows patch coming soon.
1522 * bindings/js/JSHTMLElementWrapperFactory.cpp:
1523 (WebCore::createJSHTMLWrapper):
1524 * bindings/js/kjs_window.cpp:
1525 (KJS::Window::getValueProperty):
1526 * html/HTMLElementFactory.cpp:
1527 (WebCore::audioConstructor):
1528 (WebCore::videoConstructor):
1529 (WebCore::sourceConstructor):
1530 * platform/graphics/MediaPlayer.cpp:
1531 (WebCore::MediaPlayer::isAvailable):
1532 * platform/graphics/MediaPlayer.h:
1533 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1534 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1535 (WebCore::MediaPlayerPrivate::isAvailable):
1537 2008-01-04 Timothy Hatcher <timothy@apple.com>
1539 Reviewed by Darin Adler.
1541 <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
1543 Check if the property is a getter before asking for the value.
1544 If the property is a getter, we no longer show the value.
1546 * page/inspector/PropertiesSidebarPane.js:
1547 * page/inspector/inspector.css:
1549 2008-01-04 Dan Bernstein <mitz@apple.com>
1551 Reviewed by Darin Adler.
1553 - fix synthetic bold and italic on Windows
1555 Covered by an existing test.
1557 * platform/graphics/win/FontPlatformDataWin.cpp:
1558 (WebCore::FontPlatformData::FontPlatformData):
1560 2008-01-04 Alp Toker <alp@atoker.com>
1562 GTK+ autotools build fix. Terminate empty rules.
1566 2008-01-04 Lars Knoll <lars@trolltech.com>
1570 Remove most dependencies of Widget/ScrollView onto native QWidgets.
1572 This also brings the code closer in line with the Windows code. Seems
1573 to work nicely on first try :)
1575 * page/qt/FrameQt.cpp:
1576 (WebCore::Frame::createScriptInstanceForWidget):
1577 * platform/Widget.h:
1578 * platform/qt/PlatformScreenQt.cpp:
1579 (WebCore::screenDepth):
1580 (WebCore::screenDepthPerComponent):
1581 (WebCore::screenIsMonochrome):
1582 (WebCore::screenRect):
1583 * platform/qt/PlatformScrollBarQt.cpp:
1584 (WebCore::PlatformScrollbar::thumbPosition):
1585 (WebCore::PlatformScrollbar::handleMouseMoveEvent):
1586 * platform/qt/ScrollViewQt.cpp:
1587 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1588 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
1589 (WebCore::ScrollView::updateContents):
1590 (WebCore::ScrollView::update):
1591 (WebCore::ScrollView::scrollRectIntoViewRecursively):
1592 (WebCore::ScrollView::updateScrollbars):
1593 (WebCore::ScrollView::addChild):
1594 (WebCore::ScrollView::removeChild):
1595 (WebCore::ScrollView::paint):
1596 * platform/qt/WidgetQt.cpp:
1597 (WebCore::WidgetPrivate::WidgetPrivate):
1598 (WebCore::WidgetPrivate::~WidgetPrivate):
1599 (WebCore::Widget::frameGeometry):
1600 (WebCore::Widget::setFrameGeometry):
1601 (WebCore::Widget::setCursor):
1602 (WebCore::Widget::show):
1603 (WebCore::Widget::hide):
1604 (WebCore::Widget::nativeWidget):
1605 (WebCore::Widget::setNativeWidget):
1606 (WebCore::Widget::suppressInvalidation):
1607 (WebCore::Widget::setSuppressInvalidation):
1608 (WebCore::Widget::invalidateRect):
1609 (WebCore::Widget::topLevel):
1610 (WebCore::Widget::containingWindow):
1612 2008-01-04 Lars Knoll <lars@trolltech.com>
1616 make QWebPage a QObject and get things to compile.
1618 Nothing works currently though.
1620 * platform/qt/ScrollViewQt.cpp:
1621 (WebCore::ScrollView::updateContents):
1622 (WebCore::ScrollView::update):
1623 * platform/qt/WidgetQt.cpp:
1624 (WebCore::Widget::qwidget):
1625 (WebCore::Widget::invalidateRect):
1627 2008-01-04 Alp Toker <alp@atoker.com>
1629 Reviewed by Mark Rowe.
1631 http://bugs.webkit.org/show_bug.cgi?id=16667
1632 make -j is failing with the autotools based system
1634 Support parallel code generation. Nearly every use of explicit
1635 multiple targets was a potential concurrency bug, though in practice
1636 the bison rules were the first to be noticed because they took longer
1637 to complete and broke the build immediately.
1641 2008-01-04 Alp Toker <alp@atoker.com>
1643 Reviewed by Mark Rowe.
1645 Re-use a single static dummy surface rather than creating and
1646 destroying a surface for each CairoPath.
1648 * platform/graphics/cairo/CairoPath.h:
1649 (WebCore::CairoPath::CairoPath):
1651 2008-01-04 Mark Rowe <mrowe@apple.com>
1655 * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
1657 2008-01-03 Mark Rowe <mrowe@apple.com>
1659 Reviewed by Maciej Stachowiak.
1661 Use platform-provided atomic operations in place of inline assembly to
1662 increase portability.
1664 * platform/Threading.h:
1665 (WebCore::atomicIncrement):
1666 (WebCore::atomicDecrement):
1668 2008-01-03 Oliver Hunt <oliver@apple.com>
1672 Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
1674 We need to cache the absolute bounds of the <image>,
1675 as there's no reliable way to recompute the old bounding
1676 box one we have started layout.
1678 * rendering/RenderSVGImage.cpp:
1679 (WebCore::RenderSVGImage::layout):
1680 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
1681 * rendering/RenderSVGImage.h:
1683 2008-01-03 Alp Toker <alp@atoker.com>
1685 Reviewed by Mark Rowe.
1687 Support building in Scratchbox, which has a version of make that fails
1688 on wildcard syntax. Use a vpath to match IDL files instead.
1692 2008-01-03 Jon Honeycutt <jhoneycutt@apple.com>
1696 <rdar://problem/5504775> PDF page will not load first time after Adobe
1697 Reader install, unless browser is relaunched
1699 Refresh and re-search the plugin database if the MIME type is not
1702 * plugins/win/PluginDatabaseWin.cpp:
1703 (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
1704 * plugins/win/PluginDatabaseWin.h:
1706 2008-01-03 Dan Bernstein <mitz@apple.com>
1708 Reviewed by Darin Adler.
1710 - fix http://bugs.webkit.org/show_bug.cgi?id=16548
1711 <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
1713 * platform/graphics/win/FontCacheWin.cpp:
1714 (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
1715 a valid LOGFONT for a given family.
1716 (WebCore::getLinkedFonts): Added. Returns a vector of font families
1717 linked to the given font family by the Windows registry key
1718 HKLM\Software\...\FontLink\SystemLink. The registry values typically
1719 differ based on the installed language version of Windows.
1720 (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
1721 font mapping, which is Windows code page based, except for characters in
1722 the range U+2000..U+200F. Instead, this function gets the font Uniscribe
1723 would use for the character. However, that font might not actually
1724 contain the character, in which case GDI font linking would substitute a
1725 different font. Therefore, this function walks the linked font list
1726 until it finds a font that actually contains the character.
1728 2008-01-03 Darin Adler <darin@apple.com>
1732 - fix http://bugs.webkit.org/show_bug.cgi?id=16723
1733 tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
1735 Test: fast/table/border-changes.html
1737 * html/HTMLTableElement.h:
1738 * html/HTMLTableElement.cpp:
1739 (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
1740 parsing attributes, rather than doing this only for the rules attribute.
1741 (WebCore::HTMLTableElement::cellBorders): Added.
1742 (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
1743 rule about what type of borders to use.
1745 2008-01-02 Sam Weinig <sam@webkit.org>
1749 Pass the prototype of WebCore JS objects up the constructor chain
1750 rather than explicitly setting using setPrototype. This removes many
1751 redundant settings of the prototype on construction. To avoid a CG
1752 hazard, the prototype must be constructed before calling the
1753 constructor of the JS object.
1755 - JS objects that inherit from DOMObject, which all bindings objects
1756 (except Window) do, now can't implicitly have a jsNull prototype, but
1757 must explicitly pass it up the construction chain.
1759 * bindings/js/JSCSSRuleCustom.cpp:
1761 * bindings/js/JSCSSValueCustom.cpp:
1763 * bindings/js/JSDocumentCustom.cpp:
1765 * bindings/js/JSEventCustom.cpp:
1767 * bindings/js/JSEventTargetNode.cpp:
1768 (WebCore::JSEventTargetNode::JSEventTargetNode):
1769 * bindings/js/JSEventTargetNode.h:
1770 * bindings/js/JSHTMLAllCollection.h:
1771 (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
1772 * bindings/js/JSHTMLAudioElementConstructor.cpp:
1773 (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
1774 * bindings/js/JSHTMLCollectionCustom.cpp:
1775 (WebCore::getNamedItems):
1777 * bindings/js/JSHTMLElementWrapperFactory.cpp:
1778 (WebCore::createJSHTMLWrapper):
1779 * bindings/js/JSHTMLFormElementCustom.cpp:
1780 (WebCore::JSHTMLFormElement::nameGetter):
1781 * bindings/js/JSHTMLInputElementBase.cpp:
1782 (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
1783 * bindings/js/JSHTMLInputElementBase.h:
1784 * bindings/js/JSHTMLOptionElementConstructor.cpp:
1785 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1786 * bindings/js/JSLocation.cpp:
1787 (WebCore::JSLocation::JSLocation):
1788 * bindings/js/JSLocation.h:
1789 * bindings/js/JSNamedNodesCollection.cpp:
1790 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
1791 * bindings/js/JSNamedNodesCollection.h:
1792 * bindings/js/JSNodeCustom.cpp:
1794 * bindings/js/JSSVGElementWrapperFactory.cpp:
1795 (WebCore::createJSSVGWrapper):
1796 * bindings/js/JSSVGPathSegCustom.cpp:
1798 * bindings/js/JSStyleSheetCustom.cpp:
1800 * bindings/js/JSXMLHttpRequest.cpp:
1801 (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
1802 (KJS::JSXMLHttpRequestConstructorImp::construct):
1803 (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
1804 * bindings/js/JSXMLHttpRequest.h:
1805 * bindings/js/JSXSLTProcessor.cpp:
1806 (KJS::JSXSLTProcessor::JSXSLTProcessor):
1807 (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
1808 (KJS::XSLTProcessorConstructorImp::implementsConstruct):
1809 (KJS::XSLTProcessorConstructorImp::construct):
1810 * bindings/js/JSXSLTProcessor.h:
1811 * bindings/js/kjs_binding.h:
1812 (KJS::DOMObject::DOMObject):
1813 (KJS::cacheDOMObject):
1814 (KJS::cacheSVGDOMObject):
1815 * bindings/js/kjs_css.cpp:
1816 (WebCore::JSRGBColor::JSRGBColor):
1817 (WebCore::getJSRGBColor):
1818 * bindings/js/kjs_css.h:
1819 * bindings/js/kjs_events.cpp:
1820 (WebCore::JSClipboard::JSClipboard):
1822 * bindings/js/kjs_events.h:
1823 * bindings/js/kjs_html.cpp:
1824 (WebCore::ImageConstructorImp::ImageConstructorImp):
1825 * bindings/js/kjs_navigator.cpp:
1826 (KJS::Navigator::Navigator):
1827 (KJS::PluginBase::PluginBase):
1828 * bindings/js/kjs_navigator.h:
1829 * bindings/js/kjs_window.cpp:
1830 (KJS::Window::Window):
1831 (KJS::Window::location):
1832 (KJS::Window::getValueProperty):
1833 * bindings/js/kjs_window.h:
1834 * bindings/scripts/CodeGeneratorJS.pm:
1836 2008-01-03 Holger Hans Peter Freyther <zecke@selfish.org>
1840 -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
1842 Change the Gtk ContextMenuItem code to generate the GtkMenuItem
1843 or GtkCheckMenuItem on the fly. Currently we will create a
1844 GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
1845 to be done is to change WebCore to tell the platform code if an item
1846 is checkable or not.
1848 * platform/ContextMenuItem.h:
1849 (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
1850 * platform/gtk/ContextMenuGtk.cpp:
1851 (WebCore::ContextMenu::appendItem):
1852 * platform/gtk/ContextMenuItemGtk.cpp:
1853 (WebCore::ContextMenuItem::ContextMenuItem):
1854 (WebCore::ContextMenuItem::~ContextMenuItem):
1855 (WebCore::ContextMenuItem::createNativeMenuItem):
1856 (WebCore::ContextMenuItem::releasePlatformDescription):
1857 (WebCore::ContextMenuItem::type):
1858 (WebCore::ContextMenuItem::setType):
1859 (WebCore::ContextMenuItem::action):
1860 (WebCore::ContextMenuItem::setAction):
1861 (WebCore::ContextMenuItem::platformSubMenu):
1862 (WebCore::ContextMenuItem::setSubMenu):
1863 (WebCore::ContextMenuItem::setChecked):
1865 2008-01-03 Dan Bernstein <mitz@apple.com>
1867 Rubber-stamped by Adam Roben.
1869 - update the project hierarchy to match the on-disk organization of
1870 the platform directory.
1872 * WebCore.vcproj/WebCore.vcproj:
1874 2008-01-03 Adam Roben <aroben@apple.com>
1876 Fix a buffer overrun and a leak introduced in r29098
1880 * platform/text/StringImpl.cpp:
1881 (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
1882 it be big enough to hold the string contents plus the null terminator.
1884 2008-01-03 Simon Hausmann <hausmann@webkit.org>
1888 Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
1892 2008-01-03 Alp Toker <alp@atoker.com>
1894 Suggested by Mark Rowe.
1896 Fix indentation and remove trailing whitespace.
1898 * platform/network/curl/ResourceHandleManager.cpp:
1900 2008-01-03 Luca Bruno <lethalman88@gmail.com>
1902 Reviewed by Alp Toker.
1904 Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
1905 that the two POST methods don't conflict.
1907 * platform/network/curl/ResourceHandleManager.cpp:
1908 (WebCore::ResourceHandleManager::setupPOST):
1910 2008-01-02 Darin Adler <darin@apple.com>
1912 - touched some files to try to get the Windows buildbot building again
1914 2008-01-02 Dan Bernstein <mitz@apple.com>
1916 Reviewed by Sam Weinig.
1918 - fix small caps rendering
1920 Covered by an existing test.
1922 * platform/graphics/win/FontDataWin.cpp:
1923 (WebCore::FontData::smallCapsFontData):
1925 2008-01-02 Antti Koivisto <antti@apple.com>
1929 Calculate video position and size within the renderer box in WebCore. This
1930 way the aspect ratio calculation is not needed in each MediaPlayer implementation.
1932 This fixes video aspect ratio on Windows.
1934 Covered by an existing pixel test.
1936 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1937 (WebCore::MediaPlayerPrivate::createQTMovieView):
1938 * rendering/RenderVideo.cpp:
1939 (WebCore::RenderVideo::videoBox):
1940 (WebCore::RenderVideo::paintReplaced):
1941 (WebCore::RenderVideo::updatePlayer):
1942 * rendering/RenderVideo.h:
1944 2008-01-02 Ada Chan <adachan@apple.com>
1948 * WebCore.vcproj/WebCore.vcproj:
1950 2008-01-02 John Sullivan <sullivan@apple.com>
1952 Reviewed by Dan Bernstein
1954 - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
1956 * loader/DocumentLoader.cpp:
1957 (WebCore::canonicalizedTitle):
1958 in the code that replaces control characters with white space, also replace the unicode line separator
1959 and paragraph separator characters
1961 2008-01-02 Darin Adler <darin@apple.com>
1963 - fix buffer overruns seen on buildbot
1965 * platform/text/StringImpl.cpp:
1966 (WebCore::countCharacter): Added this.
1967 (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
1968 (WebCore::StringImpl::toLengthArray): Ditto.
1969 (WebCore::StringImpl::replace): Added assertions.
1971 2008-01-02 Darin Adler <darin@apple.com>
1975 - fix http://bugs.webkit.org/show_bug.cgi?id=16657
1976 Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
1977 - fix http://bugs.webkit.org/show_bug.cgi?id=16659
1978 Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
1980 Tests: dom/html/level2/html/HTMLCollection07.html
1981 dom/html/level2/html/HTMLCollection08.html
1982 dom/html/level2/xhtml/HTMLCollection07.xhtml
1983 dom/html/level2/xhtml/HTMLCollection08.xhtml
1984 fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
1985 fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
1987 * GNUmakefile.am: Added HTMLTableRowsCollection.
1988 * WebCore.pro: Ditto.
1989 * WebCore.vcproj/WebCore.vcproj: Ditto.
1990 * WebCore.xcodeproj/project.pbxproj: Ditto.
1991 * WebCoreSources.bkl: Ditto.
1993 * dom/XMLTokenizer.cpp: Took out stray include.
1995 * html/HTMLCollection.cpp:
1996 (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
1997 a separate class for that collection. Also got rid of the distinct types for custom collections
1998 that don't need them (use Other for both).
1999 * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
2001 * html/HTMLFormCollection.cpp:
2002 (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
2003 for the HTMLCollection type.
2005 * html/HTMLTableElement.cpp:
2006 (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
2007 (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
2008 keeping a pointer to it.
2009 (WebCore::HTMLTableElement::setCaption): Rewrote.
2010 (WebCore::HTMLTableElement::tHead): Ditto.
2011 (WebCore::HTMLTableElement::setTHead): Ditto.
2012 (WebCore::HTMLTableElement::tFoot): Ditto.
2013 (WebCore::HTMLTableElement::setTFoot): Ditto.
2014 (WebCore::HTMLTableElement::createTHead): Ditto.
2015 (WebCore::HTMLTableElement::deleteTHead): Ditto.
2016 (WebCore::HTMLTableElement::createTFoot): Ditto.
2017 (WebCore::HTMLTableElement::deleteTFoot): Ditto.
2018 (WebCore::HTMLTableElement::createCaption): Ditto.
2019 (WebCore::HTMLTableElement::deleteCaption): Ditto.
2020 (WebCore::HTMLTableElement::lastBody): Added.
2021 (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
2022 This is different from the old code mainly in how it handles rows outside any section.
2023 (WebCore::HTMLTableElement::deleteRow): Ditto.
2024 (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
2025 these was a possible source of serious bugs too, including crashes with stale pointers, although I
2026 didn't write any test cases to prove those bugs existed.
2027 (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
2028 just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
2029 visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
2030 (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
2031 * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
2032 things like DOM mutation events take things ot of the tree before they are safely referenced by
2033 JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
2034 firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
2035 Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
2036 unneeded friend declaration for HTMLTableCellElement.
2037 * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
2039 * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
2040 collection in which order.
2041 * html/HTMLTableRowsCollection.h: Added.
2043 * loader/FTPDirectoryDocument.cpp:
2044 (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
2045 coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
2046 create a tbody element.
2048 2008-01-02 Darin Adler <darin@apple.com>
2050 Reviewed by Alice and Tim.
2052 - try to fix GTK and Qt builds
2054 * platform/win/ScrollViewWin.cpp:
2055 (WebCore::ScrollView::scroll): Improve logic slightly for the case of
2056 vertical scrolling when there's no vertical scroll bar.
2058 * platform/gtk/ScrollViewGtk.cpp:
2059 (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
2060 should be factored differently.
2061 * platform/qt/ScrollViewQt.cpp:
2062 (WebCore::ScrollView::scroll): Ditto.
2064 2008-01-02 Darin Adler <darin@apple.com>
2068 - http://bugs.webkit.org/show_bug.cgi?id=16712
2069 change StringImpl to take and return PassRefPtr instead of raw pointers
2071 Also eliminated use of const StringImpl. Since StringImpl is immutable there
2072 is no distinction between a const and non-const one at the moment.
2074 * WebCore.base.exp: Updated.
2076 * css/CSSHelper.cpp:
2077 (WebCore::parseURL): Make String directly, not by making a StringImpl.
2079 (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
2081 (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
2082 to a function that takes a String.
2084 * dom/CDATASection.cpp: Removed unused constructor.
2085 (WebCore::CDATASection::cloneNode): Added a now-needed .get().
2086 (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
2087 * dom/CDATASection.h:
2089 * dom/CharacterData.cpp:
2090 (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
2091 ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
2092 (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
2094 (WebCore::CharacterData::setData): More of that.
2095 (WebCore::CharacterData::substringData): Ditto.
2096 (WebCore::CharacterData::appendData): Ditto.
2097 (WebCore::CharacterData::insertData): Ditto.
2098 (WebCore::CharacterData::deleteData): Ditto.
2099 (WebCore::CharacterData::replaceData): Ditto.
2100 (WebCore::CharacterData::nodeValue): Ditto.
2101 (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
2102 (WebCore::CharacterData::dump): Ditto.
2103 * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
2104 instead, but since String adds extra branches to handle 0, I figured it was
2105 more conservative to just use RefPtr. Later it would be good to figure out
2106 which is preferred style and be more consistent. Maybe we'll phase out
2107 StringImpl, or maybe we'll go the other way and use it more since it can be
2110 * dom/DOMImplementation.cpp:
2111 (WebCore::addString): Changed set to use String rather than StringImpl.
2112 (WebCore::isSVG10Feature): Ditto.
2113 (WebCore::isSVG11Feature): Ditto.
2114 (WebCore::DOMImplementation::createDocument): Replaced custom code to
2115 find a colon with a call to String::find.
2118 (WebCore::Range::insertNode): Updated since the result of splitText is now
2122 (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
2123 result of this function be a PassRefPtr.
2124 (WebCore::Text::createRenderer): Ditto.
2125 (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
2128 * html/HTMLElement.cpp:
2129 (WebCore::HTMLElement::nodeName): Use String::upper.
2131 * html/HTMLInputElement.cpp:
2132 (WebCore::numGraphemeClusters): Remove now-unneeded const.
2133 (WebCore::numCharactersInGraphemeClusters): Ditto.
2135 * html/HTMLTokenizer.cpp:
2136 (WebCore::HTMLTokenizer::processToken): Updated for function name change.
2138 * platform/text/AtomicString.cpp:
2139 (WebCore::CStringTranslator::translate): Updated since there is no longer
2140 a constructor that takes a string.
2142 * platform/text/PlatformString.h: Added new constructors that take
2143 PassRefPtr and RefPtr. Removed misleading comment.
2145 * platform/text/String.cpp:
2146 (WebCore::String::String): Changed to use StringImpl::create, which handles
2147 the empty string automatically.
2148 (WebCore::String::append): Ditto.
2149 (WebCore::String::charactersWithNullTermination): Similar.
2150 (WebCore::String::format): Ditto.
2152 * platform/text/StringHash.h: Took out unneeded const.
2154 * platform/text/StringImpl.cpp:
2155 (WebCore::deleteUCharVector): Changed to take a const pointer since the
2156 buffers are now const UChar buffers.
2157 (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
2158 separate init functions. The constructors are now private and used only in
2159 the create functions and one or two other places.
2160 (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
2161 (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
2163 (WebCore::StringImpl::characterStartingAt): Ditto.
2164 (WebCore::StringImpl::toLength): Ditto.
2165 (WebCore::StringImpl::toCoordsArray): Ditto.
2166 (WebCore::StringImpl::toLengthArray): Ditto.
2167 (WebCore::StringImpl::isLower): Ditto.
2168 (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
2169 don't have to use new directly here. Makes empty string handling more consistent.
2170 (WebCore::StringImpl::upper): Ditto.
2171 (WebCore::StringImpl::secure): Ditto.
2172 (WebCore::StringImpl::foldCase): Ditto.
2173 (WebCore::StringImpl::stripWhiteSpace): Ditto.
2174 (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
2175 (WebCore::StringImpl::capitalize): Ditto.
2176 (WebCore::StringImpl::toInt): Removed now-meaningless const.
2177 (WebCore::StringImpl::toInt64): Ditto.
2178 (WebCore::StringImpl::toUInt64): Ditto.
2179 (WebCore::StringImpl::toDouble): Ditto.
2180 (WebCore::StringImpl::toFloat): Ditto.
2181 (WebCore::StringImpl::find): Ditto.
2182 (WebCore::StringImpl::reverseFind): Ditto.
2183 (WebCore::StringImpl::endsWith): Ditto.
2184 (WebCore::StringImpl::replace): Ditto.
2185 (WebCore::equal): Ditto.
2186 (WebCore::equalIgnoringCase): Ditto.
2187 (WebCore::StringImpl::ascii): Ditto.
2188 (WebCore::StringImpl::defaultWritingDirection): Ditto.
2189 (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
2190 (WebCore::StringImpl::adopt): Added special case so this uses the shared
2191 empty string like other functions. Also optimized the common case where the
2192 vector happens to already have the right size so we don't do a fastRealloc
2193 at all in those cases.
2194 (WebCore::StringImpl::create): Added. These are now the public functions for
2195 creating new StringImpl objects. They all implement the shared empty string.
2196 (WebCore::StringImpl::createWithTerminatingNullCharacter):
2197 * platform/text/StringImpl.h:
2199 * platform/text/cf/StringCF.cpp:
2200 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
2201 * platform/text/cf/StringImplCF.cpp:
2202 (WebCore::StringImpl::createCFString): Removed now-obsolete const.
2203 * platform/text/mac/StringImplMac.mm:
2204 (WebCore::StringImpl::operator NSString *): Ditto.
2205 * platform/text/mac/StringMac.mm:
2206 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
2207 * platform/text/qt/StringQt.cpp:
2208 (WebCore::String::String): Ditto.
2209 * platform/text/wx/StringWx.cpp:
2210 (WebCore::String::String): Ditto.
2211 * rendering/RenderBR.cpp:
2212 (WebCore::RenderBR::RenderBR): Ditto.
2214 * rendering/RenderSVGInlineText.cpp:
2215 (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
2216 * rendering/RenderSVGInlineText.h:
2218 * rendering/RenderText.cpp:
2219 (WebCore::charactersAreAllASCII): Removed now-unneeded const.
2220 * rendering/RenderTextFragment.cpp:
2221 (WebCore::RenderTextFragment::originalText): Use RefPtr.
2223 2008-01-02 Timothy Hatcher <timothy@apple.com>
2225 Reviewed by Oliver Hunt.
2227 <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
2229 Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
2230 internal element lookup tables. The represented DOM node object still holds the identifier
2231 it was assigned, and a later call to findTreeElement will use that original identifier
2232 against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
2234 * page/inspector/treeoutline.js:
2235 (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
2236 but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
2237 instead of an early return.
2239 2008-01-02 Alice Liu <alice.liu@apple.com>
2243 Fixed <rdar://5283861> (problems scrolling in gmail message content area)
2245 * platform/ScrollView.h:
2246 * platform/win/ScrollViewWin.cpp:
2247 (WebCore::ScrollView::scroll):
2248 Changed return value to bool to reflect success of scroll attempt
2250 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
2252 Fixed a typo (pointed out in review, but I somehow missed it at first).
2254 * editing/EditorCommand.cpp: (WebCore::executeDelete):
2256 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
2260 Resolved several FIXMEs in EditorCommand.
2261 Made recently added commands hidden from JS again.
2262 Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
2264 Tests: editing/execCommand/delete-no-scroll.html
2265 editing/execCommand/forward-delete-no-scroll.html
2266 editing/execCommand/insert-line-break-no-scroll.html
2268 * editing/EditorCommand.cpp:
2269 (WebCore::executeDelete):
2270 (WebCore::executeForwardDelete):
2271 (WebCore::executeInsertLineBreak):
2272 (WebCore::supportedFromMenuOrKeyBinding):
2273 (WebCore::CommandEntry::):
2275 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
2279 http://bugs.webkit.org/show_bug.cgi?id=14555
2280 action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
2282 http://bugs.webkit.org/show_bug.cgi?id=14774
2283 Submitted data only includes first input item
2285 Reworked encoding of mailto URLs to match other browsers.
2286 Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
2288 Tests: fast/forms/mailto/advanced-get.html
2289 fast/forms/mailto/advanced-put.html
2290 fast/forms/mailto/get-multiple-items-text-plain.html
2291 fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
2292 fast/forms/mailto/get-multiple-items.html
2293 fast/forms/mailto/get-non-ascii.html
2294 fast/forms/mailto/get-non-ascii-text-plain.html
2295 fast/forms/mailto/get-overwrite-query.html
2296 fast/forms/mailto/post-append-query.html
2297 fast/forms/mailto/post-multiple-items-multipart-form-data.html
2298 fast/forms/mailto/post-multiple-items-text-plain.html
2299 fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
2300 fast/forms/mailto/post-multiple-items.html
2302 * html/HTMLFormElement.cpp:
2303 (WebCore::HTMLFormElement::submit):
2304 * loader/FrameLoader.cpp:
2305 (WebCore::FrameLoader::submitForm):
2307 2008-01-02 Mark Rowe <mrowe@apple.com>
2309 Autotools build fix.
2311 * GNUmakefile.am: Remove files before generating them, not after.
2313 2008-01-02 Mark Rowe <mrowe@apple.com>
2315 Rubber-stamped by Alp Toker.
2317 Add missing dependencies to some GNUmakefile.am rules.
2321 2008-01-02 Mark Rowe <mrowe@apple.com>
2323 Reviewed by Alp Toker.
2325 Autotools build fix. Make can expand $@ to any of the targets for the rule,
2326 while we always want to use the name of the .cpp file as the output file.
2330 2008-01-02 Luca Bruno <lethalman88@gmail.com>
2332 Reviewed by Alp Toker.
2334 http://bugs.webkit.org/show_bug.cgi?id=16115
2335 [GTK] ContextMenu and ContextMenuItem lacks an implementation
2337 Add context menu support.
2339 Based on a patch by Holger Freyther.
2341 * platform/gtk/ContextMenuGtk.cpp:
2342 (WebCore::menuItemActivated):
2343 (WebCore::ContextMenu::ContextMenu):
2344 (WebCore::ContextMenu::~ContextMenu):
2345 (WebCore::ContextMenu::appendItem):
2346 (WebCore::ContextMenu::setPlatformDescription):
2347 (WebCore::ContextMenu::releasePlatformDescription):
2348 * platform/gtk/ContextMenuItemGtk.cpp:
2349 (WebCore::ContextMenuItem::ContextMenuItem):
2350 (WebCore::ContextMenuItem::~ContextMenuItem):
2351 (WebCore::ContextMenuItem::releasePlatformDescription):
2352 (WebCore::ContextMenuItem::type):
2353 (WebCore::ContextMenuItem::action):
2354 (WebCore::ContextMenuItem::setAction):
2355 (WebCore::ContextMenuItem::platformSubMenu):
2356 (WebCore::ContextMenuItem::setSubMenu):
2357 (WebCore::ContextMenuItem::setChecked):
2358 (WebCore::ContextMenuItem::setEnabled):
2360 2008-01-02 Alp Toker <alp@atoker.com>
2362 GTK+ autotools build fix. Track changes in r29073.
2366 2008-01-01 Darin Adler <darin@apple.com>
2370 * bindings/js/kjs_binding.cpp:
2371 (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
2372 Removed default so we get a warning if there's a missing case.
2374 2008-01-01 David D. Kilzer <ddkilzer@webkit.org>
2376 Scripting MIME Types application/ecmascript, application/javascript not viewable
2377 <http://bugs.webkit.org/show_bug.cgi?id=11063>
2381 This patch consolidates the list of acceptable MIME types for JavaScript
2382 source into the MIMETypeRegistry class, and replaces checks for these
2383 types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
2385 No tests added since viewing JavaScript source is not testable.
2387 * dom/DOMImplementation.cpp:
2388 (WebCore::DOMImplementation::isTextMIMEType): Use
2389 MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
2390 hard-coded MIME type, "application/x-javascript".
2392 * html/HTMLScriptElement.cpp:
2393 (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
2394 JavaScript MIME types from here to
2395 MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
2397 * platform/MIMETypeRegistry.cpp:
2398 (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
2399 MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
2400 (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
2401 hard-coded MIME type, "application/x-javascript", from the list.
2402 (WebCore::initialiseMIMETypeRegistry): Initialise
2403 supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
2404 with values in supportedJavaScriptMIMETypes.
2405 (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
2407 * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
2409 2008-01-01 Sam Weinig <sam@webkit.org>
2413 Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
2414 Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
2416 - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
2417 - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
2418 - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
2420 Tests: fast/dom/DOMException/EventException.html
2421 fast/dom/DOMException/RangeException.html
2422 fast/dom/DOMException/XPathException.html
2423 http/tests/xmlhttprequest/XMLHttpRequestException.html
2424 svg/custom/SVGException.html
2426 * DerivedSources.make:
2428 * WebCore.vcproj/WebCore.vcproj:
2429 * WebCore.xcodeproj/project.pbxproj:
2430 * WebCoreSources.bkl:
2431 * bindings/js/JSSVGMatrixCustom.cpp:
2432 (WebCore::JSSVGMatrix::inverse):
2433 (WebCore::JSSVGMatrix::rotateFromVector):
2434 * bindings/js/kjs_binding.cpp:
2435 (KJS::setDOMException):
2436 * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
2437 in the IDL as the ObjC bindings do.
2438 * bindings/scripts/CodeGeneratorObjC.pm:
2439 * dom/DOMCoreException.cpp: Removed.
2440 * dom/DOMCoreException.h:
2441 (WebCore::DOMCoreException::DOMCoreException):
2442 * dom/DOMCoreException.idl:
2444 * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
2445 (WebCore::EventException::EventException):
2446 (WebCore::EventException::):
2447 * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2448 * dom/EventTargetNode.cpp:
2449 (WebCore::EventTargetNode::dispatchEvent):
2450 * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
2451 (WebCore::ExceptionBase::ExceptionBase):
2452 (WebCore::ExceptionBase::toString):
2453 * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
2454 (WebCore::ExceptionBase::code):
2455 * dom/ExceptionCode.cpp:
2456 (WebCore::getExceptionCodeDescription):
2457 * dom/ExceptionCode.h:
2460 (WebCore::Range::insertNode):
2461 (WebCore::Range::checkNodeWOffset):
2462 (WebCore::Range::checkNodeBA):
2463 (WebCore::Range::selectNode):
2464 (WebCore::Range::selectNodeContents):
2465 (WebCore::Range::surroundContents):
2466 * dom/RangeException.h:
2467 (WebCore::RangeException::RangeException):
2468 (WebCore::RangeException::):
2469 * dom/RangeException.idl:
2470 * page/DOMWindow.idl:
2472 (WebCore::SVGColor::setRGBColor):
2473 * svg/SVGException.h:
2474 (WebCore::SVGException::SVGException):
2475 (WebCore::SVGException::):
2476 * svg/SVGException.idl:
2477 * svg/SVGLocatable.cpp:
2478 (WebCore::SVGLocatable::getTransformToElement):
2479 * xml/XMLHttpRequest.cpp:
2480 (WebCore::XMLHttpRequest::dispatchEvent):
2481 (WebCore::XMLHttpRequest::open):
2482 (WebCore::XMLHttpRequest::send):
2483 * xml/XMLHttpRequest.h:
2484 * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
2485 (WebCore::XMLHttpRequestException::XMLHttpRequestException):
2486 (WebCore::XMLHttpRequestException::):
2487 * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2488 * xml/XPathEvaluator.h:
2489 * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
2490 (WebCore::XPathException::XPathException):
2491 (WebCore::XPathException::):
2492 * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2493 * xml/XPathParser.cpp:
2494 (WebCore::XPath::Parser::parseStatement):
2495 * xml/XPathResult.cpp:
2496 (WebCore::XPathResult::convertTo):
2497 (WebCore::XPathResult::numberValue):
2498 (WebCore::XPathResult::stringValue):
2499 (WebCore::XPathResult::booleanValue):
2500 (WebCore::XPathResult::singleNodeValue):
2501 (WebCore::XPathResult::snapshotLength):
2502 (WebCore::XPathResult::iterateNext):
2503 (WebCore::XPathResult::snapshotItem):
2505 2008-01-01 Sam Weinig <sam@webkit.org>
2507 Remove JSDomExceptionConstructor.lut.h from clean step
2508 as it no longer exists.
2512 2008-01-01 Dan Bernstein <mitz@apple.com>
2516 * WebCore.vcproj/WebCore.vcproj:
2518 2008-01-01 Sam Weinig <sam@webkit.org>
2520 Try again to fix the builds
2522 * DerivedSources.make:
2524 2008-01-01 Sam Weinig <sam@webkit.org>
2529 * WebCore.vcproj/WebCore.vcproj:
2530 * WebCoreSources.bkl:
2532 2008-01-01 Eric Seidel <eric@webkit.org>
2536 Don't replace \ with / in data: urls
2537 http://bugs.webkit.org/show_bug.cgi?id=16692
2539 Test: fast/loader/url-data-replace-backslash.html
2541 * platform/KURL.cpp:
2542 (WebCore::KURL::init):
2544 2008-01-01 Alp Toker <alp@atoker.com>
2546 GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
2547 correct parameter to AM_INIT_AUTOMAKE.
2551 2007-12-31 Sam Weinig <sam@webkit.org>
2555 Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
2556 Acid3 expects ExeceptionCode constants to be defined on DOMException objects
2558 - Make DOMException a real JS object.
2560 Test: fast/dom/DOMException/prototype-object.html
2562 * DerivedSources.make:
2563 * WebCore.xcodeproj/project.pbxproj:
2565 This is no longer needed as the autogenerated classes now includes the
2567 * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
2568 * bindings/js/JSDOMExceptionConstructor.h: Removed.
2570 Create on demand and use the new class for DOMExceptions.
2571 * bindings/js/kjs_binding.cpp:
2572 (KJS::setDOMException):
2574 Remove no longer needed custom constructor getter.
2575 * bindings/js/kjs_window.cpp:
2576 (KJS::Window::getValueProperty):
2578 Don't expose DOMCoreException as the name of class by special casing
2579 the user visible class name to be DOMException.
2580 * bindings/scripts/CodeGeneratorJS.pm:
2582 The DOMException class/file needs to be named DOMCoreException because there is
2583 name conflict with one of the Objective-C bindings classes. It should be renamed
2584 to DOMException when the Objective-C bindings are moved into WebKit.
2585 * dom/DOMCoreException.cpp: Added.
2586 (WebCore::DOMCoreException::DOMCoreException):
2587 (WebCore::DOMCoreException::toString):
2588 * dom/DOMCoreException.h: Added.
2589 (WebCore::DOMCoreException::):
2590 (WebCore::DOMCoreException::code):
2591 (WebCore::DOMCoreException::name):
2592 (WebCore::DOMCoreException::message):
2593 * dom/DOMCoreException.idl: Added.
2594 * page/DOMWindow.idl:
2596 2007-12-31 Sam Weinig <sam@webkit.org>
2598 Re-enable querySelector and querySelectorAll and touch the necessary files to not
2599 kill the windows build.
2601 * WebCore.vcproj/build-generated-files.sh:
2602 * bindings/scripts/CodeGeneratorCOM.pm:
2606 2007-12-31 Darin Adler <darin@apple.com>
2610 * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
2611 up as pure virtual functions. Sam can fix this later.
2612 * dom/Element.idl: Ditto.
2614 2007-12-31 Dan Bernstein <mitz@apple.com>
2616 Reviewed by Darin Adler.
2618 - fix http://bugs.webkit.org/show_bug.cgi?id=14134
2619 <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
2621 Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
2624 (WebCore::Node::attach): Added code to check if this node's renderer
2625 has become the "previous renderer" of any sibling text node, and if so,
2626 ensure that that node gets a renderer if it now needs one.
2627 (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
2628 node is not attached.
2630 2007-12-31 Darin Adler <darin@apple.com>
2634 - fix http://bugs.webkit.org/show_bug.cgi?id=16641
2635 Acid3 reveals HTMLFormElement.elements fails to update when element name changes
2637 Test: fast/dom/HTMLFormElement/elements-not-in-document.html
2639 This was a bug specific to forms that are not in the document tree.
2640 The fix was to change the code to increment the document version number to match
2641 up with other document change tracking. Maybe at some point we can clean these up
2642 so we don't have so many competing change notification systems.
2644 * dom/ContainerNode.cpp:
2645 (WebCore::ContainerNode::replaceChild): Removed bogus comment.
2646 (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
2647 call here, since this code path bypasses the subtree-modified event code.
2650 (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
2651 collections are for things in the document.
2652 (WebCore::Element::setAttributeMap): Ditto.
2654 * dom/EventTargetNode.cpp:
2655 (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
2656 incDOMTreeVersion here; covers most cases of tree structure changes.
2659 (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
2660 has nothing to do with changes to the DOM tree!
2661 (WebCore::Node::detach): Ditto.
2663 * html/HTMLFormElement.cpp:
2664 (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
2665 This is handled at a lower level and doesn't need to be here.
2666 (WebCore::HTMLFormElement::removeFormElement): Ditto.
2668 2007-12-31 Henry Mason <hmason@mac.com>
2672 Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
2673 Support for MessageEvent and cross-domain messaging
2675 Test: http/tests/messaging/cross-domain-message-send.html
2677 * DerivedSources.make:
2679 * WebCore.vcproj/WebCore.vcproj:
2680 * WebCore.xcodeproj/project.pbxproj:
2681 * WebCoreSources.bkl:
2682 * bindings/js/JSDOMWindowCustom.cpp:
2683 (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
2684 postMessage function.
2685 (WebCore::JSDOMWindow::postMessage):
2686 * bindings/js/JSEventCustom.cpp:
2689 (WebCore::Event::isMessageEvent):
2691 * dom/EventNames.h: New event name
2692 * dom/MessageEvent.cpp: Added.
2693 * dom/MessageEvent.h: Added.
2694 * dom/MessageEvent.idl: Added.
2695 * page/DOMWindow.cpp:
2696 (WebCore::DOMWindow::postMessage): Added.
2698 * page/DOMWindow.idl:
2700 2007-12-31 Darin Adler <darin@apple.com>
2704 - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
2706 * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
2707 * WebCore.vcproj/build-generated-files.sh: Ditto.
2709 2007-12-30 Alp Toker <alp@atoker.com>
2711 Reviewed by Dan Bernstein.
2717 2007-12-30 Sam Weinig <sam@webkit.org>
2719 Reviewed by Oliver Hunt.
2721 Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
2722 Variable names can be enumerated across domains
2723 <rdar://problem/5640454>
2725 Test: http/tests/security/cross-frame-access-enumeration.html
2727 * bindings/js/kjs_window.cpp:
2728 (KJS::Window::getPropertyNames): Override method to test same-origin policy.
2729 * bindings/js/kjs_window.h:
2731 2007-12-30 Sam Weinig <sam@webkit.org>
2733 Reviewed by Oliver Hunt.
2735 Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
2736 event instanceof MouseEvent throws exception
2738 Add JS constructors for all the Event types.
2740 Test: fast/events/event-instanceof.html
2742 * WebCore.xcodeproj/project.pbxproj:
2743 * dom/KeyboardEvent.idl:
2744 * dom/MouseEvent.idl:
2745 * dom/MutationEvent.idl:
2746 * dom/OverflowEvent.idl:
2747 * dom/ProgressEvent.idl:
2748 * dom/TextEvent.idl:
2750 * dom/WheelEvent.idl:
2751 * page/DOMWindow.idl:
2753 2007-12-30 David Kilzer <ddkilzer@webkit.org>
2757 - fix http://bugs.webkit.org/show_bug.cgi?id=15359
2758 JPEG image not shown when height is specified as percentage inside a table
2760 The problem occurs when a replaced element (image, canvas, etc.) with
2761 a percent-height attribute is contained by a table cell with an auto-
2762 or percent-height attribute. If there are no other conditions to cause
2763 the table cell's height to expand, an available height of zero will
2764 always be returned. In these cases, the intrinsic height of the
2765 replaced element should be used if it is greater than the available
2766 height of the table cell.
2768 Tests: fast/replaced/table-percent-height.html
2769 tables/mozilla/bugs/bug137388-1.html
2770 tables/mozilla/bugs/bug137388-2.html
2772 * rendering/RenderBox.cpp:
2773 (WebCore::RenderBox::calcReplacedHeightUsing):
2775 2007-12-30 Luca Bruno <lethalman88@gmail.com>
2777 Reviewed by Alp Toker.
2779 http://bugs.webkit.org/show_bug.cgi?id=16099
2780 Crash in CURL for empty POST
2782 We have to set POST even when the data is empty, otherwise cURL will
2783 hang while waiting for a response.
2785 * platform/network/curl/ResourceHandleManager.cpp
2786 (ResourceHandleManager::setupPOST): allow empty POST
2788 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
2790 Reviewed by Alp Toker.
2792 Move all SVG related stuff inside SVG block. Don't include
2793 SVGNames, SVGElementFactory, and XLinkNames when SVG is not
2798 2007-12-29 Alexey Proskuryakov <ap@webkit.org>
2802 http://bugs.webkit.org/show_bug.cgi?id=14428
2803 FCKEditor: Images disappear on drag/drop and copy/paste
2805 Test: editing/pasteboard/drag-image-in-about-blank-frame.html
2807 * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
2808 base URL, just like we don't use an empty one.
2810 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
2812 Reviewed by Alp Toker.
2814 http://bugs.webkit.org/show_bug.cgi?id=16669
2815 autotools update and fixes
2817 Autotools update and database/icon database inclusion guard fixes
2820 - Update autotools config as per -r29012 changes
2821 - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
2823 * loader/icon/IconDatabase.h:
2824 * page/DOMWindow.cpp:
2825 * page/InspectorController.cpp:
2826 * page/Settings.cpp:
2827 * storage/Database.h:
2828 - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
2830 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2834 Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
2835 (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
2838 (WebCore::Font::drawGlyphsWithSVGFont):
2840 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2844 Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
2845 SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
2847 * platform/graphics/FontData.cpp:
2848 (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
2849 (WebCore::FontData::ascent):
2850 (WebCore::FontData::descent):
2851 * platform/graphics/FontData.h:
2853 (WebCore::isVerticalWritingMode): Add helper function.
2854 (WebCore::Font::drawGlyphsWithSVGFont):
2855 * svg/SVGFontElement.cpp:
2856 (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
2857 * svg/SVGGlyphElement.cpp:
2858 (WebCore::parseArabicForm): Helper function.
2859 (WebCore::parseOrientation): Ditto.
2860 (WebCore::parsePathData): Ditto.
2861 (WebCore::SVGGlyphElement::buildGlyphIdentifier):
2862 * svg/SVGGlyphElement.h:
2863 (WebCore::SVGGlyphElement::rendererIsNeeded):
2865 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2869 Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
2870 SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
2872 * svg/SVGAnimationElement.cpp:
2873 (WebCore::SVGAnimationElement::parseMappedAttribute):
2874 * svg/SVGParserUtilities.cpp:
2875 (WebCore::parseDelimitedString):
2876 * svg/SVGParserUtilities.h:
2878 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2882 Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
2883 Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
2885 To optimize for the common case ('FontData' used for HTML rendering) it feels
2886 better to hold one OwnPtr in FontData, than several floats.
2888 Parse all <font> attributes in SVGFontFaceElement::createFontData.
2890 * platform/graphics/FontData.cpp:
2891 (WebCore::SVGFontData::SVGFontData):
2892 (WebCore::FontData::FontData):
2893 (WebCore::FontData::ascent):
2894 (WebCore::FontData::descent):
2895 * platform/graphics/FontData.h:
2896 (WebCore::FontData::isSVGFont):
2897 (WebCore::FontData::svgFontData):
2899 (WebCore::Font::drawGlyphsWithSVGFont):
2900 * svg/SVGFontElement.cpp:
2901 * svg/SVGFontElement.h:
2902 (WebCore::SVGFontElement::rendererIsNeeded):
2903 * svg/SVGFontFaceElement.cpp:
2904 (WebCore::SVGFontFaceElement::unitsPerEm):
2905 (WebCore::SVGFontFaceElement::createFontData):
2907 2007-12-28 Darin Adler <darin@apple.com>
2909 - try to fix Windows and WX builds (broken by SVG Fonts check-in)
2911 * platform/graphics/win/FontWin.cpp:
2912 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
2913 I can't see how it can be right to require the font size for ascent and descent,
2914 but not for other metrics functions in FontData.
2916 * platform/graphics/wx/FontWx.cpp:
2917 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
2919 2007-12-28 Dan Bernstein <mitz@apple.com>
2921 Reviewed by Mark Rowe.
2923 - fix http://bugs.webkit.org/show_bug.cgi?id=16650
2924 <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
2926 Covered by existing pixel tests.
2928 * platform/graphics/mac/FontMac.mm:
2929 (WebCore::Font::drawComplexText): Corrected to maintain the style
2930 information in the adjusted text run when passing it to
2931 ATSUILayoutParameters. Prior to r28298 the style was passed separately.
2933 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2935 Build fix, not reviewed.
2937 Add wtf/OwnPtr.h include, to fix --svg-fonts build.
2939 * css/SVGCSSFontFace.h:
2941 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
2945 Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
2947 Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
2948 Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
2949 are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
2951 Limited to single char <-> glyph mapping, no ligatures supported yet.
2952 (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
2954 Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
2956 No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
2957 attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
2959 * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
2960 * WebCore.pro: Updated build system.
2961 * WebCore.vcproj/WebCore.vcproj: Ditto.
2962 * WebCore.xcodeproj/project.pbxproj: Ditto.
2963 * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
2964 * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
2965 (WebCore::createElementClassMap):
2966 * bindings/objc/DOMInternal.h: Ditto.
2967 * bindings/objc/DOMSVG.h: Ditto.
2968 * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
2969 * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
2970 (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
2971 (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
2972 (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
2973 * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
2974 (WebCore::CSSFontSelector::addFontFaceRule):
2975 * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
2976 (WebCore::SVGCSSFontFace::SVGCSSFontFace):
2977 (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
2978 (WebCore::SVGCSSFontFace::isValid):
2979 (WebCore::SVGCSSFontFace::addSource):
2980 (WebCore::SVGCSSFontFace::getFontData):
2981 * css/SVGCSSFontFace.h: Added.
2982 * platform/graphics/cg/PathCG.cpp:
2983 (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
2984 * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
2985 (WebCore::Font::ascent): Pass font size to FontData::ascent() call
2986 (WebCore::Font::descent): Pass font size to FontData::descent() call
2987 (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
2988 (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
2989 * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
2990 (WebCore::TextRun::TextRun):
2991 (WebCore::TextRun::referencingRenderObject):
2992 (WebCore::TextRun::setReferencingRenderObject):
2993 * platform/graphics/FontData.cpp:
2994 (WebCore::FontData::FontData):
2995 (WebCore::FontData::ascent):
2996 (WebCore::FontData::descent):
2997 * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
2998 (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
2999 (WebCore::FontData::svgFontFace):
3000 * rendering/SVGInlineTextBox.cpp:
3001 (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
3002 * rendering/SVGRootInlineBox.cpp:
3003 (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
3004 * svg/SVGFont.cpp: Added.
3005 (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
3006 * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
3007 (WebCore::SVGFontElement::SVGFontElement):
3008 (WebCore::SVGFontElement::~SVGFontElement):
3009 (WebCore::SVGFontElement::parseMappedAttribute):
3010 (WebCore::SVGFontElement::collectGlyphs):
3011 (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
3012 * svg/SVGFontElement.h: Added.
3013 (WebCore::GlyphHash::hash):
3014 (WebCore::GlyphHash::equal):
3015 (WebCore::GlyphHashTraits::deletedValue):
3016 (WebCore::SVGFontElement::rendererIsNeeded):
3017 (WebCore::SVGFontElement::contextElement):
3018 * svg/SVGFontElement.idl: Added.
3019 * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
3020 (WebCore::SVGFontFaceElement::unitsPerEm):
3021 (WebCore::SVGFontFaceElement::fontFamily):
3022 (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
3023 (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
3024 (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
3025 (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
3026 * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
3027 * svg/SVGFontFaceElement.idl: Ditto.
3028 * svg/SVGFontFaceFormatElement.cpp: Ditto.
3029 * svg/SVGFontFaceFormatElement.h: Ditto.
3030 * svg/SVGFontFaceFormatElement.idl: Ditto.
3031 * svg/SVGFontFaceNameElement.cpp: Ditto.
3032 * svg/SVGFontFaceNameElement.h: Ditto.
3033 * svg/SVGFontFaceNameElement.idl: Ditto.
3034 * svg/SVGFontFaceSrcElement.cpp: Ditto.
3035 * svg/SVGFontFaceSrcElement.h: Ditto.
3036 * svg/SVGFontFaceSrcElement.idl: Ditto.
3037 * svg/SVGFontFaceUriElement.cpp: Ditto.
3038 * svg/SVGFontFaceUriElement.h: Ditto.
3039 * svg/SVGFontFaceUriElement.idl: Ditto.
3040 * svg/SVGDefinitionSrcElement.cpp: Ditto.
3041 * svg/SVGDefinitionSrcElement.h: Ditto.
3042 * svg/SVGDefinitionSrcElement.idl: Ditto.
3043 * svg/SVGGlyphElement.cpp: Added.
3044 (WebCore::SVGGlyphElement::SVGGlyphElement):
3045 (WebCore::SVGGlyphElement::parseMappedAttribute):
3046 (WebCore::SVGGlyphElement::childrenChanged):
3047 * svg/SVGGlyphElement.h: Added.
3048 (WebCore::SVGGlyphElement::rendererIsNeeded):
3049 (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
3050 (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
3051 * svg/SVGGlyphElement.idl: Added.
3052 * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
3053 (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
3054 (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
3055 (WebCore::SVGMissingGlyphElement::childrenChanged):
3056 * svg/SVGMissingGlyphElement.h: Added.
3057 (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
3058 * svg/SVGMissingGlyphElement.idl: Added.
3059 * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
3061 2007-12-27 Dan Bernstein <mitz@apple.com>
3063 Reviewed by Alexey Proskuryakov.
3065 - fix http://bugs.webkit.org/show_bug.cgi?id=16628
3066 ASSERTION FAILED: m_resizeLayer (running layout tests)
3068 * rendering/RenderLayer.cpp:
3069 (WebCore::RenderLayer::~RenderLayer): Avoid calling
3070 EventHandler::resizeLayerDestroyed() if the document is being destroyed.
3072 2007-12-27 Dan Bernstein <mitz@apple.com>
3074 Reviewed by Oliver Hunt.
3076 - fix http://bugs.webkit.org/show_bug.cgi?id=16603
3077 <rdar://problem/5664199> Crash when resizing text field
3079 Test: fast/layers/resize-layer-deletion-crash.html
3081 The event handler has only a weak reference to the layer that is
3082 currently in resize mode, so it is the layer's responsibility to let
3083 the event handler know if it has been destroyed while in that mode.
3085 * page/EventHandler.cpp:
3086 (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
3088 * page/EventHandler.h:
3089 * rendering/RenderLayer.cpp:
3090 (WebCore::RenderLayer::~RenderLayer): Added a call to
3091 EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
3093 2007-12-27 Collin Jackson <webkit@collinjackson.com>
3095 Reviewed by Sam Weinig.
3097 http://bugs.webkit.org/show_bug.cgi?id=16539
3098 <rdar://problem/5659269>
3100 The same-origin check was missing in the implementation of
3101 setTimeout, setInterval, addEventListener, and removeEventListener.
3103 Suppose <http://www.badguy.com/> contains an iframe to
3104 <http://www.goodguy.com/>. Now www.badguy.com can steal
3105 www.goodguy.com cookies by running this code:
3107 setTimeout.call(frames[0], "alert(document.cookie)", 1000);
3109 This patch changes the behavior so that setTimeout to does
3110 nothing and returns an undefined value if the caller is not
3111 permitted to script the window whose setTimeout method is being
3112 called. The same applies to setInterval, addEventListener, and
3113 removeEventListener.
3115 Tests: http/tests/security/cross-frame-access-call.html
3117 * bindings/js/kjs_window.cpp:
3118 (KJS::WindowProtoFuncSetTimeout::callAsFunction)
3119 (KJS::WindowProtoFuncSetInterval::callAsFunction)
3120 (KJS::WindowProtoFuncAddEventListener::callAsFunction)
3121 (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
3123 2007-12-27 Dan Bernstein <mitz@apple.com>
3125 Reviewed by Dave Hyatt and Sam Weinig.
3127 - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
3129 Test: fast/layers/add-layer-with-nested-stacking.html
3130 Test: fast/layers/remove-layer-with-nested-stacking.html
3132 * rendering/RenderLayer.cpp:
3133 (WebCore::RenderLayer::addChild): If the new child is overflow-only
3134 but has children of its own, dirty the stacking context's z-order lists
3135 since the grandchildren might need to be in them.
3136 (WebCore::RenderLayer::removeChild): Similarly for the old child.
3138 2007-12-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
3140 Reviewed by Alp Toker.
3142 http://bugs.webkit.org/show_bug.cgi?id=16353
3143 [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
3145 Added the flags mentioned in the bug only when doing 'debug'
3146 builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
3151 2007-12-27 Dan Bernstein <mitz@apple.com>
3153 Reviewed by Eric Seidel.
3155 - fix http://bugs.webkit.org/show_bug.cgi?id=16490
3156 ASSERT in ~FrameView while viewing/reloading WICD test case
3158 Test: fast/dynamic/paused-event-dispatch.html
3160 * page/FrameView.cpp:
3161 (WebCore::FrameView::~FrameView):
3162 (WebCore::FrameView::layout): Changed to always pause event dispatch and
3163 always resume event dispatch, regardless of whether the post-layout
3164 task timer is active. However, if it is active, assert that event
3165 dispatch is still paused.
3167 2007-12-27 Alexey Proskuryakov <ap@webkit.org>
3171 http://bugs.webkit.org/show_bug.cgi?id=14500
3172 need to be more generous about charset declaration with meta tag
3174 http://bugs.webkit.org/show_bug.cgi?id=12526
3175 <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
3177 <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
3179 <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
3181 Tests: fast/encoding/ahram-org-eg.html
3182 fast/encoding/bandai-co-jp-releases.html
3183 fast/encoding/floraexpress-ru.html
3184 fast/encoding/hanarei-blog32-fc2-com.html
3185 fast/encoding/yahoo-mail.html
3187 * loader/TextResourceDecoder.cpp:
3188 (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
3189 seen at least 512 bytes of input.
3191 2007-12-26 Jan Michael Alonzo <jmalonzo@unpluggable.com>
3193 Reviewed by Alp Toker.
3195 http://bugs.webkit.org/show_bug.cgi?id=16390
3196 Use autotools or GNU make as the build system for the GTK port
3198 * GNUmakefile.am: Added.
3200 2007-12-26 Alexey Proskuryakov <ap@webkit.org>
3202 Reviewed by Sam Weinig.
3204 http://bugs.webkit.org/show_bug.cgi?id=16609
3205 Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
3207 * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
3209 2007-12-26 Mark Rowe <mrowe@apple.com>
3213 * platform/Threading.h:
3215 2007-12-25 Rob Buis <buis@kde.org>
3219 http://bugs.webkit.org/show_bug.cgi?id=15514
3220 <clipPath> with <use> not respected
3221 http://bugs.webkit.org/show_bug.cgi?id=16557
3222 SVG circle elements have been clipped away completely, instead of partially.
3224 Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
3226 * svg/SVGClipPathElement.cpp:
3227 (WebCore::SVGClipPathElement::canvasResource):
3228 * svg/SVGStyledTransformableElement.h:
3229 (WebCore::SVGStyledTransformableElement::toClipPath):
3230 * svg/SVGUseElement.cpp:
3231 (WebCore::isDirectReference):
3232 (WebCore::SVGUseElement::toClipPath):
3233 * svg/SVGUseElement.h:
3235 2007-12-25 Sam Weinig <sam@webkit.org>
3237 Reviewed by Eric Seidel.
3239 Clean up the files relating to NodeLists.
3241 * dom/ChildNodeList.cpp:
3242 (WebCore::ChildNodeList::ChildNodeList):
3243 (WebCore::ChildNodeList::length):
3244 (WebCore::ChildNodeList::item):
3245 (WebCore::ChildNodeList::nodeMatches):
3246 * dom/ChildNodeList.h:
3247 * dom/DynamicNodeList.cpp:
3248 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
3249 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
3250 (WebCore::DynamicNodeList::itemWithName):
3251 * dom/DynamicNodeList.h:
3252 (WebCore::DynamicNodeList::needsNotifications):
3253 * dom/NameNodeList.cpp:
3254 (WebCore::NameNodeList::NameNodeList):
3255 (WebCore::NameNodeList::rootNodeAttributeChanged):
3256 (WebCore::NameNodeList::nodeMatches):
3257 * dom/NameNodeList.h:
3259 * dom/SelectorNodeList.h:
3261 2007-12-25 Sam Weinig <sam@webkit.org>
3266 * WebCore.vcproj/WebCore.vcproj:
3267 * WebCoreSources.bkl:
3269 2007-12-25 Sam Weinig <sam@webkit.org>
3271 Rubber stamped by Eric Seidel.
3273 Move TagNodeList into its own file.
3275 * WebCore.xcodeproj/project.pbxproj:
3277 * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
3278 (WebCore::TagNodeList::TagNodeList):
3279 * dom/TagNodeList.h: Copied from dom/Node.cpp.
3281 2007-12-25 Sam Weinig <sam@webkit.org>
3283 Reviewed by Eric Seidel.
3285 Simplify the NodeList architecture.
3286 - Rename recursiveItem() to item(), since it is not recursive.
3287 - Make recursiveLength() iterative and rename to length().
3288 - Remove now unneeded overrides of item() and length() that used
3289 to call the recursive variants.
3291 * dom/ClassNodeList.cpp:
3292 * dom/ClassNodeList.h:
3293 * dom/DynamicNodeList.cpp:
3294 (WebCore::DynamicNodeList::length):
3295 (WebCore::DynamicNodeList::item):
3296 (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation
3297 into the .cpp file since virtual methods can't be inlined.
3298 * dom/DynamicNodeList.h:
3299 * dom/NameNodeList.cpp:
3300 * dom/NameNodeList.h:
3303 2007-12-25 Alp Toker <alp@atoker.com>
3305 More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
3309 * WebCore.vcproj/WebCore.vcproj:
3310 * WebCoreSources.bkl:
3312 2007-12-25 Alp Toker <alp@atoker.com>
3314 Win build fix for breakage introduced in r28981.
3316 * WebCore.vcproj/WebCore.vcproj:
3318 2007-12-25 Alp Toker <alp@atoker.com>
3320 Wx build fix for breakage introduced in r28981.
3322 * WebCoreSources.bkl:
3324 2007-12-25 Alp Toker <alp@atoker.com>
3326 GTK+/Qt build fix for breakage introduced in r28981.
3330 2007-12-25 David Smith <catfish.man@gmail.com> and Sam Weinig <sam@webkit.org>
3334 - http://bugs.webkit.org/show_bug.cgi?id=16587
3335 Implement the most useful part of the W3C Selectors API.
3337 * WebCore.xcodeproj/project.pbxproj:
3338 * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
3339 * dom/ChildNodeList.cpp:
3340 (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
3341 * dom/ChildNodeList.h:
3342 * dom/ClassNodeList.cpp:
3343 (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
3344 * dom/ClassNodeList.h:
3345 * dom/Document.idl: Add the new functions
3346 * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
3347 (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
3348 (WebCore::DynamicNodeList::~DynamicNodeList):
3349 (WebCore::DynamicNodeList::recursiveLength):
3350 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
3351 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
3352 (WebCore::DynamicNodeList::recursiveItem):
3353 (WebCore::DynamicNodeList::itemWithName):
3354 (WebCore::DynamicNodeList::rootNodeChildrenChanged):
3355 (WebCore::DynamicNodeList::Caches::Caches):
3356 (WebCore::DynamicNodeList::Caches::reset):
3357 * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
3358 (WebCore::DynamicNodeList::rootNodeAttributeChanged):
3359 * dom/Element.idl: Add the new functions
3360 * dom/NameNodeList.cpp: Change to being a DynamicNodeList
3361 (WebCore::NameNodeList::NameNodeList):
3362 * dom/NameNodeList.h:
3363 (WebCore::NameNodeList::rootNodeAttributeChanged):
3365 (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
3366 (WebCore::Node::registerDynamicNodeList):
3367 (WebCore::Node::unregisterDynamicNodeList):
3368 (WebCore::Node::getElementsByName):
3369 (WebCore::Node::getElementsByClassName):
3370 (WebCore::Node::querySelector): new
3371 (WebCore::Node::querySelectorAll): new
3373 * dom/NodeList.cpp: Removed.
3374 * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
3375 (WebCore::NodeList::NodeList):
3376 (WebCore::NodeList::~NodeList):
3377 * dom/SelectorNodeList.cpp: Added.
3378 (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
3379 * dom/SelectorNodeList.h: Added.
3380 * dom/StaticNodeList.cpp: Added.
3381 (WebCore::StaticNodeList::length):
3382 (WebCore::StaticNodeList::item):
3383 (WebCore::StaticNodeList::itemWithName):
3384 * dom/StaticNodeList.h: Added.
3385 (WebCore::StaticNodeList::StaticNodeList):
3386 (WebCore::StaticNodeList::~StaticNodeList):
3388 2007-12-25 Mark Rowe <mrowe@apple.com>
3390 Reviewed by Sam Weinig.
3392 Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
3393 http://bugs.webkit.org/show_bug.cgi?id=16596
3395 This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
3396 of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
3397 access to a single ThreadSafeShared object.
3399 The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
3401 * platform/Threading.h:
3402 (WebCore::atomicIncrement):
3403 (WebCore::atomicDecrement):
3404 (WebCore::ThreadSafeShared::ThreadSafeShared):
3405 (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
3406 (WebCore::ThreadSafeShared::deref): Ditto.
3407 (WebCore::ThreadSafeShared::hasOneRef):
3408 (WebCore::ThreadSafeShared::refCount):
3409 (WebCore::ThreadSafeShared::isThreadSafe):
3411 2007-12-24 Darin Adler <darin@apple.com>
3413 * platform/text/PlatformString.h: Removed now-incorrect comment.
3414 Added a comment about copy().
3415 * platform/text/StringImpl.h: Added a comment about copy().
3417 2007-12-24 Darin Adler <darin@apple.com>
3421 - http://bugs.webkit.org/show_bug.cgi?id=16550
3422 make StringImpl immutable
3424 I tried to keep the changes to a minimum. In some cases there is
3425 room for optimization -- I didn't try to add in the "single ref count"
3426 optimizations and there might be a tiny bit more string copying than
3429 * WebCore.base.exp: Updated.
3431 * dom/CharacterData.cpp:
3432 (WebCore::CharacterData::appendData): Changed to use String since
3433 StringImpl doesn't have mutating functions any more.
3434 (WebCore::CharacterData::insertData): Ditto.
3435 (WebCore::CharacterData::deleteData): Ditto.
3436 (WebCore::CharacterData::replaceData): Ditto.
3438 (WebCore::Text::splitText): Changed to use substring instead of
3439 remove since StringImpl does't have mutating functions any more.
3440 * editing/CompositeEditCommand.cpp:
3441 (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
3442 to use String instead of StringImpl so we can use remove.
3444 * platform/text/PlatformString.h: Removed newUninitialized.
3445 Added append that takes a character pointer and length.
3447 * platform/text/String.cpp:
3448 (WebCore::String::insert): Added an implementation that does not
3449 rely on an underlying StringImpl function.
3450 (WebCore::String::append): Ditto.
3451 (WebCore::String::truncate): Ditto.
3452 (WebCore::String::remove): Ditto.
3453 (WebCore::String::charactersWithNullTermination): Added an
3454 implementation that uses the new StringImpl null termination feature,
3455 which does not require modifying a string.
3457 * platform/text/StringImpl.cpp:
3458 (WebCore::isSpace): Fix comment.
3459 (WebCore::StringImpl::StringImpl): Added a new constructor that makes
3460 a string with a trailing null character.
3461 (WebCore::StringImpl::substring): Marked const.
3462 (WebCore::StringImpl::replace): Marked const; had to add quite a few
3463 const_cast. Also rewrote one of these to work without modifying the
3466 * platform/text/StringImpl.h: Fixed a mistake where the empty string had
3467 m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
3468 for creating strings that have a trailing null character. Added a
3469 hasTerminatingNullCharacter function. Removed newUninitialized,
3470 charactersWithNullTermination, append, insert, truncate, and remove.
3471 Marked lots of other functions const.
3473 * platform/text/TextCodecLatin1.cpp:
3474 (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
3476 * platform/text/TextCodecUTF16.cpp:
3477 (WebCore::TextCodecUTF16::decode): Ditto.
3478 * platform/text/TextCodecUserDefined.cpp:
3479 (WebCore::TextCodecUserDefined::decode): Ditto.
3481 * rendering/RenderStyle.cpp:
3482 (WebCore::RenderStyle::setContent): Changed to use String since
3483 StringImpl doesn't have mutating functions any more.
3485 2007-12-24 Alexey Proskuryakov <ap@webkit.org>
3489 Fix fast/events/arrow-keys-on-body.html, failing on Windows.
3491 * platform/win/KeyEventWin.cpp:
3492 (WebCore::isKeypadEvent):
3493 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3494 Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
3496 2007-12-23 Alexey Proskuryakov <ap@webkit.org>
3498 Fix Debug and Release QTMovieWin bulds.
3500 * WebCore.vcproj/QTMovieWin.vcproj:
3501 * WebCore.vcproj/debug.vsprops:
3502 * WebCore.vcproj/debug_internal.vsprops:
3503 * WebCore.vcproj/release.vsprops:
3504 Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
3505 Build release import lib into \lib, not \bin.
3507 2007-12-23 Alp Toker <alp@atoker.com>
3509 Reviewed by Holger Freyther.
3511 http://bugs.webkit.org/show_bug.cgi?id=15382
3512 [CAIRO] Canvas pattern support
3514 http://bugs.webkit.org/show_bug.cgi?id=16577
3515 Merge Cairo enhancements from Apollo project
3517 Add support for canvas patterns.
3519 Make Image::nativeImageForCurrentFrame() public.
3521 Fix some typos along the way.
3523 The globalAlpha canvas fixes are not included in this patch as
3524 they're slightly more intrusive and may conflict conceptually with
3525 GraphicsContext::setAlpha().
3527 * html/CanvasPattern.cpp:
3528 (WebCore::CanvasPattern::CanvasPattern):
3529 (WebCore::CanvasPattern::~CanvasPattern):
3530 (WebCore::CanvasPattern::createPattern):
3531 * html/CanvasPattern.h:
3532 (WebCore::CanvasPattern::platformImage):
3533 * html/CanvasRenderingContext2D.cpp:
3534 (WebCore::CanvasRenderingContext2D::setShadow):
3535 (WebCore::CanvasRenderingContext2D::applyShadow):
3536 (WebCore::CanvasRenderingContext2D::drawImage):
3537 (WebCore::CanvasRenderingContext2D::createPattern):
3538 (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3539 (WebCore::CanvasRenderingContext2D::applyFillPattern):
3540 * platform/graphics/Image.h:
3541 (WebCore::Image::nativeImageForCurrentFrame):
3543 2007-12-23 Kevin Ollivier <kevino@theolliviers.com>
3545 Reviewed by Eric Seidel.
3547 Remove getWxBitmap as we have nativeImageForCurrentFrame now,
3548 and don't draw a border in fillRect.
3550 * platform/graphics/BitmapImage.h:
3551 * platform/graphics/wx/GraphicsContextWx.cpp:
3552 (WebCore::GraphicsContext::fillRect):
3553 * platform/graphics/wx/ImageWx.cpp:
3555 2007-12-23 Alp Toker <alp@atoker.com>
3557 Reviewed by Holger Freyther.
3559 http://bugs.webkit.org/show_bug.cgi?id=16577
3560 Merge Cairo enhancements from Apollo project
3562 This patch is based on initial merging work by Brent Fulgham. Adobe's
3563 code has been modified in a few places to better suit the existing
3566 Implement more clipping and drawing functions.
3568 Save and restore the fill rule manually when clipping.
3570 Avoid image surface creation when the image buffer has height zero.
3572 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3573 (WebCore::GraphicsContext::clip):
3574 (WebCore::GraphicsContext::addInnerRoundedRectClip):
3575 (WebCore::GraphicsContext::addPath):
3576 (WebCore::GraphicsContext::clipOut):