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 Fix :checked matching type='text' and add test case
68 http://bugs.webkit.org/show_bug.cgi?id=16750
70 Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
72 * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
74 2008-01-05 Sam Weinig <sam@webkit.org>
76 Reviewed by Eric Seidel.
78 Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
79 ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
81 - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
83 Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
86 (WebCore::TreeWalker::parentNode):
87 (WebCore::TreeWalker::firstChild):
88 (WebCore::TreeWalker::lastChild):
89 (WebCore::TreeWalker::previousSibling):
90 (WebCore::TreeWalker::nextSibling):
91 (WebCore::TreeWalker::previousNode):
92 (WebCore::TreeWalker::nextNode):
94 2008-01-04 Oliver Hunt <oliver@apple.com>
96 Reviewed by Beth Dakin.
98 Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
99 and other image repaint bugs.
101 We now cache the full local bounds for the <image> element, as otherwise certain
102 combinations of attribute changes could result in incorrect dirty rects.
103 Additionally we no longer use any of the integer bounds fields on RenderObject for
104 determining repaint bounds (this was the principle cause of bug #16015).
106 I also removed the outline painting code as it was both wrong, and not correctly
107 repainted. I feel safe doing this as no other browser or viewer supports outline
108 properties on svg elements.
110 I was unable to make a testcase for this unfortunately, despite seemingly deterministic
113 * rendering/RenderSVGImage.cpp:
114 (WebCore::RenderSVGImage::layout):
115 (WebCore::RenderSVGImage::paint):
116 (WebCore::RenderSVGImage::nodeAtPoint):
117 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
118 * rendering/RenderSVGImage.h:
120 2008-01-04 Beth Dakin <bdakin@apple.com>
124 Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with
125 type="hidden" matches :enabled/:disabled (Acid3 bug)
127 Prevent :enabled and :disabled from applying to input type="hidden"
129 * css/CSSStyleSelector.cpp:
130 (WebCore::CSSStyleSelector::checkOneSelector): Rather than
131 allowing :enabled and :disabled to apply to all controls, only
132 allow it to apply to non-"hidden" controls
134 (WebCore::Element::isInputTypeHidden):
135 * html/HTMLInputElement.h:
136 (WebCore::HTMLInputElement::isInputTypeHidden):
138 2008-01-04 Sam Weinig <sam@webkit.org>
140 Reviewed by Oliver Hunt.
142 - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
143 getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
144 if the type of the CSSPrimitiveValue is not the same as the type requested.
145 - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
147 Test: fast/css/CSSPrimitiveValue-exceptions.html
149 * css/CSSPrimitiveValue.cpp:
150 (WebCore::CSSPrimitiveValue::getDoubleValue):
151 (WebCore::CSSPrimitiveValue::getStringValue):
152 (WebCore::CSSPrimitiveValue::getCounterValue):
153 (WebCore::CSSPrimitiveValue::getRectValue):
154 (WebCore::CSSPrimitiveValue::getRGBColorValue):
155 (WebCore::CSSPrimitiveValue::getPairValue):
156 * css/CSSPrimitiveValue.h:
157 (WebCore::CSSPrimitiveValue::getFloatValue):
158 (WebCore::CSSPrimitiveValue::getIntValue):
159 (WebCore::CSSPrimitiveValue::getCounterValue):
160 (WebCore::CSSPrimitiveValue::getRectValue):
161 (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
162 * css/CSSPrimitiveValue.idl:
164 2008-01-04 Antti Koivisto <antti@apple.com>
168 Windows part of <rdar://problem/5647034>
169 Media tests crash if an old version of QuickTime is installed
171 Check QuickTime version on Windows too.
173 * platform/graphics/MediaPlayer.cpp:
174 (WebCore::MediaPlayer::isAvailable):
175 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
176 (WebCore::MediaPlayerPrivate::isAvailable):
177 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
178 (WebCore::MediaPlayerPrivate::isAvailable):
179 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
180 * platform/graphics/win/QTMovieWin.cpp:
181 (QTMovieWin::initializeQuickTime):
183 2008-01-04 Darin Adler <darin@apple.com>
185 Reviewed by Maciej and Alice.
187 - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
189 Test: fast/images/border.html
191 * html/HTMLImageElement.cpp:
192 (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
193 where the border value is not a number to use the value "0" for the border width instead
194 of not setting the border width and style at all. This matches other browsers, and makes
197 2008-01-04 Antti Koivisto <antti@apple.com>
199 Try to fix 64-bit build
201 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
202 (WebCore::MediaPlayerPrivate::isAvailable):
204 2008-01-04 Stephanie <slewis@apple.com>
208 WARNING: NO TEST CASES ADDED OR CHANGED
210 Fix another stringImpl leak.
212 * platform/text/StringImpl.cpp: remove an extra allocation
213 (WebCore::StringImpl::StringImpl):
215 2008-01-04 Alice Liu <alice.liu@apple.com>
219 * platform/graphics/win/FontCacheWin.cpp:
220 fix loop condition that was causing crash
222 2008-01-04 Timothy Hatcher <timothy@apple.com>
224 Reviewed by Adam Roben.
226 <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
228 * page/inspector/inspector.css: Remove styles related to the toggle button
229 and make the area always visible.
230 * page/inspector/inspector.html: Remove the toggle button.
231 * page/inspector/inspector.js: Remove code to toggle the status area.
233 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
235 Reviewed by Adam Roben.
237 Temporarily restore BackwardDelete for Windows nightlies to work correctly.
239 * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
241 2008-01-04 Alexey Proskuryakov <ap@webkit.org>
245 <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
247 Enable the fix on Windows.
249 * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
250 Always set a custom sort function, even if it doesn't implement proper collation on the platform.
252 * xml/XSLTUnicodeSort.cpp:
253 (WebCore::xsltUnicodeSortFunction):
254 * xml/XSLTUnicodeSort.h:
255 If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
257 2008-01-04 Antti Koivisto <antti@apple.com>
261 * bindings/js/JSHTMLElementWrapperFactory.cpp:
263 2008-01-04 Antti Koivisto <antti@apple.com>
267 Partial fix for <rdar://problem/5647034>
268 Media tests crash if an old version of QuickTime is installed
270 Disable media support if QuickTime is not current enough (>=7.3).
272 Windows patch coming soon.
274 * bindings/js/JSHTMLElementWrapperFactory.cpp:
275 (WebCore::createJSHTMLWrapper):
276 * bindings/js/kjs_window.cpp:
277 (KJS::Window::getValueProperty):
278 * html/HTMLElementFactory.cpp:
279 (WebCore::audioConstructor):
280 (WebCore::videoConstructor):
281 (WebCore::sourceConstructor):
282 * platform/graphics/MediaPlayer.cpp:
283 (WebCore::MediaPlayer::isAvailable):
284 * platform/graphics/MediaPlayer.h:
285 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
286 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
287 (WebCore::MediaPlayerPrivate::isAvailable):
289 2008-01-04 Timothy Hatcher <timothy@apple.com>
291 Reviewed by Darin Adler.
293 <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
295 Check if the property is a getter before asking for the value.
296 If the property is a getter, we no longer show the value.
298 * page/inspector/PropertiesSidebarPane.js:
299 * page/inspector/inspector.css:
301 2008-01-04 Dan Bernstein <mitz@apple.com>
303 Reviewed by Darin Adler.
305 - fix synthetic bold and italic on Windows
307 Covered by an existing test.
309 * platform/graphics/win/FontPlatformDataWin.cpp:
310 (WebCore::FontPlatformData::FontPlatformData):
312 2008-01-04 Alp Toker <alp@atoker.com>
314 GTK+ autotools build fix. Terminate empty rules.
318 2008-01-04 Lars Knoll <lars@trolltech.com>
322 Remove most dependencies of Widget/ScrollView onto native QWidgets.
324 This also brings the code closer in line with the Windows code. Seems
325 to work nicely on first try :)
327 * page/qt/FrameQt.cpp:
328 (WebCore::Frame::createScriptInstanceForWidget):
330 * platform/qt/PlatformScreenQt.cpp:
331 (WebCore::screenDepth):
332 (WebCore::screenDepthPerComponent):
333 (WebCore::screenIsMonochrome):
334 (WebCore::screenRect):
335 * platform/qt/PlatformScrollBarQt.cpp:
336 (WebCore::PlatformScrollbar::thumbPosition):
337 (WebCore::PlatformScrollbar::handleMouseMoveEvent):
338 * platform/qt/ScrollViewQt.cpp:
339 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
340 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
341 (WebCore::ScrollView::updateContents):
342 (WebCore::ScrollView::update):
343 (WebCore::ScrollView::scrollRectIntoViewRecursively):
344 (WebCore::ScrollView::updateScrollbars):
345 (WebCore::ScrollView::addChild):
346 (WebCore::ScrollView::removeChild):
347 (WebCore::ScrollView::paint):
348 * platform/qt/WidgetQt.cpp:
349 (WebCore::WidgetPrivate::WidgetPrivate):
350 (WebCore::WidgetPrivate::~WidgetPrivate):
351 (WebCore::Widget::frameGeometry):
352 (WebCore::Widget::setFrameGeometry):
353 (WebCore::Widget::setCursor):
354 (WebCore::Widget::show):
355 (WebCore::Widget::hide):
356 (WebCore::Widget::nativeWidget):
357 (WebCore::Widget::setNativeWidget):
358 (WebCore::Widget::suppressInvalidation):
359 (WebCore::Widget::setSuppressInvalidation):
360 (WebCore::Widget::invalidateRect):
361 (WebCore::Widget::topLevel):
362 (WebCore::Widget::containingWindow):
364 2008-01-04 Lars Knoll <lars@trolltech.com>
368 make QWebPage a QObject and get things to compile.
370 Nothing works currently though.
372 * platform/qt/ScrollViewQt.cpp:
373 (WebCore::ScrollView::updateContents):
374 (WebCore::ScrollView::update):
375 * platform/qt/WidgetQt.cpp:
376 (WebCore::Widget::qwidget):
377 (WebCore::Widget::invalidateRect):
379 2008-01-04 Alp Toker <alp@atoker.com>
381 Reviewed by Mark Rowe.
383 http://bugs.webkit.org/show_bug.cgi?id=16667
384 make -j is failing with the autotools based system
386 Support parallel code generation. Nearly every use of explicit
387 multiple targets was a potential concurrency bug, though in practice
388 the bison rules were the first to be noticed because they took longer
389 to complete and broke the build immediately.
393 2008-01-04 Alp Toker <alp@atoker.com>
395 Reviewed by Mark Rowe.
397 Re-use a single static dummy surface rather than creating and
398 destroying a surface for each CairoPath.
400 * platform/graphics/cairo/CairoPath.h:
401 (WebCore::CairoPath::CairoPath):
403 2008-01-04 Mark Rowe <mrowe@apple.com>
407 * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
409 2008-01-03 Mark Rowe <mrowe@apple.com>
411 Reviewed by Maciej Stachowiak.
413 Use platform-provided atomic operations in place of inline assembly to
414 increase portability.
416 * platform/Threading.h:
417 (WebCore::atomicIncrement):
418 (WebCore::atomicDecrement):
420 2008-01-03 Oliver Hunt <oliver@apple.com>
424 Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
426 We need to cache the absolute bounds of the <image>,
427 as there's no reliable way to recompute the old bounding
428 box one we have started layout.
430 * rendering/RenderSVGImage.cpp:
431 (WebCore::RenderSVGImage::layout):
432 (WebCore::RenderSVGImage::calculateAbsoluteBounds):
433 * rendering/RenderSVGImage.h:
435 2008-01-03 Alp Toker <alp@atoker.com>
437 Reviewed by Mark Rowe.
439 Support building in Scratchbox, which has a version of make that fails
440 on wildcard syntax. Use a vpath to match IDL files instead.
444 2008-01-03 Jon Honeycutt <jhoneycutt@apple.com>
448 <rdar://problem/5504775> PDF page will not load first time after Adobe
449 Reader install, unless browser is relaunched
451 Refresh and re-search the plugin database if the MIME type is not
454 * plugins/win/PluginDatabaseWin.cpp:
455 (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
456 * plugins/win/PluginDatabaseWin.h:
458 2008-01-03 Dan Bernstein <mitz@apple.com>
460 Reviewed by Darin Adler.
462 - fix http://bugs.webkit.org/show_bug.cgi?id=16548
463 <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
465 * platform/graphics/win/FontCacheWin.cpp:
466 (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
467 a valid LOGFONT for a given family.
468 (WebCore::getLinkedFonts): Added. Returns a vector of font families
469 linked to the given font family by the Windows registry key
470 HKLM\Software\...\FontLink\SystemLink. The registry values typically
471 differ based on the installed language version of Windows.
472 (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
473 font mapping, which is Windows code page based, except for characters in
474 the range U+2000..U+200F. Instead, this function gets the font Uniscribe
475 would use for the character. However, that font might not actually
476 contain the character, in which case GDI font linking would substitute a
477 different font. Therefore, this function walks the linked font list
478 until it finds a font that actually contains the character.
480 2008-01-03 Darin Adler <darin@apple.com>
484 - fix http://bugs.webkit.org/show_bug.cgi?id=16723
485 tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
487 Test: fast/table/border-changes.html
489 * html/HTMLTableElement.h:
490 * html/HTMLTableElement.cpp:
491 (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
492 parsing attributes, rather than doing this only for the rules attribute.
493 (WebCore::HTMLTableElement::cellBorders): Added.
494 (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
495 rule about what type of borders to use.
497 2008-01-02 Sam Weinig <sam@webkit.org>
501 Pass the prototype of WebCore JS objects up the constructor chain
502 rather than explicitly setting using setPrototype. This removes many
503 redundant settings of the prototype on construction. To avoid a CG
504 hazard, the prototype must be constructed before calling the
505 constructor of the JS object.
507 - JS objects that inherit from DOMObject, which all bindings objects
508 (except Window) do, now can't implicitly have a jsNull prototype, but
509 must explicitly pass it up the construction chain.
511 * bindings/js/JSCSSRuleCustom.cpp:
513 * bindings/js/JSCSSValueCustom.cpp:
515 * bindings/js/JSDocumentCustom.cpp:
517 * bindings/js/JSEventCustom.cpp:
519 * bindings/js/JSEventTargetNode.cpp:
520 (WebCore::JSEventTargetNode::JSEventTargetNode):
521 * bindings/js/JSEventTargetNode.h:
522 * bindings/js/JSHTMLAllCollection.h:
523 (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
524 * bindings/js/JSHTMLAudioElementConstructor.cpp:
525 (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
526 * bindings/js/JSHTMLCollectionCustom.cpp:
527 (WebCore::getNamedItems):
529 * bindings/js/JSHTMLElementWrapperFactory.cpp:
530 (WebCore::createJSHTMLWrapper):
531 * bindings/js/JSHTMLFormElementCustom.cpp:
532 (WebCore::JSHTMLFormElement::nameGetter):
533 * bindings/js/JSHTMLInputElementBase.cpp:
534 (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
535 * bindings/js/JSHTMLInputElementBase.h:
536 * bindings/js/JSHTMLOptionElementConstructor.cpp:
537 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
538 * bindings/js/JSLocation.cpp:
539 (WebCore::JSLocation::JSLocation):
540 * bindings/js/JSLocation.h:
541 * bindings/js/JSNamedNodesCollection.cpp:
542 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
543 * bindings/js/JSNamedNodesCollection.h:
544 * bindings/js/JSNodeCustom.cpp:
546 * bindings/js/JSSVGElementWrapperFactory.cpp:
547 (WebCore::createJSSVGWrapper):
548 * bindings/js/JSSVGPathSegCustom.cpp:
550 * bindings/js/JSStyleSheetCustom.cpp:
552 * bindings/js/JSXMLHttpRequest.cpp:
553 (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
554 (KJS::JSXMLHttpRequestConstructorImp::construct):
555 (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
556 * bindings/js/JSXMLHttpRequest.h:
557 * bindings/js/JSXSLTProcessor.cpp:
558 (KJS::JSXSLTProcessor::JSXSLTProcessor):
559 (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
560 (KJS::XSLTProcessorConstructorImp::implementsConstruct):
561 (KJS::XSLTProcessorConstructorImp::construct):
562 * bindings/js/JSXSLTProcessor.h:
563 * bindings/js/kjs_binding.h:
564 (KJS::DOMObject::DOMObject):
565 (KJS::cacheDOMObject):
566 (KJS::cacheSVGDOMObject):
567 * bindings/js/kjs_css.cpp:
568 (WebCore::JSRGBColor::JSRGBColor):
569 (WebCore::getJSRGBColor):
570 * bindings/js/kjs_css.h:
571 * bindings/js/kjs_events.cpp:
572 (WebCore::JSClipboard::JSClipboard):
574 * bindings/js/kjs_events.h:
575 * bindings/js/kjs_html.cpp:
576 (WebCore::ImageConstructorImp::ImageConstructorImp):
577 * bindings/js/kjs_navigator.cpp:
578 (KJS::Navigator::Navigator):
579 (KJS::PluginBase::PluginBase):
580 * bindings/js/kjs_navigator.h:
581 * bindings/js/kjs_window.cpp:
582 (KJS::Window::Window):
583 (KJS::Window::location):
584 (KJS::Window::getValueProperty):
585 * bindings/js/kjs_window.h:
586 * bindings/scripts/CodeGeneratorJS.pm:
588 2008-01-03 Holger Hans Peter Freyther <zecke@selfish.org>
592 -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
594 Change the Gtk ContextMenuItem code to generate the GtkMenuItem
595 or GtkCheckMenuItem on the fly. Currently we will create a
596 GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
597 to be done is to change WebCore to tell the platform code if an item
600 * platform/ContextMenuItem.h:
601 (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
602 * platform/gtk/ContextMenuGtk.cpp:
603 (WebCore::ContextMenu::appendItem):
604 * platform/gtk/ContextMenuItemGtk.cpp:
605 (WebCore::ContextMenuItem::ContextMenuItem):
606 (WebCore::ContextMenuItem::~ContextMenuItem):
607 (WebCore::ContextMenuItem::createNativeMenuItem):
608 (WebCore::ContextMenuItem::releasePlatformDescription):
609 (WebCore::ContextMenuItem::type):
610 (WebCore::ContextMenuItem::setType):
611 (WebCore::ContextMenuItem::action):
612 (WebCore::ContextMenuItem::setAction):
613 (WebCore::ContextMenuItem::platformSubMenu):
614 (WebCore::ContextMenuItem::setSubMenu):
615 (WebCore::ContextMenuItem::setChecked):
617 2008-01-03 Dan Bernstein <mitz@apple.com>
619 Rubber-stamped by Adam Roben.
621 - update the project hierarchy to match the on-disk organization of
622 the platform directory.
624 * WebCore.vcproj/WebCore.vcproj:
626 2008-01-03 Adam Roben <aroben@apple.com>
628 Fix a buffer overrun and a leak introduced in r29098
632 * platform/text/StringImpl.cpp:
633 (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
634 it be big enough to hold the string contents plus the null terminator.
636 2008-01-03 Simon Hausmann <hausmann@webkit.org>
640 Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
644 2008-01-03 Alp Toker <alp@atoker.com>
646 Suggested by Mark Rowe.
648 Fix indentation and remove trailing whitespace.
650 * platform/network/curl/ResourceHandleManager.cpp:
652 2008-01-03 Luca Bruno <lethalman88@gmail.com>
654 Reviewed by Alp Toker.
656 Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
657 that the two POST methods don't conflict.
659 * platform/network/curl/ResourceHandleManager.cpp:
660 (WebCore::ResourceHandleManager::setupPOST):
662 2008-01-02 Darin Adler <darin@apple.com>
664 - touched some files to try to get the Windows buildbot building again
666 2008-01-02 Dan Bernstein <mitz@apple.com>
668 Reviewed by Sam Weinig.
670 - fix small caps rendering
672 Covered by an existing test.
674 * platform/graphics/win/FontDataWin.cpp:
675 (WebCore::FontData::smallCapsFontData):
677 2008-01-02 Antti Koivisto <antti@apple.com>
681 Calculate video position and size within the renderer box in WebCore. This
682 way the aspect ratio calculation is not needed in each MediaPlayer implementation.
684 This fixes video aspect ratio on Windows.
686 Covered by an existing pixel test.
688 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
689 (WebCore::MediaPlayerPrivate::createQTMovieView):
690 * rendering/RenderVideo.cpp:
691 (WebCore::RenderVideo::videoBox):
692 (WebCore::RenderVideo::paintReplaced):
693 (WebCore::RenderVideo::updatePlayer):
694 * rendering/RenderVideo.h:
696 2008-01-02 Ada Chan <adachan@apple.com>
700 * WebCore.vcproj/WebCore.vcproj:
702 2008-01-02 John Sullivan <sullivan@apple.com>
704 Reviewed by Dan Bernstein
706 - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
708 * loader/DocumentLoader.cpp:
709 (WebCore::canonicalizedTitle):
710 in the code that replaces control characters with white space, also replace the unicode line separator
711 and paragraph separator characters
713 2008-01-02 Darin Adler <darin@apple.com>
715 - fix buffer overruns seen on buildbot
717 * platform/text/StringImpl.cpp:
718 (WebCore::countCharacter): Added this.
719 (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
720 (WebCore::StringImpl::toLengthArray): Ditto.
721 (WebCore::StringImpl::replace): Added assertions.
723 2008-01-02 Darin Adler <darin@apple.com>
727 - fix http://bugs.webkit.org/show_bug.cgi?id=16657
728 Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
729 - fix http://bugs.webkit.org/show_bug.cgi?id=16659
730 Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
732 Tests: dom/html/level2/html/HTMLCollection07.html
733 dom/html/level2/html/HTMLCollection08.html
734 dom/html/level2/xhtml/HTMLCollection07.xhtml
735 dom/html/level2/xhtml/HTMLCollection08.xhtml
736 fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
737 fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
739 * GNUmakefile.am: Added HTMLTableRowsCollection.
740 * WebCore.pro: Ditto.
741 * WebCore.vcproj/WebCore.vcproj: Ditto.
742 * WebCore.xcodeproj/project.pbxproj: Ditto.
743 * WebCoreSources.bkl: Ditto.
745 * dom/XMLTokenizer.cpp: Took out stray include.
747 * html/HTMLCollection.cpp:
748 (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
749 a separate class for that collection. Also got rid of the distinct types for custom collections
750 that don't need them (use Other for both).
751 * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
753 * html/HTMLFormCollection.cpp:
754 (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
755 for the HTMLCollection type.
757 * html/HTMLTableElement.cpp:
758 (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
759 (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
760 keeping a pointer to it.
761 (WebCore::HTMLTableElement::setCaption): Rewrote.
762 (WebCore::HTMLTableElement::tHead): Ditto.
763 (WebCore::HTMLTableElement::setTHead): Ditto.
764 (WebCore::HTMLTableElement::tFoot): Ditto.
765 (WebCore::HTMLTableElement::setTFoot): Ditto.
766 (WebCore::HTMLTableElement::createTHead): Ditto.
767 (WebCore::HTMLTableElement::deleteTHead): Ditto.
768 (WebCore::HTMLTableElement::createTFoot): Ditto.
769 (WebCore::HTMLTableElement::deleteTFoot): Ditto.
770 (WebCore::HTMLTableElement::createCaption): Ditto.
771 (WebCore::HTMLTableElement::deleteCaption): Ditto.
772 (WebCore::HTMLTableElement::lastBody): Added.
773 (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
774 This is different from the old code mainly in how it handles rows outside any section.
775 (WebCore::HTMLTableElement::deleteRow): Ditto.
776 (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
777 these was a possible source of serious bugs too, including crashes with stale pointers, although I
778 didn't write any test cases to prove those bugs existed.
779 (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
780 just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
781 visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
782 (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
783 * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
784 things like DOM mutation events take things ot of the tree before they are safely referenced by
785 JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
786 firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
787 Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
788 unneeded friend declaration for HTMLTableCellElement.
789 * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
791 * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
792 collection in which order.
793 * html/HTMLTableRowsCollection.h: Added.
795 * loader/FTPDirectoryDocument.cpp:
796 (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
797 coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
798 create a tbody element.
800 2008-01-02 Darin Adler <darin@apple.com>
802 Reviewed by Alice and Tim.
804 - try to fix GTK and Qt builds
806 * platform/win/ScrollViewWin.cpp:
807 (WebCore::ScrollView::scroll): Improve logic slightly for the case of
808 vertical scrolling when there's no vertical scroll bar.
810 * platform/gtk/ScrollViewGtk.cpp:
811 (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
812 should be factored differently.
813 * platform/qt/ScrollViewQt.cpp:
814 (WebCore::ScrollView::scroll): Ditto.
816 2008-01-02 Darin Adler <darin@apple.com>
820 - http://bugs.webkit.org/show_bug.cgi?id=16712
821 change StringImpl to take and return PassRefPtr instead of raw pointers
823 Also eliminated use of const StringImpl. Since StringImpl is immutable there
824 is no distinction between a const and non-const one at the moment.
826 * WebCore.base.exp: Updated.
829 (WebCore::parseURL): Make String directly, not by making a StringImpl.
831 (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
833 (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
834 to a function that takes a String.
836 * dom/CDATASection.cpp: Removed unused constructor.
837 (WebCore::CDATASection::cloneNode): Added a now-needed .get().
838 (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
839 * dom/CDATASection.h:
841 * dom/CharacterData.cpp:
842 (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
843 ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
844 (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
846 (WebCore::CharacterData::setData): More of that.
847 (WebCore::CharacterData::substringData): Ditto.
848 (WebCore::CharacterData::appendData): Ditto.
849 (WebCore::CharacterData::insertData): Ditto.
850 (WebCore::CharacterData::deleteData): Ditto.
851 (WebCore::CharacterData::replaceData): Ditto.
852 (WebCore::CharacterData::nodeValue): Ditto.
853 (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
854 (WebCore::CharacterData::dump): Ditto.
855 * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
856 instead, but since String adds extra branches to handle 0, I figured it was
857 more conservative to just use RefPtr. Later it would be good to figure out
858 which is preferred style and be more consistent. Maybe we'll phase out
859 StringImpl, or maybe we'll go the other way and use it more since it can be
862 * dom/DOMImplementation.cpp:
863 (WebCore::addString): Changed set to use String rather than StringImpl.
864 (WebCore::isSVG10Feature): Ditto.
865 (WebCore::isSVG11Feature): Ditto.
866 (WebCore::DOMImplementation::createDocument): Replaced custom code to
867 find a colon with a call to String::find.
870 (WebCore::Range::insertNode): Updated since the result of splitText is now
874 (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
875 result of this function be a PassRefPtr.
876 (WebCore::Text::createRenderer): Ditto.
877 (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
880 * html/HTMLElement.cpp:
881 (WebCore::HTMLElement::nodeName): Use String::upper.
883 * html/HTMLInputElement.cpp:
884 (WebCore::numGraphemeClusters): Remove now-unneeded const.
885 (WebCore::numCharactersInGraphemeClusters): Ditto.
887 * html/HTMLTokenizer.cpp:
888 (WebCore::HTMLTokenizer::processToken): Updated for function name change.
890 * platform/text/AtomicString.cpp:
891 (WebCore::CStringTranslator::translate): Updated since there is no longer
892 a constructor that takes a string.
894 * platform/text/PlatformString.h: Added new constructors that take
895 PassRefPtr and RefPtr. Removed misleading comment.
897 * platform/text/String.cpp:
898 (WebCore::String::String): Changed to use StringImpl::create, which handles
899 the empty string automatically.
900 (WebCore::String::append): Ditto.
901 (WebCore::String::charactersWithNullTermination): Similar.
902 (WebCore::String::format): Ditto.
904 * platform/text/StringHash.h: Took out unneeded const.
906 * platform/text/StringImpl.cpp:
907 (WebCore::deleteUCharVector): Changed to take a const pointer since the
908 buffers are now const UChar buffers.
909 (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
910 separate init functions. The constructors are now private and used only in
911 the create functions and one or two other places.
912 (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
913 (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
915 (WebCore::StringImpl::characterStartingAt): Ditto.
916 (WebCore::StringImpl::toLength): Ditto.
917 (WebCore::StringImpl::toCoordsArray): Ditto.
918 (WebCore::StringImpl::toLengthArray): Ditto.
919 (WebCore::StringImpl::isLower): Ditto.
920 (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
921 don't have to use new directly here. Makes empty string handling more consistent.
922 (WebCore::StringImpl::upper): Ditto.
923 (WebCore::StringImpl::secure): Ditto.
924 (WebCore::StringImpl::foldCase): Ditto.
925 (WebCore::StringImpl::stripWhiteSpace): Ditto.
926 (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
927 (WebCore::StringImpl::capitalize): Ditto.
928 (WebCore::StringImpl::toInt): Removed now-meaningless const.
929 (WebCore::StringImpl::toInt64): Ditto.
930 (WebCore::StringImpl::toUInt64): Ditto.
931 (WebCore::StringImpl::toDouble): Ditto.
932 (WebCore::StringImpl::toFloat): Ditto.
933 (WebCore::StringImpl::find): Ditto.
934 (WebCore::StringImpl::reverseFind): Ditto.
935 (WebCore::StringImpl::endsWith): Ditto.
936 (WebCore::StringImpl::replace): Ditto.
937 (WebCore::equal): Ditto.
938 (WebCore::equalIgnoringCase): Ditto.
939 (WebCore::StringImpl::ascii): Ditto.
940 (WebCore::StringImpl::defaultWritingDirection): Ditto.
941 (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
942 (WebCore::StringImpl::adopt): Added special case so this uses the shared
943 empty string like other functions. Also optimized the common case where the
944 vector happens to already have the right size so we don't do a fastRealloc
945 at all in those cases.
946 (WebCore::StringImpl::create): Added. These are now the public functions for
947 creating new StringImpl objects. They all implement the shared empty string.
948 (WebCore::StringImpl::createWithTerminatingNullCharacter):
949 * platform/text/StringImpl.h:
951 * platform/text/cf/StringCF.cpp:
952 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
953 * platform/text/cf/StringImplCF.cpp:
954 (WebCore::StringImpl::createCFString): Removed now-obsolete const.
955 * platform/text/mac/StringImplMac.mm:
956 (WebCore::StringImpl::operator NSString *): Ditto.
957 * platform/text/mac/StringMac.mm:
958 (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
959 * platform/text/qt/StringQt.cpp:
960 (WebCore::String::String): Ditto.
961 * platform/text/wx/StringWx.cpp:
962 (WebCore::String::String): Ditto.
963 * rendering/RenderBR.cpp:
964 (WebCore::RenderBR::RenderBR): Ditto.
966 * rendering/RenderSVGInlineText.cpp:
967 (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
968 * rendering/RenderSVGInlineText.h:
970 * rendering/RenderText.cpp:
971 (WebCore::charactersAreAllASCII): Removed now-unneeded const.
972 * rendering/RenderTextFragment.cpp:
973 (WebCore::RenderTextFragment::originalText): Use RefPtr.
975 2008-01-02 Timothy Hatcher <timothy@apple.com>
977 Reviewed by Oliver Hunt.
979 <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
981 Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
982 internal element lookup tables. The represented DOM node object still holds the identifier
983 it was assigned, and a later call to findTreeElement will use that original identifier
984 against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
986 * page/inspector/treeoutline.js:
987 (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
988 but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
989 instead of an early return.
991 2008-01-02 Alice Liu <alice.liu@apple.com>
995 Fixed <rdar://5283861> (problems scrolling in gmail message content area)
997 * platform/ScrollView.h:
998 * platform/win/ScrollViewWin.cpp:
999 (WebCore::ScrollView::scroll):
1000 Changed return value to bool to reflect success of scroll attempt
1002 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1004 Fixed a typo (pointed out in review, but I somehow missed it at first).
1006 * editing/EditorCommand.cpp: (WebCore::executeDelete):
1008 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1012 Resolved several FIXMEs in EditorCommand.
1013 Made recently added commands hidden from JS again.
1014 Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
1016 Tests: editing/execCommand/delete-no-scroll.html
1017 editing/execCommand/forward-delete-no-scroll.html
1018 editing/execCommand/insert-line-break-no-scroll.html
1020 * editing/EditorCommand.cpp:
1021 (WebCore::executeDelete):
1022 (WebCore::executeForwardDelete):
1023 (WebCore::executeInsertLineBreak):
1024 (WebCore::supportedFromMenuOrKeyBinding):
1025 (WebCore::CommandEntry::):
1027 2008-01-02 Alexey Proskuryakov <ap@webkit.org>
1031 http://bugs.webkit.org/show_bug.cgi?id=14555
1032 action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
1034 http://bugs.webkit.org/show_bug.cgi?id=14774
1035 Submitted data only includes first input item
1037 Reworked encoding of mailto URLs to match other browsers.
1038 Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
1040 Tests: fast/forms/mailto/advanced-get.html
1041 fast/forms/mailto/advanced-put.html
1042 fast/forms/mailto/get-multiple-items-text-plain.html
1043 fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
1044 fast/forms/mailto/get-multiple-items.html
1045 fast/forms/mailto/get-non-ascii.html
1046 fast/forms/mailto/get-non-ascii-text-plain.html
1047 fast/forms/mailto/get-overwrite-query.html
1048 fast/forms/mailto/post-append-query.html
1049 fast/forms/mailto/post-multiple-items-multipart-form-data.html
1050 fast/forms/mailto/post-multiple-items-text-plain.html
1051 fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
1052 fast/forms/mailto/post-multiple-items.html
1054 * html/HTMLFormElement.cpp:
1055 (WebCore::HTMLFormElement::submit):
1056 * loader/FrameLoader.cpp:
1057 (WebCore::FrameLoader::submitForm):
1059 2008-01-02 Mark Rowe <mrowe@apple.com>
1061 Autotools build fix.
1063 * GNUmakefile.am: Remove files before generating them, not after.
1065 2008-01-02 Mark Rowe <mrowe@apple.com>
1067 Rubber-stamped by Alp Toker.
1069 Add missing dependencies to some GNUmakefile.am rules.
1073 2008-01-02 Mark Rowe <mrowe@apple.com>
1075 Reviewed by Alp Toker.
1077 Autotools build fix. Make can expand $@ to any of the targets for the rule,
1078 while we always want to use the name of the .cpp file as the output file.
1082 2008-01-02 Luca Bruno <lethalman88@gmail.com>
1084 Reviewed by Alp Toker.
1086 http://bugs.webkit.org/show_bug.cgi?id=16115
1087 [GTK] ContextMenu and ContextMenuItem lacks an implementation
1089 Add context menu support.
1091 Based on a patch by Holger Freyther.
1093 * platform/gtk/ContextMenuGtk.cpp:
1094 (WebCore::menuItemActivated):
1095 (WebCore::ContextMenu::ContextMenu):
1096 (WebCore::ContextMenu::~ContextMenu):
1097 (WebCore::ContextMenu::appendItem):
1098 (WebCore::ContextMenu::setPlatformDescription):
1099 (WebCore::ContextMenu::releasePlatformDescription):
1100 * platform/gtk/ContextMenuItemGtk.cpp:
1101 (WebCore::ContextMenuItem::ContextMenuItem):
1102 (WebCore::ContextMenuItem::~ContextMenuItem):
1103 (WebCore::ContextMenuItem::releasePlatformDescription):
1104 (WebCore::ContextMenuItem::type):
1105 (WebCore::ContextMenuItem::action):
1106 (WebCore::ContextMenuItem::setAction):
1107 (WebCore::ContextMenuItem::platformSubMenu):
1108 (WebCore::ContextMenuItem::setSubMenu):
1109 (WebCore::ContextMenuItem::setChecked):
1110 (WebCore::ContextMenuItem::setEnabled):
1112 2008-01-02 Alp Toker <alp@atoker.com>
1114 GTK+ autotools build fix. Track changes in r29073.
1118 2008-01-01 Darin Adler <darin@apple.com>
1122 * bindings/js/kjs_binding.cpp:
1123 (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
1124 Removed default so we get a warning if there's a missing case.
1126 2008-01-01 David D. Kilzer <ddkilzer@webkit.org>
1128 Scripting MIME Types application/ecmascript, application/javascript not viewable
1129 <http://bugs.webkit.org/show_bug.cgi?id=11063>
1133 This patch consolidates the list of acceptable MIME types for JavaScript
1134 source into the MIMETypeRegistry class, and replaces checks for these
1135 types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
1137 No tests added since viewing JavaScript source is not testable.
1139 * dom/DOMImplementation.cpp:
1140 (WebCore::DOMImplementation::isTextMIMEType): Use
1141 MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
1142 hard-coded MIME type, "application/x-javascript".
1144 * html/HTMLScriptElement.cpp:
1145 (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
1146 JavaScript MIME types from here to
1147 MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
1149 * platform/MIMETypeRegistry.cpp:
1150 (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
1151 MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
1152 (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
1153 hard-coded MIME type, "application/x-javascript", from the list.
1154 (WebCore::initialiseMIMETypeRegistry): Initialise
1155 supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
1156 with values in supportedJavaScriptMIMETypes.
1157 (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
1159 * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
1161 2008-01-01 Sam Weinig <sam@webkit.org>
1165 Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
1166 Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
1168 - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
1169 - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
1170 - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
1172 Tests: fast/dom/DOMException/EventException.html
1173 fast/dom/DOMException/RangeException.html
1174 fast/dom/DOMException/XPathException.html
1175 http/tests/xmlhttprequest/XMLHttpRequestException.html
1176 svg/custom/SVGException.html
1178 * DerivedSources.make:
1180 * WebCore.vcproj/WebCore.vcproj:
1181 * WebCore.xcodeproj/project.pbxproj:
1182 * WebCoreSources.bkl:
1183 * bindings/js/JSSVGMatrixCustom.cpp:
1184 (WebCore::JSSVGMatrix::inverse):
1185 (WebCore::JSSVGMatrix::rotateFromVector):
1186 * bindings/js/kjs_binding.cpp:
1187 (KJS::setDOMException):
1188 * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
1189 in the IDL as the ObjC bindings do.
1190 * bindings/scripts/CodeGeneratorObjC.pm:
1191 * dom/DOMCoreException.cpp: Removed.
1192 * dom/DOMCoreException.h:
1193 (WebCore::DOMCoreException::DOMCoreException):
1194 * dom/DOMCoreException.idl:
1196 * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
1197 (WebCore::EventException::EventException):
1198 (WebCore::EventException::):
1199 * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1200 * dom/EventTargetNode.cpp:
1201 (WebCore::EventTargetNode::dispatchEvent):
1202 * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
1203 (WebCore::ExceptionBase::ExceptionBase):
1204 (WebCore::ExceptionBase::toString):
1205 * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
1206 (WebCore::ExceptionBase::code):
1207 * dom/ExceptionCode.cpp:
1208 (WebCore::getExceptionCodeDescription):
1209 * dom/ExceptionCode.h:
1212 (WebCore::Range::insertNode):
1213 (WebCore::Range::checkNodeWOffset):
1214 (WebCore::Range::checkNodeBA):
1215 (WebCore::Range::selectNode):
1216 (WebCore::Range::selectNodeContents):
1217 (WebCore::Range::surroundContents):
1218 * dom/RangeException.h:
1219 (WebCore::RangeException::RangeException):
1220 (WebCore::RangeException::):
1221 * dom/RangeException.idl:
1222 * page/DOMWindow.idl:
1224 (WebCore::SVGColor::setRGBColor):
1225 * svg/SVGException.h:
1226 (WebCore::SVGException::SVGException):
1227 (WebCore::SVGException::):
1228 * svg/SVGException.idl:
1229 * svg/SVGLocatable.cpp:
1230 (WebCore::SVGLocatable::getTransformToElement):
1231 * xml/XMLHttpRequest.cpp:
1232 (WebCore::XMLHttpRequest::dispatchEvent):
1233 (WebCore::XMLHttpRequest::open):
1234 (WebCore::XMLHttpRequest::send):
1235 * xml/XMLHttpRequest.h:
1236 * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
1237 (WebCore::XMLHttpRequestException::XMLHttpRequestException):
1238 (WebCore::XMLHttpRequestException::):
1239 * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1240 * xml/XPathEvaluator.h:
1241 * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
1242 (WebCore::XPathException::XPathException):
1243 (WebCore::XPathException::):
1244 * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1245 * xml/XPathParser.cpp:
1246 (WebCore::XPath::Parser::parseStatement):
1247 * xml/XPathResult.cpp:
1248 (WebCore::XPathResult::convertTo):
1249 (WebCore::XPathResult::numberValue):
1250 (WebCore::XPathResult::stringValue):
1251 (WebCore::XPathResult::booleanValue):
1252 (WebCore::XPathResult::singleNodeValue):
1253 (WebCore::XPathResult::snapshotLength):
1254 (WebCore::XPathResult::iterateNext):
1255 (WebCore::XPathResult::snapshotItem):
1257 2008-01-01 Sam Weinig <sam@webkit.org>
1259 Remove JSDomExceptionConstructor.lut.h from clean step
1260 as it no longer exists.
1264 2008-01-01 Dan Bernstein <mitz@apple.com>
1268 * WebCore.vcproj/WebCore.vcproj:
1270 2008-01-01 Sam Weinig <sam@webkit.org>
1272 Try again to fix the builds
1274 * DerivedSources.make:
1276 2008-01-01 Sam Weinig <sam@webkit.org>
1281 * WebCore.vcproj/WebCore.vcproj:
1282 * WebCoreSources.bkl:
1284 2008-01-01 Eric Seidel <eric@webkit.org>
1288 Don't replace \ with / in data: urls
1289 http://bugs.webkit.org/show_bug.cgi?id=16692
1291 Test: fast/loader/url-data-replace-backslash.html
1293 * platform/KURL.cpp:
1294 (WebCore::KURL::init):
1296 2008-01-01 Alp Toker <alp@atoker.com>
1298 GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
1299 correct parameter to AM_INIT_AUTOMAKE.
1303 2007-12-31 Sam Weinig <sam@webkit.org>
1307 Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
1308 Acid3 expects ExeceptionCode constants to be defined on DOMException objects
1310 - Make DOMException a real JS object.
1312 Test: fast/dom/DOMException/prototype-object.html
1314 * DerivedSources.make:
1315 * WebCore.xcodeproj/project.pbxproj:
1317 This is no longer needed as the autogenerated classes now includes the
1319 * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
1320 * bindings/js/JSDOMExceptionConstructor.h: Removed.
1322 Create on demand and use the new class for DOMExceptions.
1323 * bindings/js/kjs_binding.cpp:
1324 (KJS::setDOMException):
1326 Remove no longer needed custom constructor getter.
1327 * bindings/js/kjs_window.cpp:
1328 (KJS::Window::getValueProperty):
1330 Don't expose DOMCoreException as the name of class by special casing
1331 the user visible class name to be DOMException.
1332 * bindings/scripts/CodeGeneratorJS.pm:
1334 The DOMException class/file needs to be named DOMCoreException because there is
1335 name conflict with one of the Objective-C bindings classes. It should be renamed
1336 to DOMException when the Objective-C bindings are moved into WebKit.
1337 * dom/DOMCoreException.cpp: Added.
1338 (WebCore::DOMCoreException::DOMCoreException):
1339 (WebCore::DOMCoreException::toString):
1340 * dom/DOMCoreException.h: Added.
1341 (WebCore::DOMCoreException::):
1342 (WebCore::DOMCoreException::code):
1343 (WebCore::DOMCoreException::name):
1344 (WebCore::DOMCoreException::message):
1345 * dom/DOMCoreException.idl: Added.
1346 * page/DOMWindow.idl:
1348 2007-12-31 Sam Weinig <sam@webkit.org>
1350 Re-enable querySelector and querySelectorAll and touch the necessary files to not
1351 kill the windows build.
1353 * WebCore.vcproj/build-generated-files.sh:
1354 * bindings/scripts/CodeGeneratorCOM.pm:
1358 2007-12-31 Darin Adler <darin@apple.com>
1362 * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
1363 up as pure virtual functions. Sam can fix this later.
1364 * dom/Element.idl: Ditto.
1366 2007-12-31 Dan Bernstein <mitz@apple.com>
1368 Reviewed by Darin Adler.
1370 - fix http://bugs.webkit.org/show_bug.cgi?id=14134
1371 <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
1373 Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
1376 (WebCore::Node::attach): Added code to check if this node's renderer
1377 has become the "previous renderer" of any sibling text node, and if so,
1378 ensure that that node gets a renderer if it now needs one.
1379 (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
1380 node is not attached.
1382 2007-12-31 Darin Adler <darin@apple.com>
1386 - fix http://bugs.webkit.org/show_bug.cgi?id=16641
1387 Acid3 reveals HTMLFormElement.elements fails to update when element name changes
1389 Test: fast/dom/HTMLFormElement/elements-not-in-document.html
1391 This was a bug specific to forms that are not in the document tree.
1392 The fix was to change the code to increment the document version number to match
1393 up with other document change tracking. Maybe at some point we can clean these up
1394 so we don't have so many competing change notification systems.
1396 * dom/ContainerNode.cpp:
1397 (WebCore::ContainerNode::replaceChild): Removed bogus comment.
1398 (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
1399 call here, since this code path bypasses the subtree-modified event code.
1402 (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
1403 collections are for things in the document.
1404 (WebCore::Element::setAttributeMap): Ditto.
1406 * dom/EventTargetNode.cpp:
1407 (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
1408 incDOMTreeVersion here; covers most cases of tree structure changes.
1411 (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
1412 has nothing to do with changes to the DOM tree!
1413 (WebCore::Node::detach): Ditto.
1415 * html/HTMLFormElement.cpp:
1416 (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
1417 This is handled at a lower level and doesn't need to be here.
1418 (WebCore::HTMLFormElement::removeFormElement): Ditto.
1420 2007-12-31 Henry Mason <hmason@mac.com>
1424 Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
1425 Support for MessageEvent and cross-domain messaging
1427 Test: http/tests/messaging/cross-domain-message-send.html
1429 * DerivedSources.make:
1431 * WebCore.vcproj/WebCore.vcproj:
1432 * WebCore.xcodeproj/project.pbxproj:
1433 * WebCoreSources.bkl:
1434 * bindings/js/JSDOMWindowCustom.cpp:
1435 (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
1436 postMessage function.
1437 (WebCore::JSDOMWindow::postMessage):
1438 * bindings/js/JSEventCustom.cpp:
1441 (WebCore::Event::isMessageEvent):
1443 * dom/EventNames.h: New event name
1444 * dom/MessageEvent.cpp: Added.
1445 * dom/MessageEvent.h: Added.
1446 * dom/MessageEvent.idl: Added.
1447 * page/DOMWindow.cpp:
1448 (WebCore::DOMWindow::postMessage): Added.
1450 * page/DOMWindow.idl:
1452 2007-12-31 Darin Adler <darin@apple.com>
1456 - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
1458 * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
1459 * WebCore.vcproj/build-generated-files.sh: Ditto.
1461 2007-12-30 Alp Toker <alp@atoker.com>
1463 Reviewed by Dan Bernstein.
1469 2007-12-30 Sam Weinig <sam@webkit.org>
1471 Reviewed by Oliver Hunt.
1473 Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
1474 Variable names can be enumerated across domains
1475 <rdar://problem/5640454>
1477 Test: http/tests/security/cross-frame-access-enumeration.html
1479 * bindings/js/kjs_window.cpp:
1480 (KJS::Window::getPropertyNames): Override method to test same-origin policy.
1481 * bindings/js/kjs_window.h:
1483 2007-12-30 Sam Weinig <sam@webkit.org>
1485 Reviewed by Oliver Hunt.
1487 Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
1488 event instanceof MouseEvent throws exception
1490 Add JS constructors for all the Event types.
1492 Test: fast/events/event-instanceof.html
1494 * WebCore.xcodeproj/project.pbxproj:
1495 * dom/KeyboardEvent.idl:
1496 * dom/MouseEvent.idl:
1497 * dom/MutationEvent.idl:
1498 * dom/OverflowEvent.idl:
1499 * dom/ProgressEvent.idl:
1500 * dom/TextEvent.idl:
1502 * dom/WheelEvent.idl:
1503 * page/DOMWindow.idl:
1505 2007-12-30 David Kilzer <ddkilzer@webkit.org>
1509 - fix http://bugs.webkit.org/show_bug.cgi?id=15359
1510 JPEG image not shown when height is specified as percentage inside a table
1512 The problem occurs when a replaced element (image, canvas, etc.) with
1513 a percent-height attribute is contained by a table cell with an auto-
1514 or percent-height attribute. If there are no other conditions to cause
1515 the table cell's height to expand, an available height of zero will
1516 always be returned. In these cases, the intrinsic height of the
1517 replaced element should be used if it is greater than the available
1518 height of the table cell.
1520 Tests: fast/replaced/table-percent-height.html
1521 tables/mozilla/bugs/bug137388-1.html
1522 tables/mozilla/bugs/bug137388-2.html
1524 * rendering/RenderBox.cpp:
1525 (WebCore::RenderBox::calcReplacedHeightUsing):
1527 2007-12-30 Luca Bruno <lethalman88@gmail.com>
1529 Reviewed by Alp Toker.
1531 http://bugs.webkit.org/show_bug.cgi?id=16099
1532 Crash in CURL for empty POST
1534 We have to set POST even when the data is empty, otherwise cURL will
1535 hang while waiting for a response.
1537 * platform/network/curl/ResourceHandleManager.cpp
1538 (ResourceHandleManager::setupPOST): allow empty POST
1540 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1542 Reviewed by Alp Toker.
1544 Move all SVG related stuff inside SVG block. Don't include
1545 SVGNames, SVGElementFactory, and XLinkNames when SVG is not
1550 2007-12-29 Alexey Proskuryakov <ap@webkit.org>
1554 http://bugs.webkit.org/show_bug.cgi?id=14428
1555 FCKEditor: Images disappear on drag/drop and copy/paste
1557 Test: editing/pasteboard/drag-image-in-about-blank-frame.html
1559 * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
1560 base URL, just like we don't use an empty one.
1562 2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1564 Reviewed by Alp Toker.
1566 http://bugs.webkit.org/show_bug.cgi?id=16669
1567 autotools update and fixes
1569 Autotools update and database/icon database inclusion guard fixes
1572 - Update autotools config as per -r29012 changes
1573 - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
1575 * loader/icon/IconDatabase.h:
1576 * page/DOMWindow.cpp:
1577 * page/InspectorController.cpp:
1578 * page/Settings.cpp:
1579 * storage/Database.h:
1580 - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
1582 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1586 Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
1587 (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
1590 (WebCore::Font::drawGlyphsWithSVGFont):
1592 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1596 Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
1597 SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
1599 * platform/graphics/FontData.cpp:
1600 (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
1601 (WebCore::FontData::ascent):
1602 (WebCore::FontData::descent):
1603 * platform/graphics/FontData.h:
1605 (WebCore::isVerticalWritingMode): Add helper function.
1606 (WebCore::Font::drawGlyphsWithSVGFont):
1607 * svg/SVGFontElement.cpp:
1608 (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
1609 * svg/SVGGlyphElement.cpp:
1610 (WebCore::parseArabicForm): Helper function.
1611 (WebCore::parseOrientation): Ditto.
1612 (WebCore::parsePathData): Ditto.
1613 (WebCore::SVGGlyphElement::buildGlyphIdentifier):
1614 * svg/SVGGlyphElement.h:
1615 (WebCore::SVGGlyphElement::rendererIsNeeded):
1617 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1621 Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
1622 SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
1624 * svg/SVGAnimationElement.cpp:
1625 (WebCore::SVGAnimationElement::parseMappedAttribute):
1626 * svg/SVGParserUtilities.cpp:
1627 (WebCore::parseDelimitedString):
1628 * svg/SVGParserUtilities.h:
1630 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1634 Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
1635 Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
1637 To optimize for the common case ('FontData' used for HTML rendering) it feels
1638 better to hold one OwnPtr in FontData, than several floats.
1640 Parse all <font> attributes in SVGFontFaceElement::createFontData.
1642 * platform/graphics/FontData.cpp:
1643 (WebCore::SVGFontData::SVGFontData):
1644 (WebCore::FontData::FontData):
1645 (WebCore::FontData::ascent):
1646 (WebCore::FontData::descent):
1647 * platform/graphics/FontData.h:
1648 (WebCore::FontData::isSVGFont):
1649 (WebCore::FontData::svgFontData):
1651 (WebCore::Font::drawGlyphsWithSVGFont):
1652 * svg/SVGFontElement.cpp:
1653 * svg/SVGFontElement.h:
1654 (WebCore::SVGFontElement::rendererIsNeeded):
1655 * svg/SVGFontFaceElement.cpp:
1656 (WebCore::SVGFontFaceElement::unitsPerEm):
1657 (WebCore::SVGFontFaceElement::createFontData):
1659 2007-12-28 Darin Adler <darin@apple.com>
1661 - try to fix Windows and WX builds (broken by SVG Fonts check-in)
1663 * platform/graphics/win/FontWin.cpp:
1664 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
1665 I can't see how it can be right to require the font size for ascent and descent,
1666 but not for other metrics functions in FontData.
1668 * platform/graphics/wx/FontWx.cpp:
1669 (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
1671 2007-12-28 Dan Bernstein <mitz@apple.com>
1673 Reviewed by Mark Rowe.
1675 - fix http://bugs.webkit.org/show_bug.cgi?id=16650
1676 <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
1678 Covered by existing pixel tests.
1680 * platform/graphics/mac/FontMac.mm:
1681 (WebCore::Font::drawComplexText): Corrected to maintain the style
1682 information in the adjusted text run when passing it to
1683 ATSUILayoutParameters. Prior to r28298 the style was passed separately.
1685 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1687 Build fix, not reviewed.
1689 Add wtf/OwnPtr.h include, to fix --svg-fonts build.
1691 * css/SVGCSSFontFace.h:
1693 2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
1697 Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
1699 Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
1700 Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
1701 are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
1703 Limited to single char <-> glyph mapping, no ligatures supported yet.
1704 (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
1706 Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
1708 No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
1709 attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
1711 * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
1712 * WebCore.pro: Updated build system.
1713 * WebCore.vcproj/WebCore.vcproj: Ditto.
1714 * WebCore.xcodeproj/project.pbxproj: Ditto.
1715 * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
1716 * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
1717 (WebCore::createElementClassMap):
1718 * bindings/objc/DOMInternal.h: Ditto.
1719 * bindings/objc/DOMSVG.h: Ditto.
1720 * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
1721 * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
1722 (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
1723 (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
1724 (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
1725 * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
1726 (WebCore::CSSFontSelector::addFontFaceRule):
1727 * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
1728 (WebCore::SVGCSSFontFace::SVGCSSFontFace):
1729 (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
1730 (WebCore::SVGCSSFontFace::isValid):
1731 (WebCore::SVGCSSFontFace::addSource):
1732 (WebCore::SVGCSSFontFace::getFontData):
1733 * css/SVGCSSFontFace.h: Added.
1734 * platform/graphics/cg/PathCG.cpp:
1735 (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
1736 * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
1737 (WebCore::Font::ascent): Pass font size to FontData::ascent() call
1738 (WebCore::Font::descent): Pass font size to FontData::descent() call
1739 (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
1740 (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
1741 * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
1742 (WebCore::TextRun::TextRun):
1743 (WebCore::TextRun::referencingRenderObject):
1744 (WebCore::TextRun::setReferencingRenderObject):
1745 * platform/graphics/FontData.cpp:
1746 (WebCore::FontData::FontData):
1747 (WebCore::FontData::ascent):
1748 (WebCore::FontData::descent):
1749 * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
1750 (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
1751 (WebCore::FontData::svgFontFace):
1752 * rendering/SVGInlineTextBox.cpp:
1753 (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
1754 * rendering/SVGRootInlineBox.cpp:
1755 (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
1756 * svg/SVGFont.cpp: Added.
1757 (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
1758 * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
1759 (WebCore::SVGFontElement::SVGFontElement):
1760 (WebCore::SVGFontElement::~SVGFontElement):
1761 (WebCore::SVGFontElement::parseMappedAttribute):
1762 (WebCore::SVGFontElement::collectGlyphs):
1763 (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
1764 * svg/SVGFontElement.h: Added.
1765 (WebCore::GlyphHash::hash):
1766 (WebCore::GlyphHash::equal):
1767 (WebCore::GlyphHashTraits::deletedValue):
1768 (WebCore::SVGFontElement::rendererIsNeeded):
1769 (WebCore::SVGFontElement::contextElement):
1770 * svg/SVGFontElement.idl: Added.
1771 * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
1772 (WebCore::SVGFontFaceElement::unitsPerEm):
1773 (WebCore::SVGFontFaceElement::fontFamily):
1774 (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
1775 (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
1776 (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
1777 (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
1778 * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
1779 * svg/SVGFontFaceElement.idl: Ditto.
1780 * svg/SVGFontFaceFormatElement.cpp: Ditto.
1781 * svg/SVGFontFaceFormatElement.h: Ditto.
1782 * svg/SVGFontFaceFormatElement.idl: Ditto.
1783 * svg/SVGFontFaceNameElement.cpp: Ditto.
1784 * svg/SVGFontFaceNameElement.h: Ditto.
1785 * svg/SVGFontFaceNameElement.idl: Ditto.
1786 * svg/SVGFontFaceSrcElement.cpp: Ditto.
1787 * svg/SVGFontFaceSrcElement.h: Ditto.
1788 * svg/SVGFontFaceSrcElement.idl: Ditto.
1789 * svg/SVGFontFaceUriElement.cpp: Ditto.
1790 * svg/SVGFontFaceUriElement.h: Ditto.
1791 * svg/SVGFontFaceUriElement.idl: Ditto.
1792 * svg/SVGDefinitionSrcElement.cpp: Ditto.
1793 * svg/SVGDefinitionSrcElement.h: Ditto.
1794 * svg/SVGDefinitionSrcElement.idl: Ditto.
1795 * svg/SVGGlyphElement.cpp: Added.
1796 (WebCore::SVGGlyphElement::SVGGlyphElement):
1797 (WebCore::SVGGlyphElement::parseMappedAttribute):
1798 (WebCore::SVGGlyphElement::childrenChanged):
1799 * svg/SVGGlyphElement.h: Added.
1800 (WebCore::SVGGlyphElement::rendererIsNeeded):
1801 (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
1802 (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
1803 * svg/SVGGlyphElement.idl: Added.
1804 * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
1805 (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
1806 (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
1807 (WebCore::SVGMissingGlyphElement::childrenChanged):
1808 * svg/SVGMissingGlyphElement.h: Added.
1809 (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
1810 * svg/SVGMissingGlyphElement.idl: Added.
1811 * 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!).
1813 2007-12-27 Dan Bernstein <mitz@apple.com>
1815 Reviewed by Alexey Proskuryakov.
1817 - fix http://bugs.webkit.org/show_bug.cgi?id=16628
1818 ASSERTION FAILED: m_resizeLayer (running layout tests)
1820 * rendering/RenderLayer.cpp:
1821 (WebCore::RenderLayer::~RenderLayer): Avoid calling
1822 EventHandler::resizeLayerDestroyed() if the document is being destroyed.
1824 2007-12-27 Dan Bernstein <mitz@apple.com>
1826 Reviewed by Oliver Hunt.
1828 - fix http://bugs.webkit.org/show_bug.cgi?id=16603
1829 <rdar://problem/5664199> Crash when resizing text field
1831 Test: fast/layers/resize-layer-deletion-crash.html
1833 The event handler has only a weak reference to the layer that is
1834 currently in resize mode, so it is the layer's responsibility to let
1835 the event handler know if it has been destroyed while in that mode.
1837 * page/EventHandler.cpp:
1838 (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
1840 * page/EventHandler.h:
1841 * rendering/RenderLayer.cpp:
1842 (WebCore::RenderLayer::~RenderLayer): Added a call to
1843 EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
1845 2007-12-27 Collin Jackson <webkit@collinjackson.com>
1847 Reviewed by Sam Weinig.
1849 http://bugs.webkit.org/show_bug.cgi?id=16539
1850 <rdar://problem/5659269>
1852 The same-origin check was missing in the implementation of
1853 setTimeout, setInterval, addEventListener, and removeEventListener.
1855 Suppose <http://www.badguy.com/> contains an iframe to
1856 <http://www.goodguy.com/>. Now www.badguy.com can steal
1857 www.goodguy.com cookies by running this code:
1859 setTimeout.call(frames[0], "alert(document.cookie)", 1000);
1861 This patch changes the behavior so that setTimeout to does
1862 nothing and returns an undefined value if the caller is not
1863 permitted to script the window whose setTimeout method is being
1864 called. The same applies to setInterval, addEventListener, and
1865 removeEventListener.
1867 Tests: http/tests/security/cross-frame-access-call.html
1869 * bindings/js/kjs_window.cpp:
1870 (KJS::WindowProtoFuncSetTimeout::callAsFunction)
1871 (KJS::WindowProtoFuncSetInterval::callAsFunction)
1872 (KJS::WindowProtoFuncAddEventListener::callAsFunction)
1873 (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
1875 2007-12-27 Dan Bernstein <mitz@apple.com>
1877 Reviewed by Dave Hyatt and Sam Weinig.
1879 - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
1881 Test: fast/layers/add-layer-with-nested-stacking.html
1882 Test: fast/layers/remove-layer-with-nested-stacking.html
1884 * rendering/RenderLayer.cpp:
1885 (WebCore::RenderLayer::addChild): If the new child is overflow-only
1886 but has children of its own, dirty the stacking context's z-order lists
1887 since the grandchildren might need to be in them.
1888 (WebCore::RenderLayer::removeChild): Similarly for the old child.
1890 2007-12-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1892 Reviewed by Alp Toker.
1894 http://bugs.webkit.org/show_bug.cgi?id=16353
1895 [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
1897 Added the flags mentioned in the bug only when doing 'debug'
1898 builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
1903 2007-12-27 Dan Bernstein <mitz@apple.com>
1905 Reviewed by Eric Seidel.
1907 - fix http://bugs.webkit.org/show_bug.cgi?id=16490
1908 ASSERT in ~FrameView while viewing/reloading WICD test case
1910 Test: fast/dynamic/paused-event-dispatch.html
1912 * page/FrameView.cpp:
1913 (WebCore::FrameView::~FrameView):
1914 (WebCore::FrameView::layout): Changed to always pause event dispatch and
1915 always resume event dispatch, regardless of whether the post-layout
1916 task timer is active. However, if it is active, assert that event
1917 dispatch is still paused.
1919 2007-12-27 Alexey Proskuryakov <ap@webkit.org>
1923 http://bugs.webkit.org/show_bug.cgi?id=14500
1924 need to be more generous about charset declaration with meta tag
1926 http://bugs.webkit.org/show_bug.cgi?id=12526
1927 <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
1929 <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
1931 <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
1933 Tests: fast/encoding/ahram-org-eg.html
1934 fast/encoding/bandai-co-jp-releases.html
1935 fast/encoding/floraexpress-ru.html
1936 fast/encoding/hanarei-blog32-fc2-com.html
1937 fast/encoding/yahoo-mail.html
1939 * loader/TextResourceDecoder.cpp:
1940 (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
1941 seen at least 512 bytes of input.
1943 2007-12-26 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1945 Reviewed by Alp Toker.
1947 http://bugs.webkit.org/show_bug.cgi?id=16390
1948 Use autotools or GNU make as the build system for the GTK port
1950 * GNUmakefile.am: Added.
1952 2007-12-26 Alexey Proskuryakov <ap@webkit.org>
1954 Reviewed by Sam Weinig.
1956 http://bugs.webkit.org/show_bug.cgi?id=16609
1957 Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
1959 * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
1961 2007-12-26 Mark Rowe <mrowe@apple.com>
1965 * platform/Threading.h:
1967 2007-12-25 Rob Buis <buis@kde.org>
1971 http://bugs.webkit.org/show_bug.cgi?id=15514
1972 <clipPath> with <use> not respected
1973 http://bugs.webkit.org/show_bug.cgi?id=16557
1974 SVG circle elements have been clipped away completely, instead of partially.
1976 Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
1978 * svg/SVGClipPathElement.cpp:
1979 (WebCore::SVGClipPathElement::canvasResource):
1980 * svg/SVGStyledTransformableElement.h:
1981 (WebCore::SVGStyledTransformableElement::toClipPath):
1982 * svg/SVGUseElement.cpp:
1983 (WebCore::isDirectReference):
1984 (WebCore::SVGUseElement::toClipPath):
1985 * svg/SVGUseElement.h:
1987 2007-12-25 Sam Weinig <sam@webkit.org>
1989 Reviewed by Eric Seidel.
1991 Clean up the files relating to NodeLists.
1993 * dom/ChildNodeList.cpp:
1994 (WebCore::ChildNodeList::ChildNodeList):
1995 (WebCore::ChildNodeList::length):
1996 (WebCore::ChildNodeList::item):
1997 (WebCore::ChildNodeList::nodeMatches):
1998 * dom/ChildNodeList.h:
1999 * dom/DynamicNodeList.cpp:
2000 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2001 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2002 (WebCore::DynamicNodeList::itemWithName):
2003 * dom/DynamicNodeList.h:
2004 (WebCore::DynamicNodeList::needsNotifications):
2005 * dom/NameNodeList.cpp:
2006 (WebCore::NameNodeList::NameNodeList):
2007 (WebCore::NameNodeList::rootNodeAttributeChanged):
2008 (WebCore::NameNodeList::nodeMatches):
2009 * dom/NameNodeList.h:
2011 * dom/SelectorNodeList.h:
2013 2007-12-25 Sam Weinig <sam@webkit.org>
2018 * WebCore.vcproj/WebCore.vcproj:
2019 * WebCoreSources.bkl:
2021 2007-12-25 Sam Weinig <sam@webkit.org>
2023 Rubber stamped by Eric Seidel.
2025 Move TagNodeList into its own file.
2027 * WebCore.xcodeproj/project.pbxproj:
2029 * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
2030 (WebCore::TagNodeList::TagNodeList):
2031 * dom/TagNodeList.h: Copied from dom/Node.cpp.
2033 2007-12-25 Sam Weinig <sam@webkit.org>
2035 Reviewed by Eric Seidel.
2037 Simplify the NodeList architecture.
2038 - Rename recursiveItem() to item(), since it is not recursive.
2039 - Make recursiveLength() iterative and rename to length().
2040 - Remove now unneeded overrides of item() and length() that used
2041 to call the recursive variants.
2043 * dom/ClassNodeList.cpp:
2044 * dom/ClassNodeList.h:
2045 * dom/DynamicNodeList.cpp:
2046 (WebCore::DynamicNodeList::length):
2047 (WebCore::DynamicNodeList::item):
2048 (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation
2049 into the .cpp file since virtual methods can't be inlined.
2050 * dom/DynamicNodeList.h:
2051 * dom/NameNodeList.cpp:
2052 * dom/NameNodeList.h:
2055 2007-12-25 Alp Toker <alp@atoker.com>
2057 More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
2061 * WebCore.vcproj/WebCore.vcproj:
2062 * WebCoreSources.bkl:
2064 2007-12-25 Alp Toker <alp@atoker.com>
2066 Win build fix for breakage introduced in r28981.
2068 * WebCore.vcproj/WebCore.vcproj:
2070 2007-12-25 Alp Toker <alp@atoker.com>
2072 Wx build fix for breakage introduced in r28981.
2074 * WebCoreSources.bkl:
2076 2007-12-25 Alp Toker <alp@atoker.com>
2078 GTK+/Qt build fix for breakage introduced in r28981.
2082 2007-12-25 David Smith <catfish.man@gmail.com> and Sam Weinig <sam@webkit.org>
2086 - http://bugs.webkit.org/show_bug.cgi?id=16587
2087 Implement the most useful part of the W3C Selectors API.
2089 * WebCore.xcodeproj/project.pbxproj:
2090 * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
2091 * dom/ChildNodeList.cpp:
2092 (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
2093 * dom/ChildNodeList.h:
2094 * dom/ClassNodeList.cpp:
2095 (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
2096 * dom/ClassNodeList.h:
2097 * dom/Document.idl: Add the new functions
2098 * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
2099 (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
2100 (WebCore::DynamicNodeList::~DynamicNodeList):
2101 (WebCore::DynamicNodeList::recursiveLength):
2102 (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2103 (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2104 (WebCore::DynamicNodeList::recursiveItem):
2105 (WebCore::DynamicNodeList::itemWithName):
2106 (WebCore::DynamicNodeList::rootNodeChildrenChanged):
2107 (WebCore::DynamicNodeList::Caches::Caches):
2108 (WebCore::DynamicNodeList::Caches::reset):
2109 * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
2110 (WebCore::DynamicNodeList::rootNodeAttributeChanged):
2111 * dom/Element.idl: Add the new functions
2112 * dom/NameNodeList.cpp: Change to being a DynamicNodeList
2113 (WebCore::NameNodeList::NameNodeList):
2114 * dom/NameNodeList.h:
2115 (WebCore::NameNodeList::rootNodeAttributeChanged):
2117 (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
2118 (WebCore::Node::registerDynamicNodeList):
2119 (WebCore::Node::unregisterDynamicNodeList):
2120 (WebCore::Node::getElementsByName):
2121 (WebCore::Node::getElementsByClassName):
2122 (WebCore::Node::querySelector): new
2123 (WebCore::Node::querySelectorAll): new
2125 * dom/NodeList.cpp: Removed.
2126 * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
2127 (WebCore::NodeList::NodeList):
2128 (WebCore::NodeList::~NodeList):
2129 * dom/SelectorNodeList.cpp: Added.
2130 (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
2131 * dom/SelectorNodeList.h: Added.
2132 * dom/StaticNodeList.cpp: Added.
2133 (WebCore::StaticNodeList::length):
2134 (WebCore::StaticNodeList::item):
2135 (WebCore::StaticNodeList::itemWithName):
2136 * dom/StaticNodeList.h: Added.
2137 (WebCore::StaticNodeList::StaticNodeList):
2138 (WebCore::StaticNodeList::~StaticNodeList):
2140 2007-12-25 Mark Rowe <mrowe@apple.com>
2142 Reviewed by Sam Weinig.
2144 Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
2145 http://bugs.webkit.org/show_bug.cgi?id=16596
2147 This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
2148 of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
2149 access to a single ThreadSafeShared object.
2151 The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
2153 * platform/Threading.h:
2154 (WebCore::atomicIncrement):
2155 (WebCore::atomicDecrement):
2156 (WebCore::ThreadSafeShared::ThreadSafeShared):
2157 (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
2158 (WebCore::ThreadSafeShared::deref): Ditto.
2159 (WebCore::ThreadSafeShared::hasOneRef):
2160 (WebCore::ThreadSafeShared::refCount):
2161 (WebCore::ThreadSafeShared::isThreadSafe):
2163 2007-12-24 Darin Adler <darin@apple.com>
2165 * platform/text/PlatformString.h: Removed now-incorrect comment.
2166 Added a comment about copy().
2167 * platform/text/StringImpl.h: Added a comment about copy().
2169 2007-12-24 Darin Adler <darin@apple.com>
2173 - http://bugs.webkit.org/show_bug.cgi?id=16550
2174 make StringImpl immutable
2176 I tried to keep the changes to a minimum. In some cases there is
2177 room for optimization -- I didn't try to add in the "single ref count"
2178 optimizations and there might be a tiny bit more string copying than
2181 * WebCore.base.exp: Updated.
2183 * dom/CharacterData.cpp:
2184 (WebCore::CharacterData::appendData): Changed to use String since
2185 StringImpl doesn't have mutating functions any more.
2186 (WebCore::CharacterData::insertData): Ditto.
2187 (WebCore::CharacterData::deleteData): Ditto.
2188 (WebCore::CharacterData::replaceData): Ditto.
2190 (WebCore::Text::splitText): Changed to use substring instead of
2191 remove since StringImpl does't have mutating functions any more.
2192 * editing/CompositeEditCommand.cpp:
2193 (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
2194 to use String instead of StringImpl so we can use remove.
2196 * platform/text/PlatformString.h: Removed newUninitialized.
2197 Added append that takes a character pointer and length.
2199 * platform/text/String.cpp:
2200 (WebCore::String::insert): Added an implementation that does not
2201 rely on an underlying StringImpl function.
2202 (WebCore::String::append): Ditto.
2203 (WebCore::String::truncate): Ditto.
2204 (WebCore::String::remove): Ditto.
2205 (WebCore::String::charactersWithNullTermination): Added an
2206 implementation that uses the new StringImpl null termination feature,
2207 which does not require modifying a string.
2209 * platform/text/StringImpl.cpp:
2210 (WebCore::isSpace): Fix comment.
2211 (WebCore::StringImpl::StringImpl): Added a new constructor that makes
2212 a string with a trailing null character.
2213 (WebCore::StringImpl::substring): Marked const.
2214 (WebCore::StringImpl::replace): Marked const; had to add quite a few
2215 const_cast. Also rewrote one of these to work without modifying the
2218 * platform/text/StringImpl.h: Fixed a mistake where the empty string had
2219 m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
2220 for creating strings that have a trailing null character. Added a
2221 hasTerminatingNullCharacter function. Removed newUninitialized,
2222 charactersWithNullTermination, append, insert, truncate, and remove.
2223 Marked lots of other functions const.
2225 * platform/text/TextCodecLatin1.cpp:
2226 (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
2228 * platform/text/TextCodecUTF16.cpp:
2229 (WebCore::TextCodecUTF16::decode): Ditto.
2230 * platform/text/TextCodecUserDefined.cpp:
2231 (WebCore::TextCodecUserDefined::decode): Ditto.
2233 * rendering/RenderStyle.cpp:
2234 (WebCore::RenderStyle::setContent): Changed to use String since
2235 StringImpl doesn't have mutating functions any more.
2237 2007-12-24 Alexey Proskuryakov <ap@webkit.org>
2241 Fix fast/events/arrow-keys-on-body.html, failing on Windows.
2243 * platform/win/KeyEventWin.cpp:
2244 (WebCore::isKeypadEvent):
2245 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2246 Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
2248 2007-12-23 Alexey Proskuryakov <ap@webkit.org>
2250 Fix Debug and Release QTMovieWin bulds.
2252 * WebCore.vcproj/QTMovieWin.vcproj:
2253 * WebCore.vcproj/debug.vsprops:
2254 * WebCore.vcproj/debug_internal.vsprops:
2255 * WebCore.vcproj/release.vsprops:
2256 Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
2257 Build release import lib into \lib, not \bin.
2259 2007-12-23 Alp Toker <alp@atoker.com>
2261 Reviewed by Holger Freyther.
2263 http://bugs.webkit.org/show_bug.cgi?id=15382
2264 [CAIRO] Canvas pattern support
2266 http://bugs.webkit.org/show_bug.cgi?id=16577
2267 Merge Cairo enhancements from Apollo project
2269 Add support for canvas patterns.
2271 Make Image::nativeImageForCurrentFrame() public.
2273 Fix some typos along the way.
2275 The globalAlpha canvas fixes are not included in this patch as
2276 they're slightly more intrusive and may conflict conceptually with
2277 GraphicsContext::setAlpha().
2279 * html/CanvasPattern.cpp:
2280 (WebCore::CanvasPattern::CanvasPattern):
2281 (WebCore::CanvasPattern::~CanvasPattern):
2282 (WebCore::CanvasPattern::createPattern):
2283 * html/CanvasPattern.h:
2284 (WebCore::CanvasPattern::platformImage):
2285 * html/CanvasRenderingContext2D.cpp:
2286 (WebCore::CanvasRenderingContext2D::setShadow):
2287 (WebCore::CanvasRenderingContext2D::applyShadow):
2288 (WebCore::CanvasRenderingContext2D::drawImage):
2289 (WebCore::CanvasRenderingContext2D::createPattern):
2290 (WebCore::CanvasRenderingContext2D::applyStrokePattern):
2291 (WebCore::CanvasRenderingContext2D::applyFillPattern):
2292 * platform/graphics/Image.h:
2293 (WebCore::Image::nativeImageForCurrentFrame):
2295 2007-12-23 Kevin Ollivier <kevino@theolliviers.com>
2297 Reviewed by Eric Seidel.
2299 Remove getWxBitmap as we have nativeImageForCurrentFrame now,
2300 and don't draw a border in fillRect.
2302 * platform/graphics/BitmapImage.h:
2303 * platform/graphics/wx/GraphicsContextWx.cpp:
2304 (WebCore::GraphicsContext::fillRect):
2305 * platform/graphics/wx/ImageWx.cpp:
2307 2007-12-23 Alp Toker <alp@atoker.com>
2309 Reviewed by Holger Freyther.
2311 http://bugs.webkit.org/show_bug.cgi?id=16577
2312 Merge Cairo enhancements from Apollo project
2314 This patch is based on initial merging work by Brent Fulgham. Adobe's
2315 code has been modified in a few places to better suit the existing
2318 Implement more clipping and drawing functions.
2320 Save and restore the fill rule manually when clipping.
2322 Avoid image surface creation when the image buffer has height zero.
2324 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2325 (WebCore::GraphicsContext::clip):
2326 (WebCore::GraphicsContext::addInnerRoundedRectClip):
2327 (WebCore::GraphicsContext::addPath):
2328 (WebCore::GraphicsContext::clipOut):
2329 (WebCore::GraphicsContext::clipOutEllipseInRect):
2330 (WebCore::GraphicsContext::fillRoundedRect):
2331 * platform/graphics/cairo/ImageSourceCairo.cpp:
2332 (WebCore::ImageSource::createFrameAtIndex):
2334 2007-12-23 Nikolas Zimmermann <zimmermann@kde.org>
2338 Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
2340 * bindings/objc/DOM.mm:
2341 (WebCore::createElementClassMap):
2343 2007-12-22 Alp Toker <alp@atoker.com>
2347 GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
2348 empty target flags for now.
2350 Check GTK+, not GLib versions, since they are different.
2352 * platform/gtk/PasteboardGtk.cpp:
2353 (WebCore::Pasteboard::documentFragment):
2355 2007-12-22 Luca Bruno <lethalman88@gmail.com>
2357 Reviewed by Alp Toker.
2359 http://bugs.webkit.org/show_bug.cgi?id=16311
2360 [Gtk] Copy rich text to clipboard as text/plain and text/html.
2362 Hook into the WebView to get the correct clipboard object on the
2363 appropriate display. This is necessary because GTK+ does not have
2367 * platform/Pasteboard.h:
2368 (WebCore::Pasteboard::setHelper): added for GTK
2369 (WebCore::Pasteboard::m_helper): private added for GTK
2370 * platform/gtk/PasteboardGtk.cpp:
2371 (WebCore::PasteboardSelectionData): added to support GTK selection data callback
2372 (WebCore::clipboard_get_contents_cb): added
2373 (WebCore::clipboard_clear_contents_cb): added
2374 (WebCore::Pasteboard::~Pasteboard):
2375 (WebCore::Pasteboard::setHelper):
2376 (WebCore::Pasteboard::writeSelection): copy rich text
2377 (WebCore::Pasteboard::documentFragment):
2378 (WebCore::Pasteboard::plainText):
2379 * platform/gtk/PasteboardHelper.h: Added.
2381 2007-12-22 Nikolas Zimmermann <zimmermann@kde.org>
2385 Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
2387 Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
2388 SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
2389 for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
2392 * rendering/InlineBox.h:
2393 (WebCore::InlineBox::isSVGRootInlineBox):
2394 * rendering/SVGInlineTextBox.cpp:
2395 (WebCore::SVGInlineTextBox::svgRootInlineBox):
2396 (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2397 (WebCore::SVGInlineTextBox::selectionRect):
2398 * rendering/SVGRenderTreeAsText.cpp:
2399 (WebCore::writeSVGInlineTextBox):
2400 * rendering/SVGRootInlineBox.h:
2401 (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
2403 2007-12-22 Alp Toker <alp@atoker.com>
2405 LOW_BANDWIDTH_DISPLAY build fix
2407 Track recent KURL DeprecatedString changes.
2409 * loader/FrameLoader.cpp:
2410 (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2412 2007-12-22 Dan Bernstein <mitz@apple.com>
2416 * WebCore.vcproj/WebCore.vcproj:
2418 2007-12-22 Xan Lopez <xan@gnome.org>
2420 Reviewed by Alp Toker.
2422 Add missing return 0 to fix a compile warning.
2424 * page/gtk/FrameGtk.cpp:
2425 (WebCore::Frame::createScriptInstanceForWidget):
2427 2007-12-21 Antti Koivisto <antti@apple.com>
2429 Reviewed by Darin, Adam and Steve.
2431 Add media playback support for Windows.
2433 The implementation uses low level QuickTime API. DLL is
2434 needed to work around CF use in both WebKit and QuickTime.
2436 This makes Windows build depend on the QuickTime SDK
2438 http://developer.apple.com/quicktime/download/
2440 but not QuickTime itself.
2442 QTMovieWinTimer contains some copy code from SharedTimerWin. It
2443 is used in the QuickTime access DLL which can't use WebCore
2444 SharedTimer due to dependency problems.
2446 * WebCore.vcproj/QTMovieWin.vcproj: Added.
2447 * WebCore.vcproj/WebCore.vcproj:
2448 * WebCore.vcproj/build-generated-files.sh:
2449 * html/HTMLMediaElement.cpp:
2450 (WebCore::HTMLMediaElement::setSrc):
2451 * platform/graphics/MediaPlayer.cpp:
2452 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
2453 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2454 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2455 (WebCore::MediaPlayerPrivate::load):
2456 (WebCore::MediaPlayerPrivate::play):
2457 (WebCore::MediaPlayerPrivate::pause):
2458 (WebCore::MediaPlayerPrivate::duration):
2459 (WebCore::MediaPlayerPrivate::currentTime):
2460 (WebCore::MediaPlayerPrivate::seek):
2461 (WebCore::MediaPlayerPrivate::doSeek):
2462 (WebCore::MediaPlayerPrivate::cancelSeek):
2463 (WebCore::MediaPlayerPrivate::seekTimerFired):
2464 (WebCore::MediaPlayerPrivate::setEndTime):
2465 (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
2466 (WebCore::MediaPlayerPrivate::endPointTimerFired):
2467 (WebCore::MediaPlayerPrivate::paused):
2468 (WebCore::MediaPlayerPrivate::seeking):
2469 (WebCore::MediaPlayerPrivate::naturalSize):
2470 (WebCore::MediaPlayerPrivate::hasVideo):
2471 (WebCore::MediaPlayerPrivate::setVolume):
2472 (WebCore::MediaPlayerPrivate::setMuted):
2473 (WebCore::MediaPlayerPrivate::setRate):
2474 (WebCore::MediaPlayerPrivate::dataRate):
2475 (WebCore::MediaPlayerPrivate::maxTimeBuffered):
2476 (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2477 (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2478 (WebCore::MediaPlayerPrivate::bytesLoaded):
2479 (WebCore::MediaPlayerPrivate::totalBytesKnown):
2480 (WebCore::MediaPlayerPrivate::totalBytes):
2481 (WebCore::MediaPlayerPrivate::cancelLoad):
2482 (WebCore::MediaPlayerPrivate::updateStates):
2483 (WebCore::MediaPlayerPrivate::didEnd):
2484 (WebCore::MediaPlayerPrivate::setRect):
2485 (WebCore::MediaPlayerPrivate::setVisible):
2486 (WebCore::MediaPlayerPrivate::paint):
2487 (WebCore::MediaPlayerPrivate::getSupportedTypes):
2488 (WebCore::MediaPlayerPrivate::movieEnded):
2489 (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
2490 (WebCore::MediaPlayerPrivate::movieTimeChanged):
2491 (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
2492 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
2493 (WebCore::MediaPlayerPrivate::networkState):
2494 (WebCore::MediaPlayerPrivate::readyState):
2495 * platform/graphics/win/QTMovieWin.cpp: Added.
2497 (QTMovieWinPrivate::QTMovieWinPrivate):
2498 (QTMovieWinPrivate::~QTMovieWinPrivate):
2500 (QTMovieWinPrivate::startTask):
2501 (QTMovieWinPrivate::endTask):
2502 (QTMovieWinPrivate::task):
2503 (QTMovieWinPrivate::registerDrawingCallback):
2504 (QTMovieWinPrivate::drawingComplete):
2505 (QTMovieWinPrivate::createGWorld):
2506 (QTMovieWinPrivate::setSize):
2507 (QTMovieWinPrivate::deleteGWorld):
2508 (QTMovieWin::QTMovieWin):
2509 (QTMovieWin::~QTMovieWin):
2511 (QTMovieWin::pause):
2513 (QTMovieWin::setRate):
2514 (QTMovieWin::duration):
2515 (QTMovieWin::currentTime):
2516 (QTMovieWin::setCurrentTime):
2517 (QTMovieWin::setVolume):
2518 (QTMovieWin::setMuted):
2519 (QTMovieWin::dataSize):
2520 (QTMovieWin::maxTimeLoaded):
2521 (QTMovieWin::loadState):
2522 (QTMovieWin::getNaturalSize):
2523 (QTMovieWin::setSize):
2524 (QTMovieWin::setVisible):
2525 (QTMovieWin::paint):
2527 (movieDrawingCompleteProc):
2528 (initializeSupportedTypes):
2529 (QTMovieWin::countSupportedTypes):
2530 (QTMovieWin::getSupportedType):
2531 (QTMovieWin::initializeQuickTime):
2533 * platform/graphics/win/QTMovieWin.h: Added.
2534 * platform/graphics/win/QTMovieWinTimer.cpp: Added.
2535 (TimerWindowWndProc):
2536 (initializeOffScreenTimerWindow):
2537 (setSharedTimerFiredFunction):
2539 (setSharedTimerFireDelay):
2541 (setSharedTimerInstanceHandle):
2543 * platform/graphics/win/QTMovieWinTimer.h: Added.
2544 * rendering/RenderMedia.cpp:
2545 (WebCore::MediaControlPlayButtonElement::update):
2547 2007-12-21 Brent Fulgham <bfulgham@gmail.com>
2549 Reviewed by Alp Toker.
2551 http://bugs.webkit.org/show_bug.cgi?id=16558
2552 Cairo WebCore Rendering Fails on arc drawing
2554 Fix for bug reported (and patched) by Apollo team in which
2555 arcs were draw in reverse (resulting in inverted images).
2556 Review of the source found that the 'clockwise' term was
2557 actually meant to mean 'anticlockwise' so the IDL and
2558 supporting classes have been changed to match this.
2560 * html/CanvasRenderingContext2D.cpp:
2561 (WebCore::CanvasRenderingContext2D::arc):
2562 * html/CanvasRenderingContext2D.idl:
2563 * platform/graphics/cairo/PathCairo.cpp:
2564 (WebCore::Path::addArc):
2565 (WebCore::Path::addEllipse):
2566 * platform/graphics/Path.h:
2568 2007-12-21 Alexey Proskuryakov <ap@webkit.org>
2572 <rdar://problem/5629995> Incorrect display of Danish characters on web site.
2574 Test: http/tests/xmlhttprequest/response-encoding.html
2576 * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
2577 Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
2578 rules for main content and XHR responses, but this matches both IE and Firefox.
2580 2007-12-20 Jon Honeycutt <jhoneycutt@apple.com>
2582 Reviewed by Kevin Decker.
2584 <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
2585 shockwave plugin on freshly installed OS
2587 Look for Director plugin in its native directory.
2589 * plugins/win/PluginDatabaseWin.cpp:
2590 (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
2591 doesn't start with "np," so special case its filename.
2592 (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
2593 directories to the plugin paths.
2594 (WebCore::PluginDatabaseWin::defaultPluginPaths):
2596 2007-12-20 Peter Kasting <zerodpx@gmail.com>
2598 Reviewed by Alp Toker.
2600 http://bugs.webkit.org/show_bug.cgi?id=16508
2601 Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
2602 decoded transparent areas.
2604 * platform/image-decoders/gif/GIFImageDecoder.cpp:
2605 (WebCore::GIFImageDecoder::haveDecodedRow):
2606 * platform/image-decoders/gif/GIFImageDecoder.h:
2607 * platform/image-decoders/gif/GIFImageReader.cpp:
2608 (GIFImageReader::output_row):
2610 2007-12-20 Justin Garcia <justin.garcia@apple.com>
2612 Reviewed by Oliver Hunt.
2614 <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
2616 Still need to fix similar issues with the other operations that iterate
2617 over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
2619 * editing/IndentOutdentCommand.cpp:
2620 (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
2621 * editing/IndentOutdentCommand.h: Removed an unused function.
2622 * editing/InsertListCommand.cpp:
2623 (WebCore::InsertListCommand::modifyRange):
2624 Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
2625 Call the new selectionForParagraphIteration, which a) prevents operations like this
2626 one from being performed on a table that isn't fully selected (where the selection
2627 starts just before the table and ends inside it), and b) helps prevent paragraph
2628 iteration from going past the end of the selection.
2629 Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
2630 since when v is in the last paragraph of the last cell of a table, that expression
2631 will return the position after the table, not the start of the next paragraph.
2632 * editing/htmlediting.cpp:
2633 (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
2634 take effect inside the table cell where they are performed.
2635 (WebCore::selectionForParagraphIteration): Added, see above.
2636 (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
2637 * editing/htmlediting.h:
2638 * editing/visible_units.cpp:
2639 (WebCore::startOfNextParagraph): Added, see above.
2640 * editing/visible_units.h:
2641 * editing/TextIterator.h:
2642 (WebCore::TextIterator::exitNode): Added a FIXME.
2644 2007-12-20 Alp Toker <alp@atoker.com>
2646 Rubber-stamped by Maciej.
2648 http://bugs.webkit.org/show_bug.cgi?id=16542
2649 [GTK] Text is missing with old Pango version
2651 Back out commits r28880, r28876, r28865, r28864 which added Pango font
2652 selection support. These changes caused a regression where no text was
2653 displayed with older Pango versions.
2655 * platform/graphics/gtk/FontCacheGtk.cpp:
2656 (WebCore::FontCache::fontExists):
2657 * platform/graphics/gtk/FontDataGtk.cpp:
2658 (WebCore::FontData::platformDestroy):
2659 (WebCore::FontData::containsCharacters):
2660 * platform/graphics/gtk/FontPlatformData.h:
2661 (WebCore::FontPlatformData::FontPlatformData):
2662 (WebCore::FontPlatformData::hash):
2663 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2664 (WebCore::FontPlatformData::FontPlatformData):
2665 (WebCore::FontPlatformData::init):
2666 (WebCore::FontPlatformData::~FontPlatformData):
2667 (WebCore::FontPlatformData::isFixedPitch):
2668 (WebCore::FontPlatformData::operator==):
2669 * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
2670 (WebCore::GlyphPage::fill):
2672 2007-12-20 Timothy Hatcher <timothy@apple.com>
2674 Reviewed by Sam Weinig.
2676 <rdar://problem/5604897> Double-clicking on JavaScript console error
2677 won't show the line where it occurred
2679 Make the URLs clickable in the console, since double clicking is used for
2680 word text selection. Makes the word "line" localizable. Messages that don't
2681 have a URL will no longer print "undefined". Messages that have a line number
2682 less than or equal to 0 will no longer be printed.
2684 * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
2685 * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
2686 and change the click handler to look for a link with the
2687 "console-message-url" class name.
2688 * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
2690 * page/inspector/inspector.css: Update the look of the URL in the console.
2692 2007-12-20 Adam Barth <hk9565@gmail.com>
2694 Reviewed and landed by Sam Weinig.
2696 http://bugs.webkit.org/show_bug.cgi?id=15313
2697 <rdar://problem/5514516>
2699 The same-origin check was incorrect in two cases (both fixed in this
2702 A) If both the source and the target have set their document.domain
2703 to the same value, the protocol must also match in order for
2704 access to be allowed. Without this requirement, the browser is
2705 vulnerable to the following attack:
2707 1) Suppose there is an HTTPS site (www.example.com) that sets
2708 document.domain = "example.com".
2709 2) A network attacker redirects the browser to http://www.example.com/
2710 a) injects script to set document.domain = "example.com", and
2711 b) opens a window to https://www.example.com/
2712 3) Now the network attacker can inject script into the HTTPS page,
2713 stealing cookies and issuing banking transactions.
2715 B) If only one of the source and target has set document.domain, then
2716 access should be denied. With this behavior, the browser is
2717 vulnerable to the following attack:
2719 1) Suppose http://foo.example.com/ opens an iframe to
2720 http://foo.example.com/frame.html that
2721 a) sets document.domain = "example.com", and
2722 b) opens an iframe to http://bar.example.com/
2723 This is a common usage of document.domain for cross-domain
2724 communication, see for example:
2725 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
2726 2) The inner-most iframe, which is from bar.example.com, sets
2727 document.domain = "example.com".
2728 3) Now the inner-most iframe can inject script into the middle
2729 iframe (say via document.write). This bar.example.com script
2730 now has access to the outer-most frame (from foo.example.com).
2732 Both these changes cause WebKit to match the behavior of Firefox 2 and
2733 IE6 in these cases. This patch includes regression tests for both
2736 Internet Explorer 7 and Opera 9 are more strict in that they require
2737 the port numbers to match when both pages have document.domain set.
2738 Opera 9 allows access when only one page has set document.domain, but
2739 this is a security vulnerability.
2741 Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
2742 http/tests/security/cross-frame-access-parent-explicit-domain.html
2744 * bindings/js/kjs_window.cpp:
2745 (KJS::createWindow):
2746 (KJS::Window::allowsAccessFrom):
2748 (WebCore::Document::domain):
2749 (WebCore::Document::setDomain):
2750 (WebCore::Document::initSecurityOrigin):
2752 (WebCore::Document::securityOrigin):
2753 * loader/FrameLoader.cpp:
2754 (WebCore::FrameLoader::begin):
2755 (WebCore::FrameLoader::checkCallImplicitClose):
2756 (WebCore::FrameLoader::shouldAllowNavigation):
2757 * platform/SecurityOrigin.cpp:
2758 (WebCore::SecurityOrigin::setForURL):
2759 (WebCore::SecurityOrigin::createForFrame):
2760 (WebCore::SecurityOrigin::canAccess):
2761 * platform/SecurityOrigin.h:
2762 (WebCore::SecurityOrigin::domain):
2763 * storage/Database.cpp:
2764 (WebCore::Database::openDatabase):
2765 (WebCore::Database::Database):
2766 (WebCore::Database::securityOriginData):
2767 * storage/Database.h:
2768 (WebCore::Database::databaseDebugName):
2769 * storage/DatabaseTracker.cpp:
2770 (WebCore::DatabaseTracker::canEstablishDatabase):
2771 * storage/SQLTransaction.cpp:
2772 (WebCore::SQLTransaction::postflightAndCommit):
2773 (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
2775 2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>
2777 Reviewed by Darin Adler.
2779 Define XP_UNIX when building with plugins on X11.
2780 Use new npruntime_internal.h instead of npruntime.h.
2781 http://bugs.webkit.org/show_bug.cgi?id=15669
2783 * ForwardingHeaders/bindings/npruntime_internal.h
2785 * html/HTMLPlugInElement.h:
2787 2007-12-19 johnnyding.webkit <johnnyding.webkit@gmail.com>
2789 Reviewed by Alexey. Landed by Stephanie.
2791 - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
2792 Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
2793 Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing
2794 the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
2797 * html/HTMLTokenizer.cpp:
2798 (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
2799 (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
2800 * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
2802 2007-12-20 Eric Seidel <eric@webkit.org>
2804 Reviewed by Nikolas Zimmermann.
2806 WebKit claims to support SVG feature strings it shouldn't
2807 http://bugs.webkit.org/show_bug.cgi?id=15480
2809 * dom/DOMImplementation.cpp:
2810 (WebCore::isSVG10Feature):
2811 (WebCore::isSVG11Feature):
2813 2007-12-20 John Sullivan <sullivan@apple.com>
2815 Reviewed by Oliver and Geoff
2817 - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter
2818 than white "hole" behind it
2820 * rendering/RenderText.cpp:
2821 (WebCore::RenderText::addLineBoxRects):
2822 respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
2824 2007-12-20 Dan Bernstein <mitz@apple.com>
2826 Reviewed by Darin Adler.
2828 - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
2830 * platform/win/ScrollViewWin.cpp:
2831 (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
2832 scroll offsets even if scrolling is not allowed, because navigation and
2833 scrollTo should still work.
2834 (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
2837 2007-12-17 Tony Chang <idealisms@gmail.com>
2841 - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
2842 text selection does not always begin at mouse down point
2843 Reset the m_dragSrc object on mouse down on all platforms.
2845 Test: fast/text/reset-drag-on-mouse-down.html
2847 * page/EventHandler.cpp:
2848 (WebCore::EventHandler::handleMousePressEvent):
2849 * page/mac/EventHandlerMac.mm:
2850 (WebCore::EventHandler::mouseDown):
2852 2007-12-19 Geoffrey Garen <ggaren@apple.com>
2854 Reviewed by Oliver Hunt.
2857 * ForwardingHeaders/kjs/SymbolTable.h: Added.
2858 * ForwardingHeaders/wtf/VectorTraits.h: Added.
2860 * bindings/js/JSDOMWindowCustom.cpp:
2861 (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
2862 getDirectLocation with getOwnPropertySlot. getDirectLocation is no
2863 longer valid, since global declarations are not stored in the property
2866 (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
2867 JSGlobalObject::put. JSObject::put is no longer valid, since global
2868 declarations are not stored in the property map.
2870 * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
2871 calls, since JSObject is not our base class. This was always a bug, but
2872 the bug is even more apparent after some of my changes.
2874 (KJS::Window::clear): Removed call to clearProperties because
2875 JSGlobalObject::reset takes care of that now.
2877 * history/CachedPage.cpp:
2878 * history/CachedPage.h: Added support for saving a symbol table and
2879 localStorage to the page cache, and restoring it.
2881 2007-12-19 Dan Bernstein <mitz@apple.com>
2883 Reviewed by Darin Adler and Dave Hyatt.
2885 - Substitute the user's preferred standard font for an unknown primary
2886 font before falling back on the platform's last resort font
2888 Cannot be tested in DumpRenderTree because it sets the standard font to
2889 Times, which is also the hard-coded last resort font on Mac.
2891 * css/CSSFontSelector.cpp:
2892 (WebCore::CSSFontSelector::getFontData): Changed the early bail out
2893 condition to allow getting generic font families from settings even if
2894 there are not @font-face rules. Fixed a typo that mapped fantasy to
2895 cursive. Added a mapping from -webkit-standard to the standard family.
2896 * css/CSSStyleSelector.cpp:
2897 (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
2899 (WebCore::CSSRuleSet::addRulesFromSheet):
2900 (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
2902 * css/CSSStyleSelector.h:
2903 (WebCore::CSSStyleSelector::fontSelector):
2904 * platform/graphics/FontCache.cpp:
2905 (WebCore::FontCache::getFontData): Try the user's preferred standard
2906 font before the platform's last resort font.
2908 2007-12-19 Sven Herzberg <sven@imendio.com>
2910 Reviewed by Alp Toker.
2912 Scaled font destruction takes place in FontData::platformDestroy(). No
2913 need to do it in FontPlatformData::~FontPlatformData().
2915 Destroying platform data in platformDestroy() is a convention we
2916 borrow from the Mac and Win ports.
2918 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2920 2007-12-19 Alice Liu <alice.liu@apple.com>
2924 Changed uint to unsigned int. uint caused Windows build breakage
2927 (WebCore::Page::markAllMatchesForText):
2930 2007-12-19 Christian Dywan <christian@twotoasts.de>
2932 Reviewed by Alp Toker.
2934 http://bugs.webkit.org/show_bug.cgi?id=16222
2935 [GTK] Implement inline search and highlighting of matching strings.
2937 Implement search and highlighting logic directly in WebCore.
2940 (WebCore::incrementFrame):
2941 (WebCore::Page::findString):
2942 (WebCore::Page::markAllMatchesForText):
2943 (WebCore::Page::unmarkAllTextMatches):
2946 2007-12-19 Geoffrey Garen <ggaren@apple.com>
2948 Reviewed by Sam Weinig, Dan Bernstein.
2950 Tiger build fix: restored some graphics code still needed on Tiger.
2952 * platform/graphics/GraphicsTypes.h:
2953 * platform/graphics/cg/GraphicsContextCG.cpp:
2954 * platform/graphics/mac/GraphicsContextMac.mm:
2955 (WebCore::GraphicsContext::setCompositeOperation):
2957 2007-12-19 Alp Toker <alp@atoker.com>
2959 Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
2960 the Pango backend API in these cases.
2962 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2963 (WebCore::FontPlatformData::FontPlatformData):
2964 (WebCore::FontPlatformData::~FontPlatformData):
2966 2007-12-19 Alice Liu <alice.liu@apple.com>
2970 Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
2971 on Geico.com WebCore::Document::inPageCache()
2973 Calling Node::willRemove on the focusedNode would immediately tell the document to remove
2974 the focused node, and trigger JS events. This means that the document is mutated while
2975 the engine is trying to tell all child nodes that it's about to removed. To avoid
2976 crashing, we need to hold off on mutating the document until node traversal is finished.
2978 * dom/ContainerNode.cpp:
2979 (WebCore::ContainerNode::removeChild):
2980 (WebCore::ContainerNode::removeChildren):
2983 (WebCore::Node::willRemove):
2984 * loader/FrameLoader.cpp:
2985 (WebCore::FrameLoader::clear):
2987 2007-12-19 Andre Boule <aboule@apple.com>
2989 Reviewed by Dan Bernstein.
2991 Test: fast/canvas/canvas-composite.html
2994 <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
2996 This fix makes setCompositeOperation consistent across all platforms that use CG.
2998 The following compositing modes don't pass however that is covered by another bug:
3004 <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
3006 * platform/graphics/GraphicsTypes.h:
3007 * platform/graphics/cg/GraphicsContextCG.cpp:
3008 (WebCore::GraphicsContext::setCompositeOperation):
3009 * platform/graphics/mac/GraphicsContextMac.mm:
3010 * platform/win/GraphicsContextWin.cpp:
3012 2007-12-19 Dan Bernstein <mitz@apple.com>
3014 Reviewed by Dave Hyatt.
3016 - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
3018 Test: fast/dynamic/subtree-boundary-percent-height.html
3020 * rendering/RenderObject.cpp:
3021 (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
3022 percent heights because sometimes they compute to 'auto'.
3024 2007-12-19 Sam Weinig <sam@webkit.org>
3028 http://bugs.webkit.org/show_bug.cgi?id=16511
3029 Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
3030 - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
3032 * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3033 (WebCore::ChildNodeList::ChildNodeList):
3034 * dom/ClassNodeList.cpp:
3035 (WebCore::ClassNodeList::ClassNodeList):
3036 * dom/ClassNodeList.h:
3038 Move getElementsByName and getElementsByClassName to Node so they
3039 can use easily employ the caching already used by ChildNodeLists. In the case of
3040 getElementsByClassName, this reduces code duplication in Element as well
3044 Move getElementsByClassName to Node.
3048 * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3049 (WebCore::NameNodeList::NameNodeList):
3050 (WebCore::NameNodeList::item):
3051 * dom/NameNodeList.h:
3053 Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
3055 (WebCore::TagNodeList::TagNodeList):
3056 (WebCore::Node::Node):
3057 (WebCore::Node::~Node):
3058 (WebCore::Node::childNodes):
3059 (WebCore::Node::registerNodeList):
3060 (WebCore::Node::getElementsByName):
3061 (WebCore::Node::getElementsByClassName):
3062 * dom/Node.h: Make m_nodeLists an OwnPtr. Moved getElementsByName and getElementsByClassName here
3064 Allow subclasses to choose whether they want to receive the notifications using a new bit.
3066 (WebCore::NodeList::NodeList):
3068 (WebCore::NodeList::needsNotifications):
3070 2007-12-19 Dave Hyatt <hyatt@apple.com>
3072 Add support for GDI text rendering to WebKit.
3076 * css/CSSStyleSelector.cpp:
3077 (WebCore::CSSStyleSelector::applyProperty):
3079 (WebCore::Document::recalcStyle):
3080 * page/Settings.cpp:
3081 (WebCore::Settings::setFontRenderingMode):
3082 (WebCore::Settings::fontRenderingMode):
3084 * platform/graphics/Font.h:
3085 (WebCore::Font::renderingMode):
3086 * platform/graphics/FontCache.cpp:
3087 (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
3088 (WebCore::FontPlatformDataCacheKey::operator==):
3089 (WebCore::computeHash):
3090 (WebCore::FontCache::getCachedFontPlatformData):
3091 * platform/graphics/FontDescription.h:
3093 (WebCore::FontDescription::FontDescription):
3094 (WebCore::FontDescription::renderingMode):
3095 (WebCore::FontDescription::setRenderingMode):
3096 (WebCore::FontDescription::operator==):
3097 * platform/graphics/GraphicsContext.h:
3098 * platform/graphics/win/FontCacheWin.cpp:
3099 (WebCore::FontCache::fontExists):
3100 (WebCore::FontCache::createFontPlatformData):
3101 * platform/graphics/win/FontDataWin.cpp:
3102 (WebCore::FontData::platformInit):
3103 (WebCore::FontData::smallCapsFontData):
3104 (WebCore::FontData::containsCharacters):
3105 (WebCore::FontData::determinePitch):
3106 (WebCore::FontData::platformWidthForGlyph):
3107 * platform/graphics/win/FontPlatformData.h:
3108 (WebCore::FontPlatformData::FontPlatformData):
3109 (WebCore::FontPlatformData::useGDI):
3110 (WebCore::FontPlatformData::operator==):
3111 * platform/graphics/win/FontPlatformDataWin.cpp:
3112 (WebCore::FontPlatformData::FontPlatformData):
3113 * platform/graphics/win/FontWin.cpp:
3114 (WebCore::Font::drawGlyphs):
3115 * platform/graphics/win/IconWin.cpp:
3116 (WebCore::Icon::paint):
3117 * platform/win/GraphicsContextWin.cpp:
3118 (WebCore::GraphicsContext::getWindowsContext):
3119 (WebCore::GraphicsContext::releaseWindowsContext):
3120 * platform/win/UniscribeController.cpp:
3121 (WebCore::UniscribeController::shapeAndPlaceItem):
3122 * platform/win/UniscribeController.h:
3123 * plugins/win/PluginViewWin.cpp:
3124 (WebCore::PluginViewWin::paint):
3126 2007-12-19 Sven Herzberg <sven@imendio.com>
3128 Reviewed by Alp Toker.
3130 Replace the fontconfig/freetype based font management with a pango
3132 http://bugs.webkit.org/show_bug.cgi?id=15229
3134 * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
3135 the platform specific destroy code
3136 (FontData::containsCharacters()): implemented font coverage with pango
3137 * platform/gtk/FontPlatformData.h: replaced fontconfig specific
3138 members with pango-specific ones
3139 * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
3140 FontPlatformData class
3141 (FontPlatformData::FontPlatformData()): implemented the font-matching
3142 with a PangoFontDescription instead of an FcPattern; initialize the
3143 scaled font by using the API for PangoCairoFont
3144 (FontPlatformData::init()): initialize the PangoFontMap and set up a
3145 hash table to translate the font family name into a font family
3146 (FontPlatformData::isFixedPitch()): implemented by querying the
3148 (FontPlatformData::operator==): compare the FontPlatformData by
3149 comparing the font pointers or the described fonts
3150 * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
3151 added a function to query a glyph from a PangoFont
3152 (GlyphPage::fill()): implemented the fill function with Pango instead
3153 of fontconfig/freetype
3155 2007-12-19 Alp Toker <alp@atoker.com>
3157 Reviewed by Holger Freyther.
3159 Improve graphics operator approximations
3161 These changes match Cairo's own CG approximations.
3163 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3164 (WebCore::toCairoOperator):
3166 2007-12-19 Alp Toker <alp@atoker.com>
3168 Reviewed by Holger Freyther.
3170 Check the bounding box before doing a full hit test
3172 * platform/graphics/cairo/PathCairo.cpp:
3173 (WebCore::Path::contains):
3175 2007-12-18 Sam Weinig <sam@webkit.org>
3179 Fix for <rdar://problem/5646478>
3180 REGRESSION: fast/events/event-view-toString fails on Leopard
3182 This fixes an issue where we were incorrectly setting the lastInPrototypeChain
3183 for the JSDOMWindow (the global object) before a call to setPrototype overwrote
3184 it. This fixes it by passing the prototype up the constructor chain so that it
3185 is set before any calls can be made.
3187 * bindings/js/kjs_window.cpp:
3188 (KJS::Window::Window):
3189 * bindings/js/kjs_window.h:
3190 * bindings/scripts/CodeGeneratorJS.pm:
3192 2007-12-18 Beth Dakin <bdakin@apple.com>
3196 Fix for <rdar://problem/5616982> SVGs with width and height 100%
3197 fail to render when used as <img> or CSS image (16167)
3199 This final part of the work fixes the <img> tag.
3201 This is the real fix.
3202 * rendering/RenderImage.cpp:
3203 (WebCore::RenderImage::calcReplacedWidth): Set the container size
3204 on the image. Setting the container size only actually sticks if
3205 the values are non-zero, so if the container size really was set,
3206 use the imageSize that is calculated using the container size. If
3207 it did not stick but the image does have relative width (meaning
3208 that the container size is 0), set the width to 0 by hand. We want
3209 to avoid setting the width before we have a container size or we
3210 will end up incorrectly using the default size of 300x150.
3211 (WebCore::RenderImage::calcReplacedHeight): Same as above, but for
3214 A few more pieces of information have to be exposed through cached
3215 image to make this happen.
3216 * loader/CachedImage.cpp:
3217 (WebCore::CachedImage::usesImageContainerSize): As mentioned above,
3218 when setContainerSize() is called, the container size is only
3219 actually set if the values are non-zero. This call tells you if it
3221 (WebCore::CachedImage::imageHasRelativeWidth):
3222 (WebCore::CachedImage::imageHasRelativeHeight):
3223 * loader/CachedImage.h:
3224 * platform/graphics/Image.h:
3225 (WebCore::Image::usesContainerSize):
3226 * svg/graphics/SVGImage.cpp:
3227 (WebCore::SVGImage::usesContainerSize):
3228 * svg/graphics/SVGImage.h:
3230 2007-12-18 Mark Rowe <mrowe@apple.com>
3232 Rubber-stamped by Maciej Stachowiak.
3234 Remove outdated and non-functioning project files for the Apollo port.
3236 * WebCore.apolloproj: Removed.
3238 2007-12-18 Steve Falkenburg <sfalken@apple.com>
3240 <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
3242 Need to translate the char back into a key code for posting our WM_KEYDOWN.
3246 * platform/win/PopupMenuWin.cpp:
3247 (WebCore::PopupWndProc):
3249 2007-12-18 Steve Falkenburg <sfalken@apple.com>
3251 <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
3253 Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
3254 Only create a font with the last one.
3256 Reviewed by Mitz, Darin.
3258 * platform/graphics/win/FontCacheWin.cpp:
3259 (WebCore::metaFileEnumProc):
3260 (WebCore::FontCache::getFontDataForCharacters):
3262 2007-12-17 Brent Fulgham <bfulgham@gmail.com>
3266 http://bugs.webkit.org/show_bug.cgi?id=16464
3267 Modify WebCore to use win32 thread primitives
3269 Updates to support native windows threading primitives
3270 rather than pthreads emulation library.
3272 * WebCore.vcproj/WebCore.vcproj:
3274 * platform/Threading.h:
3275 * platform/win/MutexWin.cpp: Added.
3276 (WebCore::Mutex::Mutex):
3277 (WebCore::Mutex::~Mutex):
3278 (WebCore::Mutex::lock):
3279 (WebCore::Mutex::tryLock):
3280 (WebCore::Mutex::unlock):
3281 * platform/win/ThreadConditionWin.cpp: Added.
3282 (WebCore::ThreadCondition::ThreadCondition):
3283 (WebCore::ThreadCondition::~ThreadCondition):
3284 (WebCore::ThreadCondition::wait):
3285 (WebCore::ThreadCondition::signal):
3286 (WebCore::ThreadCondition::broadcast):
3287 * platform/win/ThreadingWin.cpp:
3288 (WebCore::threadMapMutex):
3289 (WebCore::threadMap):
3290 (WebCore::storeThreadHandleByIdentifier):
3291 (WebCore::identifierByThreadHandle):
3292 (WebCore::threadHandleForIdentifier):
3293 (WebCore::clearThreadHandleForIdentifier):
3294 (WebCore::createThread):
3295 (WebCore::waitForThreadCompletion):
3296 (WebCore::detachThread):
3297 (WebCore::currentThread):
3299 2007-12-18 Rodney Dawes <dobey@wayofthemonkey.com>
3301 Reviewed by Darin Adler.
3303 Handle EINTR when set by select() and try the select() again
3304 http://bugs.webkit.org/show_bug.cgi?id=16071
3306 * platform/network/curl/ResourceHandleManager.cpp:
3307 (ResourceHandleManager::downloadTimerCallback):
3309 2007-12-18 Dan Bernstein <mitz@apple.com>
3311 Reviewed by Dave Hyatt.
3313 - avoid the simplified Chinese font linking code for characters that are
3314 not in any Windows code page
3316 * platform/graphics/win/FontCacheWin.cpp:
3317 (WebCore::FontCache::getFontDataForCharacters):
3319 2007-12-18 Brady Eidson <beidson@apple.com>
3323 <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
3325 Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
3326 protected by authentication. Occasionally one can view the main page of a site but the favicon
3327 is behind the iron curtain - in these cases, we should *not* prompt for a username and password
3328 solely for the favicon.
3330 * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
3332 * loader/SubresourceLoader.cpp:
3333 (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
3334 is virtual from ResourceLoader, SubresourceLoader can override. First call to the
3335 SubresourceLoaderClient. If they cancel the resource load, return early. Otherwise, let
3336 ResourceLoader work its magic (resulting in the auth sheet coming down)
3337 * loader/SubresourceLoader.h:
3339 * loader/SubresourceLoaderClient.h:
3340 (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
3342 * loader/icon/IconLoader.cpp:
3343 (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
3344 never prompt the user for credentials just for a favicon.
3345 * loader/icon/IconLoader.h:
3347 2007-12-18 John Sullivan <sullivan@apple.com>
3351 - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
3353 * storage/DatabaseTracker.cpp:
3354 (WebCore::DatabaseTracker::canEstablishDatabase):
3355 pass "name" instead of "displayName" if there's no displayName
3357 2007-12-17 Dan Bernstein <mitz@apple.com>
3359 Reviewed by Maciej Stachowiak.
3361 - restore ButtonFace and ThreeDFace to their previous values for non-Mac
3362 platforms. The Mac port also uses the same values for now instead
3363 of NSColor-based ones.
3365 * rendering/RenderTheme.cpp:
3366 (WebCore::RenderTheme::systemColor):
3368 2007-12-17 Rodney Dawes <dobey@wayofthemonkey.com>
3370 Reviewed by Maciej Stachowiak.
3372 Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
3373 Add required Frame::createScriptInstanceForWidget to FrameGtk
3376 * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
3378 2007-12-17 Alice Liu <alice.liu@apple.com>
3382 Fixed <rdar://5566435> window with no scrollbars can be scrolled
3384 * platform/win/ScrollViewWin.cpp:
3385 (WebCore::ScrollView::maximumScroll):
3386 corrected maximumScroll() to account for scrolling not allowed.
3387 (WebCore::ScrollView::wheelEvent):
3389 2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com>
3391 Reviewed by Alp Toker.
3393 http://bugs.webkit.org/show_bug.cgi?id=16042
3394 [GTK] Eliminate webkit_init()
3396 Move webkit initialization to WebView class init.
3400 2007-12-17 Jon Honeycutt <jhoneycutt@apple.com>
3404 <rdar://problem/5651291> REGRESSION: Flash content doesn't display
3407 We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
3409 * plugins/win/PluginViewWin.cpp:
3410 (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
3412 (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
3413 (WebCore::PluginViewWin::handleKeyboardEvent): same
3414 (WebCore::PluginViewWin::handleMouseEvent): same
3415 * plugins/win/PluginViewWin.h:
3417 2007-12-17 Alexey Proskuryakov <ap@webkit.org>
3421 Live to the promise of never making AppKit special character codes visible via DOM.
3423 Test: fast/events/arrow-keys-on-body.html
3425 * page/EventHandler.cpp:
3426 (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
3427 to let quirks-aware code strip special charactrers.
3428 * platform/mac/KeyEventMac.mm:
3429 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
3430 mode, remove the text if it's a special character.
3432 2007-12-17 Mark Rowe <mrowe@apple.com>
3434 Reviewed by Darin Adler.
3436 Fix incorrect array size and incorrect array index in convertNSColorToColor.
3438 * rendering/RenderThemeMac.mm:
3439 (WebCore::convertNSColorToColor):
3441 2007-12-17 Darin Adler <darin@apple.com>
3443 Reviewed by Mark Rowe.
3445 - fix http://bugs.webkit.org/show_bug.cgi?id=16468
3446 REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
3448 * storage/DatabaseThread.cpp:
3449 (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
3450 because there's no guarantee it won't lose its last reference otherwise.
3452 2007-12-17 Dan Bernstein <mitz@apple.com>
3454 Reviewed by Maciej Stachowiak.
3456 - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
3457 and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
3459 * platform/graphics/win/FontCacheWin.cpp:
3460 (WebCore::FontCache::getFontDataForCharacters): To ensure that font
3461 linking gives consistent results for characters that are exclusive to
3462 the simplified Chinese code page and characters that belong to that
3463 code page and other code pages, always ask to map to simplified Chinese
3466 2007-12-17 Christian Dywan <christian@twotoasts.de>
3468 Reviewed by Alp Toker.
3470 http://bugs.webkit.org/show_bug.cgi?id=16378
3471 Implement Icon for Gtk
3473 Icon provides a GdkPixbuf containing a themed icon.
3474 The icon theme is probed for an icon name according to the
3475 Icon Naming Specification or conventional Gnome icon names respectively.
3477 See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
3479 * platform/graphics/Icon.h:
3480 * platform/graphics/gtk/IconGtk.cpp:
3481 (WebCore::Icon::~Icon):
3482 (WebCore::lookupIconName):
3483 (WebCore::Icon::newIconForFile):
3484 (WebCore::Icon::paint):
3486 2007-12-16 Sam Weinig <sam@webkit.org>
3490 Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
3491 Move the JS Location object to its own file
3493 - Move Location into its own file and rename it JSLocation.
3495 * DerivedSources.make:
3497 * WebCore.vcproj/WebCore.vcproj:
3498 * WebCore.xcodeproj/project.pbxproj:
3499 * WebCoreSources.bkl:
3500 * bindings/js/JSDocumentCustom.cpp:
3501 * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
3503 (WebCore::JSLocation::JSLocation):
3504 (WebCore::JSLocation::getValueProperty):
3505 (WebCore::JSLocation::getOwnPropertySlot):
3506 (WebCore::JSLocation::put):
3507 (WebCore::JSLocationProtoFuncReplace::callAsFunction):
3508 (WebCore::JSLocationProtoFuncReload::callAsFunction):
3509 (WebCore::JSLocationProtoFuncAssign::callAsFunction):
3510 (WebCore::JSLocationProtoFuncToString::callAsFunction):
3511 * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
3512 (WebCore::JSLocation::):
3513 (WebCore::JSLocation::frame):
3514 (WebCore::JSLocation::classInfo):
3515 * bindings/js/kjs_window.cpp:
3516 (KJS::Window::location):
3517 * bindings/js/kjs_window.h:
3518 * history/CachedPage.cpp:
3520 2007-12-16 Dan Bernstein <mitz@apple.com>
3522 Reviewed by Sam Weinig.
3524 - make 'cursor: copy' and 'cursor: none' work.
3526 Already covered by manual-tests/cursor.html
3528 * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
3529 needed for the 33rd and 34th cursor values.
3531 2007-12-16 Mark Rowe <mrowe@apple.com>
3533 Reviewed by Maciej Stachowiak.
3535 Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
3538 * WebCore.xcodeproj/project.pbxproj:
3539 * loader/NetscapePlugInStreamLoader.h:
3540 * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
3541 * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
3543 2007-12-16 Sam Weinig <sam@webkit.org>
3547 Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
3550 - Move ScheduledAction into its own file and put it in the WebCore namespace.
3553 * WebCore.vcproj/WebCore.vcproj:
3554 * WebCore.xcodeproj/project.pbxproj:
3555 * WebCoreSources.bkl:
3556 * bindings/js/PausedTimeouts.cpp:
3557 * bindings/js/PausedTimeouts.h:
3558 * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
3559 (WebCore::ScheduledAction::ScheduledAction):
3560 (WebCore::ScheduledAction::execute):
3561 * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
3562 (WebCore::ScheduledAction::ScheduledAction):
3563 * bindings/js/kjs_window.cpp:
3564 (KJS::DOMWindowTimer::DOMWindowTimer):
3565 (KJS::DOMWindowTimer::action):
3566 (KJS::DOMWindowTimer::takeAction):
3567 (KJS::Window::installTimeout):
3568 (KJS::Window::timerFired):
3569 * bindings/js/kjs_window.h:
3571 2007-12-16 Alp Toker <alp@atoker.com>
3575 http://bugs.webkit.org/show_bug.cgi?id=16356
3576 [GTK] Integrate GStreamer video with the graphics backend
3578 Integrate the GStreamer media backend with the Cairo graphics backend.
3579 There are still some issues: Data is copied more often than necessary,
3580 and repaint() is not called, causing transformed video not to update
3584 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3585 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3586 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
3587 (WebCore::MediaPlayerPrivate::currentTime):
3588 (WebCore::MediaPlayerPrivate::setEndTime):
3589 (WebCore::MediaPlayerPrivate::seeking):