0cab209041337d2b5fda7ee0cdd01d43a8db93dc
[WebKit-https.git] / WebCore / ChangeLog
1 2010-06-30  Kenneth Russell  <kbr@google.com>
2
3         Reviewed by Oliver Hunt.
4
5         WebCore::WebGLArrayInternal::lengthAttrGetter ReadAV@NULL (b1a3e1a3e9d01f17fd493d68eeb2742f)
6         https://bugs.webkit.org/show_bug.cgi?id=38040
7
8         Changed custom ArrayBufferView constructors to create a
9         fully-initialized, zero-length array when called with zero
10         arguments. This is the simplest fix which works identically in
11         both the JSC and V8 bindings.
12
13         Test: fast/canvas/webgl/array-buffer-view-crash.html
14
15         * bindings/js/JSArrayBufferViewHelper.h:
16         (WebCore::constructArrayBufferView):
17         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
18         (WebCore::constructWebGLArray):
19
20 2010-06-30  Victor Wang  <victorw@chromium.org>
21
22         Reviewed by Darin Fisher.
23
24         [chromium] update webcore gyp to use v8 dll for chromium multi dll build.
25
26         https://bugs.webkit.org/show_bug.cgi?id=41376
27
28         * WebCore.gyp/WebCore.gyp:
29
30 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
31
32         Reviewed by Dimitri Glazkov.
33
34         [Chromium] Add OOP font loading to FontPlatformDataChromiumMac.
35
36         On OS X, with font management software installed. Fonts
37         can reside in an arbitrary path on disk which is blocked by
38         Chromium's sandbox.
39
40         This change adds hooks to FontPlaformData which allow cross-process
41         font loading in case of need.
42
43         https://bugs.webkit.org/show_bug.cgi?id=41148
44
45         Not possible to test - requires sandboxing which DRT doesn't support.
46
47         * WebCore.gypi:
48         * platform/graphics/chromium/FontPlatformDataChromiumMac.mm: Added.
49         (WebCore::FontPlatformData::FontPlatformData):
50         (WebCore::FontPlatformData::~FontPlatformData):
51         (WebCore::FontPlatformData::operator=):
52         (WebCore::FontPlatformData::setFont):
53         (WebCore::FontPlatformData::roundsGlyphAdvances):
54         (WebCore::FontPlatformData::allowsLigatures):
55         (WebCore::FontPlatformData::description):
56
57 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
58
59         Reviewed by Dan Bernstein.
60
61         Minor tweaks to FontPlatformDataMac & SimpleFontDataMac.mm
62
63         * Avoid an extra FontPlatformData copy in SimpleFontDataMac.mm
64         * Fix a typo in FontPlatformDataMac.mm
65
66         https://bugs.webkit.org/show_bug.cgi?id=41152
67
68         No behavior changes so no new tests.
69
70         * platform/graphics/mac/FontPlatformDataMac.mm:
71         (WebCore::FontPlatformData::description):
72         * platform/graphics/mac/SimpleFontDataMac.mm:
73         (WebCore::copyFontTableForTag):
74
75 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
76
77         Reviewed by Kenneth Rohde Christiansen.
78
79         [Qt] Make "disallow multiple calls to SetWindow" on windowed plugins a quirk
80         https://bugs.webkit.org/show_bug.cgi?id=41407
81
82         Only disallow calling SetWindow more than once if we're using Flash 9 or older.
83         This fixes resizing of YouTube videos via the player's own button.
84
85         Removed copy-pasted logic in PluginViewGtk since the issue only exists
86         when running Flash with a non-Gtk toolkit.
87
88         * plugins/PluginPackage.cpp:
89         (WebCore::PluginPackage::determineQuirks):
90         * plugins/PluginQuirkSet.h:
91         (WebCore::):
92         * plugins/gtk/PluginViewGtk.cpp:
93         (WebCore::PluginView::setNPWindowIfNeeded): Remove unnecessary logic copy-pasted from PluginViewQt.
94         * plugins/qt/PluginViewQt.cpp:
95         (WebCore::PluginView::setNPWindowIfNeeded):
96
97 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
98
99         Reviewed by Antti Koivisto.
100
101         [Qt, Gtk, Symbian] Mind the semantics of NPRect for windowed plugin clip rects
102         https://bugs.webkit.org/show_bug.cgi?id=41406
103
104         NPRect has right/bottom instead of width/height.
105         This was fixed in PluginViewMac with http://trac.webkit.org/changeset/45815
106
107         * plugins/gtk/PluginViewGtk.cpp:
108         (WebCore::PluginView::setNPWindowIfNeeded):
109         * plugins/qt/PluginViewQt.cpp:
110         (WebCore::PluginView::setNPWindowIfNeeded):
111         * plugins/symbian/PluginViewSymbian.cpp:
112         (WebCore::PluginView::setNPWindowIfNeeded):
113
114 2010-06-30  Antonio Gomes  <tonikitoo@webkit.org>
115
116         Reviewed by Simon Fraser.
117
118         Spatial Navigation: make elements in inner frames nested more than 1 level deep focusable
119         https://bugs.webkit.org/show_bug.cgi?id=41160
120
121         Patch addresses the problem of spatial navigation not work properly with nested
122         inner frames by adding the isNodeDeepDescendantOfDocument method. It recursively checks
123         if a give node is descendant of a given document or any parent of it.
124
125         Test: fast/events/spatial-navigation/snav-iframe-nested.html
126
127         * page/FocusController.cpp:
128         (WebCore::FocusController::deepFindFocusableNodeInDirection):
129         * page/SpatialNavigation.cpp:
130         (WebCore::isNodeDeepDescendantOfDocument):
131         * page/SpatialNavigation.h:
132
133 2010-06-30  Adam Barth  <abarth@webkit.org>
134
135         Reviewed by Eric Seidel.
136
137         HTMLTokenizer should use fewer macros
138         https://bugs.webkit.org/show_bug.cgi?id=41397
139
140         Macros are sadness.  Inline functions are the new hotness.
141
142         * html/HTMLTokenizer.cpp:
143         (WebCore::HTMLTokenizer::processEntity):
144         (WebCore::HTMLTokenizer::emitAndResumeIn):
145         (WebCore::HTMLTokenizer::emitAndReconsumeIn):
146         (WebCore::HTMLTokenizer::emitEndOfFile):
147         (WebCore::HTMLTokenizer::flushBufferedEndTag):
148         (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
149         (WebCore::HTMLTokenizer::nextToken):
150         (WebCore::HTMLTokenizer::bufferCharacter):
151         (WebCore::HTMLTokenizer::bufferCodePoint):
152         (WebCore::HTMLTokenizer::bufferParseError):
153         (WebCore::HTMLTokenizer::bufferCurrentToken):
154         (WebCore::HTMLTokenizer::bufferEndOfFile):
155         * html/HTMLTokenizer.h:
156
157 2010-06-30  Justin Schuh  <jschuh@chromium.org>
158
159         Reviewed by Adam Barth.
160
161         Remove dead binding code
162         https://bugs.webkit.org/show_bug.cgi?id=41388
163
164         Removed BindingElement because it was obsoleted by r59866.
165
166         * WebCore.gypi:
167         * bindings/generic/BindingElement.h: Removed.
168         * bindings/v8/SerializedScriptValue.cpp:
169         * bindings/v8/V8Binding.h:
170         * bindings/v8/custom/V8DatabaseCustom.cpp:
171         * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
172         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
173         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
174
175 2010-06-30  Eric Seidel  <eric@webkit.org>
176
177         Reviewed by Adam Barth.
178
179         HTMLTokenizer needs EndOfFile support
180         https://bugs.webkit.org/show_bug.cgi?id=41344
181
182         EndOfFile support uncovered a bug in our implementation of finish().
183         finish() may be called more than once if the first call does not
184         result in end() being called (and parsing thus actually stopping).
185
186         SegmentedString::close() should have ASSERTed that it was not already
187         closed when close() is called.  I've added such an assert now.
188
189         * html/HTMLDocumentParser.cpp:
190         (WebCore::HTMLDocumentParser::finish):
191         * platform/text/SegmentedString.cpp:
192         (WebCore::SegmentedString::close):
193         * platform/text/SegmentedString.h:
194
195 2010-06-29  Eric Seidel  <eric@webkit.org>
196
197         Reviewed by Adam Barth.
198
199         HTMLTokenizer needs EndOfFile support
200         https://bugs.webkit.org/show_bug.cgi?id=41344
201
202         We're using \0 as the EndOfFile marker as HTML5 replaces
203         all other \0 with \0xFFFD.  Added some special case logic
204         to InputStreamPreprocessor::peek not to replace \0 when
205         its being used at the end of a stream.
206
207         This fixed 60 subtests in html5lib/runner.html.
208
209         There are still at least two states (BogusCommentState and
210         CDATASectionState) which do not have proper EOF support.
211
212         * html/HTMLDocumentParser.cpp:
213         (WebCore::HTMLDocumentParser::finish):
214         (WebCore::HTMLDocumentParser::finishWasCalled):
215         * html/HTMLInputStream.h:
216         (WebCore::HTMLInputStream::markEndOfFile):
217         (WebCore::HTMLInputStream::haveSeenEndOfFile):
218         * html/HTMLToken.h:
219         (WebCore::HTMLToken::makeEndOfFile):
220         * html/HTMLTokenizer.cpp:
221         (WebCore::HTMLTokenizer::nextToken):
222         (WebCore::HTMLTokenizer::emitEndOfFile):
223         * html/HTMLTokenizer.h:
224         (WebCore::HTMLTokenizer::InputStreamPreprocessor::peek):
225         (WebCore::HTMLTokenizer::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
226         * html/HTMLTreeBuilder.cpp:
227         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
228
229 2010-06-28  Eric Seidel  <eric@webkit.org>
230
231         Reviewed by Adam Barth.
232
233         Teach HTML5TreeBuilder how to merge attributes from extra html/body elements
234         https://bugs.webkit.org/show_bug.cgi?id=41337
235
236         Had to teach ElementStack to store pointers to html, head, and body
237         elements.
238
239         This fixed a few tests in LayoutTests/html5lib.
240
241         * html/HTMLTreeBuilder.cpp:
242         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
243         (WebCore::HTMLTreeBuilder::mergeAttributesFromTokenIntoElement):
244         (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
245         (WebCore::HTMLTreeBuilder::processStartTag):
246         (WebCore::HTMLTreeBuilder::processEndTag):
247         (WebCore::HTMLTreeBuilder::createElementAndAttachToCurrent):
248         (WebCore::HTMLTreeBuilder::insertHTMLHtmlElement):
249         (WebCore::HTMLTreeBuilder::insertHTMLHeadElement):
250         (WebCore::HTMLTreeBuilder::insertHTMLBodyElement):
251         (WebCore::HTMLTreeBuilder::insertElement):
252         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
253         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
254         * html/HTMLTreeBuilder.h:
255         (WebCore::HTMLTreeBuilder::ElementStack::ElementStack):
256         (WebCore::HTMLTreeBuilder::ElementStack::popHTMLHeadElement):
257         (WebCore::HTMLTreeBuilder::ElementStack::pop):
258         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHtmlElement):
259         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHeadElement):
260         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLBodyElement):
261         (WebCore::HTMLTreeBuilder::ElementStack::push):
262         (WebCore::HTMLTreeBuilder::ElementStack::removeHTMLHeadElement):
263         (WebCore::HTMLTreeBuilder::ElementStack::remove):
264         (WebCore::HTMLTreeBuilder::ElementStack::htmlElement):
265         (WebCore::HTMLTreeBuilder::ElementStack::headElement):
266         (WebCore::HTMLTreeBuilder::ElementStack::bodyElement):
267         (WebCore::HTMLTreeBuilder::ElementStack::pushCommon):
268         (WebCore::HTMLTreeBuilder::ElementStack::popCommon):
269         (WebCore::HTMLTreeBuilder::ElementStack::removeNonFirstCommon):
270
271 2010-06-30  José Millán Soto  <jmillan@igalia.com>
272
273         Reviewed by Xan Lopez.
274
275         [Gtk] Text attributes not exposed
276         https://bugs.webkit.org/show_bug.cgi?id=25528
277
278         Implemented the get_run_attributes and get_default_attributes
279         functions for the ATK_TEXT role.
280
281         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
282         (getAttributeSetForAccessibilityObject):
283         (compareAttribute):
284         (attributeSetDifference):
285         (accessibilityObjectLength):
286         (getAccessibilityObjectForOffset):
287         (getRunAttributesFromAccesibilityObject):
288         (webkit_accessible_text_get_run_attributes):
289         (webkit_accessible_text_get_default_attributes):
290
291 2010-06-30  Yuta Kitamura  <yutak@chromium.org>
292
293         Reviewed by Alexey Proskuryakov.
294
295         Fix Sec-WebSocketKey{1,2} headers.
296
297         According to WebSocket specification, a value of Sec-WebSocketKey{1,2} header
298         should not start or end with a space.
299
300         WebSocket: Malformed handshake headers in a worker due to rand_s failing
301         https://bugs.webkit.org/show_bug.cgi?id=41327
302
303         No new tests. ASSERT should catch the problem.
304
305         * websockets/WebSocketHandshake.cpp:
306         (WebCore::generateSecWebSocketKey):
307
308 2010-06-30  Yuzo Fujishima  <yuzo@google.com>
309
310         Reviewed by Dan Bernstein.
311
312         Fix for Bug 41339 - unicode-range property only with a descending range
313         causes a crash
314
315         https://bugs.webkit.org/show_bug.cgi?id=41339
316
317         Test: fast/css/font-face-descending-unicode-range.html
318
319         * css/CSSParser.cpp:
320         (WebCore::CSSParser::parseFontFaceUnicodeRange):
321
322 2010-06-29  Abhinav Mithal <abhinav.mithal@nokia.com>
323
324         Reviewed by Laszlo Gombos.
325
326         [Qt] [Symbian] Fix doube-deallocation while destroying PluginContainerSymbian
327         https://bugs.webkit.org/show_bug.cgi?id=37303
328
329         * plugins/symbian/PluginViewSymbian.cpp:
330         (WebCore::PluginView::platformDestroy):
331
332 2010-06-29  Zhenyao Mo  <zmo@google.com>
333
334         Reviewed by Dimitri Glazkov.
335
336         Implement getAttachedShaders
337         https://bugs.webkit.org/show_bug.cgi?id=31172
338
339         * bindings/js/JSWebGLRenderingContextCustom.cpp: JS binding for getAttachedShaders().
340         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
341         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: V8 binding for getAttachedShaders().
342         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
343         * html/canvas/WebGLRenderingContext.cpp:
344         (WebCore::WebGLRenderingContext::getAttachedShaders): Implementation of getAttachedShaders().
345         (WebCore::WebGLRenderingContext::findShader): Helper function to find a shader object from its name.
346         * html/canvas/WebGLRenderingContext.h: Declaration of getAttachedShaders().
347         * html/canvas/WebGLRenderingContext.idl: Ditto.
348         * platform/graphics/GraphicsContext3D.h: Ditto.
349         * platform/graphics/mac/GraphicsContext3DMac.mm:
350         (WebCore::GraphicsContext3D::getAttachedShaders): Implementation of getAttachedShaders().
351
352 2010-06-29  MORITA Hajime  <morrita@google.com>
353
354         Reviewed by Kent Tamura.
355
356         REGRESSION: [Chromium] <progress> appearance on windows looks not good
357         https://bugs.webkit.org/show_bug.cgi?id=41343
358         
359         RenderThemeChromiumWin::paintProgressBar() should return false,
360         which indicates the widget is painted.
361         
362         Test: fast/dom/HTMLProgressElement/progress-element.html
363               * rebaselined with a wrong expectation.
364
365         * rendering/RenderThemeChromiumWin.cpp:
366         (WebCore::RenderThemeChromiumWin::paintProgressBar):
367
368 2010-06-29  Kinuko Yasuda  <kinuko@chromium.org>
369
370         Reviewed by Jian Li.
371
372         Fix http/tests/local/blob/send-data-blob.html on Windows
373         https://bugs.webkit.org/show_bug.cgi?id=41228
374
375         Fix a regression bug in the line-conversion code.
376         Rewrite the line-conversion function with simpler functions to
377         make it less error prone.
378
379         No new tests as this is for bug fixes.
380
381         * platform/BlobItem.cpp:
382         (WebCore::StringBlobItem::convertToCString):
383
384 2010-06-29  Dumitru Daniliuc  <dumi@chromium.org>
385
386         Reviewed by Darin Fisher.
387
388         Implementing DatabaseSync::openDatabaseSync().
389         https://bugs.webkit.org/show_bug.cgi?id=40607
390
391         1. Moved some common code from Database to AbstractDatabase.
392         2. Made performOpenAndVerify() virtual, since DatabaseSync doesn't
393            need to interact with DatabaseThread.
394         3. Removed the m_creationCallback field, since it's only needed in
395            the openDatabase{Sync} methods.
396
397         * storage/AbstractDatabase.cpp:
398         (WebCore::retrieveTextResultFromDatabase):
399         (WebCore::setTextValueInDatabase):
400         (WebCore::guidMutex):
401         (WebCore::guidToVersionMap):
402         (WebCore::updateGuidVersionMap):
403         (WebCore::guidToDatabaseMap):
404         (WebCore::guidForOriginAndName):
405         (WebCore::AbstractDatabase::databaseInfoTableName):
406         (WebCore::AbstractDatabase::AbstractDatabase):
407         (WebCore::AbstractDatabase::closeDatabase):
408         (WebCore::AbstractDatabase::version):
409         (WebCore::AbstractDatabase::performOpenAndVerify):
410         (WebCore::AbstractDatabase::scriptExecutionContext):
411         (WebCore::AbstractDatabase::securityOrigin):
412         (WebCore::AbstractDatabase::stringIdentifier):
413         (WebCore::AbstractDatabase::displayName):
414         (WebCore::AbstractDatabase::estimatedSize):
415         (WebCore::AbstractDatabase::fileName):
416         (WebCore::AbstractDatabase::databaseVersionKey):
417         (WebCore::AbstractDatabase::getVersionFromDatabase):
418         (WebCore::AbstractDatabase::setVersionInDatabase):
419         (WebCore::AbstractDatabase::versionMatchesExpected):
420         (WebCore::AbstractDatabase::setExpectedVersion):
421         (WebCore::AbstractDatabase::disableAuthorizer):
422         (WebCore::AbstractDatabase::enableAuthorizer):
423         (WebCore::AbstractDatabase::setAuthorizerReadOnly):
424         (WebCore::AbstractDatabase::lastActionChangedDatabase):
425         (WebCore::AbstractDatabase::lastActionWasInsert):
426         (WebCore::AbstractDatabase::resetDeletes):
427         (WebCore::AbstractDatabase::hadDeletes):
428         (WebCore::AbstractDatabase::resetAuthorizer):
429         * storage/AbstractDatabase.h:
430         (WebCore::AbstractDatabase::opened):
431         (WebCore::AbstractDatabase::isNew):
432         (WebCore::AbstractDatabase::databaseDebugName):
433         * storage/Database.cpp:
434         (WebCore::DatabaseCreationCallbackTask::create):
435         (WebCore::DatabaseCreationCallbackTask::performTask):
436         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
437         (WebCore::Database::openDatabase):
438         (WebCore::Database::Database):
439         (WebCore::Database::version):
440         (WebCore::Database::openAndVerifyVersion):
441         (WebCore::Database::close):
442         (WebCore::Database::stop):
443         (WebCore::Database::performOpenAndVerify):
444         * storage/Database.h:
445         (WebCore::Database::sqliteDatabase):
446         * storage/DatabaseAuthorizer.cpp:
447         (WebCore::DatabaseAuthorizer::create):
448         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
449         (WebCore::DatabaseAuthorizer::denyBasedOnTableName):
450         * storage/DatabaseAuthorizer.h:
451         * storage/DatabaseSync.cpp:
452         (WebCore::DatabaseSync::openDatabaseSync):
453         (WebCore::DatabaseSync::DatabaseSync):
454         (WebCore::DatabaseSync::~DatabaseSync):
455         (WebCore::DatabaseSync::markAsDeletedAndClose):
456         (WebCore::CloseSyncDatabaseOnContextThreadTask::create):
457         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask):
458         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask):
459         (WebCore::DatabaseSync::closeImmediately):
460         * storage/DatabaseSync.h:
461         * storage/DatabaseTask.cpp:
462         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
463         (WebCore::DatabaseOpenTask::doPerformTask):
464         * storage/DatabaseTask.h:
465         (WebCore::DatabaseOpenTask::create):
466
467 2010-06-29  François Sausset  <sausset@gmail.com>
468
469         Reviewed by Darin Adler.
470
471         Fix a bug when a msubsup element is inside a mrow element
472         https://bugs.webkit.org/show_bug.cgi?id=36525
473
474         Test: mathml/presentation/subsup.xhtml
475
476         * mathml/RenderMathMLSubSup.cpp:
477         (WebCore::RenderMathMLSubSup::stretchToHeight):
478
479 2010-06-29  Zhenyao Mo  <zmo@google.com>
480
481         Reviewed by Dimitri Glazkov.
482
483         uniformmatrix* should generate INVALID_VALUE with transpose = true
484         https://bugs.webkit.org/show_bug.cgi?id=41235
485
486         Test: fast/canvas/webgl/gl-uniformmatrix4fv.html
487
488         * html/canvas/WebGLRenderingContext.cpp:
489         (WebCore::WebGLRenderingContext::uniformMatrix2fv): Call validateUniformMatrixParameters instead.
490         (WebCore::WebGLRenderingContext::uniformMatrix3fv): Ditto.
491         (WebCore::WebGLRenderingContext::uniformMatrix4fv): Ditto.
492         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): Validate input parameters for uniformMatrix*().
493         * html/canvas/WebGLRenderingContext.h: Declare validateUniformMatrixParameters().
494
495 2010-06-29  Kenneth Russell  <kbr@google.com>
496
497         Reviewed by Dimitri Glazkov.
498
499         Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView
500         https://bugs.webkit.org/show_bug.cgi?id=40398
501
502         Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store
503         parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView.
504         More cleanly separated the unpacking and packing phases of user-supplied pixel data
505         in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling
506         of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added
507         validation of the amount of data passed to texImage2D and texSubImage2D. Modified
508         fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha
509         tests for relevant source formats; added new test which exercises all combinations
510         of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel
511         store parameters.
512
513         Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html
514
515         * html/canvas/WebGLRenderingContext.cpp:
516         (WebCore::WebGLRenderingContext::texImage2D):
517         (WebCore::WebGLRenderingContext::texSubImage2D):
518         (WebCore::WebGLRenderingContext::validateTexFuncData):
519         * html/canvas/WebGLRenderingContext.h:
520         * platform/graphics/GraphicsContext3D.cpp:
521         (WebCore::GraphicsContext3D::extractImageData):
522         (WebCore::GraphicsContext3D::extractTextureData):
523         (WebCore::GraphicsContext3D::flipVertically):
524         (WebCore::doUnpackingAndPacking):
525         (WebCore::computeIncrementParameters):
526         (WebCore::doPacking):
527         (WebCore::GraphicsContext3D::packPixels):
528         * platform/graphics/GraphicsContext3D.h:
529         (WebCore::GraphicsContext3D::):
530         * platform/graphics/cg/GraphicsContext3DCG.cpp:
531         (WebCore::GraphicsContext3D::getImageData):
532         * platform/graphics/qt/GraphicsContext3DQt.cpp:
533         (WebCore::GraphicsContext3D::getImageData):
534         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
535         (WebCore::GraphicsContext3D::getImageData):
536
537 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
538
539         Reviewed by Dirk Schulze.
540
541         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r61667.
542         https://bugs.webkit.org/show_bug.cgi?id=41367
543
544         * svg/SVGSVGElement.cpp:
545         (WebCore::SVGSVGElement::isOutermostSVG): Add missing ENABLE(SVG_FOREIGN_OBJECT).
546
547 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
548
549         Reviewed by Darin Adler.
550
551         Buildfix after r62118.
552         https://bugs.webkit.org/show_bug.cgi?id=41365
553
554         * rendering/RenderSVGRoot.cpp: Inlude missing RenderSVGResource.h.
555
556 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
557
558         Unreviewed, rolling out r62052.
559         http://trac.webkit.org/changeset/62052
560         https://bugs.webkit.org/show_bug.cgi?id=41357
561
562         Causes crashes in JSLazyEventListener::initializeFunction (see
563         bug 41352) (Requested by aroben on #webkit).
564
565         * bindings/js/ScriptEventListener.cpp:
566         (WebCore::createAttributeEventListener):
567         * bindings/js/ScriptEventListener.h:
568         * bindings/v8/ScriptEventListener.cpp:
569         (WebCore::createAttributeEventListener):
570         * bindings/v8/ScriptEventListener.h:
571         * html/HTMLBodyElement.cpp:
572         (WebCore::HTMLBodyElement::parseMappedAttribute):
573         * html/HTMLFrameSetElement.cpp:
574         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
575         * svg/SVGSVGElement.cpp:
576         (WebCore::SVGSVGElement::parseMappedAttribute):
577
578 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
579
580         Unreviewed, rolling out r62129.
581         http://trac.webkit.org/changeset/62129
582         https://bugs.webkit.org/show_bug.cgi?id=41362
583
584         Needed to roll out r62052 (see bug 41357) (Requested by aroben
585         on #webkit).
586
587         * bindings/js/ScriptEventListener.cpp:
588         (WebCore::createWindowAttributeEventListener):
589
590 2010-06-29  Beth Dakin  <bdakin@apple.com>
591
592         Reviewed by Darin Adler.
593
594         Speculative fix for <rdar://problem/8071558> CrashTracer: [USER] 
595         2300+ crashes in Safari at com.apple.WebCore: 
596         WebCore::FrameView::scheduleRelayout + 352
597
598         Unfortunately, we don't have a reproducible case for this bug, and 
599         therefore, we do not have a layout test either. It is pretty clear 
600         from the logs that m_frame->settings() is null in 
601         FrameView::scheduleRelayout() in the crashing case. 
602         m_frame->settings() is null whenever page is null. Everywhere else 
603         in FrameView.cpp we null-check either page or settings before using 
604         settings. It seems plausible to me that scheduleRelayout could be 
605         called when page is null, so the fix is just to add null-checks. 
606
607         * page/FrameView.cpp:
608         (WebCore::FrameView::layout):
609         (WebCore::FrameView::scheduleRelayout):
610
611 2010-06-29  Dan Bernstein  <mitz@apple.com>
612
613         Reviewed by Darin Adler.
614
615         <rdar://problem/7975842> Certain text is repeated after using splitText()
616
617         Tests: fast/text/setData-dirty-lines.html
618                fast/text/splitText-dirty-lines.html
619
620         * dom/CharacterData.cpp:
621         (WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than
622         setText(), because only the former correctly dirties line boxes.
623         * dom/Text.cpp:
624         (WebCore::Text::splitText): Ditto.
625
626 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
627
628         Unreviewed, rolling out r62073.
629         http://trac.webkit.org/changeset/62073
630         https://bugs.webkit.org/show_bug.cgi?id=41359
631
632         Necessary to fix chromium build when r62052 is rolled out.
633         (Requested by dave_levin on #webkit).
634
635         * bindings/v8/ScriptEventListener.h:
636
637 2010-06-29  Vangelis Kokkevis  <vangelis@chromium.org>
638
639         Reviewed by Darin Fisher.
640
641         [Chromium] Hooking up WebGL layers to the gpu-compositor. Implement missing
642         methods to set the contents of a GraphicsLayer with a platform specific WebGL
643         Layer, and to update the contents of the WebGL Layer when needed.
644         https://bugs.webkit.org/show_bug.cgi?id=41243
645
646         * platform/graphics/GraphicsContext3D.h:
647         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
648         (WebCore::GraphicsLayerChromium::setContentsToWebGL):
649         * platform/graphics/chromium/GraphicsLayerChromium.h:
650         * platform/graphics/chromium/LayerChromium.cpp:
651         (WebCore::LayerChromium::removeAllSublayers):
652           No need to call setNeedsCommit() from here as the previous call to
653           layer->removeFromSuperlayer() will have that effect (and we only need
654           to notify the owner if there were actually any sublayers removed).
655         * platform/graphics/chromium/LayerChromium.h:
656         * platform/graphics/chromium/LayerRendererChromium.cpp:
657         (WebCore::LayerRendererChromium::drawLayer):
658         * platform/graphics/chromium/WebGLLayerChromium.cpp:
659         (WebCore::WebGLLayerChromium::create):
660         (WebCore::WebGLLayerChromium::updateTextureContents):
661         (WebCore::WebGLLayerChromium::setContext):
662
663 2010-06-29  Csaba Osztrogonác  <ossy@webkit.org>
664
665         Reviewed by Nikolas Zimmermann.
666
667         Buildfix for --minimal build after r62052
668         https://bugs.webkit.org/show_bug.cgi?id=41338
669
670         * bindings/js/ScriptEventListener.cpp: #if ENABLE(SVG) guards added.
671         (WebCore::createWindowAttributeEventListener):
672
673 2010-06-29  Brent Fulgham  <bfulgham@webkit.org>
674
675         Build fix. Not reviewd.
676
677         CGColor is only used for PLATFORM(CG).  Conditionalize include
678         to correct build failure for WinCairo.
679
680         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
681         Conditionalize use of CGColor.
682
683 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
684
685         Reviewed by Xan Lopez.
686
687         [GTK] Clean up the source lists in the GNUMakefile.am files
688         https://bugs.webkit.org/show_bug.cgi?id=41229
689
690         Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
691         the source lists.
692
693         * GNUmakefile.am:
694
695 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
696
697         Reviewed by Xan Lopez.
698
699         [GTK] DragDataGtk should use DataObjectGtk as the platformDragData
700         https://bugs.webkit.org/show_bug.cgi?id=40307
701
702         Use DataObjectGtk as the platformDragData for DragDataGtk. DataObjectGtk
703         contains all the information necessary to keep track of drops in progress.
704
705         * platform/DragData.h: Use a DataObjectGtk* as the platform drag data.
706         * platform/gtk/DragDataGtk.cpp:
707         (WebCore::DragData::containsFiles): Retrieve information via platformDragData.
708         (WebCore::DragData::asFilenames): Ditto.
709         (WebCore::DragData::containsPlainText): Ditto.
710         (WebCore::DragData::asPlainText): Ditto.
711         (WebCore::DragData::createClipboard): Create the Clipboard with the platformDragData.
712         (WebCore::DragData::containsCompatibleContent): Retrieve information via platformDragData.
713         (WebCore::DragData::containsURL): Ditto.
714         (WebCore::DragData::asURL): Ditto.
715         (WebCore::DragData::asFragment): Ditto.
716
717 2010-06-29  Adam Langley  <agl@chromium.org>
718
719         Build fix. Not reviewd.
720
721         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
722         (WebCore::FontPlatformData::setupPaint):
723           The name of the Skia function changed between writing this patch and
724           commiting it.
725
726 2010-06-29  Adam Langley  <agl@chromium.org>
727
728         Reviewed by Kent Tamura.
729
730         [chromium] Support forced autohinting.
731
732         https://bugs.webkit.org/show_bug.cgi?id=40493
733
734         Freetype (the typical font rendering on Linux) includes an 'autohinter':
735         an algorithm for hinting glyph shapes without using the embedded hinting
736         bytecode in a font.
737
738         Some people prefer the autohinter's results, so we support forcing its
739         use.
740
741         This change also fixes a bug where two FontPlatformData structures would
742         compare equal, even if their rendering styles were different.
743
744         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
745         (WebCore::FontPlatformData::setupPaint):
746           In order to compare FontPlatformData structures we need to make sure
747           that they are initialised.
748         (WebCore::FontPlatformData::operator==):
749         * platform/graphics/chromium/FontRenderStyle.h:
750         (WebCore::FontRenderStyle::FontRenderStyle):
751         (WebCore::FontRenderStyle::operator==):
752           This fixes the case where two FontPlatformData structures, differing
753           only by rendering style, would compare equal.
754
755 2010-06-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
756
757         Unreviewed, Symbian build fix.
758
759         Add more directories to USERINCLUDE so that they get included
760         before the Symbian system headers.
761
762         This is a workaround to some toolchain problems; bug 31273 is used to
763         find a better solution.
764
765         No new tests as there is no new functionality.
766
767         * WebCore.pro:
768
769 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
770
771         Reviewed by Dirk Schulze.
772
773         Cleanup SVGRenderSupport
774         https://bugs.webkit.org/show_bug.cgi?id=41347
775
776         Remove SVGRenderBase base class from all SVG renderers. It was meant as temporary solution until all SVG renderers inherit from RenderSVGModelObject,
777         though this is not going to happen. RenderSVGModelObject inherits from RenderObject, making it impossible to inherit eg. RenderSVGImage from it, as
778         it already indirectly inherits from RenderObject, through RenderImage. Other examples are RenderForeignObject (RenderBlock inheritance),
779         RenderSVGInlineText (RenderText inheritance) etc.
780
781         Rename SVGRenderBase to SVGRenderSupport, just like the file is named, remove all free functions, and make them all static functions in SVGRenderSupport.
782         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.
783
784         Doesn't affect any test.
785
786         * rendering/RenderBox.cpp: Remove localTransform() override, not needed at all.
787         * rendering/RenderBox.h: Ditto.
788         * rendering/RenderForeignObject.cpp: s/SVGRenderBase/SVGRenderSupport/
789         (WebCore::RenderForeignObject::paint):
790         (WebCore::RenderForeignObject::clippedOverflowRectForRepaint):
791         (WebCore::RenderForeignObject::computeRectForRepaint):
792         (WebCore::RenderForeignObject::nodeAtFloatPoint):
793         (WebCore::RenderForeignObject::mapLocalToContainer):
794         * rendering/RenderPath.cpp:
795         (WebCore::BoundingRectStrokeStyleApplier::strokeStyle): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
796         (WebCore::RenderPath::paint): s/SVGRenderBase/SVGRenderSupport/
797         (WebCore::RenderPath::nodeAtFloatPoint): Ditto.
798         (WebCore::RenderPath::updateCachedBoundaries): Ditto.
799         * rendering/RenderSVGBlock.h: Remove SVGRenderBase inheritance.
800         * rendering/RenderSVGContainer.cpp:
801         (WebCore::RenderSVGContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
802         (WebCore::RenderSVGContainer::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
803         (WebCore::RenderSVGContainer::objectBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
804         (WebCore::RenderSVGContainer::strokeBoundingBox): Ditto.
805         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
806         (WebCore::RenderSVGContainer::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
807         * rendering/RenderSVGHiddenContainer.cpp:
808         (WebCore::RenderSVGHiddenContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
809         * rendering/RenderSVGImage.cpp:
810         (WebCore::RenderSVGImage::paint): prepareToRenderSVGContent/finishRenderSVGContent are static functions in SVGRenderSupport now.
811         (WebCore::RenderSVGImage::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. 
812         (WebCore::RenderSVGImage::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
813         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
814         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
815         (WebCore::RenderSVGImage::computeRectForRepaint): Ditto.
816         (WebCore::RenderSVGImage::mapLocalToContainer): Ditto.
817         * rendering/RenderSVGImage.h: Remove SVGRenderBase inheritance.
818         * rendering/RenderSVGInline.cpp:
819         (WebCore::RenderSVGInline::objectBoundingBox): findTextRootObject is a static function in SVGRenderSupport now.
820         (WebCore::RenderSVGInline::strokeBoundingBox): Ditto.
821         (WebCore::RenderSVGInline::repaintRectInLocalCoordinates): Ditto.
822         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
823         (WebCore::RenderSVGInline::computeRectForRepaint): Ditto,.
824         (WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
825         (WebCore::RenderSVGInline::absoluteQuads): findTextRootObject is a static function in SVGRenderSupport now.
826         * rendering/RenderSVGInline.h: Remove SVGRenderBase inheritance.
827         * rendering/RenderSVGModelObject.cpp:
828         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
829         (WebCore::RenderSVGModelObject::computeRectForRepaint): Ditto.
830         (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
831         (WebCore::RenderSVGModelObject::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
832         * rendering/RenderSVGModelObject.h: Remove SVGRenderBase inheritance.
833         * rendering/RenderSVGResource.cpp:
834         (WebCore::invalidatePaintingResource): Moved here from SVGRenderSupport (static inline helper function).
835         (WebCore::RenderSVGResource::invalidateAllResourcesOfRenderer): Moved here from SVGRenderSupport and renamed from deregisterFromResources.
836         * rendering/RenderSVGResource.h: Expose invalidateAllResourcesOfRenderer function.
837         * rendering/RenderSVGResourceClipper.cpp:
838         (WebCore::RenderSVGResourceClipper::createClipData): renderSubtreeToImage is a static function in SVGRenderSupport now.
839         (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
840         * rendering/RenderSVGResourceGradient.cpp:
841         (WebCore::createMaskAndSwapContextForTextGradient): findTextRootObject is a static function in SVGRenderSupport now.
842         (WebCore::clipToTextMask): Ditto.
843         (WebCore::RenderSVGResourceGradient::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
844         (WebCore::RenderSVGResourceGradient::postApplyResource): findTextRootObject is a static function in SVGRenderSupport now.
845         * rendering/RenderSVGResourceMarker.cpp:
846         (WebCore::RenderSVGResourceMarker::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
847         * rendering/RenderSVGResourceMasker.cpp:
848         (WebCore::RenderSVGResourceMasker::createMaskImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
849         * rendering/RenderSVGResourcePattern.cpp:
850         (WebCore::RenderSVGResourcePattern::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
851         (WebCore::clampImageBufferSizeToViewport): Moved here from SVGRenderSupport.
852         (WebCore::RenderSVGResourcePattern::createTileImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
853         * rendering/RenderSVGResourceSolidColor.cpp:
854         (WebCore::RenderSVGResourceSolidColor::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now
855         * rendering/RenderSVGRoot.cpp:
856         (WebCore::RenderSVGRoot::layout): layoutChildren is a static function in SVGRenderSupport now.
857         (WebCore::RenderSVGRoot::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
858         (WebCore::RenderSVGRoot::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
859         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
860         * rendering/RenderSVGRoot.h: Remove localTransform() override, no longer needed. Remove SVGRenderBase inheritance.
861         (WebCore::RenderSVGRoot::objectBoundingBox): Inlined for speeed. 
862         (WebCore::RenderSVGRoot::strokeBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
863         * rendering/RenderSVGText.cpp: 
864         (WebCore::RenderSVGText::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
865         (WebCore::RenderSVGText::computeRectForRepaint): Ditto.
866         (WebCore::RenderSVGText::mapLocalToContainer): Ditto.
867         (WebCore::RenderSVGText::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
868         (WebCore::RenderSVGText::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
869         (WebCore::RenderSVGText::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
870         * rendering/RenderSVGViewportContainer.cpp:
871         (WebCore::RenderSVGViewportContainer::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
872         (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): pointInClippingArea is a static function in SVGRenderSupport now.
873         * rendering/SVGInlineFlowBox.cpp:
874         (WebCore::SVGInlineFlowBox::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
875         * rendering/SVGRenderSupport.cpp: Make it impossible to construct the class. Remove virtual destructor, made all methods static.
876         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
877         (WebCore::SVGRenderSupport::computeRectForRepaint): Ditto.
878         (WebCore::SVGRenderSupport::mapLocalToContainer): Ditto.
879         (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Ditto.
880         (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
881         (WebCore::SVGRenderSupport::renderSubtreeToImage): Made static.
882         (WebCore::SVGRenderSupport::computeContainerBoundingBox): Ditto.
883         (WebCore::SVGRenderSupport::layoutChildren): Ditto.
884         (WebCore::SVGRenderSupport::isOverflowHidden): s/SVGRenderBase/SVGRenderSupport/
885         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
886         (WebCore::SVGRenderSupport::pointInClippingArea): Made static.
887         (WebCore::SVGRenderSupport::dashArrayFromRenderingStyle): Ditto.
888         (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto.
889         (WebCore::SVGRenderSupport::findTextRootObject): Ditto.
890         * rendering/SVGRenderSupport.h:
891         * rendering/SVGRenderTreeAsText.cpp:
892         (WebCore::writeStyle): dashArrayFromRenderingStyle is a static function in SVGRenderSupport now.
893         * rendering/SVGRootInlineBox.cpp:
894         (WebCore::SVGRootInlineBox::paint): s/SVGRenderBase/SVGRenderSupport/
895         * rendering/SVGRootInlineBox.h: Remove SVGRenderBase inheritance.
896         * svg/SVGFEImageElement.cpp: Add RenderObject.h include, otherwhise it won't build anymore.
897         (WebCore::SVGFEImageElement::build): renderSubtreeToImage is a static function in SVGRenderSupport now.
898         * svg/SVGStyledElement.cpp: 
899         (WebCore::SVGStyledElement::svgAttributeChanged): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
900
901 2010-06-21  Philippe Normand  <pnormand@igalia.com>
902
903         Reviewed by Xan Lopez.
904
905         [PNG decoder] direct access to jmpbuf is deprecated in libpng >= 1.4.0beta103
906         https://bugs.webkit.org/show_bug.cgi?id=40907
907
908         Define a JMPBUF macro to cope with deprecation of the jmpbuf
909         attribute in libpng >= 1.4.
910
911         * platform/image-decoders/png/PNGImageDecoder.cpp:
912         (WebCore::decodingFailed):
913         (WebCore::PNGImageReader::decode):
914         (WebCore::PNGImageDecoder::headerAvailable):
915         (WebCore::PNGImageDecoder::rowAvailable):
916
917 2010-06-29  Kristian Amlie  <kristian.amlie@nokia.com>
918
919         Reviewed by Simon Hausmann.
920
921         [Qt/Symbian] Fixed deployment paths for WebKit declarative plugin.
922
923         * WebCore.pro:
924
925 2010-06-29  Yury Semikhatsky  <yurys@chromium.org>
926
927         Unreviewed: Chromium Win and Mac build fix.
928
929         * bindings/v8/ScriptDebugServer.cpp:
930         (WebCore::ScriptDebugServer::setBreakpoint):
931
932 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
933
934         Reviewed by Dirk Schulze.
935
936         Move PaintInfo/PaintPhase into their own headers, out of RenderObject
937         https://bugs.webkit.org/show_bug.cgi?id=41342
938
939         1) Move enums PaintPhase/PaintBehaviorFlags and the PaintBehaviour typedef from RenderObject into PaintPhase.h.
940            Move PaintInfo from RenderObject into PaintInfo.h. Replace s/RenderObject::PaintInfo/PaintInfo/ throughout WebCore/.
941            Also move the OverlapTestRequestMap typedef into PaintInfo.h, and replace s/RenderObject::OverlapTestRequestMap/OverlapTestRequestMap/ everywhere.
942
943         2) Move "RenderObject* paintingRootForChildren(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
944            and modify it to take a renderer: "void updatePaintingRootForChildren(const RenderObject* renderer)".
945
946         This changes a common idiom:
947         -    info.paintingRoot = paintingRootForChildren(paintInfo);
948         +    info.updatePaintingRootForChildren(this);
949
950         We save resetting the paintingRoot to 0 if it was 0 already and thus do less work.
951
952         3) Move "bool shouldPaintWithinRoot(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
953            and modify it to take a renderer: "bool shouldPaintWithinRoot(const RenderObject* renderer) const".
954
955         This changes a common idiom:
956         -    if (!shouldPaintWithinRoot(paintInfo))
957         +    if (!paintInfo.shouldPaintWithinRoot(this))
958
959         4) Move "void applyTransformToPaintInfo(RenderObject::PaintInfo&, const AffineTransform& localToChildTransform)"
960            from SVGRenderSupport to PaintInfo and rename it to "applyTransform", guarded with ENABLE(SVG) blocks.
961
962         This changes a common idiom:
963         -    applyTransformToPaintInfo(childPaintInfo, localToParentTransform());
964         +    childPaintInfo.applyTransform(localToParentTransform());
965
966         Add PaintInfo.h / PaintPhase.h to all build systems that list headers.
967
968         * GNUmakefile.am:
969         * WebCore.gypi:
970         * WebCore.pro:
971         * WebCore.vcproj/WebCore.vcproj:
972         * WebCore.xcodeproj/project.pbxproj:
973         * platform/android/RenderThemeAndroid.cpp:
974         (WebCore::getCanvasFromInfo):
975         (WebCore::RenderThemeAndroid::paintCheckbox):
976         (WebCore::RenderThemeAndroid::paintButton):
977         (WebCore::RenderThemeAndroid::paintRadio):
978         (WebCore::RenderThemeAndroid::paintTextField):
979         (WebCore::RenderThemeAndroid::paintTextArea):
980         (WebCore::RenderThemeAndroid::paintSearchField):
981         (WebCore::RenderThemeAndroid::paintCombo):
982         (WebCore::RenderThemeAndroid::paintMenuList):
983         (WebCore::RenderThemeAndroid::paintMenuListButton):
984         * platform/android/RenderThemeAndroid.h:
985         * platform/efl/RenderThemeEfl.cpp:
986         (WebCore::RenderThemeEfl::paintThemePart):
987         (WebCore::RenderThemeEfl::paintCheckbox):
988         (WebCore::RenderThemeEfl::paintRadio):
989         (WebCore::RenderThemeEfl::paintButton):
990         (WebCore::RenderThemeEfl::paintMenuList):
991         (WebCore::RenderThemeEfl::paintTextField):
992         (WebCore::RenderThemeEfl::paintTextArea):
993         (WebCore::RenderThemeEfl::paintSearchFieldDecoration):
994         (WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
995         (WebCore::RenderThemeEfl::paintSearchFieldResultsDecoration):
996         (WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
997         (WebCore::RenderThemeEfl::paintSearchField):
998         * platform/efl/RenderThemeEfl.h:
999         * platform/gtk/RenderThemeGtk.cpp:
1000         (WebCore::paintMozillaGtkWidget):
1001         (WebCore::RenderThemeGtk::paintCheckbox):
1002         (WebCore::RenderThemeGtk::paintRadio):
1003         (WebCore::RenderThemeGtk::paintButton):
1004         (WebCore::RenderThemeGtk::paintMenuList):
1005         (WebCore::RenderThemeGtk::paintTextField):
1006         (WebCore::RenderThemeGtk::paintTextArea):
1007         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
1008         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
1009         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
1010         (WebCore::RenderThemeGtk::paintSearchField):
1011         (WebCore::RenderThemeGtk::paintSliderTrack):
1012         (WebCore::RenderThemeGtk::paintSliderThumb):
1013         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
1014         (WebCore::RenderThemeGtk::paintMediaMuteButton):
1015         (WebCore::RenderThemeGtk::paintMediaPlayButton):
1016         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
1017         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
1018         (WebCore::RenderThemeGtk::paintMediaSliderTrack):
1019         (WebCore::RenderThemeGtk::paintMediaSliderThumb):
1020         (WebCore::RenderThemeGtk::paintProgressBar):
1021         * platform/gtk/RenderThemeGtk.h:
1022         * platform/haiku/RenderThemeHaiku.cpp:
1023         (WebCore::RenderThemeHaiku::paintCheckbox):
1024         (WebCore::RenderThemeHaiku::paintRadio):
1025         (WebCore::RenderThemeHaiku::paintMenuList):
1026         * platform/haiku/RenderThemeHaiku.h:
1027         * platform/qt/RenderThemeQt.cpp:
1028         (WebCore::StylePainter::StylePainter):
1029         (WebCore::RenderThemeQt::paintCheckbox):
1030         (WebCore::RenderThemeQt::paintRadio):
1031         (WebCore::RenderThemeQt::paintButton):
1032         (WebCore::RenderThemeQt::paintTextField):
1033         (WebCore::RenderThemeQt::paintTextArea):
1034         (WebCore::RenderThemeQt::paintMenuList):
1035         (WebCore::RenderThemeQt::paintMenuListButton):
1036         (WebCore::RenderThemeQt::paintProgressBar):
1037         (WebCore::RenderThemeQt::paintSliderTrack):
1038         (WebCore::RenderThemeQt::paintSliderThumb):
1039         (WebCore::RenderThemeQt::paintSearchField):
1040         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
1041         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
1042         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
1043         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
1044         (WebCore::RenderThemeQt::paintMediaMuteButton):
1045         (WebCore::RenderThemeQt::paintMediaPlayButton):
1046         (WebCore::RenderThemeQt::paintMediaSeekBackButton):
1047         (WebCore::RenderThemeQt::paintMediaSeekForwardButton):
1048         (WebCore::RenderThemeQt::paintMediaCurrentTime):
1049         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
1050         (WebCore::RenderThemeQt::paintMediaVolumeSliderThumb):
1051         (WebCore::RenderThemeQt::paintMediaSliderTrack):
1052         (WebCore::RenderThemeQt::paintMediaSliderThumb):
1053         * platform/qt/RenderThemeQt.h:
1054         * platform/wx/RenderThemeWx.cpp:
1055         (WebCore::RenderThemeWx::paintCheckbox):
1056         (WebCore::RenderThemeWx::paintRadio):
1057         (WebCore::RenderThemeWx::paintButton):
1058         (WebCore::RenderThemeWx::paintTextField):
1059         (WebCore::RenderThemeWx::paintMenuList):
1060         (WebCore::RenderThemeWx::paintMenuListButton):
1061         * rendering/EllipsisBox.cpp:
1062         (WebCore::EllipsisBox::paint):
1063         * rendering/EllipsisBox.h:
1064         * rendering/InlineBox.cpp:
1065         (WebCore::InlineBox::paint):
1066         * rendering/InlineBox.h:
1067         * rendering/InlineFlowBox.cpp:
1068         (WebCore::InlineFlowBox::paint):
1069         (WebCore::InlineFlowBox::paintFillLayers):
1070         (WebCore::InlineFlowBox::paintFillLayer):
1071         (WebCore::InlineFlowBox::paintBoxDecorations):
1072         (WebCore::InlineFlowBox::paintMask):
1073         (WebCore::InlineFlowBox::paintTextDecorations):
1074         * rendering/InlineFlowBox.h:
1075         * rendering/InlineTextBox.cpp:
1076         (WebCore::InlineTextBox::paint):
1077         * rendering/InlineTextBox.h:
1078         * rendering/PaintInfo.h: Added.
1079         (WebCore::PaintInfo::PaintInfo):
1080         (WebCore::PaintInfo::updatePaintingRootForChildren):
1081         (WebCore::PaintInfo::shouldPaintWithinRoot):
1082         (WebCore::PaintInfo::applyTransform):
1083         * rendering/PaintPhase.h: Added.
1084         (WebCore::):
1085         * rendering/RenderBlock.cpp:
1086         (WebCore::RenderBlock::paint):
1087         (WebCore::RenderBlock::paintChildren):
1088         (WebCore::RenderBlock::paintEllipsisBoxes):
1089         (WebCore::clipOutPositionedObjects):
1090         (WebCore::RenderBlock::layoutColumns):
1091         * rendering/RenderBox.cpp:
1092         (WebCore::RenderBox::paint):
1093         (WebCore::RenderBox::paintBoxDecorations):
1094         (WebCore::RenderBox::paintMask):
1095         * rendering/RenderFieldset.cpp:
1096         (WebCore::RenderFieldset::paintBoxDecorations):
1097         * rendering/RenderForeignObject.cpp:
1098         (WebCore::RenderForeignObject::paint):
1099         * rendering/RenderLayer.cpp:
1100         (WebCore::RenderLayer::paint):
1101         (WebCore::performOverlapTests):
1102         (WebCore::RenderLayer::paintLayer):
1103         (WebCore::RenderLayer::paintList):
1104         (WebCore::RenderLayer::paintPaginatedChildLayer):
1105         (WebCore::RenderLayer::paintChildLayerIntoColumns):
1106         * rendering/RenderLayer.h:
1107         * rendering/RenderLayerBacking.cpp:
1108         (WebCore::RenderLayerBacking::paintIntoLayer):
1109         * rendering/RenderLineBoxList.cpp:
1110         (WebCore::RenderLineBoxList::paint):
1111         * rendering/RenderLineBoxList.h:
1112         * rendering/RenderMediaControls.cpp:
1113         (WebCore::RenderMediaControls::paintMediaControlsPart):
1114         * rendering/RenderMediaControls.h:
1115         * rendering/RenderMediaControlsChromium.cpp:
1116         (WebCore::paintMediaMuteButton):
1117         (WebCore::paintMediaPlayButton):
1118         (WebCore::paintMediaSlider):
1119         (WebCore::paintMediaSliderThumb):
1120         (WebCore::paintMediaVolumeSlider):
1121         (WebCore::paintMediaVolumeSliderThumb):
1122         (WebCore::paintMediaTimelineContainer):
1123         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
1124         * rendering/RenderMediaControlsChromium.h:
1125         * rendering/RenderObject.h:
1126         * rendering/RenderPath.cpp:
1127         (WebCore::RenderPath::paint):
1128         * rendering/RenderReplaced.cpp:
1129         (WebCore::RenderReplaced::paint):
1130         (WebCore::RenderReplaced::shouldPaint):
1131         * rendering/RenderSVGContainer.cpp:
1132         (WebCore::RenderSVGContainer::paint):
1133         * rendering/RenderSVGResourceMarker.cpp:
1134         (WebCore::RenderSVGResourceMarker::draw):
1135         * rendering/RenderSVGResourceMarker.h:
1136         * rendering/RenderSVGRoot.cpp:
1137         (WebCore::RenderSVGRoot::paint):
1138         * rendering/RenderSVGText.cpp:
1139         (WebCore::RenderSVGText::paint):
1140         * rendering/RenderScrollbarPart.cpp:
1141         (WebCore::RenderScrollbarPart::paintIntoRect):
1142         * rendering/RenderTable.cpp:
1143         (WebCore::RenderTable::paintObject):
1144         (WebCore::RenderTable::paintBoxDecorations):
1145         * rendering/RenderTableCell.cpp:
1146         (WebCore::RenderTableCell::paint):
1147         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1148         (WebCore::RenderTableCell::paintBoxDecorations):
1149         * rendering/RenderTheme.cpp:
1150         (WebCore::RenderTheme::paint):
1151         (WebCore::RenderTheme::paintBorderOnly):
1152         (WebCore::RenderTheme::paintDecorations):
1153         (WebCore::RenderTheme::paintMeter):
1154         * rendering/RenderTheme.h:
1155         (WebCore::RenderTheme::paintCapsLockIndicator):
1156         (WebCore::RenderTheme::paintCheckbox):
1157         (WebCore::RenderTheme::paintRadio):
1158         (WebCore::RenderTheme::paintButton):
1159         (WebCore::RenderTheme::paintInnerSpinButton):
1160         (WebCore::RenderTheme::paintOuterSpinButton):
1161         (WebCore::RenderTheme::paintTextField):
1162         (WebCore::RenderTheme::paintTextArea):
1163         (WebCore::RenderTheme::paintMenuList):
1164         (WebCore::RenderTheme::paintMenuListButton):
1165         (WebCore::RenderTheme::paintProgressBar):
1166         (WebCore::RenderTheme::paintSliderTrack):
1167         (WebCore::RenderTheme::paintSliderThumb):
1168         (WebCore::RenderTheme::paintSearchField):
1169         (WebCore::RenderTheme::paintSearchFieldCancelButton):
1170         (WebCore::RenderTheme::paintSearchFieldDecoration):
1171         (WebCore::RenderTheme::paintSearchFieldResultsDecoration):
1172         (WebCore::RenderTheme::paintSearchFieldResultsButton):
1173         (WebCore::RenderTheme::paintMediaFullscreenButton):
1174         (WebCore::RenderTheme::paintMediaPlayButton):
1175         (WebCore::RenderTheme::paintMediaMuteButton):
1176         (WebCore::RenderTheme::paintMediaSeekBackButton):
1177         (WebCore::RenderTheme::paintMediaSeekForwardButton):
1178         (WebCore::RenderTheme::paintMediaSliderTrack):
1179         (WebCore::RenderTheme::paintMediaSliderThumb):
1180         (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
1181         (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
1182         (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
1183         (WebCore::RenderTheme::paintMediaRewindButton):
1184         (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
1185         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
1186         (WebCore::RenderTheme::paintMediaControlsBackground):
1187         (WebCore::RenderTheme::paintMediaCurrentTime):
1188         (WebCore::RenderTheme::paintMediaTimeRemaining):
1189         * rendering/RenderThemeChromiumMac.h:
1190         * rendering/RenderThemeChromiumMac.mm:
1191         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
1192         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
1193         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
1194         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
1195         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
1196         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
1197         * rendering/RenderThemeChromiumSkia.cpp:
1198         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
1199         (WebCore::RenderThemeChromiumSkia::paintRadio):
1200         (WebCore::paintButtonLike):
1201         (WebCore::RenderThemeChromiumSkia::paintButton):
1202         (WebCore::RenderThemeChromiumSkia::paintTextField):
1203         (WebCore::RenderThemeChromiumSkia::paintTextArea):
1204         (WebCore::RenderThemeChromiumSkia::paintSearchField):
1205         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
1206         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
1207         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
1208         (WebCore::RenderThemeChromiumSkia::paintMediaControlsBackground):
1209         (WebCore::RenderThemeChromiumSkia::paintMediaSliderTrack):
1210         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack):
1211         (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb):
1212         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb):
1213         (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
1214         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
1215         (WebCore::RenderThemeChromiumSkia::paintMenuList):
1216         (WebCore::RenderThemeChromiumSkia::paintMenuListButton):
1217         (WebCore::RenderThemeChromiumSkia::paintSliderTrack):
1218         (WebCore::RenderThemeChromiumSkia::paintSliderThumb):
1219         (WebCore::RenderThemeChromiumSkia::paintProgressBar):
1220         * rendering/RenderThemeChromiumSkia.h:
1221         * rendering/RenderThemeChromiumWin.cpp:
1222         (WebCore::RenderThemeChromiumWin::paintCheckbox):
1223         (WebCore::RenderThemeChromiumWin::paintRadio):
1224         (WebCore::RenderThemeChromiumWin::paintButton):
1225         (WebCore::RenderThemeChromiumWin::paintTextField):
1226         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
1227         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
1228         (WebCore::RenderThemeChromiumWin::paintMenuList):
1229         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
1230         (WebCore::RenderThemeChromiumWin::paintProgressBar):
1231         * rendering/RenderThemeChromiumWin.h:
1232         * rendering/RenderThemeMac.h:
1233         * rendering/RenderThemeMac.mm:
1234         (WebCore::RenderThemeMac::paintTextField):
1235         (WebCore::RenderThemeMac::paintCapsLockIndicator):
1236         (WebCore::RenderThemeMac::paintTextArea):
1237         (WebCore::RenderThemeMac::paintMenuList):
1238         (WebCore::RenderThemeMac::paintMeter):
1239         (WebCore::RenderThemeMac::paintProgressBar):
1240         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
1241         (WebCore::RenderThemeMac::paintMenuListButton):
1242         (WebCore::RenderThemeMac::paintSliderTrack):
1243         (WebCore::RenderThemeMac::paintSliderThumb):
1244         (WebCore::RenderThemeMac::paintSearchField):
1245         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1246         (WebCore::RenderThemeMac::paintSearchFieldDecoration):
1247         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
1248         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1249         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
1250         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
1251         (WebCore::RenderThemeMac::paintMediaMuteButton):
1252         (WebCore::RenderThemeMac::paintMediaPlayButton):
1253         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
1254         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
1255         (WebCore::RenderThemeMac::paintMediaSliderTrack):
1256         (WebCore::RenderThemeMac::paintMediaSliderThumb):
1257         (WebCore::RenderThemeMac::paintMediaRewindButton):
1258         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
1259         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
1260         (WebCore::RenderThemeMac::paintMediaControlsBackground):
1261         (WebCore::RenderThemeMac::paintMediaCurrentTime):
1262         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
1263         * rendering/RenderThemeSafari.cpp:
1264         (WebCore::RenderThemeSafari::paintCheckbox):
1265         (WebCore::RenderThemeSafari::paintRadio):
1266         (WebCore::RenderThemeSafari::paintButton):
1267         (WebCore::RenderThemeSafari::paintTextField):
1268         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
1269         (WebCore::RenderThemeSafari::paintTextArea):
1270         (WebCore::RenderThemeSafari::paintMenuList):
1271         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
1272         (WebCore::RenderThemeSafari::paintMenuListButton):
1273         (WebCore::RenderThemeSafari::paintSliderTrack):
1274         (WebCore::RenderThemeSafari::paintSliderThumb):
1275         (WebCore::RenderThemeSafari::paintSearchField):
1276         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
1277         (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
1278         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
1279         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
1280         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
1281         (WebCore::RenderThemeSafari::paintMediaMuteButton):
1282         (WebCore::RenderThemeSafari::paintMediaPlayButton):
1283         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
1284         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
1285         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
1286         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
1287         * rendering/RenderThemeSafari.h:
1288         * rendering/RenderThemeWin.cpp:
1289         (WebCore::RenderThemeWin::paintButton):
1290         (WebCore::RenderThemeWin::paintTextField):
1291         (WebCore::RenderThemeWin::paintMenuList):
1292         (WebCore::RenderThemeWin::paintMenuListButton):
1293         (WebCore::RenderThemeWin::paintSliderTrack):
1294         (WebCore::RenderThemeWin::paintSliderThumb):
1295         (WebCore::RenderThemeWin::paintSearchField):
1296         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
1297         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
1298         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
1299         (WebCore::RenderThemeWin::paintMediaFullscreenButton):
1300         (WebCore::RenderThemeWin::paintMediaMuteButton):
1301         (WebCore::RenderThemeWin::paintMediaPlayButton):
1302         (WebCore::RenderThemeWin::paintMediaSeekBackButton):
1303         (WebCore::RenderThemeWin::paintMediaSeekForwardButton):
1304         (WebCore::RenderThemeWin::paintMediaSliderTrack):
1305         (WebCore::RenderThemeWin::paintMediaSliderThumb):
1306         (WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton):
1307         * rendering/RenderThemeWin.h:
1308         (WebCore::RenderThemeWin::paintCheckbox):
1309         (WebCore::RenderThemeWin::paintRadio):
1310         (WebCore::RenderThemeWin::paintTextArea):
1311         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
1312         * rendering/RenderThemeWince.cpp:
1313         (WebCore::RenderThemeWince::paintButton):
1314         (WebCore::RenderThemeWince::paintTextField):
1315         (WebCore::RenderThemeWince::paintMenuList):
1316         (WebCore::RenderThemeWince::paintMenuListButton):
1317         (WebCore::RenderThemeWince::paintSearchField):
1318         (WebCore::RenderThemeWince::paintSearchFieldCancelButton):
1319         (WebCore::RenderThemeWince::paintSearchFieldResultsDecoration):
1320         (WebCore::RenderThemeWince::paintSearchFieldResultsButton):
1321         (WebCore::RenderThemeWince::paintSliderTrack):
1322         (WebCore::RenderThemeWince::paintSliderThumb):
1323         (WebCore::RenderThemeWince::paintMediaFullscreenButton):
1324         (WebCore::RenderThemeWince::paintMediaMuteButton):
1325         (WebCore::RenderThemeWince::paintMediaPlayButton):
1326         (WebCore::RenderThemeWince::paintMediaSeekBackButton):
1327         (WebCore::RenderThemeWince::paintMediaSeekForwardButton):
1328         (WebCore::RenderThemeWince::paintMediaSliderTrack):
1329         (WebCore::RenderThemeWince::paintMediaSliderThumb):
1330         * rendering/RenderThemeWince.h:
1331         (WebCore::RenderThemeWince::paintCheckbox):
1332         (WebCore::RenderThemeWince::paintRadio):
1333         (WebCore::RenderThemeWince::paintTextArea):
1334         (WebCore::RenderThemeWince::paintSearchFieldDecoration):
1335         * rendering/RootInlineBox.cpp:
1336         (WebCore::RootInlineBox::paintEllipsisBox):
1337         (WebCore::RootInlineBox::paintCustomHighlight):
1338         (WebCore::RootInlineBox::paint):
1339         (WebCore::RootInlineBox::fillLineSelectionGap):
1340         * rendering/RootInlineBox.h:
1341         * rendering/SVGInlineFlowBox.cpp:
1342         (WebCore::SVGInlineFlowBox::paint):
1343         * rendering/SVGInlineFlowBox.h:
1344         * rendering/SVGInlineTextBox.cpp:
1345         (WebCore::SVGInlineTextBox::paint):
1346         * rendering/SVGInlineTextBox.h:
1347         * rendering/SVGMarkerLayoutInfo.cpp:
1348         (WebCore::SVGMarkerLayoutInfo::drawMarkers):
1349         * rendering/SVGMarkerLayoutInfo.h:
1350         * rendering/SVGRenderSupport.cpp:
1351         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
1352         (WebCore::SVGRenderBase::finishRenderSVGContent):
1353         (WebCore::renderSubtreeToImage):
1354         * rendering/SVGRenderSupport.h:
1355         * rendering/SVGRootInlineBox.cpp:
1356         (WebCore::SVGRootInlineBox::paint):
1357         * rendering/SVGRootInlineBox.h:
1358
1359 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
1360
1361         Not reviewed. Sort Xcode project file.
1362
1363         * WebCore.xcodeproj/project.pbxproj:
1364
1365 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
1366
1367         Reviewed by Dirk Schulze.
1368
1369         Provide floating-point support for text selection framework
1370         https://bugs.webkit.org/show_bug.cgi?id=40665
1371
1372         Rename 'glyphScale' to 'horizontalGlyphStretch' upon Dans' request.
1373         Also guard the variables in ENABLE(SVG) blocks. Initialize variable to 1 instead of 1.0f, as that's the new style rule.
1374
1375         No functional changes, thus no new tests.
1376
1377         * platform/graphics/TextRun.h:
1378         (WebCore::TextRun::TextRun):
1379         (WebCore::TextRun::horizontalGlyphStretch):
1380         (WebCore::TextRun::setHorizontalGlyphStretch):
1381         (WebCore::TextRun::spacingDisabled):
1382         * platform/graphics/WidthIterator.cpp:
1383         (WebCore::WidthIterator::advance):
1384         * rendering/SVGInlineTextBox.cpp:
1385         (WebCore::SVGInlineTextBox::offsetForPosition):
1386
1387 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
1388
1389         Reviewed by Dirk Schulze.
1390
1391         REGRESSION: text-shadow CSS applied to SVG no longer works
1392         https://bugs.webkit.org/show_bug.cgi?id=40960
1393
1394         Readd text-shadow support, this time supporting multiple shadows.
1395         It's not exactly like HTML, because SVG draws fill/stroke phases seperated - the png shows the difference.
1396
1397         Tests: svg/css/text-shadow-multiple.xhtml
1398
1399         * rendering/InlineTextBox.cpp:
1400         (WebCore::InlineTextBox::applyShadowToGraphicsContext): Refactored from paintTextWithShadows(), so SVG can reuse.
1401         (WebCore::paintTextWithShadows): Use refactored applyShadowToGraphicsContext() function.
1402         * rendering/InlineTextBox.h: 
1403         * rendering/SVGInlineTextBox.cpp:
1404         (WebCore::SVGInlineTextBox::paintTextWithShadows): Added.
1405         (WebCore::SVGInlineTextBox::paintText): Call paintTextWithShadows() instead of directly drawing the text.
1406         * rendering/SVGInlineTextBox.h:
1407
1408 2010-06-29  Pavel Podivilov  <podivilov@chromium.org>
1409
1410         Reviewed by Yury Semikhatsky.
1411
1412         Web Inspector: show actual breakpoint position in UI.
1413         When user sets breakpoint from UI, javascript engine may actually set
1414         it on a different line. If so, move breakpoint to the correct position
1415         in frontend.
1416         https://bugs.webkit.org/show_bug.cgi?id=40781
1417
1418         * bindings/js/ScriptDebugServer.cpp:
1419         (WebCore::ScriptDebugServer::setBreakpoint):
1420         (WebCore::ScriptDebugServer::dispatchDidPause):
1421         * bindings/js/ScriptDebugServer.h:
1422         * bindings/v8/ScriptDebugServer.cpp:
1423         (WebCore::ScriptDebugServer::setBreakpoint):
1424         (WebCore::ScriptDebugServer::currentCallFrame):
1425         * bindings/v8/ScriptDebugServer.h:
1426         * inspector/InspectorBackend.cpp:
1427         (WebCore::InspectorBackend::setBreakpoint):
1428         * inspector/InspectorBackend.h:
1429         * inspector/InspectorBackend.idl:
1430         * inspector/InspectorController.cpp:
1431         (WebCore::InspectorController::didCommitLoad):
1432         (WebCore::InspectorController::setBreakpoint):
1433         (WebCore::InspectorController::removeBreakpoint):
1434         (WebCore::InspectorController::didParseSource):
1435         * inspector/InspectorController.h:
1436         * inspector/InspectorFrontend.cpp:
1437         (WebCore::InspectorFrontend::didSetBreakpoint):
1438         * inspector/InspectorFrontend.h:
1439         * inspector/front-end/BreakpointManager.js:
1440         (WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint):
1441         (WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint):
1442         (WebInspector.BreakpointManager.prototype.setBreakpoint):
1443         (WebInspector.BreakpointManager.prototype.restoredBreakpoint):
1444         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
1445         (WebInspector.BreakpointManager.prototype._setBreakpoint):
1446         (WebInspector.BreakpointManager.prototype._removeBreakpoint):
1447         (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend.didSetBreakpoint):
1448         (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend):
1449         (WebInspector.Breakpoint.prototype.set enabled):
1450         (WebInspector.Breakpoint.prototype.set condition):
1451         * inspector/front-end/InspectorBackendStub.js:
1452         (.WebInspector.InspectorBackendStub.prototype.setBreakpoint):
1453         * inspector/front-end/ScriptView.js:
1454         (WebInspector.ScriptView.prototype._addBreakpoint):
1455         * inspector/front-end/SourceView.js:
1456         (WebInspector.SourceView.prototype._addBreakpoint):
1457
1458 2010-06-29  Dumitru Daniliuc  <dumi@chromium.org>
1459
1460         Reviewed by Adam Barth.
1461
1462         Catch toString() exceptions in all DB-related code.
1463         https://bugs.webkit.org/show_bug.cgi?id=41297
1464
1465         * bindings/v8/custom/V8BindingMacros.h:
1466         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1467         (WebCore::V8DOMWindow::openDatabaseCallback):
1468         * bindings/v8/custom/V8DatabaseCustom.cpp:
1469         (WebCore::V8Database::changeVersionCallback):
1470         * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
1471         (WebCore::V8DatabaseSync::changeVersionCallback):
1472         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1473         (WebCore::V8SQLTransaction::executeSqlCallback):
1474         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1475         (WebCore::V8SQLTransactionSync::executeSqlCallback):
1476         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1477         (WebCore::V8WorkerContext::openDatabaseCallback):
1478         (WebCore::V8WorkerContext::openDatabaseSyncCallback):
1479
1480 2010-06-29  Herczeg Zoltan  <zherczeg@webkit.org>
1481
1482         Rubber-stamped by Nikolas Zimmermann.
1483
1484         Windows build fix.
1485         https://bugs.webkit.org/show_bug.cgi?id=5861
1486
1487         * svg/SVGFEConvolveMatrixElement.cpp:
1488         (WebCore::SVGFEConvolveMatrixElement::build):
1489
1490 2010-06-29  Zoltan Herczeg  <zherczeg@webkit.org>
1491
1492         Reviewed by Nikolas Zimmermann.
1493
1494         Add ConvolveMatrix SVG filter effect
1495         https://bugs.webkit.org/show_bug.cgi?id=5861
1496
1497         The patch was originally started by Dirk Schulze,
1498         and the .cpp and .h files are mostly his work.
1499         I updated the build systems and do some minor updates
1500         to the source files as well. The patch does not contain
1501         the implementation of the filter: this is intended,
1502         and will be landed in a follow-up patch.
1503
1504         * Android.derived.jscbindings.mk:
1505         * Android.derived.v8bindings.mk:
1506         * Android.mk:
1507         * CMakeLists.txt:
1508         * DerivedSources.cpp:
1509         * DerivedSources.make:
1510         * GNUmakefile.am:
1511         * WebCore.gypi:
1512         * WebCore.pri:
1513         * WebCore.pro:
1514         * WebCore.vcproj/WebCore.vcproj:
1515         * WebCore.xcodeproj/project.pbxproj:
1516         * bindings/objc/DOM.mm:
1517         (WebCore::createElementClassMap):
1518         * bindings/objc/DOMSVG.h:
1519         * page/DOMWindow.idl:
1520         * svg/SVGAllInOne.cpp:
1521         * svg/SVGFEConvolveMatrixElement.cpp: Added.
1522         (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
1523         (WebCore::SVGFEConvolveMatrixElement::~SVGFEConvolveMatrixElement):
1524         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute):
1525         (WebCore::SVGFEConvolveMatrixElement::setOrder):
1526         (WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength):
1527         (WebCore::SVGFEConvolveMatrixElement::build):
1528         * svg/SVGFEConvolveMatrixElement.h: Added.
1529         * svg/SVGFEConvolveMatrixElement.idl: Added.
1530         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
1531         (WebCore::FEConvolveMatrix::FEConvolveMatrix):
1532         (WebCore::FEConvolveMatrix::create):
1533         (WebCore::FEConvolveMatrix::kernelSize):
1534         (WebCore::FEConvolveMatrix::setKernelSize):
1535         (WebCore::FEConvolveMatrix::targetOffset):
1536         (WebCore::FEConvolveMatrix::setTargetOffset):
1537         (WebCore::operator<<):
1538         (WebCore::FEConvolveMatrix::externalRepresentation):
1539         * svg/graphics/filters/SVGFEConvolveMatrix.h:
1540         (WebCore::):
1541         * svg/svgattrs.in:
1542         * svg/svgtags.in:
1543
1544 2010-06-28  Adam Barth  <abarth@webkit.org>
1545
1546         Reviewed by Eric Seidel.
1547
1548         HTML5 tree builder shouldn't ASSERT on HTML5lib test suite
1549         https://bugs.webkit.org/show_bug.cgi?id=41335
1550
1551         Sketch out the EndTag handling for InBodyMode.
1552
1553         * html/HTMLTreeBuilder.cpp:
1554         (WebCore::HTMLTreeBuilder::processEndTag):
1555         * html/HTMLTreeBuilder.h:
1556         (WebCore::HTMLTreeBuilder::ElementStack::inScope):
1557         (WebCore::HTMLTreeBuilder::clearActiveFormatingElementsUpToLastMarker):
1558         (WebCore::HTMLTreeBuilder::generateImpliedEndTags):
1559
1560 2010-06-28  David Levin  <levin@chromium.org>
1561
1562         Reviewed by NOBODY (chromium build fix).
1563
1564         * rendering/RenderObject.h: Add missing forward declaration.
1565
1566 2010-06-28  Adam Barth  <abarth@webkit.org>
1567
1568         Unreviewed.
1569
1570         I accidently gave up my ref and tried to dereference a null pointer.
1571         This code is keeping an extra ref that it doesn't need, but that fact
1572         was somewhat hidden before.
1573
1574         * dom/ContainerNode.cpp:
1575         (WebCore::ContainerNode::addChildCommon):
1576         (WebCore::ContainerNode::parserAddChild):
1577         (WebCore::ContainerNode::legacyParserAddChild):
1578         * dom/ContainerNode.h:
1579
1580 2010-06-28  Adam Barth  <abarth@webkit.org>
1581
1582         Unreviewed.
1583
1584         Refactor common code into addChildCommon
1585         https://bugs.webkit.org/show_bug.cgi?id=41326
1586
1587         Eric asked that we share the common code between these codepaths.
1588
1589         * dom/ContainerNode.cpp:
1590         (WebCore::ContainerNode::addChildCommon):
1591         (WebCore::ContainerNode::parserAddChild):
1592         (WebCore::ContainerNode::addChild):
1593         * dom/ContainerNode.h:
1594
1595 2010-06-28  Eric Seidel  <eric@webkit.org>
1596
1597         Reviewed by Adam Barth.
1598
1599         Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
1600         https://bugs.webkit.org/show_bug.cgi?id=41319
1601
1602         Restructure the code to not use in-band data, which is what
1603         got us in trouble with a signed/unsigned mismatch before.
1604
1605         * html/HTMLTreeBuilder.cpp:
1606         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
1607         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
1608         * html/HTMLTreeBuilder.h:
1609
1610 2010-06-28  Daniel Bates  <dbates@rim.com>
1611
1612         Unreviewed, attempt to fix Qt bots.
1613
1614         Attempt to fix the build after changeset 62079 <http://trac.webkit.org/changeset/62079>
1615         (https://bugs.webkit.org/show_bug.cgi?id=41324).
1616
1617         Rename some more call sites that were missed in the initial landing.
1618
1619         * dom/XMLDocumentParserQt.cpp:
1620         (WebCore::XMLDocumentParser::parseStartElement):
1621         (WebCore::XMLDocumentParser::parseProcessingInstruction):
1622         (WebCore::XMLDocumentParser::parseCdata):
1623         (WebCore::XMLDocumentParser::parseComment):
1624         (WebCore::XMLDocumentParser::parseDtd):
1625
1626 2010-06-28  Daniel Bates  <dbates@rim.com>
1627
1628         Unreviewed, build fix.
1629
1630         Change return type of method HTMLTreeBuilder::reconstructTheActiveFormattingElements()
1631         from int to unsigned.
1632
1633         Attempt to fix the build after changeset 62077 <https://trac.webkit.org/changeset/62077>
1634         (https://bugs.webkit.org/show_bug.cgi?id=41319).
1635
1636         * html/HTMLTreeBuilder.cpp:
1637         (WebCore::HTMLTreeBuilder::indexOfLastOpenFormattingElementOrMarker):
1638         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
1639         * html/HTMLTreeBuilder.h:
1640
1641 2010-06-28  Eric Seidel  <eric@webkit.org>
1642
1643         Reviewed by Adam Barth.
1644
1645         Rename ContainerNode::addChild to legacyParserAddChild to indicate its parser-only intended use
1646         https://bugs.webkit.org/show_bug.cgi?id=41324
1647
1648         A bunch of places in the code were calling ContainerNode::addChild.
1649         I don't think they actually want to be doing that, as it has special
1650         form-related handling which is part of LegacyHTMLTreeBuilder.
1651
1652         No functional changes, thus no tests.
1653
1654         * dom/ContainerNode.cpp:
1655         (WebCore::ContainerNode::legacyParserAddChild):
1656         * dom/ContainerNode.h:
1657         * dom/DOMImplementation.cpp:
1658         (WebCore::DOMImplementation::createDocument):
1659         * dom/Node.cpp:
1660         (WebCore::Node::legacyParserAddChild):
1661         * dom/Node.h:
1662         * html/HTMLKeygenElement.cpp:
1663         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
1664         * html/HTMLTableElement.cpp:
1665         (WebCore::HTMLTableElement::legacyParserAddChild):
1666         * html/HTMLTableElement.h:
1667         * html/HTMLTableRowElement.cpp:
1668         (WebCore::HTMLTableRowElement::legacyParserAddChild):
1669         * html/HTMLTableRowElement.h:
1670         * html/HTMLTableSectionElement.cpp:
1671         (WebCore::HTMLTableSectionElement::legacyParserAddChild):
1672         * html/HTMLTableSectionElement.h:
1673         * html/HTMLViewSourceDocument.cpp:
1674         (WebCore::HTMLViewSourceDocument::createContainingTable):
1675         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
1676         (WebCore::HTMLViewSourceDocument::addLine):
1677         (WebCore::HTMLViewSourceDocument::addText):
1678         (WebCore::HTMLViewSourceDocument::addLink):
1679
1680 2010-06-28  Eric Seidel  <eric@webkit.org>
1681
1682         Reviewed by Adam Barth.
1683
1684         Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
1685         https://bugs.webkit.org/show_bug.cgi?id=41319
1686
1687         This is basically a direct transcription of HTML5 TreeBuilder spec:
1688          http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#list-of-active-formatting-elements
1689
1690         This code is covered by various tests in html5lib/runner which we
1691         can't run yet due to other asserts.  Adam and I are working on
1692         getting rid of those ASSERTS so that this (and other code) will
1693         be better tested shortly.
1694
1695         * html/HTMLTreeBuilder.cpp:
1696         (WebCore::HTMLTreeBuilder::insertFormatingElement):
1697         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
1698         * html/HTMLTreeBuilder.h:
1699         (WebCore::HTMLTreeBuilder::ElementStack::contains):
1700         (WebCore::HTMLTreeBuilder::FormatingElementEntry::FormatingElementEntry):
1701         (WebCore::HTMLTreeBuilder::FormatingElementEntry::):
1702         (WebCore::HTMLTreeBuilder::FormatingElementEntry::isMarker):
1703         (WebCore::HTMLTreeBuilder::FormatingElementEntry::element):
1704         (WebCore::HTMLTreeBuilder::FormatingElementEntry::replaceElement):
1705
1706 2010-06-28  Adam Barth  <abarth@webkit.org>
1707
1708         Reviewed by Eric Seidel.
1709
1710         Fix ASSERT so we can run more HTML5lib tests
1711         https://bugs.webkit.org/show_bug.cgi?id=41325
1712
1713         We can't call Node::addChild because that function contains a bunch of
1714         logic from the old parser.  Instead, this patch creates a new version
1715         of addChild that's does less validating (that's the tree builder's
1716         job).
1717
1718         * dom/ContainerNode.cpp:
1719         (WebCore::ContainerNode::parserAddChild):
1720         * dom/ContainerNode.h:
1721         * dom/Node.cpp:
1722         (WebCore::Node::parserAddChild):
1723         * dom/Node.h:
1724         * html/HTMLTreeBuilder.h:
1725         (WebCore::HTMLTreeBuilder::attach):
1726
1727 2010-06-28  David Levin  <levin@chromium.org>
1728
1729         Reviewed by NOBODY (chromium build fix).
1730
1731         * bindings/v8/ScriptEventListener.h: Changed forward declaration
1732           to correspond to the code change doing in r62052.
1733
1734 2010-06-28  Brady Eidson  <beidson@apple.com>
1735
1736         Reviewed by Alexey Proskuryakov.
1737
1738         Support for https://bugs.webkit.org/show_bug.cgi?id=40484
1739
1740         In working on adding beforeProcess, it becomes necessary for JSLazyEventListeners to always know what their
1741         original Node* was, even if it was a window event listener.
1742
1743         For HTMLFrameSet, HTMLBody, and SVGSVG elements, a second form of createAttributeEventListener was used that
1744         took a Frame* argument and didn't set the original Node* on the JSLazyEventListener.
1745
1746         This patch changes that form of the function to createWindowAttributeEventListener, and passes the Node* along
1747         for later use by the beforeProcess mechanism.
1748
1749         No new tests. (No change in behavior)
1750
1751         * bindings/js/ScriptEventListener.cpp:
1752         (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
1753           of a Frame*, and figures out the Frame* itself internally.
1754         * bindings/js/ScriptEventListener.h:
1755
1756         * bindings/v8/ScriptEventListener.cpp:
1757         (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
1758           of a Frame*, and figures out the Frame* itself internally. Note that V8LazyEventListener doesn't allow us to
1759           pass the Element* argument in so this beforeprocess feature won't fully work on V8 builds until this is changed.
1760         * bindings/v8/ScriptEventListener.h:
1761
1762         * html/HTMLBodyElement.cpp:
1763         (WebCore::HTMLBodyElement::parseMappedAttribute): Use createWindowAttributeEventListener instead.
1764         * html/HTMLFrameSetElement.cpp:
1765         (WebCore::HTMLFrameSetElement::parseMappedAttribute): Ditto.
1766         * svg/SVGSVGElement.cpp:
1767         (WebCore::SVGSVGElement::parseMappedAttribute): Ditto. Also add some missing copyright dates that `svn log` proves
1768           should be there.
1769
1770 2010-06-28  John Gregg  <johnnyg@google.com>
1771
1772         Reviewed by Kent Tamura.
1773
1774         add ENABLE_DIRECTORY_UPLOAD build support
1775         https://bugs.webkit.org/show_bug.cgi?id=41100
1776
1777         * Configurations/FeatureDefines.xcconfig:
1778         * GNUmakefile.am:
1779         * WebCore.pri:
1780
1781 2010-06-28  Adam Barth  <abarth@webkit.org>
1782
1783         Reviewed by Eric Seidel.
1784
1785         Don't use the new tree builder for fragments
1786         https://bugs.webkit.org/show_bug.cgi?id=41316
1787
1788         We need to walk before we can run.  After this change, we can run the
1789         runner.html tests (with the ASSERT caveat).
1790
1791         * html/HTMLTreeBuilder.cpp:
1792         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1793
1794 2010-06-28  Adam Barth  <abarth@webkit.org>
1795
1796         Reviewed by Eric Seidel.
1797
1798         The new tree builder should actually finish building the tree
1799         https://bugs.webkit.org/show_bug.cgi?id=41314
1800
1801         Again, this patch makes progress on runner.html, but I haven't removed
1802         the ASSERT yet.
1803
1804         * html/HTMLTreeBuilder.cpp:
1805         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1806         (WebCore::HTMLTreeBuilder::finished):
1807         * html/HTMLTreeBuilder.h:
1808
1809 2010-06-28  Dumitru Daniliuc  <dumi@chromium.org>
1810
1811         Reviewed by Eric Seidel.
1812
1813         Fix a race condition that can happen when using DBs in workers.
1814         https://bugs.webkit.org/show_bug.cgi?id=41105
1815
1816         * storage/DatabaseTracker.cpp:
1817         (WebCore::DatabaseTracker::addOpenDatabase):
1818         * storage/DatabaseTracker.h:
1819
1820 2010-06-28  Adam Barth  <abarth@webkit.org>
1821
1822         Reviewed by Eric Seidel.
1823
1824         Add text nodes to the DOM
1825         https://bugs.webkit.org/show_bug.cgi?id=41306
1826
1827         Actually add some text nodes to the DOM when parsing a document.  We're
1828         going to need to do something fancier here eventually, but this gets us
1829         past the error we're seeing currently in runner.html.
1830
1831         Unfortunately, this patch "regresses" runner.html in the sense that we
1832         now hit an assert, but it's still an improvement...  I'll update the
1833         HTML5 expectations once we get past the assert.
1834
1835         * html/HTMLTreeBuilder.cpp:
1836         (WebCore::HTMLTreeBuilder::processCharacter):
1837         (WebCore::HTMLTreeBuilder::insertTextNode):
1838         * html/HTMLTreeBuilder.h:
1839
1840 2010-06-28  Beth Dakin  <bdakin@apple.com>
1841
1842         Build fix for non-PATH_BASED_BORDER_RADIUS_DRAWING platforms.
1843
1844         * rendering/RenderBoxModelObject.cpp:
1845
1846 2010-06-28  Andreas Kling  <andreas.kling@nokia.com>
1847
1848         Reviewed by Kenneth Rohde Christiansen.
1849
1850         [Qt] Use HTML5-conformant gradient interpolation mode
1851         https://bugs.webkit.org/show_bug.cgi?id=41298
1852
1853         Change the Qt Gradient implementation to use ComponentInterpolation mode.
1854
1855         Spec link:
1856         http://www.whatwg.org/specs/web-apps/current-work/#colors-and-styles
1857
1858         * platform/graphics/qt/GradientQt.cpp:
1859         (WebCore::Gradient::platformGradient):
1860
1861 2010-06-28  Beth Dakin  <bdakin@apple.com>
1862
1863         Reviewed by Sam Weinig.
1864
1865         Fix for https://bugs.webkit.org/show_bug.cgi?id=9197 CSS3: Borders 
1866         with border-radius and double, groove, or ridge styles should look 
1867         better
1868
1869         This patch re-works border radius painting to stroke paths instead 
1870         of arcs. 
1871
1872         Added new function clipConvexPolygon(). Added static 
1873         addConvexPolygonToContext so that code can be shared between 
1874         drawConvexPolygon() and clipConvexPolygon().
1875         * platform/graphics/GraphicsContext.h:
1876         * platform/graphics/cg/GraphicsContextCG.cpp:
1877         (WebCore::addConvexPolygonToContext):
1878         (WebCore::GraphicsContext::drawConvexPolygon):
1879         (WebCore::GraphicsContext::clipConvexPolygon):
1880
1881         Shells of implementations on non-CG platforms.
1882         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1883         (WebCore::GraphicsContext::clipConvexPolygon):
1884         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1885         (WebCore::GraphicsContext::clipConvexPolygon):
1886         * platform/graphics/qt/GraphicsContextQt.cpp:
1887         (WebCore::GraphicsContext::clipConvexPolygon):
1888         * platform/graphics/skia/GraphicsContextSkia.cpp:
1889         (WebCore::GraphicsContext::clipConvexPolygon):
1890         * platform/graphics/wince/GraphicsContextWince.cpp:
1891         (WebCore::GraphicsContext::clipConvexPolygon):
1892         * platform/graphics/wx/GraphicsContextWx.cpp:
1893         (WebCore::GraphicsContext::clipConvexPolygon):
1894
1895         This new helper function determines if the inner corners of the 
1896         border will arch in or meet at a right angle. 
1897         * rendering/RenderBoxModelObject.cpp:
1898         (WebCore::borderWillArcInnerEdge):
1899
1900         This function is re-written so that, for each side of the border, 
1901         if borderWillArcInnerEdge() is true, we go down a brand new code 
1902         path of clipping to a convex polygon for the border side and then 
1903         we paint the side using the new function drawBoxSideFromPath(). If 
1904         borderWillArcInnerEdge() is false, then we call into the old 
1905         familiar drawLineForBoxSide() which relies on the rounder clip 
1906         rects we have set up to arch the outer edge of the border.
1907         (WebCore::RenderBoxModelObject::paintBorder):
1908
1909         This new function does the math to figure out the convex polygon 
1910         to clip to in the case where we need to arch the inner edge of the 
1911         border. This calls into a new GraphicsContext function that is only 
1912         implemented on CG at this time. This is the reason we are keeping 
1913         around an old version of paintBorder() for now.
1914         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
1915         * rendering/RenderBoxModelObject.h:
1916
1917         borderInnerRect() is a new convenience function called from 
1918         RenderObject and RenderBoxModelObject to determine the rect of the 
1919         inside edge of the border.
1920         * rendering/RenderObject.cpp:
1921         (WebCore::RenderObject::borderInnerRect):
1922
1923         This new function re-works drawArcForBoxSide to draw from Paths 
1924         when appropriate instead of stroking arcs. 
1925         (WebCore::RenderObject::drawBoxSideFromPath):
1926
1927         Keep this around for that do not HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until 
1928         GraphicsContext::clipConvexPolygon() is implemented.
1929         (WebCore::RenderObject::drawArcForBoxSide):
1930         * rendering/RenderObject.h:
1931
1932         New function 
1933         RenderStyle::getInnerBorderRadiiForRectWithBorderWidths() gets the 
1934         inner radius values for a rect. It takes border widths a parameters 
1935         rather than using the style's border widths so that it can be used 
1936         in inner radius calculations for double and groove/ridge 
1937         calculations. The W3C corner constraining rules were moved to a 
1938         static function that can be called from both getBorderRadiiForRect
1939         () and getInnerBorderRadiiForRectWithBorderWidths().
1940         * rendering/style/RenderStyle.cpp:
1941         (WebCore::constrainCornerRadiiForRect):
1942         (WebCore::RenderStyle::getBorderRadiiForRect):
1943         (WebCore::RenderStyle::getInnerBorderRadiiForRectWithBorderWidths):
1944         * rendering/style/RenderStyle.h:
1945
1946 2010-06-28  Martin Robinson  <mrobinson@igalia.com>
1947
1948         Reviewed by Xan Lopez.
1949
1950         [GTK] Add support for the progress bar tag
1951         https://bugs.webkit.org/show_bug.cgi?id=41014
1952
1953         Add support for rendering the progress tag for WebKit GTK+.
1954
1955         * GNUmakefile.am:
1956         * platform/gtk/RenderThemeGtk.cpp:
1957         (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
1958         Added. Currently progress bar animations are disabled. As it looks like
1959         there may not be a good way to support this with Mozilla's theme drawing code.
1960         (WebCore::RenderThemeGtk::animationDurationForProgressBar): Ditto.
1961         (WebCore::RenderThemeGtk::adjustProgressBarStyle): Added.
1962         (WebCore::RenderThemeGtk::paintProgressBar): Added.
1963         * platform/gtk/RenderThemeGtk.h: Add declarations for new methods.
1964         * platform/gtk/gtk2drawing.c: 
1965         (moz_gtk_get_progress_widget): Expose the progress widget so that the chunk can be positioned properly.
1966         * platform/gtk/gtkdrawing.h: Added declaration for moz_gtk_get_progress_widget.
1967
1968 2010-06-28  Adam Barth  <abarth@webkit.org>
1969
1970         Reviewed by Eric Seidel.
1971
1972         HTML5 Regression: Crash in insert()
1973         https://bugs.webkit.org/show_bug.cgi?id=41281
1974
1975         We need to call endIfDelayed() outside of the script nesting block
1976         because endIfDelayed() might call end(), which deletes the
1977         HTMLDocumentParser.  If we try to exit the script nesting block after
1978         the HTMLDocumentParser has been deleted, we'll decrement unallocated
1979         memory, which is bad times.
1980
1981         Moving endIfDelayed outside of the script nesting block also lets us
1982         avoid ending if inWrite() is true.  If we're inWrite(), then there's
1983         folks above us on the stack who will crash of the HTMLDocumentParser is
1984         deallocated.  Adding this check matches the LegacyHTMLDocumentParser
1985         and the logic in attemptToEnd, facilitating a small refactoring of the
1986         common logic for improved readability.
1987
1988         I don't know of any test case that changes in behavior because of this
1989         patch, but this bug exists on the same line of code that the reliablity
1990         tests crashed.  I'm not sure whether this patch will fix that crash,
1991         but removing bugs (even theoretical ones) seems like a good idea.
1992
1993         * html/HTMLDocumentParser.cpp:
1994         (WebCore::HTMLDocumentParser::insert):
1995         (WebCore::HTMLDocumentParser::append):
1996         (WebCore::HTMLDocumentParser::attemptToEnd):
1997         (WebCore::HTMLDocumentParser::endIfDelayed):
1998         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
1999         * html/HTMLDocumentParser.h:
2000         (WebCore::HTMLDocumentParser::shouldDelayEnd):
2001
2002 2010-06-28  Eric Carlson  <eric.carlson@apple.com>
2003
2004         Reviewed by Sam Weinig.
2005
2006         MediaPlayerPrivate::getSupportedTypes does not return "modern" MIME types
2007         https://bugs.webkit.org/show_bug.cgi?id=41287
2008         <rdar://problem/8137402>
2009
2010         No new test because getSupportedTypes is used privately by MediaPlayer.
2011
2012         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2013         (WebCore::MediaPlayerPrivate::getSupportedTypes): Build hash set with both common and
2014         modern types.
2015
2016 2010-06-28  James Robinson  <jamesr@chromium.org>
2017
2018         Reviewed by Darin Adler.
2019
2020         REGRESSION(53790): Neopets page with mismatched elements misrenders
2021         https://bugs.webkit.org/show_bug.cgi?id=41181
2022
2023         Misnested formatting tags require fixup in order to create a valid DOM.  Because this takes
2024         O(N^2) time in some cases, http://trac.webkit.org/changeset/53790 added an iteration limit
2025         of 5 to this algorithm to avoid hangs.  This limit is too low for neopets, but a limit of
2026         7 is sufficient.  This raises the limit to 10 to have a bit of breathing room.  HTML5
2027         defines the fixup algorithm http://www.whatwg.org/specs/web-apps/current-work/#adoptionAgency
2028         but doesn't specify any particular iteration limit.
2029
2030         * html/LegacyHTMLTreeBuilder.cpp:
2031
2032 2010-06-28  Adam Barth  <abarth@webkit.org>
2033
2034         Reviewed by Eric Seidel.
2035
2036         The new tree builder needs to call attach() on elements it attaches to
2037         the DOM
2038         https://bugs.webkit.org/show_bug.cgi?id=41293
2039
2040         Apparently Nodes expect to have their attach() method called when they
2041         are attached to the DOM.  The new tree builder is happy to oblige.
2042         Making this call requires some fancy footwork with RefPtr/PassRefPtr to
2043         avoid extra ref churn while keeping each function small.
2044
2045         * html/HTMLTreeBuilder.cpp:
2046         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
2047         (WebCore::HTMLTreeBuilder::processCharacter):
2048         (WebCore::HTMLTreeBuilder::insertDoctype):
2049         (WebCore::HTMLTreeBuilder::insertComment):
2050         (WebCore::HTMLTreeBuilder::insertCommentOnDocument):
2051         (WebCore::HTMLTreeBuilder::insertElement):
2052         (WebCore::HTMLTreeBuilder::insertSelfClosingElement):
2053         (WebCore::HTMLTreeBuilder::insertScriptElement):
2054         * html/HTMLTreeBuilder.h:
2055         (WebCore::HTMLTreeBuilder::attach):
2056
2057 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2058
2059         Fix distcheck.
2060
2061         * GNUmakefile.am:
2062
2063 2010-06-28  Kenneth Russell  <kbr@google.com>
2064
2065         Reviewed by Dimitri Glazkov.
2066
2067         Index validation caches buffer size information too aggressively
2068         https://bugs.webkit.org/show_bug.cgi?id=41092
2069
2070         Test: fast/canvas/webgl/index-validation-with-resized-buffer.html
2071
2072         * html/canvas/WebGLRenderingContext.cpp:
2073         (WebCore::WebGLRenderingContext::validateRenderingState):
2074          - Compute the number of valid elements each time based on the latched buffer.
2075         (WebCore::WebGLRenderingContext::vertexAttribPointer):
2076          - Do not cache the buffer size, only the attributes used to
2077            compute the number of required elements.
2078         * html/canvas/WebGLRenderingContext.h:
2079         (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState):
2080          - Ditto.
2081
2082 2010-06-28  Andreas Kling  <andreas.kling@nokia.com>
2083
2084         Reviewed by Simon Hausmann.
2085
2086         [Qt] Replace single treat-as-space characters with normal space
2087         https://bugs.webkit.org/show_bug.cgi?id=41278
2088
2089         This keeps Qt from attempting glyph substitution and loading a bunch
2090         of extra fonts when encountering &nbsp; entities.
2091
2092         * platform/graphics/qt/FontQt.cpp:
2093         (WebCore::Font::floatWidthForComplexText):
2094
2095 2010-06-28  Robin Cao  <robin.cao@torchmobile.com.cn>
2096
2097         Reviewed by Dan Bernstein.
2098
2099         canvas fillText with @font-face crashes
2100         https://bugs.webkit.org/show_bug.cgi?id=35486
2101
2102         The font object in CanvasRenderingContext2D may become invalid at some point.
2103         Override recalcStyle() in HTMLCanvasElement, and update the font object from there if needed.
2104
2105         A test already exists: canvas/philip/tests/2d.text.draw.fontface.repeat.html
2106
2107         * html/HTMLCanvasElement.cpp:
2108         (WebCore::HTMLCanvasElement::recalcStyle):
2109         * html/HTMLCanvasElement.h:
2110         * html/canvas/CanvasRenderingContext2D.cpp:
2111         (WebCore::CanvasRenderingContext2D::updateFont):
2112         * html/canvas/CanvasRenderingContext2D.h:
2113
2114 2010-06-28  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
2115
2116         Unreviewed build fix.
2117
2118         [EFL] Build fix for latest version of Ecore library.
2119         Ecore recently changed return type of callbacks from int to Eina_Bool.
2120
2121         No new functionality, so no new tests.
2122
2123         * platform/efl/SharedTimerEfl.cpp:
2124         (WebCore::timerEvent): Return Eina_Bool instead of int.
2125
2126 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2127
2128         Fix build with GTK+ older than 2.18
2129
2130         * platform/gtk/ScrollViewGtk.cpp:
2131         (WebCore::ScrollView::visibleContentRect):
2132
2133 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2134
2135         Reviewed by Adam Barth.
2136
2137         [GTK] Push NULL context on every DOM bindings entry point
2138         https://bugs.webkit.org/show_bug.cgi?id=39967
2139
2140         Update GObject DOM bindings to push the NULL context on every API
2141         entry point, and update bindings test results.
2142
2143         * bindings/scripts/CodeGeneratorGObject.pm:
2144         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
2145         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
2146         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2147
2148 2010-06-28  Martin Robinson  <martin.james.robinson@gmail.com>
2149
2150         Reviewed by Adam Roben.
2151
2152         [WinCairo] Text box backgrounds do not render in partially opaque layers
2153         https://bugs.webkit.org/show_bug.cgi?id=41113
2154
2155         Tests:
2156          manual-tests/partially-opaque-text-input.html
2157
2158         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2159         (WebCore::GraphicsContext::releaseWindowsContext):
2160         When restoring a context which does not support alpha blending, manually
2161         set the alpha channel of the HBITMAP to fully opaque. This will effectively
2162         ignore the alpha channel of the HBITMAP, which is necessary because GDI
2163         drawing functions set the alpha value to be fully transparent (0).
2164
2165 2010-06-28  Martin Robinson  <martin.james.robinson@gmail.com>
2166
2167         Reviewed by Adam Roben.
2168
2169         [WinCairo] Rendering of themed elements on a layer with opacity produces nothing
2170         https://bugs.webkit.org/show_bug.cgi?id=41111
2171
2172         Tests:
2173          manual-tests/partially-opaque-form-elements.html
2174
2175         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2176         (WebCore::GraphicsContext::releaseWindowsContext):
2177         Preform a cairo_save() and a cairo_restore() around code modifying the transformation
2178         matrix of the Cairo surface. Also set the destination coordinates before adjusting
2179         the transformation matrix scale, so that the destination coordinates are not scaled
2180         as well.
2181
2182 2010-06-28  Sam Magnuson  <smagnuson@netflix.com>
2183
2184         Reviewed by Kenneth Rohde Christiansen.
2185
2186         [Qt] GraphicsLayerQt delay seems unnecessary.
2187         https://bugs.webkit.org/show_bug.cgi?id=40846
2188
2189         Test: compositing/animation/busy-indicator.html
2190
2191         * platform/graphics/qt/GraphicsLayerQt.cpp:
2192         (WebCore::GraphicsLayerQtImpl::recache):
2193         (WebCore::GraphicsLayerQtImpl::flushChanges):
2194         (WebCore::GraphicsLayerQt::setContentsToImage):
2195         (WebCore::GraphicsLayerQt::addAnimation):
2196
2197 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2198
2199         Reviewed by Gustavo Noronha.
2200
2201         Until now we were adding the event listeners for a given object in
2202         the wrap method, since that's the first moment we have accoss to
2203         the core WebCore object. The problem is that we only install the
2204         listeners that the topmost class in the class hierarchy needs (eg,
2205         HTMLParagrahElement for a P element), when most of the actual
2206         event attributes are defined in the base classes (Node, Element,
2207         ...).
2208
2209         To fix this set the core object as a construct/write-only property
2210         on the wrapper GObject, and set the eventlisteners in the cGObject
2211         'construct' method, chaining up through all the class hierarchy
2212         until the end. This way we'll get all the eventlisteners defined
2213         in all the superclasses of our object, which is what we want.
2214
2215         * bindings/gobject/WebKitDOMObject.cpp:
2216         (webkit_dom_object_get_property):
2217         (webkit_dom_object_set_property):
2218         (webkit_dom_object_class_init):
2219         * bindings/scripts/CodeGeneratorGObject.pm:
2220         * dom/Node.idl:
2221
2222 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2223
2224         Fix GTK+ build.
2225
2226         * platform/gtk/RenderThemeGtk.cpp:
2227
2228 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2229
2230         Reviewed by Gustavo Noronha.
2231
2232         [GTK] Does not compile with -DGSEAL_ENABLE
2233         https://bugs.webkit.org/show_bug.cgi?id=37851
2234
2235         Fix build with GSEAL enabled.
2236
2237         * GNUmakefile.am:
2238         * platform/gtk/GtkVersioning.h:
2239         * platform/gtk/RenderThemeGtk.cpp:
2240         (WebCore::paintMozillaGtkWidget):
2241         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
2242         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
2243         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
2244         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
2245         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
2246         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
2247         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
2248         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
2249         (WebCore::RenderThemeGtk::systemColor):
2250         * platform/gtk/ScrollViewGtk.cpp:
2251         (WebCore::ScrollView::platformRemoveChild):
2252         (WebCore::ScrollView::visibleContentRect):
2253         * platform/gtk/gtk2drawing.c:
2254         (ensure_toggle_button_widget):
2255         (ensure_combo_box_widgets):
2256         (ensure_combo_box_entry_widgets):
2257         (ensure_tree_header_cell_widget):
2258         (moz_gtk_button_paint):
2259         (moz_gtk_toggle_paint):
2260         (calculate_button_inner_rect):
2261         (calculate_arrow_rect):
2262         (moz_gtk_scrollbar_button_paint):
2263         (moz_gtk_scrollbar_trough_paint):
2264         (moz_gtk_scrollbar_thumb_paint):
2265         (moz_gtk_spin_paint):
2266         (moz_gtk_spin_updown_paint):
2267         (moz_gtk_scale_paint):
2268         (moz_gtk_scale_thumb_paint):
2269         (moz_gtk_gripper_paint):
2270         (moz_gtk_hpaned_paint):
2271         (moz_gtk_vpaned_paint):
2272         (moz_gtk_entry_paint):
2273         (moz_gtk_treeview_paint):
2274         (moz_gtk_tree_header_sort_arrow_paint):
2275         (moz_gtk_treeview_expander_paint):
2276         (moz_gtk_expander_paint):
2277         (moz_gtk_combo_box_paint):
2278         (moz_gtk_downarrow_paint):
2279         (moz_gtk_combo_box_entry_button_paint):
2280         (moz_gtk_container_paint):
2281         (moz_gtk_toggle_label_paint):
2282         (moz_gtk_toolbar_paint):
2283         (moz_gtk_toolbar_separator_paint):
2284         (moz_gtk_tooltip_paint):
2285         (moz_gtk_resizer_paint):
2286         (moz_gtk_frame_paint):
2287         (moz_gtk_progressbar_paint):
2288         (moz_gtk_progress_chunk_paint):
2289         (moz_gtk_get_tab_thickness):
2290         (moz_gtk_tab_paint):
2291         (moz_gtk_tabpanels_paint):
2292         (moz_gtk_tab_scroll_arrow_paint):
2293         (moz_gtk_menu_bar_paint):
2294         (moz_gtk_menu_popup_paint):
2295         (moz_gtk_menu_separator_paint):
2296         (moz_gtk_menu_item_paint):
2297         (moz_gtk_menu_arrow_paint):
2298
2299 2010-06-28  Xan Lopez  <xlopez@igalia.com>
2300
2301         Reviewed by Gustavo Noronha.
2302
2303         [GTK] Add support for GTK+3
2304         https://bugs.webkit.org/show_bug.cgi?id=41253
2305
2306         Adapt build system for 3.x support.
2307
2308         * GNUmakefile.am:
2309
2310 2010-06-28  Yury Semikhatsky  <yurys@chromium.org>
2311
2312         Reviewed by Pavel Feldman.
2313
2314         [v8] Web Inspector: properties of scope variables are flattened while on a breakpoint.
2315         https://bugs.webkit.org/show_bug.cgi?id=41214
2316
2317         Test: inspector/debugger-proto-property.html
2318
2319         * inspector/front-end/InjectedScript.js:
2320         (injectedScriptConstructor): object proxy with non-empty path cannot be scope proxy.
2321
2322 2010-06-28  MORITA Hajime  <morrita@google.com>
2323
2324         Unreviewed attempt to fix windows build.
2325
2326         * page/DOMWindow.idl:
2327
2328 2010-06-22  MORITA Hajime  <morrita@google.com>
2329
2330         Reviewed by Kent Tamura.
2331
2332         <progress> should be styled with -webkit-progress-bar-value
2333         https://bugs.webkit.org/show_bug.cgi?id=40823
2334
2335         Fixed to peek styles of the shadow node pseudo class to fallback
2336         to non-styled painting.
2337         
2338         * css/html.css: 
2339         (progress): Added defaul background-color.
2340         (progress::-webkit-progress-bar-value): Added defaul background-color.
2341         * rendering/RenderProgress.cpp:
2342         (WebCore::RenderProgress::shouldHaveParts):
2343         (WebCore::RenderProgress::updatePartsState):
2344
2345         Test: fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html
2346         
2347 2010-06-28  Csaba Osztrogonác  <ossy@webkit.org>
2348
2349         Reviewed by Kent Tamura.
2350
2351         GCC suggest parentheses around && within ||
2352         https://bugs.webkit.org/show_bug.cgi?id=41245
2353
2354         * rendering/RenderBlock.cpp:
2355         (WebCore::RenderBlock::paintChildren):
2356
2357 2010-06-28  Adam Barth  <abarth@webkit.org>
2358
2359         Reviewed by Eric Seidel.
2360
2361         Don't dump contents of <script> elements in LayoutTests
2362         https://bugs.webkit.org/show_bug.cgi?id=41277
2363
2364         Apparently we need to tell each element when we start and stop parsing
2365         its children.  If we don't do this, we see the contents of every script
2366         and style element in dumpAsText LayoutTests.  (This patch is *well*
2367         covered by LayoutTests.)
2368
2369         * html/HTMLTreeBuilder.h:
2370         (WebCore::HTMLTreeBuilder::ElementStack::pop):
2371         (WebCore::HTMLTreeBuilder::ElementStack::push):
2372
2373 2010-06-28  Eric Seidel  <eric@webkit.org>
2374
2375         Reviewed by Adam Barth.
2376
2377         Make it possible to test the new HTML5 TreeBuilder
2378         https://bugs.webkit.org/show_bug.cgi?id=41276
2379
2380         Adam was concerned that someone might make their port
2381         depend on this setting (I guess we had some trouble with that
2382         with the HTML5Parser setting), so I littered the code with warnings.
2383
2384         test-html5-parser now tests this code path.
2385
2386         * html/HTMLTreeBuilder.cpp:
2387         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2388         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
2389         (WebCore::HTMLTreeBuilder::finished):
2390         * page/Settings.cpp:
2391         (WebCore::Settings::Settings):
2392         * page/Settings.h:
2393         (WebCore::Settings::setHTML5TreeBuilderEnabled_DO_NOT_USE):
2394         (WebCore::Settings::html5TreeBuilderEnabled):
2395
2396 2010-06-28  Adam Barth  <abarth@webkit.org>
2397
2398         Reviewed by Eric Seidel.
2399
2400         Make the html5lib runner.html not assert
2401         https://bugs.webkit.org/show_bug.cgi?id=41273
2402
2403         This patch gets us closer to being able to run the parser tests.  We
2404         still don't get parsing correct, but at least we don't assert.  :)
2405
2406         * html/HTMLTreeBuilder.cpp:
2407         (WebCore::HTMLTreeBuilder::processStartTag):
2408         (WebCore::HTMLTreeBuilder::processComment):
2409         (WebCore::HTMLTreeBuilder::insertCommentOnDocument):
2410         * html/HTMLTreeBuilder.h:
2411
2412 2010-06-28  Eric Seidel  <eric@webkit.org>
2413
2414         Unreviewed.  Attempt to fix Chromium and Qt builders.
2415
2416         Add a new baseclass for XML, HTML and Text DocumentParsers to clean up DocumentParser call sites
2417         https://bugs.webkit.org/show_bug.cgi?id=41141
2418
2419         No functional changes, thus no tests.
2420
2421         * bindings/v8/ScriptController.cpp:
2422         (WebCore::ScriptController::eventHandlerLineNumber):
2423         (WebCore::ScriptController::eventHandlerColumnNumber):
2424         * dom/XMLDocumentParserQt.cpp:
2425         (WebCore::XMLDocumentParser::XMLDocumentParser):
2426         (WebCore::XMLDocumentParser::stopParsing):
2427
2428 2010-06-28  Adam Barth  <abarth@webkit.org>
2429
2430         Reviewed by Eric Seidel.
2431
2432         Add support for parsing attributes
2433         https://bugs.webkit.org/show_bug.cgi?id=41272
2434
2435         This patch lets use parse the following document:
2436
2437         <script src="data:text/javascript,alert('PASS')"></script>
2438
2439         * html/HTMLTreeBuilder.cpp:
2440         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
2441         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
2442         (WebCore::HTMLTreeBuilder::insertScriptElement):
2443         (WebCore::HTMLTreeBuilder::createElement):
2444
2445 2010-06-28  Eric Seidel  <eric@webkit.org>
2446
2447         Reviewed by Darin Adler.
2448
2449         Add a new baseclass for XML, HTML and Text DocumentParsers to clean up DocumentParser call sites
2450         https://bugs.webkit.org/show_bug.cgi?id=41141
2451
2452         By splitting ScriptableDocumentParser and DecodedDataDocumentParser
2453         out from DocumentParser we've made the DocumentParser and
2454         RawDataDocumentParser classes simpler.
2455
2456         No functional change, thus no tests.
2457
2458         * Android.mk:
2459         * CMakeLists.txt:
2460         * GNUmakefile.am:
2461         * WebCore.gypi:
2462         * WebCore.pro:
2463         * WebCore.vcproj/WebCore.vcproj:
2464         * WebCore.xcodeproj/project.pbxproj:
2465         * bindings/js/ScriptController.cpp:
2466         (WebCore::ScriptController::eventHandlerLineNumber):
2467         * css/CSSStyleSheet.cpp:
2468         (WebCore::CSSStyleSheet::checkLoaded):
2469         * dom/Document.cpp:
2470         (WebCore::Document::scriptableDocumentParser):
2471         (WebCore::Document::open):
2472         (WebCore::Document::implicitOpen):
2473         (WebCore::Document::implicitClose):
2474         (WebCore::Document::removePendingSheet):
2475         * dom/Document.h:
2476         (WebCore::Document::parser):
2477         * dom/DocumentParser.cpp:
2478         (WebCore::DocumentParser::DocumentParser):
2479         * dom/DocumentParser.h:
2480         (WebCore::DocumentParser::asScriptableDocumentParser):
2481         * dom/RawDataDocumentParser.h:
2482         (WebCore::RawDataDocumentParser::finishWasCalled):
2483         * dom/ScriptableDocumentParser.cpp: Copied from WebCore/html/HTMLEntityParser.h.
2484         (WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
2485         * dom/ScriptableDocumentParser.h: Added.
2486         (WebCore::ScriptableDocumentParser::isExecutingScript):
2487         (WebCore::ScriptableDocumentParser::executeScriptsWaitingForStylesheets):
2488         (WebCore::ScriptableDocumentParser::xssAuditor):
2489         (WebCore::ScriptableDocumentParser::setXSSAuditor):
2490         (WebCore::ScriptableDocumentParser::processingContentWrittenByScript):
2491         (WebCore::ScriptableDocumentParser::asScriptableDocumentParser):
2492         * dom/ViewportArguments.cpp:
2493         (WebCore::parserLineNumber):
2494         (WebCore::reportViewportWarning):
2495         * dom/XMLDocumentParser.h:
2496         * dom/XMLDocumentParserLibxml2.cpp:
2497         (WebCore::XMLDocumentParser::XMLDocumentParser):
2498         * html/HTMLDocumentParser.cpp:
2499         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
2500         (WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc):
2501         * html/HTMLDocumentParser.h:
2502         * html/LegacyHTMLDocumentParser.cpp:
2503         (WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser):
2504         (WebCore::LegacyHTMLDocumentParser::parseTag):
2505         * html/LegacyHTMLDocumentParser.h:
2506         (WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript):
2507         * html/LegacyHTMLTreeBuilder.cpp:
2508         (WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole):
2509         * loader/DocumentLoader.cpp:
2510         * loader/DocumentWriter.cpp:
2511         * loader/TextDocument.cpp:
2512         (WebCore::TextDocumentParser::TextDocumentParser):
2513         (WebCore::TextDocumentParser::finish):
2514         * svg/SVGDocumentExtensions.cpp:
2515         (WebCore::parserLineNumber):
2516         (WebCore::reportMessage):
2517         (WebCore::SVGDocumentExtensions::reportWarning):
2518         (WebCore::SVGDocumentExtensions::reportError):
2519
2520 2010-06-27  Steve Falkenburg  <sfalken@apple.com>
2521
2522         Reviewed by Mark Rowe.
2523
2524         WebKit2 build exceeds address space on 32-bit Windows builders
2525         https://bugs.webkit.org/show_bug.cgi?id=41270
2526
2527         Add all-in-one file for render-related SVG files.
2528         Clean up other all-in-one files by adding missing files, excluding matching files from the vcproj.
2529         Reduces release WebCore.lib size by 10% (160MB).
2530
2531         * DerivedSources.cpp:
2532         * WebCore.vcproj/WebCore.vcproj:
2533         * bindings/js/JSBindingsAllInOne.cpp:
2534         * html/HTMLElementsAllInOne.cpp:
2535         * rendering/RenderSVGAllInOne.cpp: Added.
2536
2537 2010-06-27  Adam Barth  <abarth@webkit.org>
2538
2539         Reviewed by Eric Seidel.
2540
2541         Sketch out the InBodyMode for the tree builder
2542         https://bugs.webkit.org/show_bug.cgi?id=41271
2543
2544         This gives us some basic behavior for the InBodyMode.  I've implemented
2545         some of the easier logic.  The more complicated logic will be in
2546         subsequent patches.
2547
2548         * html/HTMLTreeBuilder.cpp:
2549         (WebCore::HTMLTreeBuilder::processStartTag):
2550         (WebCore::HTMLTreeBuilder::processEndTag):
2551         (WebCore::HTMLTreeBuilder::insertFormatingElement):
2552         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
2553         * html/HTMLTreeBuilder.h:
2554
2555 2010-06-25  Yuzo Fujishima  <yuzo@google.com>
2556
2557         Reviewed by Shinichiro Hamaji.
2558
2559         Improve default value handling for page format properties.
2560
2561         Default page size and orientation have been hard-coded.
2562         Instead, pass default page size and margins to
2563         WebCore::Document::pageSizeAndMarginsInPixels to handle auto page size
2564         and margins specified as percentages.
2565         Return margins instead of page rect.
2566
2567         https://bugs.webkit.org/show_bug.cgi?id=41150
2568
2569         * WebCore.base.exp:
2570         * css/CSSStyleSelector.cpp:
2571         (WebCore::CSSStyleSelector::applyPageSizeProperty):
2572         (WebCore::CSSStyleSelector::pageSizeFromName):
2573         * css/html.css:
2574         (@page):
2575         * dom/Document.cpp:
2576         (WebCore::Document::pageSizeAndMarginsInPixels):
2577         * dom/Document.h:
2578         * page/PrintContext.cpp:
2579         (WebCore::PrintContext::pageProperty):
2580         (WebCore::PrintContext::pageSizeAndMarginsInPixels):
2581         * page/PrintContext.h:
2582         * rendering/style/RenderStyle.h:
2583         (WebCore::InheritedFlags::pageSizeType):
2584         (WebCore::InheritedFlags::setPageSizeType):
2585         (WebCore::InheritedFlags::resetPageSizeType):
2586         * rendering/style/StyleRareNonInheritedData.cpp:
2587         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2588         (WebCore::StyleRareNonInheritedData::operator==):
2589         * rendering/style/StyleRareNonInheritedData.h:
2590         (WebCore::):
2591
2592 2010-06-27  Adam Barth  <abarth@webkit.org>
2593
2594         Reviewed by Eric Seidel.
2595
2596         Clean up some loose ends in HTML5 tree builder
2597         https://bugs.webkit.org/show_bug.cgi?id=41265
2598
2599         This patch cleans up a few loose ends in HTML5 tree builder.
2600         Technically, we could do each of these as individual patches, but that
2601         didn't seem worth while.
2602
2603         * html/HTMLTreeBuilder.cpp:
2604         (WebCore::HTMLTreeBuilder::processStartTag):
2605             - Add missing break before default case statement.  I don't think
2606               this change is observable.
2607         (WebCore::HTMLTreeBuilder::processComment):
2608             - Originally I thought that comments had special processing in the
2609               InHeadNoscriptMode, but it turns out that when you unwind the
2610               definitions, it amounts to exactly the same thing.
2611         (WebCore::HTMLTreeBuilder::processEndOfFile):
2612             - Add missing break before default case statement.  I don't think
2613               this change is observable.
2614         (WebCore::HTMLTreeBuilder::insertComment):
2615             - Eliminate one unnecessary ref/deref pair.
2616         (WebCore::HTMLTreeBuilder::insertSelfClosingElement):
2617             - When we insert self-closing elements, there's no reason to push
2618               them onto the stack of open elements just to pop them off again.
2619               This change saves a malloc/free pair as well as a ref/deref pair.
2620               Go team.
2621         * html/HTMLTreeBuilder.h:
2622             - Remove unused function.
2623
2624 2010-06-27  Adam Barth  <abarth@webkit.org>
2625
2626         Reviewed by Eric Seidel.
2627
2628         Implement remaining StartTag processing for InHeadNoscriptMode
2629         https://bugs.webkit.org/show_bug.cgi?id=41264
2630
2631         The InHeadNoscriptMode processes some start tags "as if" the tree
2632         builder were in the InHeadMode.  This is an idiom we'll see more of
2633         later.  My approach is this patch is to factor all the logic for
2634         processing start tags in the InHeadMode into a separate function that
2635         can be called from both locations.  This seems cleaner than just
2636         splitting out the parts that are actually used by both modes.
2637
2638         * html/HTMLTreeBuilder.cpp:
2639         (WebCore::HTMLTreeBuilder::processStartTag):
2640         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
2641         (WebCore::HTMLTreeBuilder::insertSelfClosingElement):
2642         * html/HTMLTreeBuilder.h:
2643
2644 2010-06-27  Adam Barth  <abarth@webkit.org>
2645
2646         Reviewed by Eric Seidel.
2647
2648         Add support for <title> and <style> elements
2649         https://bugs.webkit.org/show_bug.cgi?id=41263
2650
2651         These elements use the generic RCDATA and RawText algorithms,
2652         respectively.
2653
2654         * html/HTMLTreeBuilder.cpp:
2655         (WebCore::HTMLTreeBuilder::processEndTag):
2656         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
2657         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
2658
2659 2010-06-27  Adam Barth  <abarth@webkit.org>
2660
2661         Reviewed by Eric Seidel.
2662
2663         Actually insert Doctype elements
2664         https://bugs.webkit.org/show_bug.cgi?id=41262
2665
2666         This code is pretty much the same as in the old tree builder.
2667
2668         * html/HTMLToken.h:
2669         (WebCore::AtomicHTMLToken::publicIdentifier):
2670         (WebCore::AtomicHTMLToken::systemIdentifier):
2671         * html/HTMLTreeBuilder.cpp:
2672         (WebCore::HTMLTreeBuilder::insertDoctype):
2673
2674 2010-06-27  Andreas Kling  <andreas.kling@nokia.com>
2675
2676         Reviewed by Darin Adler.
2677
2678         Canvas: Ignore calls to drawImage() with non-finite parameters
2679         https://bugs.webkit.org/show_bug.cgi?id=38929
2680
2681         This also fixes a Qt assert when using the raster graphics system.
2682
2683         Spec link:
2684         http://www.whatwg.org/specs/web-apps/current-work/#2dcontext
2685
2686         * html/canvas/CanvasRenderingContext2D.cpp:
2687         (WebCore::CanvasRenderingContext2D::drawImage):
2688
2689 2010-06-27  Andreas Kling  <andreas.kling@nokia.com>
2690
2691         Reviewed by Kenneth Rohde Christiansen.
2692
2693         editing/execCommand/copy-without-selection.html fails on Qt after r61637
2694         https://bugs.webkit.org/show_bug.cgi?id=41025
2695
2696         The problem was that when getting data back via Clipboard::getData(),
2697         the String::String(const char*, int) constructor was called
2698         with UTF-16 data.
2699
2700         The solution is to use QMimeData's text() and setText() for "text/plain".
2701
2702         setText() which makes sure Qt passes the string in proper format to the
2703         system clipboard. (The previous implementation would convert it to UTF-8)
2704
2705         text() makes sure that the correct encoding is used (UTF-16) and that
2706         we get back whatever we originally put in there.
2707
2708         * platform/qt/ClipboardQt.cpp:
2709         (WebCore::isTextMimeType):
2710         (WebCore::ClipboardQt::getData):
2711         (WebCore::ClipboardQt::setData):
2712
2713 2010-06-27  Adam Barth  <abarth@webkit.org>
2714
2715         Reviewed by Eric Seidel.
2716
2717         HTML5 tree builder should be able to execute inline scripts
2718         https://bugs.webkit.org/show_bug.cgi?id=41257
2719
2720         This patch implements enough machinery so that we can execute inline
2721         scripts in extremely simple documents such as the following:
2722
2723         <html>
2724         <script>
2725         alert(1);
2726         </script>
2727
2728         To get this to work, I had to flesh out a surprising amount of the data
2729         structures for processing the <head>.  No tests because this is
2730         already covered by most LayoutTests.
2731
2732         * html/HTMLTreeBuilder.cpp:
2733         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2734         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
2735         (WebCore::HTMLTreeBuilder::processStartTag):
2736         (WebCore::HTMLTreeBuilder::processEndTag):
2737         (WebCore::HTMLTreeBuilder::processCharacter):
2738         (WebCore::HTMLTreeBuilder::insertComment):
2739         (WebCore::HTMLTreeBuilder::insertElement):
2740         (WebCore::HTMLTreeBuilder::insertScriptElement):
2741         * html/HTMLTreeBuilder.h:
2742         (WebCore::HTMLTreeBuilder::ElementRecord::ElementRecord):
2743         (WebCore::HTMLTreeBuilder::ElementRecord::element):
2744         (WebCore::HTMLTreeBuilder::ElementRecord::next):
2745         (WebCore::HTMLTreeBuilder::ElementRecord::releaseNext):
2746         (WebCore::HTMLTreeBuilder::ElementRecord::setNext):
2747         (WebCore::HTMLTreeBuilder::ElementStack::pop):
2748         (WebCore::HTMLTreeBuilder::ElementStack::push):
2749         (WebCore::HTMLTreeBuilder::ElementStack::top):
2750         (WebCore::HTMLTreeBuilder::ElementStack::remove):
2751         (WebCore::HTMLTreeBuilder::currentElement):
2752
2753 2010-06-26  Brady Eidson  <beidson@apple.com>
2754
2755         Reviewed by Darin Adler.
2756
2757         beforeProcess event needs to fire before inline scripts/stylesheets take effect
2758         <rdar://problem/8084335> and https://bugs.webkit.org/show_bug.cgi?id=40484
2759
2760         This patch adds the Event, the onBeforeProcess attribute, and hooks the attribute up in a few places.
2761         Besides that, no change in behavior.
2762
2763         Layout tests will come with the actual implementations as a followup to this patch.
2764
2765         Project file nonsense:
2766         * DerivedSources.make:
2767         * GNUmakefile.am:
2768         * WebCore.gypi:
2769         * WebCore.pri:
2770         * WebCore.pro:
2771         * WebCore.vcproj/WebCore.vcproj:
2772         * WebCore.xcodeproj/project.pbxproj:
2773
2774         Scaffolding for the event itself:
2775         * dom/BeforeProcessEvent.cpp: Added.
2776         (WebCore::BeforeProcessEvent::text):
2777         (WebCore::BeforeProcessEvent::setText):
2778         * dom/BeforeProcessEvent.h: Added.
2779         (WebCore::BeforeProcessEvent::create):
2780         (WebCore::BeforeProcessEvent::initBeforeProcessEvent):
2781         (WebCore::BeforeProcessEvent::BeforeProcessEvent):
2782         * dom/BeforeProcessEvent.idl: Added.
2783
2784         * dom/EventNames.h:
2785
2786         Respect the onBeforeProcess attribute:
2787         * dom/Document.cpp:
2788         (WebCore::Document::addListenerTypeIfNeeded):
2789         * dom/Document.h:
2790         (WebCore::Document::):
2791
2792         * html/HTMLAttributeNames.in:
2793         * html/HTMLScriptElement.cpp:
2794         (WebCore::HTMLScriptElement::parseMappedAttribute):
2795         * html/HTMLStyleElement.cpp:
2796         (WebCore::HTMLStyleElement::parseMappedAttribute):
2797
2798 2010-06-26  Darin Adler  <darin@apple.com>
2799
2800         Try to fix Chromium build by adding back function used only by Chromium WebKit.
2801
2802         * html/HTMLInputElement.cpp:
2803         (WebCore::HTMLInputElement::defaultChecked): Added back.
2804         * html/HTMLInputElement.h: Added defaultChecked function.
2805
2806         * html/HTMLMetaElement.cpp:
2807         (WebCore::HTMLMetaElement::httpEquiv): Added back.
2808         * html/HTMLMetaElement.h: Added httpEquiv function.
2809
2810         * html/HTMLOptionElement.cpp:
2811         (WebCore::HTMLOptionElement::defaultSelected): Added back.
2812         * html/HTMLOptionElement.h: Added defaultSelected function.
2813
2814         * rendering/style/StyleRareNonInheritedData.h: Fixed incorrect struct vs. class
2815         here as seen in warnings on Chromium Windows bot.
2816
2817 2010-06-26  Darin Adler  <darin@apple.com>
2818
2819         Try to fix Windows build by adding back function used only by Windows WebKit.
2820
2821         * html/HTMLOptionElement.cpp:
2822         (WebCore::HTMLOptionElement::label): Added back.
2823         * html/HTMLOptionElement.h: Added label function.
2824
2825 2010-06-26  Darin Adler  <darin@apple.com>
2826
2827         Try to fix Qt build by adding back function used only by Qt WebKit.
2828
2829         * html/HTMLMetaElement.cpp:
2830         (WebCore::HTMLMetaElement::content): Added back.
2831         * html/HTMLMetaElement.h: Added content function.
2832
2833 2010-06-26  Darin Adler  <darin@apple.com>
2834
2835         * html/HTMLFormElement.h: Removed stray character that got in here before landing.
2836
2837 2010-06-26  Darin Adler  <darin@apple.com>
2838
2839         Reviewed by Sam Weinig.
2840
2841         Add more use of reflection, remove unused functions
2842         https://bugs.webkit.org/show_bug.cgi?id=41255
2843
2844         Also noticed that HTMLDirectoryElement was missing its create function
2845         and added that so the element will get the correct class.
2846
2847         * html/HTMLBaseFontElement.idl: Use reflection for the size attribute
2848         in the Objective-C code path too.
2849
2850         * html/HTMLSelectElement.idl: Use reflection for disabled and autofocus
2851         attributes. Also removed spaces and indenting to match other IDL files.
2852
2853         * html/HTMLStyleElement.idl: Use reflection for disabled attribute.
2854
2855         * html/HTMLTableCellElement.idl: Use reflection for noWrap attribute.
2856
2857         * html/HTMLTextAreaElement.idl: Use reflection for disabled, autofocus,
2858         readOnly, and required attributes.
2859
2860         * html/HTMLUListElement.idl: Use reflection for compact attribute.
2861
2862         * html/HTMLDirectoryElement.cpp:
2863         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement): Made inline.
2864         (WebCore::HTMLDirectoryElement::create): Added.
2865         * html/HTMLDirectoryElement.h:
2866         Added create, made constructor private, removed unused functions.
2867
2868         * html/HTMLStyleElement.cpp:
2869         (WebCore::HTMLStyleElement::parseMappedAttribute): Removed code to
2870         set unused m_media data member.
2871         * html/HTMLStyleElement.h:
2872         Removed unused functions and m_media data member. Also made some
2873         functions private.
2874
2875         * html/HTMLAppletElement.cpp:
2876         * html/HTMLAppletElement.h:
2877         * html/HTMLAreaElement.cpp:
2878         * html/HTMLAreaElement.h:
2879         * html/HTMLBaseFontElement.cpp:
2880         * html/HTMLBaseFontElement.h:
2881         * html/HTMLButtonElement.cpp:
2882         * html/HTMLButtonElement.h:
2883         * html/HTMLDListElement.cpp:
2884         * html/HTMLDListElement.h:
2885         * html/HTMLDivElement.cpp:
2886         * html/HTMLDivElement.h:
2887         * html/HTMLFontElement.cpp:
2888         * html/HTMLFontElement.h:
2889         * html/HTMLFormControlElement.cpp:
2890         * html/HTMLFormControlElement.h:
2891         * html/HTMLFormElement.cpp:
2892         * html/HTMLFormElement.h:
2893         * html/HTMLFrameElement.cpp: Also removed an incorrect FIXME comment
2894         here after I did a little research to disprove it.
2895         * html/HTMLFrameElement.h:
2896         * html/HTMLFrameSetElement.cpp:
2897         * html/HTMLFrameSetElement.h:
2898         * html/HTMLHRElement.cpp:
2899         * html/HTMLHRElement.h:
2900         * html/HTMLHeadElement.cpp:
2901         * html/HTMLHeadElement.h:
2902         * html/HTMLHeadingElement.cpp:
2903         * html/HTMLHeadingElement.h:
2904         * html/HTMLHtmlElement.cpp:
2905         * html/HTMLHtmlElement.h:
2906         * html/HTMLImageElement.cpp:
2907         * html/HTMLImageElement.h:
2908         * html/HTMLInputElement.cpp:
2909         * html/HTMLInputElement.h:
2910         * html/HTMLIsIndexElement.cpp:
2911         * html/HTMLIsIndexElement.h:
2912         * html/HTMLLIElement.cpp:
2913         * html/HTMLLIElement.h:
2914         * html/HTMLLabelElement.cpp:
2915         * html/HTMLLabelElement.h:
2916         * html/HTMLLegendElement.cpp:
2917         * html/HTMLLegendElement.h:
2918         * html/HTMLLinkElement.cpp:
2919         * html/HTMLLinkElement.h:
2920         * html/HTMLMapElement.cpp:
2921         * html/HTMLMapElement.h:
2922         * html/HTMLMenuElement.cpp:
2923         * html/HTMLMenuElement.h:
2924         * html/HTMLMetaElement.cpp:
2925         * html/HTMLMetaElement.h:
2926         * html/HTMLModElement.cpp:
2927         * html/HTMLModElement.h:
2928         * html/HTMLOListElement.cpp:
2929         * html/HTMLOListElement.h:
2930         * html/HTMLObjectElement.cpp:
2931         * html/HTMLObjectElement.h:
2932         * html/HTMLOptGroupElement.cpp:
2933         * html/HTMLOptGroupElement.h:
2934         * html/HTMLOptionElement.cpp:
2935         * html/HTMLOptionElement.h:
2936         * html/HTMLParagraphElement.cpp:
2937         * html/HTMLParagraphElement.h:
2938         * html/HTMLParamElement.cpp:
2939         * html/HTMLParamElement.h:
2940         * html/HTMLPlugInElement.cpp:
2941         * html/HTMLPlugInElement.h:
2942         * html/HTMLPreElement.cpp:
2943         * html/HTMLPreElement.h:
2944         * html/HTMLQuoteElement.cpp:
2945         * html/HTMLQuoteElement.h:
2946         * html/HTMLScriptElement.cpp:
2947         * html/HTMLScriptElement.h:
2948         * html/HTMLTableCaptionElement.cpp:
2949         * html/HTMLTableCaptionElement.h:
2950         * html/HTMLTableCellElement.cpp:
2951         * html/HTMLTableCellElement.h:
2952         * html/HTMLTableColElement.cpp:
2953         * html/HTMLTableColElement.h:
2954         * html/HTMLTableElement.cpp:
2955         * html/HTMLTableElement.h:
2956         * html/HTMLTableRowElement.cpp:
2957         * html/HTMLTableRowElement.h:
2958         * html/HTMLTextAreaElement.cpp:
2959         * html/HTMLTextAreaElement.h:
2960         * html/HTMLUListElement.cpp:
2961         * html/HTMLUListElement.h:
2962         * html/HTMLVideoElement.cpp:
2963         * html/HTMLVideoElement.h:
2964         Removed unused functions.
2965
2966 2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
2967
2968         Reviewed by Adam Barth.
2969
2970         Exclude line numbers for sources which are not from the network.
2971         https://bugs.webkit.org/show_bug.cgi?id=41060
2972
2973         * html/HTMLDocumentParser.cpp:
2974         (WebCore::HTMLDocumentParser::write):
2975
2976 2010-06-25  Antonio Gomes  <tonikitoo@webkit.org>
2977
2978         Unreviewed complementary fix for r61818. It added StaticHashSetListNode.cpp|h to the system,
2979         but did not added it to chromium build system.
2980
2981         * WebCore.gypi:
2982
2983 2010-06-26  Pavel Feldman  <pfeldman@chromium.org>
2984
2985         Reviewed by Yury Semikhatsky.
2986
2987         Web Inspector: ScripsPanel.prototype.editScriptSource uses old addBreakpoint signature.
2988
2989         https://bugs.webkit.org/show_bug.cgi?id=41247
2990
2991         * inspector/front-end/BreakpointManager.js:
2992         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
2993         (WebInspector.Breakpoint.prototype.set enabled):
2994         (WebInspector.Breakpoint.prototype.set condition):
2995         * inspector/front-end/Object.js:
2996         (WebInspector.Object.prototype.addEventListener):
2997         (WebInspector.Object.prototype.removeEventListener):
2998         (WebInspector.Object.prototype.removeAllListeners):
2999         * inspector/front-end/ScriptsPanel.js:
3000         (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
3001         (WebInspector.ScriptsPanel.prototype.editScriptSource):
3002
3003 2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
3004
3005         Reviewed by Dimitri Glazkov.
3006
3007         Add a guarded window.performance.timing binding which is disabled by default.
3008         https://bugs.webkit.org/show_bug.cgi?id=38924
3009
3010         This is where Web Timing support will be implemented. Web Timing is a
3011         draft spec for exposing load times to web pages. It will be enabled
3012         once the spec and implementaiton are solidified. See:
3013         http://dev.w3.org/2006/webapi/WebTiming/
3014
3015         No new tests because guarded behind a #DEFINE. Will add tests as
3016         functionality is landed.
3017
3018         * Android.mk:
3019         * CMakeLists.txt:
3020         * Configurations/FeatureDefines.xcconfig:
3021         * DerivedSources.cpp:
3022         * DerivedSources.make:
3023         * GNUmakefile.am:
3024         * WebCore.gypi:
3025         * WebCore.pri:
3026         * WebCore.pro:
3027         * WebCore.vcproj/WebCore.vcproj:
3028         * WebCore.xcodeproj/project.pbxproj:
3029         * page/DOMWindow.cpp:
3030         (WebCore::DOMWindow::clear):
3031         (WebCore::DOMWindow::performance):
3032         * page/DOMWindow.h:
3033         (WebCore::DOMWindow::optionalPerformance):
3034         * page/DOMWindow.idl:
3035         * page/NavigationTiming.cpp: Added.
3036         (WebCore::NavigationTiming::NavigationTiming):
3037         (WebCore::NavigationTiming::frame):
3038         (WebCore::NavigationTiming::disconnectFrame):
3039         (WebCore::NavigationTiming::navigationStart):
3040         * page/NavigationTiming.h: Added.
3041         (WebCore::NavigationTiming::create):
3042         * page/NavigationTiming.idl: Added.
3043         * page/Performance.cpp: Added.
3044         (WebCore::Performance::Performance):
3045         (WebCore::Performance::frame):
3046         (WebCore::Performance::disconnectFrame):
3047         (WebCore::Performance::timing):
3048         * page/Performance.h: Added.
3049         (WebCore::Performance::create):
3050         * page/Performance.idl: Added.
3051
3052 2010-06-25  Zhenyao Mo  <zmo@google.com>
3053
3054         Reviewed by Dimitri Glazkov.
3055
3056         activeTexture wrongly generates error with legal input.
3057         https://bugs.webkit.org/show_bug.cgi?id=41227
3058
3059         Test: fast/canvas/webgl/texture-active-bind.html
3060
3061         * html/canvas/WebGLRenderingContext.cpp:
3062         (WebCore::WebGLRenderingContext::activeTexture): Fix the upper limit test for test units.
3063
3064 2010-06-25  Johnny Ding  <jnd@chromium.org>
3065
3066         Reviewed by Adam Barth.
3067
3068         https://bugs.webkit.org/show_bug.cgi?id=41061
3069         Make sure Chromium's ScriptController::processingUserGesture follows the JSC's behavior.
3070         Set right value in UserGestureIndicator when handling events in PopupMenuList in chromium.
3071
3072         Test: fast/events/popup-when-select-change.html
3073
3074         * bindings/v8/ScriptController.cpp:
3075         (WebCore::ScriptController::processingUserGesture):
3076         * platform/chromium/PopupMenuChromium.cpp:
3077         (WebCore::PopupContainer::handleMouseDownEvent):
3078         (WebCore::PopupContainer::handleMouseMoveEvent):
3079         (WebCore::PopupContainer::handleMouseReleaseEvent):
3080         (WebCore::PopupContainer::handleWheelEvent):
3081         (WebCore::PopupContainer::handleKeyEvent):
3082
3083 2010-06-25  Tony Gentilcore  <tonyg@chromium.org>
3084
3085         Reviewed by Eric Seidel.
3086
3087         Make PendingScript hold a CachedResourceClient open for its lifetime
3088         https://bugs.webkit.org/show_bug.cgi?id=40968
3089
3090         This replaces the mechanism introduced in r61374 with a simpler
3091         appraoch for preventing unexpected purges: always keep a client open.
3092         This approach will allow deferred scripts to add a client after
3093         the resource may have already been loaded without having to worry about
3094         the buffer being purged in the meantime.
3095
3096         No new tests because making a CachedResource purse itself is not
3097         testable from a LayoutTest.
3098
3099         * html/HTMLDocumentParser.cpp:
3100         (WebCore::HTMLDocumentParser::watchForLoad):
3101         (WebCore::HTMLDocumentParser::notifyFinished):
3102         * html/HTMLScriptRunner.cpp:
3103         (WebCore::HTMLScriptRunner::~HTMLScriptRunner):
3104         (WebCore::HTMLScriptRunner::sourceFromPendingScript):
3105         (WebCore::HTMLScriptRunner::isPendingScriptReady):
3106         (WebCore::HTMLScriptRunner::executePendingScript):
3107         (WebCore::HTMLScriptRunner::watchForLoad):
3108         (WebCore::HTMLScriptRunner::stopWatchingForLoad):
3109         (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
3110         (WebCore::HTMLScriptRunner::requestScript):
3111         (WebCore::HTMLScriptRunner::PendingScript::~PendingScript):
3112         (WebCore::HTMLScriptRunner::PendingScript::releaseElementAndClear):
3113         (WebCore::HTMLScriptRunner::PendingScript::setCachedScript):
3114         (WebCore::HTMLScriptRunner::PendingScript::cachedScript):
3115         * html/HTMLScriptRunner.h:
3116         (WebCore::HTMLScriptRunner::PendingScript::PendingScript):
3117         (WebCore::HTMLScriptRunner::PendingScript::watchingForLoad):
3118         (WebCore::HTMLScriptRunner::PendingScript::setWatchingForLoad):
3119         (WebCore::HTMLScriptRunner::PendingScript::notifyFinished):
3120         * html/HTMLScriptRunnerHost.h:
3121
3122 2010-06-25  Zhenyao Mo  <zmo@google.com>
3123
3124         Reviewed by Dimitri Glazkov.
3125
3126         getUniform will not work for fetching uniform array elements
3127         https://bugs.webkit.org/show_bug.cgi?id=34508
3128
3129         Test: fast/canvas/webgl/gl-uniform-arrays.html
3130
3131         * html/canvas/WebGLRenderingContext.cpp:
3132         (WebCore::WebGLRenderingContext::attachShader): Generate correct errors.
3133         (WebCore::WebGLRenderingContext::getUniform): Dealing with array elements.
3134         (WebCore::WebGLRenderingContext::useProgram): Deal with program==null.
3135         (WebCore::WebGLRenderingContext::validateProgram): Generate correct errors.
3136         * platform/graphics/mac/GraphicsContext3DMac.mm:
3137         (WebCore::GraphicsContext3D::useProgram): Deal with program==null.
3138
3139 2010-06-25  Zhenyao Mo  <zmo@google.com>
3140
3141         Reviewed by Dimitri Glazkov.
3142
3143         Bring set/get state functions to GLES2 conformance
3144         https://bugs.webkit.org/show_bug.cgi?id=41095
3145
3146         Tests: fast/canvas/webgl/gl-enable-enum-test.html
3147                fast/canvas/webgl/gl-enum-tests.html
3148
3149         * html/canvas/WebGLRenderingContext.cpp: Check input parameters according to GLES2 spec.
3150         (WebCore::WebGLRenderingContext::blendEquation):
3151         (WebCore::WebGLRenderingContext::blendEquationSeparate):
3152         (WebCore::WebGLRenderingContext::disable):
3153         (WebCore::WebGLRenderingContext::enable):
3154         (WebCore::WebGLRenderingContext::hint):
3155         (WebCore::WebGLRenderingContext::isEnabled):
3156         (WebCore::WebGLRenderingContext::pixelStorei):
3157         (WebCore::WebGLRenderingContext::validateBlendEquation):
3158         (WebCore::WebGLRenderingContext::validateCapability):
3159         * html/canvas/WebGLRenderingContext.h: Add helper function declaration.
3160
3161 2010-06-25  Sterling Swigart  <sswigart@google.com>
3162
3163         Reviewed by David Levin.
3164
3165         Callback code generation fixed so that now string parameters are converted to JSString
3166         using the jsString method instead of the toJS method which would not compile.
3167         https://bugs.webkit.org/show_bug.cgi?id=41119
3168         
3169         * bindings/scripts/CodeGeneratorJS.pm: Now generates jsString for String parameters in callbacks.
3170         * bindings/scripts/test/JS/JSTestCallback.cpp: Fixed test for above.
3171         (WebCore::JSTestCallback::callbackWithClass2Param): Ditto.
3172
3173 2010-06-25  Zhenyao Mo  <zmo@google.com>
3174
3175         Reviewed by Dimitri Glazkov.
3176
3177         A buffer should be bound to one target in its lifetime
3178         https://bugs.webkit.org/show_bug.cgi?id=41108
3179
3180         Test: fast/canvas/webgl/buffer-bind-test.html
3181
3182         * html/canvas/WebGLBuffer.cpp:
3183         (WebCore::WebGLBuffer::WebGLBuffer): Init target to 0. 
3184         (WebCore::WebGLBuffer::associateBufferData): Remove target parameter, use one byteLength member.
3185         (WebCore::WebGLBuffer::associateBufferSubData): Ditto.
3186         (WebCore::WebGLBuffer::byteLength): Ditto.
3187         (WebCore::WebGLBuffer::setTarget): Set target.
3188         * html/canvas/WebGLBuffer.h: Cache target in the WebGLBuffer object, use one byteLength member.
3189         (WebCore::WebGLBuffer::getTarget):
3190         * html/canvas/WebGLRenderingContext.cpp:
3191         (WebCore::WebGLRenderingContext::bindBuffer): Check if a buffer is bound to another target; set buffer object internal target.
3192         (WebCore::WebGLRenderingContext::bufferData): Remove target parameter and use the WebGLBuffer cached target instead.
3193         (WebCore::WebGLRenderingContext::bufferSubData): Ditto.
3194         (WebCore::WebGLRenderingContext::validateElementArraySize): Ditto.
3195         (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto.
3196         (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
3197
3198 2010-06-25  Dean Jackson  <dino@apple.com>
3199
3200         Reviewed by Simon Fraser.
3201
3202         https://bugs.webkit.org/show_bug.cgi?id=41188
3203         Animations should not require 0% and 100% keyframes
3204
3205         When we are generating the animation lists in CSSStyleSelector,
3206         rather than bail if we notice that "from" or "to" are missing, we
3207         now generate synthetic keyframes for those cases.
3208
3209         Tests: animations/missing-from-to-transforms.html
3210                animations/missing-from-to.html
3211                WebCore/manual-tests/animation-with-transition.html
3212
3213         * css/CSSStyleSelector.cpp:
3214         (WebCore::CSSStyleSelector::styleForKeyframe):
3215                 Moved individual keyframe generation into a new function.
3216         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
3217                 Call the new function above for regular keyframes, and
3218                 also check for missing keyframes and generate them if
3219                 necessary.
3220         * css/CSSStyleSelector.h:
3221
3222 2010-06-25  Adam Barth  <abarth@webkit.org>
3223
3224         Reviewed by Eric Seidel.
3225
3226         We should parse <html>
3227         https://bugs.webkit.org/show_bug.cgi?id=41239
3228
3229         This patch is hard to test, but I think this patch lets us parse a
3230         document consisting of only an <html> start tag.
3231
3232         * html/HTMLTreeBuilder.cpp:
3233         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
3234         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
3235         (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
3236         (WebCore::HTMLTreeBuilder::processStartTag):
3237         (WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
3238         * html/HTMLTreeBuilder.h:
3239         (WebCore::HTMLTreeBuilder::ElementStack::push):
3240
3241 2010-06-25  Dan Bernstein  <mitz@apple.com>
3242
3243         Reviewed by Sam Weinig.
3244
3245         <rdar://problem/8000667> Certain text is repeated before and after a line break
3246
3247         Test: fast/text/bidi-explicit-embedding-past-end.html
3248
3249         * platform/text/BidiResolver.h:
3250         (WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range
3251         creates BidiRuns up to the end of the range, so at that point, we can stop iterating.
3252
3253 2010-06-25  Eric Seidel  <eric@webkit.org>
3254
3255         Reviewed by Adam Barth.
3256
3257         Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter
3258         https://bugs.webkit.org/show_bug.cgi?id=41202
3259
3260         Hit the Windoze with the compile bat.
3261
3262         * WebCore.vcproj/WebCore.vcproj:
3263
3264 2010-06-25  Adam Barth  <abarth@webkit.org>
3265
3266         Reviewed by Eric Seidel.
3267
3268         HTMLTreeBuilder should branch first on token type and then on insertion mode
3269         https://bugs.webkit.org/show_bug.cgi?id=41232
3270
3271         This is different than how the spec is written, but it lets us remove a
3272         lot of redudancy in the algorithm.  We might even want to pull some of
3273         the branches on token name outside the insertion mode branch, but I'll
3274         leave that for a future patch.
3275
3276         Although this looks like a big patch, it's mostly just a mechanical
3277         switch permutation.
3278
3279         * html/HTMLTreeBuilder.cpp:
3280         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
3281         (WebCore::HTMLTreeBuilder::processToken):
3282         (WebCore::HTMLTreeBuilder::processDoctypeToken):
3283         (WebCore::HTMLTreeBuilder::processStartTag):
3284         (WebCore::HTMLTreeBuilder::processEndTag):
3285         (WebCore::HTMLTreeBuilder::processComment):
3286         (WebCore::HTMLTreeBuilder::processCharacter):
3287         (WebCore::HTMLTreeBuilder::processEndOfFile):
3288         (WebCore::HTMLTreeBuilder::processDefaultForInitialMode):
3289         (WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
3290         (WebCore::HTMLTreeBuilder::processDefaultForBeforeHeadMode):
3291         (WebCore::HTMLTreeBuilder::processDefaultForInHeadMode):
3292         (WebCore::HTMLTreeBuilder::processDefaultForInHeadNoscriptMode):
3293         (WebCore::HTMLTreeBuilder::processDefaultForAfterHeadMode):
3294         * html/HTMLTreeBuilder.h:
3295
3296 2010-06-25  Adam Barth  <abarth@webkit.org>
3297
3298         Reviewed by Darin Adler.
3299
3300         Tree builder doesn't need to return a Node
3301         https://bugs.webkit.org/show_bug.cgi?id=41225
3302
3303         The old tree builder returned the newly inserted Node, but the new tree
3304         builder doesn't need to do that as far as I can tell.  Removing the
3305         return value cuts down on a bunch of accounting.
3306
3307         * html/HTMLTreeBuilder.cpp:
3308         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
3309         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
3310         (WebCore::HTMLTreeBuilder::processToken):
3311         (WebCore::HTMLTreeBuilder::insertDoctype):
3312         (WebCore::HTMLTreeBuilder::insertComment):
3313         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
3314         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
3315         (WebCore::HTMLTreeBuilder::insertScriptElement):
3316         * html/HTMLTreeBuilder.h:
3317
3318 2010-06-25  Zhenyao Mo  <zmo@google.com>
3319
3320         Reviewed by Dimitri Glazkov.
3321
3322         getParameter(COLOR_WRITEMASK) needs to return Array
3323         https://bugs.webkit.org/show_bug.cgi?id=40437
3324
3325         * bindings/js/JSWebGLRenderingContextCustom.cpp: Handling bool array.
3326         (WebCore::toJS):
3327         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: Handling bool array.
3328         (WebCore::toV8Object):
3329         * html/canvas/WebGLGetInfo.cpp: Handling bool array.
3330         (WebCore::WebGLGetInfo::WebGLGetInfo):
3331         (WebCore::WebGLGetInfo::getBoolArray):
3332         * html/canvas/WebGLGetInfo.h: Handling bool array.
3333         (WebCore::WebGLGetInfo::):
3334         * html/canvas/WebGLRenderingContext.cpp: Handling bool array.
3335         (WebCore::WebGLRenderingContext::getParameter):
3336         (WebCore::WebGLRenderingContext::getBooleanArrayParameter):
3337         * html/canvas/WebGLRenderingContext.h: Handling bool array.
3338
3339 2010-06-25  Evan Stade  <estade@chromium.org>
3340
3341         Reviewed by Darin Fisher.
3342
3343         [chromium linux] Improve look of scrollbars
3344         https://bugs.webkit.org/show_bug.cgi?id=35775
3345
3346         This will affect layout pixel tests, which will need to be rebaselined.
3347
3348         * platform/Scrollbar.cpp: need the buttons to be invalidated when the
3349         thumb moves as they paint differently if the thumb is at the top or
3350         bottom
3351         (WebCore::Scrollbar::updateThumbPosition):
3352         (WebCore::Scrollbar::updateThumbProportion):
3353         * platform/chromium/ScrollbarThemeChromium.cpp:
3354         (WebCore::ScrollbarThemeChromium::trackRect): share code between
3355         linux/windows
3356         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3357         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
3358         (WebCore::outlineColor): up the contrast
3359         (WebCore::ScrollbarThemeChromiumLinux::paintButton): add custom button
3360         drawing implementation
3361         (WebCore::ScrollbarThemeChromiumLinux::buttonSize): add buttons
3362         * platform/chromium/ScrollbarThemeChromiumWin.cpp: share code between
3363         linux/windows
3364         * rendering/RenderThemeChromiumLinux.cpp: improve stock colors to get
3365         better contrast and integration with stock chrome theme
3366
3367 2010-06-25  Eric Seidel  <eric@webkit.org>
3368
3369         Reviewed by Adam Barth.
3370
3371         Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter
3372         https://bugs.webkit.org/show_bug.cgi?id=41202
3373
3374         The silly thing about this patch is that none of the
3375         RawDataDocumentParser subclasses actually use any of the
3376         data passed to them via appendBytes.
3377
3378         This makes the relationship between DocumentWriter and
3379         DocumentParser slightly more confusing, however I think this
3380         DocumentParser API is slightly nicer.
3381
3382         Next step is to split DecodedDataDocumentParser out from
3383         DocumentParser, and then the base DocumentParser won't know
3384         anything about decoding or SegmentedString.
3385
3386         No functional change, thus no tests.
3387
3388         * WebCore.xcodeproj/project.pbxproj:
3389         * dom/DocumentParser.h:
3390         * dom/RawDataDocumentParser.h:
3391         * loader/DocumentWriter.cpp:
3392         (WebCore::DocumentWriter::replaceDocument):
3393         (WebCore::DocumentWriter::createDecoderIfNeeded):
3394         (WebCore::DocumentWriter::reportDataRecieved):
3395         (WebCore::DocumentWriter::addData):
3396         * loader/DocumentWriter.h:
3397         * loader/ImageDocument.cpp:
3398         (WebCore::ImageDocumentParser::appendBytes):
3399         * loader/MediaDocument.cpp:
3400         (WebCore::MediaDocumentParser::appendBytes):
3401         * loader/PluginDocument.cpp:
3402         (WebCore::PluginDocumentParser::appendBytes):
3403         * loader/SinkDocument.cpp:
3404         (WebCore::SinkDocumentParser::SinkDocumentParser):
3405         (WebCore::SinkDocumentParser::appendBytes):
3406         (WebCore::SinkDocument::createParser):
3407
3408 2010-06-25  Eric Seidel  <eric@webkit.org>
3409
3410         Reviewed by Adam Barth.
3411
3412         Split DocumentParser::write into separate append and insert calls
3413         https://bugs.webkit.org/show_bug.cgi?id=41197
3414
3415         Unfortunately this is still somewhat confusing as
3416         "insert" means "insert this data at the current
3417         insertion point and run the parser synchronously
3418         unless we're in a nested write call" and "append"
3419         means "append this data to the end and run the
3420         parser if not in a nested call or until possibly yielding".
3421
3422         This at least makes clearer which document parsers implement
3423         which behavior, and paves the way for moving the decoding
3424         logic into DocumentParser from DocumentWriter.
3425
3426         No functional changes, thus no tests.
3427
3428         * dom/Document.cpp:
3429         (WebCore::Document::write):
3430         * dom/DocumentParser.h:
3431         * dom/RawDataDocumentParser.h:
3432         (WebCore::RawDataDocumentParser::insert):
3433         (WebCore::RawDataDocumentParser::append):
3434         * dom/XMLDocumentParser.cpp:
3435         (WebCore::XMLDocumentParser::insert):
3436         (WebCore::XMLDocumentParser::append):
3437         * dom/XMLDocumentParser.h:
3438         * dom/XMLDocumentParserLibxml2.cpp:
3439         (WebCore::XMLDocumentParser::resumeParsing):
3440         * html/HTMLDocumentParser.cpp:
3441         (WebCore::HTMLDocumentParser::insert):
3442         (WebCore::HTMLDocumentParser::append):
3443         (WebCore::HTMLDocumentParser::parseDocumentFragment):
3444         * html/HTMLDocumentParser.h:
3445         * html/LegacyHTMLDocumentParser.cpp:
3446         (WebCore::LegacyHTMLDocumentParser::insert):
3447         (WebCore::LegacyHTMLDocumentParser::append):
3448         * html/LegacyHTMLDocumentParser.h:
3449         * loader/DocumentWriter.cpp:
3450         (WebCore::DocumentWriter::replaceDocument):
3451         (WebCore::DocumentWriter::addData):
3452         * loader/FTPDirectoryDocument.cpp:
3453         (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
3454         (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
3455         (WebCore::FTPDirectoryDocumentParser::append):
3456         * loader/TextDocument.cpp:
3457         (WebCore::TextDocumentParser::insert):
3458         (WebCore::TextDocumentParser::append):
3459         (WebCore::TextDocumentParser::finish):
3460
3461 2010-06-25  Daniel Cheng  <dcheng@chromium.org>
3462
3463         Reviewed by Darin Fisher.
3464
3465         [chromium] Add new stubs for querying platform drag-and-drop and copy-and-paste data.
3466
3467         This change adds new stubs for querying for data in a clipboard or drag operation. This is
3468         so adding support for more data types in clipboard/drag operations doesn't become
3469         increasingly expensive, since we currently copy all the drag data we need every time a new
3470         web drop target is entered. It also adds a new mechanism to write back to the system
3471         clipboard that isn't tied to one data type.
3472
3473         https://bugs.webkit.org/show_bug.cgi?id=40540
3474
3475         No new tests since we're just adding new ChromiumBridge APIs. When we switch to it, it will
3476         be covered by the existing tests.
3477
3478         * platform/chromium/ChromiumBridge.h:
3479         * platform/chromium/PasteboardPrivate.h:
3480         (WebCore::PasteboardPrivate::):
3481
3482 2010-06-25  Mario Sanchez Prada  <msanchez@igalia.com>
3483
3484         Reviewed by Xan Lopez.
3485
3486         [Gtk] Implement atk_table_get_column_header
3487         https://bugs.webkit.org/show_bug.cgi?id=30896
3488
3489         Implemented get_column_header and modified get_row_header
3490         accordingly to keep them both coherent among themselves.
3491         Based on a previous patch by Joanmarie Diggs.
3492
3493         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3494         (webkit_accessible_table_get_column_header):
3495         (webkit_accessible_table_get_row_header):
3496
3497 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
3498
3499         Reviewed by Xan Lopez.
3500
3501         [GTK] Pasteboard code does not take into account the nil character when getting and setting markup/netscape-url data
3502         https://bugs.webkit.org/show_bug.cgi?id=41221
3503
3504         Take into account null-terminator when getting and setting markup and
3505         Netscape URL pasteboard types. This means that if the selection data
3506         contains the null terminator, it won't be included in the final String.
3507         When setting the pasteboard data the null terminator is now included to
3508         match the behavior of other applications.
3509
3510         * platform/gtk/PasteboardHelper.cpp:
3511         (WebCore::PasteboardHelper::getClipboardContents):
3512         Create the markup string after using g_strndup to protect against non-null-terminated
3513         strings. Use String::fromUTF8 here to ensure that the string is not longer than the
3514         first null-terminator. Also fix a small indentation issue.
3515         (WebCore::PasteboardHelper::fillSelectionData):
3516         Always include the null-terminator when setting pasteboard data manually. This matches
3517         the behavior of other browser applications.
3518
3519 2010-06-25  Sam Magnuson  <smagnuson@netflix.com>
3520
3521         Reviewed by Kenneth Rohde Christiansen.
3522
3523         [Qt] When any geometry change happens to a node it will resize the
3524         backing cache
3525         https://bugs.webkit.org/show_bug.cgi?id=40378
3526
3527         Continue to grow the cache, but never toss it. When the pixmap
3528         cache gets too big it will be lost and created at the right size
3529         next time.
3530
3531         No new tests: this is an optimization.
3532
3533         * platform/graphics/qt/GraphicsLayerQt.cpp:
3534         (WebCore::GraphicsLayerQtImpl::recache):
3535         (WebCore::GraphicsLayerQtImpl::paint):
3536         (WebCore::GraphicsLayerQtImpl::flushChanges):
3537
3538 2010-06-25  Andreas Kling  <andreas.kling@nokia.com>
3539
3540         Reviewed by Darin Adler.
3541
3542         https://bugs.webkit.org/show_bug.cgi?id=41019
3543         Canvas: Remember verified clean origins for drawImage()
3544
3545         Made CanvasRenderingContext2D cache the KURLs of clean origins
3546         for fast repeated lookup.
3547
3548         * html/canvas/CanvasRenderingContext2D.cpp:
3549         (WebCore::CanvasRenderingContext2D::checkOrigin):
3550         * html/canvas/CanvasRenderingContext2D.h:
3551
3552 2010-06-25  Robert Hogan  <robert@webkit.org>
3553
3554         Reviewed by Kenneth Rohde Christiansen.
3555
3556         [Qt] HTTP 307 after a 303 after a POST re-sends POST data from the original request
3557
3558         https://bugs.webkit.org/show_bug.cgi?id=35301
3559
3560         Qt needs to use ResourceRequest::request()->httpMethod()) in order to determine
3561         the appropriate method for a 307 redirect request.
3562
3563         When deciding if it needs to override a POST method with a GET method during a
3564         redirect chain, QNetworkReplyHandler needs to check the HTTP method stored
3565         in ResourceRequest::request()->httpMethod(). This will always contain the
3566         original request method in a redirect chain and, more importantly, is the
3567         method that will be used for the request created from the redirect
3568         if it is not overridden.
3569
3570         * platform/network/qt/QNetworkReplyHandler.cpp:
3571         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
3572
3573 2010-06-25  Dan Bernstein  <mitz@apple.com>
3574
3575         Reviewed by Anders Carlsson.
3576
3577         Removed a one-line method that only had one internal caller.
3578
3579         * rendering/RenderBlock.h: Removed bidiReorderLine()
3580         * rendering/RenderBlockLineLayout.cpp:
3581         (WebCore::RenderBlock::layoutInlineChildren): Moved the implementation of
3582         bidiReorderLine() inline here.
3583
3584 2010-06-25  Nate Chapin  <japhet@chromium.org>
3585
3586         Reviewed by Adam Barth.
3587
3588         Take a KURL parameter in Document's constructor.
3589         This will remove the one case where Document::url() 
3590         and FrameLoader::url() are not equal, allowing us to
3591         remove FrameLoader::url().
3592
3593         https://bugs.webkit.org/show_bug.cgi?id=41166
3594
3595         Refactor only, no new tests.
3596
3597         * dom/DOMImplementation.cpp:
3598         (WebCore::DOMImplementation::createDocument): Take a KURL and pass it through to Document.
3599         (WebCore::DOMImplementation::createHTMLDocument):
3600         * dom/DOMImplementation.h:
3601         * dom/Document.cpp:
3602         (WebCore::Document::Document): Call setURL() if a frame or a non-empty KURL is specified.
3603         (WebCore::Document::initSecurityContext): m_url is now initialized, so use it instead
3604             of m_frame->loader()->url() for initializing the SecurityOrigin.
3605         * dom/Document.h:
3606         (WebCore::Document::create):
3607         (WebCore::Document::createXHTML):
3608         * html/HTMLDocument.cpp:
3609         * html/HTMLDocument.h: Add KURL parameter to create() and constructor.
3610         * html/HTMLViewSourceDocument.cpp:
3611         * html/HTMLViewSourceDocument.h: Add KURL parameter to create() and constructor.
3612         * loader/CachedFont.cpp:
3613         (WebCore::CachedFont::ensureSVGFontData):
3614         * loader/DocumentWriter.cpp:
3615         (WebCore::DocumentWriter::createDocument): Take a KURL and pass it through to Document.
3616         (WebCore::DocumentWriter::begin): Pass existing url parameter to constructors, and remove
3617             redundant Document::setURL() call.
3618         * loader/DocumentWriter.h:
3619         * loader/FTPDirectoryDocument.cpp:
3620         * loader/FTPDirectoryDocument.h: Add KURL parameter to create() and constructor.
3621         * loader/ImageDocument.cpp:
3622         * loader/ImageDocument.h: Add KURL parameter to create() and constructor.
3623         * loader/MediaDocument.cpp:
3624         * loader/MediaDocument.h: Add KURL parameter to create() and constructor.
3625         * loader/PlaceholderDocument.h: Add KURL parameter to create() and constructor.
3626         * loader/PluginDocument.cpp:
3627         * loader/PluginDocument.h: Add KURL parameter to create() and constructor.
3628         * loader/SinkDocument.cpp:
3629         * loader/SinkDocument.h: Add KURL parameter to create() and constructor.
3630         * loader/TextDocument.cpp:
3631         * loader/TextDocument.h: Add KURL parameter to create() and constructor.
3632         * svg/SVGDocument.cpp:
3633         * svg/SVGDocument.h: Add KURL parameter to create() and constructor.
3634         * xml/DOMParser.cpp:
3635         (WebCore::DOMParser::parseFromString):
3636         * xml/XMLHttpRequest.cpp:
3637         (WebCore::XMLHttpRequest::responseXML):
3638         * xml/XSLTProcessor.cpp:
3639         (WebCore::XSLTProcessor::createDocumentFromSource):
3640
3641 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3642
3643         Unreviewed, rolling out r61812.
3644         http://trac.webkit.org/changeset/61812
3645         https://bugs.webkit.org/show_bug.cgi?id=41216
3646
3647         breaks Chromium workers tests (Requested by mnaganov on
3648         #webkit).
3649
3650         * storage/AbstractDatabase.cpp:
3651         * storage/AbstractDatabase.h:
3652         * storage/Database.cpp:
3653         (WebCore::Database::databaseInfoTableName):
3654         (WebCore::guidMutex):
3655         (WebCore::guidToVersionMap):
3656         (WebCore::updateGuidVersionMap):
3657         (WebCore::guidToDatabaseMap):
3658         (WebCore::databaseVersionKey):
3659         (WebCore::DatabaseCreationCallbackTask::create):
3660         (WebCore::DatabaseCreationCallbackTask::performTask):
3661         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
3662         (WebCore::Database::openDatabase):
3663         (WebCore::Database::Database):
3664         (WebCore::Database::openAndVerifyVersion):
3665         (WebCore::retrieveTextResultFromDatabase):
3666         (WebCore::Database::getVersionFromDatabase):
3667         (WebCore::setTextValueInDatabase):
3668         (WebCore::Database::setVersionInDatabase):
3669         (WebCore::Database::versionMatchesExpected):
3670         (WebCore::Database::close):
3671         (WebCore::Database::disableAuthorizer):
3672         (WebCore::Database::enableAuthorizer):
3673         (WebCore::Database::setAuthorizerReadOnly):
3674         (WebCore::Database::lastActionChangedDatabase):
3675         (WebCore::Database::lastActionWasInsert):
3676         (WebCore::Database::resetDeletes):
3677         (WebCore::Database::hadDeletes):
3678         (WebCore::guidForOriginAndName):
3679         (WebCore::Database::resetAuthorizer):
3680         (WebCore::Database::performOpenAndVerify):
3681         (WebCore::Database::performCreationCallback):
3682         (WebCore::Database::version):
3683         (WebCore::Database::setExpectedVersion):
3684         (WebCore::Database::stringIdentifier):
3685         (WebCore::Database::displayName):
3686         (WebCore::Database::estimatedSize):
3687         (WebCore::Database::fileName):
3688         * storage/Database.h:
3689         (WebCore::Database::scriptExecutionContext):
3690         (WebCore::Database::opened):
3691         (WebCore::Database::isNew):
3692         (WebCore::Database::databaseDebugName):
3693         * storage/DatabaseAuthorizer.cpp:
3694         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
3695         (WebCore::DatabaseAuthorizer::denyBasedOnTableName):
3696         * storage/DatabaseAuthorizer.h:
3697         (WebCore::DatabaseAuthorizer::create):
3698         * storage/DatabaseSync.cpp:
3699         (WebCore::DatabaseSync::databaseInfoTableName):
3700         (WebCore::DatabaseSync::openDatabaseSync):
3701         (WebCore::DatabaseSync::DatabaseSync):
3702         (WebCore::DatabaseSync::~DatabaseSync):
3703         (WebCore::DatabaseSync::version):
3704         (WebCore::DatabaseSync::changeVersion):
3705         (WebCore::DatabaseSync::transaction):
3706         (WebCore::DatabaseSync::scriptExecutionContext):
3707         * storage/DatabaseSync.h:
3708         (WebCore::DatabaseSync::databaseDebugName):
3709         * storage/DatabaseTask.cpp:
3710         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
3711         (WebCore::DatabaseOpenTask::doPerformTask):
3712         * storage/DatabaseTask.h:
3713         (WebCore::DatabaseOpenTask::create):
3714
3715 2010-06-25  Lei Zheng  <lzheng@chromium.org>
3716
3717         Reviewed by Dimitri Glazkov.
3718
3719         Add a flag to the ResourceResponse for tracking if a request was fetched when
3720         Alternate-protocol is available.
3721         https://bugs.webkit.org/show_bug.cgi?id=41001
3722
3723         No new tests. (This is just a setter and getter.)
3724
3725         * platform/network/chromium/ResourceResponse.h:
3726         (WebCore::ResourceResponse::ResourceResponse):
3727         (WebCore::ResourceResponse::wasAlternateProtocolAvailable):
3728         (WebCore::ResourceResponse::setWasAlternateProtocolAvailable):
3729
3730 2010-06-25  Lyon Chen  <liachen@rim.com>
3731
3732         Reviewed by Darin Adler.
3733
3734         InspectorCSSStore.cpp is not surrounded with ENABLE(INSPECTOR)
3735         https://bugs.webkit.org/show_bug.cgi?id=41004
3736
3737         Surround InspectorCSSStore.cpp code with ENABLE(INSPECTOR) so it will not
3738         break the build when INSPECTOR is disabled.
3739
3740         * inspector/InspectorCSSStore.cpp:
3741
3742 2010-06-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
3743
3744         Reviewed by Simon Hausmann.
3745
3746         [Qt] WebGL: missing file
3747         https://bugs.webkit.org/show_bug.cgi?id=40998
3748
3749         Added a missing file to WebCore.pro
3750
3751         No new tests; build fix
3752
3753         * WebCore.pro:
3754
3755 2010-06-25  Adam Roben  <aroben@apple.com>
3756
3757         Windows build fix
3758
3759         * WebCore.vcproj/WebCore.vcproj: Added a missing </File> tag.
3760
3761 2010-06-25  Alex Milowski  <alex@milowski.com>
3762
3763         Reviewed by Kenneth Rohde Christiansen.
3764
3765         This patch changes the vertical alignment to rely upon baseline
3766         alignment for all MathML rendering.  This fixes a number of layout
3767         issues and the implementation is much more clean.
3768
3769         Also, this patch adds a horizontal green line in the debug layout
3770         so you can see the top padding of any RenderMathMLBlock instance.
3771
3772         Test: mathml/presentation/row-alignment.xhtml
3773
3774         * css/mathml.css:
3775         * mathml/RenderMathMLBlock.cpp:
3776         * mathml/RenderMathMLFraction.cpp:
3777         * mathml/RenderMathMLFraction.h:
3778         * mathml/RenderMathMLOperator.cpp:
3779         * mathml/RenderMathMLOperator.h:
3780         * mathml/RenderMathMLRoot.cpp:
3781         * mathml/RenderMathMLRow.cpp:
3782         * mathml/RenderMathMLRow.h:
3783         * mathml/RenderMathMLSquareRoot.cpp:
3784         * mathml/RenderMathMLSubSup.cpp:
3785         * mathml/RenderMathMLUnderOver.cpp:
3786
3787 2010-06-25  Yury Semikhatsky  <yurys@chromium.org>
3788
3789         Reviewed by Pavel Feldman.
3790
3791         Can't see source when hitting debugger statement in evaled source
3792         https://bugs.webkit.org/show_bug.cgi?id=41058
3793
3794         Test: inspector/debugger-pause-in-eval-script.html
3795
3796         * bindings/js/ScriptDebugServer.cpp:
3797         (WebCore::ScriptDebugServer::sourceParsed): use lexical global object to figure out
3798         where the script is compiled. Otherwise scripts typed in Web Inspector console will
3799         be treated as ones evaluated in the context of Web Inspector and won't appear in the
3800         scripts list.
3801         * inspector/InspectorController.cpp:
3802         (WebCore::InspectorController::didParseSource): cache script sources for eval's too.
3803
3804 2010-06-25  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
3805
3806         Reviewed by Kenneth Rohde Christiansen.
3807
3808         [EFL] Use a descriptive string in FileChooser when multiple files can
3809         be selected.
3810         https://bugs.webkit.org/show_bug.cgi?id=40943
3811
3812         EFL port has no tests yet, so no new tests.
3813
3814         * platform/efl/FileChooserEfl.cpp:
3815         (WebCore::FileChooser::basenameForWidth):
3816
3817 2010-06-25  Nikolas Zimmermann  <nzimmermann@rim.com>
3818
3819         Reviewed by Dirk Schulze.
3820
3821         SVG Text Highlighting not yet supported (in Safari)
3822         https://bugs.webkit.org/show_bug.cgi?id=41200
3823
3824         Add text match marker highlighting support for SVG text - searching for SVG text in Safari now paints the nice yellow highlighting rect, and the
3825         white rectangles for all text matches. Behaves exactly like HTML text, but respecting SVGs per-character/per-chunk transformations,
3826         allowing to highlight textPaths, tspans with absolute per-character positions etc..
3827
3828         Only manually testable, thus no new tests.
3829
3830         * rendering/InlineBox.h: Expose calculateBoundaries() in non-SVG builds as well, now used by InlineTextBox too.
3831         * rendering/InlineTextBox.h: Add calculateBoundaries(), which will be used to refactor some code in RenderText, see below.
3832         (WebCore::InlineTextBox::calculateBoundaries): Just return a IntRect(x(), y(), width(), height()) here.
3833         (WebCore::RenderObject::isSVGInlineText):
3834         * rendering/RenderSVGInlineText.h:
3835         (WebCore::RenderSVGInlineText::isSVGInlineText): Return true for isSVGInlineText(), return false for isSVGText() (default in RenderObject.h)
3836         * rendering/RenderSVGRoot.cpp:
3837         (WebCore::RenderSVGRoot::paint): Only paint box decorations in PaintPhase(Child)BlockBackground, exit afterwards just like RenderBlock does.
3838                                          Otherwise the white text match marker rectangle gets drawn over the yellow highlight that Safari draws. 
3839         * rendering/RenderSVGText.cpp:
3840         (WebCore::RenderSVGText::paint): Accept a new painting phase: PaintPhaseSelection, used by Safari when drawing the yellow highlight rect.
3841         * rendering/RenderText.cpp:
3842         (WebCore::RenderText::absoluteQuads): Use calculateBoundaries() instead of IntRect(x(), y(), width(), height()). SVG provides different boundaries here.
3843         (WebCore::RenderText::absoluteQuadsForRange): Ditto. This is the main change, leading to correct text highlight placement.
3844         * rendering/SVGInlineFlowBox.cpp: Add assertion that painting is not disabled, for consistency. Change paint phase assertion to include PaintPhaseSelection.
3845         (WebCore::SVGInlineFlowBox::paint):
3846         * rendering/SVGInlineTextBox.cpp:
3847         (WebCore::SVGInlineTextBox::selectionRectForTextChunkPart): Refactored from selectionRect(), to share code between selectionRect/computeTextMatchMarkerRect.
3848         (WebCore::SVGInlineTextBox::selectionRect): Use new helper function selectionRectForTextChunkPart().
3849         (WebCore::SVGInlineTextBox::paint): Ditto. Call new computeTextMatchMarkerRect() function.
3850         (WebCore::SVGInlineTextBox::computeTextMatchMarkerRect): Implemented similar to HTML, but respecting SVGs concept of text chunk parts.
3851         (WebCore::SVGInlineTextBox::paintText): In PaintPhaseSelection, only paint selected text, not anything before/after the selection start/end.
3852         (WebCore::SVGInlineTextBox::calculateBoundaries): Early exit, if m_chunkTransformation is identity.
3853         * rendering/SVGInlineTextBox.h: Added "bool paintSelectedTextOnly" to paintText() and add new computeTextMatchMarkerRect(RenderStyle*) function.
3854         * rendering/SVGRootInlineBox.cpp:
3855         (WebCore::SVGRootInlineBox::paint): Change paint phase assertion to include PaintPhaseSelection.
3856
3857 2010-06-25  John Gregg  <johnnyg@google.com>
3858
3859         Reviewed by Darin Fisher.
3860
3861         Notification should expose ltr/rtl as TextDirection, not String
3862         https://bugs.webkit.org/show_bug.cgi?id=40871
3863
3864         No new tests; existing test covers this, just renaming a method.
3865
3866         * notifications/Notification.h:
3867         (WebCore::Notification::direction):
3868
3869 2010-06-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3870
3871         Unreviewed, rolling out r61842.
3872         http://trac.webkit.org/changeset/61842
3873         https://bugs.webkit.org/show_bug.cgi?id=41208
3874
3875         It broke Windows build (Requested by Ossy_ on #webkit).
3876
3877         * ForwardingHeaders/wtf/win/OwnPtrWin.h: Removed.
3878
3879 2010-06-25  Patrick Gansterer  <paroga@paroga.com>
3880
3881         Reviewed by Darin Adler.
3882
3883         Remove unneeded whitespace from svgtags.in.
3884         https://bugs.webkit.org/show_bug.cgi?id=40912
3885
3886         make_names.pl throws an error at non-empty lines
3887         when using cl.exe as preprocessor.
3888
3889         * svg/svgtags.in:
3890
3891 2010-06-25  Nikolas Zimmermann  <nzimmermann@rim.com>
3892
3893         Reviewed by Rob Buis.
3894
3895         Split up isSVGText() in isSVGText() / isSVGInlineText()
3896         https://bugs.webkit.org/show_bug.cgi?id=41204
3897
3898         Introduce isSVGInlineText(), to provide a safe mechanism to differentiate between RenderSVGText / RenderSVGInlineText.
3899         No change in functionality, thus no new tests.
3900
3901         * rendering/RenderBlockLineLayout.cpp:
3902         (WebCore::shouldPreserveNewline): s/isSVGText/isSVGInlineText/
3903         (WebCore::RenderBlock::findNextLineBreak): Ditto.
3904         * rendering/RenderObject.h:
3905         (WebCore::RenderObject::isSVGInlineText): Return false, by default.
3906         * rendering/RenderSVGInlineText.h:
3907         (WebCore::RenderSVGInlineText::isSVGInlineText): Return true here, don't return true anymore for isSVGText().
3908         * rendering/RenderText.cpp:
3909         (WebCore::RenderText::setTextInternal): s/isSVGText/isSVGInlineText/
3910         * rendering/RenderTreeAsText.cpp: Remove hack, now that we can properly differentiate between RenderSVGText / RenderSVGInlineText.
3911         (WebCore::write):
3912
3913 2010-06-25  Kwang Yul Seo  <skyul@company100.net>
3914
3915         Reviewed by Adam Barth.
3916
3917         Change OwnPtrCommon to include platform-specific headers
3918         https://bugs.webkit.org/show_bug.cgi?id=40279
3919
3920         Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
3921         Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
3922
3923         * ForwardingHeaders/wtf/win: Added.
3924         * ForwardingHeaders/wtf/win/OwnPtrWin.h: Added.
3925
3926 2010-06-25  Patrick Gansterer  <paroga@paroga.com>
3927
3928         Reviewed by Adam Barth.
3929
3930         Implement TextCodecs for WinCE port.
3931         https://bugs.webkit.org/show_bug.cgi?id=32169
3932         Originally written by Yong Li <yong.li@torchmobile.com>
3933
3934         * platform/graphics/FontCache.h:
3935         * platform/graphics/wince/FontCacheWince.cpp:
3936         (WebCore::FontCache::getMultiLanguageInterface):
3937         * platform/text/wince/TextCodecWinCE.cpp: Added.
3938         (WebCore::codePageCharsets):
3939         (WebCore::knownCharsets):
3940         (WebCore::supportedCharsets):
3941         (WebCore::languageManager):
3942         (WebCore::addCharset):
3943         (WebCore::LanguageManager::LanguageManager):
3944         (WebCore::getCodePage):
3945         (WebCore::newTextCodecWinCE):
3946         (WebCore::TextCodecWinCE::TextCodecWinCE):
3947         (WebCore::TextCodecWinCE::~TextCodecWinCE):
3948         (WebCore::TextCodecWinCE::registerBaseEncodingNames):
3949         (WebCore::TextCodecWinCE::registerBaseCodecs):
3950         (WebCore::TextCodecWinCE::registerExtendedEncodingNames):
3951         (WebCore::TextCodecWinCE::registerExtendedCodecs):
3952         (WebCore::getCodePageFlags):
3953         (WebCore::findFirstNonAsciiCharacter):
3954         (WebCore::decode):
3955         (WebCore::TextCodecWinCE::decode):
3956         (WebCore::TextCodecWinCE::encode):
3957         (WebCore::TextCodecWinCE::enumerateSupportedEncodings):
3958         * platform/text/wince/TextCodecWinCE.h: Added.
3959
3960 2010-06-24  Rob Buis  <rwlbuis@gmail.com>
3961
3962         Reviewed by Dirk Schulze.
3963
3964         Bug 40880 - SVG properties fill and stroke do not accept system colors
3965         https://bugs.webkit.org/show_bug.cgi?id=40880
3966
3967         Handle css system colors in fill and stroke properties.
3968
3969         Test: svg/css/rect-system-color.xhtml
3970
3971         * css/CSSParser.cpp: Remove comment and unneeded if condition
3972         (WebCore::CSSParser::parseValue):
3973         * css/SVGCSSParser.cpp: Allow css system colors
3974         (WebCore::CSSParser::parseSVGValue):
3975
3976 2010-06-24  Eric Seidel  <eric@webkit.org>
3977
3978         Reviewed by Adam Barth.
3979
3980         Make DocumentParser API private on subclasses to catch misuse bugs
3981         https://bugs.webkit.org/show_bug.cgi?id=41186
3982
3983         This already found one bug:
3984         https://bugs.webkit.org/show_bug.cgi?id=41187
3985
3986         Added a new HTMLDocumentParaser::parseDocumentFragment so that
3987         DocumentFragment.cpp does not need to use private methods.
3988
3989         * dom/DocumentFragment.cpp:
3990         (WebCore::DocumentFragment::parseHTML):
3991         * dom/XMLDocumentParser.h:
3992         (WebCore::XMLDocumentParser::setIsXHTMLDocument):
3993         (WebCore::XMLDocumentParser::isXHTMLDocument):
3994         (WebCore::XMLDocumentParser::setIsXHTMLMPDocument):
3995         (WebCore::XMLDocumentParser::isXHTMLMPDocument):
3996         * html/HTMLDocumentParser.cpp:
3997         (WebCore::HTMLDocumentParser::parseDocumentFragment):
3998         * html/HTMLDocumentParser.h:
3999         * html/LegacyHTMLDocumentParser.cpp:
4000         (WebCore::LegacyHTMLDocumentParser::parseDocumentFragment):
4001         * html/LegacyHTMLDocumentParser.h:
4002         (WebCore::LegacyHTMLDocumentParser::forceSynchronous):
4003         (WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript):
4004         * html/LegacyHTMLTreeBuilder.cpp:
4005         (WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole):
4006         * loader/DocumentWriter.cpp:
4007         (WebCore::DocumentWriter::replaceDocument):
4008         * loader/TextDocument.cpp:
4009
4010 2010-05-28  Philippe Normand  <pnormand@igalia.com>
4011
4012         Reviewed by Gustavo Noronha.
4013
4014         [GStreamer] multiple video sink support
4015         https://bugs.webkit.org/show_bug.cgi?id=39472
4016
4017         Playbin2 video-sink is now a bin containing a tee element capable
4018         of dispatching the buffers to multiple video sinks. By default
4019         only our webkit video sink is used. This will allow
4020         GStreamerGWorld to add support for autovideosink in the future.
4021
4022         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
4023         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
4024         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
4025         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
4026         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
4027         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
4028
4029 2010-06-24  Adam Barth  <abarth@webkit.org>
4030
4031         Reviewed by Eric Seidel.
4032
4033         Sketch out AfterHeadMode for tree builder
4034         https://bugs.webkit.org/show_bug.cgi?id=41191
4035
4036         This mode is fairly similar to the others.  I needed to change some of
4037         the types around w.r.t. Nodes/Elements.
4038
4039         * html/HTMLTreeBuilder.cpp:
4040         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
4041         (WebCore::HTMLTreeBuilder::processToken):
4042         (WebCore::HTMLTreeBuilder::insertElement):
4043         * html/HTMLTreeBuilder.h:
4044         (WebCore::HTMLTreeBuilder::ElementStack::push):
4045         (WebCore::HTMLTreeBuilder::ElementStack::remove):
4046
4047 2010-06-24  Adam Barth  <abarth@webkit.org>
4048
4049         Reviewed by Eric Seidel.
4050
4051         Sketch out InHeadNoscriptMode for tree builder
4052         https://bugs.webkit.org/show_bug.cgi?id=41189
4053
4054         Lots of notImplemented() calls in this state.  I need to figure how to
4055         delegate handling of a token from one state to another.
4056
4057         * html/HTMLTreeBuilder.cpp:
4058         (WebCore::HTMLTreeBuilder::processToken):
4059
4060 2010-06-24  Adam Barth  <abarth@webkit.org>
4061
4062         Reviewed by Eric Seidel.
4063
4064         Sketch out InHeadMode for tree builder
4065         https://bugs.webkit.org/show_bug.cgi?id=41184
4066
4067         This state is relatively straightforward.  We introduce the stack of
4068         open elements to track that notion in the spec.  The old tree builder
4069         has a nice data structure for that, which we'll probably steal, but I'd
4070         like to see what the full API is first.
4071
4072         * html/HTMLTreeBuilder.cpp:
4073         (WebCore::HTMLTreeBuilder::processToken):
4074         (WebCore::HTMLTreeBuilder::insertCharacter):
4075         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
4076         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
4077         (WebCore::HTMLTreeBuilder::insertScriptElement):
4078         * html/HTMLTreeBuilder.h:
4079         (WebCore::HTMLTreeBuilder::ElementStack::pop):
4080         (WebCore::HTMLTreeBuilder::ElementStack::top):
4081
4082 2010-06-24  Adam Barth  <abarth@webkit.org>
4083
4084         Reviewed by Eric Seidel.
4085
4086         Sketch out BeforeHeadMode tree builder state
4087         https://bugs.webkit.org/show_bug.cgi?id=41183
4088
4089         This makes procesToken recursive, which might not be the best idea.
4090         Also, we can now make fake AtomicHTMLTokens for use by the algorithm.
4091
4092         * html/HTMLToken.h:
4093         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
4094         * html/HTMLTreeBuilder.cpp:
4095         (WebCore::HTMLTreeBuilder::processToken):
4096         (WebCore::HTMLTreeBuilder::insertElement):
4097         * html/HTMLTreeBuilder.h:
4098
4099 2010-06-22 Antonio Gomes <tonikitoo@webkit.org>
4100
4101         Reviewed by David Hyatt.
4102
4103         Add a NodeList-derivated wrapper class for a ListHashSet.
4104         https://bugs.webkit.org/show_bug.cgi?id=41081
4105
4106         StaticHashSetList will work as a wrapper to ListHashSet objects that are
4107         aimed to be exposed to the DOM.
4108
4109         As a use case, the rect based HitTest (bug 40197) will store the retrieved nodes
4110         in a ListHashSet. It is going to be exposed to the DOM through are nodesFromRect
4111         of Document returning a NodeList (i.e. StatisHashSetList) wrapping a ListHashSet.
4112
4113         No new tests.
4114
4115 2010-06-24  Cris Neckar  <cdn@chromium.org>
4116
4117         Reviewed by Darin Fisher.
4118
4119         [Chromium] Out of bounds write in WebCore::PNGImageDecoder::rowAvailable
4120         https://bugs.webkit.org/show_bug.cgi?id=40798
4121
4122         Catches error in row callback for libPNG when extra rows are returned.
4123
4124         Test: fast/images/png-extra-row-crash.html
4125
4126         * platform/image-decoders/png/PNGImageDecoder.cpp:
4127         (WebCore::PNGImageDecoder::rowAvailable):
4128
4129 2010-06-24  Eric Seidel  <eric@webkit.org>
4130
4131         Reviewed by Adam Barth.
4132
4133         Clean up and document DocumentWriter::replaceDocument code path
4134         https://bugs.webkit.org/show_bug.cgi?id=41182
4135
4136         No functional changes, thus no tests.
4137
4138         * loader/DocumentWriter.cpp:
4139         (WebCore::DocumentWriter::replaceDocument):
4140          - Remove comment which could be misleading.
4141
4142 2010-06-23  Dumitru Daniliuc  <dumi@chromium.org>
4143
4144         Reviewed by Adam Barth.
4145
4146         Implementing DatabaseSync::openDatabaseSync().
4147         https://bugs.webkit.org/show_bug.cgi?id=40607
4148
4149         Moved some common code from Database to AbstractDatabase. Made
4150         performOpenAndVerify() virtual, since DatabaseSync doesn't need to
4151         interact with DatabaseThread. Removed the m_creationCallback
4152         field, since it's only needed in the openDatabase{Sync} methods.
4153
4154         * storage/AbstractDatabase.cpp:
4155         (WebCore::retrieveTextResultFromDatabase):
4156         (WebCore::setTextValueInDatabase):
4157         (WebCore::guidMutex):
4158         (WebCore::guidToVersionMap):
4159         (WebCore::updateGuidVersionMap):
4160         (WebCore::guidToDatabaseMap):
4161         (WebCore::guidForOriginAndName):
4162         (WebCore::AbstractDatabase::databaseInfoTableName):
4163         (WebCore::AbstractDatabase::AbstractDatabase):
4164         (WebCore::AbstractDatabase::closeDatabase):
4165         (WebCore::AbstractDatabase::version):
4166         (WebCore::AbstractDatabase::performOpenAndVerify):
4167         (WebCore::AbstractDatabase::scriptExecutionContext):
4168         (WebCore::AbstractDatabase::securityOrigin):
4169         (WebCore::AbstractDatabase::stringIdentifier):
4170         (WebCore::AbstractDatabase::displayName):
4171         (WebCore::AbstractDatabase::estimatedSize):
4172         (WebCore::AbstractDatabase::fileName):
4173         (WebCore::AbstractDatabase::databaseVersionKey):
4174         (WebCore::AbstractDatabase::getVersionFromDatabase):
4175         (WebCore::AbstractDatabase::setVersionInDatabase):
4176         (WebCore::AbstractDatabase::versionMatchesExpected):
4177         (WebCore::AbstractDatabase::setExpectedVersion):
4178         (WebCore::AbstractDatabase::disableAuthorizer):
4179         (WebCore::AbstractDatabase::enableAuthorizer):
4180         (WebCore::AbstractDatabase::setAuthorizerReadOnly):
4181         (WebCore::AbstractDatabase::lastActionChangedDatabase):
4182         (WebCore::AbstractDatabase::lastActionWasInsert):
4183         (WebCore::AbstractDatabase::resetDeletes):
4184         (WebCore::AbstractDatabase::hadDeletes):
4185         (WebCore::AbstractDatabase::resetAuthorizer):
4186         * storage/AbstractDatabase.h:
4187         (WebCore::AbstractDatabase::opened):
4188         (WebCore::AbstractDatabase::isNew):
4189         (WebCore::AbstractDatabase::database