2010-07-02 Zhenyao Mo <zmo@google.com>
[WebKit.git] / WebCore / ChangeLog
1 2010-07-02  Zhenyao Mo  <zmo@google.com>
2
3         Reviewed by Dimitri Glazkov.
4
5         Fix issues in boundary situations for WebGLRenderingContext::drawArrays/drawElements
6         https://bugs.webkit.org/show_bug.cgi?id=41473
7
8         * WebCore.gypi: Add CheckedInt.h.
9         * WebCore.xcodeproj/project.pbxproj: Add CheckedInt.h.
10         * html/canvas/CheckedInt.h: Added support of safe integer operations.
11         (mozilla::CheckedInt_internal::integer_type_manually_recorded_info::):
12         (mozilla::CheckedInt_internal::is_unsupported_type::):
13         (mozilla::CheckedInt_internal::):
14         (mozilla::CheckedInt_internal::integer_traits::):
15         (mozilla::CheckedInt_internal::integer_traits::min):
16         (mozilla::CheckedInt_internal::integer_traits::max):
17         (mozilla::CheckedInt_internal::has_sign_bit):
18         (mozilla::CheckedInt_internal::binary_complement):
19         (mozilla::CheckedInt_internal::is_in_range):
20         (mozilla::CheckedInt_internal::is_add_valid):
21         (mozilla::CheckedInt_internal::is_sub_valid):
22         (mozilla::CheckedInt_internal::is_mul_valid):
23         (mozilla::CheckedInt_internal::is_div_valid):
24         (mozilla::CheckedInt::CheckedInt):
25         (mozilla::CheckedInt::value):
26         (mozilla::CheckedInt::valid):
27         (mozilla::CheckedInt::operator -):
28         (mozilla::CheckedInt::operator ==):
29         (mozilla::CheckedInt::operator !=):
30         (mozilla::operator /):
31         (mozilla::cast_to_CheckedInt_impl::run):
32         (mozilla::):
33         (mozilla::cast_to_CheckedInt):
34         (mozilla::operator ==):
35         * html/canvas/WebGLRenderingContext.cpp:
36         (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Fix a bug against 0-size buffer situation.
37         (WebCore::WebGLRenderingContext::drawArrays): Deal with overflows and count==0 situation.
38         (WebCore::WebGLRenderingContext::drawElements): Deal with count==0 situation.
39
40 2010-07-02  Zhenyao Mo  <zmo@google.com>
41
42         Reviewed by Dimitri Glazkov.
43
44         linkProgram should fail when vertex/fragment shaders are not both present
45         https://bugs.webkit.org/show_bug.cgi?id=41380
46
47         Test: fast/canvas/webgl/program-test.html
48
49         * html/canvas/WebGLProgram.cpp: Add flag for link failure due to missing shaders.
50         (WebCore::WebGLProgram::WebGLProgram):
51         * html/canvas/WebGLProgram.h: Add interface for linkFailure flag.
52         (WebCore::WebGLProgram::isLinkFailureFlagSet):
53         (WebCore::WebGLProgram::setLinkFailureFlag):
54         * html/canvas/WebGLRenderingContext.cpp:
55         (WebCore::WebGLRenderingContext::getProgramParameter): Intercept when linkFailureFlag is set.
56         (WebCore::WebGLRenderingContext::linkProgram): Check if there are missing shaders and don't link if yes.
57         * html/canvas/WebGLShader.cpp: Cache shader type.
58         (WebCore::WebGLShader::WebGLShader):
59         * html/canvas/WebGLShader.h: Ditto.
60         (WebCore::WebGLShader::getType):
61
62 2010-07-02  Qi Zhang  <qi.2.zhang@nokia.com>
63
64         Reviewed by Laszlo Gombos.
65
66         [Qt]  Failed on http://philip.html5.org/tests/canvas/suite/tests/2d.drawImage.negativesource.html
67
68         Support negative width and height in canvas image draw
69
70         * platform/graphics/FloatRect.h:
71         * platform/graphics/qt/FloatRectQt.cpp:
72         (WebCore::FloatRect::normalized):
73         * platform/graphics/qt/ImageQt.cpp:
74         (WebCore::BitmapImage::draw):
75
76 2010-06-24  Dimitri Glazkov  <dglazkov@chromium.org>
77
78         Reviewed by Alexey Proskuryakov.
79
80         REGRESSION: Enter does not trigger submit of forms when focus is on select.
81         https://bugs.webkit.org/show_bug.cgi?id=39532
82
83         Restore behavior where hitting "Enter" on a select element attempts to submit
84         form implicitly.
85
86         * dom/SelectElement.cpp:
87         (WebCore::SelectElement::menuListDefaultEventHandler): Added htmlForm argument,
88             and attempting to submit implicitly.
89         (WebCore::SelectElement::listBoxDefaultEventHandler): Ditto.
90         (WebCore::SelectElement::defaultEventHandler): Plumbed through htmlForm argument.
91         * dom/SelectElement.h: Added htmlForm argument to method declaration.
92         * html/HTMLSelectElement.cpp:
93         (WebCore::HTMLSelectElement::defaultEventHandler): Changed to provide submitting form
94             as the argument.
95
96 2010-07-02  Kent Tamura  <tkent@chromium.org>
97
98         Reviewed by Darin Fisher.
99
100         [Chromium] Support indeterminate checkbox for Linux, and a small fix for Windows
101         https://bugs.webkit.org/show_bug.cgi?id=41508
102
103         * rendering/RenderThemeChromiumSkia.cpp:
104         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
105           Use dedicated images for indeterminate states.
106         * rendering/RenderThemeChromiumWin.cpp:
107         (WebCore::RenderThemeChromiumWin::determineClassicState):
108           Do not use DFCS_CHECKED in a case of indeterminate state in
109           order to have consistent appearance of indeterminate checkbox.
110
111 2010-07-02  Brent Fulgham  <bfulgham@webkit.org>
112
113         Reviewed by Gustavo Noronha Silva.
114
115         Fixes https://bugs.webkit.org/show_bug.cgi?id=41323.
116         Provides an implementation of the 'squiggle' used for
117         bad grammar or spelling, based on the Pango logic used
118         by the GTK builds.
119
120         No new tests. Covered by LayoutTests/editing/spelling
121
122         * WebCore.vcproj/WebCore.vcproj: Add new file holding underline
123         implementation, set to build only for WinCairo port.
124         * platform/graphics/cairo/DrawErrorUnderline.cpp: Added.
125         (drawErrorUnderline): New file containing the squiggle drawing
126         logic based on the Pango implementation.  Placed in its own file
127         to isolate licenses.
128         * platform/graphics/cairo/GraphicsContextCairo.cpp:
129         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
130         Have WinCairo build call new 'drawErrorUnderline' implementation.
131
132 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
133
134         Reviewed by Gustavo Noronha Silva.
135
136         [GTK] Separate DerivedSources per-project
137         https://bugs.webkit.org/show_bug.cgi?id=41109
138
139         Generate WebCore derived sources in <builddir>/DerivedSources/WebCore.
140
141         * GNUmakefile.am:
142
143 2010-07-02  Zhenyao Mo  <zmo@google.com>
144
145         Reviewed by Dimitri Glazkov.
146
147         Implement OpenGL ES 2.0 semantics for vertex attribute 0
148         https://bugs.webkit.org/show_bug.cgi?id=41300
149
150         Test: fast/canvas/webgl/gl-bind-attrib-location-test.html
151               fast/canvas/webgl/gl-vertex-attrib.html
152
153         * html/canvas/WebGLProgram.cpp:
154         (WebCore::WebGLProgram::numActiveAttribLocations): const.
155         (WebCore::WebGLProgram::getActiveAttribLocation): const.
156         (WebCore::WebGLProgram::isUsingVertexAttrib0): Determine whether vertex attrib 0 is used by the program.
157         * html/canvas/WebGLProgram.h: Declare isUsingVertexAttrib0.
158         * html/canvas/WebGLRenderingContext.cpp:
159         (WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with vertex attrib 0.
160         (WebCore::WebGLRenderingContext::disableVertexAttribArray): Ditto.
161         (WebCore::WebGLRenderingContext::drawArrays): Ditto.
162         (WebCore::WebGLRenderingContext::drawElements): Ditto.
163         (WebCore::WebGLRenderingContext::getVertexAttrib): Use cached value instead of calling glGetVertexAtrtrib.
164         (WebCore::WebGLRenderingContext::vertexAttrib1f): Validate input, deal with vertex attrib 0.
165         (WebCore::WebGLRenderingContext::vertexAttrib1fv): Ditto.
166         (WebCore::WebGLRenderingContext::vertexAttrib2f): Ditto.
167         (WebCore::WebGLRenderingContext::vertexAttrib2fv): Ditto.
168         (WebCore::WebGLRenderingContext::vertexAttrib3f): Ditto.
169         (WebCore::WebGLRenderingContext::vertexAttrib3fv): Ditto.
170         (WebCore::WebGLRenderingContext::vertexAttrib4f): Ditto.
171         (WebCore::WebGLRenderingContext::vertexAttrib4fv): Ditto.
172         (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
173         (WebCore::WebGLRenderingContext::handleNPOTTextures): Move isGLES2Compliant() to caller.
174         (WebCore::WebGLRenderingContext::vertexAttribImpl): Helper for vertexAttribNfv.
175         (WebCore::WebGLRenderingContext::initVertexAttrib0): Initialize vertex attrib 0.
176         (WebCore::WebGLRenderingContext::simulateVertexAttrib0): Simulate vertex attrib 0.
177         (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation): Restore states after simulating vertex attrib 0.
178         * html/canvas/WebGLRenderingContext.h:
179         (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): Tracking full vertex attrib states.
180         (WebCore::WebGLRenderingContext::VertexAttribState::initValue): Init value to [0,0,0,1].
181
182 2010-07-02  Zhenyao Mo  <zmo@google.com>
183
184         Reviewed by Dimitri Glazkov.
185
186         Need to validate the size of the incoming arrays for uniform* functions
187         https://bugs.webkit.org/show_bug.cgi?id=41383
188
189         * html/canvas/WebGLRenderingContext.cpp: Validate input array size.
190         (WebCore::WebGLRenderingContext::uniform1fv):
191         (WebCore::WebGLRenderingContext::uniform1iv):
192         (WebCore::WebGLRenderingContext::uniform2fv):
193         (WebCore::WebGLRenderingContext::uniform2iv):
194         (WebCore::WebGLRenderingContext::uniform3fv):
195         (WebCore::WebGLRenderingContext::uniform3iv):
196         (WebCore::WebGLRenderingContext::uniform4fv):
197         (WebCore::WebGLRenderingContext::uniform4iv):
198         (WebCore::WebGLRenderingContext::uniformMatrix2fv):
199         (WebCore::WebGLRenderingContext::uniformMatrix3fv):
200         (WebCore::WebGLRenderingContext::uniformMatrix4fv):
201         (WebCore::WebGLRenderingContext::validateUniformParameters):
202         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
203         * html/canvas/WebGLRenderingContext.h: Add helper functions.
204
205 2010-07-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
206
207         Reviewed by Simon Hausmann.
208
209         [Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear
210
211         The implementation of PathQt's addArcTo() was not float-safe and also had
212         a case where it drew an 'infinite' line, which is not part of the spec.
213
214         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto
215
216         We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder()
217         also had the same problem, and was refactored a bit in the process of fixing
218         the bug.
219
220         Initial patch by Andreas Kling.
221
222         https://bugs.webkit.org/show_bug.cgi?id=41412
223
224         * platform/graphics/qt/PathQt.cpp:
225
226 2010-07-02  Yury Semikhatsky  <yurys@chromium.org>
227
228         Reviewed by Pavel Feldman.
229
230         [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
231         https://bugs.webkit.org/show_bug.cgi?id=41511
232
233         Tests: fast/events/popup-blocked-from-fake-user-gesture.html
234                http/tests/inspector/change-iframe-src.html
235
236         * bindings/v8/ScriptController.cpp:
237         (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
238         from the call stack. Get event directly from hidden property to avoid unnecessary checks.
239         * bindings/v8/V8AbstractEventListener.cpp:
240         (WebCore::V8AbstractEventListener::invokeEventHandler):
241         * bindings/v8/V8HiddenPropertyName.h:
242         * bindings/v8/custom/V8DOMWindowCustom.cpp:
243         (WebCore::V8DOMWindow::eventAccessorGetter):
244         (WebCore::V8DOMWindow::eventAccessorSetter):
245
246 2010-07-02  Adam Barth  <abarth@webkit.org>
247
248         Reviewed by Eric Seidel.
249
250         Fix tokenization of <!----->
251         https://bugs.webkit.org/show_bug.cgi?id=41505
252
253         I noticed this error when browsing through the HTML5lib failures.
254         We're adding an extra character to the comment token, contrary to what
255         the spec says to do.
256
257         * html/HTMLTokenizer.cpp:
258         (WebCore::HTMLTokenizer::nextToken):
259
260 2010-07-02  Adam Barth  <abarth@webkit.org>
261
262         Reviewed by Eric Seidel.
263
264         Implement processFakePEndTagIfPInScope
265         https://bugs.webkit.org/show_bug.cgi?id=41503
266
267         This is a common idiom because <p> likes to close itself.
268
269         * html/HTMLTreeBuilder.cpp:
270         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
271         (WebCore::HTMLTreeBuilder::processStartTag):
272         * html/HTMLTreeBuilder.h:
273
274 2010-07-02  Adam Barth  <abarth@webkit.org>
275
276         Reviewed by Eric Seidel.
277
278         Implement AfterAfterBodyMode
279         https://bugs.webkit.org/show_bug.cgi?id=41501
280
281         In implementing this mode, I noticed a bug in the character processing
282         of the AfterBodyMode, which I fixed by adding a break statement.  Also,
283         to get one of the new tests to pass, I needed to implement one
284         notImplemented() in the InBody insertion mode.  Yay for testing.
285
286         * html/HTMLTreeBuilder.cpp:
287         (WebCore::HTMLTreeBuilder::processStartTag):
288         (WebCore::HTMLTreeBuilder::processEndTag):
289         (WebCore::HTMLTreeBuilder::processComment):
290         (WebCore::HTMLTreeBuilder::processCharacter):
291         (WebCore::HTMLTreeBuilder::processEndOfFile):
292
293 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
294
295         Unreviewed, rolling out r62371.
296         http://trac.webkit.org/changeset/62371
297         https://bugs.webkit.org/show_bug.cgi?id=41515
298
299         "Breaks media/controls-drag-timebar.html on 32-Bit Release"
300         (Requested by philn-tp on #webkit).
301
302         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
303         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
304         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
305
306 2010-06-28  Philippe Normand  <pnormand@igalia.com>
307
308         Reviewed by Xan Lopez.
309
310         [GStreamer] can't seek past maxTimeLoaded value
311         https://bugs.webkit.org/show_bug.cgi?id=40526
312
313         Extended the seekable range to the whole media. This allows video
314         played with progressive download to be seeked past the current
315         buffered position.
316
317         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
318         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
319         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
320
321 2010-07-02  Adam Barth  <abarth@webkit.org>
322
323         Reviewed by Eric Seidel.
324
325         Implement AfterBodyMode for HTML5 tree builder
326         https://bugs.webkit.org/show_bug.cgi?id=41500
327
328         In the coarse of implementing this state, I ran into an ASSERT in how
329         </br> tags where handled, which I fixed.  Technically, that could be a
330         separate patch, but it seemed harmless to include it here (with tests).
331
332         * html/HTMLTreeBuilder.cpp:
333         (WebCore::HTMLTreeBuilder::processStartTag):
334         (WebCore::HTMLTreeBuilder::processEndTag):
335         (WebCore::HTMLTreeBuilder::processComment):
336         (WebCore::HTMLTreeBuilder::processCharacter):
337         (WebCore::HTMLTreeBuilder::processEndOfFile):
338         (WebCore::HTMLTreeBuilder::insertCommentOnHTMLHtmlElement):
339         * html/HTMLTreeBuilder.h:
340
341 2010-07-02  Adam Barth  <abarth@webkit.org>
342
343         Reviewed by Eric Seidel.
344
345         Handle <base> and friends in AfterHeadMode
346         https://bugs.webkit.org/show_bug.cgi?id=41502
347
348         Implement notImplemented() per spec.
349
350         * html/HTMLTreeBuilder.cpp:
351         (WebCore::HTMLTreeBuilder::processStartTag):
352
353 2010-07-01  Oliver Hunt  <oliver@apple.com>
354
355         Build fix
356
357         * dom/Document.h:
358
359 2010-07-01  Oliver Hunt  <oliver@apple.com>
360
361         Reviewed by Maciej Stachowiak.
362
363         Add a FixedArray template to encapsulate fixed length arrays
364         https://bugs.webkit.org/show_bug.cgi?id=41506
365
366         Add forwarding header, and replace a few fixed length arrays
367         with the new FixedArray type.
368
369         * ForwardingHeaders/wtf/FixedArray.h: Added.
370         * dom/Document.h:
371         * platform/graphics/GlyphMetricsMap.h:
372
373 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
374
375         No review.
376
377         Fix a link warning in 32-bit by not explicitly exporting WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly().
378
379         * WebCore.AcceleratedCompositing.exp:
380
381 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
382
383         Reviewed by Dimitri Glazkov.
384
385         Add window.performance.navigation namespace
386         https://bugs.webkit.org/show_bug.cgi?id=41442
387
388         Adds window.performance.navigation namespace consisting of ".type"
389         and ".redirectCount". As part of this change, I renmaed "NavigationTiming"
390         to just "Timing" to avoid confusion.
391
392         No new tests because tests will be added in a subsequent patch when
393         functionality is added.
394
395         * Android.mk:
396         * CMakeLists.txt:
397         * DerivedSources.cpp:
398         * DerivedSources.make:
399         * GNUmakefile.am:
400         * WebCore.gypi:
401         * WebCore.pri:
402         * WebCore.pro:
403         * WebCore.vcproj/WebCore.vcproj:
404         * WebCore.xcodeproj/project.pbxproj:
405         * page/Navigation.cpp: Added.
406         (WebCore::Navigation::Navigation):
407         (WebCore::Navigation::frame):
408         (WebCore::Navigation::disconnectFrame):
409         (WebCore::Navigation::type):
410         (WebCore::Navigation::redirectCount):
411         * page/Navigation.h: Added.
412         (WebCore::Navigation::create):
413         * page/Navigation.idl: Added.
414         * page/NavigationTiming.cpp: Removed.
415         * page/NavigationTiming.h: Removed.
416         * page/NavigationTiming.idl: Removed.
417         * page/Performance.cpp:
418         (WebCore::Performance::navigation):
419         (WebCore::Performance::timing):
420         * page/Performance.h:
421         * page/Performance.idl:
422         * page/Timing.cpp: Added.
423         (WebCore::Timing::Timing):
424         (WebCore::Timing::frame):
425         (WebCore::Timing::disconnectFrame):
426         (WebCore::Timing::navigationStart):
427         * page/Timing.h: Added.
428         (WebCore::Timing::create):
429         * page/Timing.idl: Added.
430
431 2010-07-01  Daniel Cheng  <dcheng@chromium.org>
432
433         Reviewed by Jian Li.
434
435         [chromium] Dragging a link triggers an assert when accessing event.dataTransfer.types
436         https://bugs.webkit.org/show_bug.cgi?id=41493
437
438         ClipboardChromium::writeURL violates ClipboardChromium's assumption that uriList will always
439         be non-empty if url is valid.
440
441         No new tests.
442
443         * platform/chromium/ClipboardChromium.cpp:
444         (WebCore::ClipboardChromium::writeURL):
445
446 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
447
448         Reviewed by Tor Arne Vestbø.
449
450         [Qt] Clamp color stops passed to QGradient to 1.0
451         [https://bugs.webkit.org/show_bug.cgi?id=41484
452
453         Fixes an issue where color stops would be silently dropped from radial gradients.
454
455         * platform/graphics/qt/GradientQt.cpp:
456         (WebCore::Gradient::platformGradient):
457
458 2010-07-01  Eric Seidel  <eric@webkit.org>
459
460         Reviewed by Adam Barth.
461
462         HTMLTokenizer should ASSERT that it never emits a null character
463         https://bugs.webkit.org/show_bug.cgi?id=41448
464
465         No functional change, thus no tests.  These ASSERTs would have
466         caught the coding error which caused the trouble in bug 41436
467         (which was fixed by bug 41439).
468
469         * html/HTMLToken.h:
470         (WebCore::HTMLToken::beginStartTag):
471         (WebCore::HTMLToken::beginCharacter):
472         (WebCore::HTMLToken::beginDOCTYPE):
473         (WebCore::HTMLToken::appendToName):
474         (WebCore::HTMLToken::appendToComment):
475         (WebCore::HTMLToken::appendToAttributeName):
476         (WebCore::HTMLToken::appendToAttributeValue):
477         (WebCore::HTMLToken::appendToPublicIdentifier):
478         (WebCore::HTMLToken::appendToSystemIdentifier):
479
480 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
481
482         Reviewed by Tor Arne Vestbø.
483
484         Canvas: Don't paint with empty radial gradients
485         https://bugs.webkit.org/show_bug.cgi?id=41190
486
487         If a radial gradient has x0==x1 && y0==y1 && r0==r1, don't paint with it.
488
489         * html/canvas/CanvasRenderingContext2D.cpp:
490         (WebCore::CanvasRenderingContext2D::fillRect):
491         * platform/graphics/Gradient.h:
492         (WebCore::Gradient::isZeroSize):
493
494 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
495
496         Reviewed by Adam Barth.
497
498         Add interface for network platform to pass up timing information
499         https://bugs.webkit.org/show_bug.cgi?id=41437
500
501         The Web Timing feature requires the network platform to expose detailed
502         timing information for the main resource. This patch adds that data to
503         the ResourceResponseBase. Since the 82 bytes of information is only
504         needed for the main resource, it is a RefPtr to avoid using the memory
505         for other resource types.
506
507         No new tests because no new functionality.
508
509         * GNUmakefile.am:
510         * WebCore.gypi:
511         * WebCore.pro:
512         * WebCore.vcproj/WebCore.vcproj:
513         * WebCore.xcodeproj/project.pbxproj:
514         * platform/network/ResourceLoadTiming.h: Added.
515         (WebCore::ResourceLoadTiming::create):
516         (WebCore::ResourceLoadTiming::deepCopy):
517         (WebCore::ResourceLoadTiming::operator==):
518         (WebCore::ResourceLoadTiming::operator!=):
519         (WebCore::ResourceLoadTiming::ResourceLoadTiming):
520         * platform/network/ResourceResponseBase.cpp:
521         (WebCore::ResourceResponseBase::adopt):
522         (WebCore::ResourceResponseBase::copyData):
523         (WebCore::ResourceResponseBase::resourceLoadTiming):
524         (WebCore::ResourceResponseBase::setResourceLoadTiming):
525         (WebCore::ResourceResponseBase::compare):
526         * platform/network/ResourceResponseBase.h:
527
528 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
529
530         Unreviewed, rolling out r62321.
531         http://trac.webkit.org/changeset/62321
532         https://bugs.webkit.org/show_bug.cgi?id=41494
533
534         Broke the non-win builds. (Requested by dumi on #webkit).
535
536         * dom/ScriptExecutionContext.cpp:
537         (WebCore::ScriptExecutionContext::addOpenDatabase):
538         (WebCore::ScriptExecutionContext::removeOpenDatabase):
539         (WebCore::ScriptExecutionContext::stopDatabases):
540         * dom/ScriptExecutionContext.h:
541         * storage/Database.cpp:
542         (WebCore::Database::openDatabase):
543         (WebCore::Database::Database):
544         (WebCore::Database::markAsDeletedAndClose):
545         (WebCore::ContextRemoveOpenDatabaseTask::create):
546         (WebCore::ContextRemoveOpenDatabaseTask::performTask):
547         (WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
548         (WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
549         (WebCore::Database::close):
550         (WebCore::Database::closeImmediately):
551         (WebCore::Database::stop):
552         (WebCore::Database::performPolicyChecks):
553         * storage/Database.h:
554         (WebCore::Database::):
555         (WebCore::Database::stopped):
556         * storage/DatabaseTask.cpp:
557         (WebCore::DatabaseTask::performTask):
558         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
559         (WebCore::DatabaseOpenTask::doPerformTask):
560         (WebCore::DatabaseOpenTask::debugTaskName):
561         (WebCore::DatabaseCloseTask::DatabaseCloseTask):
562         (WebCore::DatabaseCloseTask::doPerformTask):
563         (WebCore::DatabaseCloseTask::debugTaskName):
564         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
565         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
566         (WebCore::DatabaseTransactionTask::doPerformTask):
567         (WebCore::DatabaseTransactionTask::debugTaskName):
568         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
569         (WebCore::DatabaseTableNamesTask::doPerformTask):
570         (WebCore::DatabaseTableNamesTask::debugTaskName):
571         * storage/DatabaseTask.h:
572         (WebCore::DatabaseOpenTask::create):
573         (WebCore::DatabaseCloseTask::create):
574         (WebCore::DatabaseTransactionTask::create):
575         (WebCore::DatabaseTableNamesTask::create):
576         * storage/DatabaseThread.cpp:
577         (WebCore::DatabaseThread::databaseThread):
578         * storage/DatabaseTracker.cpp:
579         (WebCore::DatabaseTracker::addOpenDatabase):
580         * storage/SQLTransaction.cpp:
581         (WebCore::SQLTransaction::executeSQL):
582         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
583
584 2010-07-01  Xan Lopez  <xlopez@igalia.com>
585
586         Reviewed by Gustavo Noronha.
587
588         [GTK] Stop using GdkRegion in 3.x mode
589         https://bugs.webkit.org/show_bug.cgi?id=41463
590
591         Make us compile without using GdkRegion, since it's gone from GTK+
592         3.x.
593
594         * platform/graphics/IntRect.h:
595         * platform/graphics/cairo/GraphicsContextCairo.cpp:
596         (WebCore::GraphicsContext::drawFocusRing):
597         * platform/graphics/gtk/FontGtk.cpp:
598         (WebCore::cairo_region_shrink):
599         (WebCore::Font::drawComplexText):
600         * platform/gtk/GtkPluginWidget.cpp:
601         (WebCore::GtkPluginWidget::paint):
602         * platform/gtk/RenderThemeGtk.h:
603         * platform/gtk/ScrollbarGtk.cpp:
604         (ScrollbarGtk::paint):
605
606 2010-06-30  Dumitru Daniliuc  <dumi@chromium.org>
607
608         Reviewed by Darin Fisher.
609
610         DB clean up.
611         https://bugs.webkit.org/show_bug.cgi?id=41404
612
613         1. Made all DatabaseTasks internal classes of Database and made
614            the Database methods called by those tasks private.
615         2. Removed the Database::stop{ed}() methods.
616         3. Removed the code that kept track of open databases from
617            ScriptExecutionContext (no longer needed).
618         4. Made minor changes to Database::closeImmediately() to make it
619            possible for DatabaseThread to call that method instead of
620            close().
621         5. Minor fix to DatabaseTracker: addOpenDatabase() should call
622            OriginQuotaManager::addDatabase() if the origin quota manager
623            is not tracking this origin.
624         6. Removed Database::performPolicyChecks(). We already update the
625            DB size after each transaction, and we enforce a max size for
626            the DB at the beginning of each transaction.
627
628         * dom/ScriptExecutionContext.cpp:
629         (WebCore::ScriptExecutionContext::stopDatabases):
630         * dom/ScriptExecutionContext.h:
631         (WebCore::ScriptExecutionContext::hasOpenDatabases):
632         * storage/Database.cpp:
633         (WebCore::Database::openDatabase):
634         (WebCore::Database::Database):
635         (WebCore::Database::markAsDeletedAndClose):
636         (WebCore::Database::close):
637         (WebCore::Database::closeImmediately):
638         * storage/Database.h:
639         * storage/DatabaseTask.cpp:
640         (WebCore::DatabaseTask::performTask):
641         (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
642         (WebCore::Database::DatabaseOpenTask::doPerformTask):
643         (WebCore::Database::DatabaseOpenTask::debugTaskName):
644         (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
645         (WebCore::Database::DatabaseCloseTask::doPerformTask):
646         (WebCore::Database::DatabaseCloseTask::debugTaskName):
647         (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
648         (WebCore::Database::DatabaseTransactionTask::doPerformTask):
649         (WebCore::Database::DatabaseTransactionTask::debugTaskName):
650         (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
651         (WebCore::Database::DatabaseTableNamesTask::doPerformTask):
652         (WebCore::Database::DatabaseTableNamesTask::debugTaskName):
653         * storage/DatabaseTask.h:
654         (WebCore::Database::DatabaseOpenTask::create):
655         (WebCore::Database::DatabaseCloseTask::create):
656         (WebCore::Database::DatabaseTransactionTask::create):
657         (WebCore::Database::DatabaseTableNamesTask::create):
658         * storage/DatabaseThread.cpp:
659         (WebCore::DatabaseThread::databaseThread):
660         * storage/DatabaseTracker.cpp:
661         (WebCore::DatabaseTracker::addOpenDatabase):
662         * storage/SQLTransaction.cpp:
663         (WebCore::SQLTransaction::executeSQL):
664         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
665
666 2010-07-01  Kent Tamura  <tkent@chromium.org>
667
668         Reviewed by Darin Fisher.
669
670         [Chromium] Support indeterminate checkbox for Windows
671         https://bugs.webkit.org/show_bug.cgi?id=41444
672
673         * rendering/RenderThemeChromiumWin.cpp:
674         (WebCore::RenderThemeChromiumWin::determineState):
675          Check isIndeterminate() and set an appropriate flag value.
676
677 2010-07-01  Alexey Proskuryakov  <ap@apple.com>
678
679         Reviewed by Dan Bernstein.
680
681         https://bugs.webkit.org/show_bug.cgi?id=41488
682         <rdar://problem/7487420> Crash in SubresourceLoader::create when load is initiated from plug-in destructor
683
684         Test: plugins/js-from-destroy.html
685
686         * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Null check active
687         document loader.
688
689 2010-07-01  Andy Estes  <aestes@apple.com>
690
691         Reviewed by Darin Adler.
692
693         <rdar://problem/8113003> Correctly fire beforeload events for images
694         added to the DOM using .innerHTML.
695         https://bugs.webkit.org/show_bug.cgi?id=40919
696
697         Test: fast/dom/beforeload/image-before-load-innerHTML.html
698
699         * html/LegacyHTMLDocumentParser.cpp:
700         (WebCore::LegacyHTMLDocumentParser::write): Do not fire synchronous
701         image beforeload events immediately after parsing a document fragment.
702         Let the events fire later, giving the fragment time to potentially be
703         inserted into the document.
704
705 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
706
707         Reviewed by Tor Arne Vestbø.
708
709         Canvas: bezierCurveTo() and quadraticCurveTo() must ensure subpaths
710         https://bugs.webkit.org/show_bug.cgi?id=41192
711
712         If the current path is empty, bezierCurveTo() and quadraticCurveTo() will now
713         move to the (first) control point before adding the curve.
714
715         Spec links:
716         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-beziercurveto
717         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-quadraticcurveto
718
719         * html/canvas/CanvasRenderingContext2D.cpp:
720         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
721         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
722
723 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
724
725         Reviewed by Darin Adler.
726
727         Canvas element cannot have negative width or height (HTML5 spec 4.8.11)
728         https://bugs.webkit.org/show_bug.cgi?id=39149
729
730         If assigned a negative value, it should default to 300 for width and 150 for height.
731
732         Spec link:
733         http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width
734
735         Test: fast/canvas/canvas-negative-size.html
736
737         * html/HTMLCanvasElement.cpp:
738         (WebCore::HTMLCanvasElement::reset):
739
740 2010-07-01  Darin Adler  <darin@apple.com>
741
742         Reviewed by Steve Falkenburg.
743
744         Turn on adoptRef assertion for TreeShared.
745
746         * platform/TreeShared.h: Remove LOOSE_TREE_SHARED and all the ifdefs.
747         Actually, I used LOOSE_REF_COUNTED by accident in a few places, but
748         removing them all now.
749
750         * rendering/ShadowElement.cpp:
751         (WebCore::ShadowBlockElement::create): Added adoptRef. This was a
752         storage leak before, probably recently introduced r61324.
753         (WebCore::ShadowInputElement::create): Ditto.
754
755 2010-07-01  Xan Lopez  <xlopez@igalia.com>
756
757         Reviewed by Gustavo Noronha.
758
759         Only include the geolocation IDL in the GObject DOM bindings set
760         if geolocation is enabled.
761
762         * GNUmakefile.am:
763
764 2010-07-01  Timothy Hatcher  <timothy@apple.com>
765
766         Provide a WebView preference to disable DNS prefetching.
767
768         https://bugs.webkit.org/show_bug.cgi?id=28825
769         rdar://problem/7181249
770
771         Reviewed by Darin Adler.
772
773         * WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled.
774         * dom/Document.cpp:
775         (WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled().
776         * page/Settings.cpp:
777         (WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true.
778         (WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled.
779         * page/Settings.h:
780         (WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled.
781
782 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
783
784         Reviewed by Darin Adler.
785
786         Get accelerated compositing working with webkit2
787         https://bugs.webkit.org/show_bug.cgi?id=41084
788
789         Step 2: add a  method, syncCompositingStateForThisLayerOnly(), to GraphicsLayer to commit
790         batched changes non-recursively. This allows us to use GraphicsLayer in places where we
791         don't want to kick off a recursive commit of the entire tree.
792
793         * platform/graphics/GraphicsLayer.h:
794         (WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly):
795         * platform/graphics/mac/GraphicsLayerCA.h:
796         * platform/graphics/mac/GraphicsLayerCA.mm:
797         (WebCore::GraphicsLayerCA::syncCompositingStateForThisLayerOnly):
798         * WebCore.AcceleratedCompositing.exp: Export the new method for use in WebKit2.
799
800 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
801
802         Reviewed by Sam Weinig.
803
804         Get accelerated compositing working with webkit2
805         https://bugs.webkit.org/show_bug.cgi?id=41084
806
807         Step 1: add a new .exp file for WebCore, which exports symbols only when USE(ACCELERATED_COMPOSITING)
808         is defined.
809         
810         Also export WebCore::FloatSize::FloatSize(WebCore::IntSize const&) from WebCore.
811
812         * DerivedSources.make:
813         * WebCore.AcceleratedCompositing.exp: Added.
814         * WebCore.base.exp:
815         * WebCore.xcodeproj/project.pbxproj:
816
817 2010-07-01  Alexey Proskuryakov  <ap@apple.com>
818
819         Reviewed by Darin Adler.
820
821         <rdar://problem/8148656> <https://bugs.webkit.org/show_bug.cgi?id=41431>
822         REGRESSION (r49411): Various crashes due to JavaScript execution during plug-in destruction
823
824         Test: plugins/write-xssauditor-from-destroy.html
825
826         Fix specific known cases that also crash in same process case. I don't know if there is
827         any rule for when documentLoader should be checked for being null, it looks like a mess.
828
829         * loader/FrameLoader.cpp:
830         (WebCore::FrameLoader::referrer):
831         * page/XSSAuditor.cpp:
832         (WebCore::XSSAuditor::findInRequest):
833
834 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
835
836         Reviewed by Darin Adler.
837
838         The HTML5 canvas 2d.drawImage.zerocanvas test does not pass
839         https://bugs.webkit.org/show_bug.cgi?id=40271
840
841         Throw INVALID_STATE_ERR when attempting to draw a canvas with zero width or height.
842
843         Spec link:
844         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
845
846         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
847         (WebCore::JSCanvasRenderingContext2D::drawImage): Call setDOMException after drawImage(canvas, x, y)
848         * html/canvas/CanvasRenderingContext2D.cpp:
849         (WebCore::CanvasRenderingContext2D::drawImage):
850
851 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
852
853         Reviewed by Oliver Hunt.
854
855         [Qt] Canvas: clip() should use non-zero winding rule
856         https://bugs.webkit.org/show_bug.cgi?id=41466
857
858         Use non-zero winding number rule when clipping a GraphicsContext from canvas.
859         Fixes appearance of the "pill" in the web inspector.
860
861         * platform/graphics/qt/GraphicsContextQt.cpp:
862         (WebCore::GraphicsContext::canvasClip):
863
864 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
865
866         Unreviewed, rolling out r62246.
867         http://trac.webkit.org/changeset/62246
868         https://bugs.webkit.org/show_bug.cgi?id=41470
869
870         "Worker tests are broken in Chromium" (Requested by yurys on
871         #webkit).
872
873         * bindings/v8/ScriptController.cpp:
874         (WebCore::ScriptController::processingUserGesture):
875         * bindings/v8/V8AbstractEventListener.cpp:
876         (WebCore::V8AbstractEventListener::invokeEventHandler):
877         * bindings/v8/V8HiddenPropertyName.h:
878         * bindings/v8/custom/V8DOMWindowCustom.cpp:
879         (WebCore::V8DOMWindow::eventAccessorGetter):
880         (WebCore::V8DOMWindow::eventAccessorSetter):
881
882 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
883
884         Reviewed by Tor Arne Vestbø.
885
886         Canvas: Exception erroneously thrown for drawImage() when image.complete=false
887         https://bugs.webkit.org/show_bug.cgi?id=33968
888
889         Do nothing in drawImage() if called with an image whose 'complete'
890         attribute is false, or a video whose readyState is either HAVE_NOTHING
891         or HAVE_METADATA.
892
893         Spec link:
894         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
895
896         Test: fast/canvas/canvas-drawImage-incomplete.html
897
898         * html/canvas/CanvasRenderingContext2D.cpp:
899         (WebCore::CanvasRenderingContext2D::drawImage):
900
901 2010-07-01  Justin Schuh  <jschuh@chromium.org>
902
903         Reviewed by Dan Bernstein.
904
905         Prevent crash on counter destruction
906         https://bugs.webkit.org/show_bug.cgi?id=40032
907
908         Added counter destruction to RenderWidget::destroy()
909
910         Test: fast/css/counters/destroy-counter-crash.html
911
912         * rendering/RenderWidget.cpp:
913         (WebCore::RenderWidget::destroy):
914
915 2010-07-01  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
916
917         Unreviewed build fix after r62215.
918
919         No new functionality, so no new tests.
920
921         * CMakeLists.txt: Add missing files and re-sort.
922
923 2010-07-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
924
925         Reviewed by Kenneth Rohde Christiansen.
926
927         [Qt] Remove an unneeded assert.
928
929         This assert is triggered for example while showing the falling leaves demo.
930         GraphicsLayerQtImpl::toGraphicsLayerQtImpl asserts that its input
931         pointer is null. Looking at the uses of this method it seems like
932         it is expected to return null if a null pointer is given to it.
933
934         * platform/graphics/qt/GraphicsLayerQt.cpp:
935         (WebCore::toGraphicsLayerQtImpl):
936
937 2010-06-16  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
938
939         Reviewed by Simon Hausmann.
940
941         [Qt] Fix qmake vcproj generation for QtWebKit.
942
943         qmake use TARGET=/LIBS+= -lTARGET to create dependencies
944         between projects in a subdir template.
945
946         Since when compiling outside of Qt we hijack the target name of
947         QtWebKit to add the configuration and version suffix to the binary
948         filename, qmake can't establish the WebCore project as a dependency
949         to QtTestBrowser.
950
951         This patch makes sure that the target is not hijacked on the
952         first of the three passes where the dependencies are determined.
953
954         * WebCore.pro:
955
956 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
957
958         Reviewed by Dirk Schulze.
959
960         SVGRenderStyle::diff() is missing
961         https://bugs.webkit.org/show_bug.cgi?id=41455
962
963         Don't just return StyleDifferenceLayout when two SVGRenderStyle objects differ.
964         Figure out when to repaint, and as last resort do a relayout.
965
966         Lively Kernel doesn't do any relayouts anymore, same for lots of demos in the IE9 testcenter.
967
968         * rendering/style/RenderStyle.cpp:
969         (WebCore::RenderStyle::diff):
970         * rendering/style/SVGRenderStyle.cpp:
971         (WebCore::SVGRenderStyle::diff):
972         * rendering/style/SVGRenderStyle.h:
973
974 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
975
976         Revert accidental commit.
977
978         * platform/network/qt/ResourceRequestQt.cpp:
979         (WebCore::ResourceRequest::toNetworkRequest):
980
981 2010-07-01  Patrick Gansterer  <paroga@paroga.com>
982
983         Reviewed by Dirk Schulze.
984
985         Buildfix for !ENABLE(FILTERS) after r62238.
986         https://bugs.webkit.org/show_bug.cgi?id=41456
987
988         * rendering/SVGRenderSupport.cpp:
989         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
990
991 2010-07-01  MORITA Hajime  <morrita@google.com>
992
993         Unreviewed build fix.
994
995         * rendering/RenderInputSpeech.cpp:
996         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
997         * rendering/RenderInputSpeech.h:
998         * rendering/RenderTheme.cpp:
999         (WebCore::RenderTheme::paintInputFieldSpeechButton):
1000         * rendering/RenderTheme.h:
1001
1002 2010-07-01  Satish Sampath  <satish@chromium.org>
1003
1004         Reviewed by Kent Tamura.
1005
1006         Rendering the speech button in input elements.
1007         https://bugs.webkit.org/show_bug.cgi?id=40984
1008
1009         The button currently has only one state and rendered as an image on all platforms. Subsequent
1010         patches will add user input handling and more states + rendering code to the button. The
1011         button's appearance can be customized by individual ports in their RenderTheme implementation
1012         if required.
1013
1014         Tests: platform/mac/fast/forms/input-appearance-numberandspeech.html
1015                platform/mac/fast/forms/input-appearance-searchandspeech.html
1016                platform/mac/fast/forms/input-appearance-speechbutton.html
1017
1018         * GNUmakefile.am:
1019         * Resources/inputSpeech.png: Added.
1020         * Resources/inputSpeech.tiff: Added. Used by the Mac implementation.
1021         * WebCore.gypi:
1022         * WebCore.pro:
1023         * WebCore.qrc:
1024         * WebCore.xcodeproj/project.pbxproj:
1025         * platform/graphics/qt/ImageQt.cpp:
1026         (loadResourcePixmap): Load the speech button images for Qt port.
1027         * rendering/RenderInputSpeech.cpp: Added.
1028         (WebCore::RenderInputSpeech::adjustInputFieldSpeechButtonStyle): Sets the button's dimensions.
1029         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
1030         * rendering/RenderInputSpeech.h: Added.
1031         * rendering/RenderTextControlSingleLine.cpp:
1032         (WebCore::RenderTextControlSingleLine::layout):
1033         (WebCore::RenderTextControlSingleLine::forwardEvent):
1034         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): Create the speech button.
1035         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
1036         * rendering/RenderTheme.cpp:
1037         (WebCore::RenderTheme::adjustStyle):
1038         (WebCore::RenderTheme::paint):
1039         (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle):
1040         (WebCore::RenderTheme::paintInputFieldSpeechButton):
1041         * rendering/RenderTheme.h:
1042         * rendering/RenderThemeMac.mm:
1043         (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Get cancel button to render to the left of
1044         speech button when enabled.
1045
1046 2010-07-01  Mario Sanchez Prada  <msanchez@igalia.com>
1047
1048         Reviewed by Xan Lopez.
1049
1050         [GTK] Extra nullcheck needed at SelectionControllerGtk.cpp
1051         https://bugs.webkit.org/show_bug.cgi?id=41447
1052
1053         Extra null check added.
1054
1055         * editing/gtk/SelectionControllerGtk.cpp:
1056         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
1057
1058 2010-07-01  Yury Semikhatsky  <yurys@chromium.org>
1059
1060         Reviewed by Adam Barth.
1061
1062         [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
1063         https://bugs.webkit.org/show_bug.cgi?id=41350
1064
1065         Tests: fast/events/popup-blocked-from-fake-user-gesture.html
1066                http/tests/inspector/change-iframe-src.html
1067
1068         * bindings/v8/ScriptController.cpp:
1069         (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
1070         from the call stack. Get event directly from hidden property to avoid unnecessary checks.
1071         * bindings/v8/V8AbstractEventListener.cpp:
1072         (WebCore::V8AbstractEventListener::invokeEventHandler):
1073         * bindings/v8/V8HiddenPropertyName.h:
1074         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1075         (WebCore::V8DOMWindow::eventAccessorGetter):
1076         (WebCore::V8DOMWindow::eventAccessorSetter):
1077
1078 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
1079
1080         Reviewed by Dirk Schulze.
1081
1082         RenderSVGContainer/RenderSVGRoot report wrong strokeBoundingBox()
1083         https://bugs.webkit.org/show_bug.cgi?id=41450
1084
1085         strokeBoundingBox() was reporting the repaintRectInLocalCoordinates() for children of a container,
1086         instead of the actual strokeBoundingBox(). Only visible in WebInspector when looking at a container
1087         which has a resource applied and contains a children which also has a resource applied.
1088
1089         Doesn't affect any test results.
1090
1091         * rendering/RenderSVGContainer.cpp:
1092         (WebCore::RenderSVGContainer::objectBoundingBox):
1093         (WebCore::RenderSVGContainer::strokeBoundingBox):
1094         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
1095         * rendering/RenderSVGRoot.cpp:
1096         (WebCore::RenderSVGRoot::objectBoundingBox): Deinlined this functions, it's virtual so there's no gain.
1097         (WebCore::RenderSVGRoot::strokeBoundingBox): Ditto.
1098         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
1099         * rendering/RenderSVGRoot.h:
1100         * rendering/SVGRenderSupport.cpp:
1101         (WebCore::SVGRenderSupport::computeContainerBoundingBox):
1102         * rendering/SVGRenderSupport.h: Add enum controlling the mode of container bounding box mode calculation.
1103
1104 2010-07-01  Zoltan Herczeg  <zherczeg@webkit.org>
1105
1106         Reviewed by Nikolas Zimmermann.
1107
1108         Implementing feConvolveMatrix svg filter
1109         https://bugs.webkit.org/show_bug.cgi?id=5861
1110
1111         The implementation is optimized for speed, and uses
1112         multiple algorithms for different parts of the image.
1113         See SVGFEConvolveMatrixElement.cpp for a detailed
1114         description.
1115
1116         * svg/SVGFEConvolveMatrixElement.cpp:
1117         (WebCore::SVGFEConvolveMatrixElement::build):
1118         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
1119         (WebCore::clampRGBAValue):
1120         (WebCore::FEConvolveMatrix::fastSetInteriorPixels):
1121         (WebCore::FEConvolveMatrix::getPixelValue):
1122         (WebCore::FEConvolveMatrix::fastSetOuterPixels):
1123         (WebCore::FEConvolveMatrix::setInteriorPixels):
1124         (WebCore::FEConvolveMatrix::setOuterPixels):
1125         (WebCore::FEConvolveMatrix::apply):
1126         * svg/graphics/filters/SVGFEConvolveMatrix.h:
1127         (WebCore::FEConvolveMatrix::uniteChildEffectSubregions):
1128
1129 2010-07-01  Adam Barth  <abarth@webkit.org>
1130
1131         Reviewed by Eric Seidel.
1132
1133         Abstract 'a'-'z' checks into a function
1134         https://bugs.webkit.org/show_bug.cgi?id=41438
1135
1136         Hopefully this version is more readable.
1137
1138         * html/HTMLTokenizer.cpp:
1139         (WebCore::HTMLTokenizer::nextToken):
1140
1141 2010-07-01  Adam Barth  <abarth@webkit.org>
1142
1143         Reviewed by Eric Seidel.
1144
1145         Parameter names in frame src URLs parsed incorrectly if resembles HTML entity code followed by underscore
1146         https://bugs.webkit.org/show_bug.cgi?id=41345
1147
1148         Apparently whether an HTML entity requires a trailing semicolon varies
1149         depending on the entity.  The full table is in the spec:
1150
1151         http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html#named-character-references
1152
1153         I believe branch added in this patch is accurate.  At some point, I'll
1154         add a full test suite for all the named entities.
1155
1156         * html/HTMLEntityParser.cpp:
1157         (WebCore::consumeHTMLEntity):
1158
1159 2010-07-01  Eric Seidel  <eric@webkit.org>
1160
1161         Unreviewed.  Fix paste-o in Gtk build file.
1162
1163         Split out HTMLFormattingElementList into its own file
1164         https://bugs.webkit.org/show_bug.cgi?id=41440
1165
1166         * GNUmakefile.am:
1167
1168 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
1169
1170         Reviewed by Eric Seidel & Dirk Schulze.
1171
1172         Performance regression for setting content of <text> in SVG
1173         https://bugs.webkit.org/show_bug.cgi?id=36564
1174
1175         Dramatically reducing the number of repaintRectInLocalCoordinates() calls needed while painting.
1176         Do not pass the repaintRect to prepareToRenderSVGContent, only calculate it if opacity < 1 or -webkit-svg-shadow is set.
1177         Most noticeable is that RenderSVGRoot had to visit all children, before actually painting, just to calculate the repaint rect.
1178         And as RenderSVGRoot never carries shadow or opacity it was completly useless.
1179
1180         RenderSVGContainer also called repaintRectInLocalCoordinates, but the result is only needed when painting outlines, which is a rare case.
1181         These modifications fix the performance regression and the number of repaintRectInLocalCoordinate calls for the complex example in
1182         the bug report with 500 runs shrinks from 1.7 million calls to less than 105.000.
1183
1184         50 runs without the patch: ~ 520.8ms
1185         50 runs with the patch   : ~ 501.8ms
1186
1187         The test calls setTimeout(0) 50 times, that already accounts for the 500ms. So setting the content of a <text>
1188         element withs clippers applied, is very cheap now.
1189
1190         Also remove the need to pass in a filter argument to prepareToRenderSVGContent/finishRenderSVGContent, it can easily be grabbed
1191         of the cache - just like all other resources are handled, simplifying the code.
1192
1193         * rendering/RenderPath.cpp:
1194         (WebCore::RenderPath::paint):
1195         * rendering/RenderSVGContainer.cpp:
1196         (WebCore::RenderSVGContainer::paint):
1197         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
1198         * rendering/RenderSVGImage.cpp:
1199         (WebCore::RenderSVGImage::paint):
1200         * rendering/RenderSVGRoot.cpp:
1201         (WebCore::RenderSVGRoot::paint):
1202         * rendering/SVGInlineFlowBox.cpp:
1203         (WebCore::SVGInlineFlowBox::paint):
1204         * rendering/SVGRenderSupport.cpp:
1205         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
1206         (WebCore::SVGRenderSupport::finishRenderSVGContent):
1207         * rendering/SVGRenderSupport.h:
1208         * rendering/SVGRootInlineBox.cpp:
1209         (WebCore::SVGRootInlineBox::paint):
1210
1211 2010-07-01  Eric Seidel  <eric@webkit.org>
1212
1213         Reviewed by Adam Barth.
1214
1215         Split out HTMLFormattingElementList into its own file
1216         https://bugs.webkit.org/show_bug.cgi?id=41440
1217
1218         No functional changes, thus no tests.
1219
1220         * Android.mk:
1221         * CMakeLists.txt:
1222         * GNUmakefile.am:
1223         * WebCore.gypi:
1224         * WebCore.pro:
1225         * WebCore.vcproj/WebCore.vcproj:
1226         * WebCore.xcodeproj/project.pbxproj:
1227         * html/HTMLTreeBuilder.cpp:
1228         (WebCore::HTMLTreeBuilder::processEndTag):
1229         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
1230         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
1231         * html/HTMLTreeBuilder.h:
1232
1233 2010-07-01  Adam Barth  <abarth@webkit.org>
1234
1235         Reviewed by Eric Seidel.
1236
1237         BogusCommentState should come in from the cold
1238         https://bugs.webkit.org/show_bug.cgi?id=41439
1239
1240         The BogusCommentState has always been wrong.  The proximate issue is
1241         that it didn't handle resuming correctly when parsing a partial input
1242         stream.  Now that we have EOF working properly, we can actually
1243         implement this state correctly.
1244
1245         We need to distinguish when we enter this state from when we continue
1246         in this state.  We could do that with a branch for each character, but
1247         it seemed easier to split the state in two, even though that leaves us
1248         with one more state in our tokenizer than we have in the HTML5 spec.
1249
1250         * html/HTMLTokenizer.cpp:
1251         (WebCore::HTMLTokenizer::nextToken):
1252         * html/HTMLTokenizer.h:
1253         (WebCore::HTMLTokenizer::):
1254
1255 2010-06-30  Adam Barth  <abarth@webkit.org>
1256
1257         Reviewed by Eric Seidel.
1258
1259         HTMLTokenizer's whitespace checks are very redundant
1260         https://bugs.webkit.org/show_bug.cgi?id=41434
1261
1262         This patch adds isTokenizerWhitespace, which replaces a lot of
1263         redundant logic in nextToken.
1264
1265         * html/HTMLTokenizer.cpp:
1266         (WebCore::HTMLTokenizer::nextToken):
1267
1268 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
1269
1270         Reviewed by Kenneth Rohde Christiansen.
1271
1272         [Qt] Crash when uploading document to Google Docs
1273         https://bugs.webkit.org/show_bug.cgi?id=40795
1274
1275         Fix bug where the local file wasn't opened (for POSTing)
1276         if it were the first element in the form.
1277
1278         * platform/network/qt/QNetworkReplyHandler.cpp:
1279         (WebCore::FormDataIODevice::FormDataIODevice):
1280         (WebCore::FormDataIODevice::moveToNextElement):
1281         (WebCore::FormDataIODevice::openFileForCurrentElement):
1282         * platform/network/qt/QNetworkReplyHandler.h:
1283
1284 2010-06-30  Eric Seidel  <eric@webkit.org>
1285
1286         Reviewed by Adam Barth.
1287
1288         Implement generateImpliedEndTags and deploy to steps which were blocked on it
1289         https://bugs.webkit.org/show_bug.cgi?id=41432
1290
1291         This fixes one subtest in html5lib/runner.html and positively
1292         effects a couple others.
1293
1294         More code sharing will be needed here.  For the moment
1295         we're using copy/paste code, but that will soon be shared.
1296
1297         * html/HTMLTreeBuilder.cpp:
1298         (WebCore::HTMLTreeBuilder::processEndTag):
1299         (WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion):
1300         (WebCore::HTMLTreeBuilder::generateImpliedEndTags):
1301         * html/HTMLTreeBuilder.h:
1302
1303 2010-06-30  Csaba Osztrogonác  <ossy@webkit.org>
1304
1305         Unreviewed buildfix after r62196 and r62214.
1306
1307         * html/HTMLElementStack.cpp: Put !ENABLE(SVG) guard instead of 
1308         !ENABLE(SVG_FOREIGN_OBJECT) around include of SVGNames.h.
1309
1310 2010-06-30  Sam Weinig  <sam@webkit.org>
1311
1312         Really fix the windows build.
1313
1314         * bindings/js/JSBindingsAllInOne.cpp:
1315
1316 2010-06-30  Sam Weinig  <sam@webkit.org>
1317
1318         Another Chromium build fix.
1319
1320         * page/DOMWindow.idl:
1321
1322 2010-06-30  Sam Weinig  <sam@webkit.org>
1323
1324         Fix Chromium build.
1325
1326         * WebCore.gyp/WebCore.gyp:
1327
1328 2010-06-30  Sam Weinig  <sam@webkit.org>
1329
1330         Fix Windows build.
1331
1332         * bindings/js/JSBindingsAllInOne.cpp:
1333
1334 2010-06-30  Sam Weinig  <sam@webkit.org>
1335
1336         Fix Gtk build.
1337
1338         * GNUmakefile.am:
1339
1340 2010-06-29  Sam Weinig  <sam@webkit.org>
1341
1342         Reviewed by Dan Bernstein.
1343
1344         Patch for https://bugs.webkit.org/show_bug.cgi?id=41146
1345         <rdar://problem/8126069>
1346         Implement the .dataset DOM property
1347
1348         Tests: fast/dom/dataset-xhtml.xhtml
1349                fast/dom/dataset.html
1350
1351         * DerivedSources.cpp:
1352         * DerivedSources.make:
1353         * GNUmakefile.am:
1354         * WebCore.gypi:
1355         * WebCore.pro:
1356         * WebCore.vcproj/WebCore.vcproj:
1357         * WebCore.xcodeproj/project.pbxproj:
1358         * bindings/js/JSDOMStringMapCustom.cpp: Added.
1359         (WebCore::JSDOMStringMap::canGetItemsForName):
1360         (WebCore::JSDOMStringMap::nameGetter):
1361         (WebCore::JSDOMStringMap::getOwnPropertyNames):
1362         (WebCore::JSDOMStringMap::deleteProperty):
1363         (WebCore::JSDOMStringMap::putDelegate):
1364         * bindings/js/JSDOMStringMapCustom.h: Added.
1365         * dom/DOMStringMap.cpp: Added.
1366         (WebCore::DOMStringMap::~DOMStringMap):
1367         * dom/DOMStringMap.h: Added.
1368         (WebCore::DOMStringMap::DOMStringMap):
1369         * dom/DOMStringMap.idl: Added.
1370         * dom/DatasetDOMStringMap.cpp: Added.
1371         (WebCore::isValidAttributeName):
1372         (WebCore::convertAttributeNameToPropertyName):
1373         (WebCore::propertyNameMatchesAttributeName):
1374         (WebCore::isValidPropertyName):
1375         (WebCore::convertPropertyNameToAttributeName):
1376         (WebCore::DatasetDOMStringMap::ref):
1377         (WebCore::DatasetDOMStringMap::deref):
1378         (WebCore::DatasetDOMStringMap::getNames):
1379         (WebCore::DatasetDOMStringMap::item):
1380         (WebCore::DatasetDOMStringMap::contains):
1381         (WebCore::DatasetDOMStringMap::setItem):
1382         (WebCore::DatasetDOMStringMap::deleteItem):
1383         * dom/DatasetDOMStringMap.h: Added.
1384         (WebCore::DatasetDOMStringMap::create):
1385         (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
1386         * dom/Element.cpp:
1387         (WebCore::Element::dataset):
1388         * dom/Element.h:
1389         * dom/Element.idl:
1390         * dom/ElementRareData.h:
1391         * page/DOMWindow.idl:
1392
1393 2010-06-30  Darin Adler  <darin@apple.com>
1394
1395         More Qt build fix.
1396
1397         * html/HTMLElementStack.cpp: Put !ENABLE(SVG_FOREIGN_OBJECT) around
1398         include of SVGNames.h too.
1399
1400 2010-06-30  Darin Adler  <darin@apple.com>
1401
1402         Reviewed by Adam Barth.
1403
1404         Add assertion, off by default, for when you forget to do adoptRef
1405         https://bugs.webkit.org/show_bug.cgi?id=41422
1406
1407         * platform/TreeShared.h: Added code to require adoption and assert if
1408         you don't call adoptRef. For now, it is turned off because of the
1409         LOOSE_TREE_SHARED define in this header. Later we can turn it on
1410         once we get everything working without asserting. Note also that it
1411         only works for objects with an initial reference count of 1.
1412
1413 2010-06-30  Patrick Gansterer  <paroga@paroga.com>
1414
1415         Reviewed by Darin Adler.
1416
1417         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196.
1418         https://bugs.webkit.org/show_bug.cgi?id=41429
1419
1420         * html/HTMLElementStack.cpp:
1421
1422 2010-06-30  Eric Seidel  <eric@webkit.org>
1423
1424         Reviewed by Adam Barth.
1425
1426         Add new popUntil(tagName) function and deploy
1427         https://bugs.webkit.org/show_bug.cgi?id=41405
1428
1429         Add a new popUntil function to share some common code
1430         between states.  There is more code to share here, but this
1431         is a start.
1432
1433         I also filled in a couple similar states to these with the
1434         hope of sharing more code, but decided to wait for a later
1435         patch.
1436
1437         No test changes, since this code doesn't do enough yet to
1438         pass any more subtests.  Lack of generateImpliedEndTags is the main
1439         blocking issue.
1440
1441         * html/HTMLElementStack.cpp:
1442         (WebCore::HTMLElementStack::popUntil):
1443         * html/HTMLElementStack.h:
1444         * html/HTMLTreeBuilder.cpp:
1445         (WebCore::HTMLTreeBuilder::processEndTag):
1446
1447 2010-06-30  Xan Lopez  <xlopez@igalia.com>
1448
1449         Reviewed by Gustavo Noronha.
1450
1451         [GTK] Unit test for DOM insertion methods
1452         https://bugs.webkit.org/show_bug.cgi?id=40495
1453
1454         Fix typo in custom function detection method.
1455
1456         * bindings/scripts/CodeGeneratorGObject.pm:
1457
1458 2010-06-30  Eric Seidel  <eric@webkit.org>
1459
1460         Reviewed by Adam Barth.
1461
1462         Implement HTML5 "in scope" algorithm and attempt to use it
1463         https://bugs.webkit.org/show_bug.cgi?id=41402
1464
1465         Implemented the 4 needed "in scope" functions for HTML5.
1466         3 for the different sets of scope markers, and one for
1467         doing exact element comparisons instead of tag name searches.
1468
1469         I deployed inScope("body") for </body> and </html> in InBody.
1470
1471         Adds two new (expected) failures, since we're now
1472         switching out of InBody to AfterBody when seeing
1473         </html>.  We don't implement AfterBody yet, so
1474         the rest of the content after </html> is ignored.
1475
1476         * html/HTMLElementStack.cpp:
1477         (WebCore::inScopeCommon):
1478         (WebCore::HTMLElementStack::inScope):
1479         (WebCore::HTMLElementStack::inListItemScope):
1480         (WebCore::HTMLElementStack::inTableScope):
1481         * html/HTMLElementStack.h:
1482         * html/HTMLTreeBuilder.cpp:
1483         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
1484         (WebCore::HTMLTreeBuilder::processEndTag):
1485         * html/HTMLTreeBuilder.h:
1486
1487 2010-06-30  Eric Seidel  <eric@webkit.org>
1488
1489         Reviewed by Adam Barth.
1490
1491         Split HTMLElementStack out into its own file
1492         https://bugs.webkit.org/show_bug.cgi?id=41399
1493
1494         No functional change, thus no tests.
1495
1496         * Android.mk:
1497         * CMakeLists.txt:
1498         * GNUmakefile.am:
1499         * WebCore.gypi:
1500         * WebCore.pro:
1501         * WebCore.vcproj/WebCore.vcproj:
1502         * WebCore.xcodeproj/project.pbxproj:
1503         * html/HTMLElementStack.cpp: Added.
1504         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
1505         (WebCore::HTMLElementStack::ElementRecord::element):
1506         (WebCore::HTMLElementStack::ElementRecord::next):
1507         (WebCore::HTMLElementStack::ElementRecord::releaseNext):
1508         (WebCore::HTMLElementStack::ElementRecord::setNext):
1509         (WebCore::HTMLElementStack::HTMLElementStack):
1510         (WebCore::HTMLElementStack::~HTMLElementStack):
1511         (WebCore::HTMLElementStack::popHTMLHeadElement):
1512         (WebCore::HTMLElementStack::pop):
1513         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
1514         (WebCore::HTMLElementStack::pushHTMLHeadElement):
1515         (WebCore::HTMLElementStack::pushHTMLBodyElement):
1516         (WebCore::HTMLElementStack::push):
1517         (WebCore::HTMLElementStack::top):
1518         (WebCore::HTMLElementStack::removeHTMLHeadElement):
1519         (WebCore::HTMLElementStack::remove):
1520         (WebCore::HTMLElementStack::contains):
1521         (WebCore::HTMLElementStack::inScope):
1522         (WebCore::HTMLElementStack::htmlElement):
1523         (WebCore::HTMLElementStack::headElement):
1524         (WebCore::HTMLElementStack::bodyElement):
1525         (WebCore::HTMLElementStack::pushCommon):
1526         (WebCore::HTMLElementStack::popCommon):
1527         (WebCore::HTMLElementStack::removeNonFirstCommon):
1528         * html/HTMLElementStack.h: Added.
1529         * html/HTMLTreeBuilder.h:
1530
1531 2010-06-30  Kenneth Russell  <kbr@google.com>
1532
1533         Reviewed by Oliver Hunt.
1534
1535         WebCore::WebGLArrayInternal::lengthAttrGetter ReadAV@NULL (b1a3e1a3e9d01f17fd493d68eeb2742f)
1536         https://bugs.webkit.org/show_bug.cgi?id=38040
1537
1538         Changed custom ArrayBufferView constructors to create a
1539         fully-initialized, zero-length array when called with zero
1540         arguments. This is the simplest fix which works identically in
1541         both the JSC and V8 bindings.
1542
1543         Test: fast/canvas/webgl/array-buffer-view-crash.html
1544
1545         * bindings/js/JSArrayBufferViewHelper.h:
1546         (WebCore::constructArrayBufferView):
1547         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1548         (WebCore::constructWebGLArray):
1549
1550 2010-06-30  Victor Wang  <victorw@chromium.org>
1551
1552         Reviewed by Darin Fisher.
1553
1554         [chromium] update webcore gyp to use v8 dll for chromium multi dll build.
1555
1556         https://bugs.webkit.org/show_bug.cgi?id=41376
1557
1558         * WebCore.gyp/WebCore.gyp:
1559
1560 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
1561
1562         Reviewed by Dimitri Glazkov.
1563
1564         [Chromium] Add OOP font loading to FontPlatformDataChromiumMac.
1565
1566         On OS X, with font management software installed. Fonts
1567         can reside in an arbitrary path on disk which is blocked by
1568         Chromium's sandbox.
1569
1570         This change adds hooks to FontPlaformData which allow cross-process
1571         font loading in case of need.
1572
1573         https://bugs.webkit.org/show_bug.cgi?id=41148
1574
1575         Not possible to test - requires sandboxing which DRT doesn't support.
1576
1577         * WebCore.gypi:
1578         * platform/graphics/chromium/FontPlatformDataChromiumMac.mm: Added.
1579         (WebCore::FontPlatformData::FontPlatformData):
1580         (WebCore::FontPlatformData::~FontPlatformData):
1581         (WebCore::FontPlatformData::operator=):
1582         (WebCore::FontPlatformData::setFont):
1583         (WebCore::FontPlatformData::roundsGlyphAdvances):
1584         (WebCore::FontPlatformData::allowsLigatures):
1585         (WebCore::FontPlatformData::description):
1586
1587 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
1588
1589         Reviewed by Dan Bernstein.
1590
1591         Minor tweaks to FontPlatformDataMac & SimpleFontDataMac.mm
1592
1593         * Avoid an extra FontPlatformData copy in SimpleFontDataMac.mm
1594         * Fix a typo in FontPlatformDataMac.mm
1595
1596         https://bugs.webkit.org/show_bug.cgi?id=41152
1597
1598         No behavior changes so no new tests.
1599
1600         * platform/graphics/mac/FontPlatformDataMac.mm:
1601         (WebCore::FontPlatformData::description):
1602         * platform/graphics/mac/SimpleFontDataMac.mm:
1603         (WebCore::copyFontTableForTag):
1604
1605 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
1606
1607         Reviewed by Kenneth Rohde Christiansen.
1608
1609         [Qt] Make "disallow multiple calls to SetWindow" on windowed plugins a quirk
1610         https://bugs.webkit.org/show_bug.cgi?id=41407
1611
1612         Only disallow calling SetWindow more than once if we're using Flash 9 or older.
1613         This fixes resizing of YouTube videos via the player's own button.
1614
1615         Removed copy-pasted logic in PluginViewGtk since the issue only exists
1616         when running Flash with a non-Gtk toolkit.
1617
1618         * plugins/PluginPackage.cpp:
1619         (WebCore::PluginPackage::determineQuirks):
1620         * plugins/PluginQuirkSet.h:
1621         (WebCore::):
1622         * plugins/gtk/PluginViewGtk.cpp:
1623         (WebCore::PluginView::setNPWindowIfNeeded): Remove unnecessary logic copy-pasted from PluginViewQt.
1624         * plugins/qt/PluginViewQt.cpp:
1625         (WebCore::PluginView::setNPWindowIfNeeded):
1626
1627 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
1628
1629         Reviewed by Antti Koivisto.
1630
1631         [Qt, Gtk, Symbian] Mind the semantics of NPRect for windowed plugin clip rects
1632         https://bugs.webkit.org/show_bug.cgi?id=41406
1633
1634         NPRect has right/bottom instead of width/height.
1635         This was fixed in PluginViewMac with http://trac.webkit.org/changeset/45815
1636
1637         * plugins/gtk/PluginViewGtk.cpp:
1638         (WebCore::PluginView::setNPWindowIfNeeded):
1639         * plugins/qt/PluginViewQt.cpp:
1640         (WebCore::PluginView::setNPWindowIfNeeded):
1641         * plugins/symbian/PluginViewSymbian.cpp:
1642         (WebCore::PluginView::setNPWindowIfNeeded):
1643
1644 2010-06-30  Antonio Gomes  <tonikitoo@webkit.org>
1645
1646         Reviewed by Simon Fraser.
1647
1648         Spatial Navigation: make elements in inner frames nested more than 1 level deep focusable
1649         https://bugs.webkit.org/show_bug.cgi?id=41160
1650
1651         Patch addresses the problem of spatial navigation not work properly with nested
1652         inner frames by adding the isNodeDeepDescendantOfDocument method. It recursively checks
1653         if a give node is descendant of a given document or any parent of it.
1654
1655         Test: fast/events/spatial-navigation/snav-iframe-nested.html
1656
1657         * page/FocusController.cpp:
1658         (WebCore::FocusController::deepFindFocusableNodeInDirection):
1659         * page/SpatialNavigation.cpp:
1660         (WebCore::isNodeDeepDescendantOfDocument):
1661         * page/SpatialNavigation.h:
1662
1663 2010-06-30  Adam Barth  <abarth@webkit.org>
1664
1665         Reviewed by Eric Seidel.
1666
1667         HTMLTokenizer should use fewer macros
1668         https://bugs.webkit.org/show_bug.cgi?id=41397
1669
1670         Macros are sadness.  Inline functions are the new hotness.
1671
1672         * html/HTMLTokenizer.cpp:
1673         (WebCore::HTMLTokenizer::processEntity):
1674         (WebCore::HTMLTokenizer::emitAndResumeIn):
1675         (WebCore::HTMLTokenizer::emitAndReconsumeIn):
1676         (WebCore::HTMLTokenizer::emitEndOfFile):
1677         (WebCore::HTMLTokenizer::flushBufferedEndTag):
1678         (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
1679         (WebCore::HTMLTokenizer::nextToken):
1680         (WebCore::HTMLTokenizer::bufferCharacter):
1681         (WebCore::HTMLTokenizer::bufferCodePoint):
1682         (WebCore::HTMLTokenizer::bufferParseError):
1683         (WebCore::HTMLTokenizer::bufferCurrentToken):
1684         (WebCore::HTMLTokenizer::bufferEndOfFile):
1685         * html/HTMLTokenizer.h:
1686
1687 2010-06-30  Justin Schuh  <jschuh@chromium.org>
1688
1689         Reviewed by Adam Barth.
1690
1691         Remove dead binding code
1692         https://bugs.webkit.org/show_bug.cgi?id=41388
1693
1694         Removed BindingElement because it was obsoleted by r59866.
1695
1696         * WebCore.gypi:
1697         * bindings/generic/BindingElement.h: Removed.
1698         * bindings/v8/SerializedScriptValue.cpp:
1699         * bindings/v8/V8Binding.h:
1700         * bindings/v8/custom/V8DatabaseCustom.cpp:
1701         * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
1702         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1703         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1704
1705 2010-06-30  Eric Seidel  <eric@webkit.org>
1706
1707         Reviewed by Adam Barth.
1708
1709         HTMLTokenizer needs EndOfFile support
1710         https://bugs.webkit.org/show_bug.cgi?id=41344
1711
1712         EndOfFile support uncovered a bug in our implementation of finish().
1713         finish() may be called more than once if the first call does not
1714         result in end() being called (and parsing thus actually stopping).
1715
1716         SegmentedString::close() should have ASSERTed that it was not already
1717         closed when close() is called.  I've added such an assert now.
1718
1719         * html/HTMLDocumentParser.cpp:
1720         (WebCore::HTMLDocumentParser::finish):
1721         * platform/text/SegmentedString.cpp:
1722         (WebCore::SegmentedString::close):
1723         * platform/text/SegmentedString.h:
1724
1725 2010-06-29  Eric Seidel  <eric@webkit.org>
1726
1727         Reviewed by Adam Barth.
1728
1729         HTMLTokenizer needs EndOfFile support
1730         https://bugs.webkit.org/show_bug.cgi?id=41344
1731
1732         We're using \0 as the EndOfFile marker as HTML5 replaces
1733         all other \0 with \0xFFFD.  Added some special case logic
1734         to InputStreamPreprocessor::peek not to replace \0 when
1735         its being used at the end of a stream.
1736
1737         This fixed 60 subtests in html5lib/runner.html.
1738
1739         There are still at least two states (BogusCommentState and
1740         CDATASectionState) which do not have proper EOF support.
1741
1742         * html/HTMLDocumentParser.cpp:
1743         (WebCore::HTMLDocumentParser::finish):
1744         (WebCore::HTMLDocumentParser::finishWasCalled):
1745         * html/HTMLInputStream.h:
1746         (WebCore::HTMLInputStream::markEndOfFile):
1747         (WebCore::HTMLInputStream::haveSeenEndOfFile):
1748         * html/HTMLToken.h:
1749         (WebCore::HTMLToken::makeEndOfFile):
1750         * html/HTMLTokenizer.cpp:
1751         (WebCore::HTMLTokenizer::nextToken):
1752         (WebCore::HTMLTokenizer::emitEndOfFile):
1753         * html/HTMLTokenizer.h:
1754         (WebCore::HTMLTokenizer::InputStreamPreprocessor::peek):
1755         (WebCore::HTMLTokenizer::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
1756         * html/HTMLTreeBuilder.cpp:
1757         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
1758
1759 2010-06-28  Eric Seidel  <eric@webkit.org>
1760
1761         Reviewed by Adam Barth.
1762
1763         Teach HTML5TreeBuilder how to merge attributes from extra html/body elements
1764         https://bugs.webkit.org/show_bug.cgi?id=41337
1765
1766         Had to teach ElementStack to store pointers to html, head, and body
1767         elements.
1768
1769         This fixed a few tests in LayoutTests/html5lib.
1770
1771         * html/HTMLTreeBuilder.cpp:
1772         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
1773         (WebCore::HTMLTreeBuilder::mergeAttributesFromTokenIntoElement):
1774         (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
1775         (WebCore::HTMLTreeBuilder::processStartTag):
1776         (WebCore::HTMLTreeBuilder::processEndTag):
1777         (WebCore::HTMLTreeBuilder::createElementAndAttachToCurrent):
1778         (WebCore::HTMLTreeBuilder::insertHTMLHtmlElement):
1779         (WebCore::HTMLTreeBuilder::insertHTMLHeadElement):
1780         (WebCore::HTMLTreeBuilder::insertHTMLBodyElement):
1781         (WebCore::HTMLTreeBuilder::insertElement):
1782         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
1783         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
1784         * html/HTMLTreeBuilder.h:
1785         (WebCore::HTMLTreeBuilder::ElementStack::ElementStack):
1786         (WebCore::HTMLTreeBuilder::ElementStack::popHTMLHeadElement):
1787         (WebCore::HTMLTreeBuilder::ElementStack::pop):
1788         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHtmlElement):
1789         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHeadElement):
1790         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLBodyElement):
1791         (WebCore::HTMLTreeBuilder::ElementStack::push):
1792         (WebCore::HTMLTreeBuilder::ElementStack::removeHTMLHeadElement):
1793         (WebCore::HTMLTreeBuilder::ElementStack::remove):
1794         (WebCore::HTMLTreeBuilder::ElementStack::htmlElement):
1795         (WebCore::HTMLTreeBuilder::ElementStack::headElement):
1796         (WebCore::HTMLTreeBuilder::ElementStack::bodyElement):
1797         (WebCore::HTMLTreeBuilder::ElementStack::pushCommon):
1798         (WebCore::HTMLTreeBuilder::ElementStack::popCommon):
1799         (WebCore::HTMLTreeBuilder::ElementStack::removeNonFirstCommon):
1800
1801 2010-06-30  José Millán Soto  <jmillan@igalia.com>
1802
1803         Reviewed by Xan Lopez.
1804
1805         [Gtk] Text attributes not exposed
1806         https://bugs.webkit.org/show_bug.cgi?id=25528
1807
1808         Implemented the get_run_attributes and get_default_attributes
1809         functions for the ATK_TEXT role.
1810
1811         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1812         (getAttributeSetForAccessibilityObject):
1813         (compareAttribute):
1814         (attributeSetDifference):
1815         (accessibilityObjectLength):
1816         (getAccessibilityObjectForOffset):
1817         (getRunAttributesFromAccesibilityObject):
1818         (webkit_accessible_text_get_run_attributes):
1819         (webkit_accessible_text_get_default_attributes):
1820
1821 2010-06-30  Yuta Kitamura  <yutak@chromium.org>
1822
1823         Reviewed by Alexey Proskuryakov.
1824
1825         Fix Sec-WebSocketKey{1,2} headers.
1826
1827         According to WebSocket specification, a value of Sec-WebSocketKey{1,2} header
1828         should not start or end with a space.
1829
1830         WebSocket: Malformed handshake headers in a worker due to rand_s failing
1831         https://bugs.webkit.org/show_bug.cgi?id=41327
1832
1833         No new tests. ASSERT should catch the problem.
1834
1835         * websockets/WebSocketHandshake.cpp:
1836         (WebCore::generateSecWebSocketKey):
1837
1838 2010-06-30  Yuzo Fujishima  <yuzo@google.com>
1839
1840         Reviewed by Dan Bernstein.
1841
1842         Fix for Bug 41339 - unicode-range property only with a descending range
1843         causes a crash
1844
1845         https://bugs.webkit.org/show_bug.cgi?id=41339
1846
1847         Test: fast/css/font-face-descending-unicode-range.html
1848
1849         * css/CSSParser.cpp:
1850         (WebCore::CSSParser::parseFontFaceUnicodeRange):
1851
1852 2010-06-29  Abhinav Mithal <abhinav.mithal@nokia.com>
1853
1854         Reviewed by Laszlo Gombos.
1855
1856         [Qt] [Symbian] Fix doube-deallocation while destroying PluginContainerSymbian
1857         https://bugs.webkit.org/show_bug.cgi?id=37303
1858
1859         * plugins/symbian/PluginViewSymbian.cpp:
1860         (WebCore::PluginView::platformDestroy):
1861
1862 2010-06-29  Zhenyao Mo  <zmo@google.com>
1863
1864         Reviewed by Dimitri Glazkov.
1865
1866         Implement getAttachedShaders
1867         https://bugs.webkit.org/show_bug.cgi?id=31172
1868
1869         * bindings/js/JSWebGLRenderingContextCustom.cpp: JS binding for getAttachedShaders().
1870         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
1871         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: V8 binding for getAttachedShaders().
1872         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
1873         * html/canvas/WebGLRenderingContext.cpp:
1874         (WebCore::WebGLRenderingContext::getAttachedShaders): Implementation of getAttachedShaders().
1875         (WebCore::WebGLRenderingContext::findShader): Helper function to find a shader object from its name.
1876         * html/canvas/WebGLRenderingContext.h: Declaration of getAttachedShaders().
1877         * html/canvas/WebGLRenderingContext.idl: Ditto.
1878         * platform/graphics/GraphicsContext3D.h: Ditto.
1879         * platform/graphics/mac/GraphicsContext3DMac.mm:
1880         (WebCore::GraphicsContext3D::getAttachedShaders): Implementation of getAttachedShaders().
1881
1882 2010-06-29  MORITA Hajime  <morrita@google.com>
1883
1884         Reviewed by Kent Tamura.
1885
1886         REGRESSION: [Chromium] <progress> appearance on windows looks not good
1887         https://bugs.webkit.org/show_bug.cgi?id=41343
1888         
1889         RenderThemeChromiumWin::paintProgressBar() should return false,
1890         which indicates the widget is painted.
1891         
1892         Test: fast/dom/HTMLProgressElement/progress-element.html
1893               * rebaselined with a wrong expectation.
1894
1895         * rendering/RenderThemeChromiumWin.cpp:
1896         (WebCore::RenderThemeChromiumWin::paintProgressBar):
1897
1898 2010-06-29  Kinuko Yasuda  <kinuko@chromium.org>
1899
1900         Reviewed by Jian Li.
1901
1902         Fix http/tests/local/blob/send-data-blob.html on Windows
1903         https://bugs.webkit.org/show_bug.cgi?id=41228
1904
1905         Fix a regression bug in the line-conversion code.
1906         Rewrite the line-conversion function with simpler functions to
1907         make it less error prone.
1908
1909         No new tests as this is for bug fixes.
1910
1911         * platform/BlobItem.cpp:
1912         (WebCore::StringBlobItem::convertToCString):
1913
1914 2010-06-29  Dumitru Daniliuc  <dumi@chromium.org>
1915
1916         Reviewed by Darin Fisher.
1917
1918         Implementing DatabaseSync::openDatabaseSync().
1919         https://bugs.webkit.org/show_bug.cgi?id=40607
1920
1921         1. Moved some common code from Database to AbstractDatabase.
1922         2. Made performOpenAndVerify() virtual, since DatabaseSync doesn't
1923            need to interact with DatabaseThread.
1924         3. Removed the m_creationCallback field, since it's only needed in
1925            the openDatabase{Sync} methods.
1926
1927         * storage/AbstractDatabase.cpp:
1928         (WebCore::retrieveTextResultFromDatabase):
1929         (WebCore::setTextValueInDatabase):
1930         (WebCore::guidMutex):
1931         (WebCore::guidToVersionMap):
1932         (WebCore::updateGuidVersionMap):
1933         (WebCore::guidToDatabaseMap):
1934         (WebCore::guidForOriginAndName):
1935         (WebCore::AbstractDatabase::databaseInfoTableName):
1936         (WebCore::AbstractDatabase::AbstractDatabase):
1937         (WebCore::AbstractDatabase::closeDatabase):
1938         (WebCore::AbstractDatabase::version):
1939         (WebCore::AbstractDatabase::performOpenAndVerify):
1940         (WebCore::AbstractDatabase::scriptExecutionContext):
1941         (WebCore::AbstractDatabase::securityOrigin):
1942         (WebCore::AbstractDatabase::stringIdentifier):
1943         (WebCore::AbstractDatabase::displayName):
1944         (WebCore::AbstractDatabase::estimatedSize):
1945         (WebCore::AbstractDatabase::fileName):
1946         (WebCore::AbstractDatabase::databaseVersionKey):
1947         (WebCore::AbstractDatabase::getVersionFromDatabase):
1948         (WebCore::AbstractDatabase::setVersionInDatabase):
1949         (WebCore::AbstractDatabase::versionMatchesExpected):
1950         (WebCore::AbstractDatabase::setExpectedVersion):
1951         (WebCore::AbstractDatabase::disableAuthorizer):
1952         (WebCore::AbstractDatabase::enableAuthorizer):
1953         (WebCore::AbstractDatabase::setAuthorizerReadOnly):
1954         (WebCore::AbstractDatabase::lastActionChangedDatabase):
1955         (WebCore::AbstractDatabase::lastActionWasInsert):
1956         (WebCore::AbstractDatabase::resetDeletes):
1957         (WebCore::AbstractDatabase::hadDeletes):
1958         (WebCore::AbstractDatabase::resetAuthorizer):
1959         * storage/AbstractDatabase.h:
1960         (WebCore::AbstractDatabase::opened):
1961         (WebCore::AbstractDatabase::isNew):
1962         (WebCore::AbstractDatabase::databaseDebugName):
1963         * storage/Database.cpp:
1964         (WebCore::DatabaseCreationCallbackTask::create):
1965         (WebCore::DatabaseCreationCallbackTask::performTask):
1966         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
1967         (WebCore::Database::openDatabase):
1968         (WebCore::Database::Database):
1969         (WebCore::Database::version):
1970         (WebCore::Database::openAndVerifyVersion):
1971         (WebCore::Database::close):
1972         (WebCore::Database::stop):
1973         (WebCore::Database::performOpenAndVerify):
1974         * storage/Database.h:
1975         (WebCore::Database::sqliteDatabase):
1976         * storage/DatabaseAuthorizer.cpp:
1977         (WebCore::DatabaseAuthorizer::create):
1978         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
1979         (WebCore::DatabaseAuthorizer::denyBasedOnTableName):
1980         * storage/DatabaseAuthorizer.h:
1981         * storage/DatabaseSync.cpp:
1982         (WebCore::DatabaseSync::openDatabaseSync):
1983         (WebCore::DatabaseSync::DatabaseSync):
1984         (WebCore::DatabaseSync::~DatabaseSync):
1985         (WebCore::DatabaseSync::markAsDeletedAndClose):
1986         (WebCore::CloseSyncDatabaseOnContextThreadTask::create):
1987         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask):
1988         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask):
1989         (WebCore::DatabaseSync::closeImmediately):
1990         * storage/DatabaseSync.h:
1991         * storage/DatabaseTask.cpp:
1992         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
1993         (WebCore::DatabaseOpenTask::doPerformTask):
1994         * storage/DatabaseTask.h:
1995         (WebCore::DatabaseOpenTask::create):
1996
1997 2010-06-29  François Sausset  <sausset@gmail.com>
1998
1999         Reviewed by Darin Adler.
2000
2001         Fix a bug when a msubsup element is inside a mrow element
2002         https://bugs.webkit.org/show_bug.cgi?id=36525
2003
2004         Test: mathml/presentation/subsup.xhtml
2005
2006         * mathml/RenderMathMLSubSup.cpp:
2007         (WebCore::RenderMathMLSubSup::stretchToHeight):
2008
2009 2010-06-29  Zhenyao Mo  <zmo@google.com>
2010
2011         Reviewed by Dimitri Glazkov.
2012
2013         uniformmatrix* should generate INVALID_VALUE with transpose = true
2014         https://bugs.webkit.org/show_bug.cgi?id=41235
2015
2016         Test: fast/canvas/webgl/gl-uniformmatrix4fv.html
2017
2018         * html/canvas/WebGLRenderingContext.cpp:
2019         (WebCore::WebGLRenderingContext::uniformMatrix2fv): Call validateUniformMatrixParameters instead.
2020         (WebCore::WebGLRenderingContext::uniformMatrix3fv): Ditto.
2021         (WebCore::WebGLRenderingContext::uniformMatrix4fv): Ditto.
2022         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): Validate input parameters for uniformMatrix*().
2023         * html/canvas/WebGLRenderingContext.h: Declare validateUniformMatrixParameters().
2024
2025 2010-06-29  Kenneth Russell  <kbr@google.com>
2026
2027         Reviewed by Dimitri Glazkov.
2028
2029         Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView
2030         https://bugs.webkit.org/show_bug.cgi?id=40398
2031
2032         Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store
2033         parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView.
2034         More cleanly separated the unpacking and packing phases of user-supplied pixel data
2035         in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling
2036         of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added
2037         validation of the amount of data passed to texImage2D and texSubImage2D. Modified
2038         fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha
2039         tests for relevant source formats; added new test which exercises all combinations
2040         of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel
2041         store parameters.
2042
2043         Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html
2044
2045         * html/canvas/WebGLRenderingContext.cpp:
2046         (WebCore::WebGLRenderingContext::texImage2D):
2047         (WebCore::WebGLRenderingContext::texSubImage2D):
2048         (WebCore::WebGLRenderingContext::validateTexFuncData):
2049         * html/canvas/WebGLRenderingContext.h:
2050         * platform/graphics/GraphicsContext3D.cpp:
2051         (WebCore::GraphicsContext3D::extractImageData):
2052         (WebCore::GraphicsContext3D::extractTextureData):
2053         (WebCore::GraphicsContext3D::flipVertically):
2054         (WebCore::doUnpackingAndPacking):
2055         (WebCore::computeIncrementParameters):
2056         (WebCore::doPacking):
2057         (WebCore::GraphicsContext3D::packPixels):
2058         * platform/graphics/GraphicsContext3D.h:
2059         (WebCore::GraphicsContext3D::):
2060         * platform/graphics/cg/GraphicsContext3DCG.cpp:
2061         (WebCore::GraphicsContext3D::getImageData):
2062         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2063         (WebCore::GraphicsContext3D::getImageData):
2064         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2065         (WebCore::GraphicsContext3D::getImageData):
2066
2067 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
2068
2069         Reviewed by Dirk Schulze.
2070
2071         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r61667.
2072         https://bugs.webkit.org/show_bug.cgi?id=41367
2073
2074         * svg/SVGSVGElement.cpp:
2075         (WebCore::SVGSVGElement::isOutermostSVG): Add missing ENABLE(SVG_FOREIGN_OBJECT).
2076
2077 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
2078
2079         Reviewed by Darin Adler.
2080
2081         Buildfix after r62118.
2082         https://bugs.webkit.org/show_bug.cgi?id=41365
2083
2084         * rendering/RenderSVGRoot.cpp: Inlude missing RenderSVGResource.h.
2085
2086 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2087
2088         Unreviewed, rolling out r62052.
2089         http://trac.webkit.org/changeset/62052
2090         https://bugs.webkit.org/show_bug.cgi?id=41357
2091
2092         Causes crashes in JSLazyEventListener::initializeFunction (see
2093         bug 41352) (Requested by aroben on #webkit).
2094
2095         * bindings/js/ScriptEventListener.cpp:
2096         (WebCore::createAttributeEventListener):
2097         * bindings/js/ScriptEventListener.h:
2098         * bindings/v8/ScriptEventListener.cpp:
2099         (WebCore::createAttributeEventListener):
2100         * bindings/v8/ScriptEventListener.h:
2101         * html/HTMLBodyElement.cpp:
2102         (WebCore::HTMLBodyElement::parseMappedAttribute):
2103         * html/HTMLFrameSetElement.cpp:
2104         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
2105         * svg/SVGSVGElement.cpp:
2106         (WebCore::SVGSVGElement::parseMappedAttribute):
2107
2108 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2109
2110         Unreviewed, rolling out r62129.
2111         http://trac.webkit.org/changeset/62129
2112         https://bugs.webkit.org/show_bug.cgi?id=41362
2113
2114         Needed to roll out r62052 (see bug 41357) (Requested by aroben
2115         on #webkit).
2116
2117         * bindings/js/ScriptEventListener.cpp:
2118         (WebCore::createWindowAttributeEventListener):
2119
2120 2010-06-29  Beth Dakin  <bdakin@apple.com>
2121
2122         Reviewed by Darin Adler.
2123
2124         Speculative fix for <rdar://problem/8071558> CrashTracer: [USER] 
2125         2300+ crashes in Safari at com.apple.WebCore: 
2126         WebCore::FrameView::scheduleRelayout + 352
2127
2128         Unfortunately, we don't have a reproducible case for this bug, and 
2129         therefore, we do not have a layout test either. It is pretty clear 
2130         from the logs that m_frame->settings() is null in 
2131         FrameView::scheduleRelayout() in the crashing case. 
2132         m_frame->settings() is null whenever page is null. Everywhere else 
2133         in FrameView.cpp we null-check either page or settings before using 
2134         settings. It seems plausible to me that scheduleRelayout could be 
2135         called when page is null, so the fix is just to add null-checks. 
2136
2137         * page/FrameView.cpp:
2138         (WebCore::FrameView::layout):
2139         (WebCore::FrameView::scheduleRelayout):
2140
2141 2010-06-29  Dan Bernstein  <mitz@apple.com>
2142
2143         Reviewed by Darin Adler.
2144
2145         <rdar://problem/7975842> Certain text is repeated after using splitText()
2146
2147         Tests: fast/text/setData-dirty-lines.html
2148                fast/text/splitText-dirty-lines.html
2149
2150         * dom/CharacterData.cpp:
2151         (WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than
2152         setText(), because only the former correctly dirties line boxes.
2153         * dom/Text.cpp:
2154         (WebCore::Text::splitText): Ditto.
2155
2156 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2157
2158         Unreviewed, rolling out r62073.
2159         http://trac.webkit.org/changeset/62073
2160         https://bugs.webkit.org/show_bug.cgi?id=41359
2161
2162         Necessary to fix chromium build when r62052 is rolled out.
2163         (Requested by dave_levin on #webkit).
2164
2165         * bindings/v8/ScriptEventListener.h:
2166
2167 2010-06-29  Vangelis Kokkevis  <vangelis@chromium.org>
2168
2169         Reviewed by Darin Fisher.
2170
2171         [Chromium] Hooking up WebGL layers to the gpu-compositor. Implement missing
2172         methods to set the contents of a GraphicsLayer with a platform specific WebGL
2173         Layer, and to update the contents of the WebGL Layer when needed.
2174         https://bugs.webkit.org/show_bug.cgi?id=41243
2175
2176         * platform/graphics/GraphicsContext3D.h:
2177         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2178         (WebCore::GraphicsLayerChromium::setContentsToWebGL):
2179         * platform/graphics/chromium/GraphicsLayerChromium.h:
2180         * platform/graphics/chromium/LayerChromium.cpp:
2181         (WebCore::LayerChromium::removeAllSublayers):
2182           No need to call setNeedsCommit() from here as the previous call to
2183           layer->removeFromSuperlayer() will have that effect (and we only need
2184           to notify the owner if there were actually any sublayers removed).
2185         * platform/graphics/chromium/LayerChromium.h:
2186         * platform/graphics/chromium/LayerRendererChromium.cpp:
2187         (WebCore::LayerRendererChromium::drawLayer):
2188         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2189         (WebCore::WebGLLayerChromium::create):
2190         (WebCore::WebGLLayerChromium::updateTextureContents):
2191         (WebCore::WebGLLayerChromium::setContext):
2192
2193 2010-06-29  Csaba Osztrogonác  <ossy@webkit.org>
2194
2195         Reviewed by Nikolas Zimmermann.
2196
2197         Buildfix for --minimal build after r62052
2198         https://bugs.webkit.org/show_bug.cgi?id=41338
2199
2200         * bindings/js/ScriptEventListener.cpp: #if ENABLE(SVG) guards added.
2201         (WebCore::createWindowAttributeEventListener):
2202
2203 2010-06-29  Brent Fulgham  <bfulgham@webkit.org>
2204
2205         Build fix. Not reviewd.
2206
2207         CGColor is only used for PLATFORM(CG).  Conditionalize include
2208         to correct build failure for WinCairo.
2209
2210         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2211         Conditionalize use of CGColor.
2212
2213 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
2214
2215         Reviewed by Xan Lopez.
2216
2217         [GTK] Clean up the source lists in the GNUMakefile.am files
2218         https://bugs.webkit.org/show_bug.cgi?id=41229
2219
2220         Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
2221         the source lists.
2222
2223         * GNUmakefile.am:
2224
2225 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
2226
2227         Reviewed by Xan Lopez.
2228
2229         [GTK] DragDataGtk should use DataObjectGtk as the platformDragData
2230         https://bugs.webkit.org/show_bug.cgi?id=40307
2231
2232         Use DataObjectGtk as the platformDragData for DragDataGtk. DataObjectGtk
2233         contains all the information necessary to keep track of drops in progress.
2234
2235         * platform/DragData.h: Use a DataObjectGtk* as the platform drag data.
2236         * platform/gtk/DragDataGtk.cpp:
2237         (WebCore::DragData::containsFiles): Retrieve information via platformDragData.
2238         (WebCore::DragData::asFilenames): Ditto.
2239         (WebCore::DragData::containsPlainText): Ditto.
2240         (WebCore::DragData::asPlainText): Ditto.
2241         (WebCore::DragData::createClipboard): Create the Clipboard with the platformDragData.
2242         (WebCore::DragData::containsCompatibleContent): Retrieve information via platformDragData.
2243         (WebCore::DragData::containsURL): Ditto.
2244         (WebCore::DragData::asURL): Ditto.
2245         (WebCore::DragData::asFragment): Ditto.
2246
2247 2010-06-29  Adam Langley  <agl@chromium.org>
2248
2249         Build fix. Not reviewd.
2250
2251         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2252         (WebCore::FontPlatformData::setupPaint):
2253           The name of the Skia function changed between writing this patch and
2254           commiting it.
2255
2256 2010-06-29  Adam Langley  <agl@chromium.org>
2257
2258         Reviewed by Kent Tamura.
2259
2260         [chromium] Support forced autohinting.
2261
2262         https://bugs.webkit.org/show_bug.cgi?id=40493
2263
2264         Freetype (the typical font rendering on Linux) includes an 'autohinter':
2265         an algorithm for hinting glyph shapes without using the embedded hinting
2266         bytecode in a font.
2267
2268         Some people prefer the autohinter's results, so we support forcing its
2269         use.
2270
2271         This change also fixes a bug where two FontPlatformData structures would
2272         compare equal, even if their rendering styles were different.
2273
2274         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2275         (WebCore::FontPlatformData::setupPaint):
2276           In order to compare FontPlatformData structures we need to make sure
2277           that they are initialised.
2278         (WebCore::FontPlatformData::operator==):
2279         * platform/graphics/chromium/FontRenderStyle.h:
2280         (WebCore::FontRenderStyle::FontRenderStyle):
2281         (WebCore::FontRenderStyle::operator==):
2282           This fixes the case where two FontPlatformData structures, differing
2283           only by rendering style, would compare equal.
2284
2285 2010-06-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2286
2287         Unreviewed, Symbian build fix.
2288
2289         Add more directories to USERINCLUDE so that they get included
2290         before the Symbian system headers.
2291
2292         This is a workaround to some toolchain problems; bug 31273 is used to
2293         find a better solution.
2294
2295         No new tests as there is no new functionality.
2296
2297         * WebCore.pro:
2298
2299 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
2300
2301         Reviewed by Dirk Schulze.
2302
2303         Cleanup SVGRenderSupport
2304         https://bugs.webkit.org/show_bug.cgi?id=41347
2305
2306         Remove SVGRenderBase base class from all SVG renderers. It was meant as temporary solution until all SVG renderers inherit from RenderSVGModelObject,
2307         though this is not going to happen. RenderSVGModelObject inherits from RenderObject, making it impossible to inherit eg. RenderSVGImage from it, as
2308         it already indirectly inherits from RenderObject, through RenderImage. Other examples are RenderForeignObject (RenderBlock inheritance),
2309         RenderSVGInlineText (RenderText inheritance) etc.
2310
2311         Rename SVGRenderBase to SVGRenderSupport, just like the file is named, remove all free functions, and make them all static functions in SVGRenderSupport.
2312         We can still share code between all SVG renderers, but don't need a special base class for all renderers -> shrink size of all SVG renderers.
2313
2314         Doesn't affect any test.
2315
2316         * rendering/RenderBox.cpp: Remove localTransform() override, not needed at all.
2317         * rendering/RenderBox.h: Ditto.
2318         * rendering/RenderForeignObject.cpp: s/SVGRenderBase/SVGRenderSupport/
2319         (WebCore::RenderForeignObject::paint):
2320         (WebCore::RenderForeignObject::clippedOverflowRectForRepaint):
2321         (WebCore::RenderForeignObject::computeRectForRepaint):
2322         (WebCore::RenderForeignObject::nodeAtFloatPoint):
2323         (WebCore::RenderForeignObject::mapLocalToContainer):
2324         * rendering/RenderPath.cpp:
2325         (WebCore::BoundingRectStrokeStyleApplier::strokeStyle): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
2326         (WebCore::RenderPath::paint): s/SVGRenderBase/SVGRenderSupport/
2327         (WebCore::RenderPath::nodeAtFloatPoint): Ditto.
2328         (WebCore::RenderPath::updateCachedBoundaries): Ditto.
2329         * rendering/RenderSVGBlock.h: Remove SVGRenderBase inheritance.
2330         * rendering/RenderSVGContainer.cpp:
2331         (WebCore::RenderSVGContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
2332         (WebCore::RenderSVGContainer::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
2333         (WebCore::RenderSVGContainer::objectBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
2334         (WebCore::RenderSVGContainer::strokeBoundingBox): Ditto.
2335         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
2336         (WebCore::RenderSVGContainer::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
2337         * rendering/RenderSVGHiddenContainer.cpp:
2338         (WebCore::RenderSVGHiddenContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
2339         * rendering/RenderSVGImage.cpp:
2340         (WebCore::RenderSVGImage::paint): prepareToRenderSVGContent/finishRenderSVGContent are static functions in SVGRenderSupport now.
2341         (WebCore::RenderSVGImage::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. 
2342         (WebCore::RenderSVGImage::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
2343         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
2344         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
2345         (WebCore::RenderSVGImage::computeRectForRepaint): Ditto.
2346         (WebCore::RenderSVGImage::mapLocalToContainer): Ditto.
2347         * rendering/RenderSVGImage.h: Remove SVGRenderBase inheritance.
2348         * rendering/RenderSVGInline.cpp:
2349         (WebCore::RenderSVGInline::objectBoundingBox): findTextRootObject is a static function in SVGRenderSupport now.
2350         (WebCore::RenderSVGInline::strokeBoundingBox): Ditto.
2351         (WebCore::RenderSVGInline::repaintRectInLocalCoordinates): Ditto.
2352         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
2353         (WebCore::RenderSVGInline::computeRectForRepaint): Ditto,.
2354         (WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
2355         (WebCore::RenderSVGInline::absoluteQuads): findTextRootObject is a static function in SVGRenderSupport now.
2356         * rendering/RenderSVGInline.h: Remove SVGRenderBase inheritance.
2357         * rendering/RenderSVGModelObject.cpp:
2358         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
2359         (WebCore::RenderSVGModelObject::computeRectForRepaint): Ditto.
2360         (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
2361         (WebCore::RenderSVGModelObject::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
2362         * rendering/RenderSVGModelObject.h: Remove SVGRenderBase inheritance.
2363         * rendering/RenderSVGResource.cpp:
2364         (WebCore::invalidatePaintingResource): Moved here from SVGRenderSupport (static inline helper function).
2365         (WebCore::RenderSVGResource::invalidateAllResourcesOfRenderer): Moved here from SVGRenderSupport and renamed from deregisterFromResources.
2366         * rendering/RenderSVGResource.h: Expose invalidateAllResourcesOfRenderer function.
2367         * rendering/RenderSVGResourceClipper.cpp:
2368         (WebCore::RenderSVGResourceClipper::createClipData): renderSubtreeToImage is a static function in SVGRenderSupport now.
2369         (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
2370         * rendering/RenderSVGResourceGradient.cpp:
2371         (WebCore::createMaskAndSwapContextForTextGradient): findTextRootObject is a static function in SVGRenderSupport now.
2372         (WebCore::clipToTextMask): Ditto.
2373         (WebCore::RenderSVGResourceGradient::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
2374         (WebCore::RenderSVGResourceGradient::postApplyResource): findTextRootObject is a static function in SVGRenderSupport now.
2375         * rendering/RenderSVGResourceMarker.cpp:
2376         (WebCore::RenderSVGResourceMarker::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
2377         * rendering/RenderSVGResourceMasker.cpp:
2378         (WebCore::RenderSVGResourceMasker::createMaskImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
2379         * rendering/RenderSVGResourcePattern.cpp:
2380         (WebCore::RenderSVGResourcePattern::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
2381         (WebCore::clampImageBufferSizeToViewport): Moved here from SVGRenderSupport.
2382         (WebCore::RenderSVGResourcePattern::createTileImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
2383         * rendering/RenderSVGResourceSolidColor.cpp:
2384         (WebCore::RenderSVGResourceSolidColor::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now
2385         * rendering/RenderSVGRoot.cpp:
2386         (WebCore::RenderSVGRoot::layout): layoutChildren is a static function in SVGRenderSupport now.
2387         (WebCore::RenderSVGRoot::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
2388         (WebCore::RenderSVGRoot::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
2389         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
2390         * rendering/RenderSVGRoot.h: Remove localTransform() override, no longer needed. Remove SVGRenderBase inheritance.
2391         (WebCore::RenderSVGRoot::objectBoundingBox): Inlined for speeed. 
2392         (WebCore::RenderSVGRoot::strokeBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
2393         * rendering/RenderSVGText.cpp: 
2394         (WebCore::RenderSVGText::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
2395         (WebCore::RenderSVGText::computeRectForRepaint): Ditto.
2396         (WebCore::RenderSVGText::mapLocalToContainer): Ditto.
2397         (WebCore::RenderSVGText::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
2398         (WebCore::RenderSVGText::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
2399         (WebCore::RenderSVGText::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
2400         * rendering/RenderSVGViewportContainer.cpp:
2401         (WebCore::RenderSVGViewportContainer::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
2402         (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): pointInClippingArea is a static function in SVGRenderSupport now.
2403         * rendering/SVGInlineFlowBox.cpp:
2404         (WebCore::SVGInlineFlowBox::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
2405         * rendering/SVGRenderSupport.cpp: Make it impossible to construct the class. Remove virtual destructor, made all methods static.
2406         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
2407         (WebCore::SVGRenderSupport::computeRectForRepaint): Ditto.
2408         (WebCore::SVGRenderSupport::mapLocalToContainer): Ditto.
2409         (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Ditto.
2410         (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
2411         (WebCore::SVGRenderSupport::renderSubtreeToImage): Made static.
2412         (WebCore::SVGRenderSupport::computeContainerBoundingBox): Ditto.
2413         (WebCore::SVGRenderSupport::layoutChildren): Ditto.
2414         (WebCore::SVGRenderSupport::isOverflowHidden): s/SVGRenderBase/SVGRenderSupport/
2415         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
2416         (WebCore::SVGRenderSupport::pointInClippingArea): Made static.
2417         (WebCore::SVGRenderSupport::dashArrayFromRenderingStyle): Ditto.
2418         (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto.
2419         (WebCore::SVGRenderSupport::findTextRootObject): Ditto.
2420         * rendering/SVGRenderSupport.h:
2421         * rendering/SVGRenderTreeAsText.cpp:
2422         (WebCore::writeStyle): dashArrayFromRenderingStyle is a static function in SVGRenderSupport now.
2423         * rendering/SVGRootInlineBox.cpp:
2424         (WebCore::SVGRootInlineBox::paint): s/SVGRenderBase/SVGRenderSupport/
2425         * rendering/SVGRootInlineBox.h: Remove SVGRenderBase inheritance.
2426         * svg/SVGFEImageElement.cpp: Add RenderObject.h include, otherwhise it won't build anymore.
2427         (WebCore::SVGFEImageElement::build): renderSubtreeToImage is a static function in SVGRenderSupport now.
2428         * svg/SVGStyledElement.cpp: 
2429         (WebCore::SVGStyledElement::svgAttributeChanged): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
2430
2431 2010-06-21  Philippe Normand  <pnormand@igalia.com>
2432
2433         Reviewed by Xan Lopez.
2434
2435         [PNG decoder] direct access to jmpbuf is deprecated in libpng >= 1.4.0beta103
2436         https://bugs.webkit.org/show_bug.cgi?id=40907
2437
2438         Define a JMPBUF macro to cope with deprecation of the jmpbuf
2439         attribute in libpng >= 1.4.
2440
2441         * platform/image-decoders/png/PNGImageDecoder.cpp:
2442         (WebCore::decodingFailed):
2443         (WebCore::PNGImageReader::decode):
2444         (WebCore::PNGImageDecoder::headerAvailable):
2445         (WebCore::PNGImageDecoder::rowAvailable):
2446
2447 2010-06-29  Kristian Amlie  <kristian.amlie@nokia.com>
2448
2449         Reviewed by Simon Hausmann.
2450
2451         [Qt/Symbian] Fixed deployment paths for WebKit declarative plugin.
2452
2453         * WebCore.pro:
2454
2455 2010-06-29  Yury Semikhatsky  <yurys@chromium.org>
2456
2457         Unreviewed: Chromium Win and Mac build fix.
2458
2459         * bindings/v8/ScriptDebugServer.cpp:
2460         (WebCore::ScriptDebugServer::setBreakpoint):
2461
2462 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
2463
2464         Reviewed by Dirk Schulze.
2465
2466         Move PaintInfo/PaintPhase into their own headers, out of RenderObject
2467         https://bugs.webkit.org/show_bug.cgi?id=41342
2468
2469         1) Move enums PaintPhase/PaintBehaviorFlags and the PaintBehaviour typedef from RenderObject into PaintPhase.h.
2470            Move PaintInfo from RenderObject into PaintInfo.h. Replace s/RenderObject::PaintInfo/PaintInfo/ throughout WebCore/.
2471            Also move the OverlapTestRequestMap typedef into PaintInfo.h, and replace s/RenderObject::OverlapTestRequestMap/OverlapTestRequestMap/ everywhere.
2472
2473         2) Move "RenderObject* paintingRootForChildren(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
2474            and modify it to take a renderer: "void updatePaintingRootForChildren(const RenderObject* renderer)".
2475
2476         This changes a common idiom:
2477         -    info.paintingRoot = paintingRootForChildren(paintInfo);
2478         +    info.updatePaintingRootForChildren(this);
2479
2480         We save resetting the paintingRoot to 0 if it was 0 already and thus do less work.
2481
2482         3) Move "bool shouldPaintWithinRoot(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
2483            and modify it to take a renderer: "bool shouldPaintWithinRoot(const RenderObject* renderer) const".
2484
2485         This changes a common idiom:
2486         -    if (!shouldPaintWithinRoot(paintInfo))
2487         +    if (!paintInfo.shouldPaintWithinRoot(this))
2488
2489         4) Move "void applyTransformToPaintInfo(RenderObject::PaintInfo&, const AffineTransform& localToChildTransform)"
2490            from SVGRenderSupport to PaintInfo and rename it to "applyTransform", guarded with ENABLE(SVG) blocks.
2491
2492         This changes a common idiom:
2493         -    applyTransformToPaintInfo(childPaintInfo, localToParentTransform());
2494         +    childPaintInfo.applyTransform(localToParentTransform());
2495
2496         Add PaintInfo.h / PaintPhase.h to all build systems that list headers.
2497
2498         * GNUmakefile.am:
2499         * WebCore.gypi:
2500         * WebCore.pro:
2501         * WebCore.vcproj/WebCore.vcproj:
2502         * WebCore.xcodeproj/project.pbxproj:
2503         * platform/android/RenderThemeAndroid.cpp:
2504         (WebCore::getCanvasFromInfo):
2505         (WebCore::RenderThemeAndroid::paintCheckbox):
2506         (WebCore::RenderThemeAndroid::paintButton):
2507         (WebCore::RenderThemeAndroid::paintRadio):
2508         (WebCore::RenderThemeAndroid::paintTextField):
2509         (WebCore::RenderThemeAndroid::paintTextArea):
2510         (WebCore::RenderThemeAndroid::paintSearchField):
2511         (WebCore::RenderThemeAndroid::paintCombo):
2512         (WebCore::RenderThemeAndroid::paintMenuList):
2513         (WebCore::RenderThemeAndroid::paintMenuListButton):
2514         * platform/android/RenderThemeAndroid.h:
2515         * platform/efl/RenderThemeEfl.cpp:
2516         (WebCore::RenderThemeEfl::paintThemePart):
2517         (WebCore::RenderThemeEfl::paintCheckbox):
2518         (WebCore::RenderThemeEfl::paintRadio):
2519         (WebCore::RenderThemeEfl::paintButton):
2520         (WebCore::RenderThemeEfl::paintMenuList):
2521         (WebCore::RenderThemeEfl::paintTextField):
2522         (WebCore::RenderThemeEfl::paintTextArea):
2523         (WebCore::RenderThemeEfl::paintSearchFieldDecoration):
2524         (WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
2525         (WebCore::RenderThemeEfl::paintSearchFieldResultsDecoration):
2526         (WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
2527         (WebCore::RenderThemeEfl::paintSearchField):
2528         * platform/efl/RenderThemeEfl.h:
2529         * platform/gtk/RenderThemeGtk.cpp:
2530         (WebCore::paintMozillaGtkWidget):
2531         (WebCore::RenderThemeGtk::paintCheckbox):
2532         (WebCore::RenderThemeGtk::paintRadio):
2533         (WebCore::RenderThemeGtk::paintButton):
2534         (WebCore::RenderThemeGtk::paintMenuList):
2535         (WebCore::RenderThemeGtk::paintTextField):
2536         (WebCore::RenderThemeGtk::paintTextArea):
2537         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
2538         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
2539         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
2540         (WebCore::RenderThemeGtk::paintSearchField):
2541         (WebCore::RenderThemeGtk::paintSliderTrack):
2542         (WebCore::RenderThemeGtk::paintSliderThumb):
2543         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
2544         (WebCore::RenderThemeGtk::paintMediaMuteButton):
2545         (WebCore::RenderThemeGtk::paintMediaPlayButton):
2546         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
2547         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
2548         (WebCore::RenderThemeGtk::paintMediaSliderTrack):
2549         (WebCore::RenderThemeGtk::paintMediaSliderThumb):
2550         (WebCore::RenderThemeGtk::paintProgressBar):
2551         * platform/gtk/RenderThemeGtk.h:
2552         * platform/haiku/RenderThemeHaiku.cpp:
2553         (WebCore::RenderThemeHaiku::paintCheckbox):
2554         (WebCore::RenderThemeHaiku::paintRadio):
2555         (WebCore::RenderThemeHaiku::paintMenuList):
2556         * platform/haiku/RenderThemeHaiku.h:
2557         * platform/qt/RenderThemeQt.cpp:
2558         (WebCore::StylePainter::StylePainter):
2559         (WebCore::RenderThemeQt::paintCheckbox):
2560         (WebCore::RenderThemeQt::paintRadio):
2561         (WebCore::RenderThemeQt::paintButton):
2562         (WebCore::RenderThemeQt::paintTextField):
2563         (WebCore::RenderThemeQt::paintTextArea):
2564         (WebCore::RenderThemeQt::paintMenuList):
2565         (WebCore::RenderThemeQt::paintMenuListButton):
2566         (WebCore::RenderThemeQt::paintProgressBar):
2567         (WebCore::RenderThemeQt::paintSliderTrack):
2568         (WebCore::RenderThemeQt::paintSliderThumb):
2569         (WebCore::RenderThemeQt::paintSearchField):
2570         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
2571         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
2572         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
2573         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
2574         (WebCore::RenderThemeQt::paintMediaMuteButton):
2575         (WebCore::RenderThemeQt::paintMediaPlayButton):
2576         (WebCore::RenderThemeQt::paintMediaSeekBackButton):
2577         (WebCore::RenderThemeQt::paintMediaSeekForwardButton):
2578         (WebCore::RenderThemeQt::paintMediaCurrentTime):
2579         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
2580         (WebCore::RenderThemeQt::paintMediaVolumeSliderThumb):
2581         (WebCore::RenderThemeQt::paintMediaSliderTrack):
2582         (WebCore::RenderThemeQt::paintMediaSliderThumb):
2583         * platform/qt/RenderThemeQt.h:
2584         * platform/wx/RenderThemeWx.cpp:
2585         (WebCore::RenderThemeWx::paintCheckbox):
2586         (WebCore::RenderThemeWx::paintRadio):
2587         (WebCore::RenderThemeWx::paintButton):
2588         (WebCore::RenderThemeWx::paintTextField):
2589         (WebCore::RenderThemeWx::paintMenuList):
2590         (WebCore::RenderThemeWx::paintMenuListButton):
2591         * rendering/EllipsisBox.cpp:
2592         (WebCore::EllipsisBox::paint):
2593         * rendering/EllipsisBox.h:
2594         * rendering/InlineBox.cpp:
2595         (WebCore::InlineBox::paint):
2596         * rendering/InlineBox.h:
2597         * rendering/InlineFlowBox.cpp:
2598         (WebCore::InlineFlowBox::paint):
2599         (WebCore::InlineFlowBox::paintFillLayers):
2600         (WebCore::InlineFlowBox::paintFillLayer):
2601         (WebCore::InlineFlowBox::paintBoxDecorations):
2602         (WebCore::InlineFlowBox::paintMask):
2603         (WebCore::InlineFlowBox::paintTextDecorations):
2604         * rendering/InlineFlowBox.h:
2605         * rendering/InlineTextBox.cpp:
2606         (WebCore::InlineTextBox::paint):
2607         * rendering/InlineTextBox.h:
2608         * rendering/PaintInfo.h: Added.
2609         (WebCore::PaintInfo::PaintInfo):
2610         (WebCore::PaintInfo::updatePaintingRootForChildren):
2611         (WebCore::PaintInfo::shouldPaintWithinRoot):
2612         (WebCore::PaintInfo::applyTransform):
2613         * rendering/PaintPhase.h: Added.
2614         (WebCore::):
2615         * rendering/RenderBlock.cpp:
2616         (WebCore::RenderBlock::paint):
2617         (WebCore::RenderBlock::paintChildren):
2618         (WebCore::RenderBlock::paintEllipsisBoxes):
2619         (WebCore::clipOutPositionedObjects):
2620         (WebCore::RenderBlock::layoutColumns):
2621         * rendering/RenderBox.cpp:
2622         (WebCore::RenderBox::paint):
2623         (WebCore::RenderBox::paintBoxDecorations):
2624         (WebCore::RenderBox::paintMask):
2625         * rendering/RenderFieldset.cpp:
2626         (WebCore::RenderFieldset::paintBoxDecorations):
2627         * rendering/RenderForeignObject.cpp:
2628         (WebCore::RenderForeignObject::paint):
2629         * rendering/RenderLayer.cpp:
2630         (WebCore::RenderLayer::paint):
2631         (WebCore::performOverlapTests):
2632         (WebCore::RenderLayer::paintLayer):
2633         (WebCore::RenderLayer::paintList):
2634         (WebCore::RenderLayer::paintPaginatedChildLayer):
2635         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2636         * rendering/RenderLayer.h:
2637         * rendering/RenderLayerBacking.cpp:
2638         (WebCore::RenderLayerBacking::paintIntoLayer):
2639         * rendering/RenderLineBoxList.cpp:
2640         (WebCore::RenderLineBoxList::paint):
2641         * rendering/RenderLineBoxList.h:
2642         * rendering/RenderMediaControls.cpp:
2643         (WebCore::RenderMediaControls::paintMediaControlsPart):
2644         * rendering/RenderMediaControls.h:
2645         * rendering/RenderMediaControlsChromium.cpp:
2646         (WebCore::paintMediaMuteButton):
2647         (WebCore::paintMediaPlayButton):
2648         (WebCore::paintMediaSlider):
2649         (WebCore::paintMediaSliderThumb):
2650         (WebCore::paintMediaVolumeSlider):
2651         (WebCore::paintMediaVolumeSliderThumb):
2652         (WebCore::paintMediaTimelineContainer):
2653         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2654         * rendering/RenderMediaControlsChromium.h:
2655         * rendering/RenderObject.h:
2656         * rendering/RenderPath.cpp:
2657         (WebCore::RenderPath::paint):
2658         * rendering/RenderReplaced.cpp:
2659         (WebCore::RenderReplaced::paint):
2660         (WebCore::RenderReplaced::shouldPaint):
2661         * rendering/RenderSVGContainer.cpp:
2662         (WebCore::RenderSVGContainer::paint):
2663         * rendering/RenderSVGResourceMarker.cpp:
2664         (WebCore::RenderSVGResourceMarker::draw):
2665         * rendering/RenderSVGResourceMarker.h:
2666         * rendering/RenderSVGRoot.cpp:
2667         (WebCore::RenderSVGRoot::paint):
2668         * rendering/RenderSVGText.cpp:
2669         (WebCore::RenderSVGText::paint):
2670         * rendering/RenderScrollbarPart.cpp:
2671         (WebCore::RenderScrollbarPart::paintIntoRect):
2672         * rendering/RenderTable.cpp:
2673         (WebCore::RenderTable::paintObject):
2674         (WebCore::RenderTable::paintBoxDecorations):
2675         * rendering/RenderTableCell.cpp:
2676         (WebCore::RenderTableCell::paint):
2677         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
2678         (WebCore::RenderTableCell::paintBoxDecorations):
2679         * rendering/RenderTheme.cpp:
2680         (WebCore::RenderTheme::paint):
2681         (WebCore::RenderTheme::paintBorderOnly):
2682         (WebCore::RenderTheme::paintDecorations):
2683         (WebCore::RenderTheme::paintMeter):
2684         * rendering/RenderTheme.h:
2685         (WebCore::RenderTheme::paintCapsLockIndicator):
2686         (WebCore::RenderTheme::paintCheckbox):
2687         (WebCore::RenderTheme::paintRadio):
2688         (WebCore::RenderTheme::paintButton):
2689         (WebCore::RenderTheme::paintInnerSpinButton):
2690         (WebCore::RenderTheme::paintOuterSpinButton):
2691         (WebCore::RenderTheme::paintTextField):
2692         (WebCore::RenderTheme::paintTextArea):
2693         (WebCore::RenderTheme::paintMenuList):
2694         (WebCore::RenderTheme::paintMenuListButton):
2695         (WebCore::RenderTheme::paintProgressBar):
2696         (WebCore::RenderTheme::paintSliderTrack):
2697         (WebCore::RenderTheme::paintSliderThumb):
2698         (WebCore::RenderTheme::paintSearchField):
2699         (WebCore::RenderTheme::paintSearchFieldCancelButton):
2700         (WebCore::RenderTheme::paintSearchFieldDecoration):
2701         (WebCore::RenderTheme::paintSearchFieldResultsDecoration):
2702         (WebCore::RenderTheme::paintSearchFieldResultsButton):
2703         (WebCore::RenderTheme::paintMediaFullscreenButton):
2704         (WebCore::RenderTheme::paintMediaPlayButton):
2705         (WebCore::RenderTheme::paintMediaMuteButton):
2706         (WebCore::RenderTheme::paintMediaSeekBackButton):
2707         (WebCore::RenderTheme::paintMediaSeekForwardButton):
2708         (WebCore::RenderTheme::paintMediaSliderTrack):
2709         (WebCore::RenderTheme::paintMediaSliderThumb):
2710         (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
2711         (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
2712         (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
2713         (WebCore::RenderTheme::paintMediaRewindButton):
2714         (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
2715         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
2716         (WebCore::RenderTheme::paintMediaControlsBackground):
2717         (WebCore::RenderTheme::paintMediaCurrentTime):
2718         (WebCore::RenderTheme::paintMediaTimeRemaining):
2719         * rendering/RenderThemeChromiumMac.h:
2720         * rendering/RenderThemeChromiumMac.mm:
2721         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
2722         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
2723         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
2724         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
2725         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
2726         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
2727         * rendering/RenderThemeChromiumSkia.cpp:
2728         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
2729         (WebCore::RenderThemeChromiumSkia::paintRadio):
2730         (WebCore::paintButtonLike):
2731         (WebCore::RenderThemeChromiumSkia::paintButton):
2732         (WebCore::RenderThemeChromiumSkia::paintTextField):
2733         (WebCore::RenderThemeChromiumSkia::paintTextArea):
2734         (WebCore::RenderThemeChromiumSkia::paintSearchField):
2735         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
2736         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
2737         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
2738         (WebCore::RenderThemeChromiumSkia::paintMediaControlsBackground):
2739         (WebCore::RenderThemeChromiumSkia::paintMediaSliderTrack):
2740         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack):
2741         (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb):
2742         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb):
2743         (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
2744         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
2745         (WebCore::RenderThemeChromiumSkia::paintMenuList):
2746         (WebCore::RenderThemeChromiumSkia::paintMenuListButton):
2747         (WebCore::RenderThemeChromiumSkia::paintSliderTrack):
2748         (WebCore::RenderThemeChromiumSkia::paintSliderThumb):
2749         (WebCore::RenderThemeChromiumSkia::paintProgressBar):
2750         * rendering/RenderThemeChromiumSkia.h:
2751         * rendering/RenderThemeChromiumWin.cpp:
2752         (WebCore::RenderThemeChromiumWin::paintCheckbox):
2753         (WebCore::RenderThemeChromiumWin::paintRadio):
2754         (WebCore::RenderThemeChromiumWin::paintButton):
2755         (WebCore::RenderThemeChromiumWin::paintTextField):
2756         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2757         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
2758         (WebCore::RenderThemeChromiumWin::paintMenuList):
2759         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
2760         (WebCore::RenderThemeChromiumWin::paintProgressBar):
2761         * rendering/RenderThemeChromiumWin.h:
2762         * rendering/RenderThemeMac.h:
2763         * rendering/RenderThemeMac.mm:
2764         (WebCore::RenderThemeMac::paintTextField):
2765         (WebCore::RenderThemeMac::paintCapsLockIndicator):
2766         (WebCore::RenderThemeMac::paintTextArea):
2767         (WebCore::RenderThemeMac::paintMenuList):
2768         (WebCore::RenderThemeMac::paintMeter):
2769         (WebCore::RenderThemeMac::paintProgressBar):
2770         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
2771         (WebCore::RenderThemeMac::paintMenuListButton):
2772         (WebCore::RenderThemeMac::paintSliderTrack):
2773         (WebCore::RenderThemeMac::paintSliderThumb):
2774         (WebCore::RenderThemeMac::paintSearchField):
2775         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
2776         (WebCore::RenderThemeMac::paintSearchFieldDecoration):
2777         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
2778         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
2779         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
2780         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
2781         (WebCore::RenderThemeMac::paintMediaMuteButton):
2782         (WebCore::RenderThemeMac::paintMediaPlayButton):
2783         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
2784         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
2785         (WebCore::RenderThemeMac::paintMediaSliderTrack):
2786         (WebCore::RenderThemeMac::paintMediaSliderThumb):
2787         (WebCore::RenderThemeMac::paintMediaRewindButton):
2788         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
2789         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
2790         (WebCore::RenderThemeMac::paintMediaControlsBackground):
2791         (WebCore::RenderThemeMac::paintMediaCurrentTime):
2792         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
2793         * rendering/RenderThemeSafari.cpp:
2794         (WebCore::RenderThemeSafari::paintCheckbox):
2795         (WebCore::RenderThemeSafari::paintRadio):
2796         (WebCore::RenderThemeSafari::paintButton):
2797         (WebCore::RenderThemeSafari::paintTextField):
2798         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
2799         (WebCore::RenderThemeSafari::paintTextArea):
2800         (WebCore::RenderThemeSafari::paintMenuList):
2801         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
2802         (WebCore::RenderThemeSafari::paintMenuListButton):
2803         (WebCore::RenderThemeSafari::paintSliderTrack):
2804         (WebCore::RenderThemeSafari::paintSliderThumb):
2805         (WebCore::RenderThemeSafari::paintSearchField):
2806         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
2807         (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
2808         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
2809         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
2810         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
2811         (WebCore::RenderThemeSafari::paintMediaMuteButton):
2812         (WebCore::RenderThemeSafari::paintMediaPlayButton):
2813         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
2814         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
2815         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
2816         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
2817         * rendering/RenderThemeSafari.h:
2818         * rendering/RenderThemeWin.cpp:
2819         (WebCore::RenderThemeWin::paintButton):
2820         (WebCore::RenderThemeWin::paintTextField):
2821         (WebCore::RenderThemeWin::paintMenuList):
2822         (WebCore::RenderThemeWin::paintMenuListButton):
2823         (WebCore::RenderThemeWin::paintSliderTrack):
2824         (WebCore::RenderThemeWin::paintSliderThumb):
2825         (WebCore::RenderThemeWin::paintSearchField):
2826         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
2827         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
2828         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
2829         (WebCore::RenderThemeWin::paintMediaFullscreenButton):
2830         (WebCore::RenderThemeWin::paintMediaMuteButton):
2831         (WebCore::RenderThemeWin::paintMediaPlayButton):
2832         (WebCore::RenderThemeWin::paintMediaSeekBackButton):
2833         (WebCore::RenderThemeWin::paintMediaSeekForwardButton):
2834         (WebCore::RenderThemeWin::paintMediaSliderTrack):
2835         (WebCore::RenderThemeWin::paintMediaSliderThumb):
2836         (WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton):
2837         * rendering/RenderThemeWin.h:
2838         (WebCore::RenderThemeWin::paintCheckbox):
2839         (WebCore::RenderThemeWin::paintRadio):
2840         (WebCore::RenderThemeWin::paintTextArea):
2841         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
2842         * rendering/RenderThemeWince.cpp:
2843         (WebCore::RenderThemeWince::paintButton):
2844         (WebCore::RenderThemeWince::paintTextField):
2845         (WebCore::RenderThemeWince::paintMenuList):
2846         (WebCore::RenderThemeWince::paintMenuListButton):
2847         (WebCore::RenderThemeWince::paintSearchField):
2848         (WebCore::RenderThemeWince::paintSearchFieldCancelButton):
2849         (WebCore::RenderThemeWince::paintSearchFieldResultsDecoration):
2850         (WebCore::RenderThemeWince::paintSearchFieldResultsButton):
2851         (WebCore::RenderThemeWince::paintSliderTrack):
2852         (WebCore::RenderThemeWince::paintSliderThumb):
2853         (WebCore::RenderThemeWince::paintMediaFullscreenButton):
2854         (WebCore::RenderThemeWince::paintMediaMuteButton):
2855         (WebCore::RenderThemeWince::paintMediaPlayButton):
2856         (WebCore::RenderThemeWince::paintMediaSeekBackButton):
2857         (WebCore::RenderThemeWince::paintMediaSeekForwardButton):
2858         (WebCore::RenderThemeWince::paintMediaSliderTrack):
2859         (WebCore::RenderThemeWince::paintMediaSliderThumb):
2860         * rendering/RenderThemeWince.h:
2861         (WebCore::RenderThemeWince::paintCheckbox):
2862         (WebCore::RenderThemeWince::paintRadio):
2863         (WebCore::RenderThemeWince::paintTextArea):
2864         (WebCore::RenderThemeWince::paintSearchFieldDecoration):
2865         * rendering/RootInlineBox.cpp:
2866         (WebCore::RootInlineBox::paintEllipsisBox):
2867         (WebCore::RootInlineBox::paintCustomHighlight):
2868         (WebCore::RootInlineBox::paint):
2869         (WebCore::RootInlineBox::fillLineSelectionGap):
2870         * rendering/RootInlineBox.h:
2871         * rendering/SVGInlineFlowBox.cpp:
2872         (WebCore::SVGInlineFlowBox::paint):
2873         * rendering/SVGInlineFlowBox.h:
2874         * rendering/SVGInlineTextBox.cpp:
2875         (WebCore::SVGInlineTextBox::paint):
2876         * rendering/SVGInlineTextBox.h:
2877         * rendering/SVGMarkerLayoutInfo.cpp:
2878         (WebCore::SVGMarkerLayoutInfo::drawMarkers):
2879         * rendering/SVGMarkerLayoutInfo.h:
2880         * rendering/SVGRenderSupport.cpp:
2881         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
2882         (WebCore::SVGRenderBase::finishRenderSVGContent):
2883         (WebCore::renderSubtreeToImage):
2884         * rendering/SVGRenderSupport.h:
2885         * rendering/SVGRootInlineBox.cpp:
2886         (WebCore::SVGRootInlineBox::paint):
2887         * rendering/SVGRootInlineBox.h:
2888
2889 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
2890
2891         Not reviewed. Sort Xcode project file.
2892
2893         * WebCore.xcodeproj/project.pbxproj:
2894
2895 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
2896
2897         Reviewed by Dirk Schulze.
2898
2899         Provide floating-point support for text selection framework
2900         https://bugs.webkit.org/show_bug.cgi?id=40665
2901
2902         Rename 'glyphScale' to 'horizontalGlyphStretch' upon Dans' request.
2903         Also guard the variables in ENABLE(SVG) blocks. Initialize variable to 1 instead of 1.0f, as that's the new style rule.
2904
2905         No functional changes, thus no new tests.
2906
2907         * platform/graphics/TextRun.h:
2908         (WebCore::TextRun::TextRun):
2909         (WebCore::TextRun::horizontalGlyphStretch):
2910         (WebCore::TextRun::setHorizontalGlyphStretch):
2911         (WebCore::TextRun::spacingDisabled):
2912         * platform/graphics/WidthIterator.cpp:
2913         (WebCore::WidthIterator::advance):
2914         * rendering/SVGInlineTextBox.cpp:
2915         (WebCore::SVGInlineTextBox::offsetForPosition):
2916
2917 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
2918
2919         Reviewed by Dirk Schulze.
2920
2921         REGRESSION: text-shadow CSS applied to SVG no longer works
2922         https://bugs.webkit.org/show_bug.cgi?id=40960
2923
2924         Readd text-shadow support, this time supporting multiple shadows.
2925         It's not exactly like HTML, because SVG draws fill/stroke phases seperated - the png shows the difference.
2926
2927         Tests: svg/css/text-shadow-multiple.xhtml
2928
2929         * rendering/InlineTextBox.cpp:
2930         (WebCore::InlineTextBox::applyShadowToGraphicsContext): Refactored from paintTextWithShadows(), so SVG can reuse.
2931         (WebCore::paintTextWithShadows): Use refactored applyShadowToGraphicsContext() function.
2932         * rendering/InlineTextBox.h: 
2933         * rendering/SVGInlineTextBox.cpp:
2934         (WebCore::SVGInlineTextBox::paintTextWithShadows): Added.
2935         (WebCore::SVGInlineTextBox::paintText): Call paintTextWithShadows() instead of directly drawing the text.
2936         * rendering/SVGInlineTextBox.h:
2937
2938 2010-06-29  Pavel Podivilov  <podivilov@chromium.org>
2939
2940         Reviewed by Yury Semikhatsky.
2941
2942         Web Inspector: show actual breakpoint position in UI.
2943         When user sets breakpoint from UI, javascript engine may actually set
2944         it on a different line. If so, move breakpoint to the correct position
2945         in frontend.
2946         https://bugs.webkit.org/show_bug.cgi?id=40781
2947
2948         * bindings/js/ScriptDebugServer.cpp:
2949         (WebCore::ScriptDebugServer::setBreakpoint):
2950         (WebCore::ScriptDebugServer::dispatchDidPause):
2951         * bindings/js/ScriptDebugServer.h:
2952         * bindings/v8/ScriptDebugServer.cpp:
2953         (WebCore::ScriptDebugServer::setBreakpoint):
2954         (WebCore::ScriptDebugServer::currentCallFrame):
2955         * bindings/v8/ScriptDebugServer.h:
2956         * inspector/InspectorBackend.cpp:
2957         (WebCore::InspectorBackend::setBreakpoint):
2958         * inspector/InspectorBackend.h:
2959         * inspector/InspectorBackend.idl:
2960         * inspector/InspectorController.cpp:
2961         (WebCore::InspectorController::didCommitLoad):
2962         (WebCore::InspectorController::setBreakpoint):
2963         (WebCore::InspectorController::removeBreakpoint):
2964         (WebCore::InspectorController::didParseSource):
2965         * inspector/InspectorController.h:
2966         * inspector/InspectorFrontend.cpp:
2967         (WebCore::InspectorFrontend::didSetBreakpoint):
2968         * inspector/InspectorFrontend.h:
2969         * inspector/front-end/BreakpointManager.js:
2970         (WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint):
2971         (WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint):
2972         (WebInspector.BreakpointManager.prototype.setBreakpoint):
2973         (WebInspector.BreakpointManager.prototype.restoredBreakpoint):
2974         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
2975         (WebInspector.BreakpointManager.prototype._setBreakpoint):
2976         (WebInspector.BreakpointManager.prototype._removeBreakpoint):
2977         (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend.didSetBreakpoint):
2978         (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend):
2979         (WebInspector.Breakpoint.prototype.set enabled):
2980         (WebInspector.Breakpoint.prototype.set condition):
2981         * inspector/front-end/InspectorBackendStub.js:
2982         (.WebInspector.InspectorBackendStub.prototype.setBreakpoint):
2983         * inspector/front-end/ScriptView.js:
2984         (WebInspector.ScriptView.prototype._addBreakpoint):
2985         * inspector/front-end/SourceView.js:
2986         (WebInspector.SourceView.prototype._addBreakpoint):
2987
2988 2010-06-29  Dumitru Daniliuc  <dumi@chromium.org>
2989
2990         Reviewed by Adam Barth.
2991
2992         Catch toString() exceptions in all DB-related code.
2993         https://bugs.webkit.org/show_bug.cgi?id=41297
2994
2995         * bindings/v8/custom/V8BindingMacros.h:
2996         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2997         (WebCore::V8DOMWindow::openDatabaseCallback):
2998         * bindings/v8/custom/V8DatabaseCustom.cpp:
2999         (WebCore::V8Database::changeVersionCallback):
3000         * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
3001         (WebCore::V8DatabaseSync::changeVersionCallback):
3002         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3003         (WebCore::V8SQLTransaction::executeSqlCallback):
3004         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
3005         (WebCore::V8SQLTransactionSync::executeSqlCallback):
3006         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3007         (WebCore::V8WorkerContext::openDatabaseCallback):
3008         (WebCore::V8WorkerContext::openDatabaseSyncCallback):
3009
3010 2010-06-29  Herczeg Zoltan  <zherczeg@webkit.org>
3011
3012         Rubber-stamped by Nikolas Zimmermann.
3013
3014         Windows build fix.
3015         https://bugs.webkit.org/show_bug.cgi?id=5861
3016
3017         * svg/SVGFEConvolveMatrixElement.cpp:
3018         (WebCore::SVGFEConvolveMatrixElement::build):
3019
3020 2010-06-29  Zoltan Herczeg  <zherczeg@webkit.org>
3021
3022         Reviewed by Nikolas Zimmermann.
3023
3024         Add ConvolveMatrix SVG filter effect
3025         https://bugs.webkit.org/show_bug.cgi?id=5861
3026
3027         The patch was originally started by Dirk Schulze,
3028         and the .cpp and .h files are mostly his work.
3029         I updated the build systems and do some minor updates
3030         to the source files as well. The patch does not contain
3031         the implementation of the filter: this is intended,
3032         and will be landed in a follow-up patch.
3033
3034         * Android.derived.jscbindings.mk:
3035         * Android.derived.v8bindings.mk:
3036         * Android.mk:
3037         * CMakeLists.txt:
3038         * DerivedSources.cpp:
3039         * DerivedSources.make:
3040         * GNUmakefile.am:
3041         * WebCore.gypi:
3042         * WebCore.pri:
3043         * WebCore.pro:
3044         * WebCore.vcproj/WebCore.vcproj:
3045         * WebCore.xcodeproj/project.pbxproj:
3046         * bindings/objc/DOM.mm:
3047         (WebCore::createElementClassMap):
3048         * bindings/objc/DOMSVG.h:
3049         * page/DOMWindow.idl:
3050         * svg/SVGAllInOne.cpp:
3051         * svg/SVGFEConvolveMatrixElement.cpp: Added.
3052         (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
3053         (WebCore::SVGFEConvolveMatrixElement::~SVGFEConvolveMatrixElement):
3054         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute):
3055         (WebCore::SVGFEConvolveMatrixElement::setOrder):
3056         (WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength):
3057         (WebCore::SVGFEConvolveMatrixElement::build):
3058         * svg/SVGFEConvolveMatrixElement.h: Added.
3059         * svg/SVGFEConvolveMatrixElement.idl: Added.
3060         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
3061         (WebCore::FEConvolveMatrix::FEConvolveMatrix):
3062         (WebCore::FEConvolveMatrix::create):
3063         (WebCore::FEConvolveMatrix::kernelSize):
3064         (WebCore::FEConvolveMatrix::setKernelSize):
3065         (WebCore::FEConvolveMatrix::targetOffset):
3066         (WebCore::FEConvolveMatrix::setTargetOffset):
3067         (WebCore::operator<<):
3068         (WebCore::FEConvolveMatrix::externalRepresentation):
3069         * svg/graphics/filters/SVGFEConvolveMatrix.h:
3070         (WebCore::):
3071         * svg/svgattrs.in:
3072         * svg/svgtags.in:
3073
3074 2010-06-28  Adam Barth  <abarth@webkit.org>
3075
3076         Reviewed by Eric Seidel.
3077
3078         HTML5 tree builder shouldn't ASSERT on HTML5lib test suite
3079         https://bugs.webkit.org/show_bug.cgi?id=41335
3080
3081         Sketch out the EndTag handling for InBodyMode.
3082
3083         * html/HTMLTreeBuilder.cpp:
3084         (WebCore::HTMLTreeBuilder::processEndTag):
3085         * html/HTMLTreeBuilder.h:
3086         (WebCore::HTMLTreeBuilder::ElementStack::inScope):
3087         (WebCore::HTMLTreeBuilder::clearActiveFormatingElementsUpToLastMarker):
3088         (WebCore::HTMLTreeBuilder::generateImpliedEndTags):
3089
3090 2010-06-28  David Levin  <levin@chromium.org>
3091
3092         Reviewed by NOBODY (chromium build fix).
3093
3094         * rendering/RenderObject.h: Add missing forward declaration.
3095
3096 2010-06-28  Adam Barth  <abarth@webkit.org>
3097
3098         Unreviewed.
3099
3100         I accidently gave up my ref and tried to dereference a null pointer.
3101         This code is keeping an extra ref that it doesn't need, but that fact
3102         was somewhat hidden before.
3103
3104         * dom/ContainerNode.cpp:
3105         (WebCore::ContainerNode::addChildCommon):
3106         (WebCore::ContainerNode::parserAddChild):
3107         (WebCore::ContainerNode::legacyParserAddChild):
3108         * dom/ContainerNode.h:
3109
3110 2010-06-28  Adam Barth  <abarth@webkit.org>
3111
3112         Unreviewed.
3113
3114         Refactor common code into addChildCommon
3115         https://bugs.webkit.org/show_bug.cgi?id=41326
3116
3117         Eric asked that we share the common code between these codepaths.
3118
3119         * dom/ContainerNode.cpp:
3120         (WebCore::ContainerNode::addChildCommon):
3121         (WebCore::ContainerNode::parserAddChild):
3122         (WebCore::ContainerNode::addChild):
3123         * dom/ContainerNode.h:
3124
3125 2010-06-28  Eric Seidel  <eric@webkit.org>
3126
3127         Reviewed by Adam Barth.
3128
3129         Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
3130         https://bugs.webkit.org/show_bug.cgi?id=41319
3131
3132         Restructure the code to not use in-band data, which is what
3133         got us in trouble with a signed/unsigned mismatch before.
3134
3135         * html/HTMLTreeBuilder.cpp:
3136         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
3137         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
3138         * html/HTMLTreeBuilder.h:
3139
3140 2010-06-28  Daniel Bates  <dbates@rim.com>
3141
3142         Unreviewed, attempt to fix Qt bots.
3143
3144         Attempt to fix the build after changeset 62079 <http://trac.webkit.org/changeset/62079>
3145         (https://bugs.webkit.org/show_bug.cgi?id=41324).
3146
3147         Rename some more call sites that were missed in the initial landing.
3148
3149         * dom/XMLDocumentParserQt.cpp:
3150         (WebCore::XMLDocumentParser::parseStartElement):
3151         (WebCore::XMLDocumentParser::parseProcessingInstruction):
3152         (WebCore::XMLDocumentParser::parseCdata):
3153         (WebCore::XMLDocumentParser::parseComment):
3154         (WebCore::XMLDocumentParser::parseDtd):
3155
3156 2010-06-28  Daniel Bates  <dbates@rim.com>
3157
3158         Unreviewed, build fix.
3159
3160         Change return type of method HTMLTreeBuilder::reconstructTheActiveFormattingElements()
3161         from int to unsigned.
3162
3163         Attempt to fix the build after changeset 62077 <https://trac.webkit.org/changeset/62077>
3164         (https://bugs.webkit.org/show_bug.cgi?id=41319).
3165
3166         * html/HTMLTreeBuilder.cpp:
3167         (WebCore::HTMLTreeBuilder::indexOfLastOpenFormattingElementOrMarker):
3168         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
3169         * html/HTMLTreeBuilder.h:
3170
3171 2010-06-28  Eric Seidel  <eric@webkit.org>
3172
3173         Reviewed by Adam Barth.
3174
3175         Rename ContainerNode::addChild to legacyParserAddChild to indicate its parser-only intended use
3176         https://bugs.webkit.org/show_bug.cgi?id=41324
3177
3178         A bunch of places in the code were calling ContainerNode::addChild.
3179         I don't think they actually want to be doing that, as it has special
3180         form-related handling which is part of LegacyHTMLTreeBuilder.
3181
3182         No functional changes, thus no tests.
3183
3184         * dom/ContainerNode.cpp:
3185         (WebCore::ContainerNode::legacyParserAddChild):
3186         * dom/ContainerNode.h:
3187         * dom/DOMImplementation.cpp:
3188         (WebCore::DOMImplementation::createDocument):
3189         * dom/Node.cpp:
3190         (WebCore::Node::legacyParserAddChild):
3191         * dom/Node.h:
3192         * html/HTMLKeygenElement.cpp:
3193         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3194         * html/HTMLTableElement.cpp:
3195         (WebCore::HTMLTableElement::legacyParserAddChild):
3196         * html/HTMLTableElement.h:
3197         * html/HTMLTableRowElement.cpp:
3198         (WebCore::HTMLTableRowElement::legacyParserAddChild):
3199         * html/HTMLTableRowElement.h:
3200         * html/HTMLTableSectionElement.cpp:
3201         (WebCore::HTMLTableSectionElement::legacyParserAddChild):
3202         * html/HTMLTableSectionElement.h:
3203         * html/HTMLViewSourceDocument.cpp:
3204         (WebCore::HTMLViewSourceDocument::createContainingTable):
3205         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
3206         (WebCore::HTMLViewSourceDocument::addLine):
3207         (WebCore::HTMLViewSourceDocument::addText):
3208         (WebCore::HTMLViewSourceDocument::addLink):
3209
3210 2010-06-28  Eric Seidel  <eric@webkit.org>
3211
3212         Reviewed by Adam Barth.
3213
3214         Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
3215         https://bugs.webkit.org/show_bug.cgi?id=41319
3216
3217         This is basically a direct transcription of HTML5 TreeBuilder spec:
3218          http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#list-of-active-formatting-elements
3219
3220         This code is covered by various tests in html5lib/runner which we
3221         can't run yet due to other asserts.  Adam and I are working on
3222         getting rid of those ASSERTS so that this (and other code) will
3223         be better tested shortly.
3224
3225         * html/HTMLTreeBuilder.cpp:
3226         (WebCore::HTMLTreeBuilder::insertFormatingElement):
3227         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
3228         * html/HTMLTreeBuilder.h:
3229         (WebCore::HTMLTreeBuilder::ElementStack::contains):
3230         (WebCore::HTMLTreeBuilder::FormatingElementEntry::FormatingElementEntry):
3231         (WebCore::HTMLTreeBuilder::FormatingElementEntry::):
3232         (WebCore::HTMLTreeBuilder::FormatingElementEntry::isMarker):
3233         (WebCore::HTMLTreeBuilder::FormatingElementEntry::element):
3234         (WebCore::HTMLTreeBuilder::FormatingElementEntry::replaceElement):
3235
3236 2010-06-28  Adam Barth  <abarth@webkit.org>
3237
3238         Reviewed by Eric Seidel.
3239
3240         Fix ASSERT so we can run more HTML5lib tests
3241         https://bugs.webkit.org/show_bug.cgi?id=41325
3242
3243         We can't call Node::addChild because that function contains a bunch of
3244         logic from the old parser.  Instead, this patch creates a new version
3245         of addChild that's does less validating (that's the tree builder's
3246         job).
3247
3248         * dom/ContainerNode.cpp:
3249         (WebCore::ContainerNode::parserAddChild):
3250         * dom/ContainerNode.h:
3251         * dom/Node.cpp:
3252         (WebCore::Node::parserAddChild):
3253         * dom/Node.h:
3254         * html/HTMLTreeBuilder.h:
3255         (WebCore::HTMLTreeBuilder::attach):
3256
3257 2010-06-28  David Levin  <levin@chromium.org>
3258
3259         Reviewed by NOBODY (chromium build fix).
3260
3261         * bindings/v8/ScriptEventListener.h: Changed forward declaration
3262           to correspond to the code change doing in r62052.
3263
3264 2010-06-28  Brady Eidson  <beidson@apple.com>
3265
3266         Reviewed by Alexey Proskuryakov.
3267
3268         Support for https://bugs.webkit.org/show_bug.cgi?id=40484
3269
3270         In working on adding beforeProcess, it becomes necessary for JSLazyEventListeners to always know what their
3271         original Node* was, even if it was a window event listener.
3272
3273         For HTMLFrameSet, HTMLBody, and SVGSVG elements, a second form of createAttributeEventListener was used that
3274         took a Frame* argument and didn't set the original Node* on the JSLazyEventListener.
3275
3276         This patch changes that form of the function to createWindowAttributeEventListener, and passes the Node* along
3277         for later use by the beforeProcess mechanism.
3278
3279         No new tests. (No change in behavior)
3280
3281         * bindings/js/ScriptEventListener.cpp:
3282         (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
3283           of a Frame*, and figures out the Frame* itself internally.
3284         * bindings/js/ScriptEventListener.h:
3285
3286         * bindings/v8/ScriptEventListener.cpp:
3287         (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
3288           of a Frame*, and figures out the Frame* itself internally. Note that V8LazyEventListener doesn't allow us to
3289           pass the Element* argument in so this beforeprocess feature won't fully work on V8 builds until this is changed.
3290         * bindings/v8/ScriptEventListener.h:
3291
3292         * html/HTMLBodyElement.cpp:
3293         (WebCore::HTMLBodyElement::parseMappedAttribute): Use createWindowAttributeEventListener instead.
3294         * html/HTMLFrameSetElement.cpp:
3295         (WebCore::HTMLFrameSetElement::parseMappedAttribute): Ditto.
3296         * svg/SVGSVGElement.cpp:
3297         (WebCore::SVGSVGElement::parseMappedAttribute): Ditto. Also add some missing copyright dates that `svn log` proves
3298           should be there.
3299
3300 2010-06-28  John Gregg  <johnnyg@google.com>
3301
3302         Reviewed by Kent Tamura.
3303
3304         add ENABLE_DIRECTORY_UPLOAD build support
3305         https://bugs.webkit.org/show_bug.cgi?id=41100
3306
3307         * Configurations/FeatureDefines.xcconfig:
3308         * GNUmakefile.am:
3309         * WebCore.pri:
3310
3311 2010-06-28  Adam Barth  <abarth@webkit.org>
3312
3313         Reviewed by Eric Seidel.
3314
3315         Don't use the new tree builder for fragments
3316         https://bugs.webkit.org/show_bug.cgi?id=41316
3317
3318         We need to walk before we can run.  After this change, we can run the
3319         runner.html tests (with the ASSERT caveat).
3320
3321         * html/HTMLTreeBuilder.cpp:
3322         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
3323
3324 2010-06-28  Adam Barth  <abarth@webkit.org>
3325
3326         Reviewed by Eric Seidel.
3327
3328         The new tree builder should actually finish building the tree
3329         https://bugs.webkit.org/show_bug.cgi?id=41314
3330
3331         Again, this patch makes progress on runner.html, but I haven't removed
3332         the ASSERT yet.
3333
3334         * html/HTMLTreeBuilder.cpp:
3335         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
3336         (WebCore::HTMLTreeBuilder::finished):
3337         * html/HTMLTreeBuilder.h:
3338
3339 2010-06-28  Dumitru Daniliuc  <dumi@chromium.org>
3340
3341         Reviewed by Eric Seidel.
3342
3343         Fix a race condition that can happen when using DBs in workers.
3344         https://bugs.webkit.org/show_bug.cgi?id=41105
3345
3346         * storage/DatabaseTracker.cpp:
3347         (WebCore::DatabaseTracker::addOpenDatabase):
3348         * storage/DatabaseTracker.h:
3349
3350 2010-06-28  Adam Barth  <abarth@webkit.org>
3351
3352         Reviewed by Eric Seidel.
3353
3354         Add text nodes to the DOM
3355         https://bugs.webkit.org/show_bug.cgi?id=41306
3356
3357         Actually add some text nodes to the DOM when parsing a document.  We're
3358         going to need to do something fancier here eventually, but this gets us
3359         past the error we're seeing currently in runner.html.
3360
3361         Unfortunately, this patch "regresses" runner.html in the sense that we
3362         now hit an assert, but it's still an improvement...  I'll update the
3363         HTML5 expectations once we get past the assert.
3364
3365         * html/HTMLTreeBuilder.cpp:
3366         (WebCore::HTMLTreeBuilder::processCharacter):
3367         (WebCore::HTMLTreeBuilder::insertTextNode):
3368         * html/HTMLTreeBuilder.h:
3369
3370 2010-06-28  Beth Dakin  <bdakin@apple.com>
3371
3372         Build fix for non-PATH_BASED_BORDER_RADIUS_DRAWING platforms.
3373
3374         * rendering/RenderBoxModelObject.cpp:
3375
3376 2010-06-28  Andreas Kling  <andreas.kling@nokia.com>
3377
3378         Reviewed by Kenneth Rohde Christiansen.
3379
3380         [Qt] Use HTML5-conformant gradient interpolation mode
3381         https://bugs.webkit.org/show_bug.cgi?id=41298
3382
3383         Change the Qt Gradient implementation to use ComponentInterpolation mode.
3384
3385         Spec link:
3386         http://www.whatwg.org/specs/web-apps/current-work/#colors-and-styles
3387
3388         * platform/graphics/qt/GradientQt.cpp:
3389         (WebCore::Gradient::platformGradient):
3390
3391 2010-06-28  Beth Dakin  <bdakin@apple.com>
3392
3393         Reviewed by Sam Weinig.
3394
3395         Fix for https://bugs.webkit.org/show_bug.cgi?id=9197 CSS3: Borders 
3396         with border-radius and double, groove, or ridge styles should look 
3397         better
3398
3399         This patch re-works border radius painting to stroke paths instead 
3400         of arcs. 
3401
3402         Added new function clipConvexPolygon(). Added static 
3403         addConvexPolygonToContext so that code can be shared between 
3404         drawConvexPolygon() and clipConvexPolygon().
3405         * platform/graphics/GraphicsContext.h:
3406         * platform/graphics/cg/GraphicsContextCG.cpp:
3407         (WebCore::addConvexPolygonToContext):
3408         (WebCore::GraphicsContext::drawConvexPolygon):
3409         (WebCore::GraphicsContext::clipConvexPolygon):
3410
3411         Shells of implementations on non-CG platforms.
3412         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3413         (WebCore::GraphicsContext::clipConvexPolygon):
3414         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
3415         (WebCore::GraphicsContext::clipConvexPolygon):
3416         * platform/graphics/qt/GraphicsContextQt.cpp:
3417         (WebCore::GraphicsContext::clipConvexPolygon):
3418         * platform/graphics/skia/GraphicsContextSkia.cpp:
3419         (WebCore::GraphicsContext::clipConvexPolygon):
3420         * platform/graphics/wince/GraphicsContextWince.cpp:
3421         (WebCore::GraphicsContext::clipConvexPolygon):
3422         * platform/graphics/wx/GraphicsContextWx.cpp:
3423         (WebCore::GraphicsContext::clipConvexPolygon):
3424
3425         This new helper function determines if the inner corners of the 
3426         border will arch in or meet at a right angle. 
3427         * rendering/RenderBoxModelObject.cpp:
3428         (WebCore::borderWillArcInnerEdge):
3429
3430         This function is re-written so that, for each side of the border, 
3431         if borderWillArcInnerEdge() is true, we go down a brand new code 
3432         path of clipping to a convex polygon for the border side and then 
3433         we paint the side using the new function drawBoxSideFromPath(). If 
3434         borderWillArcInnerEdge() is false, then we call into the old 
3435         familiar drawLineForBoxSide() which relies on the rounder clip 
3436         rects we have set up to arch the outer edge of the border.
3437         (WebCore::RenderBoxModelObject::paintBorder):
3438
3439         This new function does the math to figure out the convex polygon 
3440         to clip to in the case where we need to arch the inner edge of the 
3441         border. This calls into a new GraphicsContext function that is only 
3442         implemented on CG at this time. This is the reason we are keeping 
3443         around an old version of paintBorder() for now.
3444         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
3445         * rendering/RenderBoxModelObject.h:
3446
3447         borderInnerRect() is a new convenience function called from 
3448         RenderObject and RenderBoxModelObject to determine the rect of the 
3449         inside edge of the border.
3450         * rendering/RenderObject.cpp:
3451         (WebCore::RenderObject::borderInnerRect):
3452
3453         This new function re-works drawArcForBoxSide to draw from Paths 
3454         when appropriate instead of stroking arcs. 
3455         (WebCore::RenderObject::drawBoxSideFromPath):
3456
3457         Keep this around for that do not HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until 
3458         GraphicsContext::clipConvexPolygon() is implemented.
3459         (WebCore::RenderObject::drawArcForBoxSide):
3460         * rendering/RenderObject.h:
3461
3462         New function 
3463         RenderStyle::getInnerBorderRadiiForRectWithBorderWidths() gets the 
3464         inner radius values for a rect. It takes border widths a parameters 
3465         rather than using the style's border widths so that it can be used 
3466         in inner radius calculations for double and groove/ridge 
3467         calculations. The W3C corner constraining rules were moved to a 
3468         static function that can be called from both getBorderRadiiForRect
3469         () and getInnerBorderRadiiForRectWithBorderWidths().
3470         * rendering/style/RenderStyle.cpp:
3471         (WebCore::constrainCornerRadiiForRect):
3472         (WebCore::RenderStyle::getBorderRadiiForRect):
3473         (WebCore::RenderStyle::getInnerBorderRadiiForRectWithBorderWidths):
3474         * rendering/style/RenderStyle.h:
3475
3476 2010-06-28  Martin Robinson  <mrobinson@igalia.com>
3477
3478         Reviewed by Xan Lopez.
3479
3480         [GTK] Add support for the progress bar tag
3481         https://bugs.webkit.org/show_bug.cgi?id=41014
3482
3483         Add support for rendering the progress tag for WebKit GTK+.
3484
3485         * GNUmakefile.am:
3486         * platform/gtk/RenderThemeGtk.cpp:
3487         (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
3488         Added. Currently progress bar animations are disabled. As it looks like
3489         there may not be a good way to support this with Mozilla's theme drawing code.
3490         (WebCore::RenderThemeGtk::animationDurationForProgressBar): Ditto.
3491         (WebCore::RenderThemeGtk::adjustProgressBarStyle): Added.
3492         (WebCore::RenderThemeGtk::paintProgressBar): Added.
3493         * platform/gtk/RenderThemeGtk.h: Add declarations for new methods.
3494         * platform/gtk/gtk2drawing.c: 
3495         (moz_gtk_get_progress_widget): Expose the progress widget so that the chunk can be positioned properly.
3496         * platform/gtk/gtkdrawing.h: Added declaration for moz_gtk_get_progress_widget.
3497
3498 2010-06-28  Adam Barth  <abarth@webkit.org>
3499
3500         Reviewed by Eric Seidel.
3501
3502         HTML5 Regression: Crash in insert()
3503         https://bugs.webkit.org/show_bug.cgi?id=41281
3504
3505         We need to call endIfDelayed() outside of the script nesting block
3506         because endIfDelayed() might call end(), which deletes the
3507         HTMLDocumentParser.  If we try to exit the script nesting block after
3508         the HTMLDocumentParser has been deleted, we'll decrement unallocated
3509         memory, which is bad times.
3510
3511         Moving endIfDelayed outside of the script nesting block also lets us
3512         avoid ending if inWrite() is true.  If we're inWrite(), then there's
3513         folks above us on the stack who will crash of the HTMLDocumentParser is
3514         deallocated.  Adding this check matches the LegacyHTMLDocumentParser
3515         and the logic in attemptToEnd, facilitating a small refactoring of the
3516         common logic for improved readability.
3517
3518         I don't know of any test case that changes in behavior because of this
3519         patch, but this bug exists on the same line of code that the reliablity
3520         tests crashed.  I'm not sure whether this patch will fix that crash,
3521         but removing bugs (even theoretical ones) seems like a good idea.
3522
3523         * html/HTMLDocumentParser.cpp:
3524         (WebCore::HTMLDocumentParser::insert):
3525         (WebCore::HTMLDocumentParser::append):
3526         (WebCore::HTMLDocumentParser::attemptToEnd):
3527         (WebCore::HTMLDocumentParser::endIfDelayed):
3528         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
3529         * html/HTMLDocumentParser.h:
3530         (WebCore::HTMLDocumentParser::shouldDelayEnd):
3531
3532 2010-06-28  Eric Carlson  <eric.carlson@apple.com>
3533
3534         Reviewed by Sam Weinig.
3535
3536         MediaPlayerPrivate::getSupportedTypes does not return "modern" MIME types
3537         https://bugs.webkit.org/show_bug.cgi?id=41287
3538         <rdar://problem/8137402>
3539
3540         No new test because getSupportedTypes is used privately by MediaPlayer.
3541
3542         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3543         (WebCore::MediaPlayerPrivate::getSupportedTypes): Build hash set with both common and
3544         modern types.
3545
3546 2010-06-28  James Robinson  <jamesr@chromium.org>
3547
3548         Reviewed by Darin Adler.
3549
3550         REGRESSION(53790): Neopets page with mismatched elements misrenders
3551         https://bugs.webkit.org/show_bug.cgi?id=41181
3552
3553         Misnested formatting tags require fixup in order to create a valid DOM.  Because this takes
3554         O(N^2) time in some cases, http://trac.webkit.org/changeset/53790 added an iteration limit
3555         of 5 to this algorithm to avoid hangs.  This limit is too low for neopets, but a limit of
3556         7 is sufficient.  This raises the limit to 10 to have a bit of breathing room.  HTML5
3557         defines the fixup algorithm http://www.whatwg.org/specs/web-apps/current-work/#adoptionAgency
3558         but doesn't specify any particular iteration limit.
3559
3560         * html/LegacyHTMLTreeBuilder.cpp:
3561
3562 2010-06-28  Adam Barth  <abarth@webkit.org>
3563
3564         Reviewed by Eric Seidel.
3565
3566         The new tree builder needs to call attach() on elements it attaches to
3567         the DOM
3568         https://bugs.webkit.org/show_bug.cgi?id=41293
3569
3570         Apparently Nodes expect to have their attach() method called when they
3571         are attached to the DOM.  The new tree builder is happy to oblige.
3572         Making this call requires some fancy footwork with RefPtr/PassRefPtr to
3573         avoid extra ref churn while keeping each function small.
3574
3575         * html/HTMLTreeBuilder.cpp:
3576         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
3577         (WebCore::HTMLTreeBuilder::processCharacter):
3578         (WebCore::HTMLTreeBuilder::insertDoctype):
3579         (WebCore::HTMLTreeBuilder::insertComment):
3580         (WebCore::HTMLTreeBuilder::insertCommentOnDocument):
3581         (WebCore::HTMLTreeBuilder::insertElement):
3582         (WebCore::HTMLTreeBuilder::insertSelfClosingElement):
3583         (WebCore::HTMLTreeBuilder::insertScriptElement):
3584         * html/HTMLTreeBuilder.h:
3585         (WebCore::HTMLTreeBuilder::attach):
3586
3587 2010-06-28  Xan Lopez  <xlopez@igalia.com>
3588
3589         Fix distcheck.
3590
3591         * GNUmakefile.am:
3592
3593 2010-06-28  Kenneth Russell  <kbr@google.com>
3594
3595         Reviewed by Dimitri Glazkov.
3596
3597         Index validation caches buffer size information too aggressively
3598         https://bugs.webkit.org/show_bug.cgi?id=41092
3599
3600         Test: fast/canvas/webgl/index-validation-with-resized-buffer.html
3601
3602         * html/canvas/WebGLRenderingContext.cpp:
3603         (WebCore::WebGLRenderingContext::validateRenderingState):
3604          - Compute the number of valid elements each time based on the latched buffer.
3605         (WebCore::WebGLRenderingContext::vertexAttribPointer):
3606          - Do not cache the buffer size, only the attributes used to
3607            compute the number of required elements.
3608         * html/canvas/WebGLRenderingContext.h:
3609         (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState):
3610          - Ditto.
3611
3612 2010-06-28  Andreas Kling  <andreas.kling@nokia.com>
3613
3614         Reviewed by Simon Hausmann.
3615
3616         [Qt] Replace single treat-as-space characters with normal space
3617         https://bugs.webkit.org/show_bug.cgi?id=41278
3618
3619         This keeps Qt from attempting glyph substitution and loading a bunch
3620         of extra fonts when encountering &nbsp; entities.
3621
3622         * platform/graphics/qt/FontQt.cpp:
3623         (WebCore::Font::floatWidthForComplexText):
3624
3625 2010-06-28  Robin Cao  <robin.cao@torchmobile.com.cn>
3626
3627         Reviewed by Dan Bernstein.
3628
3629         canvas fillText with @font-face crashes
3630         https://bugs.webkit.org/show_bug.cgi?id=35486
3631
3632         The font object in CanvasRenderingContext2D may become invalid at some point.
3633         Override recalcStyle() in HTMLCanvasElement, and update the font object from there if needed.
3634
3635         A test already exists: canvas/philip/tests/2d.text.draw.fontface.repeat.html
3636
3637         * html/HTMLCanvasElement.cpp:
3638         (WebCore::HTMLCanvasElement::recalcStyle):
3639         * html/HTMLCanvasElement.h:
3640         * html/canvas/CanvasRenderingContext2D.cpp:
3641         (WebCore::CanvasRenderingContext2D::updateFont):
3642         * html/canvas/CanvasRenderingContext2D.h:
3643
3644 2010-06-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
3645
3646         Unreviewed build fix.
3647