7fc4e7dc549ada0f87d6abd2be58f90af4804a68
[WebKit-https.git] / WebCore / ChangeLog
1 2010-05-02  Tasuku Suzuki  <tasuku.suzuki@nokia.com>
2
3         Reviewed by Simon Hausmann.
4
5         [Qt] Fix compilation with QT_NO_LINEEDIT
6         https://bugs.webkit.org/show_bug.cgi?id=38324
7
8         * platform/qt/RenderThemeQt.cpp:
9         (WebCore::RenderThemeQt::~RenderThemeQt):
10         (WebCore::RenderThemeQt::findFrameLineWidth):
11
12 2010-05-02  Pavel Feldman  <pfeldman@chromium.org>
13
14         Not reviewed: Touch inspector controller to kick windows tests.
15
16         * inspector/InspectorController.cpp:
17
18 2010-05-02  Pavel Feldman  <pfeldman@chromium.org>
19
20         Reviewed by Timothy Hatcher.
21
22         Web Inspector: IMG nodes are being added to the DOM tree late, sometimes hiding the revealed element.
23
24         https://bugs.webkit.org/show_bug.cgi?id=38432
25
26         * inspector/front-end/ElementsTreeOutline.js:
27         (WebInspector.ElementsTreeOutline.prototype._onmousemove):
28         (WebInspector.ElementsTreeElement.prototype._createTooltipForNode.setTooltip):
29         (WebInspector.ElementsTreeElement.prototype._createTooltipForNode):
30         (WebInspector.ElementsTreeElement.prototype.updateTitle):
31         (WebInspector.ElementsTreeElement.prototype._attributeHTML):
32         ():
33
34 2010-05-02  Dirk Schulze  <krit@webkit.org>
35
36         Reviewed by Nikolas Zimmermann.
37
38         SVG hkern implementation incomplete
39         https://bugs.webkit.org/show_bug.cgi?id=38407
40
41         Test: svg/text/text-hkern.svg
42
43         The current SVG hkern implementation is incomplete and partly wrong. We pass the ACID3 test
44         by accident.
45         The new implementation supports all glyph and unicode combinations that are allowed by the Spec
46         and fixes various of bugs. The parser moved from SVGFontElement to the general parsing code in
47         SVGParserUtilities.
48         Some clean-up makes the code more readable and reuseable for the upcoming vkern implementation.
49         hkern support for text on path is missing and will be added by a following patch.
50         Unicode strings of hkern elements are just parsed once and not on every glyph again anymore.
51
52         * rendering/SVGRootInlineBox.cpp:
53         (WebCore::calculateCSSKerning):
54         (WebCore::applySVGKerning):
55         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
56         * svg/SVGFontElement.cpp:
57         (WebCore::stringMatchesUnicodeRange):
58         (WebCore::stringMatchesGlyphName):
59         (WebCore::matches):
60         (WebCore::SVGFontElement::getHorizontalKerningPairForStringsAndGlyphs):
61         * svg/SVGFontElement.h:
62         * svg/SVGHKernElement.cpp:
63         (WebCore::SVGHKernElement::buildHorizontalKerningPair):
64         * svg/SVGHKernElement.h:
65         * svg/SVGParserUtilities.cpp:
66         (WebCore::parseGlyphName):
67         (WebCore::parseUnicodeRange):
68         (WebCore::parseKerningUnicodeString):
69         * svg/SVGParserUtilities.h:
70
71 2010-05-02  Pavel Feldman  <pfeldman@chromium.org>
72
73         Reviewed by Timothy Hatcher.
74
75         Web Inspector: debugger shortcuts are processed twice if source frame has focus.
76
77         https://bugs.webkit.org/show_bug.cgi?id=38431
78
79         * inspector/front-end/SourceFrame.js:
80         (WebInspector.SourceFrame):
81         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
82
83 2010-05-02  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
84
85         Reviewed by Eric Seidel.
86
87         [Qt] Build error in GraphicsContext3DQt.cpp
88         https://bugs.webkit.org/show_bug.cgi?id=38382
89
90         Removed duplicate implementation of isGLES2Compliant from
91         GraphicsContext3DQt.cpp. Removed deprecated API stuff for
92         texImage2D/texSubImage2D.
93         * platform/graphics/qt/GraphicsContext3DQt.cpp:
94
95 2010-05-02  Garret Kelly  <gdk@chromium.org>
96
97         Reviewed by David Levin.
98
99         Make the Touch RuntimeEnabledFeature disabled by default.
100         https://bugs.webkit.org/show_bug.cgi?id=38392
101
102         * bindings/generic/RuntimeEnabledFeatures.cpp: Disable the Touch feature by default.
103
104 2010-05-02  Michael Nordman  <michaeln@google.com>
105
106         Reviewed by Dmitry Titov.
107
108         Define two new ResourceRequestBase TargetTypes for worker and shared worker
109         main resources. Use the new target types where appropiate. Add logic to marshal
110         the target type specified by requests initiated on a background worker thread.
111
112         https://bugs.webkit.org/show_bug.cgi?id=38295
113
114         No new tests. This doesn't have script visible artifacts.
115
116         * platform/network/ResourceRequestBase.cpp: marshal the values
117         (WebCore::ResourceRequestBase::adopt):
118         (WebCore::ResourceRequestBase::copyData):
119         * platform/network/ResourceRequestBase.h:  define the types
120         (WebCore::ResourceRequestBase::):
121         * workers/DefaultSharedWorkerRepository.cpp: use TargetIsSharedWorker
122         (WebCore::SharedWorkerScriptLoader::load):
123         * workers/Worker.cpp: use TargetIsWorker
124         (WebCore::Worker::Worker):
125         * workers/WorkerContext.cpp: use TargetIsScript for importScripts
126         (WebCore::WorkerContext::importScripts):
127         * workers/WorkerScriptLoader.cpp: add a data member for the target type
128         (WebCore::WorkerScriptLoader::WorkerScriptLoader):
129         (WebCore::WorkerScriptLoader::createResourceRequest):
130         * workers/WorkerScriptLoader.h:
131
132 2010-05-02  Noam Rosenthal  <noam.rosenthal@nokia.com>
133
134         Reviewed by Adele Peterson.
135
136         Webkit doesn't compile with 3D-canvas enabled and video disabled
137         https://bugs.webkit.org/show_bug.cgi?id=38297
138
139         Added a #ifdef ENABLE(VIDEO) to WebGL code
140
141         No new tests: compile fix.
142
143         * bindings/js/JSWebGLRenderingContextCustom.cpp:
144         (WebCore::JSWebGLRenderingContext::texImage2D):
145         (WebCore::JSWebGLRenderingContext::texSubImage2D):
146
147 2010-05-01  Evan Stade  <estade@chromium.org>
148
149         Reviewed by David Levin.
150
151         [chromium] Skia needs to fade DragImages
152         https://bugs.webkit.org/show_bug.cgi?id=38008
153
154         tested by DragImageTest
155
156         * platform/chromium/DragImageChromiumSkia.cpp:
157         (WebCore::dissolveDragImageToFraction):implement
158         (WebCore::createDragImageFromImage):deep copy instead of shallow
159
160 2010-05-01  Maciej Stachowiak  <mjs@apple.com>
161
162         Reviewed by Sam Weinig.
163
164         REGRESSION (r58273): Visited links do not change color immediately when Cmd-clicked
165         https://bugs.webkit.org/show_bug.cgi?id=38422
166         <rdar://problem/7921778>
167
168         Tests:
169             manual-tests/visited-link-new-window.html
170
171         * css/CSSStyleSelector.cpp:
172         (WebCore::CSSStyleSelector::initElement): Only cache the visited link state
173         when invoked as part of a helper call to styleForElement or pseudoStyleForElement,
174         to avoid caching the visited link state beyond the scope of a single style lookup.
175         (WebCore::CSSStyleSelector::styleForElement): Adjust for above change.
176         (WebCore::CSSStyleSelector::pseudoStyleForElement): Adjust for above change.
177         * css/CSSStyleSelector.h:
178         (WebCore::CSSStyleSelector::styleForElement): Change so "visited link helper mode"
179         can't accidentally be called from outside CSSStyleSelector itself.
180         (WebCore::CSSStyleSelector::pseudoStyleForElement): ditto
181         * manual-tests/visited-link-new-window.html: Added. I could not figure out any way
182         to make an automated test that supports visited link coloring.
183
184 2010-05-01  Yael Aharon  <yael.aharon@nokia.com>
185
186         Reviewed by Darin Adler.
187
188         Move number parsing code out of HTMLInputElement.
189         https://bugs.webkit.org/show_bug.cgi?id=38203
190
191         The numebr parsing code follows HTML5 parsing rules and should be available outside of HTMLInputElement.
192         No new tests as no new functionality was introduced.
193
194         * html/HTMLInputElement.cpp:
195         * html/HTMLInputElement.h:
196         * html/HTMLParser.cpp:
197         (WebCore::serializeForNumberType):
198         (WebCore::parseToDoubleForNumberType):
199         * html/HTMLParser.h:
200         * html/StepRange.cpp:
201         (WebCore::StepRange::clampValue):
202         (WebCore::StepRange::valueFromElement):
203         * html/ValidityState.cpp:
204         (WebCore::ValidityState::typeMismatch):
205         * rendering/RenderSlider.cpp:
206         (WebCore::RenderSlider::setValueForPosition):
207
208 2010-05-01  Xan Lopez  <xlopez@igalia.com>
209
210         Reviewed by Oliver Hunt.
211
212         [GTK] GObject DOM bindings
213         https://bugs.webkit.org/show_bug.cgi?id=33590
214
215         Unify more logic to skip functions into SkipFunction, and
216         whitelist the two [Custom] methods in HTMLCollection.idl.
217
218         * bindings/scripts/CodeGeneratorGObject.pm:
219
220 2010-05-01  Robert Hogan  <robert@webkit.org>
221
222         Reviewed by Simon Hausmann.
223
224         [Qt] Add smart paste support
225
226         https://bugs.webkit.org/show_bug.cgi?id=38136
227
228         * WebCore.pro:
229         * editing/qt/SmartReplaceQt.cpp: Added.
230         (WebCore::isCharacterSmartReplaceExempt):
231         * platform/qt/PasteboardQt.cpp:
232         (WebCore::Pasteboard::writeSelection):
233         (WebCore::Pasteboard::canSmartReplace):
234
235 2010-04-30  Yoshiki Hayashi  <yhayashi@google.com>
236
237         Reviewed by Shinichiro Hamaji.
238
239         https://bugs.webkit.org/show_bug.cgi?id=38249
240         
241         Fixes an issue where border height and padding height are ignored when computing vertically shrinking flexbox's height.
242
243         Test: fast/flexbox/child-flexing.html
244
245         * rendering/RenderFlexibleBox.cpp:
246         (WebCore::RenderFlexibleBox::allowedChildFlex):
247
248 2010-04-30  Shinichiro Hamaji  <hamaji@chromium.org>
249
250         Reviewed by Darin Adler.
251
252         Add layoutTestController.setPrinting()
253         https://bugs.webkit.org/show_bug.cgi?id=37203
254
255         Use the renderer's width insteead of screen's width as the width of
256         a screen depends on machines.
257
258         * rendering/RenderTreeAsText.cpp:
259         (WebCore::externalRepresentation):
260
261 2010-04-30  Joseph Pecoraro  <joepeck@webkit.org>
262
263         Reviewed by Timothy Hatcher.
264
265         Web Inspector: Missing INSPECTOR Guard in Console::lastWMLErrorMessage
266         https://bugs.webkit.org/show_bug.cgi?id=38366
267
268         Console::lastWMLErrorMessage is only available if WML is enabled, however
269         its implementation only makes sense as long as INSPECTOR is enabled
270         as well. So this adds the ENABLE(INSPECTOR) guard in the function. A
271         browser without ENABLE(INSPECTOR) will always get an empty result.
272
273         * page/Console.cpp:
274
275 2010-04-28  Joseph Pecoraro  <joepeck@webkit.org>
276
277         Reviewed by Oliver Hunt.
278
279         REGRESSION(r58313): Regression evident in pixel tests: the search icon is always clipped at the bottom.
280         https://bugs.webkit.org/show_bug.cgi?id=38253
281
282         Test: fast/css/input-search-padding.html
283
284         An <input type="search"> contains an inner block, which is explicitly
285         centered in RenderTextControlSingleLine based on the height of the element.
286         However, the clipping rect was not using the set location, and instead
287         calculated off of the top border and padding alone. This also vertically
288         centers the Caps Lock indicator.
289
290         * rendering/RenderTextControl.cpp: moved controlClipRect implementation to RenderTextControlSingleLine
291         * rendering/RenderTextControl.h: allow a subclass implementation of controlClipRect, removed redundant hasControlClip implementation, and moved controlClipRect
292         * rendering/RenderTextControlSingleLine.cpp:
293         (WebCore::RenderTextControlSingleLine::paint): vertically center the Caps Lock indicator
294         (WebCore::RenderTextControlSingleLine::controlClipRect): use the set location of the anonymous inner block instead
295         * rendering/RenderTextControlSingleLine.h: allow for an implementation of controlClipRect for <input type="search">
296
297 2010-04-30  Jon Honeycutt  <jhoneycutt@apple.com>
298
299         Caret may fail to blink if a focus handler brings up a modal dialog 
300         https://bugs.webkit.org/show_bug.cgi?id=38372
301
302         Reviewed by Darin Adler.
303
304         * manual-tests/onfocus-alert-blinking-caret.html: Added.
305
306         * page/EventHandler.cpp:
307         (WebCore::EventHandler::handleMousePressEvent):
308         Moved the call to setCaretBlinkingSuspended() from here...
309         (WebCore::EventHandler::handleMousePressEvent):
310         ... to here. This makes us suspend caret blinking before dispatching the
311         mouse down event. If dispatching the mouse down event allows the message
312         loop to run, we want mouse up events received in that message loop to be
313         able to resume caret blinking.
314         (WebCore::EventHandler::lostMouseCapture):
315         We've lost mouse capture and won't be notified of mouse up events;
316         resume caret blinking.
317
318         * page/EventHandler.h:
319         Declare lostMouseCapture().
320
321 2010-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
322
323         Unreviewed, build fix.
324
325         [Chromium] Added a simple IdentifierRep struct and removed dependency on
326         IdentifierRep.h.
327
328         * bindings/v8/V8NPObject.cpp: Added simple IdentifierRep struct.
329
330 2010-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
331
332         Unreviewed, build fix.
333
334         [Chromium] Remove bridge/ from include paths.
335
336         * WebCore.gyp/WebCore.gyp: Removed bridge/ from include path.
337
338 2010-04-30  Abhishek Arya  <inferno@chromium.org>
339
340         Reviewed by David Kilzer.
341
342         Convert m_documentUnderMouse, m_dragInitiator to RefPtr.
343         Eliminated unused m_dragInitiator accessor to prevent dereferencing.
344         https://bugs.webkit.org/show_bug.cgi?id=37618
345
346         Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html
347
348         * page/DragController.cpp:
349         (WebCore::DragController::tryDocumentDrag):
350         (WebCore::DragController::concludeEditDrag):
351         * page/DragController.h:
352         (WebCore::DragController::draggingImageURL):
353         (WebCore::DragController::documentUnderMouse):
354
355 2010-04-29  James Robinson  <jamesr@chromium.org>
356
357         Reviewed by Simon Fraser.
358
359         Calls FrameView::scrollPositionChanged whenever a ScrollView is scrolled
360         https://bugs.webkit.org/show_bug.cgi?id=38286
361
362         When a ScrollView's  scroll position is changed, we have to call
363         FrameView::scrollPositionChanged to generate repaint invalidation for
364         fixed position elements.  This ends up getting called indirectly when
365         the ScrollView has a platformWidget through the port layer
366         (see WebHTMLView.mm's _frameOrBoundsChanged method for how the mac
367         port does it) but not when there is no platformWidget.
368
369         This is tested by the fast/repaint/fixed-* tests when run in pixel
370         mode.
371
372         Test: fast/repaint/fixed-move-after-keyboard-scroll.html
373
374         * page/FrameView.h:
375         * platform/ScrollView.cpp:
376         (WebCore::ScrollView::valueChanged):
377         * platform/ScrollView.h:
378         (WebCore::ScrollView::scrollPositionChanged):
379
380 2010-04-30  Anders Carlsson  <andersca@apple.com>
381
382         Reviewed by Darin Adler.
383
384         Use C99 integer types in more places.
385
386         * manual-tests/NPN_Invoke/main.c:
387         (NPP_New):
388         (NPP_NewStream):
389         (NPP_WriteReady):
390         (NPP_Write):
391         (NPP_HandleEvent):
392         (functionPointerForTVector):
393         * plugins/mac/PluginViewMac.cpp:
394         (WebCore::PluginView::platformGetValueStatic):
395         (WebCore::PluginView::handlePostReadFile):
396
397 2010-04-30  Darin Adler  <darin@apple.com>
398
399         Reviewed by Oliver Hunt.
400
401         Remove unused scrollRectIntoViewRecursively function
402         https://bugs.webkit.org/show_bug.cgi?id=38403
403
404         * page/Chrome.cpp:
405         (WebCore::Chrome::scrollRectIntoView): Moved comment here that was previously
406         in the scrollRectIntoViewRecursively function.
407
408         * platform/ScrollView.cpp: Get rid scrollRectIntoViewRecursively.
409         * platform/ScrollView.h: Ditto. Fix comment that refers to the two functions.
410         Also correct all uses of the term "method" to use the C++ term "function" and
411         got rid of double spaces after periods.
412
413 2010-04-30  Anders Carlsson  <andersca@apple.com>
414
415         Another Qt build fix.
416
417         * plugins/qt/PluginViewQt.cpp:
418         (WebCore::PluginView::platformGetValueStatic):
419
420 2010-04-30  Anders Carlsson  <andersca@apple.com>
421
422         Add back TRUE, FALSE and NULL macros. They were not meant to be removed!
423
424         * bridge/npapi.h:
425
426 2010-04-30  Anders Carlsson  <andersca@apple.com>
427
428         Try to fix the Qt build this time.
429
430         * plugins/qt/PluginPackageQt.cpp:
431         (WebCore::staticPluginQuirkRequiresGtkToolKit_NPN_GetValue):
432         (WebCore::PluginPackage::NPVersion):
433
434 2010-04-30  Anders Carlsson  <andersca@apple.com>
435
436         Yet another build fix.
437
438         * plugins/gtk/PluginPackageGtk.cpp:
439         (WebCore::PluginPackage::NPVersion):
440
441 2010-04-30  Anders Carlsson  <andersca@apple.com>
442
443         Fix build.
444
445         * bridge/npapi.h:
446
447 2010-04-30  Jian Li  <jianli@chromium.org>
448
449         Reviewed by Darin Fisher.
450
451         [chromium] Add WebFileSystem interface and hook up with all FileSystem methods.
452         https://bugs.webkit.org/show_bug.cgi?id=38228
453
454         * platform/chromium/ChromiumBridge.h:
455         * platform/chromium/FileSystemChromium.cpp:
456         (WebCore::openFile):
457         (WebCore::closeFile):
458         (WebCore::seekFile):
459         (WebCore::truncateFile):
460         (WebCore::readFromFile):
461         (WebCore::writeToFile):
462
463 2010-04-30  Anders Carlsson  <andersca@apple.com>
464
465         Reviewed by Dan Bernstein.
466
467         Final part of 
468         
469         https://bugs.webkit.org/show_bug.cgi?id=20784
470         move npapi.h to C99 integer types
471
472         * bridge/npapi.h:
473         Remove the old types.
474
475 2010-04-30  Sheriff Bot  <webkit.review.bot@gmail.com>
476
477         Unreviewed, rolling out r58569.
478         http://trac.webkit.org/changeset/58569
479         https://bugs.webkit.org/show_bug.cgi?id=38399
480
481         This broke the GTK bots due to bad GC behavior (Requested by
482         ericu on #webkit).
483
484         * bindings/js/JSWorkerContextCustom.cpp:
485         * bindings/v8/custom/V8WorkerContextCustom.cpp:
486         * storage/Database.idl:
487         * storage/SQLError.idl:
488         * storage/SQLResultSet.idl:
489         * storage/SQLResultSetRowList.idl:
490         * storage/SQLTransaction.idl:
491         * workers/WorkerContext.cpp:
492         (WebCore::WorkerContext::openDatabase):
493         * workers/WorkerContext.h:
494         (WebCore::WorkerContext::databaseExceededQuota):
495         * workers/WorkerContext.idl:
496
497 2010-04-30  Anders Carlsson  <andersca@apple.com>
498
499         Fix GTK+ build.
500
501         * plugins/gtk/PluginViewGtk.cpp:
502         (WebCore::PluginView::handlePostReadFile):
503         (WebCore::PluginView::platformGetValueStatic):
504
505 2010-04-30  Anders Carlsson  <andersca@apple.com>
506
507         Fix Qt build.
508
509         * plugins/qt/PluginViewQt.cpp:
510         (WebCore::PluginView::handlePostReadFile):
511         (WebCore::PluginView::platformGetValue):
512
513 2010-04-30  Anders Carlsson  <andersca@apple.com>
514
515         Reviewed by Timothy Hatcher.
516
517         Next step towards fixing
518         
519         https://bugs.webkit.org/show_bug.cgi?id=20784
520         move npapi.h to C99 integer types
521
522         Use the C99 types everywhere. The "old" types are still around but will be removed
523         in a subsequent commit.
524
525         * bridge/npapi.h:
526         (_NPCocoaEvent::):
527         * plugins/PluginPackage.h:
528         * plugins/PluginStream.cpp:
529         (WebCore::PluginStream::deliverData):
530         * plugins/PluginStream.h:
531         * plugins/PluginView.cpp:
532         (WebCore::PluginView::postURLNotify):
533         (WebCore::PluginView::postURL):
534         (WebCore::PluginView::write):
535         (WebCore::PluginView::handlePost):
536         * plugins/PluginView.h:
537         * plugins/PluginViewNone.cpp:
538         (WebCore::PluginView::handlePostReadFile):
539         * plugins/npapi.cpp:
540         (NPN_MemAlloc):
541         (NPN_MemFlush):
542         (NPN_PostURLNotify):
543         (NPN_PostURL):
544         (NPN_Write):
545         * plugins/npfunctions.h:
546         * plugins/win/PluginPackageWin.cpp:
547         (WebCore::PluginPackage::NPVersion):
548         * plugins/win/PluginViewWin.cpp:
549         (WebCore::PluginView::handlePostReadFile):
550
551 2010-04-30  Peter Kasting  <pkasting@google.com>
552
553         Reviewed by David Levin.
554
555         Make all image decoders set the "failed" bit if an image could not be
556         completely decoded, but no more data is coming.  The ICO and BMP
557         decoders already did this.
558         https://bugs.webkit.org/show_bug.cgi?id=35411
559
560         "Failed" does not cause the image to not be displayed, it simply causes
561         us to not bother to try to decode again if future requests are made, and
562         for some decoders, lets the decoder clean up some of its temporary
563         objects.
564
565         No layout tests because this does not change the visible output of decoding in any way.
566
567         * platform/image-decoders/gif/GIFImageDecoder.cpp:
568         (WebCore::GIFImageDecoder::frameComplete): Return whether the frame could be marked as complete.
569         (WebCore::GIFImageDecoder::decode): Fail if read() needs more data (and thus returns false) and no more is coming.
570         * platform/image-decoders/gif/GIFImageDecoder.h:
571         * platform/image-decoders/gif/GIFImageReader.cpp:
572         (GIFImageReader::do_lzw): Instead of returning true for buffer underrun and false for failure, return false for both and set the failure flag on failure.
573         (GIFImageReader::read): Ditto.
574         * platform/image-decoders/gif/GIFImageReader.h:
575         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
576         (WebCore::):
577         (WebCore::JPEGImageReader::decode): See do_lzw() comment above.
578         (WebCore::JPEGImageDecoder::decode): Fail if decode() needs more data (and thus returns false) and no more is coming.
579         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
580         * platform/image-decoders/png/PNGImageDecoder.cpp:
581         (WebCore::PNGImageReader::decode): Return true for decode success, false for buffer underrun or decode failure, and set the failure flag on decode failure.
582         (WebCore::PNGImageDecoder::decode): See JPEGImageDecoder::decode() comment above.
583         * platform/image-decoders/png/PNGImageDecoder.h:
584
585 2010-04-30  Brady Eidson  <beidson@apple.com>
586
587         Reviewed by Eric Carlson.
588
589         <rdar://problem/7902467> - Audio plays upon loading of npr.org but shouldn't
590
591         No new tests. (Currently no way to test such site specific hack behavior)
592
593         * html/HTMLMediaElement.cpp:
594         (WebCore::HTMLMediaElement::HTMLMediaElement):
595         (WebCore::HTMLMediaElement::asyncEventTimerFired): If the event to be dispatched is the canplay
596           event, wrap the dispatch with m_dispatchingCanPlayEvent set.
597         (WebCore::HTMLMediaElement::play): If m_dispatchingCanPlayEvent is true and the site is npr.org, 
598           don't perform the play().
599         * html/HTMLMediaElement.h: Add m_dispatchingCanPlayEvent member.
600
601 2010-04-30  Dan Bernstein  <mitz@apple.com>
602
603         Reviewed by Adele Peterson.
604
605         Part of <rdar://problem/6649734> Text repainting does not account for glyphs which draw outside the typographic bounds of the font
606         https://bugs.webkit.org/show_bug.cgi?id=6274
607
608         Account for glyph overflow of characters in the range U+1E00..U+2000, but without sending them
609         through the complex text code path. Instead, introduce a variant of the fast path that tracks
610         glyph overflow.
611
612         * platform/graphics/Font.cpp:
613         (WebCore::Font::drawText): Use codePath().
614         (WebCore::Font::floatWidth): Use codePath(). Pass the GlyphOverflow pointer through to
615         floatWidthForSimpleText() if the code path is SimpleWithGlyphOverflow.
616         (WebCore::Font::selectionRectForText): Use codePath().
617         (WebCore::Font::offsetForPosition): Ditto.
618         * platform/graphics/Font.h: Replaced canUseGlyphCache() with codePath(). Added a GlyphOverflow
619         parameter to floatWidthForSimpleText().
620         * platform/graphics/FontFastPath.cpp:
621         Removed ROMAN_AND_GREEK_DIACRITICS_CAN_USE_GLYPH_CACHE.
622         (WebCore::Font::codePath): Renamed canUseGlyphCache() to this. Where it used to return false,
623         it now returns Complex. Where it used to return true, it now returns Simple, except for
624         the range U+1E00..U+2000, where it now returns SimpleWithGlyphOverflow.
625         (WebCore::Font::floatWidthForSimpleText): Added a GlyphOverflow parameter. If not 0, have the
626         width iterator account for glyph bounds, then update the GlyphOverflow accordingly.
627         * platform/graphics/WidthIterator.cpp:
628         (WebCore::WidthIterator::WidthIterator): Added boolean parameter telling the width iterator
629         whether to account for glyph bounds. Initialize m_accountForGlyphBounds accordingly. Initialize
630         m_maxGlyphBoundingBoxY, m_minGlyphBoundingBoxY, m_firstGlyphOverflow and m_lastGlyphOverflow.
631         (WebCore::WidthIterator::advance): If accounting for glyph bounds, update the above member variables.
632         * platform/graphics/WidthIterator.h:
633         (WebCore::WidthIterator::maxGlyphBoundingBoxY): Added this accessor.
634         (WebCore::WidthIterator::minGlyphBoundingBoxY): Ditto.
635         (WebCore::WidthIterator::firstGlyphOverflow): Ditto.
636         (WebCore::WidthIterator::lastGlyphOverflow): Ditto.
637
638 2010-04-30  Chris Marrin  <cmarrin@apple.com>
639
640         Reviewed by Simon Fraser.
641
642         Reversed the order of the CSSMatrix.multiply method
643         https://bugs.webkit.org/show_bug.cgi?id=38337
644
645         Test: transforms/svg-vs-css.xhtml
646
647         * css/WebKitCSSMatrix.cpp:
648         (WebCore::WebKitCSSMatrix::multiply):
649         * platform/graphics/transforms/TransformationMatrix.cpp:
650
651 2010-04-30  Kevin Ollivier  <kevino@theolliviers.com>
652
653         Unreviewed. Attempt to fix the Chromium Mac build after the last commit.
654
655         * WebCore.gypi:
656
657 2010-04-30  Kevin Ollivier  <kevino@theolliviers.com>
658
659         Reviewed by Dan Bernstein.
660
661         Allow other ports to compile ATSUI and CoreText functions in SimpleFontData for Mac.
662         https://bugs.webkit.org/show_bug.cgi?id=38334
663
664         * WebCore.xcodeproj/project.pbxproj:
665         * platform/graphics/mac/SimpleFontDataATSUI.mm: Copied from WebCore/platform/graphics/mac/SimpleFontDataMac.mm.
666         * platform/graphics/mac/SimpleFontDataCoreText.cpp: Copied from WebCore/platform/graphics/mac/SimpleFontDataMac.mm.
667         * platform/graphics/mac/SimpleFontDataMac.mm:
668
669 2010-04-30  Shinichiro Hamaji  <hamaji@chromium.org>
670
671         Reviewed by Simon Fraser.
672
673         SHOULD NEVER BE REACHED assertion loading forbes.com
674         https://bugs.webkit.org/show_bug.cgi?id=38272
675
676         Ignore page media related pseudo classes.
677
678         Test: printing/pseudo-class-outside-page.html
679
680         * css/CSSStyleSelector.cpp:
681         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
682
683 2010-04-30  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
684
685         Unreviewed, build fix.
686
687         Fix compiler warning "suggest parentheses around"
688
689         No new tests as there is no new functionality.
690
691         * svg/SVGAnimateElement.cpp:
692         (WebCore::SVGAnimateElement::calculateFromAndToValues):
693
694 2010-04-30  Kent Tamura  <tkent@chromium.org>
695
696         Unreviewed. Regression fix.
697
698         Revert a part of r58564 to be compatible with prior behavior
699         https://bugs.webkit.org/show_bug.cgi?id=38383
700
701         * rendering/RenderTextControlSingleLine.cpp:
702         (WebCore::RenderTextControlSingleLine::forwardEvent):
703          r58564 made a region check for the cancel button stricter, but it
704          made some tests failing on Chromium. So, relax the check again.
705
706 2010-04-29  Jeremy Orlow  <jorlow@chromium.org>
707
708         Reviewed by Darin Fisher.
709
710         Change StorageEvent.uri to StorageEvent.url to match the spec
711         https://bugs.webkit.org/show_bug.cgi?id=38331
712
713         As I mentioned in http://www.mail-archive.com/public-webapps@w3.org/msg08495.html
714         WebKit is the only one who places the document's URL in a 'uri' property
715         rather than a 'url' property.  Even though we've shipped several versions of
716         browsers with the old name, we probably should change this to comply with the
717         spec.
718
719         This stuff is covered by existing tests.
720
721         * storage/StorageEvent.cpp:
722         (WebCore::StorageEvent::create):
723         (WebCore::StorageEvent::StorageEvent):
724         (WebCore::StorageEvent::initStorageEvent):
725         * storage/StorageEvent.h:
726         (WebCore::StorageEvent::url):
727         * storage/StorageEvent.idl:
728
729 2010-04-30  Nikolas Zimmermann  <nzimmermann@rim.com>
730
731         Reviewed by Dirk Schulze.
732
733         REGRESSION: RenderPath does not handle repaints correctly anymore if bounds changed
734         https://bugs.webkit.org/show_bug.cgi?id=38385
735
736         The last SVG performance patch broke repainting if bounds of a RenderPath get smaller.
737         It would only repaint the smaller part, not the original larger bounds.
738
739         Remove all lazy calculation of the repaint rects, instead calculate object/strokeBoundingBox and repaintRectInLocalCoordinates
740         once in layout - after LayoutRepainter grabbed the initial bounds, before calling repaintAfterLayout(). We can now inline
741         all these functions, and save a lot of m_path.isEmpty() checks, which are expensive. No need to store a seperated markerBoundingBox(),
742         combine with strokeBoundingBox() -> save one FloatRect per RenderPath. Move strokeBoundingBox() from SVGRenderBase to RenderObject,
743         right next to objectBoundingBox() - to save unnecessary toSVGRenderBase() calls. Completly remove this method.
744
745         Overall this is a regression fix, a performance improvement and saves memory. Something for everyone.
746
747         Tests: svg/custom/repaint-stroke-width-changes.svg
748
749         * rendering/RenderObject.cpp: Added strokeBoundingBox() here, to avoid the toSVGRenderBase() dance.
750         (WebCore::RenderObject::strokeBoundingBox):
751         * rendering/RenderObject.h: Ditto.
752         * rendering/RenderPath.cpp:
753         (WebCore::RenderPath::RenderPath):
754         (WebCore::RenderPath::layout): Fix regression, do repainting correctly, by recalculating the boundaries, if needed, instead of nulling them.
755         (WebCore::RenderPath::paint): Cache SVGRenderStyle in local variable, remove no longer valid FIXME.
756         (WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Return a FloatRect, to avoid having to store the marker bounding box seperated.
757         (WebCore::RenderPath::styleWillChange): Mark boundaries as dirty.
758         (WebCore::RenderPath::updateCachedBoundaries): New function to (re-)calculate all cached boundaries, only called from layout().
759         * rendering/RenderPath.h: Rename cached rect variables to have more sensible names.
760         (WebCore::RenderPath::objectBoundingBox): Inlined, just returns the cached value - no more lazy creation. Huge speedup as this is hot code.
761         (WebCore::RenderPath::strokeBoundingBox): Ditto.
762         (WebCore::RenderPath::repaintRectInLocalCoordinates): Ditto.
763         * rendering/RenderSVGBlock.h: Remove toSVGRenderBase() method.
764         * rendering/RenderSVGImage.h: Ditto.
765         * rendering/RenderSVGInline.cpp: No need to call toSVGRenderBase() just to get the strokeBoundingBox(). Unifies code to retrieve bounding boxes.
766         (WebCore::RenderSVGInline::strokeBoundingBox):
767         * rendering/RenderSVGInline.h: Remove toSVGRenderBase() method.
768         * rendering/RenderSVGModelObject.h: Ditto.
769         * rendering/RenderSVGResourceFilter.cpp: No need to call toSVGRenderBase() anymore, just grab the strokeBoundingBox() from the RenderObject.
770         (WebCore::RenderSVGResourceFilter::applyResource):
771         * rendering/RenderSVGText.h: Remove toSVGRenderBase() method.
772         * rendering/SVGRenderSupport.h: Ditto. Remove markerBoundingBox() method, now combined with strokeBoundingBox().
773         (WebCore::SVGRenderBase::strokeBoundingBox):
774         * rendering/SVGRootInlineBox.h: Remove toSVGRenderBase() method.
775         * rendering/style/SVGRenderStyle.h: Add hasMarkers() helper method, to avoid doing unnecessary work in RenderPath.
776         (WebCore::SVGRenderStyle::hasMarkers):
777
778 2010-04-30  Eric Uhrhane  <ericu@chromium.org>
779
780         Reviewed by Dmitry Titov.
781
782         Add bindings for async DB API in Workers.
783         https://bugs.webkit.org/show_bug.cgi?id=34992
784
785         Tests: storage/change-version-handle-reuse-worker.html
786                storage/execute-sql-args-worker.html
787
788         * bindings/js/JSWorkerContextCustom.cpp: Add openDatabase binding.
789         (WebCore::JSWorkerContext::openDatabase):
790
791         * bindings/v8/custom/V8WorkerContextCustom.cpp: Add openDatabase stub; Chromium will need work both in V8 and in the browser process before we can turn this on there.
792         (WebCore::V8WorkerContext::openDatabaseCallback):
793
794         Add NoStaticTables flags to all objects now shared with workers.
795         * storage/Database.idl:
796         * storage/SQLError.idl:
797         * storage/SQLResultSet.idl:
798         * storage/SQLResultSetRowList.idl:
799         * storage/SQLTransaction.idl:
800         
801         * workers/WorkerContext.h: Add databaseExceededQuota.
802         * workers/WorkerContext.cpp:
803         (WebCore::WorkerContext::databaseExceededQuota): Add stub implementation for testing; you just get 5MB for now.
804         (WebCore::WorkerContext::openDatabase): Remove invalid assertion.
805
806         Add the IDL for the call to openDatabase.
807         * workers/WorkerContext.idl:
808
809 2010-04-30  Shinichiro Hamaji  <hamaji@chromium.org>
810
811         Reviewed by Darin Adler.
812
813         Unnecessary PrintContext::end() calls
814         https://bugs.webkit.org/show_bug.cgi?id=38247
815
816         Refactoring only, so no new tests.
817
818         * page/PrintContext.cpp:
819         (WebCore::PrintContext::pageNumberForElement):
820         (WebCore::PrintContext::numberOfPages):
821
822 2010-04-30  Kent Tamura  <tkent@chromium.org>
823
824         Reviewed by Adele Peterson.
825
826         Implement interactive behavior of spin buttons.
827         https://bugs.webkit.org/show_bug.cgi?id=35686
828
829         Introduce SpinButtonElement. It is a shadow element class for
830         spin buttons. If the upper side of the element is clicked, calls
831         HTMLInputElement::stepUpFromRenderer(1). If the lower button is
832         clicked, calls HTMLInputElement::stepUpFromRenderer(-1).
833
834         SpinButtonElement tracks the mouse pointer position, and
835         RenderTheme sets ControlStates::SpinUpState if the pointer is on
836         the upper side.
837
838         Test: platform/mac/fast/forms/input-number-click.html
839
840         * dom/Element.h:
841         (WebCore::Element::isSpinButtonElement):
842         * editing/VisibleSelection.cpp:
843         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
844          Remove an assertion. lastEditablePositionBeforePositionInRoot() can
845          return null in a case that m_end is at a shadow element (a spin button)
846          and baseRoot is another shadow element (inner text block) in the same
847          node (an INPUT element).
848         * html/HTMLInputElement.cpp:
849         (WebCore::HTMLInputElement::stepUpFromRenderer):
850         * html/HTMLInputElement.h:
851         (WebCore::HTMLInputElement::hasSpinButton):
852          Add types supporting step attribute except RANGE.
853         * rendering/RenderTextControlSingleLine.cpp:
854         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
855         (WebCore::RenderTextControlSingleLine::forwardEvent):
856         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
857         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
858         * rendering/RenderTextControlSingleLine.h:
859         * rendering/RenderTheme.cpp:
860         (WebCore::RenderTheme::controlStatesForRenderer):
861         (WebCore::RenderTheme::isSpinUpButtonPartPressed):
862         (WebCore::RenderTheme::isSpinUpButtonPartHovered):
863         * rendering/RenderTheme.h:
864         * rendering/TextControlInnerElements.cpp:
865         (WebCore::SpinButtonElement::SpinButtonElement):
866         (WebCore::SpinButtonElement::defaultEventHandler):
867         * rendering/TextControlInnerElements.h:
868         (WebCore::SpinButtonElement::isSpinButtonElement):
869         (WebCore::SpinButtonElement::isEnabledFormControl):
870         (WebCore::SpinButtonElement::onUpButton):
871
872 2010-04-30  Yael Aharon  <yael.aharon@nokia.com>
873
874         Reviewed by Kenneth Rohde Christiansen.
875
876         [Qt] Enable DOMWindow constructor for HTMLProgressElement
877         https://bugs.webkit.org/show_bug.cgi?id=38333
878
879         Add ENABLE_PROGRESS_TAG to FEATURES_DEFINES_JAVASCRIPT.
880
881         * WebCore.pri:
882
883 2010-04-30  Kent Tamura  <tkent@chromium.org>
884
885         Reviewed by Adele Peterson.
886
887         Mac implementation of outer-spin-button appearance, and anonymous
888         element generation for <input type=number>.
889         https://bugs.webkit.org/show_bug.cgi?id=32813
890
891         The implementation uses NSStepperCell. Like the other Mac
892         controls, it has only three candidates for sizes.
893
894         The editable block of an input element is shrunk, and the
895         anonymous block for a spin button is put on the right of the
896         editable block.
897
898         Tests: platform/mac/fast/forms/input-appearance-spinbutton-size.html
899                platform/mac/fast/forms/input-appearance-spinbutton.html
900
901         * dom/Element.cpp:
902         (WebCore::Element::pseudoStyleCacheIsInvalid):
903         * dom/InputElement.h:
904         (WebCore::InputElement::hasSpinButton):
905         * html/HTMLInputElement.h:
906         (WebCore::HTMLInputElement::hasSpinButton): Return true for NUMBER type.
907         * platform/mac/ThemeMac.mm:
908         (WebCore::sizeFromNSControlSize): Split the main part of sizeFromFont()
909           to this in order to use stepperControlSizeForFont() instead of
910           controlSizeForFont().
911         (WebCore::sizeFromFont): Just calls sizeFromNSControlSize() with
912           sizeFromFont(). No behavior changes.
913         (WebCore::stepperSizes): Returns sizes for mini, small, and regular.
914         (WebCore::stepperControlSizeForFont):
915           Dedicated version of controlSizeForFont().
916         (WebCore::stepper): Returns NSStepperCell object with specified settings.
917         (WebCore::paintStepper):
918         (WebCore::ThemeMac::controlSize): Support for OuterSpinButton.
919         (WebCore::ThemeMac::minimumControlSize): ditto.
920         (WebCore::ThemeMac::inflateControlPaintRect): ditto.
921         (WebCore::ThemeMac::paint): ditto.
922         * rendering/RenderBox.cpp:
923         (WebCore::RenderBox::paintBoxDecorations):
924           Move the content to paintBoxDecorationsWithSize().
925         (WebCore::RenderBox::paintBoxDecorationsWithSize):
926         * rendering/RenderBox.h: Declare paintBoxDecorationsWithSize().
927         * rendering/RenderTextControlSingleLine.cpp:
928         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
929         (WebCore::RenderTextControlSingleLine::paintBoxDecorations):
930           Call paintBoxDecorationsWithSize() with smaller width by decorationWidthRight().
931         (WebCore::RenderTextControlSingleLine::addFocusRingRects):
932           Add a rectangle of which width is smaller by decorationWidthRight().
933         (WebCore::RenderTextControlSingleLine::layout):
934           Adjust m_outerSpinButton position.
935         (WebCore::RenderTextControlSingleLine::styleDidChange):
936         (WebCore::RenderTextControlSingleLine::textBlockWidth):
937         (WebCore::RenderTextControlSingleLine::decorationWidthRight):
938         (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight):
939         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
940           Creates an element for m_outerSpinButton if it is needed.
941         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
942         (WebCore::RenderTextControlSingleLine::createOuterSpinButtonStyle):
943         * rendering/RenderTextControlSingleLine.h: Declare new methods and m_outerSpinButton.
944         * rendering/RenderThemeMac.mm:
945         (WebCore::RenderThemeMac::adjustRepaintRect): Support for OuterSpinButton.
946
947 2010-04-29  Adam Barth  <abarth@webkit.org>
948
949         Unreviewed.  Update JSC CodeGenerator baseline.  Not sure how I missed
950         this one earlier.
951
952         * bindings/scripts/test/JS/JSTestObj.cpp:
953         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
954
955 2010-04-29  Justin Garcia  <justin.garcia@apple.com>
956
957         Reviewed by Adele Peterson.
958
959         Need to updateLayout after typing commands too
960         https://bugs.webkit.org/show_bug.cgi?id=38352
961
962         Replaced !m_parent checks in EditCommand.cpp by the more descriptive isTopLevelCommand().
963         Move the post editing operation updateLayout() call to {un,re}appliedEditing so that text insertions,
964         which don't go through EditCommand::{un,re}apply() can benefit from it too.  No test case possible
965         since most platforms have a layout performed as a side effect of post operation selection code.
966
967         * editing/EditCommand.cpp:
968         (WebCore::EditCommand::apply):
969         (WebCore::EditCommand::unapply):
970         (WebCore::EditCommand::reapply):
971         * editing/EditCommand.h:
972         (WebCore::EditCommand::isTopLevelCommand):
973         * editing/Editor.cpp:
974         (WebCore::Editor::appliedEditing):
975         (WebCore::Editor::unappliedEditing):
976         (WebCore::Editor::reappliedEditing):
977
978 2010-04-29  Dan Bernstein  <mitz@apple.com>
979
980         Reviewed by Simon Fraser.
981
982         <rdar://problem/7918086> REGRESSION (r57820): Controller is not displayed in window when opening a MP3 file in browser window
983         https://bugs.webkit.org/show_bug.cgi?id=38350
984
985         Tests: media/audio-only-video-intrinsic-size.html
986                media/media-document-audio-size.html
987
988         * rendering/RenderVideo.cpp:
989         (WebCore::RenderVideo::RenderVideo): Until metadata is available, ignore the natural size
990         reported by the player.
991         (WebCore::RenderVideo::videoSizeChanged): Respect a natural size of zero if reported by the
992         player, except in standalone media documents.
993
994 2010-04-29  Anders Carlsson  <andersca@apple.com>
995
996         Reviewed by Dan Bernstein.
997
998         First part of
999         https://bugs.webkit.org/show_bug.cgi?id=20784
1000         move npapi.h to C99 integer types.
1001
1002         Add nptypes.h to the build.
1003
1004         * WebCore.xcodeproj/project.pbxproj:
1005         * bridge/npapi.h:
1006         * bridge/npruntime.h:
1007         * bridge/nptypes.h: Added.
1008
1009 2010-04-29  Xan Lopez  <xlopez@igalia.com>
1010
1011         Rubber-stamped by Adam Barth.
1012
1013         Update GObject bindings test results. We are actually moving
1014         backwards here, but we'll update them again when we figure out
1015         what broke.
1016
1017         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1018         (webkit_dom_test_obj_set_property):
1019         (webkit_dom_test_obj_get_property):
1020
1021 2010-04-29  Sam Weinig  <sam@webkit.org>
1022
1023         Reviewed by Anders Carlsson.
1024
1025         Fix for https://bugs.webkit.org/show_bug.cgi?id=38277
1026         MiniBrowser: -[WebCoreFlippedView currentEditor]: unrecognized selector
1027
1028         * platform/mac/ThemeMac.mm:
1029         (-[WebCoreFlippedView currentEditor]): Added currentEditor nil implementation.
1030
1031 2010-04-29  Adam Barth  <abarth@webkit.org>
1032
1033         Reviewed by Eric Seidel.
1034
1035         CodeGeneratorJS.pm should be consistent about castedThis versus castedThisObj
1036         https://bugs.webkit.org/show_bug.cgi?id=38338
1037
1038         Currently CodeGeneratorJS.pm uses castThis for methods and
1039         castedThisObj for attributes.  This inconsistency makes it difficult to
1040         factor common code genereration code into methods shared by both kinds
1041         of bindings.  This match aligns the names so that a future patch (e.g.,
1042         in https://bugs.webkit.org/show_bug.cgi?id=38313) can reduce copy/paste
1043         code.
1044
1045         * bindings/scripts/CodeGeneratorJS.pm:
1046         * bindings/scripts/test/JS/JSTestObj.cpp:
1047         (WebCore::setJSTestObjIntAttr):
1048         (WebCore::setJSTestObjLongLongAttr):
1049         (WebCore::setJSTestObjUnsignedLongLongAttr):
1050         (WebCore::setJSTestObjStringAttr):
1051         (WebCore::setJSTestObjTestObjAttr):
1052         (WebCore::setJSTestObjAttrWithException):
1053         (WebCore::setJSTestObjAttrWithSetterException):
1054         (WebCore::setJSTestObjAttrWithGetterException):
1055         (WebCore::jsTestObjPrototypeFunctionVoidMethod):
1056         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
1057         (WebCore::jsTestObjPrototypeFunctionIntMethod):
1058         (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
1059         (WebCore::jsTestObjPrototypeFunctionObjMethod):
1060         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
1061         (WebCore::jsTestObjPrototypeFunctionMethodWithException):
1062         (WebCore::jsTestObjPrototypeFunctionCustomMethod):
1063         (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
1064         (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
1065         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
1066         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
1067         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrame):
1068         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
1069         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
1070         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
1071         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
1072         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
1073         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
1074         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
1075         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
1076         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
1077         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
1078         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
1079
1080 2010-04-29  Gustavo Noronha Silva  <gustavo.noronhaollabora.co.uk>
1081
1082         Reviewed by Xan Lopez.
1083
1084         [GTK] pointerCursor should use the default cursor set for the window, not GDK_LEFT_PTR
1085         https://bugs.webkit.org/show_bug.cgi?id=36963
1086
1087         Use the default cursor instead of hard-coding left pointer.
1088
1089         * platform/gtk/CursorGtk.cpp:
1090         (WebCore::Cursor::Cursor):
1091         (WebCore::pointerCursor):
1092
1093 2010-04-29  Ilya Tikhonovsky  <loislo@chromium.org>
1094
1095         Reviewed by Yury Semikhatsky.
1096
1097         WebInspector: If Timeline panel is in recording mode and is not visible and has received
1098         new events then these events do not appear in the panel when the panel becomes visible.
1099         Timeline popup may appear in the upper left window corner when you switch to another panel.
1100         https://bugs.webkit.org/show_bug.cgi?id=38322
1101
1102         * inspector/front-end/Popover.js:
1103         (WebInspector.PopoverHelper.prototype._mouseMove.doHide):
1104         (WebInspector.PopoverHelper.prototype._mouseMove):
1105         (WebInspector.PopoverHelper.prototype.hidePopup):
1106         (WebInspector.PopoverHelper.prototype._hidePopup):
1107         * inspector/front-end/TimelinePanel.js:
1108         (WebInspector.TimelinePanel.prototype.show):
1109         (WebInspector.TimelinePanel.prototype._scheduleRefresh):
1110         (WebInspector.TimelinePanel.prototype._refresh):
1111
1112 2010-04-29  Anton Muhin  <antonm@chromium.org>
1113
1114         Reviewed by Darin Adler.
1115
1116         Let's cache nodelists instead of DynamicNodeList::Caches
1117         https://bugs.webkit.org/show_bug.cgi?id=33696
1118
1119         Test: fast/dom/Element/node-list-identity.html
1120
1121         * bindings/js/JSNodeCustom.cpp:
1122         (WebCore::JSNode::markChildren): Mark all cached node lists as well
1123         * dom/ClassNodeList.cpp:
1124         (WebCore::ClassNodeList::ClassNodeList): Don't need DynamicNodeList::Caches argument any more
1125         (WebCore::ClassNodeList::~ClassNodeList): Remove from the cache
1126         * dom/ClassNodeList.h: Added a field with original class names to be used as a key for removal from the cache
1127         (WebCore::ClassNodeList::create): Don't need DynamicNodeList::Caches argument any more
1128         * dom/NameNodeList.cpp:
1129         (WebCore::NameNodeList::NameNodeList): Don't need DynamicNodeList::Caches argument any more
1130         (WebCore::NameNodeList::~NameNodeList): Remove from the cache
1131         * dom/NameNodeList.h:
1132         (WebCore::NameNodeList::create): Don't need DynamicNodeList::Caches argument any more
1133         * dom/Node.cpp:
1134         (WebCore::Node::removeCachedClassNodeList): Remove ClassNodeList from the cache
1135         (WebCore::Node::removeCachedNameNodeList): Remove NameNodeList from the cache
1136         (WebCore::Node::removeCachedTagNodeList): Remove TagNodeList from the cache
1137         (WebCore::Node::getElementsByTagNameNS): Switch to caching node lists themselves, not the data
1138         (WebCore::Node::getElementsByName): Switch to caching node lists themselves, not the data
1139         (WebCore::Node::getElementsByClassName): Switch to caching node lists themselves, not the data
1140         (WebCore::NodeListsNodeData::invalidateCaches): Switch to caching node lists themselves, not the data
1141         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): Switch to caching node lists themselves, not the data
1142         (WebCore::NodeListsNodeData::isEmpty): Switch to caching node lists themselves, not the data
1143         (WebCore::markNodeLists): Helper to mark all the node lists in the cache
1144         (WebCore::Node::markCachedNodeListsSlow): Mark all the cached node lists if any could be present
1145         * dom/Node.h:
1146         (WebCore::Node::markCachedNodeLists): Fast-path marking of cached node lists---bails out if there is no rare data
1147         * dom/NodeRareData.h: Changed type of caches to hold raw pointers to node lists, not RefPtr's to data
1148         * dom/TagNodeList.cpp:
1149         (WebCore::TagNodeList::TagNodeList): Don't need DynamicNodeList::Caches argument any more
1150         (WebCore::TagNodeList::~TagNodeList): Remove from the cache
1151         * dom/TagNodeList.h:
1152         (WebCore::TagNodeList::create): Don't need DynamicNodeList::Caches argument any more
1153
1154 2010-04-29  Mikhail Naganov  <mnaganov@chromium.org>
1155
1156         Reviewed by Yury Semikhatsky.
1157
1158         [Chromium] Update ScriptProfileNode to retrieve execution time in milliseconds.
1159
1160         https://bugs.webkit.org/show_bug.cgi?id=38330
1161
1162         * bindings/v8/ScriptProfileNode.cpp:
1163         (WebCore::ScriptProfileNode::totalTime):
1164         (WebCore::ScriptProfileNode::selfTime):
1165
1166 2010-04-28  Dimitri Glazkov  <dglazkov@chromium.org>
1167
1168         Reviewed by Darin Adler.
1169
1170         A form without a submit button unexpectedly performs its action when Return is pressed
1171         https://bugs.webkit.org/show_bug.cgi?id=9756
1172
1173         Implemented implicit form submission algorithm as defined in HTML5 spec:
1174         http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#implicit-submission,
1175         falling back to match IE's behavior in the edge cases.
1176
1177         The underlying rules are:
1178
1179         * If the form has no enabled submit buttons, submit if Enter/Return is pressed on the only single-line text field.
1180
1181         * Otherwise, submit form using first enabled submit button if Enter/Return is pressed on a field
1182           that's not a textarea or a select.
1183
1184         Test: fast/forms/implicit-submission.html
1185
1186         * dom/SelectElement.cpp:
1187         (WebCore::SelectElement::menuListDefaultEventHandler): Ripped out implicit submission for select elements.
1188         (WebCore::SelectElement::listBoxDefaultEventHandler): Ditto.
1189         (WebCore::SelectElement::defaultEventHandler): Ditto.
1190         * dom/SelectElement.h: Ditto.
1191         (WebCore::HTMLFormElement::submitImplicitly): Renamed submitClick to submitImplicitly to better match HTML5 spec
1192             language, changed the logic to match the rules above.
1193         * html/HTMLInputElement.cpp:
1194         (WebCore::HTMLInputElement::defaultEventHandler): Reamed clickDefaultButton to implicitSubmission to better match
1195             HTML5 spec language, made radio element to trigger implicit submission.
1196         * html/HTMLSelectElement.cpp:
1197         (WebCore::HTMLSelectElement::defaultEventHandler): Removed passing of form() as parameter, because it's no longer
1198             necessary.
1199
1200 2010-04-29  Paweł Hajdan, Jr.  <phajdan.jr@chromium.org>
1201
1202         Reviewed by Jeremy Orlow.
1203
1204         Fix building with libpng-1.4.
1205         https://bugs.webkit.org/show_bug.cgi?id=33287
1206
1207         No new tests (no behavior change).
1208
1209         Original patch by John Bowler <jbowler@acm.org>
1210
1211         * platform/image-encoders/skia/PNGImageEncoder.cpp:
1212         (WebCore::PNGImageEncoder::encode):
1213
1214 2010-04-29  Adam Langley  <agl@chromium.org>
1215
1216         Reviewed by David Levin.
1217
1218         This patch adds support for WOFF in Chromium. Since Chromium
1219         already transcodes all OpenType files for security reasons we
1220         are adding WOFF support into the transcoder.
1221
1222         https://bugs.webkit.org/show_bug.cgi?id=38217
1223
1224         * css/CSSFontFaceSrcValue.cpp:
1225         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
1226           Recognise "woff" as a font-face format value (guarded by
1227           ENABLE(OPENTYPE_SANITIZER) at this point)
1228         * platform/graphics/opentype/OpenTypeSanitizer.cpp:
1229         (WebCore::OpenTypeSanitizer::sanitize):
1230           Change so that the transcoded font can be larger than the original.
1231           (WOFF files are compressed, so the transcoded TTF is typically
1232           larger.)
1233
1234 2010-04-29  Alex Milowski  <alex@milowski.com>
1235
1236         Reviewed by Kenneth Rohde Christiansen.
1237
1238         Updates to the Qt build to enable building MathML support.
1239
1240         * WebCore.pri:
1241         * WebCore.pro:
1242
1243 2010-04-29  Xan Lopez  <xlopez@igalia.com>
1244
1245         Reviewed by Gustavo Noronha.
1246
1247         [GTK] GObject DOM bindings
1248         https://bugs.webkit.org/show_bug.cgi?id=33590
1249
1250         Do not generate unneeded boilerplate in {get,set}_property methods
1251         when there are no properties to generate code for. This gets rid
1252         of lots of compiler warnings.
1253
1254         * bindings/scripts/CodeGeneratorGObject.pm:
1255
1256 2010-04-29  Simon Hausmann  <simon.hausmann@nokia.com>
1257
1258         Reviewed by Kenneth Rohde Christiansen.
1259
1260         [Qt] Speed up text layouting
1261         https://bugs.webkit.org/show_bug.cgi?id=31719
1262
1263         Use QFontMetrics::width() for the text width calculation instead
1264         of QTextLayout. This avoids expensive bearing calculations and the
1265         line breaking code.
1266
1267         * platform/graphics/qt/FontQt.cpp:
1268         (WebCore::Font::floatWidthForComplexText):
1269
1270 2010-04-29  Kwang Yul Seo  <skyul@company100.net>
1271
1272         Reviewed by Simon Hausmann.
1273
1274         [WINCE] Export g_stackBase with JS_EXPORTDATA
1275         https://bugs.webkit.org/show_bug.cgi?id=37437
1276
1277         Declare g_stackBase with JS_EXPORTDATA as it is imported from JavaScriptCore.
1278
1279         * platform/wince/SharedTimerWince.cpp:
1280
1281 2010-04-29  Adam Barth  <abarth@webkit.org>
1282
1283         Reviewed by Maciej Stachowiak.
1284
1285         Remove custom bindings for PopStateEvent.initPopStateEvent
1286         https://bugs.webkit.org/show_bug.cgi?id=38311
1287
1288         Our code generation of SerializedScriptValue was slightly buggy, but
1289         it's easy to fix.  Notice that the conversion to an atomic string is
1290         handled by the C++ type system and doesn't require logic in the code
1291         generator.
1292
1293         * bindings/js/JSPopStateEventCustom.cpp:
1294         * bindings/scripts/CodeGeneratorJS.pm:
1295         * bindings/scripts/CodeGeneratorV8.pm:
1296         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1297         (webkit_dom_test_obj_serialized_value):
1298         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1299         * bindings/scripts/test/JS/JSTestObj.cpp:
1300         (WebCore::):
1301         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
1302         * bindings/scripts/test/JS/JSTestObj.h:
1303         * bindings/scripts/test/ObjC/DOMTestObj.h:
1304         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1305         (-[DOMTestObj serializedValue:]):
1306         * bindings/scripts/test/TestObj.idl:
1307         * bindings/scripts/test/V8/V8TestObj.cpp:
1308         (WebCore::TestObjInternal::serializedValueCallback):
1309         (WebCore::ConfigureV8TestObjTemplate):
1310         * bindings/v8/custom/V8PopStateEventCustom.cpp:
1311         * dom/PopStateEvent.idl:
1312
1313 2010-04-29  Kent Tamura  <tkent@chromium.org>
1314
1315         Reviewed by Darin Adler.
1316
1317         Fix a bug that selection drag-and-drop doesn't work for input/textarea.
1318         https://bugs.webkit.org/show_bug.cgi?id=38175
1319
1320         The code supposed the selected region was in the destination text
1321         field. It is not true in a case of drag-and-drop.
1322
1323         Test: editing/pasteboard/drag-drop-input-textarea.html
1324
1325         * dom/InputElement.cpp:
1326         (WebCore::InputElement::handleBeforeTextInsertedEvent):
1327         * html/HTMLTextAreaElement.cpp:
1328         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
1329
1330 2010-04-29  Adam Barth  <abarth@webkit.org>
1331
1332         Reviewed by Maciej Stachowiak.
1333
1334         Remove custom bindings for NodeFilter.acceptNode
1335         https://bugs.webkit.org/show_bug.cgi?id=38309
1336
1337         This "custom" code was just an instance of the CallWith=ScriptState
1338         pattern.  Also, it looks like V8 just had a garbage implemenation that
1339         did nothing.
1340
1341         * WebCore.gypi:
1342         * bindings/js/JSNodeFilterCustom.cpp:
1343         * bindings/v8/custom/V8NodeFilterCustom.cpp: Removed.
1344         * dom/NodeFilter.idl:
1345
1346 2010-04-29  Noam Rosenthal  <noam.rosenthal@nokia.com>
1347
1348         Reviewed by Laszlo Gombos.
1349
1350         [Qt] QtWebkit doesn't link with 3D canvas
1351         https://bugs.webkit.org/show_bug.cgi?id=38299
1352
1353         Added implementation for GraphicsContext3D::isGLES2Compliant, which returns the correct value based on a Qt #define.
1354
1355         No new tests: build fix
1356
1357         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1358         (WebCore::GraphicsContext3D::isGLES2Compliant):
1359
1360 2010-04-29  Simon Hausmann  <simon.hausmann@nokia.com>
1361
1362         Reviewed by Tor Arne Vestbø.
1363
1364         [Qt] REGRESSION(r57638): tst_qwebframe::objectDeleted() fails
1365         https://bugs.webkit.org/show_bug.cgi?id=38316
1366
1367         Accessing properties of a deleted objects doesn't throw an exception
1368         anymore.
1369
1370         Continue to expose the QObject class wrapper for objects that
1371         previously existed but don't exist anymore. QtClass is safe to
1372         use with a deleted QObject.
1373
1374         * bridge/qt/qt_instance.cpp:
1375         (JSC::Bindings::QtInstance::getClass): Return null only if m_class
1376         doesn't exist yet and there's no m_object.
1377
1378 2010-04-29  Noam Rosenthal  <noam.rosenthal@nokia.com>
1379
1380         Reviewed by Simon Hausmann.
1381
1382         Reverse animations don't work in some use cases        
1383         https://bugs.webkit.org/show_bug.cgi?id=38075
1384
1385         This was due to a code path special-casing reverse animations, that became obselete when we aligned our animation code
1386         with the CA implementation. That special case code path is now a bug - and this patch removes it.
1387
1388         http://staff.washington.edu/fmf/2009/03/25/iphone-3d-css-transformations/ now runs the reverse
1389         animation correctly.
1390
1391         * platform/graphics/qt/GraphicsLayerQt.cpp:
1392         (WebCore::TransformAnimationQt::applyFrame):
1393
1394 2010-04-29  Jan Hanssen  <jhanssen@codeaurora.org>
1395
1396         Reviewed by Adam Barth.
1397
1398         HTMLOptionElement::ownerSelectElement() needs to consider keygen elements
1399         https://bugs.webkit.org/show_bug.cgi?id=26016
1400
1401         Patch written by Grace Kloba <klobag@gmail.com>, test fixed by me.
1402
1403         Test: fast/dom/HTMLKeygenElement/keygen-option-select.html
1404
1405         * html/HTMLOptionElement.cpp:
1406         (WebCore::HTMLOptionElement::ownerSelectElement):
1407         Make HTMLOptionElement::ownerSelectElement() consider the keygen element in addition to the current select element.
1408
1409 2010-04-29  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>
1410
1411         Reviewed by Eric Seidel.
1412
1413         Add EFL-specific code to Widget.h and move the empty
1414         frameRectsChanged() definition to Widget.cpp, since the EFL port
1415         needs to override that.
1416         http://webkit.org/b/36317
1417
1418         No new tests required.
1419
1420         * WebCore.base.exp:
1421         * platform/Widget.cpp:
1422         (WebCore::Widget::frameRectsChanged):
1423         * platform/Widget.h:
1424
1425 2010-04-29  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
1426
1427         Reviewed by Simon Hausmann.
1428
1429         [Qt] GraphicsContext3DQt.cpp does not implement isGLES2Compliant() 
1430         https://bugs.webkit.org/show_bug.cgi?id=38216
1431
1432         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1433         (WebCore::GraphicsContext3D::isGLES2Compliant):
1434
1435 2010-04-29  Zhenyao Mo  <zmo@google.com>
1436
1437         Reviewed by Dimitri Glazkov.
1438
1439         Remove the unnecessary texImage2D function with Image as input in GraphicsContext3D
1440         https://bugs.webkit.org/show_bug.cgi?id=38235
1441
1442         * html/canvas/WebGLRenderingContext.cpp:
1443         (WebCore::WebGLRenderingContext::texImage2D): Add extractImageData; add a common entry point for texImage2D with image input.
1444         (WebCore::WebGLRenderingContext::texImage2DBase): Add this function as the common entry point for texImage2D.
1445         (WebCore::WebGLRenderingContext::texSubImage2D): Add extractImageData; add a common entry point for texSubImage2D with image input.
1446         (WebCore::WebGLRenderingContext::texSubImage2DBase): Add this function as the common entry point for texSubImage2D.
1447         * html/canvas/WebGLRenderingContext.h: Add tex*Image{Base/Image} function declaration.
1448         * platform/graphics/GraphicsContext3D.h: Remove tex*Image declaration with Image input.
1449         * platform/graphics/mac/GraphicsContext3DMac.cpp: Remove tex*Image implementation with Image input.
1450         (WebCore::GraphicsContext3D::texImage2D):
1451         (WebCore::GraphicsContext3D::texSubImage2D):
1452
1453 2010-04-29  Noam Rosenthal  <noam.rosenthal@nokia.com>
1454
1455         Reviewed by Simon Hausmann.
1456
1457         [Qt] GraphicsLayer: flicker when starting an animation before the previous one ended.
1458         https://bugs.webkit.org/show_bug.cgi?id=38076
1459
1460         This was due to the cude in the removeAnimations functions, which called deleteLater() without stopping the
1461         animation synchronously. The delay between the call to that function and the actual call to the animation's destructor
1462         is when the flicker occured. We fix this by calling stop() synchronously, and making sure that the value is reverted
1463         upon stop (updateState) and not upon the object's destruction.
1464
1465         http://staff.washington.edu/fmf/2009/03/25/iphone-3d-css-transformations/ now doesn't flicker when
1466         the animation is toggled frequently.
1467
1468         * platform/graphics/qt/GraphicsLayerQt.cpp:
1469         (WebCore::TransformAnimationQt::~TransformAnimationQt):
1470         (WebCore::TransformAnimationQt::applyFrame):
1471         (WebCore::TransformAnimationQt::updateState):
1472         (WebCore::OpacityAnimationQt::~OpacityAnimationQt):
1473         (WebCore::OpacityAnimationQt::updateState):
1474         (WebCore::GraphicsLayerQt::removeAnimationsForProperty):
1475         (WebCore::GraphicsLayerQt::removeAnimationsForKeyframes):
1476
1477 2010-04-28  Luiz Agostini  <luiz.agostini@openbossa.org>
1478
1479         Reviewed by Simon Fraser.
1480
1481         Media queries empty values
1482         https://bugs.webkit.org/show_bug.cgi?id=38116
1483
1484         Adding isValid() method to MediaQueryExp to make it possible to differentiate
1485         between queries with empty values and queries with invalid values.
1486
1487         Test: fast/media/media-query-invalid-value.html
1488
1489         * css/MediaQueryEvaluator.cpp:
1490         (WebCore::MediaQueryEvaluator::eval):
1491         * css/MediaQueryExp.cpp:
1492         (WebCore::MediaQueryExp::MediaQueryExp):
1493         * css/MediaQueryExp.h:
1494         (WebCore::MediaQueryExp::isValid):
1495
1496 2010-04-28  Pavel Feldman  <pfeldman@chromium.org>
1497
1498         Reviewed by Yury Semikhatsky.
1499
1500         Web Inspector: Allow editing script resources when resource tracking is enabled.
1501
1502         https://bugs.webkit.org/show_bug.cgi?id=38269
1503
1504         * inspector/front-end/ScriptView.js:
1505         * inspector/front-end/ScriptsPanel.js:
1506         (WebInspector.ScriptsPanel.prototype.canEditScripts):
1507         (WebInspector.ScriptsPanel.prototype.editScriptSource):
1508         * inspector/front-end/SourceFrame.js:
1509         (WebInspector.SourceFrame.prototype.get textModel):
1510         * inspector/front-end/SourceView.js:
1511         (WebInspector.SourceView):
1512         (WebInspector.SourceView.prototype._addBreakpoint):
1513         (WebInspector.SourceView.prototype._editLine):
1514         (WebInspector.SourceView.prototype._editLineComplete):
1515         (WebInspector.SourceView.prototype._sourceIDForLine):
1516
1517 2010-04-25  Antonio Gomes  <tonikitoo@webkit.org>
1518
1519         Reviewed by Darin Adler.
1520
1521         Clicking a scrollbar blurs the currently focused element
1522         https://bugs.webkit.org/show_bug.cgi?id=16809
1523
1524         WebKit ports that do not use native (platform) widgets for rendering the scrollbars
1525         are currently mismatching a common behaviour of other browser vendors (including
1526         Firefox and Opera): clicking on a frame scrollbar *should not* steal focus from content.
1527         WebKit browsers based ports that do use WebCore for handling scrollbars, like QtWebKit for
1528         instance, can observe the opposite behaviour.
1529
1530         Patch fixes this behaviour by checking if current MouseDown event targets a frame scrollbar.
1531         If that is the case, it bails out and do not change focus behavior at all.
1532
1533         It is important to note that the given way this is implemented by this patch, non-frame
1534         scrollbars (e.g. a vertical scrollbar of an overflowed textareas or divs) will keep working
1535         in the same way as it works currently.
1536
1537         Tests: scrollbars/scrollbar-click-does-not-blur-content.html
1538                scrollbars/scrollbar-iframe-click-does-not-blur-content.html
1539
1540         * page/EventHandler.cpp:
1541         (WebCore::EventHandler::dispatchMouseEvent):
1542
1543 2010-04-28  Dan Bernstein  <mitz@apple.com>
1544
1545         Rubber-stamped by Maciej Stachowiak.
1546
1547         Try to fix test failures seen on the Leopard build bot after r58467
1548
1549         * platform/graphics/SimpleFontData.cpp:
1550         (WebCore::SimpleFontData::platformGlyphInit): Initialize m_zeroWidthSpaceGlyph before
1551         calling widthForGlyph(), as the latter uses the former.
1552
1553 2010-04-28  Martin Robinson  <mrobinson@webkit.org>
1554
1555         Reviewed by Gustavo Noronha.
1556
1557         [GTK] Enable DOM clipboard and drag-and-drop access
1558         https://bugs.webkit.org/show_bug.cgi?id=30623
1559
1560         Make ClipboardGtk a "live" DataTransfer object, able to modify
1561         the clipboard when setData(...) is called.
1562
1563         * platform/gtk/ClipboardGtk.cpp:
1564         (WebCore::Editor::newGeneralClipboard): Pass the GtkClipboard into the factory method.
1565         (WebCore::ClipboardGtk::ClipboardGtk): Create two separate constructors, one for DnD data and one for clipboard data.
1566         (WebCore::dataObjectTypeFromHTMLClipboardType): Added.
1567         (WebCore::ClipboardGtk::clearData): Clear the member DataObject, optionally write the clipboard.
1568         (WebCore::ClipboardGtk::clearAllData): Ditto.
1569         (WebCore::joinURIList): Added.
1570         (WebCore::ClipboardGtk::getData): Get the data from the clipboard, if possible.
1571         (WebCore::ClipboardGtk::setData): Write data to the DataObject and maybe the clipboard.
1572         (WebCore::ClipboardGtk::types): Read the clipboard/DataObject to find applicable types.
1573         (WebCore::ClipboardGtk::files): Read the clipboard/DataObject to find the files.
1574         (WebCore::ClipboardGtk::writeURL): Write to the DataObject and maybe the clipboard.
1575         (WebCore::ClipboardGtk::writeRange): Ditto.
1576         (WebCore::ClipboardGtk::writePlainText): Ditto.
1577         (WebCore::ClipboardGtk::hasData): Query the clipboard/DataObject.
1578         * platform/gtk/ClipboardGtk.h: 
1579         (WebCore::ClipboardGtk::create): Added one factory for pasteboard-backed DataObjects and one for DnD-backed objects.
1580         * platform/gtk/DataObjectGtk.cpp:
1581         (WebCore::replaceNonBreakingSpaceWithSpace): Added this helper function to clean &nbsp; from plain text.
1582         (WebCore::DataObjectGtk::markup): Actually return the range if it's set.
1583         (WebCore::DataObjectGtk::setText): Clean &nbsp; from plain text.
1584         (WebCore::DataObjectGtk::clearText): Added.
1585         (WebCore::DataObjectGtk::clearMarkup): Added.
1586         * platform/gtk/DataObjectGtk.h:
1587         (WebCore::DataObjectGtk::clearURIList): Added.
1588         (WebCore::DataObjectGtk::clearImage): Added.
1589         * platform/gtk/PasteboardHelper.cpp:
1590         (WebCore::PasteboardHelper::initializeTargetList): Added target ID's for URI list and Netscape URL targets.
1591         (WebCore::urisToKURLVector): Added.
1592         (WebCore::PasteboardHelper::getClipboardContents): Added.
1593         (WebCore::PasteboardHelper::fillSelectionData): Added logic for URI lists and Netscape URLs.
1594         (WebCore::PasteboardHelper::targetListForDataObject): Ditto.
1595         * platform/gtk/PasteboardHelper.h: Added default argument to writeClipboardContents and new method.
1596
1597 2010-04-28  Martin Robinson  <mrobinson@webkit.org>
1598
1599         Reviewed by Gustavo Noronha.
1600
1601         [GTK] Enable DOM clipboard and drag-and-drop access
1602         https://bugs.webkit.org/show_bug.cgi?id=30623
1603
1604         Use the length of the UTF-8 markup data in bytes when filling GtkSelectionData.
1605
1606         No new tests, because pasteboard DataTransfer tests will be enabled
1607         with the completion of the GTK+ DataTransfer object.
1608
1609         * platform/gtk/PasteboardGtk.cpp:
1610         (WebCore::clipboard_get_contents_cb): Use strlen here instead of g_utf8_strlen.
1611
1612 2010-04-28  Dan Bernstein  <mitz@apple.com>
1613
1614         Reviewed by Adele Peterson.
1615
1616         More of <rdar://problem/7855777> REGRESSION: Memory usage increase caused by storing glyph bounds in GlyphMetricsMap
1617         https://bugs.webkit.org/show_bug.cgi?id=37936
1618
1619         Assigning zero width and empty bounds to the ZERO WIDTH SPACE glyph often allocates a width map
1620         page and a bounds map page for the glyph, each of which pages contains 255 unused entries. Save
1621         this space by not storing the zero width and empty bounds in the metrics maps.
1622
1623         * platform/graphics/SimpleFontData.cpp:
1624         (WebCore::SimpleFontData::SimpleFontData): Initialize m_zeroWidthSpaceGlyph.
1625         (WebCore::SimpleFontData::platformGlyphInit): Set m_zeroWidthSpaceGlyph. Don’t create entries
1626         for the ZERO WIDTH SPACE glyph in the width map and in the bounds map.
1627         * platform/graphics/SimpleFontData.h:
1628         (WebCore::SimpleFontData::boundsForGlyph): Return empty bounds for the ZERO WIDTH SPACE glyph
1629         without consulting the bounds map.
1630         (WebCore::SimpleFontData::widthForGlyph): Return zero for the ZERO WIDTH SPACE glyph without
1631         consulting the width map.
1632
1633 2010-04-28  Mark Rowe  <mrowe@apple.com>
1634
1635         Reviewed by Adele Peterson.
1636
1637         <rdar://problem/7847573> Safari welcome page logs JavaScript exception during page load
1638
1639         The Safari welcome page runs afoul of the same-origin restriction on access to stylesheet rules
1640         that was added to address <https://bugs.webkit.org/show_bug.cgi?id=20527>. To work around this we're
1641         adding a temporary site-specific quirk that relaxes this restriction for the particular cross-origin
1642         access that occurs on the Safari welcome page.
1643
1644         * css/CSSStyleSheet.cpp:
1645         (WebCore::CSSStyleSheet::cssRules):
1646
1647 2010-04-28  Mike Thole  <mthole@apple.com>
1648
1649         Reviewed by Mark Rowe.
1650
1651         Add separate exports file for symbols dependent on WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK.
1652
1653         * DerivedSources.make: Updated for WebCore.ProtectionSpaceAuthCallback.exp.
1654         * WebCore.ProtectionSpaceAuthCallback.exp: Added.
1655         * WebCore.xcodeproj/project.pbxproj:
1656
1657 2010-04-28  Evan Martin  <evan@chromium.org>
1658
1659         Reviewed by David Levin.
1660
1661         [chromium] revert getFontDataForCharacters change in r58341
1662         https://bugs.webkit.org/show_bug.cgi?id=38288
1663
1664         It caused a performance regression.
1665
1666         * platform/chromium/ChromiumBridge.h:
1667         * platform/graphics/chromium/FontCacheLinux.cpp:
1668         (WebCore::FontCache::getFontDataForCharacters):
1669
1670 2010-04-28  Eric Seidel  <eric@webkit.org>
1671
1672         Unreviewed, rolling out r58441.
1673         http://trac.webkit.org/changeset/58441
1674         https://bugs.webkit.org/show_bug.cgi?id=37618
1675
1676         Broke 3 test on Qt.
1677
1678         * page/DragController.cpp:
1679         (WebCore::DragController::tryDocumentDrag):
1680         (WebCore::DragController::concludeEditDrag):
1681         * page/DragController.h:
1682         (WebCore::DragController::setDragInitiator):
1683         (WebCore::DragController::dragInitiator):
1684         (WebCore::DragController::documentUnderMouse):
1685
1686 2010-04-28  Darin Adler  <darin@apple.com>
1687
1688         Reviewed by Dan Bernstein.
1689
1690         Remove some obsolete scrolling code
1691         https://bugs.webkit.org/show_bug.cgi?id=38293
1692
1693         * page/Chrome.cpp:
1694         (WebCore::Chrome::scrollRectIntoView): Removed ScrollView* argument.
1695         * page/Chrome.h: Made scrollRectIntoView non-virtual, and removed ScrollView* argument.
1696
1697         * page/FrameView.cpp: Removed scrollRectIntoViewRecursively.
1698         * page/FrameView.h: Removed scrollRectIntoViewRecursively and made
1699         setScrollPosition non-virtual, since there is no class derived from
1700         this class, and ScrollView's setScrollPosition is non-virtual.
1701
1702         * platform/HostWindow.h: Removed scrollRectIntoView.
1703
1704         * platform/ScrollView.cpp:
1705         (WebCore::ScrollView::scrollRectIntoViewRecursively): Updated comment
1706         since I was able to do most of the tasks listed here.
1707
1708         * rendering/RenderLayer.cpp:
1709         (WebCore::RenderLayer::scrollRectToVisible): Removed 0 passed for
1710         ScrollView* argument to Chrome::scrollRectIntoView.
1711
1712 2010-04-28  Mike Thole  <mthole@apple.com>
1713
1714         Reviewed by David Kilzer.
1715
1716         Add canAuthenticateAgainstProtectionSpace() to frame loader so that a protection space 
1717         can be inspected before attempting to authenticate against it
1718         https://bugs.webkit.org/show_bug.cgi?id=38271
1719
1720         * loader/EmptyClients.h:
1721         (WebCore::EmptyFrameLoaderClient::canAuthenticateAgainstProtectionSpace): Added.
1722         * loader/FrameLoader.cpp:
1723         (WebCore::FrameLoader::canAuthenticateAgainstProtectionSpace): Added.
1724         * loader/FrameLoader.h:
1725         * loader/FrameLoaderClient.h:
1726         * loader/ResourceLoader.cpp:
1727         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace): Added.
1728         * loader/ResourceLoader.h:
1729         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace): Added.
1730         * platform/network/ProtectionSpace.h:
1731         (WebCore::):
1732         * platform/network/ResourceHandle.h:
1733         * platform/network/ResourceHandleClient.h:
1734         (WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpace): Added.
1735         * platform/network/mac/AuthenticationMac.mm:
1736         (WebCore::mac):
1737         Add cases for case ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested and
1738         ProtectionSpaceAuthenticationSchemeClientCertificateRequested.  Guarded with the
1739         #if USE(PROTECTION_SPACE_AUTH_CALLBACK) as the new NSURLProtectionSpace constants don't
1740         exist prior to Mac OS X 10.6.
1741         (WebCore::core): Ditto.
1742         * platform/network/mac/ResourceHandleMac.mm:
1743         (WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace): Added.
1744         (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]): Added.
1745
1746 2010-04-28  Abhishek Arya  <inferno@chromium.org>
1747
1748         Reviewed by Eric Seidel.
1749
1750         Convert m_documentUnderMouse, m_dragInitiator to RefPtr.
1751         Eliminated unused m_dragInitiator accessor to prevent dereferencing.
1752         https://bugs.webkit.org/show_bug.cgi?id=37618
1753
1754         Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html
1755
1756         * page/DragController.cpp:
1757         (WebCore::DragController::tryDocumentDrag):
1758         (WebCore::DragController::concludeEditDrag):
1759         * page/DragController.h:
1760         (WebCore::DragController::draggingImageURL):
1761         (WebCore::DragController::documentUnderMouse):
1762
1763 2010-04-28  Dumitru Daniliuc  <dumi@chromium.org>
1764
1765         Unreviewed, fixing a build problem introduced by the previous patch.
1766
1767         * storage/DatabaseSync.cpp:
1768         (WebCore::DatabaseSync::openDatabaseSync):
1769
1770 2010-04-23  Dumitru Daniliuc  <dumi@chromium.org>
1771
1772         Reviewed by Jeremy Orlow.
1773
1774         Adding some required classes for the sync WebSQLDatabases API.
1775         https://bugs.webkit.org/show_bug.cgi?id=34994
1776
1777         * GNUmakefile.am:
1778         * WebCore.gypi:
1779         * WebCore.pro:
1780         * WebCore.vcproj/WebCore.vcproj:
1781         * WebCore.xcodeproj/project.pbxproj:
1782         * storage/DatabaseSync.cpp: Added.
1783         (WebCore::DatabaseSync::databaseInfoTableName):
1784         (WebCore::DatabaseSync::setIsAvailable):
1785         (WebCore::DatabaseSync::isAvailable):
1786         (WebCore::DatabaseSync::openDatabaseSync):
1787         (WebCore::DatabaseSync::DatabaseSync):
1788         (WebCore::DatabaseSync::~DatabaseSync):
1789         (WebCore::DatabaseSync::version):
1790         (WebCore::DatabaseSync::changeVersion):
1791         (WebCore::DatabaseSync::transaction):
1792         * storage/DatabaseSync.h: Added.
1793         (WebCore::DatabaseSync::databaseDebugName):
1794         * storage/SQLTransactionSync.cpp: Added.
1795         (WebCore::SQLTransactionSync::create):
1796         (WebCore::SQLTransactionSync::SQLTransactionSync):
1797         (WebCore::SQLTransactionSync::~SQLTransactionSync):
1798         (WebCore::SQLTransactionSync::executeSQL):
1799         * storage/SQLTransactionSync.h: Added.
1800         (WebCore::SQLTransactionSync::database):
1801         (WebCore::SQLTransactionSync::isReadOnly):
1802         * storage/SQLTransactionSyncCallback.h: Added.
1803         (WebCore::SQLTransactionSyncCallback::~SQLTransactionSyncCallback):
1804
1805 2010-04-28  İsmail Dönmez  <ismail@namtrac.org>
1806
1807         Reviewed by Simon Hausmann.
1808
1809         Fix compilation with QT_NO_CURSOR defined.
1810
1811         * platform/qt/QWebPageClient.h:
1812         (QWebPageClient::resetCursor):
1813         (QWebPageClient::setCursor):
1814
1815 2010-04-28  Abhishek Arya  <inferno@chromium.org>
1816
1817         Reviewed by Alexey Proskuryakov.
1818
1819         Added a check to make sure that resources from a different https origin are not cached.
1820         https://bugs.webkit.org/show_bug.cgi?id=33456
1821
1822         Test: http/tests/appcache/different-https-origin-resource-main.html
1823
1824         * loader/appcache/ManifestParser.cpp:
1825         (WebCore::parseManifest):
1826
1827 2010-04-28  Sam Weinig  <sam@webkit.org>
1828
1829         Reviewed by Mark Rowe.
1830
1831         Only set -allowable_client WebKit2 for engineering builds on SnowLeopard
1832         and later.
1833
1834         * Configurations/WebCore.xcconfig:
1835
1836 2010-04-28  Darin Adler  <darin@apple.com>
1837
1838         Reviewed by Adele Peterson.
1839
1840         REGRESSION: Autoscroll does not work in Mail messages
1841         https://bugs.webkit.org/show_bug.cgi?id=38267
1842         rdar://problem/7559799
1843
1844         Still haven't figured out a good way to test this with DumpRenderTree
1845         or with Safari. Testing has to be done with Mail for now.
1846
1847         The machinery to make autoscrolling work on Mac OS X when a WebView is embedded in another
1848         view had gotten broken in multiple ways. For some reason, a combination of bugs made it
1849         partly work until around r48064. This brings it back.
1850
1851         There were three problems:
1852
1853             1) Code in EventHandler decided there was nothing to scroll, so didn't start
1854                the autoscroll timer.
1855             2) The wrong rectangle was passed to Chrome::scrollRectIntoView.
1856             3) The Mac WebKit implementation of ChromeClient::scrollRectIntoView did incorrect
1857                coordinate conversion.
1858
1859         I verified that none of these have any effect on regression tests, or behavior in
1860         web browsers, or behavior on platforms other than Mac.
1861
1862         * page/EventHandler.cpp:
1863         (WebCore::canAutoscroll): Added. Returns true for boxes that can scroll directly
1864         and for the top level box of the top frame.
1865         (WebCore::EventHandler::handleMouseDraggedEvent): Use canAutoscroll.
1866         (WebCore::EventHandler::updateAutoscrollRenderer): Ditto.
1867
1868         * page/FrameView.cpp:
1869         (WebCore::FrameView::scrollToAnchor): Fixed comment.
1870
1871         * platform/ScrollView.cpp:
1872         (WebCore::ScrollView::scrollRectIntoViewRecursively): Put ASSERT_NOT_REACHED into this
1873         now-unused function along with some comments about removing some obsolete code.
1874
1875         * rendering/RenderLayer.cpp:
1876         (WebCore::RenderLayer::scrollRectToVisible): Removed call to scrollRectIntoViewRecursively
1877         since from the WebKit point of view this is the topmost scroll view anyway. Instead call
1878         setScrollPosition. Moved the code to call Chrome::scrollRectIntoView here since it needs
1879         to use a different rectangle anyway.
1880
1881 2010-04-21  Ojan Vafai  <ojan@chromium.org>
1882
1883         Reviewed by Adele Peterson.
1884
1885         http://trac.webkit.org/changeset/57215 caused perf/memory regressions
1886         https://bugs.webkit.org/show_bug.cgi?id=37292
1887
1888         #if out the canUseGlyphCache Changes from r57215 as they caused a 
1889         8% perf regression on Chromium's international page load tests so that
1890         the perf regression can be fixed properly without being left in the tree.
1891
1892         * platform/graphics/FontFastPath.cpp:
1893         (WebCore::Font::canUseGlyphCache):
1894
1895 2010-04-28  Beth Dakin  <bdakin@apple.com>
1896
1897         Reviewed by Darin Adler.
1898
1899         Fix for <rdar://problem/7474349>
1900
1901         Add a synchronous display mechanism for WKCACFLayerRenderer. 
1902
1903         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1904         (WebCore::WKCACFLayerRenderer::setRootContentsAndDisplay): This is 
1905         just like setRootContents(), but it calls paint() instead of 
1906         renderSoon().
1907         * platform/graphics/win/WKCACFLayerRenderer.h:
1908
1909 2010-04-28  Dmitry Titov  <dimich@chromium.org>
1910
1911         Reviewed by Geoffrey Garen.
1912
1913         REGRESSION: fast/workers/wrapper-map-gc.html crashes on Snow Leopard Release Bot
1914         https://bugs.webkit.org/show_bug.cgi?id=37554
1915
1916         The flaky fast/workers/wrapper-map-gc.html will stop being flaky.
1917
1918         * bindings/js/JSEventListener.cpp:
1919         (WebCore::JSEventListener::handleEvent):
1920         check if JS execution was terminated, as in cases of Worker.terminate() or WorkerGlobalScope.close().
1921         * bindings/js/JSWorkerContextBase.cpp:
1922         (WebCore::toJS): ASSERT the value of workerContextWrapper, it should never be 0.
1923         * bindings/js/WorkerScriptController.h:
1924         (WebCore::WorkerScriptController::workerContextWrapper): remove returning 0 if JS execution was forbidden.
1925         (WebCore::WorkerScriptController::isExecutionForbidden):
1926         * bindings/v8/WorkerScriptController.h:
1927         (WebCore::WorkerScriptController::isExecutionForbidden):
1928
1929         Add ScriptExecutionContext::isJSExecutionTerminated(), it is always 'false' for Document
1930         and 'true' for WorkerContext when script is terminated.
1931         * dom/ScriptExecutionContext.h:
1932         * dom/Document.h:
1933         (WebCore::Document::isJSExecutionTerminated):
1934         * workers/WorkerContext.cpp:
1935         (WebCore::WorkerContext::isJSExecutionTerminated):
1936         * workers/WorkerContext.h:
1937
1938 2010-04-28  Ilya Tikhonovsky  <loislo@chromium.org>
1939
1940         Reviewed by Yury Semikhatsky.
1941
1942         WebInspector: Multiple Main Resource Content Loaded marks appear in Resource panel.
1943         https://bugs.webkit.org/show_bug.cgi?id=38270
1944
1945         * inspector/front-end/ResourcesPanel.js:
1946         (WebInspector.ResourcesPanel.prototype.updateGraphDividersIfNeeded):
1947
1948 2010-04-28  Ilya Tikhonovsky  <loislo@chromium.org>
1949
1950         Reviewed by Yury Semikhatsky.
1951
1952         WebInspector: Timeline: We can have precise urls in the EvaluateScript records.
1953         https://bugs.webkit.org/show_bug.cgi?id=38264
1954
1955         * inspector/front-end/TimelinePanel.js:
1956         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
1957         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
1958
1959 2010-04-28  Pavel Feldman  <pfeldman@chromium.org>
1960
1961         Reviewed by Timothy Hatcher.
1962
1963         Web Inspector: Linkify node and function in the event listeners panel.
1964
1965         https://bugs.webkit.org/show_bug.cgi?id=38251
1966
1967         * bindings/js/ScriptEventListener.cpp:
1968         (WebCore::eventListenerHandlerBody):
1969         (WebCore::eventListenerHandlerLocation):
1970         * bindings/js/ScriptEventListener.h:
1971         * bindings/v8/ScriptEventListener.cpp:
1972         (WebCore::eventListenerHandlerBody):
1973         (WebCore::eventListenerHandlerLocation):
1974         * bindings/v8/ScriptEventListener.h:
1975         * inspector/InspectorDOMAgent.cpp:
1976         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
1977         * inspector/front-end/ElementsPanel.js:
1978         (WebInspector.ElementsPanel.prototype.linkifyNodeReference):
1979         (WebInspector.ElementsPanel.prototype.linkifyNodeReference.preventDefault):
1980         * inspector/front-end/EventListenersSidebarPane.js:
1981         (WebInspector.EventListenersSidebarPane.prototype.update.callback):
1982         (WebInspector.EventListenersSidebarPane.prototype.update):
1983         ():
1984         * inspector/front-end/StylesSidebarPane.js:
1985         (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
1986         * inspector/front-end/inspector.css:
1987         (.node-link):
1988
1989 2010-04-28  Julien Chaffraix  <jchaffraix@webkit.org>
1990
1991         Reviewed by Alexey Proskuryakov.
1992
1993         [XHR] Cross-Origin synchronous request with credential raises NETWORK_ERR
1994         https://bugs.webkit.org/show_bug.cgi?id=37781
1995         <rdar://problem/7905150>
1996
1997         Tests: http/tests/xmlhttprequest/access-control-preflight-credential-async.html
1998                http/tests/xmlhttprequest/access-control-preflight-credential-sync.html
1999
2000         Rolling the patch in as I could not reproduce Qt results locally.
2001
2002         * loader/DocumentThreadableLoader.cpp:
2003         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Now we remove the
2004         credential from the request here to avoid forgetting to do so in the different code path.
2005         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Just add the
2006         "Origin" header.
2007         (WebCore::DocumentThreadableLoader::loadRequest): Check here the the credential have
2008         been removed so that we don't leak them. Also tweaked a comment to make it clear that
2009         the URL check has issue when credential is involved.
2010
2011 2010-04-28  Noam Rosenthal  <noam.rosenthal@nokia.com>
2012
2013         Reviewed by Kenneth Rohde Christiansen.
2014
2015         [Qt] GraphicsLayer: preserves-3d and backface visibility
2016         https://bugs.webkit.org/show_bug.cgi?id=35312
2017
2018         Implement preserves-3d by maintaining the 3D transformation heirarchy inside GraphicsLayerQt, and extrapolating
2019         the relative QTransform. When the extrapolation fails (un-invertible matrix) we ignore the transformation change.
2020
2021         WebKitSite/blog-files/3d-transforms test now work with Qt.
2022
2023         * platform/graphics/qt/GraphicsLayerQt.cpp:
2024         (WebCore::GraphicsLayerQtImpl::updateTransform):
2025         (WebCore::GraphicsLayerQtImpl::opaqueArea):
2026         (WebCore::GraphicsLayerQtImpl::boundingRect):
2027         (WebCore::GraphicsLayerQtImpl::paint):
2028         (WebCore::GraphicsLayerQtImpl::flushChanges):
2029
2030 2010-04-28  Ilya Tikhonovsky  <loislo@chromium.org>
2031
2032         Reviewed by Yury Semikhatsky.
2033
2034         Web Inspector: View frame selector for Timeline overview panel is redesigned a bit.
2035         Now it is possible to adjust view frame by resizer bars and by click-n-drag in overview pane.
2036         https://bugs.webkit.org/show_bug.cgi?id=38251
2037
2038         * inspector/front-end/TimelineOverviewPane.js:
2039         (WebInspector.TimelineOverviewPane):
2040         (WebInspector.TimelineOverviewPane.prototype.reset):
2041         (WebInspector.TimelineOverviewPane.prototype._dragWindow):
2042         (WebInspector.TimelineOverviewPane.prototype._windowSelectorDragging):
2043         (WebInspector.TimelineOverviewPane.prototype._endWindowSelectorDragging):
2044         (WebInspector.TimelineOverviewPane.prototype._resizeWindowLeft):
2045         (WebInspector.TimelineOverviewPane.prototype._resizeWindowRight):
2046         (WebInspector.TimelineOverviewPane.prototype._setWindowPosition):
2047         (WebInspector.TimelinePanel.WindowSelector):
2048         (WebInspector.TimelinePanel.WindowSelector.prototype._createSelectorElement):
2049         (WebInspector.TimelinePanel.WindowSelector.prototype._close):
2050         (WebInspector.TimelinePanel.WindowSelector.prototype._updatePosition):
2051         * inspector/front-end/inspector.css:
2052         (#timeline-overview-grid):
2053         (.timeline-window-selector):
2054         (#timeline-overview-window):
2055         (.timeline-overview-dividers-background):
2056         (.timeline-overview-window-rulers):
2057         (.timeline-window-resizer):
2058
2059 2010-04-28  Marcus Bulach  <bulach@chromium.org>
2060
2061         Reviewed by Jeremy Orlow.
2062
2063         Reverts 58340 (https://bugs.webkit.org/show_bug.cgi?id=38158) due to regression on fast/text/international/khmer-selection.html
2064         https://bugs.webkit.org/show_bug.cgi?id=38254
2065
2066         * platform/graphics/chromium/FontLinux.cpp:
2067         (WebCore::adjustTextRenderMode):
2068         (WebCore::TextRunWalker::getTextRun):
2069         (WebCore::TextRunWalker::getNormalizedTextRun):
2070         (WebCore::TextRunWalker::setGlyphXPositions):
2071         (WebCore::glyphIndexForXPositionInScriptRun):
2072         (WebCore::Font::offsetForPositionForComplexText):
2073         (WebCore::Font::selectionRectForComplexText):
2074         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2075         (WebCore::FontPlatformData::setupPaint):
2076         * platform/graphics/chromium/HarfbuzzSkia.cpp:
2077         (WebCore::getOutlinePoint):
2078         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2079         (WebCore::GraphicsContext3D::getImageData):
2080         * platform/graphics/skia/GraphicsContextSkia.cpp:
2081         (WebCore::isCoordinateSkiaSafe):
2082         (WebCore::GraphicsContext::fillRect):
2083         (WebCore::GraphicsContext::strokePath):
2084         (WebCore::GraphicsContext::strokeRect):
2085
2086 2010-04-28  Andrey Kosyakov  <caseq@chromium.org>
2087
2088         Reviewed by Yury Semikhatsky.
2089
2090         Log error message to inspector console if a resource fails to load.
2091         Disable checking of mime-type consistency for failed resources.
2092         https://bugs.webkit.org/show_bug.cgi?id=37215
2093
2094         Test: http/tests/inspector/console-resource-errors.html
2095
2096         * inspector/InspectorController.cpp:
2097         (WebCore::InspectorController::didReceiveResponse):
2098         (WebCore::InspectorController::didFailLoading):
2099         * inspector/front-end/Resource.js:
2100         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2101         * inspector/front-end/ResourcesPanel.js:
2102         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
2103
2104 2010-04-28  Yury Semikhatsky  <yurys@chromium.org>
2105
2106         Reviewed by Pavel Feldman.
2107
2108         Support pause on exceptions in v8 implementation of ScriptDebugServer.
2109
2110         https://bugs.webkit.org/show_bug.cgi?id=38205        
2111
2112         * bindings/v8/ScriptDebugServer.cpp:
2113         (WebCore::ScriptDebugServer::addListener):
2114         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
2115         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
2116         (WebCore::ScriptDebugServer::currentCallFrame):
2117         (WebCore::ScriptDebugServer::handleV8DebugMessage):
2118         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2119         * bindings/v8/ScriptDebugServer.h:
2120
2121 2010-04-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2122
2123         Unreviewed, rolling out r58313.
2124         http://trac.webkit.org/changeset/58313
2125         https://bugs.webkit.org/show_bug.cgi?id=38253
2126
2127         Regression evident in pixel tests: the search icon is always
2128         clipped at the bottom. (Requested by jorlow on #webkit).
2129
2130         * rendering/RenderTextControl.cpp:
2131         (WebCore::RenderTextControl::controlClipRect):
2132         * rendering/RenderTextControl.h:
2133         (WebCore::RenderTextControl::hasControlClip):
2134         * rendering/RenderTextControlSingleLine.cpp:
2135         (WebCore::RenderTextControlSingleLine::paint):
2136         * rendering/RenderTextControlSingleLine.h:
2137
2138 2010-04-28  Justin McPherson <justin.mcpherson@nokia.com>
2139
2140         Reviewed by Simon Hausmann.
2141
2142         [Qt] Fix detection of Qt 4.7's multimedia libraries
2143
2144         QtMultimedia has been split into an additional media services library, which
2145         we're using. mediaservices depends on multimedia.
2146
2147         * WebCore.pro:
2148
2149 2010-04-28  Shinichiro Hamaji  <hamaji@chromium.org>
2150
2151         Unreviewed attempt to fix the chromium build.
2152
2153         Add layoutTestController.setPrinting()
2154         https://bugs.webkit.org/show_bug.cgi?id=37203
2155
2156         * rendering/RenderTreeAsText.cpp:
2157
2158 2010-04-27  Shinichiro Hamaji  <hamaji@chromium.org>
2159
2160         Reviewed by Darin Adler and Eric Seidel.
2161
2162         Add layoutTestController.setPrinting()
2163         https://bugs.webkit.org/show_bug.cgi?id=37203
2164
2165         Added RenderAsTextPrintingMode as a behavior of externalRepresentation.
2166
2167         Now ~PrintContext() calls end() automatically.
2168
2169         * page/PrintContext.cpp:
2170         (WebCore::PrintContext::~PrintContext):
2171         * rendering/RenderTreeAsText.cpp:
2172         (WebCore::externalRepresentation):
2173         * rendering/RenderTreeAsText.h:
2174         (WebCore::):
2175
2176 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2177
2178         Reviewed by Eric Seidel.
2179
2180         Enhance CSS parser for Paged Media (Iteration 4)
2181         Implement page property parsing as specified at http://dev.w3.org/csswg/css3-page/#using-named-pages.
2182         https://bugs.webkit.org/show_bug.cgi?id=35853
2183
2184         * css/CSSParser.cpp:
2185         (WebCore::CSSParser::parseValue):
2186         (WebCore::CSSParser::parsePage):
2187         * css/CSSParser.h:
2188
2189 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2190
2191         Reviewed by Dimitri Glazkov.
2192
2193         Enhance CSS parser for Paged Media (Iteration 3)
2194         Implement size parameter parsing for Paged Media.
2195         https://bugs.webkit.org/show_bug.cgi?id=35851
2196
2197         I believe size property hasn't been used so far because (1) it hasn't been properly parsed and
2198         (2) a comment in CSSComputedStyleDeclaration::getPropertyCSSValue says so.
2199         Changing the way of parsing it should not cause any regressions -- no existing tests fail because of this change.
2200
2201         * css/CSSParser.cpp:
2202         (WebCore::CSSParser::parseValue):
2203         (WebCore::CSSParser::parseSize):
2204         (WebCore::CSSParser::parseSizeParameter):
2205         * css/CSSParser.h:
2206         (WebCore::CSSParser::):
2207         * css/CSSValueKeywords.in:
2208
2209 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2210
2211         Reviewed by Eric Seidel.
2212
2213         Enhance CSS parser for Paged Media (Iteration 2)
2214         Parse and hold paged media rules in CSSStyleSelector.
2215
2216         https://bugs.webkit.org/show_bug.cgi?id=35782
2217
2218         Test: printing/page-rule-css-text.html
2219
2220         * css/CSSGrammar.y:
2221         * css/CSSPageRule.cpp:
2222         (WebCore::CSSPageRule::CSSPageRule):
2223         (WebCore::CSSPageRule::selectorText):
2224         * css/CSSPageRule.h:
2225         (WebCore::CSSPageRule::create):
2226         (WebCore::CSSPageRule::isPageRule):
2227         * css/CSSParser.cpp:
2228         (WebCore::CSSParser::createPageRule):
2229         * css/CSSStyleRule.h:
2230         * css/CSSStyleSelector.cpp:
2231         (WebCore::CSSRuleSet::getPageRules):
2232         (WebCore::CSSRuleSet::CSSRuleSet):
2233         (WebCore::CSSRuleSet::~CSSRuleSet):
2234         (WebCore::CSSRuleSet::addPageRule):
2235         (WebCore::CSSRuleSet::addRulesFromSheet):
2236         * css/CSSStyleSelector.h:
2237         * css/StyleBase.h:
2238         (WebCore::StyleBase::isPageRule):
2239
2240 2010-04-27  Daniel Bates  <dbates@rim.com>
2241
2242         Reviewed by Oliver Hunt.
2243
2244         https://bugs.webkit.org/show_bug.cgi?id=37686
2245
2246         Fixes an issue where the canvas method strokeRect will stroke a
2247         rectangle whose dimensions are 0 when lineWidth > 1.
2248
2249         As per the definition of strokeRect in the HTML Canvas 2D Context
2250         spec. <http://www.w3.org/TR/2dcontext/#dom-context-2d-strokerect>,
2251         this method should have no effect when both the height and width
2252         are zero.
2253
2254         Tests: fast/canvas/canvas-clearRect.html
2255                fast/canvas/canvas-fillRect.html
2256
2257         * html/canvas/CanvasRenderingContext2D.cpp:
2258         (WebCore::validateRectForCanvas): Return false if height, width == 0.
2259
2260 2010-04-27  Adam Barth  <abarth@webkit.org>
2261
2262         Reviewed by Eric Seidel.
2263
2264         Remove obsolete custom bindings file
2265         https://bugs.webkit.org/show_bug.cgi?id=38223
2266
2267         We don't need these files anymore because they are empty.
2268
2269         * Android.jscbindings.mk:
2270         * GNUmakefile.am:
2271         * WebCore.pro:
2272         * WebCore.vcproj/WebCore.vcproj:
2273         * WebCore.xcodeproj/project.pbxproj:
2274         * bindings/js/JSAbstractWorkerCustom.cpp: Removed.
2275         * bindings/js/JSBindingsAllInOne.cpp:
2276         * bindings/js/JSDocumentFragmentCustom.cpp: Removed.
2277         * bindings/js/JSEventSourceCustom.cpp: Removed.
2278
2279 2010-04-27  Daniel Cheng  <dcheng@chromium.org>
2280
2281         Reviewed by Jian Li.
2282
2283         [Chromium] Filter out URLs with a file scheme from text/uri-list when dragging.
2284         https://bugs.webkit.org/show_bug.cgi?id=38227
2285
2286         Unfortunately, the simple fix of not populating the drag data with file URLs doesn't work
2287         since the default drop handling uses the drag data URL to navigate to dropped files/URLs.
2288         For now, we hack around the problem in the Chromium platform, but the proper long term
2289         solution is to change DragController::performDrag to check dragData::asFilenames().
2290
2291         No new tests.
2292
2293         * platform/chromium/ClipboardChromium.cpp:
2294         (WebCore::ClipboardChromium::getData):
2295         (WebCore::ClipboardChromium::types):
2296
2297 2010-04-27  Simon Fraser  <simon.fraser@apple.com>
2298
2299         Reviewed by the inimitable Dan Bernstein.
2300
2301         SVG as background image renders incorrectly after zooming
2302         https://bugs.webkit.org/show_bug.cgi?id=38215
2303         
2304         When doing a partial redraw of an SVGImage used as a CSS background
2305         image, we're limited to drawing the entire Frame, clipped to the dirty rect.
2306         Because of this, we need to fix up the CTM so that the origin is at the
2307         top left of the unclipped image, rather than the top left of the
2308         portion being redrawn.
2309
2310         Test: fast/images/svg-background-partial-redraw.html
2311
2312         * svg/graphics/SVGImage.cpp:
2313         (WebCore::SVGImage::draw):
2314
2315 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2316
2317         Reviewed by David Hyatt.
2318
2319         Retry of: Enhance CSS parser for Paged Media (Iteration 1)
2320
2321         In this change, the grammar is extended and skeletal methods for creating page rules and margin at-rules are defined.
2322         The contents of the methods should be implemented by other changes.
2323
2324         https://bugs.webkit.org/show_bug.cgi?id=35329
2325
2326         Test: fast/css/parsing-page-rule.html
2327
2328         * css/CSSGrammar.y:
2329         * css/CSSParser.cpp:
2330         (WebCore::CSSParser::CSSParser):
2331         (WebCore::CSSParser::clearProperties):
2332         (WebCore::CSSParser::createPageRule):
2333         (WebCore::CSSParser::createMarginAtRule):
2334         (WebCore::CSSParser::startDeclarationsForMarginBox):
2335         (WebCore::CSSParser::endDeclarationsForMarginBox):
2336         * css/CSSParser.h:
2337         * css/CSSSelector.cpp:
2338         (WebCore::CSSSelector::pseudoId):
2339         (WebCore::nameToPseudoTypeMap):
2340         (WebCore::CSSSelector::extractPseudoType):
2341         * css/CSSSelector.h:
2342         (WebCore::CSSSelector::):
2343         * css/tokenizer.flex:
2344
2345 2010-04-27  Julien Chaffraix  <jchaffraix@webkit.org>
2346
2347         Unreviewed, rolling out my changes as it rendered the Qt bot unreliable.
2348
2349         * loader/DocumentThreadableLoader.cpp:
2350         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
2351         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
2352         (WebCore::DocumentThreadableLoader::loadRequest):
2353
2354 2010-04-27  Julien Chaffraix  <jchaffraix@webkit.org>
2355
2356         Reviewed by Alexey Proskuryakov.
2357
2358         [XHR] Cross-Origin synchronous request with credential raises NETWORK_ERR
2359         https://bugs.webkit.org/show_bug.cgi?id=37781
2360         <rdar://problem/7905150>
2361
2362         Tests: http/tests/xmlhttprequest/access-control-preflight-credential-async.html
2363                http/tests/xmlhttprequest/access-control-preflight-credential-sync.html
2364
2365         * loader/DocumentThreadableLoader.cpp:
2366         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Now we remove the
2367         credential from the request here to avoid forgetting to do so in the different code path.
2368         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Just add the
2369         "Origin" header.
2370         (WebCore::DocumentThreadableLoader::loadRequest): Check here the the credential have
2371         been removed so that we don't leak them. Also tweaked a comment to make it clear that
2372         the URL check has issue when credential is involved.
2373
2374 2010-04-27  Sam Weinig  <sam@webkit.org>
2375
2376         Reviewed by Maciej Stachowiak.
2377
2378         Fix for https://bugs.webkit.org/show_bug.cgi?id=38238
2379         Allow both WebKit and WebKit2 to link to the same WebCore.framework
2380
2381         * Configurations/WebCore.xcconfig: Use -allowable_client WebKit2 to add
2382         WebKit2 to the list of frameworks that can link directly to WebCore. It
2383         is not necessary for it to be an umbrella since we don't need to reexport
2384         any symbols.
2385
2386 2010-04-27  Dumitru Daniliuc  <dumi@chromium.org>
2387
2388         Reviewed by David Levin.
2389
2390         Turn on AUTO_VACUUM = INCREMENTAL for all HTML5 databases.
2391         https://bugs.webkit.org/show_bug.cgi?id=38191
2392
2393         Vacuum all databases when the number of free pages is at least 10%
2394         of the number of total pages. Also, add a guard against a bug that
2395         was fixed in SQLite only starting with version 3.6.16.
2396
2397         * platform/sql/SQLiteDatabase.cpp:
2398         (WebCore::SQLiteDatabase::maximumSize):
2399         (WebCore::SQLiteDatabase::freeSpaceSize):
2400         (WebCore::SQLiteDatabase::totalSize):
2401         (WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
2402         (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
2403         * platform/sql/SQLiteDatabase.h:
2404         (WebCore::SQLiteDatabase::):
2405         * platform/sql/SQLiteStatement.cpp:
2406         (WebCore::SQLiteStatement::prepare):
2407         (WebCore::SQLiteStatement::step):
2408         * storage/Database.cpp:
2409         (WebCore::Database::performOpenAndVerify):
2410         (WebCore::Database::incrementalVacuumIfNeeded):
2411         * storage/Database.h:
2412         * storage/SQLTransaction.cpp:
2413         (WebCore::SQLTransaction::postflightAndCommit):
2414
2415 2010-04-27  Garret Kelly  <gdk@chromium.org>
2416
2417         Reviewed by Darin Fisher.
2418
2419         Turn all of the touch event handlers into RuntimeEnabledFeatures, and
2420         modify the createEvent methond on Document so that it won't create a
2421         TouchEvent if the feature is disabled.
2422         https://bugs.webkit.org/show_bug.cgi?id=37485
2423
2424         * bindings/generic/RuntimeEnabledFeatures.cpp:
2425         * bindings/generic/RuntimeEnabledFeatures.h:
2426         (WebCore::RuntimeEnabledFeatures::touchEnabled):
2427         (WebCore::RuntimeEnabledFeatures::setTouchEnabled):
2428         (WebCore::RuntimeEnabledFeatures::ontouchstartEnabled):
2429         (WebCore::RuntimeEnabledFeatures::ontouchmoveEnabled):
2430         (WebCore::RuntimeEnabledFeatures::ontouchendEnabled):
2431         (WebCore::RuntimeEnabledFeatures::ontouchcancelEnabled):
2432         * dom/Document.cpp:
2433         (WebCore::Document::createEvent):
2434         * dom/Document.idl:
2435         * dom/Element.idl:
2436         * page/DOMWindow.idl:
2437
2438 2010-04-27  Jens Alfke  <snej@chromium.org>
2439
2440         Reviewed by Darin Fisher.
2441
2442         [Chromium] Add some notifications and an accessor to WebKit API
2443         https://bugs.webkit.org/show_bug.cgi?id=37625
2444
2445         * dom/Node.cpp:
2446         (WebCore::Node::hasNonEmptyBoundingBox): New method.
2447         * dom/Node.h:
2448         * html/HTMLAnchorElement.cpp:
2449         (WebCore::HTMLAnchorElement::isKeyboardFocusable): Moved part of method into new Node method
2450
2451 2010-04-27  Jochen Eisinger  <jochen@chromium.org>
2452
2453         Reviewed by Shinichiro Hamaji.
2454
2455         Fix gyp build on Mac OS X with enable_svg=0.
2456         https://bugs.webkit.org/show_bug.cgi?id=38192
2457
2458         * WebCore.gyp/WebCore.gyp: Only generate SVG symbols if enable_svg!=0.
2459         * css/CSSComputedStyleDeclaration.cpp:
2460         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add missing unimplemented CSS properties to switch statement.
2461
2462 2010-04-27  Kinuko Yasuda  <kinuko@chromium.org>
2463
2464         Reviewed by Jian Li.
2465
2466         [V8] Handle OR ('|') conditional in action_derivedsourcesallinone.py
2467         https://bugs.webkit.org/show_bug.cgi?id=38207
2468
2469         No new tests.
2470
2471         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
2472
2473 2010-04-27  François Sausset  <sausset@gmail.com>
2474
2475         Reviewed by Kenneth Rohde Christiansen.
2476
2477         Implementation of the MathML mroot & msqrt elements.
2478         https://bugs.webkit.org/show_bug.cgi?id=37044
2479
2480         Test: mathml/presentation/roots.xhtml
2481
2482         * WebCore.xcodeproj/project.pbxproj:
2483         * css/mathml.css:
2484         (mroot):
2485         (mroot > * + *):
2486         (mroot > * + mrow, mroot > * + mfenced):
2487         * mathml/MathMLInlineContainerElement.cpp:
2488         (WebCore::MathMLInlineContainerElement::createRenderer):
2489         * mathml/RenderMathMLRoot.cpp: Added.
2490         (WebCore::RenderMathMLRoot::RenderMathMLRoot):
2491         (WebCore::RenderMathMLRoot::addChild):
2492         (WebCore::RenderMathMLRoot::paint):
2493         (WebCore::RenderMathMLRoot::layout):
2494         * mathml/RenderMathMLRoot.h: Added.
2495         * mathml/RenderMathMLSquareRoot.cpp: Added.
2496         (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot):
2497         (WebCore::RenderMathMLSquareRoot::paint):
2498         (WebCore::RenderMathMLSquareRoot::layout):
2499         * mathml/RenderMathMLSquareRoot.h: Added.
2500
2501 2010-04-27  Darin Adler  <darin@apple.com>
2502
2503         Reviewed by Maciej Stachowiak.
2504
2505         I noticed an unused forwarding header.
2506
2507         * ForwardingHeaders/runtime/PropertyMap.h: Removed.
2508
2509 2010-04-27  James Robinson  <jamesr@chromium.org>
2510
2511         Reviewed by Adam Barth.
2512
2513         Fix gcc 4.4.1 warnings on Linux in the chromium V8 bindings code.
2514         https://bugs.webkit.org/show_bug.cgi?id=38153
2515
2516         * bindings/scripts/CodeGeneratorV8.pm:
2517         * bindings/v8/V8Proxy.cpp:
2518         (WebCore::V8Proxy::callFunction):
2519
2520 2010-04-27  Eric Seidel  <eric@webkit.org>
2521
2522         Unreviewed, rolling out r58318.
2523         http://trac.webkit.org/changeset/58318
2524         https://bugs.webkit.org/show_bug.cgi?id=37215
2525
2526         Broke test on Tiger.  Might just need updated results,
2527         unclear.
2528
2529         * inspector/InspectorController.cpp:
2530         (WebCore::InspectorController::didReceiveResponse):
2531         (WebCore::InspectorController::didFailLoading):
2532         * inspector/front-end/Resource.js:
2533         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2534         * inspector/front-end/ResourcesPanel.js:
2535         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
2536
2537 2010-04-27  Evan Martin  <evan@chromium.org>
2538
2539         Reviewed by David Levin.
2540
2541         [chromium] bold bengali text not rendered properly on Linux
2542         https://bugs.webkit.org/show_bug.cgi?id=37904
2543
2544         We must let Skia do font fallback, rather than picking a font name
2545         then handing that to Skia.  For example, if we have Bengali text and
2546         choose FreeSans + fake bold, and then later reuse the name, Skia will
2547         helpfully use FreeSansBold (which doesn't cover Bengali).
2548
2549         Test: fast/text/international/bold-bengali.html
2550
2551         * platform/graphics/chromium/FontCacheLinux.cpp:
2552         (WebCore::FontCache::getFontDataForCharacters):
2553
2554 2010-04-27  James Robinson  <jamesr@chromium.org>
2555
2556         Reviewed by Darin Adler.
2557
2558         Fix warnings emitted by gcc 4.4.1 on linux in chromium-specific platform graphics files.
2559         https://bugs.webkit.org/show_bug.cgi?id=38158
2560
2561         Most of the issues are signed/unsigned mismatches, but there are a few unusued variables
2562         and functions mixed in.
2563
2564         * platform/graphics/chromium/FontLinux.cpp:
2565         (WebCore::adjustTextRenderMode):
2566         (WebCore::TextRunWalker::getTextRun):
2567         (WebCore::TextRunWalker::getNormalizedTextRun):
2568         (WebCore::TextRunWalker::setGlyphXPositions):
2569         (WebCore::glyphIndexForXPositionInScriptRun):
2570         (WebCore::Font::offsetForPositionForComplexText):
2571         (WebCore::Font::selectionRectForComplexText):
2572         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2573         (WebCore::FontPlatformData::setupPaint):
2574         * platform/graphics/chromium/HarfbuzzSkia.cpp:
2575         (WebCore::getOutlinePoint):
2576         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2577         (WebCore::GraphicsContext3D::getImageData):
2578         * platform/graphics/skia/GraphicsContextSkia.cpp:
2579         (WebCore::isCoordinateSkiaSafe):
2580         (WebCore::GraphicsContext::fillRect):
2581         (WebCore::GraphicsContext::strokePath):
2582         (WebCore::GraphicsContext::strokeRect):
2583
2584 2010-04-27  Jian Li  <jianli@chromium.org>
2585
2586         Reviewed by Darin Adler.
2587
2588         Sending a package file using FormData crashes WebKit on Mac.
2589         https://bugs.webkit.org/show_bug.cgi?id=37882
2590
2591         Can't add a layout test because DRT does not support generating the file name.
2592
2593         * loader/FrameLoader.cpp:
2594         (WebCore::FrameLoader::submitForm):
2595         (WebCore::FrameLoader::navigateToDifferentDocument):
2596         * platform/network/FormData.cpp:
2597         (WebCore::FormData::appendDOMFormData):
2598         * platform/network/FormData.h:
2599         * xml/XMLHttpRequest.cpp:
2600         (WebCore::XMLHttpRequest::send):
2601
2602 2010-04-27  Adam Barth  <abarth@webkit.org>
2603
2604         Reviewed by Eric Seidel.
2605
2606         Remove custom NodeIterator bindings
2607         https://bugs.webkit.org/show_bug.cgi?id=38188
2608
2609         Another example of CallWith=ScriptState.  This case shows us the right
2610         way to handle the interaction with exception codes.
2611
2612         In my previous patch, I put the exception code handling after the
2613         ScriptState exception handling.  It turns out this was a mistake
2614         (although a harmless one at the time because no IDL caused us to
2615         generate that code).  Now that we're generating both kinds of exception
2616         handling, we need to generate them in the right order.
2617
2618         * WebCore.gypi:
2619         * bindings/js/JSNodeIteratorCustom.cpp:
2620         * bindings/scripts/CodeGeneratorJS.pm:
2621         * bindings/scripts/CodeGeneratorV8.pm:
2622         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2623         (webkit_dom_test_obj_with_script_state_void_exception):
2624         (webkit_dom_test_obj_with_script_state_obj_exception):
2625         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2626         * bindings/scripts/test/JS/JSTestObj.cpp:
2627         (WebCore::):
2628         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
2629         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
2630         * bindings/scripts/test/JS/JSTestObj.h:
2631         * bindings/scripts/test/ObjC/DOMTestObj.h:
2632         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2633         (-[DOMTestObj withScriptStateVoidException]):
2634         (-[DOMTestObj withScriptStateObjException]):
2635         * bindings/scripts/test/TestObj.idl:
2636         * bindings/scripts/test/V8/V8TestObj.cpp:
2637         (WebCore::TestObjInternal::withScriptStateVoidCallback):
2638         (WebCore::TestObjInternal::withScriptStateObjCallback):
2639         (WebCore::TestObjInternal::withScriptStateVoidExceptionCallback):
2640         (WebCore::TestObjInternal::withScriptStateObjExceptionCallback):
2641         (WebCore::):
2642         * bindings/v8/custom/V8NodeIteratorCustom.cpp: Removed.
2643         * dom/NodeIterator.idl:
2644
2645 2010-04-27  Adam Barth  <abarth@webkit.org>
2646
2647         Reviewed by Darin Adler.
2648
2649         Remove copy/paste addEventListener "custom" bindings via code generation
2650         https://bugs.webkit.org/show_bug.cgi?id=38210
2651
2652         It's somewhat lame to special case addEventListener and
2653         removeEventListener in the code generator, but it saves a large amount
2654         of boilerplate "custom" bindings code.
2655
2656         Idea shamelessly stolen from the V8 code generator.
2657
2658         This patch points to some good refactoring opportunities in
2659         CodeGeneratorJS.pm, but I'm going to hold off on those for a future
2660         patch.  By generating test coverage for the code generator, we make
2661         these future refactorings easier.
2662
2663         * bindings/js/JSAbstractWorkerCustom.cpp:
2664         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2665         * bindings/js/JSDesktopNotificationsCustom.cpp:
2666         * bindings/js/JSEventSourceCustom.cpp:
2667         * bindings/js/JSMessagePortCustom.cpp:
2668         * bindings/js/JSNodeCustom.cpp:
2669         * bindings/js/JSSVGElementInstanceCustom.cpp:
2670         * bindings/js/JSWebSocketCustom.cpp:
2671         * bindings/js/JSWorkerContextCustom.cpp:
2672         * bindings/js/JSXMLHttpRequestCustom.cpp:
2673         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
2674         * bindings/scripts/CodeGeneratorJS.pm:
2675         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2676         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2677         * bindings/scripts/test/JS/JSTestObj.cpp:
2678         (WebCore::):
2679         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
2680         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
2681         * bindings/scripts/test/JS/JSTestObj.h:
2682         * bindings/scripts/test/ObjC/DOMTestObj.h:
2683         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2684         (-[DOMTestObj addEventListener:listener:useCapture:]):
2685         (-[DOMTestObj removeEventListener:listener:useCapture:]):
2686         * bindings/scripts/test/TestObj.idl:
2687         * bindings/scripts/test/V8/V8TestObj.cpp:
2688         (WebCore::TestObjInternal::addEventListenerCallback):
2689         (WebCore::TestObjInternal::removeEventListenerCallback):
2690         (WebCore::):
2691         * dom/MessagePort.idl:
2692         * dom/Node.idl:
2693         * loader/appcache/DOMApplicationCache.idl:
2694         * notifications/Notification.idl:
2695         * page/EventSource.idl:
2696         * svg/SVGElementInstance.idl:
2697         * websockets/WebSocket.idl:
2698         * workers/AbstractWorker.idl:
2699         * workers/WorkerContext.idl:
2700         * xml/XMLHttpRequest.idl:
2701         * xml/XMLHttpRequestUpload.idl:
2702
2703 2010-04-27  Sam Weinig  <sam@webkit.org>
2704
2705         Rubber-stamped by Beth Dakin.
2706
2707         Remove now unnecessary EXPERIMENTAL_SINGLE_VIEW_MODE #define.
2708
2709         * page/EventHandler.cpp:
2710         (WebCore::EventHandler::EventHandler):
2711         (WebCore::EventHandler::clearDragState):
2712         * page/EventHandler.h:
2713         * page/mac/DragControllerMac.mm:
2714         * page/mac/EventHandlerMac.mm:
2715         * platform/mac/PopupMenuMac.mm:
2716
2717 2010-04-27  Ben Murdoch  <benm@google.com>
2718
2719         Reviewed by Simon Hausmann.
2720
2721         The TouchStationary state of WebCore::PlatformTouchPoint is not handled inside the touch event handler.
2722         https://bugs.webkit.org/show_bug.cgi?id=37609
2723
2724         No new tests required, only updating documentation.
2725
2726         * page/EventHandler.cpp:
2727         (WebCore::EventHandler::handleTouchEvent): Improve the documentation for handling
2728             the TouchStationary state as a result of discussions in bug 37609.
2729
2730 2010-04-27  Simon Fraser  <simon.fraser@apple.com>
2731
2732         Reviewed by Darin Adler, Maciej Stachowiak.
2733
2734         REGRESSION (r57919): Some pages opened in background tabs don't render the first time you activate their tab
2735         https://bugs.webkit.org/show_bug.cgi?id=38183
2736
2737         Rather than sprinkle PLATFORM #ifdefs around, add a new method,
2738         RenderLayerCompositor::shouldPropagateCompositingToIFrameParent(), that indicates whether
2739         an iframe with composited content should trigger compositing mode in the enclosing document
2740         (a behavior that differs between platforms).
2741         
2742         Use this new method to determine whether to trigger a style recalc in the parent document
2743         when an iframe becomes composited.
2744         
2745         Move the code formerly in RenderView::compositingStateChanged() into RenderLayerCompositor().
2746
2747         * manual-tests/compositing/accel-comp-iframe-tab-repaint.html: Added.
2748         * manual-tests/compositing/resources/flash-frame.html: Added.
2749         * manual-tests/compositing/resources/tab-repaint-part-2.html: Added.
2750         * rendering/RenderLayerCompositor.cpp:
2751         (WebCore::RenderLayerCompositor::enableCompositingMode):
2752         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToIFrameParent):
2753         (WebCore::RenderLayerCompositor::requiresCompositingForIFrame):
2754         * rendering/RenderLayerCompositor.h:
2755         * rendering/RenderView.cpp:
2756         * rendering/RenderView.h:
2757
2758 2010-04-27  Andrey Kosyakov  <caseq@chromium.org>
2759
2760         Reviewed by Yury Semikhatsky.
2761
2762         Log error message to inspector console if a resource fails to load.
2763         Disable checking of mime-type consistency for failed resources.
2764         https://bugs.webkit.org/show_bug.cgi?id=37215
2765
2766         Test: http/tests/inspector/console-resource-errors.html
2767
2768         * inspector/InspectorController.cpp:
2769         (WebCore::InspectorController::didReceiveResponse):
2770         (WebCore::InspectorController::didFailLoading):
2771         * inspector/front-end/Resource.js:
2772         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2773         * inspector/front-end/ResourcesPanel.js:
2774         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
2775
2776 2010-04-27  Vitaly Repeshko  <vitalyr@chromium.org>
2777
2778         Reviewed by Nate Chapin.
2779
2780         [V8] Fix XHR memory leak in GC controller.
2781         https://bugs.webkit.org/show_bug.cgi?id=38202
2782
2783         http://trac.webkit.org/changeset/55798 simplified processing of
2784         active DOM objects but introduced a subtle bug in garbage
2785         collection of XHRs. ActiveDOMObject is not a direct base class of
2786         XHR and so upcasting changes pointer identity and breaks DOM
2787         maps. This leads to forever live persistent handles to XHR that
2788         had pending activity while V8 GC happened.
2789
2790         * bindings/v8/V8GCController.cpp:
2791         (WebCore::GCEpilogueVisitor::visitDOMWrapper):
2792
2793 2010-04-27  Adam Barth  <abarth@webkit.org>
2794
2795         Unreviewed.  Regenerate reference bindings code generator output.
2796
2797         * bindings/scripts/test/V8/V8TestObj.cpp:
2798         (WebCore::TestObjInternal::withScriptStateVoidCallback):
2799         (WebCore::TestObjInternal::withScriptStateObjCallback):
2800
2801 2010-04-27  Joseph Pecoraro  <joepeck@webkit.org>
2802
2803         Reviewed by Dan Bernstein.
2804
2805         <input type="search"> with uneven padding causes text clipping
2806         https://bugs.webkit.org/show_bug.cgi?id=38160
2807
2808         Test: fast/css/input-search-padding.html
2809
2810         An <input type="search"> contains an inner block, which is explicitly
2811         centered in RenderTextControlSingleLine based on the height of the element.
2812         However, the clipping rect was not using the set location, and instead
2813         calculated off of the top border and padding alone. This also vertically
2814         centers the Caps Lock indicator.
2815
2816         * rendering/RenderTextControl.cpp: moved controlClipRect implementation to RenderTextControlSingleLine
2817         * rendering/RenderTextControl.h: allow a subclass implementation of controlClipRect, removed redundant hasControlClip implementation, and moved controlClipRect
2818         * rendering/RenderTextControlSingleLine.cpp:
2819         (WebCore::RenderTextControlSingleLine::paint): vertically center the Caps Lock indicator
2820         (WebCore::RenderTextControlSingleLine::controlClipRect): use the set location of the anonymous inner block instead
2821         * rendering/RenderTextControlSingleLine.h: allow for an implementation of controlClipRect for <input type="search">
2822
2823 2010-04-27  Thomas Zander <t.zander@nokia.com>
2824
2825         Reviewed by Simon Hausmann.
2826
2827         [Qt] Fix linking on Symbian on Linux using the Makefile based mkspec.
2828
2829         Disable thumb mode due to library size limitations, just like it's done
2830         for the sbs/sbsv2 based build system.
2831
2832         * WebCore.pro:
2833
2834 2010-04-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2835
2836         Reviewed by Kenneth Rohde Christiansen.
2837
2838         [Qt] Make sure WebKit is not compiled using C++0x.
2839         https://bugs.webkit.org/show_bug.cgi?id=37867
2840
2841         As the rest of Qt compiles in the C++0x mode, people might start
2842         compiling it in this mode. WebKit don't support this yet.
2843
2844         Patch by Thiago Macieira <thiago.macieira@nokia.com>
2845
2846         * WebCore.pro:
2847
2848 2010-04-27  Jeremy Orlow  <jorlow@chromium.org>
2849
2850         Unreviewed build fix.
2851
2852         Revert 58274 and 58269 (WebSQLDatabase changes)
2853         https://bugs.webkit.org/show_bug.cgi?id=38191
2854
2855         Chromium bots are hitting ASSERTS when running layout tests.
2856
2857         * platform/sql/SQLiteDatabase.cpp:
2858         (WebCore::SQLiteDatabase::maximumSize):
2859         (WebCore::SQLiteDatabase::freeSpaceSize):
2860         * platform/sql/SQLiteDatabase.h:
2861         * platform/sql/SQLiteStatement.cpp:
2862         (WebCore::SQLiteStatement::prepare):
2863         * storage/Database.cpp:
2864         (WebCore::Database::performOpenAndVerify):
2865         * storage/Database.h:
2866         * storage/SQLTransaction.cpp:
2867         (WebCore::SQLTransaction::postflightAndCommit):
2868
2869 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2870
2871         Unreviewed, fix build breakage by reverting r58299.
2872
2873         * css/CSSGrammar.y:
2874         * css/CSSParser.cpp:
2875         (WebCore::CSSParser::CSSParser):
2876         (WebCore::CSSParser::clearProperties):
2877         * css/CSSParser.h:
2878         * css/CSSSelector.cpp:
2879         (WebCore::CSSSelector::pseudoId):
2880         (WebCore::nameToPseudoTypeMap):
2881         (WebCore::CSSSelector::extractPseudoType):
2882         * css/CSSSelector.h:
2883         (WebCore::CSSSelector::):
2884         * css/tokenizer.flex:
2885
2886 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2887
2888         Reviewed by Shinichiro Hamaji.
2889
2890         WebCore::CSSSelector::RareData::parseNth doesn't check whether the search for '-' in the argument was successful.
2891         This results in incorrect parsing.
2892         For example, '3n' is parsed as if it were '3n-3'. The code has been working OK just accidentally.
2893
2894         https://bugs.webkit.org/show_bug.cgi?id=37787
2895
2896         No new tests are added because the original behavior is accidentally OK.
2897
2898         * css/CSSSelector.cpp:
2899         (WebCore::CSSSelector::RareData::parseNth):
2900
2901 2010-04-27  Yuzo Fujishima  <yuzo@google.com>
2902
2903         Reviewed by David Hyatt.
2904
2905         Enhance CSS parser for Paged Media (Iteration 1)
2906
2907         In this change, the grammar is extended and skeletal methods for creating page rules and margin at-rules are defined.
2908         The contents of the methods should be implemented by other changes.
2909
2910         https://bugs.webkit.org/show_bug.cgi?id=35329
2911
2912         Test: fast/css/parsing-page-rule.html
2913
2914         * css/CSSGrammar.y:
2915         * css/CSSParser.cpp:
2916         (WebCore::CSSParser::CSSParser):
2917         (WebCore::CSSParser::clearProperties):
2918         (WebCore::CSSParser::lex):
2919         (WebCore::CSSParser::text):
2920         (WebCore::CSSParser::createPageRule):
2921         (WebCore::CSSParser::createMarginAtRule):
2922         (WebCore::CSSParser::startDeclarationsForMarginBox):
2923         (WebCore::CSSParser::endDeclarationsForMarginBox):
2924         * css/CSSParser.h:
2925         * css/CSSSelector.cpp:
2926         (WebCore::CSSSelector::extractPseudoType):
2927         * css/CSSSelector.h:
2928         (WebCore::CSSSelector::):
2929         * css/tokenizer.flex:
2930
2931 2010-04-27  Adam Barth  <abarth@webkit.org>
2932
2933         Reviewed by Eric Seidel.
2934
2935         Remove custom bindings for TreeWalker
2936         https://bugs.webkit.org/show_bug.cgi?id=38182
2937
2938         This custom code is just CallWith=ScriptState.
2939
2940         * WebCore.gypi:
2941         * bindings/js/JSTreeWalkerCustom.cpp:
2942         (WebCore::JSTreeWalker::markChildren):
2943         * bindings/scripts/CodeGeneratorJS.pm:
2944         * bindings/scripts/CodeGeneratorV8.pm:
2945         * bindings/scripts/test/TestObj.idl:
2946         * bindings/v8/custom/V8TreeWalkerCustom.cpp: Removed.
2947         * dom/TreeWalker.idl:
2948
2949 2010-04-27  Eric Seidel  <eric@webkit.org>
2950
2951         Reviewed by Adam Barth.
2952
2953         Move code out of GenerateImplementation to make it more smaller
2954         https://bugs.webkit.org/show_bug.cgi?id=38176
2955
2956         * bindings/scripts/CodeGeneratorJS.pm:
2957          - Move some code into a new GenerateAttributesHashTable method.
2958
2959 2010-04-26  Adam Barth  <abarth@webkit.org>
2960
2961         Reviewed by Eric Seidel.
2962
2963         Add CallWith=DynamicFrame to CodeGenerator
2964         https://bugs.webkit.org/show_bug.cgi?id=38174
2965
2966         I've only used this in one instance, but this is infrastructure that I
2967         think will help remove a bunch of custom bindings code.  Also, added a
2968         few tests of tricky argument cases.
2969
2970         * bindings/js/JSHTMLFormElementCustom.cpp:
2971         * bindings/scripts/CodeGeneratorJS.pm:
2972         * bindings/scripts/CodeGeneratorV8.pm:
2973         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2974         (webkit_dom_test_obj_with_dynamic_frame):
2975         (webkit_dom_test_obj_with_dynamic_frame_and_arg):
2976         (webkit_dom_test_obj_with_dynamic_frame_and_optional_arg):
2977         (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture):
2978         (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad):
2979         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2980         * bindings/scripts/test/JS/JSTestObj.cpp:
2981         (WebCore::):
2982         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrame):
2983         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
2984         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
2985         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
2986         (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
2987         * bindings/scripts/test/JS/JSTestObj.h:
2988         * bindings/scripts/test/ObjC/DOMTestObj.h:
2989         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2990         (-[DOMTestObj withDynamicFrame]):
2991         (-[DOMTestObj withDynamicFrameAndArg:]):
2992         (-[DOMTestObj withDynamicFrameAndOptionalArg:optionalArg:]):
2993         (-[DOMTestObj withDynamicFrameAndUserGesture:]):
2994         (-[DOMTestObj withDynamicFrameAndUserGestureASAD:optionalArg:]):
2995         * bindings/scripts/test/TestObj.idl:
2996         * bindings/scripts/test/V8/V8TestObj.cpp:
2997         (WebCore::TestObjInternal::withDynamicFrameCallback):
2998         (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
2999         (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
3000         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
3001         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
3002         (WebCore::):
3003         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
3004         * html/HTMLFormElement.idl:
3005
3006 2010-04-26  Adam Barth  <abarth@webkit.org>
3007
3008         Unreviewed.  Update comment to better reflect reality.
3009
3010         * bindings/scripts/test/TestObj.idl:
3011
3012 2010-04-26  Adam Barth  <abarth@webkit.org>
3013
3014         Reviewed by Eric Seidel.
3015
3016         Add ObjC and GObject to run-bindings-test
3017         https://bugs.webkit.org/show_bug.cgi?id=38168
3018
3019         Added expected results.
3020
3021         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Added.
3022         (WebKit::kit):
3023         (webkit_dom_test_obj_void_method):
3024         (webkit_dom_test_obj_void_method_with_args):
3025         (webkit_dom_test_obj_int_method):
3026         (webkit_dom_test_obj_int_method_with_args):
3027         (webkit_dom_test_obj_obj_method):
3028         (webkit_dom_test_obj_obj_method_with_args):
3029         (webkit_dom_test_obj_method_with_exception):
3030         (webkit_dom_test_obj_method_with_optional_arg):
3031         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
3032         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
3033         (webkit_dom_test_obj_get_read_only_int_attr):
3034         (webkit_dom_test_obj_get_read_only_string_attr):
3035         (webkit_dom_test_obj_get_read_only_test_obj_attr):
3036         (webkit_dom_test_obj_get_int_attr):
3037         (webkit_dom_test_obj_set_int_attr):
3038         (webkit_dom_test_obj_get_string_attr):
3039         (webkit_dom_test_obj_set_string_attr):
3040         (webkit_dom_test_obj_get_test_obj_attr):
3041         (webkit_dom_test_obj_set_test_obj_attr):
3042         (webkit_dom_test_obj_get_attr_with_exception):
3043         (webkit_dom_test_obj_set_attr_with_exception):
3044         (webkit_dom_test_obj_get_attr_with_setter_exception):
3045         (webkit_dom_test_obj_set_attr_with_setter_exception):
3046         (webkit_dom_test_obj_get_attr_with_getter_exception):
3047         (webkit_dom_test_obj_set_attr_with_getter_exception):
3048         (WebKit::wrapTestObj):
3049         (WebKit::core):
3050         (webkit_dom_test_obj_finalize):
3051         (webkit_dom_test_obj_set_property):
3052         (webkit_dom_test_obj_get_property):
3053         (webkit_dom_test_obj_class_init):
3054         (webkit_dom_test_obj_init):
3055         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Added.
3056         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h: Added.
3057         * bindings/scripts/test/ObjC/DOMTestObj.h: Added.
3058         * bindings/scripts/test/ObjC/DOMTestObj.mm: Added.
3059         (-[DOMTestObj dealloc]):
3060         (-[DOMTestObj finalize]):
3061         (-[DOMTestObj readOnlyIntAttr]):
3062         (-[DOMTestObj readOnlyStringAttr]):
3063         (-[DOMTestObj readOnlyTestObjAttr]):
3064         (-[DOMTestObj intAttr]):
3065         (-[DOMTestObj setIntAttr:]):
3066         (-[DOMTestObj stringAttr]):
3067         (-[DOMTestObj setStringAttr:]):
3068         (-[DOMTestObj testObjAttr]):
3069         (-[DOMTestObj setTestObjAttr:]):
3070         (-[DOMTestObj attrWithException]):
3071         (-[DOMTestObj setAttrWithException:]):
3072         (-[DOMTestObj attrWithSetterException]):
3073         (-[DOMTestObj setAttrWithSetterException:]):
3074         (-[DOMTestObj attrWithGetterException]):
3075         (-[DOMTestObj setAttrWithGetterException:]):
3076         (-[DOMTestObj customAttr]):
3077         (-[DOMTestObj setCustomAttr:]):
3078         (-[DOMTestObj voidMethod]):
3079         (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
3080         (-[DOMTestObj intMethod]):
3081         (-[DOMTestObj intMethodWithArgs:strArg:objArg:]):
3082         (-[DOMTestObj objMethod]):
3083         (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
3084         (-[DOMTestObj methodWithException]):
3085         (-[DOMTestObj customMethod]):
3086         (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
3087         (-[DOMTestObj methodWithOptionalArg:]):
3088         (-[DOMTestObj methodWithNonOptionalArgAndOptionalArg:opt:]):
3089         (-[DOMTestObj methodWithNonOptionalArgAndTwoOptionalArgs:opt1:opt2:]):
3090         (core):
3091         (kit):
3092         * bindings/scripts/test/ObjC/DOMTestObjInternal.h: Added.
3093
3094 2010-04-26  Adam Barth  <abarth@webkit.org>
3095
3096         Reviewed by Eric Seidel.
3097
3098         Add testing infrastructure for JSC bindings generator
3099         https://bugs.webkit.org/show_bug.cgi?id=38167
3100
3101         This required moving the test files around a bit more.
3102
3103         * bindings/scripts/test/JS/JSTestObj.cpp: Added.
3104         (WebCore::):
3105         (WebCore::JSTestObjConstructor::JSTestObjConstructor):
3106         (WebCore::JSTestObjConstructor::classInfo):
3107         (WebCore::JSTestObjConstructor::createStructure):
3108         (WebCore::JSTestObjConstructor::getOwnPropertySlot):
3109         (WebCore::JSTestObjConstructor::getOwnPropertyDescriptor):
3110         (WebCore::JSTestObjPrototype::self):
3111         (WebCore::JSTestObjPrototype::getOwnPropertySlot):
3112         (WebCore::JSTestObjPrototype::getOwnPropertyDescriptor):
3113         (WebCore::JSTestObj::JSTestObj):
3114         (WebCore::JSTestObj::~JSTestObj):
3115         (WebCore::JSTestObj::createPrototype):
3116         (WebCore::JSTestObj::getOwnPropertySlot):
3117         (WebCore::JSTestObj::getOwnPropertyDescriptor):
3118         (WebCore::jsTestObjReadOnlyIntAttr):
3119         (WebCore::jsTestObjReadOnlyStringAttr):
3120         (WebCore::jsTestObjReadOnlyTestObjAttr):
3121         (WebCore::jsTestObjIntAttr):
3122         (WebCore::jsTestObjStringAttr):
3123         (WebCore::jsTestObjTestObjAttr):
3124         (WebCore::jsTestObjAttrWithException):
3125         (WebCore::jsTestObjAttrWithSetterException):
3126         (WebCore::jsTestObjAttrWithGetterException):
3127         (WebCore::jsTestObjCustomAttr):
3128         (WebCore::jsTestObjConstructor):
3129         (WebCore::JSTestObj::put):
3130         (WebCore::setJSTestObjIntAttr):
3131         (WebCore::setJSTestObjStringAttr):
3132         (WebCore::setJSTestObjTestObjAttr):
3133         (WebCore::setJSTestObjAttrWithException):
3134         (WebCore::setJSTestObjAttrWithSetterException):
3135         (WebCore::setJSTestObjAttrWithGetterException):
3136         (WebCore::setJSTestObjCustomAttr):
3137         (WebCore::JSTestObj::getConstructor):
3138         (WebCore::jsTestObjPrototypeFunctionVoidMethod):
3139         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
3140         (WebCore::jsTestObjPrototypeFunctionIntMethod):
3141         (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
3142         (WebCore::jsTestObjPrototypeFunctionObjMethod):
3143         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
3144         (WebCore::jsTestObjPrototypeFunctionMethodWithException):
3145         (WebCore::jsTestObjPrototypeFunctionCustomMethod):
3146         (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
3147         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
3148         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
3149         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
3150         (WebCore::toJS):
3151         (WebCore::toTestObj):
3152         * bindings/scripts/test/JS/JSTestObj.h: Added.
3153         (WebCore::JSTestObj::classInfo):
3154         (WebCore::JSTestObj::createStructure):
3155         (WebCore::JSTestObj::impl):
3156         (WebCore::JSTestObjPrototype::classInfo):
3157         (WebCore::JSTestObjPrototype::createStructure):
3158         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
3159         * bindings/scripts/test/TestObj.idl:
3160         * bindings/scripts/test/V8/V8TestObj.cpp: Renamed from WebCore/bindings/scripts/test/V8TestObj.cpp.
3161         (WebCore::):
3162         (WebCore::TestObjInternal::V8_USE):
3163         (WebCore::TestObjInternal::readOnlyIntAttrAttrGetter):
3164         (WebCore::TestObjInternal::readOnlyStringAttrAttrGetter):
3165         (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
3166         (WebCore::TestObjInternal::intAttrAttrGetter):
3167         (WebCore::TestObjInternal::intAttrAttrSetter):
3168         (WebCore::TestObjInternal::stringAttrAttrGetter):
3169         (WebCore::TestObjInternal::stringAttrAttrSetter):
3170         (WebCore::TestObjInternal::testObjAttrAttrGetter):
3171         (WebCore::TestObjInternal::testObjAttrAttrSetter):
3172         (WebCore::TestObjInternal::attrWithExceptionAttrGetter):
3173         (WebCore::TestObjInternal::attrWithExceptionAttrSetter):
3174         (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
3175         (WebCore::TestObjInternal::attrWithSetterExceptionAttrSetter):
3176         (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
3177         (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
3178         (WebCore::TestObjInternal::voidMethodCallback):
3179         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
3180         (WebCore::TestObjInternal::intMethodCallback):
3181         (WebCore::TestObjInternal::intMethodWithArgsCallback):
3182         (WebCore::TestObjInternal::objMethodCallback):
3183         (WebCore::TestObjInternal::objMethodWithArgsCallback):
3184         (WebCore::TestObjInternal::methodWithExceptionCallback):
3185         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
3186         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
3187         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
3188         (WebCore::TestObjInternal::overloadedMethod1Callback):
3189         (WebCore::TestObjInternal::overloadedMethod2Callback):
3190         (WebCore::TestObjInternal::overloadedMethod3Callback):
3191         (WebCore::TestObjInternal::overloadedMethod4Callback):
3192         (WebCore::TestObjInternal::overloadedMethodCallback):
3193         (WebCore::ConfigureV8TestObjTemplate):
3194         (WebCore::V8TestObj::GetRawTemplate):
3195         (WebCore::V8TestObj::GetTemplate):
3196         (WebCore::V8TestObj::toNative):
3197         (WebCore::V8TestObj::HasInstance):
3198         (WebCore::V8TestObj::wrap):
3199         (WebCore::toV8):
3200         (WebCore::V8TestObj::derefObject):
3201         * bindings/scripts/test/V8/V8TestObj.h: Renamed from WebCore/bindings/scripts/test/V8TestObj.h.
3202
3203 2010-04-26  Oliver Hunt  <oliver@apple.com>
3204
3205         Reviewed by Gavin Barraclough.
3206
3207         Need to support more efficient dispatch of lightweight builtins
3208         https://bugs.webkit.org/show_bug.cgi?id=38155
3209
3210         Update bindings generation to include new thunk generator field
3211         in the property map hash tables.
3212
3213         * bindings/scripts/CodeGeneratorJS.pm:
3214
3215 2010-04-26  Adam Barth  <abarth@webkit.org>
3216
3217         Reviewed by Eric Seidel.
3218
3219         Move bindings test directory into the scripts directory
3220         https://bugs.webkit.org/show_bug.cgi?id=38161
3221
3222         This test is really of the bindings scripts not of the bindings
3223         themselves.  By moving the files into the scripts directory, we'll be
3224         able to test JSC as well.
3225
3226         * bindings/scripts/test/TestObj.idl: Renamed from WebCore/bindings/v8/test/TestObj.idl.
3227         * bindings/scripts/test/V8TestObj.cpp: Renamed from WebCore/bindings/v8/test/V8TestObj.cpp.
3228         (WebCore::):
3229         (WebCore::TestObjInternal::V8_USE):
3230         (WebCore::TestObjInternal::readOnlyIntAttrAttrGetter):
3231         (WebCore::TestObjInternal::readOnlyStringAttrAttrGetter):
3232         (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
3233         (WebCore::TestObjInternal::intAttrAttrGetter):
3234         (WebCore::TestObjInternal::intAttrAttrSetter):
3235         (WebCore::TestObjInternal::stringAttrAttrGetter):
3236         (WebCore::TestObjInternal::stringAttrAttrSetter):
3237         (WebCore::TestObjInternal::testObjAttrAttrGetter):
3238         (WebCore::TestObjInternal::testObjAttrAttrSetter):
3239         (WebCore::TestObjInternal::attrWithExceptionAttrGetter):
3240         (WebCore::TestObjInternal::attrWithExceptionAttrSetter):
3241         (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
3242         (WebCore::TestObjInternal::attrWithSetterExceptionAttrSetter):
3243         (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
3244         (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
3245         (WebCore::TestObjInternal::voidMethodCallback):
3246         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
3247         (WebCore::TestObjInternal::intMethodCallback):
3248         (WebCore::TestObjInternal::intMethodWithArgsCallback):
3249         (WebCore::TestObjInternal::objMethodCallback):
3250         (WebCore::TestObjInternal::objMethodWithArgsCallback):
3251         (WebCore::TestObjInternal::methodWithExceptionCallback):
3252         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
3253         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
3254         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
3255         (WebCore::TestObjInternal::overloadedMethod1Callback):
3256         (WebCore::TestObjInternal::overloadedMethod2Callback):
3257         (WebCore::TestObjInternal::overloadedMethod3Callback):
3258         (WebCore::TestObjInternal::overloadedMethod4Callback):
3259         (WebCore::TestObjInternal::overloadedMethodCallback):
3260         (WebCore::ConfigureV8TestObjTemplate):
3261         (WebCore::V8TestObj::GetRawTemplate):
3262         (WebCore::V8TestObj::GetTemplate):
3263         (WebCore::V8TestObj::toNative):
3264         (WebCore::V8TestObj::HasInstance):
3265         (WebCore::V8TestObj::wrap):
3266         (WebCore::toV8):
3267         (WebCore::V8TestObj::derefObject):
3268         * bindings/scripts/test/V8TestObj.h: Renamed from WebCore/bindings/v8/test/V8TestObj.h.
3269
3270 2010-04-26  Daniel Cheng  <dcheng@chromium.org>
3271
3272         Reviewed by Jian Li.
3273
3274         [chromium] Fix ChromiumDataObject::setURL to not populate its internal URL list with empty URLs.
3275         https://bugs.webkit.org/show_bug.cgi?id=38159
3276
3277         No new tests.
3278
3279         * platform/chromium/ChromiumDataObject.h:
3280         (WebCore::ChromiumDataObject::setURL):
3281
3282 2010-04-26  Daniel Cheng  <dcheng@chromium.org>
3283
3284         Reviewed by Jian Li.
3285
3286         [Chromium] Don't make file paths available in text/uri-list when dragging files.
3287         https://bugs.webkit.org/show_bug.cgi?id=25882
3288
3289         Test will be checked in with WebCore/platform/mac fix.
3290
3291         * platform/chromium/ClipboardChromium.cpp:
3292         (WebCore::ClipboardChromium::getData):
3293         (WebCore::ClipboardChromium::types):
3294
3295 2010-04-26  Maciej Stachowiak  <mjs@apple.com>
3296
3297         Reviewed by Darin Adler.
3298
3299         REGRESSION (r57292): 1.5% page load speed regression from visited link information leak fix
3300         https://bugs.webkit.org/show_bug.cgi?id=38131
3301
3302         I did a number of separate optimizations which speed up style
3303         resolution enough to more than make up for the regression. This
3304         measures as a total PLT speedup of somewhere between 1.5% and
3305         3.7%.
3306        
3307         Optimizations done:
3308         - Cache determineLinkState results, to avoid the need to repeatedly compute
3309         the visited link hash for the same element. This directly addresses much
3310         of the slowdown, since all elements get their style computed twice now.
3311         - Added a fast way to get the length of a CSSMutableStyleDeclaration, and use
3312         in CSSStyleSelector::matchRulesForList, since it was hot there.
3313         - Hoist some loop invariant code that's not detected by the compiler out of the
3314         main loop in matchRulesForList
3315         - inline CSSStyleSelector::initElement and locateSharedStyle,
3316         since there is only one call site in each case
3317         - Inline the common non-line fast case of determineLinkState, and split the rest into
3318         out-of-line determineLinkStateSlowCase.
3319         - Added inline versions of the functions called by
3320         visitedLinkHash (the version called by determineLinkState).
3321
3322         * css/CSSMutableStyleDeclaration.cpp:
3323         (WebCore::CSSMutableStyleDeclaration::length): Implemented in terms of new
3324         inline nonvirtual mutableLength().
3325         * css/CSSMutableStyleDeclaration.h:
3326         (WebCore::CSSMutableStyleDeclaration::mutableLength): Added new nonvirtual
3327         inline way to get the length if you know you have a mutable style decl.
3328         * css/CSSStyleSelector.cpp:
3329         (WebCore::CSSStyleSelector::init): Clear cached link state.
3330         (WebCore::CSSStyleSelector::matchRulesForList): hoist some code out of the main
3331         loop and get style decl length more efficiently.
3332         (WebCore::CSSStyleSelector::initElement): inline (only one call site)
3333         (WebCore::CSSStyleSelector::SelectorChecker::determineLinkState): Inline fast
3334         case, call slow case.
3335         (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase): Split
3336         most of the above function into this slow case helper.
3337         (WebCore::CSSStyleSelector::canShareStyleWithElement): Use the cache-enabled
3338         way to get the current link state.
3339         (WebCore::CSSStyleSelector::locateSharedStyle): inline
3340         (WebCore::CSSStyleSelector::styleForElement): Use the cache-enabled way
3341         to get the current link state.
3342         * css/CSSStyleSelector.h:
3343         (WebCore::CSSStyleSelector::currentElementLinkState): inline way to
3344         get link state for the current element; manages the cache
3345         * platform/LinkHash.cpp:
3346         (WebCore::visitedLinkHashInline): inline version of below function
3347         (WebCore::visitedLinkHash): call the inline version
3348         (WebCore::visitedURLInline): inline version of below function
3349         (WebCore::visitedURL): call the inline version
3350         (WebCore::visitedURL): call inline versions of above two functions
3351
3352 2010-04-26  Sam Weinig  <sam@webkit.org>
3353
3354         Reviewed by Alexey Proskuryakov.
3355
3356         Remove last use of WEB_THREAD.
3357
3358         * platform/mac/WebCoreObjCExtras.mm:
3359         (WebCoreObjCScheduleDeallocateOnMainThread): This can always use
3360         isMainThread().
3361
3362 2010-04-26  Dumitru Daniliuc  <dumi@chromium.org>
3363
3364         Reviewed by Dimitri Glazkov.
3365
3366         Turn on AUTO_VACUUM = INCREMENTAL for all HTML5 databases, and
3367         vacuum all databases when the number of free pages is at least 10%
3368         of the number of total pages. Also, adding a guard against a bug
3369         that was fixed in SQLite only starting with version 3.6.16.
3370
3371         https://bugs.webkit.org/show_bug.cgi?id=36251
3372
3373         * platform/sql/SQLiteDatabase.cpp:
3374         (WebCore::SQLiteDatabase::totalSize):
3375         (WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
3376         (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
3377         * platform/sql/SQLiteDatabase.h:
3378         * platform/sql/SQLiteStatement.cpp:
3379         (WebCore::SQLiteStatement::prepare):
3380         * storage/Database.cpp:
3381         (WebCore::Database::performOpenAndVerify):
3382         (WebCore::Database::incrementalVacuumIfNeeded):
3383         * storage/Database.h:
3384         * storage/SQLTransaction.cpp:
3385         (WebCore::SQLTransaction::postflightAndCommit):
3386
3387 2010-04-26  Geoffrey Garen  <ggaren@apple.com>
3388
3389         Reviewed by Sam Weinig.
3390
3391         <rdar://problem/7766413>
3392         
3393         Fixed a crash seen when using the JavaScriptCore API with WebKit.
3394         
3395         No layout test because DumpRenderTree doesn't use the JavaScriptCore API
3396         in this way.
3397
3398         * bindings/js/JSEventListener.cpp:
3399         (WebCore::JSEventListener::JSEventListener): Don't assign 0 to a WeakGCPtr.
3400         JavaScriptCore no longer allows this.
3401
3402         * bindings/js/ScriptWrappable.h:
3403         (WebCore::ScriptWrappable::setWrapper): No need to initialize a WeakGCPtr
3404         to 0, or ASSERT a non-0 value before assigning to a WeakGCPtr -- both are
3405         default behaviors.
3406
3407 2010-04-25  Sam Weinig  <sam@webkit.org>
3408
3409         Reviewed by Maciej Stachowiak.
3410
3411         Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
3412         Disentangle initializing the main thread from initializing threading
3413
3414         * WebCore.xcodeproj/project.pbxproj: Sort files.
3415
3416         * accessibility/mac/AccessibilityObjectWrapper.mm: Remove unnessary
3417         +initialize method. The AccessibilityObjectWrapper has no data members
3418         that need to be derefed, so it does not need to be finalized on the main
3419         thread.
3420
3421         * bindings/js/ScriptController.cpp:
3422         (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.
3423         * bindings/objc/WebScriptObject.mm:
3424         (+[WebScriptObject initialize]): Add call to initializeMainThreadToProcessMainThread.
3425         * bindings/v8/ScriptController.cpp:
3426         (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.
3427         * platform/mac/SharedBufferMac.mm:
3428         (+[WebCoreSharedBufferData initialize]): Add call to initializeMainThreadToProcessMainThread.
3429
3430 2010-04-26  Yongjun Zhang  <yongjun_zhang@apple.com>
3431
3432         Reviewed by Alexey Proskuryakov.
3433         
3434         https://bugs.webkit.org/show_bug.cgi?id=38128
3435         Don't add empty credential to CredentialStorage.
3436         
3437         An empty credential is currently regarded as a invalid login because it means a missing value in 
3438         protectionSpaceToCredentialMap.  This change makes it consistent with current WebCore's behavior
3439         by ignoring empty credentials.
3440         
3441         No new tests added since this only affects credential entered by user from credential dialog,
3442         which is not testable in DRT.
3443
3444         * platform/network/mac/ResourceHandleMac.mm:
3445         (WebCore::ResourceHandle::receivedCredential):
3446
3447 2010-04-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
3448
3449         Reviewed by Simon Hausmann.
3450
3451         [Qt] Clean-up WebCore.pro after now that JavaScriptCore is built separately
3452         https://bugs.webkit.org/show_bug.cgi?id=38123
3453
3454         HAVE_STDINT_H, and HAVE_PTHREAD_NP_H no longer needs to be defined
3455         for QtWebKit  as JavaScriptCore is built separately. These defines are only 
3456         used  by JavaScriptCore and for JavaScriptCore these are already
3457         properly defined in JavaScriptCore/config.h.
3458
3459         No new tests, no new functionality.
3460
3461         * WebCore.pro:
3462
3463 2010-04-26  Roman Gershman  <romange@google.com>
3464
3465         Reviewed by Adam Barth.
3466
3467         [Chromium] Font size in suggestions popup menu should be correlated with the font size of its text field.
3468         The following manual test checks for desired behavior.
3469
3470         https://bugs.webkit.org/show_bug.cgi?id=37977
3471
3472         * manual-tests/chromium/suggestions-popup-font-change.html: Added.
3473
3474 2010-04-26  Luiz Agostini  <luiz.agostini@openbossa.org>
3475
3476         Reviewed by Kenneth Rohde Christiansen.
3477
3478         View modes names in CSSValueKeywords.in
3479         https://bugs.webkit.org/show_bug.cgi?id=38125
3480
3481         View mode names has changed in previous patch but CSSValueKeywords.in file was
3482         not updated.
3483
3484         * css/CSSValueKeywords.in:
3485
3486 2010-04-26  Simon Hausmann  <simon.hausmann@nokia.com>
3487
3488         Reviewed by Kenneth Rohde Christiansen.
3489
3490         [Qt] Fix compilation with RVCT 4
3491         https://bugs.webkit.org/show_bug.cgi?id=37727
3492
3493         Swap extern and declspec to fix visibility of symbol imported from QtGui.
3494
3495         * page/qt/EventHandlerQt.cpp:
3496
3497 2010-04-26  Ruben Van Boxem  <vanboxem.ruben@gmail.com>
3498
3499         Reviewed by Adam Roben.
3500
3501         Fixes for Win64 compilation under gcc (mingw-w64)
3502
3503         *  WebCore/bridge/npapi.h: for win64 compatibility, mirroring mozilla-central, see Mozilla bug 560298
3504         *  WebCore/platform/Arena.h: uword is used to cast from pointers here. unsigned long is 32-bit on Windows (but 64-bit on mac), and too small to hold a pointer. uintptr_t is 32-bit on 32-bit systems (mac, linux and windows) and 64-bit on all 64-bit systems
3505         *  WebCore/platform/graphics/transforms/TransformationMatrix.h: let mingw-w64/w32 use MSVC codepath
3506         *  WebCore/platform/text/TextStream.cpp: let mingw-w64 use MSVC codepath
3507         *  WebCore/platform/text/TextStream.h: let mingw-w64 use MSVC codepath
3508         *  WebCore/plugins/PluginView.cpp: fix pointer casts on WIN64 and let mingw-w64 use MSVC codepath
3509         *  WebCore/plugins/win/PluginViewWin.cpp: fix pointer casts on WIN64
3510
3511 2010-04-26  Markus Goetz  <Markus.Goetz@nokia.com>
3512
3513         Reviewed by Simon Hausmann.
3514
3515         [Qt] HTTP pipelining efficiency increase
3516         https://bugs.webkit.org/show_bug.cgi?id=38062
3517
3518         Increase number of network requests that are fed into
3519         QNetworkAccessManager.
3520
3521         * platform/network/qt/ResourceRequestQt.cpp:
3522         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
3523
3524 2010-04-26  Ilya Tikhonovsky  <loislo@chromium.org>
3525
3526         Reviewed by Yury Semikhatsky.
3527
3528         Web Inspector: undefined shows up on inspector.
3529         https://bugs.webkit.org/show_bug.cgi?id=38120
3530
3531         * inspector/front-end/ScriptsPanel.js:
3532         (WebInspector.ScriptsPanel.prototype.hide):
3533         * inspector/front-end/SourceFrame.js:
3534         (WebInspector.SourceFrame.prototype.set visible):
3535
3536 2010-04-26  Bruno Schmidt  <bruno.schmidt@gmail.com>
3537
3538         Reviewed by Kenneth Rohde Christiansen.
3539
3540         [Qt] Exposing an QVariantMap containing QObjectStar to Javascript
3541         causes Segmentation Fault
3542         https://bugs.webkit.org/show_bug.cgi?id=34729
3543
3544         If an QVariantMap containing QObjectStar is added to the to QtWebkit
3545         Javascript, it's use causes Segmentation Fault.
3546         It happens because, in the case QMetaType::QVariantMap, the "root"
3547         object that is inside of a PassRefPtr is passed recursively inside a
3548         loop to recover the content of the map, but the PassRefPtr semantics
3549         prohibit its use inside a loop, so the "root" object mus be passed
3550         using the method "PassRefPtr::get" in order to keep the current
3551         reference.
3552
3553         * bridge/qt/qt_runtime.cpp:
3554         (JSC::Bindings::convertValueToQVariant):
3555         (JSC::Bindings::convertQVariantToValue): change to root.get()
3556
3557 2010-04-26  Pavel Feldman  <pfeldman@chromium.org>
3558
3559         Reviewed by Yury Semikhatsky.
3560
3561         Web Inspector: Render clip in summary bar using "arc", not "quadraticCurveTo".
3562
3563         https://bugs.webkit.org/show_bug.cgi?id=38107
3564
3565         * inspector/front-end/SummaryBar.js:
3566         (WebInspector.SummaryBar.prototype._drawSummaryGraph.drawPill):
3567         (WebInspector.SummaryBar.prototype._drawSummaryGraph):
3568
3569 2010-04-26  Andreas Kling  <andreas.kling@nokia.com>
3570
3571         Reviewed by Tor Arne Vestbø.
3572
3573         [Qt] Fix compilation against Qt 4.7
3574
3575         Some QtMultimedia things have been moved into QtMediaServices
3576         https://bugs.webkit.org/show_bug.cgi?id=38111
3577
3578         * WebCore.pro:
3579         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
3580         (WebCore::MediaPlayerPrivate::supportsType):
3581         (WebCore::MediaPlayerPrivate::totalBytes):
3582
3583 2010-04-26  Zoltan Herczeg  <zherczeg@webkit.org>
3584
3585         Reviewed by Dirk Schulze.
3586
3587         Call setStrokeStyle in applyStrokeStyleToContext
3588         https://bugs.webkit.org/show_bug.cgi?id=37849
3589
3590         Not all platforms set the stroke style to solid if they
3591         get an empty line dash array. Some just ignore the operation.
3592
3593         * rendering/SVGRenderSupport.cpp:
3594         (WebCore::applyStrokeStyleToContext):
3595
3596 2010-04-23  Ilya Tikhonovsky  <loislo@chromium.org>
3597
3598         Reviewed by Pavel Feldman.
3599
3600         WebInspector: Aggregated stats of time spent in children records should be visible
3601         in the popup panel of parent record. Crash in pushGCEventRecord also was fixed.
3602         https://bugs.webkit.org/show_bug.cgi?id=37820
3603
3604         * English.lproj/localizedStrings.js:
3605         * inspector/InspectorTimelineAgent.cpp:
3606         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
3607         * inspector/front-end/TimelinePanel.js:
3608         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
3609         (WebInspector.TimelinePanel.prototype._createRootRecord):
3610         (WebInspector.TimelinePanel.prototype._showPopover):
3611         (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
3612         (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
3613         (WebInspector.TimelineRecordGraphRow):
3614         (WebInspector.TimelineRecordGraphRow.prototype.update):
3615         (WebInspector.TimelinePanel.FormattedRecord):
3616         (WebInspector.TimelinePanel.FormattedRecord.prototype._generateAggregatedInfo):
3617         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
3618         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
3619         (WebInspector.TimelinePanel.FormattedRecord.prototype._calculateAggregatedStats):
3620         * inspector/front-end/inspector.css:
3621         (.timeline-graph-bar.with-children):
3622         (.timeline-graph-bar.cpu):
3623         (.timeline-aggregated-category):
3624         (.timeline-loading):
3625         (.timeline-scripting):
3626         (.timeline-rendering):
3627         (.popover .timeline-aggregated-category.timeline-loading):
3628         (.timeline-details-title):
3629
3630 2010-04-25  Kent Tamura  <tkent@chromium.org>
3631
3632         Reviewed by Darin Adler.
3633
3634         WebKit crashes with deeply nested divs
3635         https://bugs.webkit.org/show_bug.cgi?id=18282
3636
3637         The HTML parser caps a tree depth by MAX_DOM_TREE_DEPTH defined in
3638         TreeDepthLimit.h. This is performance-efficient, but does not work for
3639         DOM operations such as Node.appendChild().
3640
3641         Test: fast/parser/element-nesting-cap.html
3642
3643         * dom/Node.h:
3644         * dom/XMLTokenizer.cpp:
3645         (WebCore::XMLTokenizer::pushCurrentNode):
3646         * html/HTMLParser.cpp:
3647
3648         * GNUmakefile.am:
3649         * WebCore.gypi:
3650         * WebCore.pro:
3651         * WebCore.vcproj/WebCore.vcproj:
3652         * WebCore.xcodeproj/project.pbxproj:
3653         * dom/TreeDepthLimit.h:
3654           Added. Define MAX_DOM_TREE_DEPTH. The default value is 5000.
3655         * dom/XMLTokenizer.cpp: Use maxDOMTreeDepth.
3656         (WebCore::XMLTokenizer::pushCurrentNode):
3657         * html/HTMLParser.cpp:
3658           Introduce m_treeDepth, which counts the depth of the tree.
3659           Unlike m_blocksInStack, it contains the number of non-block nodes.
3660         (WebCore::HTMLParser::HTMLParser):
3661         (WebCore::HTMLParser::reset):
3662         (WebCore::HTMLParser::limitDepth):
3663           Renamed from limitBlockDepth. Add check for m_nodeDepth.
3664         (WebCore::HTMLParser::insertNodeAfterLimitDepth):
3665           Renamed from insertNodeAfterLimitBlockDepth.
3666         (WebCore::HTMLParser::parseToken):
3667         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
3668         (WebCore::HTMLParser::pushBlock):
3669         (WebCore::HTMLParser::popOneBlockCommon):
3670         (WebCore::HTMLParser::freeBlock):
3671         * html/HTMLParser.h:
3672
3673 2010-04-25  Andrey Kosyakov  <caseq@chromium.org>
3674
3675         Reviewed by Adam Barth.
3676
3677         Get context properly when event handler was created on
3678         the main world.
3679         https://bugs.webkit.org/show_bug.cgi?id=37947
3680
3681         Test: http/tests/security/isolatedWorld/dispatchEvent.html
3682
3683         * bindings/v8/WorldContextHandle.cpp:
3684         (WebCore::WorldContextHandle::adjustedContext):
3685
3686 2010-04-25  yael aharon  <yael.aharon@nokia.com>
3687
3688         Reviewed by Adele Peterson.
3689
3690         Allow styling of HTMLProgressElement.
3691         https://bugs.webkit.org/show_bug.cgi?id=37901
3692
3693         Added a new pseudo element to represent the value portion of the progress element.
3694         Web developers can style this pseudo element separate from the rest of the progress element.
3695
3696         Test: fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html
3697
3698         * css/CSSPrimitiveValueMappings.h:
3699         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3700         * css/CSSSelector.cpp:
3701         (WebCore::CSSSelector::pseudoId):
3702         (WebCore::nameToPseudoTypeMap):
3703         (WebCore::CSSSelector::extractPseudoType):
3704         * css/CSSSelector.h:
3705         * css/CSSValueKeywords.in:
3706         * platform/ThemeTypes.h:
3707         * rendering/RenderProgress.cpp:
3708         (WebCore::ProgressValueElement::isShadowNode):
3709         (WebCore::ProgressValueElement::shadowParentNode):
3710         (WebCore::ProgressValueElement::ProgressValueElement):
3711         (WebCore::RenderProgress::RenderProgress):
3712         (WebCore::RenderProgress::~RenderProgress):
3713         (WebCore::RenderProgress::layout):
3714         (WebCore::RenderProgress::styleDidChange):
3715         (WebCore::RenderProgress::updateFromElement):
3716         (WebCore::RenderProgress::updateValuePartState):
3717         (WebCore::RenderProgress::createStyleForValuePart):
3718         (WebCore::RenderProgress::updateAnimationState):
3719         * rendering/RenderTheme.cpp:
3720         (WebCore::RenderTheme::isControlStyled):
3721         * rendering/RenderProgress.h:
3722         * rendering/style/RenderStyleConstants.h:
3723
3724 2010-04-24  Simon Fraser  <simon.fraser@apple.com>
3725
3726         Reviewed by Dan Bernstein.
3727
3728         Don't propagate compositing out of iframes on Mac
3729         https://bugs.webkit.org/show_bug.cgi?id=38072
3730
3731         Propagating compositing out of iframes caused too many regressions on Mac,
3732         so only do it for other platforms that may need to hook compositing layers
3733         together across iframe boundaries.
3734
3735         * rendering/RenderLayerCompositor.cpp:
3736         (WebCore::RenderLayerCompositor::requiresCompositingForIFrame):
3737
3738 2010-04-24  Anton Muhin  <antonm@chromium.org>
3739
3740         Reviewed by Darin Adler.
3741
3742         Allow to construct HashTraits<WebCore::QualifiedName>::constructDeletedValue
3743
3744         Former implementation attempted to use AtomicString(HashTableDeletedValue)
3745         however those values cannot be used that way: one cannot construct
3746         QualifiedNameImpl out of such AtomicString as we'll try to lookup this string
3747         in the table, for example.
3748         https://bugs.webkit.org/show_bug.cgi?id=37722
3749
3750         * dom/QualifiedName.cpp:
3751         (WebCore::QualifiedName::deref): check that hash table deleted values never derefed
3752         * dom/QualifiedName.h:
3753         (WebCore::QualifiedName::QualifiedName): add a constructor to create hash table deleted values
3754         (WebCore::QualifiedName::isHashTableDeletedValue): add a check if given instance is hash table deleted value
3755         (WTF::):
3756
3757 2010-04-24  Julien Chaffraix  <jchaffraix@webkit.org>
3758
3759         Reviewed by Alexey Proskuryakov.
3760
3761         protocolHostAndPortEquals host check makes a wrong assumption
3762         https://bugs.webkit.org/show_bug.cgi?id=37777
3763
3764         The host check assumed that both host started at the same position. This is true
3765         if both URL are the same but sometimes one has credential and the other does not.
3766         In this case, the method would compare invalid positions.
3767
3768         Test: http/tests/appcache/credential-url.html
3769
3770         * platform/KURL.cpp:
3771         (WebCore::protocolHostAndPortAreEqual):
3772         * platform/KURLGoogle.cpp:
3773         (WebCore::protocolHostAndPortAreEqual):
3774         Fix the host check to take both URL's credential into account.
3775
3776 2010-04-24  Nikolas Zimmermann  <nzimmermann@rim.com>
3777
3778         Not reviewed. Fix linkage on several bots (no idea, why it worked in a from-scratch rebuild on Leopard on my machine!) -> include NodeRenderStyle.h
3779         Having to include NodeRenderStyle.h just to pull in the renderStyle() is a crazy concept, but I see what it tries to avoid (including RenderObject.h in Node.h)
3780
3781         * rendering/SVGRenderSupport.cpp:
3782
3783 2010-04-24  Nikolas Zimmermann  <nzimmermann@rim.com>
3784
3785         Not reviewed. Fix release builds, wrap resourceMode assertion in NDEBUG blocks, use UNUSED_PARAM() otherwhise.
3786
3787         * rendering/RenderSVGResourceClipper.cpp:
3788         (WebCore::RenderSVGResourceClipper::applyResource):
3789         * rendering/RenderSVGResourceFilter.cpp:
3790         (WebCore::RenderSVGResourceFilter::applyResource):
3791         (WebCore::RenderSVGResourceFilter::postApplyResource):
3792         * rendering/RenderSVGResourceMasker.cpp:
3793         (WebCore::RenderSVGResourceMasker::applyResource):
3794
3795 2010-04-24  Nikolas Zimmermann  <nzimmermann@rim.com>
3796
3797         Reviewed by Dirk Schulze.
3798
3799         SVGPaintServer needs to be converted to the new RenderSVGResource* system
3800         https://bugs.webkit.org/show_bug.cgi?id=37986
3801
3802         Huge speedup for SVG painting using paint servers (gradient/patterns). Cache underlying
3803         WebCore::Gradient/Pattern datastructures, do not rebuild them on every painting. This marks
3804         the finish of the SVGResource -> RenderSVGResource transition.
3805
3806         Outline of same key changes:
3807         - RenderSVGResource is an abstract base class now, and the previous class is now named RenderSVGResourceContainer
3808           All resources except RenderSVGResourceSolidColor now inherit from RenderSVGResourceContainer, as they are all
3809           associated with a SVG*Element class. RenderSVGResourceSolidColor inherits from RenderSVGResource, and is not
3810           associated with any SVG*Element class. RenderSVGResourceSolidColor is not a render tree object, despite its name.
3811           The reason for that is consistency with all other painting resources.
3812         - RenderSVGResourceSolidColor does not live in the render tree, and exists only as static object, which is shared
3813           and always used when filling/stroking with solid colors - just like the old SVGPaintServerSolid.
3814         - RenderSVGResourceGradient/RenderSVGResourcePattern now store the underlying WebCore::Gradient/Pattern object
3815           instead of rebuilding it everytime we're asked to paint -> this is the main difference with the old concept, leading
3816           to much faster speed.
3817         - SVGResource has vanished. All resources (clipper/filter/marker/masker/gradient/pattern) now share the same codepaths
3818           to handle updates and client invalidation - which is a huge benefit, and makes the code easier to understand.
3819
3820         * Android.mk: Remove svg/graphics/SVGResource*, svg/graphics/SVGPaintServer.h from build.
3821         * GNUmakefile.am: Ditto.
3822         * WebCore.gypi: Ditto.
3823         * WebCore.pro: Ditto.
3824         * WebCore.vcproj/WebCore.vcproj: Ditto.
3825         * WebCore.xcodeproj/project.pbxproj: Ditto.
3826         * platform/graphics/Gradient.cpp: Add addColorStop() method taking a ColorStop const-reference.
3827         (WebCore::Gradient::addColorStop):
3828         * platform/graphics/Gradient.h: Ditto.
3829         * platform/graphics/TextRun.h: Rename SVGPaintServer to RenderSVGResource
3830         (WebCore::TextRun::TextRun):
3831         (WebCore::TextRun::activePaintingResource): Renamed from activePaintServer.
3832         (WebCore::TextRun::setActivePaintingResource): Renamed from setActivePaintServer.
3833         * platform/graphics/win/GraphicsContextWin.cpp: Remove references to SVGResourceImage, which was removed a long time ago.
3834         * rendering/RenderObject.cpp:
3835         (WebCore::RenderObject::toRenderSVGResourceContainer): Renamed from toRenderSVGResource().
3836         * rendering/RenderObject.h:
3837         (WebCore::RenderObject::isSVGGradientStop): Added.
3838         (WebCore::RenderObject::isSVGResourceContainer): Renamed from isSVGResource().
3839         * rendering/RenderPath.cpp: Utilize RenderSVGResource::fill/strokePaintingResource to request paint servers, instead of SVGPaintServer.
3840         (WebCore::RenderPath::fillContains): Adapt to new concept.
3841         (WebCore::RenderPath::strokeContains): Ditto.
3842         (WebCore::fillAndStrokePath): Ditto.
3843         (WebCore::RenderPath::paint): Ditto.
3844         * rendering/RenderSVGGradientStop.cpp:
3845         (WebCore::RenderSVGGradientStop::styleDidChange): Ditto.
3846         * rendering/RenderSVGGradientStop.h: Fixed indention.
3847         * rendering/RenderSVGResource.cpp: Refactored old SVGPaintServer code to request fill/stroke painting resources, splitted up in several methods to aid readability. 
3848         (WebCore::registerPendingResource):
3849         (WebCore::adjustColorForPseudoRules):
3850         (WebCore::RenderSVGResource::fillPaintingResource):
3851         (WebCore::RenderSVGResource::strokePaintingResource):
3852         (WebCore::RenderSVGResource::sharedSolidPaintingResource):
3853         (WebCore::RenderSVGResource::markForLayoutAndResourceInvalidation):
3854         * rendering/RenderSVGResource.h: Make RenderSVGResource an abstract base class, see above for the reasoning.
3855         (WebCore::RenderSVGResource::RenderSVGResource):
3856         (WebCore::RenderSVGResource::~RenderSVGResource):
3857         (WebCore::RenderSVGResource::postApplyResource):
3858         * rendering/RenderSVGResourceClipper.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
3859         (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
3860         (WebCore::RenderSVGResourceClipper::invalidateClient):
3861         (WebCore::RenderSVGResourceClipper::applyResource): Adapt to signature changes (add RenderStyle* and resource mode parameters)
3862         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3863         * rendering/RenderSVGResourceClipper.h:
3864         * rendering/RenderSVGResourceContainer.h: Added. Renamed from RenderSVGResource. Now inherits from RenderSVGHiddenContainer and RenderSVGResource.
3865         (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
3866         (WebCore::RenderSVGResourceContainer::~RenderSVGResourceContainer):
3867         (WebCore::RenderSVGResourceContainer::idChanged):
3868         (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
3869         (WebCore::RenderSVGResourceContainer::drawsContents):
3870         (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
3871         (WebCore::getRenderSVGResourceContainerById):
3872         (WebCore::getRenderSVGResourceById):
3873         * rendering/RenderSVGResourceFilter.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
3874         (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter):
3875         (WebCore::RenderSVGResourceFilter::invalidateClient):
3876         (WebCore::RenderSVGResourceFilter::applyResource): Adapt to signature changes (add RenderStyle* and resource mode parameters)
3877         (WebCore::RenderSVGResourceFilter::postApplyResource):
3878         * rendering/RenderSVGResourceFilter.h:
3879         * rendering/RenderSVGResourceGradient.cpp: Moved from SVGPaintServerGradient, cleaned up and refactored.
3880         (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient):
3881         (WebCore::RenderSVGResourceGradient::~RenderSVGResourceGradient):
3882         (WebCore::RenderSVGResourceGradient::invalidateClients):
3883         (WebCore::RenderSVGResourceGradient::invalidateClient):
3884         (WebCore::createMaskAndSwapContextForTextGradient):
3885         (WebCore::clipToTextMask):
3886         (WebCore::RenderSVGResourceGradient::applyResource):
3887         * rendering/RenderSVGResourceGradient.h:
3888         (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
3889         * rendering/RenderSVGResourceLinearGradient.cpp: Moved from SVGPaintServerLinearGradient, cleaned up and refactored.
3890         (WebCore::RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient):
3891         (WebCore::RenderSVGResourceLinearGradient::~RenderSVGResourceLinearGradient):
3892         (WebCore::RenderSVGResourceLinearGradient::buildGradient):
3893         * rendering/RenderSVGResourceLinearGradient.h:
3894         (WebCore::RenderSVGResourceLinearGradient::renderName):
3895         (WebCore::RenderSVGResourceLinearGradient::resourceType):
3896         * rendering/RenderSVGResourceMarker.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
3897         (WebCore::RenderSVGResourceMarker::RenderSVGResourceMarker):
3898         (WebCore::RenderSVGResourceMarker::invalidateClient):
3899         * rendering/RenderSVGResourceMarker.h:
3900         (WebCore::RenderSVGResourceMarker::applyResource):
3901         * rendering/RenderSVGResourceMasker.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
3902         (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker):
3903         (WebCore::RenderSVGResourceMasker::invalidateClient):
3904         (WebCore::RenderSVGResourceMasker::applyResource):
3905         * rendering/RenderSVGResourceMasker.h:
3906         (WebCore::MaskerData::MaskerData):
3907         * rendering/RenderSVGResourcePattern.cpp: Moved from SVGPaintServerPattern, cleaned up and refactored.
3908         (WebCore::RenderSVGResourcePattern::RenderSVGResourcePattern):
3909         (WebCore::RenderSVGResourcePattern::~RenderSVGResourcePattern):
3910         (WebCore::RenderSVGResourcePattern::invalidateClients):
3911         (WebCore::RenderSVGResourcePattern::invalidateClient):
3912         (WebCore::RenderSVGResourcePattern::applyResource):
3913         (WebCore::RenderSVGResourcePattern::postApplyResource):
3914         (WebCore::calculatePatternBoundaries):
3915         (WebCore::RenderSVGResourcePattern::calculatePatternBoundariesIncludingOverflow):
3916         (WebCore::RenderSVGResourcePattern::createTileImage):
3917         (WebCore::RenderSVGResourcePattern::buildPattern):
3918         * rendering/RenderSVGResourcePattern.h:
3919         (WebCore::RenderSVGResourcePattern::renderName):
3920         (WebCore::RenderSVGResourcePattern::resourceBoundingBox):
3921         (WebCore::RenderSVGResourcePattern::resourceType):
3922         * rendering/RenderSVGResourceRadialGradient.cpp: Moved from SVGPaintServerRadialGradient, cleaned up and refactored.
3923         (WebCore::RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient):
3924         (WebCore::RenderSVGResourceRadialGradient::~RenderSVGResourceRadialGradient):
3925         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
3926         * rendering/RenderSVGResourceRadialGradient.h:
3927         (WebCore::RenderSVGResourceRadialGradient::renderName):
3928         (WebCore::RenderSVGResourceRadialGradient::resourceType):
3929         * rendering/RenderSVGResourceSolidColor.cpp: Moved from SVGPaintServerSolid, cleaned up and refactored.
3930         (WebCore::RenderSVGResourceSolidColor::RenderSVGResourceSolidColor):
3931         (WebCore::RenderSVGResourceSolidColor::~RenderSVGResourceSolidColor):
3932         (WebCore::RenderSVGResourceSolidColor::applyResource):
3933         (WebCore::RenderSVGResourceSolidColor::postApplyResource):
3934         * rendering/RenderSVGResourceSolidColor.h:
3935         (WebCore::RenderSVGResourceSolidColor::invalidateClients):
3936         (WebCore::RenderSVGResourceSolidColor::invalidateClient):
3937         (WebCore::RenderSVGResourceSolidColor::resourceBoundingBox):
3938         (WebCore::RenderSVGResourceSolidColor::resourceType):
3939         (WebCore::RenderSVGResourceSolidColor::color):
3940         (WebCore::RenderSVGResourceSolidColor::setColor):
3941         * rendering/RenderSVGText.cpp:
3942         (WebCore::RenderSVGText::paint): Early exit if painting is disabled.
3943         * rendering/RenderTreeAsText.cpp:
3944         (WebCore::write): Add RenderSVGGradientStop dumping.
3945         (WebCore::externalRepresentation): Remove SVGResource dumping.
3946         * rendering/SVGInlineTextBox.cpp: Adapt to SVGPaintServer changes (paint server request).
3947         (WebCore::SVGInlineTextBox::paintCharacters):
3948         (WebCore::SVGInlineTextBox::paintDecoration):
3949         * rendering/SVGInlineTextBox.h: Ditto.
3950         (WebCore::SVGTextPaintInfo::SVGTextPaintInfo):
3951         * rendering/SVGRenderSupport.cpp: Ditto.
3952         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
3953         (WebCore::SVGRenderBase::finishRenderSVGContent):
3954         (WebCore::invalidatePaintingResource):
3955         (WebCore::deregisterFromResources):
3956         (WebCore::dashArrayFromRenderingStyle): Moved here from SVGPaintServer.
3957         (WebCore::applyStrokeStyleToContext): Ditto.
3958         * rendering/SVGRenderSupport.h:
3959         * rendering/SVGRenderTreeAsText.cpp: Add new gradient/pattern dumping code. Stops are now properly dumped as well!
3960         (WebCore::operator<<):
3961         (WebCore::writeSVGPaintingResource):
3962         (WebCore::writeStyle):
3963         (WebCore::boundingBoxModeString):
3964         (WebCore::writeCommonGradientProperties):
3965         (WebCore::writeSVGResourceContainer):
3966         (WebCore::writeSVGGradientStop):
3967         * rendering/SVGRenderTreeAsText.h:
3968         * rendering/SVGRootInlineBox.cpp: Adapt to SVGPaintServer changes (paint server request).
3969         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
3970         (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
3971         (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
3972         (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
3973         (WebCore::SVGRootInlineBoxPaintWalker::setupBackground):
3974         (WebCore::SVGRootInlineBoxPaintWalker::setupFill):
3975         (WebCore::SVGRootInlineBoxPaintWalker::setupFillSelection):
3976         (WebCore::SVGRootInlineBoxPaintWalker::setupStroke):
3977         (WebCore::SVGRootInlineBoxPaintWalker::setupStrokeSelection):
3978         (WebCore::SVGRootInlineBoxPaintWalker::setupForeground):
3979         (WebCore::SVGRootInlineBoxPaintWalker::activePaintingResource):
3980         (WebCore::SVGRootInlineBoxPaintWalker::paintChunk):
3981         * svg/GradientAttributes.h: Remove SVGGradientStop, use Gradient::ColorStop vector. Cleanup.
3982         (WebCore::GradientAttributes::stops):
3983         (WebCore::GradientAttributes::setStops):
3984         * svg/LinearGradientAttributes.h: Move ENABLE(SVG) guard to correct location.
3985         * svg/PatternAttributes.h: Add missing includes and class forwards.
3986         * svg/RadialGradientAttributes.h: Move ENABLE(SVG) guard to correct location.
3987         * svg/SVGClipPathElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
3988         (WebCore::SVGClipPathElement::svgAttributeChanged):
3989         (WebCore::SVGClipPathElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
3990         * svg/SVGClipPathElement.h:
3991         * svg/SVGDocumentExtensions.cpp: Change HashMaps to hash AtomicStrings instead of Strings. Rename RenderSVGResource to RenderSVGResourceContainer.
3992         (WebCore::SVGDocumentExtensions::addResource):
3993         (WebCore::SVGDocumentExtensions::removeResource):
3994         (WebCore::SVGDocumentExtensions::resourceById):
3995         (WebCore::SVGDocumentExtensions::addPendingResource):
3996         * svg/SVGDocumentExtensions.h:
3997         * svg/SVGElement.cpp:
3998         (WebCore::SVGElement::insertedIntoDocument): Remove reference to SVGResource::invalidateClients(), handled differently now.
3999         (WebCore::SVGElement::updateAnimatedSVGAttribute): Change assertion, that is incorrect now.
4000         * svg/SVGElement.h: Make updateAnimatedSVGAttribute() public.
4001         * svg/SVGFont.cpp: Adapt to SVGPaintServer changes (paint server request).
4002         (WebCore::Font::drawTextUsingSVGFont):
4003         * svg/SVGGElement.cpp: If style()->display() is NONE, create a RenderSVGHiddenContainer, removing hacks in SVGStopElement for pservers-grad-19-b.svg (yes, SVG is crazy.)
4004         (WebCore::SVGGElement::createRenderer):
4005         * svg/SVGGElement.h: Remove childrenChanged() method which _always_ called renderer->setNeedsLayout(true), which is completly wrong and unnecessary.
4006         (WebCore::SVGGElement::rendererIsNeeded): Always return true.
4007         * svg/SVGGradientElement.cpp: Adapt to new RenderSVGResourceGradient code.
4008         (WebCore::SVGGradientElement::svgAttributeChanged):
4009         (WebCore::SVGGradientElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
4010         (WebCore::SVGGradientElement::buildStops):
4011         * svg/SVGGradientElement.h:
4012         * svg/SVGLinearGradientElement.cpp: Adapt to new RenderSVGResourceLinearGradient code.
4013         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
4014         (WebCore::SVGLinearGradientElement::createRenderer):
4015         (WebCore::SVGLinearGradientElement::collectGradientProperties):
4016         (WebCore::SVGLinearGradientElement::calculateStartEndPoints):
4017         * svg/SVGLinearGradientElement.h:
4018         * svg/SVGMarkerElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
4019         (WebCore::SVGMarkerElement::svgAttributeChanged):
4020         (WebCore::SVGMarkerElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
4021         (WebCore::SVGMarkerElement::setOrientToAuto):
4022         (WebCore::SVGMarkerElement::setOrientToAngle):
4023         * svg/SVGMaskElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
4024         (WebCore::SVGMaskElement::svgAttributeChanged):
4025         (WebCore::SVGMaskElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
4026         * svg/SVGPatternElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
4027         (WebCore::SVGPatternElement::svgAttributeChanged):
4028         (WebCore::SVGPatternElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
4029         (WebCore::SVGPatternElement::createRenderer):
4030         * svg/SVGPatternElement.h:
4031         * svg/SVGPolyElement.h: Remove unneded rendererIsNeeded() override.
4032         * svg/SVGRadialGradientElement.cpp: Adapt to new RenderSVGResourceRadialGradient code.
4033         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
4034         (WebCore::SVGRadialGradientElement::createRenderer):
4035         (WebCore::SVGRadialGradientElement::collectGradientProperties):
4036         (WebCore::SVGRadialGradientElement::calculateFocalCenterPointsAndRadius):
4037         * svg/SVGRadialGradientElement.h:
4038         * svg/SVGStopElement.cpp: Clean up code, moved stop color calculation from SVGGradientElement to here, where it belongs.
4039         (WebCore::SVGStopElement::parseMappedAttribute):
4040         (WebCore::SVGStopElement::stopColorIncludingOpacity):
4041         * svg/SVGStopElement.h:
4042         * svg/SVGStyledElement.cpp:
4043         (WebCore::SVGStyledElement::~SVGStyledElement):
4044         (WebCore::SVGStyledElement::svgAttributeChanged): Only invalidateResourcesInAncestorChain()/deregisterFromResources() when we're not parsing.
4045         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain): Early exit if we find a parent resources, there is no resource nesting.
4046         (WebCore::SVGStyledElement::invalidateResourceClients): Renamed from invalidateCanvasResources()
4047         (WebCore::SVGStyledElement::childrenChanged): Only invalidate SVGElementInstances when !changedByParser is set.
4048         * svg/SVGStyledElement.h: Remove canvasResource() logic, remove detach() method.
4049         * svg/SVGTextPathElement.h:
4050         * svg/graphics/SVGPaintServer.h: Removed.
4051         * svg/graphics/SVGResource.cpp: Removed.
4052         * svg/graphics/SVGResource.h: Removed.
4053
4054 2010-04-23  Zhenyao Mo  <zmo@google.com>
4055
4056         Reviewed by Darin Fisher.
4057
4058         Add isGLES2Compliant to GraphicsContext3D: make the method const.
4059         https://bugs.webkit.org/show_bug.cgi?id=37872
4060
4061         * platform/graphics/GraphicsContext3D.h: Make isGLES2Compliant() const.
4062         * platform/graphics/mac/GraphicsContext3DMac.cpp: Ditto.
4063         (WebCore::GraphicsContext3D::isGLES2Compliant):
4064
4065 2010-04-23  Qi Zhang  <qi.2.zhang@nokia.com>
4066
4067         Reviewed by Laszlo Gombos.
4068
4069         [Qt] LayoutTests/fast/canvas/pointInPath.html passed, actually it failed
4070         https://bugs.webkit.org/show_bug.cgi?id=37276
4071
4072         QPainterPath::contains doesn't count the point on the bound.
4073
4074         * platform/graphics/qt/PathQt.cpp:
4075         (WebCore::isPointOnPathBorder):
4076         (WebCore::Path::contains):
4077
4078 2010-04-23  Sam Weinig  <sam@webkit.org>
4079
4080         Reviewed by David Levin.
4081
4082         Fix for https://bugs.webkit.org/show_bug.cgi?id=38060
4083         Split up Threading.h
4084
4085         Add necessary forwarding headers.
4086
4087         * ForwardingHeaders/wtf/Atomics.h: Added.
4088         * ForwardingHeaders/wtf/ThreadSafeShared.h: Added.
4089         * ForwardingHeaders/wtf/ThreadingPrimitives.h: Added.
4090
4091 2010-04-23  Rafael Weinstein  <rafaelw@grafaelw.sfo.corp.google.com>
4092
4093         Reviewed by Darin Fisher.
4094
4095         This patch adds a vector of additionalFeatures to WindowFeatures
4096         and populates it with any feature strings that evaluate to "yes"
4097         and aren't directly observed in WindowFeatures. This allows
4098         clients to capture experimental window features.
4099
4100         https://bugs.webkit.org/show_bug.cgi?id=38013
4101
4102         * page/WindowFeatures.cpp:
4103         (WebCore::WindowFeatures::setWindowFeature):
4104         * page/WindowFeatures.h:
4105
4106 2010-04-23  Dan Bernstein  <mitz@apple.com>
4107
4108         Reviewed by Simon Fraser.
4109
4110         <rdar://problem/7898436> :after content is duplicated
4111
4112         Test: fast/css-generated-content/after-duplicated-after-split.html
4113
4114         * rendering/RenderInline.cpp:
4115         (WebCore::RenderInline::splitInlines): Pass the correct owner of the child list.
4116
4117 2010-04-23  Adele Peterson  <adele@apple.com>
4118
4119         Fixing the Tiger build for real.
4120
4121         * platform/graphics/mac/SimpleFontDataMac.mm:
4122
4123 2010-04-23  Adele Peterson  <adele@apple.com>
4124
4125         Fixing the Tiger build.
4126
4127         * platform/graphics/mac/SimpleFontDataMac.mm:
4128         (WebCore::SimpleFontData::platformBoundsForGlyph):
4129
4130 2010-04-23  Jian Li  <jianli@chromium.org>
4131
4132         Reviewed by Dmitry Titov.
4133
4134         Add FileError for File API.
4135         https://bugs.webkit.org/show_bug.cgi?id=37840
4136
4137         The test will be added when implementing FileReader and FilerWriter.
4138
4139         * Android.derived.jscbindings.mk:
4140         * Android.derived.v8bindings.mk:
4141         * DerivedSources.cpp:
4142         * DerivedSources.make:
4143         * GNUmakefile.am:
4144         * WebCore.gypi:
4145         * WebCore.pri:
4146         * WebCore.pro:
4147         * WebCore.vcproj/WebCore.vcproj:
4148         * WebCore.xcodeproj/project.pbxproj:
4149         * dom/ExceptionCode.h:
4150         (WebCore::):
4151         * html/FileError.h: Added.
4152         * html/FileError.idl: Added.
4153         * page/DOMWindow.idl:
4154
4155 2010-04-23  Jian Li  <jianli@chromium.org>
4156
4157         Reviewed by Adam Barth.
4158
4159         Improve code generator scripts to handle OR ('|') condition in the
4160         extended attributes.
4161         https://bugs.webkit.org/show_bug.cgi?id=37998
4162
4163         * bindings/scripts/CodeGeneratorJS.pm:
4164         * bindings/scripts/CodeGeneratorObjC.pm:
4165         * bindings/scripts/CodeGeneratorV8.pm:
4166         * bindings/scripts/IDLStructure.pm:
4167
4168 2010-04-23  Adele Peterson  <adele@apple.com>
4169
4170         Reviewed by Dan Bernstein.
4171
4172         Fix for <rdar://problem/7855777> REGRESSION: Memory usage increase caused by storing glyph bounds in GlyphMetricsMap
4173         https://bugs.webkit.org/show_bug.cgi?id=37936
4174
4175         This change breaks the GlyphMetricsMap into two maps - one for width and one for bounds, so that we don't store
4176         a FloatRect for the glyph bounds unless we need to.
4177
4178         Covered by existing tests.  This should not cause any change in functionality.
4179
4180         Updated for removal of GlyphMetricsMap.cpp
4181