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