1 2008-01-06 Alexey Proskuryakov <ap@webkit.org>
5 http://bugs.webkit.org/show_bug.cgi?id=16731
6 Incorrect node type for whitespace when setting innerHTML in an XHTML document
8 Test: fast/dom/xhtml-fragment-whitespace.xhtml
10 * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
11 Use balancedCharactersHandler for ignorable whitespace.
13 2008-01-06 Alexey Proskuryakov <ap@webkit.org>
17 http://bugs.webkit.org/show_bug.cgi?id=16701
18 <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
19 causes page load error
21 Test: http/tests/misc/location-with-space.php
23 * platform/network/cf/ResourceRequestCFNet.cpp:
24 (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
26 2008-01-06 Andrew Wellington <proton@wiretapped.net>
30 DOMRange.cloneContents does not work (Acid3 bug)
31 http://bugs.webkit.org/show_bug.cgi?id=16748
33 When cloning an empty range, return an empty DocmentFragment instead of
36 Test: fast/dom/Range/range-clone-empty.html
39 (WebCore::Range::processContents):
41 2008-01-06 Luca Bruno <lethalman88@gmail.com>
43 Reviewed by Alp Toker.
45 Remove curl handles immediately if the timer is not running.
47 * platform/network/curl/ResourceHandleManager.cpp:
48 (WebCore::ResourceHandleManager::cancel):
50 2008-01-06 Alp Toker <alp@atoker.com>
54 Cairo canvas refcounting fix. Reference the surface in the constructor
55 to match its destruction in the destructor.
57 Fixes a crash triggered by leaving this page:
58 http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
60 * html/CanvasPattern.cpp:
61 (WebCore::CanvasPattern::CanvasPattern):
63 2008-01-06 Eric Seidel <eric@webkit.org>
67 Make attr selectors case-insensitive for certain HTML attributes
68 http://bugs.webkit.org/show_bug.cgi?id=15470
70 Test: fast/css/html-attr-case-sensitivity.html
72 * css/CSSStyleSelector.cpp:
73 (WebCore::addLocalNameToSet):
74 (WebCore::createHtmlCaseInsensitiveAttributesSet):
75 (WebCore::htmlAttributeHasCaseInsensitiveValue):
76 (WebCore::CSSStyleSelector::checkOneSelector):
78 2008-01-06 Eric Seidel <eric@webkit.org>
82 Fix :checked matching type='text' and add test case
83 http://bugs.webkit.org/show_bug.cgi?id=16750
85 Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
87 * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
89 2008-01-05 Sam Weinig <sam@webkit.org>
91 Reviewed by Eric Seidel.
93 Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
94 ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
96 - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
98 Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
100 * dom/TreeWalker.cpp:
101 (WebCore::TreeWalker::parentNode):
102 (WebCore::TreeWalker::firstChild):
103 (WebCore::TreeWalker::lastChild):
104 (WebCore::TreeWalker::previousSibling):
105 (WebCore::TreeWalker::nextSibling):
106 (WebCore::TreeWalker::previousNode):
107 (WebCore::TreeWalker::nextNode):
109 2008-01-04 Oliver Hunt <oliver@apple.com>
111 Reviewed by Beth Dakin.
113 Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
114 and other image repaint bugs.
116 We now cache the full local bounds for the <image> element, as otherwise certain
117 combinations of attribute changes could result in incorrect dirty rects.
118 Additionally we no longer use any of the integer bounds fields on RenderObject for
119 determining repaint bounds (this was the principle cause of bug #16015).
121 I also removed the outline painting code as it was both wrong, and not correctly
122 repainted. I feel safe doing this as no other browser or viewer supports outline
123 properties on svg elements.
125 I was unable to make a testcase for this unfortunately, despite seemingly deterministic
128 * rendering/RenderSVGImage.cpp:
129 (WebCore::RenderSVGImage::layout):
130 (WebCore::RenderSVGImage::paint):
131 (WebCore::RenderSVGImage::nodeAtPoint):
132 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
133 * rendering/RenderSVGImage.h:
135 2008-01-04 Beth Dakin <bdakin@apple.com>
139 Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with
140 type="hidden" matches :enabled/:disabled (Acid3 bug)
142 Prevent :enabled and :disabled from applying to input type="hidden"
144 * css/CSSStyleSelector.cpp:
145 (WebCore::CSSStyleSelector::checkOneSelector): Rather than
146 allowing :enabled and :disabled to apply to all controls, only
147 allow it to apply to non-"hidden" controls
149 (WebCore::Element::isInputTypeHidden):
150 * html/HTMLInputElement.h:
151 (WebCore::HTMLInputElement::isInputTypeHidden):
153 2008-01-04 Sam Weinig <sam@webkit.org>
155 Reviewed by Oliver Hunt.
157 - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
158 getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
159 if the type of the CSSPrimitiveValue is not the same as the type requested.
160 - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
162 Test: fast/css/CSSPrimitiveValue-exceptions.html
164 * css/CSSPrimitiveValue.cpp:
165 (WebCore::CSSPrimitiveValue::getDoubleValue):
166 (WebCore::CSSPrimitiveValue::getStringValue):
167 (WebCore::CSSPrimitiveValue::getCounterValue):
168 (WebCore::CSSPrimitiveValue::getRectValue):
169 (WebCore::CSSPrimitiveValue::getRGBColorValue):
170 (WebCore::CSSPrimitiveValue::getPairValue):
171 * css/CSSPrimitiveValue.h:
172 (WebCore::CSSPrimitiveValue::getFloatValue):
173 (WebCore::CSSPrimitiveValue::getIntValue):
174 (WebCore::CSSPrimitiveValue::getCounterValue):
175 (WebCore::CSSPrimitiveValue::getRectValue):
176 (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
177 * css/CSSPrimitiveValue.idl:
179 2008-01-04 Antti Koivisto <antti@apple.com>
183 Windows part of <rdar://problem/5647034>
184 Media tests crash if an old version of QuickTime is installed
186 Check QuickTime version on Windows too.
188 * platform/graphics/MediaPlayer.cpp:
189 (WebCore::MediaPlayer::isAvailable):
190 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
191 (WebCore::MediaPlayerPrivate::isAvailable):
192 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
193 (WebCore::MediaPlayerPrivate::isAvailable):
194 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
195 * platform/graphics/win/QTMovieWin.cpp:
196 (QTMovieWin::initializeQuickTime):
198 2008-01-04 Darin Adler <darin@apple.com>
200 Reviewed by Maciej and Alice.
202 - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
204 Test: fast/images/border.html
206 * html/HTMLImageElement.cpp:
207 (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
208 where the border value is not a number to use the value "0" for the border width instead
209 of not setting the border width and style at all. This matches other browsers, and makes
212 2008-01-04 Antti Koivisto <antti@apple.com>
214 Try to fix 64-bit build
216 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
217 (WebCore::MediaPlayerPrivate::isAvailable):
219 2008-01-04 Stephanie <slewis@apple.com>
223 WARNING: NO TEST CASES ADDED OR CHANGED
225 Fix another stringImpl leak.
227 * platform/text/StringImpl.cpp: remove an extra allocation
228 (WebCore::StringImpl::StringImpl):
230 2008-01-04 Alice Liu <alice.liu@apple.com>
234 * platform/graphics/win/FontCacheWin.cpp:
235 fix loop condition that was causing crash
237 2008-01-04 Timothy Hatcher <timothy@apple.com>
239 Reviewed by Adam Roben.
241 <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
243 * page/inspector/inspector.css: Remove styles related to the toggle button
244 and make the area always visible.
245 * page/inspector/inspector.html: Remove the toggle button.
246 * page/inspector/inspector.js: Remove code to toggle the status area.
248 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
250 Reviewed by Adam Roben.
252 Temporarily restore BackwardDelete for Windows nightlies to work correctly.
254 * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
256 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
260 <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
262 Enable the fix on Windows.
264 * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
265 Always set a custom sort function, even if it doesn't implement proper collation on the platform.
267 * xml/XSLTUnicodeSort.cpp:
268 (WebCore::xsltUnicodeSortFunction):
269 * xml/XSLTUnicodeSort.h:
270 If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
272 2008-01-04 Antti Koivisto <antti@apple.com>
276 * bindings/js/JSHTMLElementWrapperFactory.cpp:
278 2008-01-04 Antti Koivisto <antti@apple.com>
282 Partial fix for <rdar://problem/5647034>
283 Media tests crash if an old version of QuickTime is installed
285 Disable media support if QuickTime is not current enough (>=7.3).
287 Windows patch coming soon.
289 * bindings/js/JSHTMLElementWrapperFactory.cpp:
290 (WebCore::createJSHTMLWrapper):
291 * bindings/js/kjs_window.cpp:
292 (KJS::Window::getValueProperty):
293 * html/HTMLElementFactory.cpp:
294 (WebCore::audioConstructor):
295 (WebCore::videoConstructor):
296 (WebCore::sourceConstructor):
297 * platform/graphics/MediaPlayer.cpp:
298 (WebCore::MediaPlayer::isAvailable):
299 * platform/graphics/MediaPlayer.h:
300 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
301 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
302 (WebCore::MediaPlayerPrivate::isAvailable):
304 2008-01-04 Timothy Hatcher <timothy@apple.com>
306 Reviewed by Darin Adler.
308 <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
310 Check if the property is a getter before asking for the value.
311 If the property is a getter, we no longer show the value.
313 * page/inspector/PropertiesSidebarPane.js:
314 * page/inspector/inspector.css:
316 2008-01-04 Dan Bernstein <mitz@apple.com>
318 Reviewed by Darin Adler.
320 - fix synthetic bold and italic on Windows
322 Covered by an existing test.
324 * platform/graphics/win/FontPlatformDataWin.cpp:
325 (WebCore::FontPlatformData::FontPlatformData):
327 2008-01-04 Alp Toker <alp@atoker.com>
329 GTK+ autotools build fix. Terminate empty rules.
333 2008-01-04 Lars Knoll <lars@trolltech.com>
337 Remove most dependencies of Widget/ScrollView onto native QWidgets.
339 This also brings the code closer in line with the Windows code. Seems
340 to work nicely on first try :)
342 * page/qt/FrameQt.cpp:
343 (WebCore::Frame::createScriptInstanceForWidget):
345 * platform/qt/PlatformScreenQt.cpp:
346 (WebCore::screenDepth):
347 (WebCore::screenDepthPerComponent):
348 (WebCore::screenIsMonochrome):
349 (WebCore::screenRect):
350 * platform/qt/PlatformScrollBarQt.cpp:
351 (WebCore::PlatformScrollbar::thumbPosition):
352 (WebCore::PlatformScrollbar::handleMouseMoveEvent):
353 * platform/qt/ScrollViewQt.cpp:
354 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
355 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
356 (WebCore::ScrollView::updateContents):
357 (WebCore::ScrollView::update):
358 (WebCore::ScrollView::scrollRectIntoViewRecursively):
359 (WebCore::ScrollView::updateScrollbars):
360 (WebCore::ScrollView::addChild):
361 (WebCore::ScrollView::removeChild):
362 (WebCore::ScrollView::paint):
363 * platform/qt/WidgetQt.cpp:
364 (WebCore::WidgetPrivate::WidgetPrivate):
365 (WebCore::WidgetPrivate::~WidgetPrivate):
366 (WebCore::Widget::frameGeometry):
367 (WebCore::Widget::setFrameGeometry):
368 (WebCore::Widget::setCursor):
369 (WebCore::Widget::show):
370 (WebCore::Widget::hide):
371 (WebCore::Widget::nativeWidget):
372 (WebCore::Widget::setNativeWidget):
373 (WebCore::Widget::suppressInvalidation):
374 (WebCore::Widget::setSuppressInvalidation):
375 (WebCore::Widget::invalidateRect):
376 (WebCore::Widget::topLevel):
377 (WebCore::Widget::containingWindow):
379 2008-01-04 Lars Knoll <lars@trolltech.com>
383 make QWebPage a QObject and get things to compile.
385 Nothing works currently though.
387 * platform/qt/ScrollViewQt.cpp:
388 (WebCore::ScrollView::updateContents):
389 (WebCore::ScrollView::update):
390 * platform/qt/WidgetQt.cpp:
391 (WebCore::Widget::qwidget):
392 (WebCore::Widget::invalidateRect):
394 2008-01-04 Alp Toker <alp@atoker.com>
396 Reviewed by Mark Rowe.
398 http://bugs.webkit.org/show_bug.cgi?id=16667
399 make -j is failing with the autotools based system
401 Support parallel code generation. Nearly every use of explicit
402 multiple targets was a potential concurrency bug, though in practice
403 the bison rules were the first to be noticed because they took longer
404 to complete and broke the build immediately.
408 2008-01-04 Alp Toker <alp@atoker.com>
410 Reviewed by Mark Rowe.
412 Re-use a single static dummy surface rather than creating and
413 destroying a surface for each CairoPath.
415 * platform/graphics/cairo/CairoPath.h:
416 (WebCore::CairoPath::CairoPath):
418 2008-01-04 Mark Rowe <mrowe@apple.com>
422 * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
424 2008-01-03 Mark Rowe <mrowe@apple.com>
426 Reviewed by Maciej Stachowiak.
428 Use platform-provided atomic operations in place of inline assembly to
429 increase portability.
431 * platform/Threading.h:
432 (WebCore::atomicIncrement):
433 (WebCore::atomicDecrement):
435 2008-01-03 Oliver Hunt <oliver@apple.com>
439 Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
441 We need to cache the absolute bounds of the <image>,
442 as there's no reliable way to recompute the old bounding
443 box one we have started layout.
445 * rendering/RenderSVGImage.cpp:
446 (WebCore::RenderSVGImage::layout):
447 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
448 * rendering/RenderSVGImage.h:
450 2008-01-03 Alp Toker <alp@atoker.com>
452 Reviewed by Mark Rowe.
454 Support building in Scratchbox, which has a version of make that fails
455 on wildcard syntax. Use a vpath to match IDL files instead.
459 2008-01-03 Jon Honeycutt <jhoneycutt@apple.com>
463 <rdar://problem/5504775> PDF page will not load first time after Adobe
464 Reader install, unless browser is relaunched
466 Refresh and re-search the plugin database if the MIME type is not
469 * plugins/win/PluginDatabaseWin.cpp:
470 (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
471 * plugins/win/PluginDatabaseWin.h:
473 2008-01-03 Dan Bernstein <mitz@apple.com>
475 Reviewed by Darin Adler.
477 - fix http://bugs.webkit.org/show_bug.cgi?id=16548
478 <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
480 * platform/graphics/win/FontCacheWin.cpp:
481 (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
482 a valid LOGFONT for a given family.
483 (WebCore::getLinkedFonts): Added. Returns a vector of font families
484 linked to the given font family by the Windows registry key
485 HKLM\Software\...\FontLink\SystemLink. The registry values typically
486 differ based on the installed language version of Windows.
487 (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
488 font mapping, which is Windows code page based, except for characters in
489 the range U+2000..U+200F. Instead, this function gets the font Uniscribe
490 would use for the character. However, that font might not actually
491 contain the character, in which case GDI font linking would substitute a
492 different font. Therefore, this function walks the linked font list
493 until it finds a font that actually contains the character.
495 2008-01-03 Darin Adler <darin@apple.com>
499 - fix http://bugs.webkit.org/show_bug.cgi?id=16723
500 tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
502 Test: fast/table/border-changes.html
504 * html/HTMLTableElement.h:
505 * html/HTMLTableElement.cpp:
506 (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
507 parsing attributes, rather than doing this only for the rules attribute.
508 (WebCore::HTMLTableElement::cellBorders): Added.
509 (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
510 rule about what type of borders to use.
512 2008-01-02 Sam Weinig <sam@webkit.org>
516 Pass the prototype of WebCore JS objects up the constructor chain
517 rather than explicitly setting using setPrototype. This removes many
518 redundant settings of the prototype on construction. To avoid a CG
519 hazard, the prototype must be constructed before calling the
520 constructor of the JS object.
522 - JS objects that inherit from DOMObject, which all bindings objects
523 (except Window) do, now can't implicitly have a jsNull prototype, but
524 must explicitly pass it up the construction chain.
526 * bindings/js/JSCSSRuleCustom.cpp:
528 * bindings/js/JSCSSValueCustom.cpp:
530 * bindings/js/JSDocumentCustom.cpp:
532 * bindings/js/JSEventCustom.cpp:
534 * bindings/js/JSEventTargetNode.cpp:
535 (WebCore::JSEventTargetNode::JSEventTargetNode):
536 * bindings/js/JSEventTargetNode.h:
537 * bindings/js/JSHTMLAllCollection.h:
538 (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
539 * bindings/js/JSHTMLAudioElementConstructor.cpp:
540 (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
541 * bindings/js/JSHTMLCollectionCustom.cpp:
542 (WebCore::getNamedItems):
544 * bindings/js/JSHTMLElementWrapperFactory.cpp:
545 (WebCore::createJSHTMLWrapper):
546 * bindings/js/JSHTMLFormElementCustom.cpp:
547 (WebCore::JSHTMLFormElement::nameGetter):
548 * bindings/js/JSHTMLInputElementBase.cpp:
549 (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
550 * bindings/js/JSHTMLInputElementBase.h:
551 * bindings/js/JSHTMLOptionElementConstructor.cpp:
552 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
553 * bindings/js/JSLocation.cpp:
554 (WebCore::JSLocation::JSLocation):
555 * bindings/js/JSLocation.h:
556 * bindings/js/JSNamedNodesCollection.cpp:
557 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
558 * bindings/js/JSNamedNodesCollection.h:
559 * bindings/js/JSNodeCustom.cpp:
561 * bindings/js/JSSVGElementWrapperFactory.cpp:
562 (WebCore::createJSSVGWrapper):
563 * bindings/js/JSSVGPathSegCustom.cpp:
565 * bindings/js/JSStyleSheetCustom.cpp:
567 * bindings/js/JSXMLHttpRequest.cpp:
568 (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
569 (KJS::JSXMLHttpRequestConstructorImp::construct):
570 (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
571 * bindings/js/JSXMLHttpRequest.h:
572 * bindings/js/JSXSLTProcessor.cpp:
573 (KJS::JSXSLTProcessor::JSXSLTProcessor):
574 (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
575 (KJS::XSLTProcessorConstructorImp::implementsConstruct):
576 (KJS::XSLTProcessorConstructorImp::construct):
577 * bindings/js/JSXSLTProcessor.h:
578 * bindings/js/kjs_binding.h:
579 (KJS::DOMObject::DOMObject):
580 (KJS::cacheDOMObject):
581 (KJS::cacheSVGDOMObject):
582 * bindings/js/kjs_css.cpp:
583 (WebCore::JSRGBColor::JSRGBColor):
584 (WebCore::getJSRGBColor):
585 * bindings/js/kjs_css.h:
586 * bindings/js/kjs_events.cpp:
587 (WebCore::JSClipboard::JSClipboard):
589 * bindings/js/kjs_events.h:
590 * bindings/js/kjs_html.cpp:
591 (WebCore::ImageConstructorImp::ImageConstructorImp):
592 * bindings/js/kjs_navigator.cpp:
593 (KJS::Navigator::Navigator):
594 (KJS::PluginBase::PluginBase):
595 * bindings/js/kjs_navigator.h:
596 * bindings/js/kjs_window.cpp:
597 (KJS::Window::Window):
598 (KJS::Window::location):
599 (KJS::Window::getValueProperty):
600 * bindings/js/kjs_window.h:
601 * bindings/scripts/CodeGeneratorJS.pm:
603 2008-01-03 Holger Hans Peter Freyther <zecke@selfish.org>
607 -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
609 Change the Gtk ContextMenuItem code to generate the GtkMenuItem
610 or GtkCheckMenuItem on the fly. Currently we will create a
611 GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
612 to be done is to change WebCore to tell the platform code if an item
615 * platform/ContextMenuItem.h:
616 (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
617 * platform/gtk/ContextMenuGtk.cpp:
618 (WebCore::ContextMenu::appendItem):
619 * platform/gtk/ContextMenuItemGtk.cpp:
620 (WebCore::ContextMenuItem::ContextMenuItem):
621 (WebCore::ContextMenuItem::~ContextMenuItem):
622 (WebCore::ContextMenuItem::createNativeMenuItem):
623 (WebCore::ContextMenuItem::releasePlatformDescription):
624 (WebCore::ContextMenuItem::type):
625 (WebCore::ContextMenuItem::setType):
626 (WebCore::ContextMenuItem::action):
627 (WebCore::ContextMenuItem::setAction):
628 (WebCore::ContextMenuItem::platformSubMenu):
629 (WebCore::ContextMenuItem::setSubMenu):
630 (WebCore::ContextMenuItem::setChecked):
632 2008-01-03 Dan Bernstein <mitz@apple.com>
634 Rubber-stamped by Adam Roben.
636 - update the project hierarchy to match the on-disk organization of
637 the platform directory.
639 * WebCore.vcproj/WebCore.vcproj:
641 2008-01-03 Adam Roben <aroben@apple.com>
643 Fix a buffer overrun and a leak introduced in r29098
647 * platform/text/StringImpl.cpp:
648 (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
649 it be big enough to hold the string contents plus the null terminator.
651 2008-01-03 Simon Hausmann <hausmann@webkit.org>
655 Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
659 2008-01-03 Alp Toker <alp@atoker.com>
661 Suggested by Mark Rowe.
663 Fix indentation and remove trailing whitespace.
665 * platform/network/curl/ResourceHandleManager.cpp:
667 2008-01-03 Luca Bruno <lethalman88@gmail.com>
669 Reviewed by Alp Toker.
671 Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
672 that the two POST methods don't conflict.
674 * platform/network/curl/ResourceHandleManager.cpp:
675 (WebCore::ResourceHandleManager::setupPOST):
677 2008-01-02 Darin Adler <darin@apple.com>
679 - touched some files to try to get the Windows buildbot building again
681 2008-01-02 Dan Bernstein <mitz@apple.com>
683 Reviewed by Sam Weinig.
685 - fix small caps rendering
687 Covered by an existing test.
689 * platform/graphics/win/FontDataWin.cpp:
690 (WebCore::FontData::smallCapsFontData):
692 2008-01-02 Antti Koivisto <antti@apple.com>
696 Calculate video position and size within the renderer box in WebCore. This
697 way the aspect ratio calculation is not needed in each MediaPlayer implementation.
699 This fixes video aspect ratio on Windows.
701 Covered by an existing pixel test.
703 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
704 (WebCore::MediaPlayerPrivate::createQTMovieView):
705 * rendering/RenderVideo.cpp:
706 (WebCore::RenderVideo::videoBox):
707 (WebCore::RenderVideo::paintReplaced):
708 (WebCore::RenderVideo::updatePlayer):
709 * rendering/RenderVideo.h:
711 2008-01-02 Ada Chan <adachan@apple.com>
715 * WebCore.vcproj/WebCore.vcproj:
717 2008-01-02 John Sullivan <sullivan@apple.com>
719 Reviewed by Dan Bernstein
721 - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
723 * loader/DocumentLoader.cpp:
724 (WebCore::canonicalizedTitle):
725 in the code that replaces control characters with white space, also replace the unicode line separator
726 and paragraph separator characters
728 2008-01-02 Darin Adler <darin@apple.com>
730 - fix buffer overruns seen on buildbot
732 * platform/text/StringImpl.cpp:
733 (WebCore::countCharacter): Added this.
734 (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
735 (WebCore::StringImpl::toLengthArray): Ditto.
736 (WebCore::StringImpl::replace): Added assertions.
738 2008-01-02 Darin Adler <darin@apple.com>
742 - fix http://bugs.webkit.org/show_bug.cgi?id=16657
743 Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
744 - fix http://bugs.webkit.org/show_bug.cgi?id=16659
745 Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
747 Tests: dom/html/level2/html/HTMLCollection07.html
748 dom/html/level2/html/HTMLCollection08.html
749 dom/html/level2/xhtml/HTMLCollection07.xhtml
750 dom/html/level2/xhtml/HTMLCollection08.xhtml
751 fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
752 fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
754 * GNUmakefile.am: Added HTMLTableRowsCollection.
755 * WebCore.pro: Ditto.
756 * WebCore.vcproj/WebCore.vcproj: Ditto.
757 * WebCore.xcodeproj/project.pbxproj: Ditto.
758 * WebCoreSources.bkl: Ditto.
760 * dom/XMLTokenizer.cpp: Took out stray include.
762 * html/HTMLCollection.cpp:
763 (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
764 a separate class for that collection. Also got rid of the distinct types for custom collections
765 that don't need them (use Other for both).
766 * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
768 * html/HTMLFormCollection.cpp:
769 (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
770 for the HTMLCollection type.
772 * html/HTMLTableElement.cpp:
773 (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
774 (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
775 keeping a pointer to it.
776 (WebCore::HTMLTableElement::setCaption): Rewrote.
777 (WebCore::HTMLTableElement::tHead): Ditto.
778 (WebCore::HTMLTableElement::setTHead): Ditto.
779 (WebCore::HTMLTableElement::tFoot): Ditto.
780 (WebCore::HTMLTableElement::setTFoot): Ditto.
781 (WebCore::HTMLTableElement::createTHead): Ditto.
782 (WebCore::HTMLTableElement::deleteTHead): Ditto.
783 (WebCore::HTMLTableElement::createTFoot): Ditto.
784 (WebCore::HTMLTableElement::deleteTFoot): Ditto.
785 (WebCore::HTMLTableElement::createCaption): Ditto.
786 (WebCore::HTMLTableElement::deleteCaption): Ditto.
787 (WebCore::HTMLTableElement::lastBody): Added.
788 (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
789 This is different from the old code mainly in how it handles rows outside any section.
790 (WebCore::HTMLTableElement::deleteRow): Ditto.
791 (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
792 these was a possible source of serious bugs too, including crashes with stale pointers, although I
793 didn't write any test cases to prove those bugs existed.
794 (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
795 just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
796 visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
797 (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
798 * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
799 things like DOM mutation events take things ot of the tree before they are safely referenced by
800 JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
801 firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
802 Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
803 unneeded friend declaration for HTMLTableCellElement.
804 * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
806 * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
807 collection in which order.
808 * html/HTMLTableRowsCollection.h: Added.
810 * loader/FTPDirectoryDocument.cpp:
811 (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
812 coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
813 create a tbody element.
815 2008-01-02 Darin Adler <darin@apple.com>
817 Reviewed by Alice and Tim.
819 - try to fix GTK and Qt builds
821 * platform/win/ScrollViewWin.cpp:
822 (WebCore::ScrollView::scroll): Improve logic slightly for the case of
823 vertical scrolling when there's no vertical scroll bar.
825 * platform/gtk/ScrollViewGtk.cpp:
826 (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
827 should be factored differently.
828 * platform/qt/ScrollViewQt.cpp:
829 (WebCore::ScrollView::scroll): Ditto.
831 2008-01-02 Darin Adler <darin@apple.com>
835 - http://bugs.webkit.org/show_bug.cgi?id=16712
836 change StringImpl to take and return PassRefPtr instead of raw pointers
838 Also eliminated use of const StringImpl. Since StringImpl is immutable there
839 is no distinction between a const and non-const one at the moment.
841 * WebCore.base.exp: Updated.
844 (WebCore::parseURL): Make String directly, not by making a StringImpl.
846 (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
848 (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
849 to a function that takes a String.
851 * dom/CDATASection.cpp: Removed unused constructor.
852 (WebCore::CDATASection::cloneNode): Added a now-needed .get().
853 (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
854 * dom/CDATASection.h:
856 * dom/CharacterData.cpp:
857 (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
858 ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
859 (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
861 (WebCore::CharacterData::setData): More of that.
862 (WebCore::CharacterData::substringData): Ditto.
863 (WebCore::CharacterData::appendData): Ditto.
864 (WebCore::CharacterData::insertData): Ditto.
865 (WebCore::CharacterData::deleteData): Ditto.
866 (WebCore::CharacterData::replaceData): Ditto.
867 (WebCore::CharacterData::nodeValue): Ditto.
868 (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
869 (WebCore::CharacterData::dump): Ditto.
870 * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
871 instead, but since String adds extra branches to handle 0, I figured it was
872 more conservative to just use RefPtr. Later it would be good to figure out
873 which is preferred style and be more consistent. Maybe we'll phase out
874 StringImpl, or maybe we'll go the other way and use it more since it can be
877 * dom/DOMImplementation.cpp:
878 (WebCore::addString): Changed set to use String rather than StringImpl.
879 (WebCore::isSVG10Feature): Ditto.
880 (WebCore::isSVG11Feature): Ditto.
881 (WebCore::DOMImplementation::createDocument): Replaced custom code to
882 find a colon with a call to String::find.
885 (WebCore::Range::insertNode): Updated since the result of splitText is now
889 (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
890 result of this function be a PassRefPtr.
891 (WebCore::Text::createRenderer): Ditto.
892 (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
895 * html/HTMLElement.cpp:
896 (WebCore::HTMLElement::nodeName): Use String::upper.
898 * html/HTMLInputElement.cpp:
899 (WebCore::numGraphemeClusters): Remove now-unneeded const.
900 (WebCore::numCharactersInGraphemeClusters): Ditto.
902 * html/HTMLTokenizer.cpp:
903 (WebCore::HTMLTokenizer::processToken): Updated for function name change.
905 * platform/text/AtomicString.cpp:
906 (WebCore::CStringTranslator::translate): Updated since there is no longer
907 a constructor that takes a string.
909 * platform/text/PlatformString.h: Added new constructors that take
910 PassRefPtr and RefPtr. Removed misleading comment.
912 * platform/text/String.cpp:
913 (WebCore::String::String): Changed to use StringImpl::create, which handles
914 the empty string automatically.
915 (WebCore::String::append): Ditto.
916 (WebCore::String::charactersWithNullTermination): Similar.
917 (WebCore::String::format): Ditto.
919 * platform/text/StringHash.h: Took out unneeded const.
921 * platform/text/StringImpl.cpp:
922 (WebCore::deleteUCharVector): Changed to take a const pointer since the
923 buffers are now const UChar buffers.
924 (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
925 separate init functions. The constructors are now private and used only in
926 the create functions and one or two other places.
927 (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
928 (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
930 (WebCore::StringImpl::characterStartingAt): Ditto.
931 (WebCore::StringImpl::toLength): Ditto.
932 (WebCore::StringImpl::toCoordsArray): Ditto.
933 (WebCore::StringImpl::toLengthArray): Ditto.
934 (WebCore::StringImpl::isLower): Ditto.
935 (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
936 don't have to use new directly here. Makes empty string handling more consistent.
937 (WebCore::StringImpl::upper): Ditto.
938 (WebCore::StringImpl::secure): Ditto.
939 (WebCore::StringImpl::foldCase): Ditto.
940 (WebCore::StringImpl::stripWhiteSpace): Ditto.
941 (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
942 (WebCore::StringImpl::capitalize): Ditto.
943 (WebCore::StringImpl::toInt): Removed now-meaningless const.
944 (WebCore::StringImpl::toInt64): Ditto.
945 (WebCore::StringImpl::toUInt64): Ditto.
946 (WebCore::StringImpl::toDouble): Ditto.
947 (WebCore::StringImpl::toFloat): Ditto.
948 (WebCore::StringImpl::find): Ditto.
949 (WebCore::StringImpl::reverseFind): Ditto.
950 (WebCore::StringImpl::endsWith): Ditto.
951 (WebCore::StringImpl::replace): Ditto.
952 (WebCore::equal): Ditto.
953 (WebCore::equalIgnoringCase): Ditto.
954 (WebCore::StringImpl::ascii): Ditto.
955 (WebCore::StringImpl::defaultWritingDirection): Ditto.
956 (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
957 (WebCore::StringImpl::adopt): Added special case so this uses the shared
958 empty string like other functions. Also optimized the common case where the
959 vector happens to already have the right size so we don't do a fastRealloc
960 at all in those cases.
961 (WebCore::StringImpl::create): Added. These are now the public functions for
962 creating new StringImpl objects. They all implement the shared empty string.
963 (WebCore::StringImpl::createWithTerminatingNullCharacter):
964 * platform/text/StringImpl.h:
966 * platform/text/cf/StringCF.cpp:
967 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
968 * platform/text/cf/StringImplCF.cpp:
969 (WebCore::StringImpl::createCFString): Removed now-obsolete const.
970 * platform/text/mac/StringImplMac.mm:
971 (WebCore::StringImpl::operator NSString *): Ditto.
972 * platform/text/mac/StringMac.mm:
973 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
974 * platform/text/qt/StringQt.cpp:
975 (WebCore::String::String): Ditto.
976 * platform/text/wx/StringWx.cpp:
977 (WebCore::String::String): Ditto.
978 * rendering/RenderBR.cpp:
979 (WebCore::RenderBR::RenderBR): Ditto.
981 * rendering/RenderSVGInlineText.cpp:
982 (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
983 * rendering/RenderSVGInlineText.h:
985 * rendering/RenderText.cpp:
986 (WebCore::charactersAreAllASCII): Removed now-unneeded const.
987 * rendering/RenderTextFragment.cpp:
988 (WebCore::RenderTextFragment::originalText): Use RefPtr.
990 2008-01-02 Timothy Hatcher <timothy@apple.com>
992 Reviewed by Oliver Hunt.
994 <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
996 Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
997 internal element lookup tables. The represented DOM node object still holds the identifier
998 it was assigned, and a later call to findTreeElement will use that original identifier
999 against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
1001 * page/inspector/treeoutline.js:
1002 (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
1003 but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
1004 instead of an early return.
1006 2008-01-02 Alice Liu <alice.liu@apple.com>
1010 Fixed <rdar://5283861> (problems scrolling in gmail message content area)
1012 * platform/ScrollView.h:
1013 * platform/win/ScrollViewWin.cpp:
1014 (WebCore::ScrollView::scroll):
1015 Changed return value to bool to reflect success of scroll attempt
1017 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1019 Fixed a typo (pointed out in review, but I somehow missed it at first).
1021 * editing/EditorCommand.cpp: (WebCore::executeDelete):
1023 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1027 Resolved several FIXMEs in EditorCommand.
1028 Made recently added commands hidden from JS again.
1029 Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
1031 Tests: editing/execCommand/delete-no-scroll.html
1032 editing/execCommand/forward-delete-no-scroll.html
1033 editing/execCommand/insert-line-break-no-scroll.html
1035 * editing/EditorCommand.cpp:
1036 (WebCore::executeDelete):
1037 (WebCore::executeForwardDelete):
1038 (WebCore::executeInsertLineBreak):
1039 (WebCore::supportedFromMenuOrKeyBinding):
1040 (WebCore::CommandEntry::):
1042 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1046 http://bugs.webkit.org/show_bug.cgi?id=14555
1047 action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
1049 http://bugs.webkit.org/show_bug.cgi?id=14774
1050 Submitted data only includes first input item
1052 Reworked encoding of mailto URLs to match other browsers.
1053 Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
1055 Tests: fast/forms/mailto/advanced-get.html
1056 fast/forms/mailto/advanced-put.html
1057 fast/forms/mailto/get-multiple-items-text-plain.html
1058 fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
1059 fast/forms/mailto/get-multiple-items.html
1060 fast/forms/mailto/get-non-ascii.html
1061 fast/forms/mailto/get-non-ascii-text-plain.html
1062 fast/forms/mailto/get-overwrite-query.html
1063 fast/forms/mailto/post-append-query.html
1064 fast/forms/mailto/post-multiple-items-multipart-form-data.html
1065 fast/forms/mailto/post-multiple-items-text-plain.html
1066 fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
1067 fast/forms/mailto/post-multiple-items.html
1069 * html/HTMLFormElement.cpp:
1070 (WebCore::HTMLFormElement::submit):
1071 * loader/FrameLoader.cpp:
1072 (WebCore::FrameLoader::submitForm):
1074 2008-01-02 Mark Rowe <mrowe@apple.com>
1076 Autotools build fix.
1078 * GNUmakefile.am: Remove files before generating them, not after.
1080 2008-01-02 Mark Rowe <mrowe@apple.com>
1082 Rubber-stamped by Alp Toker.
1084 Add missing dependencies to some GNUmakefile.am rules.
1088 2008-01-02 Mark Rowe <mrowe@apple.com>
1090 Reviewed by Alp Toker.
1092 Autotools build fix. Make can expand $@ to any of the targets for the rule,
1093 while we always want to use the name of the .cpp file as the output file.
1097 2008-01-02 Luca Bruno <lethalman88@gmail.com>
1099 Reviewed by Alp Toker.
1101 http://bugs.webkit.org/show_bug.cgi?id=16115
1102 [GTK] ContextMenu and ContextMenuItem lacks an implementation
1104 Add context menu support.
1106 Based on a patch by Holger Freyther.
1108 * platform/gtk/ContextMenuGtk.cpp:
1109 (WebCore::menuItemActivated):
1110 (WebCore::ContextMenu::ContextMenu):
1111 (WebCore::ContextMenu::~ContextMenu):
1112 (WebCore::ContextMenu::appendItem):
1113 (WebCore::ContextMenu::setPlatformDescription):
1114 (WebCore::ContextMenu::releasePlatformDescription):
1115 * platform/gtk/ContextMenuItemGtk.cpp:
1116 (WebCore::ContextMenuItem::ContextMenuItem):
1117 (WebCore::ContextMenuItem::~ContextMenuItem):
1118 (WebCore::ContextMenuItem::releasePlatformDescription):
1119 (WebCore::ContextMenuItem::type):
1120 (WebCore::ContextMenuItem::action):
1121 (WebCore::ContextMenuItem::setAction):
1122 (WebCore::ContextMenuItem::platformSubMenu):
1123 (WebCore::ContextMenuItem::setSubMenu):
1124 (WebCore::ContextMenuItem::setChecked):
1125 (WebCore::ContextMenuItem::setEnabled):
1127 2008-01-02 Alp Toker <alp@atoker.com>
1129 GTK+ autotools build fix. Track changes in r29073.
1133 2008-01-01 Darin Adler <darin@apple.com>
1137 * bindings/js/kjs_binding.cpp:
1138 (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
1139 Removed default so we get a warning if there's a missing case.
1141 2008-01-01 David D. Kilzer <ddkilzer@webkit.org>
1143 Scripting MIME Types application/ecmascript, application/javascript not viewable
1144 <http://bugs.webkit.org/show_bug.cgi?id=11063>
1148 This patch consolidates the list of acceptable MIME types for JavaScript
1149 source into the MIMETypeRegistry class, and replaces checks for these
1150 types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
1152 No tests added since viewing JavaScript source is not testable.
1154 * dom/DOMImplementation.cpp:
1155 (WebCore::DOMImplementation::isTextMIMEType): Use
1156 MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
1157 hard-coded MIME type, "application/x-javascript".
1159 * html/HTMLScriptElement.cpp:
1160 (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
1161 JavaScript MIME types from here to
1162 MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
1164 * platform/MIMETypeRegistry.cpp:
1165 (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
1166 MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
1167 (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
1168 hard-coded MIME type, "application/x-javascript", from the list.
1169 (WebCore::initialiseMIMETypeRegistry): Initialise
1170 supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
1171 with values in supportedJavaScriptMIMETypes.
1172 (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
1174 * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
1176 2008-01-01 Sam Weinig <sam@webkit.org>
1180 Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
1181 Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
1183 - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
1184 - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
1185 - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
1187 Tests: fast/dom/DOMException/EventException.html
1188 fast/dom/DOMException/RangeException.html
1189 fast/dom/DOMException/XPathException.html
1190 http/tests/xmlhttprequest/XMLHttpRequestException.html
1191 svg/custom/SVGException.html
1193 * DerivedSources.make:
1195 * WebCore.vcproj/WebCore.vcproj:
1196 * WebCore.xcodeproj/project.pbxproj:
1197 * WebCoreSources.bkl:
1198 * bindings/js/JSSVGMatrixCustom.cpp:
1199 (WebCore::JSSVGMatrix::inverse):
1200 (WebCore::JSSVGMatrix::rotateFromVector):
1201 * bindings/js/kjs_binding.cpp:
1202 (KJS::setDOMException):
1203 * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
1204 in the IDL as the ObjC bindings do.
1205 * bindings/scripts/CodeGeneratorObjC.pm:
1206 * dom/DOMCoreException.cpp: Removed.
1207 * dom/DOMCoreException.h:
1208 (WebCore::DOMCoreException::DOMCoreException):
1209 * dom/DOMCoreException.idl:
1211 * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
1212 (WebCore::EventException::EventException):
1213 (WebCore::EventException::):
1214 * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1215 * dom/EventTargetNode.cpp:
1216 (WebCore::EventTargetNode::dispatchEvent):
1217 * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
1218 (WebCore::ExceptionBase::ExceptionBase):
1219 (WebCore::ExceptionBase::toString):
1220 * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
1221 (WebCore::ExceptionBase::code):
1222 * dom/ExceptionCode.cpp:
1223 (WebCore::getExceptionCodeDescription):
1224 * dom/ExceptionCode.h:
1227 (WebCore::Range::insertNode):
1228 (WebCore::Range::checkNodeWOffset):
1229 (WebCore::Range::checkNodeBA):
1230 (WebCore::Range::selectNode):
1231 (WebCore::Range::selectNodeContents):
1232 (WebCore::Range::surroundContents):
1233 * dom/RangeException.h:
1234 (WebCore::RangeException::RangeException):
1235 (WebCore::RangeException::):
1236 * dom/RangeException.idl:
1237 * page/DOMWindow.idl:
1239 (WebCore::SVGColor::setRGBColor):
1240 * svg/SVGException.h:
1241 (WebCore::SVGException::SVGException):
1242 (WebCore::SVGException::):
1243 * svg/SVGException.idl:
1244 * svg/SVGLocatable.cpp:
1245 (WebCore::SVGLocatable::getTransformToElement):
1246 * xml/XMLHttpRequest.cpp:
1247 (WebCore::XMLHttpRequest::dispatchEvent):
1248 (WebCore::XMLHttpRequest::open):
1249 (WebCore::XMLHttpRequest::send):
1250 * xml/XMLHttpRequest.h:
1251 * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
1252 (WebCore::XMLHttpRequestException::XMLHttpRequestException):
1253 (WebCore::XMLHttpRequestException::):
1254 * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1255 * xml/XPathEvaluator.h:
1256 * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
1257 (WebCore::XPathException::XPathException):
1258 (WebCore::XPathException::):
1259 * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1260 * xml/XPathParser.cpp:
1261 (WebCore::XPath::Parser::parseStatement):
1262 * xml/XPathResult.cpp:
1263 (WebCore::XPathResult::convertTo):
1264 (WebCore::XPathResult::numberValue):
1265 (WebCore::XPathResult::stringValue):
1266 (WebCore::XPathResult::booleanValue):
1267 (WebCore::XPathResult::singleNodeValue):
1268 (WebCore::XPathResult::snapshotLength):
1269 (WebCore::XPathResult::iterateNext):
1270 (WebCore::XPathResult::snapshotItem):
1272 2008-01-01 Sam Weinig <sam@webkit.org>
1274 Remove JSDomExceptionConstructor.lut.h from clean step
1275 as it no longer exists.
1279 2008-01-01 Dan Bernstein <mitz@apple.com>
1283 * WebCore.vcproj/WebCore.vcproj:
1285 2008-01-01 Sam Weinig <sam@webkit.org>
1287 Try again to fix the builds
1289 * DerivedSources.make:
1291 2008-01-01 Sam Weinig <sam@webkit.org>
1296 * WebCore.vcproj/WebCore.vcproj:
1297 * WebCoreSources.bkl:
1299 2008-01-01 Eric Seidel <eric@webkit.org>
1303 Don't replace \ with / in data: urls
1304 http://bugs.webkit.org/show_bug.cgi?id=16692
1306 Test: fast/loader/url-data-replace-backslash.html
1308 * platform/KURL.cpp:
1309 (WebCore::KURL::init):
1311 2008-01-01 Alp Toker <alp@atoker.com>
1313 GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
1314 correct parameter to AM_INIT_AUTOMAKE.
1318 2007-12-31 Sam Weinig <sam@webkit.org>
1322 Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
1323 Acid3 expects ExeceptionCode constants to be defined on DOMException objects
1325 - Make DOMException a real JS object.
1327 Test: fast/dom/DOMException/prototype-object.html
1329 * DerivedSources.make:
1330 * WebCore.xcodeproj/project.pbxproj:
1332 This is no longer needed as the autogenerated classes now includes the
1334 * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
1335 * bindings/js/JSDOMExceptionConstructor.h: Removed.
1337 Create on demand and use the new class for DOMExceptions.
1338 * bindings/js/kjs_binding.cpp:
1339 (KJS::setDOMException):
1341 Remove no longer needed custom constructor getter.
1342 * bindings/js/kjs_window.cpp:
1343 (KJS::Window::getValueProperty):
1345 Don't expose DOMCoreException as the name of class by special casing
1346 the user visible class name to be DOMException.
1347 * bindings/scripts/CodeGeneratorJS.pm:
1349 The DOMException class/file needs to be named DOMCoreException because there is
1350 name conflict with one of the Objective-C bindings classes. It should be renamed
1351 to DOMException when the Objective-C bindings are moved into WebKit.
1352 * dom/DOMCoreException.cpp: Added.
1353 (WebCore::DOMCoreException::DOMCoreException):
1354 (WebCore::DOMCoreException::toString):
1355 * dom/DOMCoreException.h: Added.
1356 (WebCore::DOMCoreException::):
1357 (WebCore::DOMCoreException::code):
1358 (WebCore::DOMCoreException::name):
1359 (WebCore::DOMCoreException::message):
1360 * dom/DOMCoreException.idl: Added.
1361 * page/DOMWindow.idl:
1363 2007-12-31 Sam Weinig <sam@webkit.org>
1365 Re-enable querySelector and querySelectorAll and touch the necessary files to not
1366 kill the windows build.
1368 * WebCore.vcproj/build-generated-files.sh:
1369 * bindings/scripts/CodeGeneratorCOM.pm:
1373 2007-12-31 Darin Adler <darin@apple.com>
1377 * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
1378 up as pure virtual functions. Sam can fix this later.
1379 * dom/Element.idl: Ditto.
1381 2007-12-31 Dan Bernstein <mitz@apple.com>
1383 Reviewed by Darin Adler.
1385 - fix http://bugs.webkit.org/show_bug.cgi?id=14134
1386 <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
1388 Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
1391 (WebCore::Node::attach): Added code to check if this node's renderer
1392 has become the "previous renderer" of any sibling text node, and if so,
1393 ensure that that node gets a renderer if it now needs one.
1394 (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
1395 node is not attached.
1397 2007-12-31 Darin Adler <darin@apple.com>
1401 - fix http://bugs.webkit.org/show_bug.cgi?id=16641
1402 Acid3 reveals HTMLFormElement.elements fails to update when element name changes
1404 Test: fast/dom/HTMLFormElement/elements-not-in-document.html
1406 This was a bug specific to forms that are not in the document tree.
1407 The fix was to change the code to increment the document version number to match
1408 up with other document change tracking. Maybe at some point we can clean these up
1409 so we don't have so many competing change notification systems.
1411 * dom/ContainerNode.cpp:
1412 (WebCore::ContainerNode::replaceChild): Removed bogus comment.
1413 (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
1414 call here, since this code path bypasses the subtree-modified event code.
1417 (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
1418 collections are for things in the document.
1419 (WebCore::Element::setAttributeMap): Ditto.
1421 * dom/EventTargetNode.cpp:
1422 (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
1423 incDOMTreeVersion here; covers most cases of tree structure changes.
1426 (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
1427 has nothing to do with changes to the DOM tree!
1428 (WebCore::Node::detach): Ditto.
1430 * html/HTMLFormElement.cpp:
1431 (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
1432 This is handled at a lower level and doesn't need to be here.
1433 (WebCore::HTMLFormElement::removeFormElement): Ditto.
1435 2007-12-31 Henry Mason <hmason@mac.com>
1439 Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
1440 Support for MessageEvent and cross-domain messaging
1442 Test: http/tests/messaging/cross-domain-message-send.html
1444 * DerivedSources.make:
1446 * WebCore.vcproj/WebCore.vcproj:
1447 * WebCore.xcodeproj/project.pbxproj:
1448 * WebCoreSources.bkl:
1449 * bindings/js/JSDOMWindowCustom.cpp:
1450 (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
1451 postMessage function.
1452 (WebCore::JSDOMWindow::postMessage):
1453 * bindings/js/JSEventCustom.cpp:
1456 (WebCore::Event::isMessageEvent):
1458 * dom/EventNames.h: New event name
1459 * dom/MessageEvent.cpp: Added.
1460 * dom/MessageEvent.h: Added.
1461 * dom/MessageEvent.idl: Added.
1462 * page/DOMWindow.cpp:
1463 (WebCore::DOMWindow::postMessage): Added.
1465 * page/DOMWindow.idl:
1467 2007-12-31 Darin Adler <darin@apple.com>
1471 - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
1473 * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
1474 * WebCore.vcproj/build-generated-files.sh: Ditto.
1476 2007-12-30 Alp Toker <alp@atoker.com>
1478 Reviewed by Dan Bernstein.
1484 2007-12-30 Sam Weinig <sam@webkit.org>
1486 Reviewed by Oliver Hunt.
1488 Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
1489 Variable names can be enumerated across domains
1490 <rdar://problem/5640454>
1492 Test: http/tests/security/cross-frame-access-enumeration.html
1494 * bindings/js/kjs_window.cpp:
1495 (KJS::Window::getPropertyNames): Override method to test same-origin policy.
1496 * bindings/js/kjs_window.h:
1498 2007-12-30 Sam Weinig <sam@webkit.org>
1500 Reviewed by Oliver Hunt.
1502 Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
1503 event instanceof MouseEvent throws exception
1505 Add JS constructors for all the Event types.
1507 Test: fast/events/event-instanceof.html
1509 * WebCore.xcodeproj/project.pbxproj:
1510 * dom/KeyboardEvent.idl:
1511 * dom/MouseEvent.idl:
1512 * dom/MutationEvent.idl:
1513 * dom/OverflowEvent.idl:
1514 * dom/ProgressEvent.idl:
1515 * dom/TextEvent.idl:
1517 * dom/WheelEvent.idl:
1518 * page/DOMWindow.idl:
1520 2007-12-30 David Kilzer <ddkilzer@webkit.org>
1524 - fix http://bugs.webkit.org/show_bug.cgi?id=15359
1525 JPEG image not shown when height is specified as percentage inside a table
1527 The problem occurs when a replaced element (image, canvas, etc.) with
1528 a percent-height attribute is contained by a table cell with an auto-
1529 or percent-height attribute. If there are no other conditions to cause
1530 the table cell's height to expand, an available height of zero will
1531 always be returned. In these cases, the intrinsic height of the
1532 replaced element should be used if it is greater than the available
1533 height of the table cell.
1535 Tests: fast/replaced/table-percent-height.html
1536 tables/mozilla/bugs/bug137388-1.html
1537 tables/mozilla/bugs/bug137388-2.html
1539 * rendering/RenderBox.cpp:
1540 (WebCore::RenderBox::calcReplacedHeightUsing):
1542 2007-12-30 Luca Bruno <lethalman88@gmail.com>
1544 Reviewed by Alp Toker.
1546 http://bugs.webkit.org/show_bug.cgi?id=16099
1547 Crash in CURL for empty POST
1549 We have to set POST even when the data is empty, otherwise cURL will
1550 hang while waiting for a response.
1552 * platform/network/curl/ResourceHandleManager.cpp
1553 (ResourceHandleManager::setupPOST): allow empty POST
1555 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1557 Reviewed by Alp Toker.
1559 Move all SVG related stuff inside SVG block. Don't include
1560 SVGNames, SVGElementFactory, and XLinkNames when SVG is not
1565 2007-12-29 Alexey Proskuryakov <ap@webkit.org>
1569 http://bugs.webkit.org/show_bug.cgi?id=14428
1570 FCKEditor: Images disappear on drag/drop and copy/paste
1572 Test: editing/pasteboard/drag-image-in-about-blank-frame.html
1574 * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
1575 base URL, just like we don't use an empty one.
1577 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1579 Reviewed by Alp Toker.
1581 http://bugs.webkit.org/show_bug.cgi?id=16669
1582 autotools update and fixes
1584 Autotools update and database/icon database inclusion guard fixes
1587 - Update autotools config as per -r29012 changes
1588 - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
1590 * loader/icon/IconDatabase.h:
1591 * page/DOMWindow.cpp:
1592 * page/InspectorController.cpp:
1593 * page/Settings.cpp:
1594 * storage/Database.h:
1595 - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
1597 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1601 Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
1602 (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
1605 (WebCore::Font::drawGlyphsWithSVGFont):
1607 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1611 Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
1612 SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
1614 * platform/graphics/FontData.cpp:
1615 (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
1616 (WebCore::FontData::ascent):
1617 (WebCore::FontData::descent):
1618 * platform/graphics/FontData.h:
1620 (WebCore::isVerticalWritingMode): Add helper function.
1621 (WebCore::Font::drawGlyphsWithSVGFont):
1622 * svg/SVGFontElement.cpp:
1623 (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
1624 * svg/SVGGlyphElement.cpp:
1625 (WebCore::parseArabicForm): Helper function.
1626 (WebCore::parseOrientation): Ditto.
1627 (WebCore::parsePathData): Ditto.
1628 (WebCore::SVGGlyphElement::buildGlyphIdentifier):
1629 * svg/SVGGlyphElement.h:
1630 (WebCore::SVGGlyphElement::rendererIsNeeded):
1632 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1636 Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
1637 SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
1639 * svg/SVGAnimationElement.cpp:
1640 (WebCore::SVGAnimationElement::parseMappedAttribute):
1641 * svg/SVGParserUtilities.cpp:
1642 (WebCore::parseDelimitedString):
1643 * svg/SVGParserUtilities.h:
1645 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1649 Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
1650 Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
1652 To optimize for the common case ('FontData' used for HTML rendering) it feels
1653 better to hold one OwnPtr in FontData, than several floats.
1655 Parse all <font> attributes in SVGFontFaceElement::createFontData.
1657 * platform/graphics/FontData.cpp:
1658 (WebCore::SVGFontData::SVGFontData):
1659 (WebCore::FontData::FontData):
1660 (WebCore::FontData::ascent):
1661 (WebCore::FontData::descent):
1662 * platform/graphics/FontData.h:
1663 (WebCore::FontData::isSVGFont):
1664 (WebCore::FontData::svgFontData):
1666 (WebCore::Font::drawGlyphsWithSVGFont):
1667 * svg/SVGFontElement.cpp:
1668 * svg/SVGFontElement.h:
1669 (WebCore::SVGFontElement::rendererIsNeeded):
1670 * svg/SVGFontFaceElement.cpp:
1671 (WebCore::SVGFontFaceElement::unitsPerEm):
1672 (WebCore::SVGFontFaceElement::createFontData):
1674 2007-12-28 Darin Adler <darin@apple.com>
1676 - try to fix Windows and WX builds (broken by SVG Fonts check-in)
1678 * platform/graphics/win/FontWin.cpp:
1679 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
1680 I can't see how it can be right to require the font size for ascent and descent,
1681 but not for other metrics functions in FontData.
1683 * platform/graphics/wx/FontWx.cpp:
1684 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
1686 2007-12-28 Dan Bernstein <mitz@apple.com>
1688 Reviewed by Mark Rowe.
1690 - fix http://bugs.webkit.org/show_bug.cgi?id=16650
1691 <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
1693 Covered by existing pixel tests.
1695 * platform/graphics/mac/FontMac.mm:
1696 (WebCore::Font::drawComplexText): Corrected to maintain the style
1697 information in the adjusted text run when passing it to
1698 ATSUILayoutParameters. Prior to r28298 the style was passed separately.
1700 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1702 Build fix, not reviewed.
1704 Add wtf/OwnPtr.h include, to fix --svg-fonts build.
1706 * css/SVGCSSFontFace.h:
1708 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1712 Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
1714 Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
1715 Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
1716 are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
1718 Limited to single char <-> glyph mapping, no ligatures supported yet.
1719 (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
1721 Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
1723 No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
1724 attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
1726 * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
1727 * WebCore.pro: Updated build system.
1728 * WebCore.vcproj/WebCore.vcproj: Ditto.
1729 * WebCore.xcodeproj/project.pbxproj: Ditto.
1730 * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
1731 * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
1732 (WebCore::createElementClassMap):
1733 * bindings/objc/DOMInternal.h: Ditto.
1734 * bindings/objc/DOMSVG.h: Ditto.
1735 * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
1736 * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
1737 (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
1738 (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
1739 (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
1740 * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
1741 (WebCore::CSSFontSelector::addFontFaceRule):
1742 * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
1743 (WebCore::SVGCSSFontFace::SVGCSSFontFace):
1744 (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
1745 (WebCore::SVGCSSFontFace::isValid):
1746 (WebCore::SVGCSSFontFace::addSource):
1747 (WebCore::SVGCSSFontFace::getFontData):
1748 * css/SVGCSSFontFace.h: Added.
1749 * platform/graphics/cg/PathCG.cpp:
1750 (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
1751 * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
1752 (WebCore::Font::ascent): Pass font size to FontData::ascent() call
1753 (WebCore::Font::descent): Pass font size to FontData::descent() call
1754 (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
1755 (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
1756 * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
1757 (WebCore::TextRun::TextRun):
1758 (WebCore::TextRun::referencingRenderObject):
1759 (WebCore::TextRun::setReferencingRenderObject):
1760 * platform/graphics/FontData.cpp:
1761 (WebCore::FontData::FontData):
1762 (WebCore::FontData::ascent):
1763 (WebCore::FontData::descent):
1764 * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
1765 (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
1766 (WebCore::FontData::svgFontFace):
1767 * rendering/SVGInlineTextBox.cpp:
1768 (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
1769 * rendering/SVGRootInlineBox.cpp:
1770 (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
1771 * svg/SVGFont.cpp: Added.
1772 (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
1773 * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
1774 (WebCore::SVGFontElement::SVGFontElement):
1775 (WebCore::SVGFontElement::~SVGFontElement):
1776 (WebCore::SVGFontElement::parseMappedAttribute):
1777 (WebCore::SVGFontElement::collectGlyphs):
1778 (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
1779 * svg/SVGFontElement.h: Added.
1780 (WebCore::GlyphHash::hash):
1781 (WebCore::GlyphHash::equal):
1782 (WebCore::GlyphHashTraits::deletedValue):
1783 (WebCore::SVGFontElement::rendererIsNeeded):
1784 (WebCore::SVGFontElement::contextElement):
1785 * svg/SVGFontElement.idl: Added.
1786 * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
1787 (WebCore::SVGFontFaceElement::unitsPerEm):
1788 (WebCore::SVGFontFaceElement::fontFamily):
1789 (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
1790 (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
1791 (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
1792 (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
1793 * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
1794 * svg/SVGFontFaceElement.idl: Ditto.
1795 * svg/SVGFontFaceFormatElement.cpp: Ditto.
1796 * svg/SVGFontFaceFormatElement.h: Ditto.
1797 * svg/SVGFontFaceFormatElement.idl: Ditto.
1798 * svg/SVGFontFaceNameElement.cpp: Ditto.
1799 * svg/SVGFontFaceNameElement.h: Ditto.
1800 * svg/SVGFontFaceNameElement.idl: Ditto.
1801 * svg/SVGFontFaceSrcElement.cpp: Ditto.
1802 * svg/SVGFontFaceSrcElement.h: Ditto.
1803 * svg/SVGFontFaceSrcElement.idl: Ditto.
1804 * svg/SVGFontFaceUriElement.cpp: Ditto.
1805 * svg/SVGFontFaceUriElement.h: Ditto.
1806 * svg/SVGFontFaceUriElement.idl: Ditto.
1807 * svg/SVGDefinitionSrcElement.cpp: Ditto.
1808 * svg/SVGDefinitionSrcElement.h: Ditto.
1809 * svg/SVGDefinitionSrcElement.idl: Ditto.
1810 * svg/SVGGlyphElement.cpp: Added.
1811 (WebCore::SVGGlyphElement::SVGGlyphElement):
1812 (WebCore::SVGGlyphElement::parseMappedAttribute):
1813 (WebCore::SVGGlyphElement::childrenChanged):
1814 * svg/SVGGlyphElement.h: Added.
1815 (WebCore::SVGGlyphElement::rendererIsNeeded):
1816 (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
1817 (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
1818 * svg/SVGGlyphElement.idl: Added.
1819 * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
1820 (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
1821 (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
1822 (WebCore::SVGMissingGlyphElement::childrenChanged):
1823 * svg/SVGMissingGlyphElement.h: Added.
1824 (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
1825 * svg/SVGMissingGlyphElement.idl: Added.
1826 * 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!).
1828 2007-12-27 Dan Bernstein <mitz@apple.com>
1830 Reviewed by Alexey Proskuryakov.
1832 - fix http://bugs.webkit.org/show_bug.cgi?id=16628
1833 ASSERTION FAILED: m_resizeLayer (running layout tests)
1835 * rendering/RenderLayer.cpp:
1836 (WebCore::RenderLayer::~RenderLayer): Avoid calling
1837 EventHandler::resizeLayerDestroyed() if the document is being destroyed.
1839 2007-12-27 Dan Bernstein <mitz@apple.com>
1841 Reviewed by Oliver Hunt.
1843 - fix http://bugs.webkit.org/show_bug.cgi?id=16603
1844 <rdar://problem/5664199> Crash when resizing text field
1846 Test: fast/layers/resize-layer-deletion-crash.html
1848 The event handler has only a weak reference to the layer that is
1849 currently in resize mode, so it is the layer's responsibility to let
1850 the event handler know if it has been destroyed while in that mode.
1852 * page/EventHandler.cpp:
1853 (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
1855 * page/EventHandler.h:
1856 * rendering/RenderLayer.cpp:
1857 (WebCore::RenderLayer::~RenderLayer): Added a call to
1858 EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
1860 2007-12-27 Collin Jackson <webkit@collinjackson.com>
1862 Reviewed by Sam Weinig.
1864 http://bugs.webkit.org/show_bug.cgi?id=16539
1865 <rdar://problem/5659269>
1867 The same-origin check was missing in the implementation of
1868 setTimeout, setInterval, addEventListener, and removeEventListener.
1870 Suppose <http://www.badguy.com/> contains an iframe to
1871 <http://www.goodguy.com/>. Now www.badguy.com can steal
1872 www.goodguy.com cookies by running this code:
1874 setTimeout.call(frames[0], "alert(document.cookie)", 1000);
1876 This patch changes the behavior so that setTimeout to does
1877 nothing and returns an undefined value if the caller is not
1878 permitted to script the window whose setTimeout method is being
1879 called. The same applies to setInterval, addEventListener, and
1880 removeEventListener.
1882 Tests: http/tests/security/cross-frame-access-call.html
1884 * bindings/js/kjs_window.cpp:
1885 (KJS::WindowProtoFuncSetTimeout::callAsFunction)
1886 (KJS::WindowProtoFuncSetInterval::callAsFunction)
1887 (KJS::WindowProtoFuncAddEventListener::callAsFunction)
1888 (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
1890 2007-12-27 Dan Bernstein <mitz@apple.com>
1892 Reviewed by Dave Hyatt and Sam Weinig.
1894 - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
1896 Test: fast/layers/add-layer-with-nested-stacking.html
1897 Test: fast/layers/remove-layer-with-nested-stacking.html
1899 * rendering/RenderLayer.cpp:
1900 (WebCore::RenderLayer::addChild): If the new child is overflow-only
1901 but has children of its own, dirty the stacking context's z-order lists
1902 since the grandchildren might need to be in them.
1903 (WebCore::RenderLayer::removeChild): Similarly for the old child.
1905 2007-12-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1907 Reviewed by Alp Toker.
1909 http://bugs.webkit.org/show_bug.cgi?id=16353
1910 [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
1912 Added the flags mentioned in the bug only when doing 'debug'
1913 builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
1918 2007-12-27 Dan Bernstein <mitz@apple.com>
1920 Reviewed by Eric Seidel.
1922 - fix http://bugs.webkit.org/show_bug.cgi?id=16490
1923 ASSERT in ~FrameView while viewing/reloading WICD test case
1925 Test: fast/dynamic/paused-event-dispatch.html
1927 * page/FrameView.cpp:
1928 (WebCore::FrameView::~FrameView):
1929 (WebCore::FrameView::layout): Changed to always pause event dispatch and
1930 always resume event dispatch, regardless of whether the post-layout
1931 task timer is active. However, if it is active, assert that event
1932 dispatch is still paused.
1934 2007-12-27 Alexey Proskuryakov <ap@webkit.org>
1938 http://bugs.webkit.org/show_bug.cgi?id=14500
1939 need to be more generous about charset declaration with meta tag
1941 http://bugs.webkit.org/show_bug.cgi?id=12526
1942 <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
1944 <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
1946 <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
1948 Tests: fast/encoding/ahram-org-eg.html
1949 fast/encoding/bandai-co-jp-releases.html
1950 fast/encoding/floraexpress-ru.html
1951 fast/encoding/hanarei-blog32-fc2-com.html
1952 fast/encoding/yahoo-mail.html
1954 * loader/TextResourceDecoder.cpp:
1955 (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
1956 seen at least 512 bytes of input.
1958 2007-12-26 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1960 Reviewed by Alp Toker.
1962 http://bugs.webkit.org/show_bug.cgi?id=16390
1963 Use autotools or GNU make as the build system for the GTK port
1965 * GNUmakefile.am: Added.
1967 2007-12-26 Alexey Proskuryakov <ap@webkit.org>
1969 Reviewed by Sam Weinig.
1971 http://bugs.webkit.org/show_bug.cgi?id=16609
1972 Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
1974 * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
1976 2007-12-26 Mark Rowe <mrowe@apple.com>
1980 * platform/Threading.h:
1982 2007-12-25 Rob Buis <buis@kde.org>
1986 http://bugs.webkit.org/show_bug.cgi?id=15514
1987 <clipPath> with <use> not respected
1988 http://bugs.webkit.org/show_bug.cgi?id=16557
1989 SVG circle elements have been clipped away completely, instead of partially.
1991 Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
1993 * svg/SVGClipPathElement.cpp:
1994 (WebCore::SVGClipPathElement::canvasResource):
1995 * svg/SVGStyledTransformableElement.h:
1996 (WebCore::SVGStyledTransformableElement::toClipPath):
1997 * svg/SVGUseElement.cpp:
1998 (WebCore::isDirectReference):
1999 (WebCore::SVGUseElement::toClipPath):
2000 * svg/SVGUseElement.h:
2002 2007-12-25 Sam Weinig <sam@webkit.org>
2004 Reviewed by Eric Seidel.
2006 Clean up the files relating to NodeLists.
2008 * dom/ChildNodeList.cpp:
2009 (WebCore::ChildNodeList::ChildNodeList):
2010 (WebCore::ChildNodeList::length):
2011 (WebCore::ChildNodeList::item):
2012 (WebCore::ChildNodeList::nodeMatches):
2013 * dom/ChildNodeList.h:
2014 * dom/DynamicNodeList.cpp:
2015 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2016 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2017 (WebCore::DynamicNodeList::itemWithName):
2018 * dom/DynamicNodeList.h:
2019 (WebCore::DynamicNodeList::needsNotifications):
2020 * dom/NameNodeList.cpp:
2021 (WebCore::NameNodeList::NameNodeList):
2022 (WebCore::NameNodeList::rootNodeAttributeChanged):
2023 (WebCore::NameNodeList::nodeMatches):
2024 * dom/NameNodeList.h:
2026 * dom/SelectorNodeList.h:
2028 2007-12-25 Sam Weinig <sam@webkit.org>
2033 * WebCore.vcproj/WebCore.vcproj:
2034 * WebCoreSources.bkl:
2036 2007-12-25 Sam Weinig <sam@webkit.org>
2038 Rubber stamped by Eric Seidel.
2040 Move TagNodeList into its own file.
2042 * WebCore.xcodeproj/project.pbxproj:
2044 * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
2045 (WebCore::TagNodeList::TagNodeList):
2046 * dom/TagNodeList.h: Copied from dom/Node.cpp.
2048 2007-12-25 Sam Weinig <sam@webkit.org>
2050 Reviewed by Eric Seidel.
2052 Simplify the NodeList architecture.
2053 - Rename recursiveItem() to item(), since it is not recursive.
2054 - Make recursiveLength() iterative and rename to length().
2055 - Remove now unneeded overrides of item() and length() that used
2056 to call the recursive variants.
2058 * dom/ClassNodeList.cpp:
2059 * dom/ClassNodeList.h:
2060 * dom/DynamicNodeList.cpp:
2061 (WebCore::DynamicNodeList::length):
2062 (WebCore::DynamicNodeList::item):
2063 (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation
2064 into the .cpp file since virtual methods can't be inlined.
2065 * dom/DynamicNodeList.h:
2066 * dom/NameNodeList.cpp:
2067 * dom/NameNodeList.h:
2070 2007-12-25 Alp Toker <alp@atoker.com>
2072 More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
2076 * WebCore.vcproj/WebCore.vcproj:
2077 * WebCoreSources.bkl:
2079 2007-12-25 Alp Toker <alp@atoker.com>
2081 Win build fix for breakage introduced in r28981.
2083 * WebCore.vcproj/WebCore.vcproj:
2085 2007-12-25 Alp Toker <alp@atoker.com>
2087 Wx build fix for breakage introduced in r28981.
2089 * WebCoreSources.bkl:
2091 2007-12-25 Alp Toker <alp@atoker.com>
2093 GTK+/Qt build fix for breakage introduced in r28981.
2097 2007-12-25 David Smith <catfish.man@gmail.com> and Sam Weinig <sam@webkit.org>
2101 - http://bugs.webkit.org/show_bug.cgi?id=16587
2102 Implement the most useful part of the W3C Selectors API.
2104 * WebCore.xcodeproj/project.pbxproj:
2105 * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
2106 * dom/ChildNodeList.cpp:
2107 (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
2108 * dom/ChildNodeList.h:
2109 * dom/ClassNodeList.cpp:
2110 (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
2111 * dom/ClassNodeList.h:
2112 * dom/Document.idl: Add the new functions
2113 * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
2114 (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
2115 (WebCore::DynamicNodeList::~DynamicNodeList):
2116 (WebCore::DynamicNodeList::recursiveLength):
2117 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2118 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2119 (WebCore::DynamicNodeList::recursiveItem):
2120 (WebCore::DynamicNodeList::itemWithName):
2121 (WebCore::DynamicNodeList::rootNodeChildrenChanged):
2122 (WebCore::DynamicNodeList::Caches::Caches):
2123 (WebCore::DynamicNodeList::Caches::reset):
2124 * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
2125 (WebCore::DynamicNodeList::rootNodeAttributeChanged):
2126 * dom/Element.idl: Add the new functions
2127 * dom/NameNodeList.cpp: Change to being a DynamicNodeList
2128 (WebCore::NameNodeList::NameNodeList):
2129 * dom/NameNodeList.h:
2130 (WebCore::NameNodeList::rootNodeAttributeChanged):
2132 (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
2133 (WebCore::Node::registerDynamicNodeList):
2134 (WebCore::Node::unregisterDynamicNodeList):
2135 (WebCore::Node::getElementsByName):
2136 (WebCore::Node::getElementsByClassName):
2137 (WebCore::Node::querySelector): new
2138 (WebCore::Node::querySelectorAll): new
2140 * dom/NodeList.cpp: Removed.
2141 * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
2142 (WebCore::NodeList::NodeList):
2143 (WebCore::NodeList::~NodeList):
2144 * dom/SelectorNodeList.cpp: Added.
2145 (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
2146 * dom/SelectorNodeList.h: Added.
2147 * dom/StaticNodeList.cpp: Added.
2148 (WebCore::StaticNodeList::length):
2149 (WebCore::StaticNodeList::item):
2150 (WebCore::StaticNodeList::itemWithName):
2151 * dom/StaticNodeList.h: Added.
2152 (WebCore::StaticNodeList::StaticNodeList):
2153 (WebCore::StaticNodeList::~StaticNodeList):
2155 2007-12-25 Mark Rowe <mrowe@apple.com>
2157 Reviewed by Sam Weinig.
2159 Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
2160 http://bugs.webkit.org/show_bug.cgi?id=16596
2162 This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
2163 of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
2164 access to a single ThreadSafeShared object.
2166 The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
2168 * platform/Threading.h:
2169 (WebCore::atomicIncrement):
2170 (WebCore::atomicDecrement):
2171 (WebCore::ThreadSafeShared::ThreadSafeShared):
2172 (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
2173 (WebCore::ThreadSafeShared::deref): Ditto.
2174 (WebCore::ThreadSafeShared::hasOneRef):
2175 (WebCore::ThreadSafeShared::refCount):
2176 (WebCore::ThreadSafeShared::isThreadSafe):
2178 2007-12-24 Darin Adler <darin@apple.com>
2180 * platform/text/PlatformString.h: Removed now-incorrect comment.
2181 Added a comment about copy().
2182 * platform/text/StringImpl.h: Added a comment about copy().
2184 2007-12-24 Darin Adler <darin@apple.com>
2188 - http://bugs.webkit.org/show_bug.cgi?id=16550
2189 make StringImpl immutable
2191 I tried to keep the changes to a minimum. In some cases there is
2192 room for optimization -- I didn't try to add in the "single ref count"
2193 optimizations and there might be a tiny bit more string copying than
2196 * WebCore.base.exp: Updated.
2198 * dom/CharacterData.cpp:
2199 (WebCore::CharacterData::appendData): Changed to use String since
2200 StringImpl doesn't have mutating functions any more.
2201 (WebCore::CharacterData::insertData): Ditto.
2202 (WebCore::CharacterData::deleteData): Ditto.
2203 (WebCore::CharacterData::replaceData): Ditto.
2205 (WebCore::Text::splitText): Changed to use substring instead of
2206 remove since StringImpl does't have mutating functions any more.
2207 * editing/CompositeEditCommand.cpp:
2208 (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
2209 to use String instead of StringImpl so we can use remove.
2211 * platform/text/PlatformString.h: Removed newUninitialized.
2212 Added append that takes a character pointer and length.
2214 * platform/text/String.cpp:
2215 (WebCore::String::insert): Added an implementation that does not
2216 rely on an underlying StringImpl function.
2217 (WebCore::String::append): Ditto.
2218 (WebCore::String::truncate): Ditto.
2219 (WebCore::String::remove): Ditto.
2220 (WebCore::String::charactersWithNullTermination): Added an
2221 implementation that uses the new StringImpl null termination feature,
2222 which does not require modifying a string.
2224 * platform/text/StringImpl.cpp:
2225 (WebCore::isSpace): Fix comment.
2226 (WebCore::StringImpl::StringImpl): Added a new constructor that makes
2227 a string with a trailing null character.
2228 (WebCore::StringImpl::substring): Marked const.
2229 (WebCore::StringImpl::replace): Marked const; had to add quite a few
2230 const_cast. Also rewrote one of these to work without modifying the
2233 * platform/text/StringImpl.h: Fixed a mistake where the empty string had
2234 m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
2235 for creating strings that have a trailing null character. Added a
2236 hasTerminatingNullCharacter function. Removed newUninitialized,
2237 charactersWithNullTermination, append, insert, truncate, and remove.
2238 Marked lots of other functions const.
2240 * platform/text/TextCodecLatin1.cpp:
2241 (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
2243 * platform/text/TextCodecUTF16.cpp:
2244 (WebCore::TextCodecUTF16::decode): Ditto.
2245 * platform/text/TextCodecUserDefined.cpp:
2246 (WebCore::TextCodecUserDefined::decode): Ditto.
2248 * rendering/RenderStyle.cpp:
2249 (WebCore::RenderStyle::setContent): Changed to use String since
2250 StringImpl doesn't have mutating functions any more.
2252 2007-12-24 Alexey Proskuryakov <ap@webkit.org>
2256 Fix fast/events/arrow-keys-on-body.html, failing on Windows.
2258 * platform/win/KeyEventWin.cpp:
2259 (WebCore::isKeypadEvent):
2260 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2261 Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
2263 2007-12-23 Alexey Proskuryakov <ap@webkit.org>
2265 Fix Debug and Release QTMovieWin bulds.
2267 * WebCore.vcproj/QTMovieWin.vcproj:
2268 * WebCore.vcproj/debug.vsprops:
2269 * WebCore.vcproj/debug_internal.vsprops:
2270 * WebCore.vcproj/release.vsprops:
2271 Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
2272 Build release import lib into \lib, not \bin.
2274 2007-12-23 Alp Toker <alp@atoker.com>
2276 Reviewed by Holger Freyther.
2278 http://bugs.webkit.org/show_bug.cgi?id=15382
2279 [CAIRO] Canvas pattern support
2281 http://bugs.webkit.org/show_bug.cgi?id=16577
2282 Merge Cairo enhancements from Apollo project
2284 Add support for canvas patterns.
2286 Make Image::nativeImageForCurrentFrame() public.
2288 Fix some typos along the way.
2290 The globalAlpha canvas fixes are not included in this patch as
2291 they're slightly more intrusive and may conflict conceptually with
2292 GraphicsContext::setAlpha().
2294 * html/CanvasPattern.cpp:
2295 (WebCore::CanvasPattern::CanvasPattern):
2296 (WebCore::CanvasPattern::~CanvasPattern):
2297 (WebCore::CanvasPattern::createPattern):
2298 * html/CanvasPattern.h:
2299 (WebCore::CanvasPattern::platformImage):
2300 * html/CanvasRenderingContext2D.cpp:
2301 (WebCore::CanvasRenderingContext2D::setShadow):
2302 (WebCore::CanvasRenderingContext2D::applyShadow):
2303 (WebCore::CanvasRenderingContext2D::drawImage):
2304 (WebCore::CanvasRenderingContext2D::createPattern):
2305 (WebCore::CanvasRenderingContext2D::applyStrokePattern):
2306 (WebCore::CanvasRenderingContext2D::applyFillPattern):
2307 * platform/graphics/Image.h:
2308 (WebCore::Image::nativeImageForCurrentFrame):
2310 2007-12-23 Kevin Ollivier <kevino@theolliviers.com>
2312 Reviewed by Eric Seidel.
2314 Remove getWxBitmap as we have nativeImageForCurrentFrame now,
2315 and don't draw a border in fillRect.
2317 * platform/graphics/BitmapImage.h:
2318 * platform/graphics/wx/GraphicsContextWx.cpp:
2319 (WebCore::GraphicsContext::fillRect):
2320 * platform/graphics/wx/ImageWx.cpp:
2322 2007-12-23 Alp Toker <alp@atoker.com>
2324 Reviewed by Holger Freyther.
2326 http://bugs.webkit.org/show_bug.cgi?id=16577
2327 Merge Cairo enhancements from Apollo project
2329 This patch is based on initial merging work by Brent Fulgham. Adobe's
2330 code has been modified in a few places to better suit the existing
2333 Implement more clipping and drawing functions.
2335 Save and restore the fill rule manually when clipping.
2337 Avoid image surface creation when the image buffer has height zero.
2339 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2340 (WebCore::GraphicsContext::clip):
2341 (WebCore::GraphicsContext::addInnerRoundedRectClip):
2342 (WebCore::GraphicsContext::addPath):
2343 (WebCore::GraphicsContext::clipOut):
2344 (WebCore::GraphicsContext::clipOutEllipseInRect):
2345 (WebCore::GraphicsContext::fillRoundedRect):
2346 * platform/graphics/cairo/ImageSourceCairo.cpp:
2347 (WebCore::ImageSource::createFrameAtIndex):
2349 2007-12-23 Nikolas Zimmermann <zimmermann@kde.org>
2353 Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
2355 * bindings/objc/DOM.mm:
2356 (WebCore::createElementClassMap):
2358 2007-12-22 Alp Toker <alp@atoker.com>
2362 GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
2363 empty target flags for now.
2365 Check GTK+, not GLib versions, since they are different.
2367 * platform/gtk/PasteboardGtk.cpp:
2368 (WebCore::Pasteboard::documentFragment):
2370 2007-12-22 Luca Bruno <lethalman88@gmail.com>
2372 Reviewed by Alp Toker.
2374 http://bugs.webkit.org/show_bug.cgi?id=16311
2375 [Gtk] Copy rich text to clipboard as text/plain and text/html.
2377 Hook into the WebView to get the correct clipboard object on the
2378 appropriate display. This is necessary because GTK+ does not have
2382 * platform/Pasteboard.h:
2383 (WebCore::Pasteboard::setHelper): added for GTK
2384 (WebCore::Pasteboard::m_helper): private added for GTK
2385 * platform/gtk/PasteboardGtk.cpp:
2386 (WebCore::PasteboardSelectionData): added to support GTK selection data callback
2387 (WebCore::clipboard_get_contents_cb): added
2388 (WebCore::clipboard_clear_contents_cb): added
2389 (WebCore::Pasteboard::~Pasteboard):
2390 (WebCore::Pasteboard::setHelper):
2391 (WebCore::Pasteboard::writeSelection): copy rich text
2392 (WebCore::Pasteboard::documentFragment):
2393 (WebCore::Pasteboard::plainText):
2394 * platform/gtk/PasteboardHelper.h: Added.
2396 2007-12-22 Nikolas Zimmermann <zimmermann@kde.org>
2400 Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
2402 Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
2403 SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
2404 for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
2407 * rendering/InlineBox.h:
2408 (WebCore::InlineBox::isSVGRootInlineBox):
2409 * rendering/SVGInlineTextBox.cpp:
2410 (WebCore::SVGInlineTextBox::svgRootInlineBox):
2411 (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2412 (WebCore::SVGInlineTextBox::selectionRect):
2413 * rendering/SVGRenderTreeAsText.cpp:
2414 (WebCore::writeSVGInlineTextBox):
2415 * rendering/SVGRootInlineBox.h:
2416 (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
2418 2007-12-22 Alp Toker <alp@atoker.com>
2420 LOW_BANDWIDTH_DISPLAY build fix
2422 Track recent KURL DeprecatedString changes.
2424 * loader/FrameLoader.cpp:
2425 (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2427 2007-12-22 Dan Bernstein <mitz@apple.com>
2431 * WebCore.vcproj/WebCore.vcproj:
2433 2007-12-22 Xan Lopez <xan@gnome.org>
2435 Reviewed by Alp Toker.
2437 Add missing return 0 to fix a compile warning.
2439 * page/gtk/FrameGtk.cpp:
2440 (WebCore::Frame::createScriptInstanceForWidget):
2442 2007-12-21 Antti Koivisto <antti@apple.com>
2444 Reviewed by Darin, Adam and Steve.
2446 Add media playback support for Windows.
2448 The implementation uses low level QuickTime API. DLL is
2449 needed to work around CF use in both WebKit and QuickTime.
2451 This makes Windows build depend on the QuickTime SDK
2453 http://developer.apple.com/quicktime/download/
2455 but not QuickTime itself.
2457 QTMovieWinTimer contains some copy code from SharedTimerWin. It
2458 is used in the QuickTime access DLL which can't use WebCore
2459 SharedTimer due to dependency problems.
2461 * WebCore.vcproj/QTMovieWin.vcproj: Added.
2462 * WebCore.vcproj/WebCore.vcproj:
2463 * WebCore.vcproj/build-generated-files.sh:
2464 * html/HTMLMediaElement.cpp:
2465 (WebCore::HTMLMediaElement::setSrc):
2466 * platform/graphics/MediaPlayer.cpp:
2467 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
2468 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2469 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2470 (WebCore::MediaPlayerPrivate::load):
2471 (WebCore::MediaPlayerPrivate::play):
2472 (WebCore::MediaPlayerPrivate::pause):
2473 (WebCore::MediaPlayerPrivate::duration):
2474 (WebCore::MediaPlayerPrivate::currentTime):
2475 (WebCore::MediaPlayerPrivate::seek):
2476 (WebCore::MediaPlayerPrivate::doSeek):
2477 (WebCore::MediaPlayerPrivate::cancelSeek):
2478 (WebCore::MediaPlayerPrivate::seekTimerFired):
2479 (WebCore::MediaPlayerPrivate::setEndTime):
2480 (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
2481 (WebCore::MediaPlayerPrivate::endPointTimerFired):
2482 (WebCore::MediaPlayerPrivate::paused):
2483 (WebCore::MediaPlayerPrivate::seeking):
2484 (WebCore::MediaPlayerPrivate::naturalSize):
2485 (WebCore::MediaPlayerPrivate::hasVideo):
2486 (WebCore::MediaPlayerPrivate::setVolume):
2487 (WebCore::MediaPlayerPrivate::setMuted):
2488 (WebCore::MediaPlayerPrivate::setRate):
2489 (WebCore::MediaPlayerPrivate::dataRate):
2490 (WebCore::MediaPlayerPrivate::maxTimeBuffered):
2491 (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2492 (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2493 (WebCore::MediaPlayerPrivate::bytesLoaded):
2494 (WebCore::MediaPlayerPrivate::totalBytesKnown):
2495 (WebCore::MediaPlayerPrivate::totalBytes):
2496 (WebCore::MediaPlayerPrivate::cancelLoad):
2497 (WebCore::MediaPlayerPrivate::updateStates):
2498 (WebCore::MediaPlayerPrivate::didEnd):
2499 (WebCore::MediaPlayerPrivate::setRect):
2500 (WebCore::MediaPlayerPrivate::setVisible):
2501 (WebCore::MediaPlayerPrivate::paint):
2502 (WebCore::MediaPlayerPrivate::getSupportedTypes):
2503 (WebCore::MediaPlayerPrivate::movieEnded):
2504 (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
2505 (WebCore::MediaPlayerPrivate::movieTimeChanged):
2506 (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
2507 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
2508 (WebCore::MediaPlayerPrivate::networkState):
2509 (WebCore::MediaPlayerPrivate::readyState):
2510 * platform/graphics/win/QTMovieWin.cpp: Added.
2512 (QTMovieWinPrivate::QTMovieWinPrivate):
2513 (QTMovieWinPrivate::~QTMovieWinPrivate):
2515 (QTMovieWinPrivate::startTask):
2516 (QTMovieWinPrivate::endTask):
2517 (QTMovieWinPrivate::task):
2518 (QTMovieWinPrivate::registerDrawingCallback):
2519 (QTMovieWinPrivate::drawingComplete):
2520 (QTMovieWinPrivate::createGWorld):
2521 (QTMovieWinPrivate::setSize):
2522 (QTMovieWinPrivate::deleteGWorld):
2523 (QTMovieWin::QTMovieWin):
2524 (QTMovieWin::~QTMovieWin):
2526 (QTMovieWin::pause):
2528 (QTMovieWin::setRate):
2529 (QTMovieWin::duration):
2530 (QTMovieWin::currentTime):
2531 (QTMovieWin::setCurrentTime):
2532 (QTMovieWin::setVolume):
2533 (QTMovieWin::setMuted):
2534 (QTMovieWin::dataSize):
2535 (QTMovieWin::maxTimeLoaded):
2536 (QTMovieWin::loadState):
2537 (QTMovieWin::getNaturalSize):
2538 (QTMovieWin::setSize):
2539 (QTMovieWin::setVisible):
2540 (QTMovieWin::paint):
2542 (movieDrawingCompleteProc):
2543 (initializeSupportedTypes):
2544 (QTMovieWin::countSupportedTypes):
2545 (QTMovieWin::getSupportedType):
2546 (QTMovieWin::initializeQuickTime):
2548 * platform/graphics/win/QTMovieWin.h: Added.
2549 * platform/graphics/win/QTMovieWinTimer.cpp: Added.
2550 (TimerWindowWndProc):
2551 (initializeOffScreenTimerWindow):
2552 (setSharedTimerFiredFunction):
2554 (setSharedTimerFireDelay):
2556 (setSharedTimerInstanceHandle):
2558 * platform/graphics/win/QTMovieWinTimer.h: Added.
2559 * rendering/RenderMedia.cpp:
2560 (WebCore::MediaControlPlayButtonElement::update):
2562 2007-12-21 Brent Fulgham <bfulgham@gmail.com>
2564 Reviewed by Alp Toker.
2566 http://bugs.webkit.org/show_bug.cgi?id=16558
2567 Cairo WebCore Rendering Fails on arc drawing
2569 Fix for bug reported (and patched) by Apollo team in which
2570 arcs were draw in reverse (resulting in inverted images).
2571 Review of the source found that the 'clockwise' term was
2572 actually meant to mean 'anticlockwise' so the IDL and
2573 supporting classes have been changed to match this.
2575 * html/CanvasRenderingContext2D.cpp:
2576 (WebCore::CanvasRenderingContext2D::arc):
2577 * html/CanvasRenderingContext2D.idl:
2578 * platform/graphics/cairo/PathCairo.cpp:
2579 (WebCore::Path::addArc):
2580 (WebCore::Path::addEllipse):
2581 * platform/graphics/Path.h:
2583 2007-12-21 Alexey Proskuryakov <ap@webkit.org>
2587 <rdar://problem/5629995> Incorrect display of Danish characters on web site.
2589 Test: http/tests/xmlhttprequest/response-encoding.html
2591 * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
2592 Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
2593 rules for main content and XHR responses, but this matches both IE and Firefox.
2595 2007-12-20 Jon Honeycutt <jhoneycutt@apple.com>
2597 Reviewed by Kevin Decker.
2599 <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
2600 shockwave plugin on freshly installed OS
2602 Look for Director plugin in its native directory.
2604 * plugins/win/PluginDatabaseWin.cpp:
2605 (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
2606 doesn't start with "np," so special case its filename.
2607 (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
2608 directories to the plugin paths.
2609 (WebCore::PluginDatabaseWin::defaultPluginPaths):
2611 2007-12-20 Peter Kasting <zerodpx@gmail.com>
2613 Reviewed by Alp Toker.
2615 http://bugs.webkit.org/show_bug.cgi?id=16508
2616 Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
2617 decoded transparent areas.
2619 * platform/image-decoders/gif/GIFImageDecoder.cpp:
2620 (WebCore::GIFImageDecoder::haveDecodedRow):
2621 * platform/image-decoders/gif/GIFImageDecoder.h:
2622 * platform/image-decoders/gif/GIFImageReader.cpp:
2623 (GIFImageReader::output_row):
2625 2007-12-20 Justin Garcia <justin.garcia@apple.com>
2627 Reviewed by Oliver Hunt.
2629 <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
2631 Still need to fix similar issues with the other operations that iterate
2632 over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
2634 * editing/IndentOutdentCommand.cpp:
2635 (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
2636 * editing/IndentOutdentCommand.h: Removed an unused function.
2637 * editing/InsertListCommand.cpp:
2638 (WebCore::InsertListCommand::modifyRange):
2639 Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
2640 Call the new selectionForParagraphIteration, which a) prevents operations like this
2641 one from being performed on a table that isn't fully selected (where the selection
2642 starts just before the table and ends inside it), and b) helps prevent paragraph
2643 iteration from going past the end of the selection.
2644 Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
2645 since when v is in the last paragraph of the last cell of a table, that expression
2646 will return the position after the table, not the start of the next paragraph.
2647 * editing/htmlediting.cpp:
2648 (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
2649 take effect inside the table cell where they are performed.
2650 (WebCore::selectionForParagraphIteration): Added, see above.
2651 (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
2652 * editing/htmlediting.h:
2653 * editing/visible_units.cpp:
2654 (WebCore::startOfNextParagraph): Added, see above.
2655 * editing/visible_units.h:
2656 * editing/TextIterator.h:
2657 (WebCore::TextIterator::exitNode): Added a FIXME.
2659 2007-12-20 Alp Toker <alp@atoker.com>
2661 Rubber-stamped by Maciej.
2663 http://bugs.webkit.org/show_bug.cgi?id=16542
2664 [GTK] Text is missing with old Pango version
2666 Back out commits r28880, r28876, r28865, r28864 which added Pango font
2667 selection support. These changes caused a regression where no text was
2668 displayed with older Pango versions.
2670 * platform/graphics/gtk/FontCacheGtk.cpp:
2671 (WebCore::FontCache::fontExists):
2672 * platform/graphics/gtk/FontDataGtk.cpp:
2673 (WebCore::FontData::platformDestroy):
2674 (WebCore::FontData::containsCharacters):
2675 * platform/graphics/gtk/FontPlatformData.h:
2676 (WebCore::FontPlatformData::FontPlatformData):
2677 (WebCore::FontPlatformData::hash):
2678 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2679 (WebCore::FontPlatformData::FontPlatformData):
2680 (WebCore::FontPlatformData::init):
2681 (WebCore::FontPlatformData::~FontPlatformData):
2682 (WebCore::FontPlatformData::isFixedPitch):
2683 (WebCore::FontPlatformData::operator==):
2684 * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
2685 (WebCore::GlyphPage::fill):
2687 2007-12-20 Timothy Hatcher <timothy@apple.com>
2689 Reviewed by Sam Weinig.
2691 <rdar://problem/5604897> Double-clicking on JavaScript console error
2692 won't show the line where it occurred
2694 Make the URLs clickable in the console, since double clicking is used for
2695 word text selection. Makes the word "line" localizable. Messages that don't
2696 have a URL will no longer print "undefined". Messages that have a line number
2697 less than or equal to 0 will no longer be printed.
2699 * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
2700 * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
2701 and change the click handler to look for a link with the
2702 "console-message-url" class name.
2703 * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
2705 * page/inspector/inspector.css: Update the look of the URL in the console.
2707 2007-12-20 Adam Barth <hk9565@gmail.com>
2709 Reviewed and landed by Sam Weinig.
2711 http://bugs.webkit.org/show_bug.cgi?id=15313
2712 <rdar://problem/5514516>
2714 The same-origin check was incorrect in two cases (both fixed in this
2717 A) If both the source and the target have set their document.domain
2718 to the same value, the protocol must also match in order for
2719 access to be allowed. Without this requirement, the browser is
2720 vulnerable to the following attack:
2722 1) Suppose there is an HTTPS site (www.example.com) that sets
2723 document.domain = "example.com".
2724 2) A network attacker redirects the browser to http://www.example.com/
2725 a) injects script to set document.domain = "example.com", and
2726 b) opens a window to https://www.example.com/
2727 3) Now the network attacker can inject script into the HTTPS page,
2728 stealing cookies and issuing banking transactions.
2730 B) If only one of the source and target has set document.domain, then
2731 access should be denied. With this behavior, the browser is
2732 vulnerable to the following attack:
2734 1) Suppose http://foo.example.com/ opens an iframe to
2735 http://foo.example.com/frame.html that
2736 a) sets document.domain = "example.com", and
2737 b) opens an iframe to http://bar.example.com/
2738 This is a common usage of document.domain for cross-domain
2739 communication, see for example:
2740 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
2741 2) The inner-most iframe, which is from bar.example.com, sets
2742 document.domain = "example.com".
2743 3) Now the inner-most iframe can inject script into the middle
2744 iframe (say via document.write). This bar.example.com script
2745 now has access to the outer-most frame (from foo.example.com).
2747 Both these changes cause WebKit to match the behavior of Firefox 2 and
2748 IE6 in these cases. This patch includes regression tests for both
2751 Internet Explorer 7 and Opera 9 are more strict in that they require
2752 the port numbers to match when both pages have document.domain set.
2753 Opera 9 allows access when only one page has set document.domain, but
2754 this is a security vulnerability.
2756 Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
2757 http/tests/security/cross-frame-access-parent-explicit-domain.html
2759 * bindings/js/kjs_window.cpp:
2760 (KJS::createWindow):
2761 (KJS::Window::allowsAccessFrom):
2763 (WebCore::Document::domain):
2764 (WebCore::Document::setDomain):
2765 (WebCore::Document::initSecurityOrigin):
2767 (WebCore::Document::securityOrigin):
2768 * loader/FrameLoader.cpp:
2769 (WebCore::FrameLoader::begin):
2770 (WebCore::FrameLoader::checkCallImplicitClose):
2771 (WebCore::FrameLoader::shouldAllowNavigation):
2772 * platform/SecurityOrigin.cpp:
2773 (WebCore::SecurityOrigin::setForURL):
2774 (WebCore::SecurityOrigin::createForFrame):
2775 (WebCore::SecurityOrigin::canAccess):
2776 * platform/SecurityOrigin.h:
2777 (WebCore::SecurityOrigin::domain):
2778 * storage/Database.cpp:
2779 (WebCore::Database::openDatabase):
2780 (WebCore::Database::Database):
2781 (WebCore::Database::securityOriginData):
2782 * storage/Database.h:
2783 (WebCore::Database::databaseDebugName):
2784 * storage/DatabaseTracker.cpp:
2785 (WebCore::DatabaseTracker::canEstablishDatabase):
2786 * storage/SQLTransaction.cpp:
2787 (WebCore::SQLTransaction::postflightAndCommit):
2788 (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
2790 2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>
2792 Reviewed by Darin Adler.
2794 Define XP_UNIX when building with plugins on X11.
2795 Use new npruntime_internal.h instead of npruntime.h.
2796 http://bugs.webkit.org/show_bug.cgi?id=15669
2798 * ForwardingHeaders/bindings/npruntime_internal.h
2800 * html/HTMLPlugInElement.h:
2802 2007-12-19 johnnyding.webkit <johnnyding.webkit@gmail.com>
2804 Reviewed by Alexey. Landed by Stephanie.
2806 - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
2807 Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
2808 Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing
2809 the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
2812 * html/HTMLTokenizer.cpp:
2813 (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
2814 (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
2815 * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
2817 2007-12-20 Eric Seidel <eric@webkit.org>
2819 Reviewed by Nikolas Zimmermann.
2821 WebKit claims to support SVG feature strings it shouldn't
2822 http://bugs.webkit.org/show_bug.cgi?id=15480
2824 * dom/DOMImplementation.cpp:
2825 (WebCore::isSVG10Feature):
2826 (WebCore::isSVG11Feature):
2828 2007-12-20 John Sullivan <sullivan@apple.com>
2830 Reviewed by Oliver and Geoff
2832 - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter
2833 than white "hole" behind it
2835 * rendering/RenderText.cpp:
2836 (WebCore::RenderText::addLineBoxRects):
2837 respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
2839 2007-12-20 Dan Bernstein <mitz@apple.com>
2841 Reviewed by Darin Adler.
2843 - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
2845 * platform/win/ScrollViewWin.cpp:
2846 (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
2847 scroll offsets even if scrolling is not allowed, because navigation and
2848 scrollTo should still work.
2849 (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
2852 2007-12-17 Tony Chang <idealisms@gmail.com>
2856 - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
2857 text selection does not always begin at mouse down point
2858 Reset the m_dragSrc object on mouse down on all platforms.
2860 Test: fast/text/reset-drag-on-mouse-down.html
2862 * page/EventHandler.cpp:
2863 (WebCore::EventHandler::handleMousePressEvent):
2864 * page/mac/EventHandlerMac.mm:
2865 (WebCore::EventHandler::mouseDown):
2867 2007-12-19 Geoffrey Garen <ggaren@apple.com>
2869 Reviewed by Oliver Hunt.
2872 * ForwardingHeaders/kjs/SymbolTable.h: Added.
2873 * ForwardingHeaders/wtf/VectorTraits.h: Added.
2875 * bindings/js/JSDOMWindowCustom.cpp:
2876 (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
2877 getDirectLocation with getOwnPropertySlot. getDirectLocation is no
2878 longer valid, since global declarations are not stored in the property
2881 (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
2882 JSGlobalObject::put. JSObject::put is no longer valid, since global
2883 declarations are not stored in the property map.
2885 * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
2886 calls, since JSObject is not our base class. This was always a bug, but
2887 the bug is even more apparent after some of my changes.
2889 (KJS::Window::clear): Removed call to clearProperties because
2890 JSGlobalObject::reset takes care of that now.
2892 * history/CachedPage.cpp:
2893 * history/CachedPage.h: Added support for saving a symbol table and
2894 localStorage to the page cache, and restoring it.
2896 2007-12-19 Dan Bernstein <mitz@apple.com>
2898 Reviewed by Darin Adler and Dave Hyatt.
2900 - Substitute the user's preferred standard font for an unknown primary
2901 font before falling back on the platform's last resort font
2903 Cannot be tested in DumpRenderTree because it sets the standard font to
2904 Times, which is also the hard-coded last resort font on Mac.
2906 * css/CSSFontSelector.cpp:
2907 (WebCore::CSSFontSelector::getFontData): Changed the early bail out
2908 condition to allow getting generic font families from settings even if
2909 there are not @font-face rules. Fixed a typo that mapped fantasy to
2910 cursive. Added a mapping from -webkit-standard to the standard family.
2911 * css/CSSStyleSelector.cpp:
2912 (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
2914 (WebCore::CSSRuleSet::addRulesFromSheet):
2915 (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
2917 * css/CSSStyleSelector.h:
2918 (WebCore::CSSStyleSelector::fontSelector):
2919 * platform/graphics/FontCache.cpp:
2920 (WebCore::FontCache::getFontData): Try the user's preferred standard
2921 font before the platform's last resort font.
2923 2007-12-19 Sven Herzberg <sven@imendio.com>
2925 Reviewed by Alp Toker.
2927 Scaled font destruction takes place in FontData::platformDestroy(). No
2928 need to do it in FontPlatformData::~FontPlatformData().
2930 Destroying platform data in platformDestroy() is a convention we
2931 borrow from the Mac and Win ports.
2933 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2935 2007-12-19 Alice Liu <alice.liu@apple.com>
2939 Changed uint to unsigned int. uint caused Windows build breakage
2942 (WebCore::Page::markAllMatchesForText):
2945 2007-12-19 Christian Dywan <christian@twotoasts.de>
2947 Reviewed by Alp Toker.
2949 http://bugs.webkit.org/show_bug.cgi?id=16222
2950 [GTK] Implement inline search and highlighting of matching strings.
2952 Implement search and highlighting logic directly in WebCore.
2955 (WebCore::incrementFrame):
2956 (WebCore::Page::findString):
2957 (WebCore::Page::markAllMatchesForText):
2958 (WebCore::Page::unmarkAllTextMatches):
2961 2007-12-19 Geoffrey Garen <ggaren@apple.com>
2963 Reviewed by Sam Weinig, Dan Bernstein.
2965 Tiger build fix: restored some graphics code still needed on Tiger.
2967 * platform/graphics/GraphicsTypes.h:
2968 * platform/graphics/cg/GraphicsContextCG.cpp:
2969 * platform/graphics/mac/GraphicsContextMac.mm:
2970 (WebCore::GraphicsContext::setCompositeOperation):
2972 2007-12-19 Alp Toker <alp@atoker.com>
2974 Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
2975 the Pango backend API in these cases.
2977 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2978 (WebCore::FontPlatformData::FontPlatformData):
2979 (WebCore::FontPlatformData::~FontPlatformData):
2981 2007-12-19 Alice Liu <alice.liu@apple.com>
2985 Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
2986 on Geico.com WebCore::Document::inPageCache()
2988 Calling Node::willRemove on the focusedNode would immediately tell the document to remove
2989 the focused node, and trigger JS events. This means that the document is mutated while
2990 the engine is trying to tell all child nodes that it's about to removed. To avoid
2991 crashing, we need to hold off on mutating the document until node traversal is finished.
2993 * dom/ContainerNode.cpp:
2994 (WebCore::ContainerNode::removeChild):
2995 (WebCore::ContainerNode::removeChildren):
2998 (WebCore::Node::willRemove):
2999 * loader/FrameLoader.cpp:
3000 (WebCore::FrameLoader::clear):
3002 2007-12-19 Andre Boule <aboule@apple.com>
3004 Reviewed by Dan Bernstein.
3006 Test: fast/canvas/canvas-composite.html
3009 <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
3011 This fix makes setCompositeOperation consistent across all platforms that use CG.
3013 The following compositing modes don't pass however that is covered by another bug:
3019 <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
3021 * platform/graphics/GraphicsTypes.h:
3022 * platform/graphics/cg/GraphicsContextCG.cpp:
3023 (WebCore::GraphicsContext::setCompositeOperation):
3024 * platform/graphics/mac/GraphicsContextMac.mm:
3025 * platform/win/GraphicsContextWin.cpp:
3027 2007-12-19 Dan Bernstein <mitz@apple.com>
3029 Reviewed by Dave Hyatt.
3031 - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
3033 Test: fast/dynamic/subtree-boundary-percent-height.html
3035 * rendering/RenderObject.cpp:
3036 (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
3037 percent heights because sometimes they compute to 'auto'.
3039 2007-12-19 Sam Weinig <sam@webkit.org>
3043 http://bugs.webkit.org/show_bug.cgi?id=16511
3044 Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
3045 - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
3047 * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3048 (WebCore::ChildNodeList::ChildNodeList):
3049 * dom/ClassNodeList.cpp:
3050 (WebCore::ClassNodeList::ClassNodeList):
3051 * dom/ClassNodeList.h:
3053 Move getElementsByName and getElementsByClassName to Node so they
3054 can use easily employ the caching already used by ChildNodeLists. In the case of
3055 getElementsByClassName, this reduces code duplication in Element as well
3059 Move getElementsByClassName to Node.
3063 * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3064 (WebCore::NameNodeList::NameNodeList):
3065 (WebCore::NameNodeList::item):
3066 * dom/NameNodeList.h:
3068 Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
3070 (WebCore::TagNodeList::TagNodeList):
3071 (WebCore::Node::Node):
3072 (WebCore::Node::~Node):
3073 (WebCore::Node::childNodes):
3074 (WebCore::Node::registerNodeList):
3075 (WebCore::Node::getElementsByName):
3076 (WebCore::Node::getElementsByClassName):
3077 * dom/Node.h: Make m_nodeLists an OwnPtr. Moved getElementsByName and getElementsByClassName here
3079 Allow subclasses to choose whether they want to receive the notifications using a new bit.
3081 (WebCore::NodeList::NodeList):
3083 (WebCore::NodeList::needsNotifications):
3085 2007-12-19 Dave Hyatt <hyatt@apple.com>
3087 Add support for GDI text rendering to WebKit.
3091 * css/CSSStyleSelector.cpp:
3092 (WebCore::CSSStyleSelector::applyProperty):
3094 (WebCore::Document::recalcStyle):
3095 * page/Settings.cpp:
3096 (WebCore::Settings::setFontRenderingMode):
3097 (WebCore::Settings::fontRenderingMode):
3099 * platform/graphics/Font.h:
3100 (WebCore::Font::renderingMode):
3101 * platform/graphics/FontCache.cpp:
3102 (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
3103 (WebCore::FontPlatformDataCacheKey::operator==):
3104 (WebCore::computeHash):
3105 (WebCore::FontCache::getCachedFontPlatformData):
3106 * platform/graphics/FontDescription.h:
3108 (WebCore::FontDescription::FontDescription):
3109 (WebCore::FontDescription::renderingMode):
3110 (WebCore::FontDescription::setRenderingMode):
3111 (WebCore::FontDescription::operator==):
3112 * platform/graphics/GraphicsContext.h:
3113 * platform/graphics/win/FontCacheWin.cpp:
3114 (WebCore::FontCache::fontExists):
3115 (WebCore::FontCache::createFontPlatformData):
3116 * platform/graphics/win/FontDataWin.cpp:
3117 (WebCore::FontData::platformInit):
3118 (WebCore::FontData::smallCapsFontData):
3119 (WebCore::FontData::containsCharacters):
3120 (WebCore::FontData::determinePitch):
3121 (WebCore::FontData::platformWidthForGlyph):
3122 * platform/graphics/win/FontPlatformData.h:
3123 (WebCore::FontPlatformData::FontPlatformData):
3124 (WebCore::FontPlatformData::useGDI):
3125 (WebCore::FontPlatformData::operator==):
3126 * platform/graphics/win/FontPlatformDataWin.cpp:
3127 (WebCore::FontPlatformData::FontPlatformData):
3128 * platform/graphics/win/FontWin.cpp:
3129 (WebCore::Font::drawGlyphs):
3130 * platform/graphics/win/IconWin.cpp:
3131 (WebCore::Icon::paint):
3132 * platform/win/GraphicsContextWin.cpp:
3133 (WebCore::GraphicsContext::getWindowsContext):
3134 (WebCore::GraphicsContext::releaseWindowsContext):
3135 * platform/win/UniscribeController.cpp:
3136 (WebCore::UniscribeController::shapeAndPlaceItem):
3137 * platform/win/UniscribeController.h:
3138 * plugins/win/PluginViewWin.cpp:
3139 (WebCore::PluginViewWin::paint):
3141 2007-12-19 Sven Herzberg <sven@imendio.com>
3143 Reviewed by Alp Toker.
3145 Replace the fontconfig/freetype based font management with a pango
3147 http://bugs.webkit.org/show_bug.cgi?id=15229
3149 * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
3150 the platform specific destroy code
3151 (FontData::containsCharacters()): implemented font coverage with pango
3152 * platform/gtk/FontPlatformData.h: replaced fontconfig specific
3153 members with pango-specific ones
3154 * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
3155 FontPlatformData class
3156 (FontPlatformData::FontPlatformData()): implemented the font-matching
3157 with a PangoFontDescription instead of an FcPattern; initialize the
3158 scaled font by using the API for PangoCairoFont
3159 (FontPlatformData::init()): initialize the PangoFontMap and set up a
3160 hash table to translate the font family name into a font family
3161 (FontPlatformData::isFixedPitch()): implemented by querying the
3163 (FontPlatformData::operator==): compare the FontPlatformData by
3164 comparing the font pointers or the described fonts
3165 * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
3166 added a function to query a glyph from a PangoFont
3167 (GlyphPage::fill()): implemented the fill function with Pango instead
3168 of fontconfig/freetype
3170 2007-12-19 Alp Toker <alp@atoker.com>
3172 Reviewed by Holger Freyther.
3174 Improve graphics operator approximations
3176 These changes match Cairo's own CG approximations.
3178 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3179 (WebCore::toCairoOperator):
3181 2007-12-19 Alp Toker <alp@atoker.com>
3183 Reviewed by Holger Freyther.
3185 Check the bounding box before doing a full hit test
3187 * platform/graphics/cairo/PathCairo.cpp:
3188 (WebCore::Path::contains):
3190 2007-12-18 Sam Weinig <sam@webkit.org>
3194 Fix for <rdar://problem/5646478>
3195 REGRESSION: fast/events/event-view-toString fails on Leopard
3197 This fixes an issue where we were incorrectly setting the lastInPrototypeChain
3198 for the JSDOMWindow (the global object) before a call to setPrototype overwrote
3199 it. This fixes it by passing the prototype up the constructor chain so that it
3200 is set before any calls can be made.
3202 * bindings/js/kjs_window.cpp:
3203 (KJS::Window::Window):
3204 * bindings/js/kjs_window.h:
3205 * bindings/scripts/CodeGeneratorJS.pm:
3207 2007-12-18 Beth Dakin <bdakin@apple.com>
3211 Fix for <rdar://problem/5616982> SVGs with width and height 100%
3212 fail to render when used as <img> or CSS image (16167)
3214 This final part of the work fixes the <img> tag.
3216 This is the real fix.
3217 * rendering/RenderImage.cpp:
3218 (WebCore::RenderImage::calcReplacedWidth): Set the container size
3219 on the image. Setting the container size only actually sticks if
3220 the values are non-zero, so if the container size really was set,
3221 use the imageSize that is calculated using the container size. If
3222 it did not stick but the image does have relative width (meaning
3223 that the container size is 0), set the width to 0 by hand. We want
3224 to avoid setting the width before we have a container size or we
3225 will end up incorrectly using the default size of 300x150.
3226 (WebCore::RenderImage::calcReplacedHeight): Same as above, but for
3229 A few more pieces of information have to be exposed through cached
3230 image to make this happen.
3231 * loader/CachedImage.cpp:
3232 (WebCore::CachedImage::usesImageContainerSize): As mentioned above,
3233 when setContainerSize() is called, the container size is only
3234 actually set if the values are non-zero. This call tells you if it
3236 (WebCore::CachedImage::imageHasRelativeWidth):
3237 (WebCore::CachedImage::imageHasRelativeHeight):
3238 * loader/CachedImage.h:
3239 * platform/graphics/Image.h:
3240 (WebCore::Image::usesContainerSize):
3241 * svg/graphics/SVGImage.cpp:
3242 (WebCore::SVGImage::usesContainerSize):
3243 * svg/graphics/SVGImage.h:
3245 2007-12-18 Mark Rowe <mrowe@apple.com>
3247 Rubber-stamped by Maciej Stachowiak.
3249 Remove outdated and non-functioning project files for the Apollo port.
3251 * WebCore.apolloproj: Removed.
3253 2007-12-18 Steve Falkenburg <sfalken@apple.com>
3255 <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
3257 Need to translate the char back into a key code for posting our WM_KEYDOWN.
3261 * platform/win/PopupMenuWin.cpp:
3262 (WebCore::PopupWndProc):
3264 2007-12-18 Steve Falkenburg <sfalken@apple.com>
3266 <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
3268 Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
3269 Only create a font with the last one.
3271 Reviewed by Mitz, Darin.
3273 * platform/graphics/win/FontCacheWin.cpp:
3274 (WebCore::metaFileEnumProc):
3275 (WebCore::FontCache::getFontDataForCharacters):
3277 2007-12-17 Brent Fulgham <bfulgham@gmail.com>
3281 http://bugs.webkit.org/show_bug.cgi?id=16464
3282 Modify WebCore to use win32 thread primitives
3284 Updates to support native windows threading primitives
3285 rather than pthreads emulation library.
3287 * WebCore.vcproj/WebCore.vcproj:
3289 * platform/Threading.h:
3290 * platform/win/MutexWin.cpp: Added.
3291 (WebCore::Mutex::Mutex):
3292 (WebCore::Mutex::~Mutex):
3293 (WebCore::Mutex::lock):
3294 (WebCore::Mutex::tryLock):
3295 (WebCore::Mutex::unlock):
3296 * platform/win/ThreadConditionWin.cpp: Added.
3297 (WebCore::ThreadCondition::ThreadCondition):
3298 (WebCore::ThreadCondition::~ThreadCondition):
3299 (WebCore::ThreadCondition::wait):
3300 (WebCore::ThreadCondition::signal):
3301 (WebCore::ThreadCondition::broadcast):
3302 * platform/win/ThreadingWin.cpp:
3303 (WebCore::threadMapMutex):
3304 (WebCore::threadMap):
3305 (WebCore::storeThreadHandleByIdentifier):
3306 (WebCore::identifierByThreadHandle):
3307 (WebCore::threadHandleForIdentifier):
3308 (WebCore::clearThreadHandleForIdentifier):
3309 (WebCore::createThread):
3310 (WebCore::waitForThreadCompletion):
3311 (WebCore::detachThread):
3312 (WebCore::currentThread):
3314 2007-12-18 Rodney Dawes <dobey@wayofthemonkey.com>
3316 Reviewed by Darin Adler.
3318 Handle EINTR when set by select() and try the select() again
3319 http://bugs.webkit.org/show_bug.cgi?id=16071
3321 * platform/network/curl/ResourceHandleManager.cpp:
3322 (ResourceHandleManager::downloadTimerCallback):
3324 2007-12-18 Dan Bernstein <mitz@apple.com>
3326 Reviewed by Dave Hyatt.
3328 - avoid the simplified Chinese font linking code for characters that are
3329 not in any Windows code page
3331 * platform/graphics/win/FontCacheWin.cpp:
3332 (WebCore::FontCache::getFontDataForCharacters):
3334 2007-12-18 Brady Eidson <beidson@apple.com>
3338 <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
3340 Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
3341 protected by authentication. Occasionally one can view the main page of a site but the favicon
3342 is behind the iron curtain - in these cases, we should *not* prompt for a username and password
3343 solely for the favicon.
3345 * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
3347 * loader/SubresourceLoader.cpp:
3348 (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
3349 is virtual from ResourceLoader, SubresourceLoader can override. First call to the
3350 SubresourceLoaderClient. If they cancel the resource load, return early. Otherwise, let
3351 ResourceLoader work its magic (resulting in the auth sheet coming down)
3352 * loader/SubresourceLoader.h:
3354 * loader/SubresourceLoaderClient.h:
3355 (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
3357 * loader/icon/IconLoader.cpp:
3358 (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
3359 never prompt the user for credentials just for a favicon.
3360 * loader/icon/IconLoader.h:
3362 2007-12-18 John Sullivan <sullivan@apple.com>
3366 - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
3368 * storage/DatabaseTracker.cpp:
3369 (WebCore::DatabaseTracker::canEstablishDatabase):
3370 pass "name" instead of "displayName" if there's no displayName
3372 2007-12-17 Dan Bernstein <mitz@apple.com>
3374 Reviewed by Maciej Stachowiak.
3376 - restore ButtonFace and ThreeDFace to their previous values for non-Mac
3377 platforms. The Mac port also uses the same values for now instead
3378 of NSColor-based ones.
3380 * rendering/RenderTheme.cpp:
3381 (WebCore::RenderTheme::systemColor):
3383 2007-12-17 Rodney Dawes <dobey@wayofthemonkey.com>
3385 Reviewed by Maciej Stachowiak.
3387 Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
3388 Add required Frame::createScriptInstanceForWidget to FrameGtk
3391 * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
3393 2007-12-17 Alice Liu <alice.liu@apple.com>
3397 Fixed <rdar://5566435> window with no scrollbars can be scrolled
3399 * platform/win/ScrollViewWin.cpp:
3400 (WebCore::ScrollView::maximumScroll):
3401 corrected maximumScroll() to account for scrolling not allowed.
3402 (WebCore::ScrollView::wheelEvent):
3404 2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com>
3406 Reviewed by Alp Toker.
3408 http://bugs.webkit.org/show_bug.cgi?id=16042
3409 [GTK] Eliminate webkit_init()
3411 Move webkit initialization to WebView class init.
3415 2007-12-17 Jon Honeycutt <jhoneycutt@apple.com>
3419 <rdar://problem/5651291> REGRESSION: Flash content doesn't display
3422 We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
3424 * plugins/win/PluginViewWin.cpp:
3425 (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
3427 (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
3428 (WebCore::PluginViewWin::handleKeyboardEvent): same
3429 (WebCore::PluginViewWin::handleMouseEvent): same
3430 * plugins/win/PluginViewWin.h:
3432 2007-12-17 Alexey Proskuryakov <ap@webkit.org>
3436 Live to the promise of never making AppKit special character codes visible via DOM.
3438 Test: fast/events/arrow-keys-on-body.html
3440 * page/EventHandler.cpp:
3441 (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
3442 to let quirks-aware code strip special charactrers.
3443 * platform/mac/KeyEventMac.mm:
3444 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
3445 mode, remove the text if it's a special character.
3447 2007-12-17 Mark Rowe <mrowe@apple.com>
3449 Reviewed by Darin Adler.
3451 Fix incorrect array size and incorrect array index in convertNSColorToColor.
3453 * rendering/RenderThemeMac.mm:
3454 (WebCore::convertNSColorToColor):
3456 2007-12-17 Darin Adler <darin@apple.com>
3458 Reviewed by Mark Rowe.
3460 - fix http://bugs.webkit.org/show_bug.cgi?id=16468
3461 REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
3463 * storage/DatabaseThread.cpp:
3464 (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
3465 because there's no guarantee it won't lose its last reference otherwise.
3467 2007-12-17 Dan Bernstein <mitz@apple.com>
3469 Reviewed by Maciej Stachowiak.
3471 - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
3472 and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
3474 * platform/graphics/win/FontCacheWin.cpp:
3475 (WebCore::FontCache::getFontDataForCharacters): To ensure that font
3476 linking gives consistent results for characters that are exclusive to
3477 the simplified Chinese code page and characters that belong to that
3478 code page and other code pages, always ask to map to simplified Chinese
3481 2007-12-17 Christian Dywan <christian@twotoasts.de>
3483 Reviewed by Alp Toker.
3485 http://bugs.webkit.org/show_bug.cgi?id=16378
3486 Implement Icon for Gtk
3488 Icon provides a GdkPixbuf containing a themed icon.
3489 The icon theme is probed for an icon name according to the
3490 Icon Naming Specification or conventional Gnome icon names respectively.
3492 See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
3494 * platform/graphics/Icon.h:
3495 * platform/graphics/gtk/IconGtk.cpp:
3496 (WebCore::Icon::~Icon):
3497 (WebCore::lookupIconName):
3498 (WebCore::Icon::newIconForFile):
3499 (WebCore::Icon::paint):
3501 2007-12-16 Sam Weinig <sam@webkit.org>
3505 Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
3506 Move the JS Location object to its own file
3508 - Move Location into its own file and rename it JSLocation.
3510 * DerivedSources.make:
3512 * WebCore.vcproj/WebCore.vcproj:
3513 * WebCore.xcodeproj/project.pbxproj:
3514 * WebCoreSources.bkl:
3515 * bindings/js/JSDocumentCustom.cpp:
3516 * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
3518 (WebCore::JSLocation::JSLocation):
3519 (WebCore::JSLocation::getValueProperty):
3520 (WebCore::JSLocation::getOwnPropertySlot):
3521 (WebCore::JSLocation::put):
3522 (WebCore::JSLocationProtoFuncReplace::callAsFunction):
3523 (WebCore::JSLocationProtoFuncReload::callAsFunction):
3524 (WebCore::JSLocationProtoFuncAssign::callAsFunction):
3525 (WebCore::JSLocationProtoFuncToString::callAsFunction):
3526 * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
3527 (WebCore::JSLocation::):
3528 (WebCore::JSLocation::frame):
3529 (WebCore::JSLocation::classInfo):
3530 * bindings/js/kjs_window.cpp:
3531 (KJS::Window::location):
3532 * bindings/js/kjs_window.h:
3533 * history/CachedPage.cpp:
3535 2007-12-16 Dan Bernstein <mitz@apple.com>
3537 Reviewed by Sam Weinig.
3539 - make 'cursor: copy' and 'cursor: none' work.
3541 Already covered by manual-tests/cursor.html
3543 * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
3544 needed for the 33rd and 34th cursor values.
3546 2007-12-16 Mark Rowe <mrowe@apple.com>
3548 Reviewed by Maciej Stachowiak.
3550 Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
3553 * WebCore.xcodeproj/project.pbxproj:
3554 * loader/NetscapePlugInStreamLoader.h:
3555 * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
3556 * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
3558 2007-12-16 Sam Weinig <sam@webkit.org>
3562 Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
3565 - Move ScheduledAction into its own file and put it in the WebCore namespace.
3568 * WebCore.vcproj/WebCore.vcproj:
3569 * WebCore.xcodeproj/project.pbxproj:
3570 * WebCoreSources.bkl:
3571 * bindings/js/PausedTimeouts.cpp:
3572 * bindings/js/PausedTimeouts.h:
3573 * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
3574 (WebCore::ScheduledAction::ScheduledAction):
3575 (WebCore::ScheduledAction::execute):
3576 * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
3577 (WebCore::ScheduledAction::ScheduledAction):
3578 * bindings/js/kjs_window.cpp:
3579 (KJS::DOMWindowTimer::DOMWindowTimer):
3580 (KJS::DOMWindowTimer::action):
3581 (KJS::DOMWindowTimer::takeAction):
3582 (KJS::Window::installTimeout):
3583 (KJS::Window::timerFired):
3584 * bindings/js/kjs_window.h:
3586 2007-12-16 Alp Toker <alp@atoker.com>
3590 http://bugs.webkit.org/show_bug.cgi?id=16356