f521ac3320fee87578a9283ead723fdfc983436a
[WebKit-https.git] / WebCore / ChangeLog
1 2010-07-05  Dan Bernstein  <mitz@apple.com>
2
3         Reviewed by Sam Weinig.
4
5         Reproducible crash with Optimize Legibility extension
6         https://bugs.webkit.org/show_bug.cgi?id=41585
7
8         Test: fast/css/text-rendering-priority.html
9
10         Moved the text-rendering CSS property to the “high priority” group, because applying it
11         during style selection invalidates the font.
12
13         * css/CSSPropertyNames.in: Moved text-rendering to the “high priority” section at the top.
14         * css/CSSStyleSelector.cpp:
15         (WebCore::CSSStyleSelector::applyDeclarations): Updated compile-time assertion.
16
17 2010-07-05  Dan Bernstein  <mitz@apple.com>
18
19         Reviewed by Sam Weinig.
20
21         optimizeLegibility doesn't play nice with fonts that do not have a space glyph
22         https://bugs.webkit.org/show_bug.cgi?id=41599
23
24         No test because none of the fonts available to DumpRenderTree are missing a space glyph.
25
26         * rendering/RenderBlockLineLayout.cpp:
27         (WebCore::RenderBlock::findNextLineBreak): When the font does not map the space character
28         to a glyph, a fallback font is used for space. Therefore, wordTrailingSpaceWidth must be
29         initialized with the width of a space as measured by the Font rather than with the cached
30         space width.
31
32 2010-07-05  Eric Seidel  <eric@webkit.org>
33
34         Reviewed by Adam Barth.
35
36         Implement HTML5's "reset insertion mode appropriately"
37         https://bugs.webkit.org/show_bug.cgi?id=41628
38
39         This has some minimal testing.  One from my previous
40         </table> patch, and a few from the main suite.
41
42         Mostly resetInsertionModeAppropriately isn't used yet
43         but we're about to add a bunch of states which do use it
44         and our test coverage will expand further as we do.
45
46         * html/HTMLTreeBuilder.cpp:
47         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
48         (WebCore::HTMLTreeBuilder::setInsertionModeAndEnd):
49         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
50         * html/HTMLTreeBuilder.h:
51
52 2010-07-04  Eric Seidel  <eric@webkit.org>
53
54         Reviewed by Adam Barth.
55
56         Add </table> support for "in table" insertion mode
57         https://bugs.webkit.org/show_bug.cgi?id=41591
58
59         resetInsertionModeAppropriately isn't implemented yet, however
60         I've added a test for the usage I added.
61
62         * html/HTMLTreeBuilder.cpp:
63         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
64         (WebCore::HTMLTreeBuilder::processEndTag):
65         * html/HTMLTreeBuilder.h:
66
67 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
68
69         Unreviewed build fix for r62503.
70
71         Chromium missing method. Filed bug 41632 to track.
72
73         * loader/appcache/ApplicationCacheHost.h:
74         (WebCore::ApplicationCacheHost::applicationCache):
75
76 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
77
78         Unreviewed build fix for r62503.
79
80         Missed GTK's build file.
81
82         * GNUmakefile.am:
83
84 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
85
86         Unreviewed build fix for r62503.
87
88         Pass a blank ResourceResponse instead of passing 0.
89
90         * loader/appcache/ApplicationCacheGroup.cpp:
91         (WebCore::ApplicationCacheGroup::createResourceHandle):
92
93 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
94
95         Unreviewed build fix for r62503.
96
97         Forward declare ApplicationCache for Chromium.
98
99         * loader/appcache/ApplicationCacheHost.h:
100
101 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
102
103         Reviewed by Pavel Feldman.
104
105         WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
106         https://bugs.webkit.org/show_bug.cgi?id=24529
107
108         Parts of this patch were written by Kavita Kanetkar <kkanetkar@chromium.org>.
109
110         Part 2: Pulling ApplicationCache Resources to Display in the Inspector.
111
112           The InspectorApplicationCacheAgent gathers the information it
113           needs and forwards it on to the inspector.
114
115         * inspector/InspectorApplicationCacheAgent.cpp:
116         (WebCore::InspectorApplicationCacheAgent::fillResourceList): get information about the resources.
117         (WebCore::InspectorApplicationCacheAgent::getApplicationCaches): gathers all the information from the ApplicationCacheHost.
118         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
119         (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
120         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
121         * inspector/InspectorApplicationCacheAgent.h: defines structures to hold information about caches and resources.
122         (WebCore::InspectorApplicationCacheAgent::ApplicationCacheInfo::ApplicationCacheInfo):
123         (WebCore::InspectorApplicationCacheAgent::ResourceInfo::ResourceInfo):
124         (WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
125         * loader/appcache/ApplicationCacheHost.h:
126         (WebCore::ApplicationCacheHost::applicationCacheForInspector): new convention, public cache accessor for the inspector.
127         (WebCore::ApplicationCacheHost::documentLoader): added const.
128
129           The User Interface uses a DataGrid, like Cookies.
130
131         * inspector/front-end/ApplicationCacheItemsView.js:
132         (WebInspector.ApplicationCacheItemsView.prototype._update):
133         (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
134         (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
135         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.numberCompare):
136         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.localeCompare):
137         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
138
139           The usual frontend pull workflow, except this goes through
140           InspectorApplicationCacheAgent instead of InspectorController.
141
142         * inspector/InspectorBackend.cpp:
143         (WebCore::InspectorBackend::getApplicationCaches):
144         (WebCore::InspectorBackend::inspectorApplicationCacheAgent):
145         * inspector/InspectorBackend.h:
146         * inspector/InspectorBackend.idl:
147         * inspector/InspectorFrontend.cpp:
148         (WebCore::InspectorFrontend::didGetApplicationCaches):
149         * inspector/InspectorFrontend.h:
150         * inspector/front-end/DOMAgent.js:
151         (WebInspector.DOMNode.prototype.hasChildNodes): style fix.
152         (WebInspector.DOMAgent.prototype.nodeForId): style fix.
153         (WebInspector.ApplicationCache.getApplicationCachesAsync): pull.
154         (WebInspector.Cookies.getCookiesAsync):
155         * inspector/front-end/StoragePanel.js:
156         (WebInspector.StoragePanel.prototype.updateManifest):
157         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
158         * inspector/front-end/inspector.js:
159         (WebInspector.updateResource):
160         (WebInspector._addAppCacheDomain):
161         (WebInspector.reset):
162
163           Miscellaneous. Localized Strings and fixes.
164
165         * English.lproj/localizedStrings.js: "Type", "%s (%s)"
166         * inspector/InspectorController.cpp:
167         (WebCore::InspectorController::deleteCookie):
168         * inspector/InspectorController.h:
169
170 2010-07-04  Joseph Pecoraro  <joepeck@webkit.org>
171
172         Reviewed by Pavel Feldman.
173
174         WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
175         https://bugs.webkit.org/show_bug.cgi?id=24529
176
177         Part 1: Backend -> Frontend Messages. ApplicationCache Status and Connectivity Status.
178
179         This patch adds an InspectorApplicationCacheAgent to monitor application
180         cache changes, starts a UI in the Storage panel, handles the boilerplate
181         of adding new files.
182
183           Added an agent to encapsulate and handle the application cache logic.
184           This is similar to the timeline agent.
185
186         * inspector/InspectorApplicationCacheAgent.cpp: Added.
187         (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
188         (WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
189         (WebCore::InspectorApplicationCacheAgent::didReceiveManifestResponse):
190         (WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
191         (WebCore::InspectorApplicationCacheAgent::updateNetworkState):
192         * inspector/InspectorApplicationCacheAgent.h: Added.
193
194           InspectorController owns an InspectorApplicationCacheAgent. This
195           handles its lifetime management.
196
197         * inspector/InspectorController.cpp:
198         (WebCore::InspectorController::~InspectorController):
199         (WebCore::InspectorController::connectFrontend): create the agent with a frontend.
200         (WebCore::InspectorController::disconnectFrontend): remove the agent when closing.
201         (WebCore::InspectorController::releaseFrontendLifetimeAgents):
202         * inspector/InspectorController.h:
203
204           User Interface for ApplicationCache in the StoragePanel. This follows
205           very closely to Cookies, it will have a sortable table of items. The
206           status bar contains connectivity and application cache status
207           indicators which update when backend messages are received. There
208           are some stubs which the next part will implement.
209
210         * inspector/front-end/ApplicationCacheItemsView.js: Added.
211         (WebInspector.ApplicationCacheItemsView):
212         (WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems): refresh, delete, connectivity, application cache status.
213         (WebInspector.ApplicationCacheItemsView.prototype.show):
214         (WebInspector.ApplicationCacheItemsView.prototype.hide):
215         (WebInspector.ApplicationCacheItemsView.prototype.updateStatus): this is the application cache status indicator.
216         (WebInspector.ApplicationCacheItemsView.prototype.updateNetworkState): this is the online/offline connectivity indicator.
217         (WebInspector.ApplicationCacheItemsView.prototype._update):
218         (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
219         (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
220         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
221         (WebInspector.ApplicationCacheItemsView.prototype.resize):
222         (WebInspector.ApplicationCacheItemsView.prototype._deleteButtonClicked):
223         (WebInspector.ApplicationCacheItemsView.prototype._deleteCallback):
224         (WebInspector.ApplicationCacheItemsView.prototype._refreshButtonClicked):
225
226           The usual dispatch flow from the backend, to the frontend, to the
227           panel, and then to the visible view. Some slight refactoring to
228           eliminate duplicated code.
229
230         * inspector/InspectorFrontend.cpp:
231         (WebCore::InspectorFrontend::updateDOMStorage):
232         (WebCore::InspectorFrontend::didGetApplicationCaches):
233         (WebCore::InspectorFrontend::updateApplicationCacheStatus):
234         * inspector/InspectorFrontend.h:
235         * inspector/front-end/StoragePanel.js:
236         (WebInspector.StoragePanel):
237         (WebInspector.StoragePanel.prototype.reset):
238         (WebInspector.StoragePanel.prototype.addApplicationCache):
239         (WebInspector.StoragePanel.prototype.showDatabase):
240         (WebInspector.StoragePanel.prototype.showDOMStorage):
241         (WebInspector.StoragePanel.prototype.showCookies):
242         (WebInspector.StoragePanel.prototype.showApplicationCache):
243         (WebInspector.StoragePanel.prototype._genericViewSetup):
244         (WebInspector.StoragePanel.prototype.updateApplicationCacheStatus):
245         (WebInspector.StoragePanel.prototype.updateNetworkState):
246         (WebInspector.CookieSidebarTreeElement.prototype.set subtitle):
247         (WebInspector.ApplicationCacheSidebarTreeElement):
248         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
249         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.get mainTitle):
250         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.set mainTitle):
251         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.get subtitle):
252         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.set subtitle):
253         * inspector/front-end/inspector.js:
254         (WebInspector.dispatch.delayDispatch):
255         (WebInspector.dispatch):
256         (WebInspector._addAppCacheDomain):
257         (WebInspector.addDOMStorage):
258         (WebInspector.updateDOMStorage):
259
260           Notify the InspectorApplicationCacheAgent on application cache changes
261           or specifics. Notify the InspectorController on generic resource events.
262           That is because ApplicationCacheController is a ResourceClient and needs
263           to trigger the resource events normally handled by ResourceLoader.
264
265         * loader/appcache/ApplicationCacheGroup.cpp:
266         (WebCore::inspectorUpdateApplicationCacheStatus): helper method to prevent duplicated code.
267         (WebCore::ApplicationCacheGroup::setNewestCache): status change.
268         (WebCore::ApplicationCacheGroup::makeObsolete): status change.
269         (WebCore::ApplicationCacheGroup::update): status change.
270         (WebCore::ApplicationCacheGroup::createResourceHandle): resource event.
271         (WebCore::ApplicationCacheGroup::willSendRequest): resource event.
272         (WebCore::ApplicationCacheGroup::didReceiveResponse): resource event.
273         (WebCore::ApplicationCacheGroup::didReceiveData): resource event.
274         (WebCore::ApplicationCacheGroup::didFinishLoading): resource event.
275         (WebCore::ApplicationCacheGroup::didFail): resource event.
276         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): resource event.
277         (WebCore::ApplicationCacheGroup::manifestNotFound): status change.
278         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): status change.
279         (WebCore::ApplicationCacheGroup::setUpdateStatus): single access point for status changes.
280         * loader/appcache/ApplicationCacheGroup.h:
281         * page/Page.cpp:
282         (WebCore::networkStateChanged): connectivity status change.
283
284           Final inspector details to add the new file, style new elements,
285           images, and localized strings.
286
287         * inspector/front-end/inspector.css:
288         (.application-cache-sidebar-tree-item .icon):
289         (.timeline-records-counter, .storage-application-cache-status, .storage-application-cache-connectivity):
290         (.storage-application-cache-status-icon, .storage-application-cache-connectivity-icon):
291         (.status-bar-divider):
292         (.storage-application-cache-status, .storage-application-cache-connectivity):
293         * inspector/front-end/inspector.html:
294         * inspector/front-end/Images/applicationCache.png: Added.
295         * English.lproj/localizedStrings.js: "APPLICATION CACHE", "No Application Cache information available.", "Online", "Offline"
296
297           Updated build files.
298
299         * CMakeLists.txt:
300         * WebCore.gypi:
301         * WebCore.pro:
302         * WebCore.vcproj/WebCore.vcproj:
303         * WebCore.xcodeproj/project.pbxproj:
304         * inspector/front-end/WebKit.qrc:
305
306 2010-07-05  Eric Seidel  <eric@webkit.org>
307
308         Reviewed by Adam Barth.
309
310         Add basic <col> support to the treebuilder
311         https://bugs.webkit.org/show_bug.cgi?id=41590
312
313         * html/HTMLTreeBuilder.cpp:
314         (WebCore::HTMLTreeBuilder::processStartTag):
315
316 2010-07-05  Eric Seidel  <eric@webkit.org>
317
318         Reviewed by Adam Barth.
319
320         Add basic "in row" mode to support <td> and <th> insertion
321         https://bugs.webkit.org/show_bug.cgi?id=41588
322
323         Also fixed <td> or <th> as a direct child of <table>.
324
325         Most of this was covered by html5lib/runner.html tests,
326         but I had to add a new tables01.dat to cover the <th> cases.
327
328         * html/HTMLElementStack.cpp:
329         (WebCore::HTMLNames::isTableRowScopeMarker):
330         (WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
331         * html/HTMLElementStack.h:
332         * html/HTMLTreeBuilder.cpp:
333         (WebCore::HTMLTreeBuilder::processStartTag):
334
335 2010-07-05  Eric Seidel  <eric@webkit.org>
336
337         Reviewed by Adam Barth.
338
339         Finish implementing "any other end tag" for "in body" mode
340         https://bugs.webkit.org/show_bug.cgi?id=41582
341
342         I believe I found a "bug" in the HTML5 spec when writing this:
343         http://www.w3.org/Bugs/Public/show_bug.cgi?id=10080
344
345         * html/HTMLTreeBuilder.cpp:
346         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
347         (WebCore::HTMLTreeBuilder::processEndTag):
348         * html/HTMLTreeBuilder.h:
349
350 2010-07-05  Martin Robinson  <mrobinson@igalia.com>
351
352         Unreviewed.
353
354         Add a missing slash to the list of generated sources. This
355         was missing from a previous build fix.
356
357         * GNUmakefile.am:
358
359 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
360
361         Reviewed by Joseph Pecoraro.
362
363         Web Inspector: preserve scroll positions in source frame when switching between panes.
364
365         https://bugs.webkit.org/show_bug.cgi?id=41620
366
367         * inspector/front-end/ScriptsPanel.js:
368         (WebInspector.ScriptsPanel.prototype.hide):
369         * inspector/front-end/SourceFrame.js:
370         (WebInspector.SourceFrame.prototype.set visible):
371         * inspector/front-end/SourceView.js:
372         (WebInspector.SourceView.prototype.hide):
373
374 2010-07-05  Rob Buis  <rwlbuis@gmail.com>
375
376         Reviewed by Dirk Schulze.
377
378         IE SVG test fails
379         https://bugs.webkit.org/show_bug.cgi?id=41619
380
381         Make SVGSVGElement.createSVGTransform create a SVGTransform with the
382         right type, thereby fixing the IE test.
383
384         Test: svg/custom/svg-createsvgtransform-type.html
385
386         * svg/SVGSVGElement.cpp:
387         (WebCore::SVGSVGElement::createSVGTransform):
388
389 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
390
391         Reviewed by Yury Semikhatsky.
392
393         Web Inspector: computed style pane is not updated when styles pane is collapsed.
394
395         https://bugs.webkit.org/show_bug.cgi?id=41615
396
397         * inspector/front-end/ElementsPanel.js:
398         (WebInspector.ElementsPanel.prototype.updateStyles):
399
400 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
401
402         Reviewed by Dirk Schulze.
403
404         Logic to track whether elements are using relative lengths is incomplete
405         https://bugs.webkit.org/show_bug.cgi?id=41566
406
407         Add logic to all SVG elements which create renderes to expose a method
408         "bool selfHasRelativeLengths()", that returns whether the element uses relative
409         lengths (eg. <rect x="50%"...). This will be used soon to avoid relayouts of
410         container children, when the bounds have not changed.
411
412         A new method SVGStyledElement::updateRelativeLengthsInformation() is added,
413         which is called from the various svgAttributeChanged() methods and insertedIntoDocument/removedFromDocument.
414         It will be implemented in a follow-up patch. This patch does not affect any test behaviour related
415         to relayouting. As SVGFilterElement finally got a proper svgAttributeChanged() method, it now
416         properly invalidates clients on attribute changes - covered by a new test.
417
418         Tests: svg/custom/relative-sized-inner-svg.xhtml
419                svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml
420                svg/filters/filter-width-update.svg
421  
422         * rendering/RenderPath.cpp:
423         (WebCore::RenderPath::layout): Rename hasRelativeValues to hasRelativeLengths.
424         * rendering/RenderSVGRoot.cpp:
425         (WebCore::RenderSVGRoot::layout): Ditto.
426         (WebCore::RenderSVGRoot::calcViewport): Ditto.
427         * rendering/RenderSVGViewportContainer.cpp:
428         (WebCore::RenderSVGViewportContainer::calcViewport): Ditto
429         * rendering/SVGRenderSupport.cpp:
430         (WebCore::SVGRenderSupport::layoutChildren): Ditto.
431         * svg/SVGCircleElement.cpp:
432         (WebCore::SVGCircleElement::svgAttributeChanged): Call updateRelativeLengthsInformation() if any attribute which may contain relative lengths changes.
433         (WebCore::SVGCircleElement::selfHasRelativeLengths): Ditto. Same for all other SVG*Elements below.
434         * svg/SVGCircleElement.h:
435         * svg/SVGEllipseElement.cpp:
436         (WebCore::SVGEllipseElement::svgAttributeChanged):
437         (WebCore::SVGEllipseElement::selfHasRelativeLengths):
438         * svg/SVGEllipseElement.h:
439         * svg/SVGFilterElement.cpp:
440         (WebCore::SVGFilterElement::svgAttributeChanged):
441         (WebCore::SVGFilterElement::selfHasRelativeLengths):
442         * svg/SVGFilterElement.h:
443         * svg/SVGForeignObjectElement.cpp:
444         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
445         (WebCore::SVGForeignObjectElement::selfHasRelativeLengths):
446         * svg/SVGForeignObjectElement.h:
447         * svg/SVGImageElement.cpp:
448         (WebCore::SVGImageElement::svgAttributeChanged):
449         (WebCore::SVGImageElement::selfHasRelativeLengths):
450         * svg/SVGImageElement.h:
451         * svg/SVGLineElement.cpp:
452         (WebCore::SVGLineElement::svgAttributeChanged):
453         (WebCore::SVGLineElement::selfHasRelativeLengths):
454         * svg/SVGLineElement.h:
455         * svg/SVGLinearGradientElement.cpp:
456         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
457         (WebCore::SVGLinearGradientElement::selfHasRelativeLengths):
458         * svg/SVGLinearGradientElement.h:
459         * svg/SVGMarkerElement.cpp:
460         (WebCore::SVGMarkerElement::svgAttributeChanged):
461         (WebCore::SVGMarkerElement::selfHasRelativeLengths):
462         * svg/SVGMarkerElement.h:
463         * svg/SVGMaskElement.cpp:
464         (WebCore::SVGMaskElement::svgAttributeChanged):
465         (WebCore::SVGMaskElement::selfHasRelativeLengths):
466         * svg/SVGMaskElement.h:
467         * svg/SVGPatternElement.cpp:
468         (WebCore::SVGPatternElement::svgAttributeChanged):
469         (WebCore::SVGPatternElement::selfHasRelativeLengths):
470         * svg/SVGPatternElement.h:
471         * svg/SVGRadialGradientElement.cpp:
472         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
473         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
474         * svg/SVGRadialGradientElement.h:
475         * svg/SVGRectElement.cpp:
476         (WebCore::SVGRectElement::svgAttributeChanged):
477         (WebCore::SVGRectElement::selfHasRelativeLengths):
478         * svg/SVGRectElement.h:
479         * svg/SVGSVGElement.cpp:
480         (WebCore::SVGSVGElement::svgAttributeChanged):
481         (WebCore::SVGSVGElement::selfHasRelativeLengths):
482         * svg/SVGSVGElement.h:
483         * svg/SVGStyledElement.cpp:
484         (WebCore::SVGStyledElement::insertedIntoDocument): Call updateRelativeLengthsInformation().
485         (WebCore::SVGStyledElement::removedFromDocument): Ditto.
486         (WebCore::SVGStyledElement::updateRelativeLengthsInformation): Not implemented so far. Will land in a follow-up patch, together with the render tree changes.
487         * svg/SVGStyledElement.h:
488         (WebCore::SVGStyledElement::hasRelativeLengths): Devirtualized. For now, just call selfHasRelativeLengths() - this will change in a follow-up patch.
489         (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
490         (WebCore::SVGStyledElement::selfHasRelativeLengths): Renamed from hasRelativeValues().
491         * svg/SVGSymbolElement.cpp:
492         (WebCore::SVGSymbolElement::svgAttributeChanged):
493         (WebCore::SVGSymbolElement::selfHasRelativeLengths):
494         * svg/SVGSymbolElement.h:
495         * svg/SVGTextContentElement.cpp:
496         (WebCore::SVGTextContentElement::selfHasRelativeLengths):
497         * svg/SVGTextContentElement.h:
498         * svg/SVGTextPathElement.cpp:
499         (WebCore::SVGTextPathElement::svgAttributeChanged):
500         (WebCore::SVGTextPathElement::insertedIntoDocument): Call right base class' method. Skipped one in the hierachy before.
501         (WebCore::SVGTextPathElement::selfHasRelativeLengths):
502         * svg/SVGTextPathElement.h:
503         * svg/SVGTextPositioningElement.cpp:
504         (WebCore::SVGTextPositioningElement::svgAttributeChanged):
505         (WebCore::listContainsRelativeValue): New helper funtion that checks wheter a SVGLengthList contains relative lengths.
506         (WebCore::SVGTextPositioningElement::selfHasRelativeLengths):
507         * svg/SVGTextPositioningElement.h:
508         * svg/SVGUseElement.cpp:
509         (WebCore::SVGUseElement::insertedIntoDocument): Call right base class' method. Skipped on in the hierachy before.
510         (WebCore::SVGUseElement::removedFromDocument): Ditto.
511         (WebCore::SVGUseElement::svgAttributeChanged):
512         (WebCore::SVGUseElement::buildShadowAndInstanceTree): Call updateRelativeLengthsInformation() after building the shadow tree.
513         (WebCore::SVGUseElement::selfHasRelativeLengths): Same as all other methods, except that it includes the shadow tree root element.
514         * svg/SVGUseElement.h:
515
516 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
517
518         Reviewed by Yury Semikhatsky.
519
520         Web Inspector: Problem with copying a code from Scripts panel.
521
522         https://bugs.webkit.org/show_bug.cgi?id=40432
523
524         * inspector/front-end/TextViewer.js:
525         (WebInspector.TextViewer.prototype._getSelection):
526         (WebInspector.TextViewer.prototype._selectionToPosition):
527
528 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
529
530         Reviewed by Dirk Schulze / Darin Adler.
531
532         Node.cloneNode does not work on SVG nodes
533         https://bugs.webkit.org/show_bug.cgi?id=41421
534
535         Be sure to synchronize animated SVG properties before checking whether NamedNodeMap exists.
536         When creating a SVG element from JS, and setting all attributes via SVG DOM, and not using setAttribute
537         the NamedNodeMap does not exist. When cloning such an element, be sure to synchronize SVG <-> XML DOM
538         attributes before attempting to clone, otherwhise the SVG animated properties are lost while cloning.
539
540         Test: svg/custom/clone-element-with-animated-svg-properties.html
541
542         * dom/Element.cpp:
543         (WebCore::Element::cloneElementWithoutChildren):
544
545 2010-07-05  Antti Koivisto  <koivisto@iki.fi>
546
547         Revert unplanned project file change.
548
549         * WebCore.pri:
550         * WebCore.pro:
551
552 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
553
554         Reviewed by Darin Adler.
555
556         Memory corruption with SVG <use> element
557         https://bugs.webkit.org/show_bug.cgi?id=40994
558
559         Fix race condition in svgAttributeChanged. Never call svgAttributeChanged() from attributeChanged()
560         when we're synchronizing SVG attributes. It leads to either unnecessary extra work being done or
561         crashes. Especially together with <polyline>/<polygon> which always synchronize the SVGAnimatedPoints
562         datastructure with the points attribute, no matter if there are changes are not. This should be
563         furhter optimized, but this fix is sane and fixes the root of the evil races.
564
565         Test: svg/custom/use-property-synchronization-crash.svg
566
567         * svg/SVGElement.cpp:
568         (WebCore::SVGElement::attributeChanged):
569
570 2010-07-05  Yury Semikhatsky  <yurys@chromium.org>
571
572         Reviewed by Pavel Feldman.
573
574         [v8] Web Inspector: remove v8-specific code dealing with getOwnPropertyNames from InjectedScript.js
575         https://bugs.webkit.org/show_bug.cgi?id=41595
576
577         * inspector/front-end/InjectedScript.js:
578         (injectedScriptConstructor):
579
580 2010-07-04  Rob Buis  <rwlbuis@gmail.com>
581
582         Reviewed by Dirk Schulze.
583
584         SVG polygons should draw polygons up to the first parsing error
585         https://bugs.webkit.org/show_bug.cgi?id=41140
586
587         Render polygons up until the first parsing error.
588
589         Test: svg/custom/poly-parsing-error.html
590
591         * svg/SVGPolyElement.cpp:
592         (WebCore::SVGPolyElement::parseMappedAttribute):
593
594 2010-07-04  Alice Liu  <alice.liu@apple.com>
595
596         Reviewed by Dan Bernstein.
597
598         Crash reading past end of block in UniscribeController::shapeAndPlaceItem
599         https://bugs.webkit.org/show_bug.cgi?id=41554
600
601         Test: platform/win/fast/text/uniscribe-item-boundary-crash.html
602
603         * platform/graphics/win/UniscribeController.cpp:
604         (WebCore::UniscribeController::shapeAndPlaceItem):
605         Don't look one past the end of str. Instead look to the next item, if applicable.
606
607 2010-07-04  Eric Seidel  <eric@webkit.org>
608
609         Reviewed by Adam Barth.
610
611         Add basic "in table body" mode to support <tr> insertion
612         https://bugs.webkit.org/show_bug.cgi?id=41587
613
614         This also adds a (currently untestable?)
615         popUntilTableBodyScopeMarker code path.
616         Any tags which would be between a tbody a <tr> would end up
617         foster parented outside the <table>.  I think the spec was
618         just being over-cautious with popUntilTableBodyScopeMarker.
619
620         * html/HTMLElementStack.cpp:
621         (WebCore::HTMLNames::isTableScopeMarker):
622         (WebCore::HTMLNames::isTableBodyScopeMarker):
623         (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
624         * html/HTMLElementStack.h:
625         * html/HTMLTreeBuilder.cpp:
626         (WebCore::HTMLTreeBuilder::processStartTag):
627         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
628
629 2010-07-04  Anders Carlsson  <andersca@apple.com>
630
631         Fix Windows build.
632
633         * WebCore.vcproj/WebCore.vcproj:
634
635 2010-07-04  Eric Seidel  <eric@webkit.org>
636
637         Reviewed by Adam Barth.
638
639         HTMLTreeBuilder needs an adoption agency
640         https://bugs.webkit.org/show_bug.cgi?id=41453
641
642         Fix Qt Minimal build.  SVGNames.h should always
643         be generated, even when SVG is off, however that's
644         not how things currently work.
645
646         * html/HTMLTreeBuilder.cpp:
647
648 2010-07-04  Eric Seidel  <eric@webkit.org>
649
650         Reviewed by Adam Barth.
651
652         Add a very basic InTable insertion mode
653         https://bugs.webkit.org/show_bug.cgi?id=41581
654
655         There is still a bunch of low-hanging fruit left for this
656         mode, but even this most-basic support lets us pass 6 more tests. :)
657
658         It's a progression, ship it! :)
659
660         * html/HTMLElementStack.cpp:
661         (WebCore::HTMLNames::isScopeMarker):
662         (WebCore::HTMLNames::isListItemScopeMarker):
663         (WebCore::HTMLNames::isTableScopeMarker):
664         (WebCore::HTMLElementStack::popUntilTableScopeMarker):
665         * html/HTMLElementStack.h:
666         * html/HTMLFormattingElementList.cpp:
667         (WebCore::HTMLFormattingElementList::appendMarker):
668         * html/HTMLFormattingElementList.h:
669         * html/HTMLTreeBuilder.cpp:
670         (WebCore::HTMLTreeBuilder::processStartTag):
671         * html/HTMLTreeBuilder.h:
672
673 2010-07-01  Eric Seidel  <eric@webkit.org>
674
675         Reviewed by Adam Barth.
676
677         HTMLTreeBuilder needs an adoption agency
678         https://bugs.webkit.org/show_bug.cgi?id=41453
679
680         This changes some test results, but only makes the simplest
681         adoption agency cases pass.  I think the code is likely
682         very close, but further iteration to make this change larger
683         seems counter-productive.  I recommend we check in this
684         progression and work from here.
685
686         * dom/ContainerNode.cpp:
687         (WebCore::ContainerNode::addChildCommon):
688          - Make sure callers don't assume this will reparent.
689         (WebCore::ContainerNode::parserAddChild):
690          - Update comment to document lack of reparenting behavior.
691         * html/HTMLElementStack.cpp:
692         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
693         (WebCore::HTMLElementStack::ElementRecord::~ElementRecord):
694         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
695         (WebCore::HTMLElementStack::ElementRecord::isAbove):
696          - Added for debugging.
697         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
698         (WebCore::HTMLElementStack::insertAbove):
699          - Needed for the adoption agency.
700         (WebCore::HTMLElementStack::topRecord):
701         (WebCore::HTMLElementStack::bottom):
702         (WebCore::HTMLElementStack::removeHTMLHeadElement):
703         (WebCore::HTMLElementStack::remove):
704         (WebCore::HTMLElementStack::find):
705         (WebCore::HTMLElementStack::topmost):
706         (WebCore::HTMLElementStack::contains):
707         (WebCore::HTMLElementStack::htmlElement):
708         (WebCore::HTMLElementStack::headElement):
709         (WebCore::HTMLElementStack::bodyElement):
710         (WebCore::HTMLElementStack::pushCommon):
711         (WebCore::HTMLElementStack::removeNonTopCommon):
712          - Fix the name to match top/bottom.
713         * html/HTMLElementStack.h:
714         (WebCore::HTMLElementStack::ElementRecord::element):
715         (WebCore::HTMLElementStack::ElementRecord::next):
716         (WebCore::HTMLElementStack::ElementRecord::releaseNext):
717         (WebCore::HTMLElementStack::ElementRecord::setNext):
718         * html/HTMLFormattingElementList.cpp:
719         (WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
720         (WebCore::HTMLFormattingElementList::contains):
721         (WebCore::HTMLFormattingElementList::find):
722         (WebCore::HTMLFormattingElementList::remove):
723         * html/HTMLFormattingElementList.h:
724         (WebCore::HTMLFormattingElementList::isEmpty):
725         (WebCore::HTMLFormattingElementList::size):
726         * html/HTMLTreeBuilder.cpp:
727         (WebCore::HTMLTreeBuilder::processStartTag):
728         (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
729          - Part of the Adoption Agency algorithm.
730         (WebCore::HTMLTreeBuilder::findFosterParentFor):
731          - Used to move mis-nested content out of tables.
732            This doesn't seem to work quite right yet.
733         (WebCore::HTMLTreeBuilder::reparentChildren):
734         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
735          - The ridiculously long/complicated adoption agency algorithm from HTML5.
736         (WebCore::HTMLTreeBuilder::processEndTag):
737         * html/HTMLTreeBuilder.h:
738
739 2010-07-04  Justin Schuh  <jschuh@chromium.org>
740
741         Reviewed by Darin Adler.
742
743         Remove custom src bindings for HTMLFrameElement and HTMLIFrameElement
744         https://bugs.webkit.org/show_bug.cgi?id=41578
745
746         Remove bindings obsoleted by: http://trac.webkit.org/changeset/59866
747         No new tests because behavior is not changed.
748
749         * Android.jscbindings.mk:
750         * Android.v8bindings.mk:
751         * CMakeLists.txt:
752         * GNUmakefile.am:
753         * WebCore.gypi:
754         * WebCore.pro:
755         * WebCore.vcproj/WebCore.vcproj:
756         * WebCore.xcodeproj/project.pbxproj:
757         * bindings/js/JSBindingsAllInOne.cpp:
758         * bindings/js/JSHTMLFrameElementCustom.cpp:
759         * bindings/js/JSHTMLIFrameElementCustom.cpp: Removed.
760         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
761         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: Removed.
762         * html/HTMLFrameElement.idl:
763         * html/HTMLIFrameElement.idl:
764
765 2010-07-03  Adam Barth  <abarth@webkit.org>
766
767         Reviewed by Maciej Stachowiak.
768
769         Implement AfterAfterFramesetMode
770         https://bugs.webkit.org/show_bug.cgi?id=41561
771
772         This mode is almost unobservable.  The main way to observe it seems to
773         be seeing where comment nodes get attached to the DOM.
774
775         * html/HTMLTreeBuilder.cpp:
776         (WebCore::HTMLTreeBuilder::processStartTag):
777         (WebCore::HTMLTreeBuilder::processEndTag):
778         (WebCore::HTMLTreeBuilder::processComment):
779         (WebCore::HTMLTreeBuilder::processCharacter):
780         (WebCore::HTMLTreeBuilder::processEndOfFile):
781
782 2010-07-03  Zhenyao Mo  <zmo@google.com>
783
784         Reviewed by Dimitri Glazkov.
785
786         WebGLRenderingContext::vertexAttrib* leads to possible out-of-range vector member visit
787         https://bugs.webkit.org/show_bug.cgi?id=41572
788
789         * html/canvas/WebGLRenderingContext.cpp: Fix the out-of-range vector member visit, also refactor the code.
790         (WebCore::WebGLRenderingContext::vertexAttrib1f):
791         (WebCore::WebGLRenderingContext::vertexAttrib1fv):
792         (WebCore::WebGLRenderingContext::vertexAttrib2f):
793         (WebCore::WebGLRenderingContext::vertexAttrib2fv):
794         (WebCore::WebGLRenderingContext::vertexAttrib3f):
795         (WebCore::WebGLRenderingContext::vertexAttrib3fv):
796         (WebCore::WebGLRenderingContext::vertexAttrib4f):
797         (WebCore::WebGLRenderingContext::vertexAttrib4fv):
798         (WebCore::WebGLRenderingContext::vertexAttribfImpl):
799         (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
800         * html/canvas/WebGLRenderingContext.h: Helper function declaration.
801
802 2010-07-03  Jeremy Orlow  <jorlow@chromium.org>
803
804         Ugh.  Have to put the destructor in the .h file since the .ccp isn't compiled yet.
805
806         * storage/IDBKey.h:
807         (WebCore::IDBKey::~IDBKey):
808
809 2010-07-03  Jeremy Orlow  <jorlow@chromium.org>
810
811         Build fix.  Forgot destructor.
812
813         * storage/IDBKey.cpp:
814         (WebCore::IDBKey::~IDBKey):
815
816 2010-06-26  Jeremy Orlow  <jorlow@chromium.org>
817
818         Reviewed by Dumitru Daniliuc.
819
820         Support for keys and in-memory storage for IndexedDB
821         https://bugs.webkit.org/show_bug.cgi?id=41252
822
823         It'll take some time to get data persistence working for IndexedDB,
824         so until then, we'll just store everything in an in memory tree.
825         The tree uses WTF::AVLTree and is a template so that it can be used by
826         object stores (IDBKey -> SerializedScriptValue) and indexes (IDBKey ->
827         IDBKey).  This class will be used in a subsequent patch.
828
829         Also add an IDBKey type that represents one of these keys.  We use a
830         custom toJS function in a way similar to IDBAny to convert from WebCore
831         to a JS value.  For converting the other way, we have to teach the code
832         generators what to do (unfortunately).  This is done in a way similar
833         to serialized script value.  Unlike serialized script value, IDBKey is
834         in WebCore and only a helper function is JS engine specific.
835
836         This code is not accessable from layout tests.  (Will fix in
837         https://bugs.webkit.org/show_bug.cgi?id=41250)  The bindings tests
838         show us that the generated bindings are what we expect.
839
840         * ForwardingHeaders/wtf/AVLTree.h: Added.
841         * bindings/js/IDBBindingUtilities.cpp: Added.
842         (WebCore::createIDBKeyFromValue):
843         * bindings/js/IDBBindingUtilities.h: Added.
844         * bindings/js/JSIDBKeyCustom.cpp: Added.
845         (WebCore::toJS):
846         * bindings/scripts/CodeGeneratorJS.pm:
847         * bindings/scripts/CodeGeneratorV8.pm:
848         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
849         (WebDOMTestObj::idbKey):
850         * bindings/scripts/test/CPP/WebDOMTestObj.h:
851         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
852         (webkit_dom_test_obj_idb_key):
853         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
854         * bindings/scripts/test/JS/JSTestObj.cpp:
855         (WebCore::):
856         (WebCore::jsTestObjPrototypeFunctionIdbKey):
857         * bindings/scripts/test/JS/JSTestObj.h:
858         * bindings/scripts/test/ObjC/DOMTestObj.h:
859         * bindings/scripts/test/ObjC/DOMTestObj.mm:
860         (-[DOMTestObj idbKey:]):
861         * bindings/scripts/test/TestObj.idl:
862         * bindings/scripts/test/V8/V8TestObj.cpp:
863         (WebCore::TestObjInternal::idbKeyCallback):
864         (WebCore::):
865         * bindings/v8/IDBBindingUtilities.cpp: Added.
866         (WebCore::createIDBKeyFromValue):
867         * bindings/v8/IDBBindingUtilities.h: Added.
868         * bindings/v8/custom/V8IDBKeyCustom.cpp: Added.
869         (WebCore::toV8):
870         * storage/IDBCallbacks.h:
871         * storage/IDBKey.cpp: Added.
872         (WebCore::IDBKey::IDBKey):
873         (WebCore::IDBKey::~IDBKey):
874         * storage/IDBKey.h: Added.
875         (WebCore::IDBKey::create):
876         (WebCore::IDBKey::):
877         (WebCore::IDBKey::type):
878         (WebCore::IDBKey::string):
879         (WebCore::IDBKey::number):
880         * storage/IDBKey.idl: Added.
881         * storage/IDBKeyTree.h: Added.
882         (WebCore::IDBKeyTree::create):
883         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_less):
884         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_less):
885         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_greater):
886         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_greater):
887         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_balance_factor):
888         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_balance_factor):
889         (WebCore::IDBKeyTree::AVLTreeAbstractor::null):
890         (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_key_node):
891         (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_node_node):
892         (WebCore::::IDBKeyTree):
893         (WebCore::::~IDBKeyTree):
894         (WebCore::::AVLTreeAbstractor::compare_key_key):
895         (WebCore::::get):
896         (WebCore::::insert):
897         (WebCore::::remove):
898
899 2010-07-03  Jon Honeycutt  <jhoneycutt@apple.com>
900
901         The missing plug-in indicator should be clickable
902
903         https://bugs.webkit.org/show_bug.cgi?id=41550
904         <rdar://problem/8132162>
905
906         From an original patch by Kevin Decker.
907
908         Reviewed by Darin Adler.
909
910         * html/HTMLPlugInElement.cpp:
911         (WebCore::HTMLPlugInElement::defaultEventHandler):
912         If the renderer is a RenderEmbeddedWidget showing the missing plug-in
913         indicator, and the event is a click even, call the ChromeClient's
914         missingPluginButtonClicked() function.
915
916         * page/ChromeClient.h:
917         (WebCore::ChromeClient::missingPluginButtonClicked):
918         Declare missingPluginButtonClicked(), and stub the default
919         implementation.
920
921         * rendering/RenderEmbeddedObject.cpp:
922         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
923         Initialize m_showsMissingPluginIndicator.
924         (WebCore::RenderEmbeddedObject::setShowsMissingPluginIndicator):
925         Assert that we're not currently showing any replacement text. Set
926         m_showsMissingPluginIndicator after setting the replacement text.
927         (WebCore::RenderEmbeddedObject::setShowsCrashedPluginIndicator):
928         Add the same assert as above.
929
930         * rendering/RenderEmbeddedObject.h:
931         (WebCore::RenderEmbeddedObject::showsMissingPluginIndicator):
932         Getter for m_showsMissingPluginIndicator.
933
934 2010-07-02  Oliver Hunt  <oliver@apple.com>
935
936         Reviewed by Geoffrey Garen.
937
938         Move BOM handling out of the lexer and parser
939         https://bugs.webkit.org/show_bug.cgi?id=41539
940
941         Update WebCore to ensure that SourceProviders don't
942         produce strings with BOMs in them.
943
944         * bindings/js/ScriptSourceProvider.h:
945         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
946         * bindings/js/StringSourceProvider.h:
947         (WebCore::StringSourceProvider::StringSourceProvider):
948         * loader/CachedScript.cpp:
949         (WebCore::CachedScript::CachedScript):
950         (WebCore::CachedScript::script):
951         * loader/CachedScript.h:
952         (WebCore::CachedScript::):
953           CachedScript now stores decoded data with the BOMs stripped,
954           and caches the presence of BOMs across memory purges.
955
956 2010-07-03  Xan Lopez  <xlopez@igalia.com>
957
958         Include DerivedSources/WebCore before DerivedSources/
959
960         Recently DerivedSources generation was changed, with some files no
961         longer being generated in the toplevel DerivedSources
962         directory. Since that directory is first in the -I flags the build
963         can be broken in some cases by including old files unless a 'make
964         clean' is done. Change the -I order to fix the build in the 32 bit
965         Release bot.
966
967         * GNUmakefile.am:
968
969 2010-07-03  Erik Arvidsson  <arv@chromium.org>
970
971         Reviewed by Ojan Vafai.
972
973         Fix issue where a contextmenu event was reporting the wrong target if
974         the context menu was shown due to pressing the context menu key
975         (or Shift+F10).
976         
977         Split sendContextMenuForEvent into one case for keyboard events and use
978         that when the contextmenu event should be dispatched due to a keypress.
979
980         For the keboard case we now use the focused node as the target for the
981         event and use the clipped rect to determine the position of the menu.
982         
983         https://bugs.webkit.org/show_bug.cgi?id=38129
984
985         Use manual test since DRT does not handle context menu keys.
986
987         * manual-tests/win/contextmenu-key.html: Added.
988         * page/EventHandler.cpp:
989         (WebCore::EventHandler::sendContextMenuEvent):
990         (WebCore::EventHandler::sendContextMenuEventForKey):
991         * page/EventHandler.h:
992
993 2010-07-03  Dirk Schulze  <krit@webkit.org>
994
995         Unreviewed sort of XCode project file.
996
997         * WebCore.xcodeproj/project.pbxproj:
998
999 2010-07-03  Kwang Yul Seo  <skyul@company100.net>
1000
1001         Reviewed by Kent Tamura.
1002
1003         [BREWMP] Port Widget
1004         https://bugs.webkit.org/show_bug.cgi?id=41538
1005
1006         Make Widget a dummy class. WebKit Brew MP uses the full screen mode
1007         and does not use the window system introduced in Brew MP.
1008
1009         * platform/Widget.h:
1010         * platform/brew/WidgetBrew.cpp: Added.
1011         (WebCore::Widget::Widget):
1012         (WebCore::Widget::~Widget):
1013         (WebCore::Widget::frameRect):
1014         (WebCore::Widget::setFrameRect):
1015         (WebCore::Widget::setFocus):
1016         (WebCore::Widget::setCursor):
1017         (WebCore::Widget::show):
1018         (WebCore::Widget::hide):
1019         (WebCore::Widget::paint):
1020         (WebCore::Widget::setIsSelected):
1021
1022 2010-07-03  Adam Barth  <abarth@webkit.org>
1023
1024         Reviewed by Eric Seidel.
1025
1026         Implement AfterFramesetMode
1027         https://bugs.webkit.org/show_bug.cgi?id=41560
1028
1029         * html/HTMLTreeBuilder.cpp:
1030         (WebCore::HTMLTreeBuilder::processStartTag):
1031         (WebCore::HTMLTreeBuilder::processEndTag):
1032         (WebCore::HTMLTreeBuilder::processCharacter):
1033         (WebCore::HTMLTreeBuilder::processEndOfFile):
1034
1035 2010-07-02  Adam Barth  <abarth@webkit.org>
1036
1037         Reviewed by Eric Seidel.
1038
1039         Implement InFramesetMode
1040         https://bugs.webkit.org/show_bug.cgi?id=41559
1041
1042         Pretty straighforward.  We still don't handle character tokens
1043         correctly.
1044
1045         * html/HTMLTreeBuilder.cpp:
1046         (WebCore::HTMLTreeBuilder::processStartTag):
1047         (WebCore::HTMLTreeBuilder::processEndTag):
1048         (WebCore::HTMLTreeBuilder::processCharacter):
1049         (WebCore::HTMLTreeBuilder::processEndOfFile):
1050
1051 2010-07-02  Adam Barth  <abarth@webkit.org>
1052
1053         Reviewed by Eric Seidel.
1054
1055         Handle <frameset> InBody
1056         https://bugs.webkit.org/show_bug.cgi?id=41558
1057
1058         Handling the <frameset> tag in the InBody mode is somewhat delicate.
1059
1060         * html/HTMLElementStack.cpp:
1061         (WebCore::HTMLElementStack::popHTMLBodyElement):
1062         (WebCore::HTMLElementStack::popUntil):
1063         (WebCore::HTMLElementStack::popCommon):
1064         * html/HTMLElementStack.h:
1065         * html/HTMLTreeBuilder.cpp:
1066         (WebCore::HTMLTreeBuilder::processStartTag):
1067
1068 2010-07-02  Adam Barth  <abarth@webkit.org>
1069
1070         Reviewed by Eric Seidel.
1071
1072         Special handling of <rp> and <rt> tags
1073         https://bugs.webkit.org/show_bug.cgi?id=41557
1074
1075         So sayeth the spec.
1076
1077         * html/HTMLTreeBuilder.cpp:
1078         (WebCore::HTMLTreeBuilder::processStartTag):
1079
1080 2010-07-02  Adam Barth  <abarth@webkit.org>
1081
1082         Reviewed by Eric Seidel.
1083
1084         Implement special optgroup processing
1085         https://bugs.webkit.org/show_bug.cgi?id=41556
1086
1087         * html/HTMLTreeBuilder.cpp:
1088         (WebCore::HTMLTreeBuilder::processStartTag):
1089
1090 2010-07-02  Adam Barth  <abarth@webkit.org>
1091
1092         Reviewed by Eric Seidel.
1093
1094         Handle <image> in new parser
1095         https://bugs.webkit.org/show_bug.cgi?id=41555
1096
1097         This patch is kind of goofy but apparently how the world works.
1098
1099         * html/HTMLToken.h:
1100         (WebCore::AtomicHTMLToken::setName):
1101         * html/HTMLTreeBuilder.cpp:
1102         (WebCore::HTMLTreeBuilder::processStartTag):
1103
1104 2010-07-02  Kwang Yul Seo  <skyul@company100.net>
1105
1106         Reviewed by Alexey Proskuryakov.
1107
1108         Remove extra semicolon at the end of HTMLTreeBuilder::attach
1109         https://bugs.webkit.org/show_bug.cgi?id=41546
1110
1111         This is not critical, but the extra semicolon at the end of HTMLTreeBuilder::attach
1112         causes a warning in RVCT.
1113
1114         * html/HTMLTreeBuilder.h:
1115         (WebCore::HTMLTreeBuilder::attach):
1116
1117 2010-07-02  Tony Gentilcore  <tonyg@chromium.org>
1118
1119         Reviewed by Darin Adler.
1120
1121         Performance::disconnectFrame() needs to disconnect its children
1122         https://bugs.webkit.org/show_bug.cgi?id=41533
1123
1124         No new tests because no new functionality.
1125
1126         * page/Performance.cpp:
1127         (WebCore::Performance::disconnectFrame):
1128
1129 2010-07-02  Luiz Agostini  <luiz.agostini@openbossa.org>
1130
1131         Reviewed by Sam Weinig.
1132
1133         Checking if WTF_USE_JSC is defined before redefining it in config.h
1134         https://bugs.webkit.org/show_bug.cgi?id=41530
1135
1136         * config.h:
1137
1138 2010-07-02  Tony Gentilcore  <tonyg@chromium.org>
1139
1140         Reviewed by Dimitri Glazkov.
1141
1142         Add vendor prefix to window.performance
1143         https://bugs.webkit.org/show_bug.cgi?id=41525
1144
1145         No new tests because window.performance tests not landed yet.
1146
1147         * page/DOMWindow.cpp:
1148         (WebCore::DOMWindow::webkitPerformance):
1149         * page/DOMWindow.h:
1150         (WebCore::DOMWindow::optionalWebkitPerformance):
1151         * page/DOMWindow.idl:
1152
1153 2010-07-02  Zoltan Herczeg  <zherczeg@webkit.org>
1154
1155         Reviewed by Oliver Hunt.
1156
1157         Minor fix: Diffuse constant is float (not integer)
1158         https://bugs.webkit.org/show_bug.cgi?id=10412
1159
1160         * svg/SVGFEDiffuseLightingElement.cpp:
1161         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
1162
1163 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
1164
1165         Unreviewed.
1166
1167         Build fix for GTK+. Try to force a rebuild of the HTMLNames.h
1168         file first by touching HTMLTagNames.in.
1169
1170         * html/HTMLTagNames.in:
1171
1172 2010-07-02  Andreas Kling  <andreas.kling@nokia.com>
1173
1174         Reviewed by Oliver Hunt.
1175
1176         RGB colors should be clamped to the 0-255 range
1177         https://bugs.webkit.org/show_bug.cgi?id=39482
1178
1179         Spec link:
1180         http://www.whatwg.org/specs/web-apps/current-work/#colors
1181
1182         Test: fast/canvas/canvas-color-clamping.html
1183
1184         * css/CSSParser.cpp:
1185         (WebCore::parseColorInt):
1186         (WebCore::CSSParser::parseColor):
1187         (WebCore::parseColorIntFromValue):
1188         (WebCore::CSSParser::parseColorParameters):
1189
1190 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1191
1192         Unreviewed, rolling out r62410.
1193         http://trac.webkit.org/changeset/62410
1194         https://bugs.webkit.org/show_bug.cgi?id=41549
1195
1196         accursed last minute changes (Requested by olliej on #webkit).
1197
1198         * bindings/js/ScriptSourceProvider.h:
1199         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
1200         * bindings/js/StringSourceProvider.h:
1201         (WebCore::StringSourceProvider::StringSourceProvider):
1202         * loader/CachedScript.cpp:
1203         (WebCore::CachedScript::CachedScript):
1204         (WebCore::CachedScript::script):
1205         * loader/CachedScript.h:
1206
1207 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
1208
1209         Unreviewed.
1210
1211         Further Build fix for GTK+. Also include HTMLElementFactory.h in
1212         the list of dependencies.
1213
1214         * GNUmakefile.am:
1215
1216 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
1217
1218         Unreviewed.
1219
1220         Build fix for GTK+. *Names.{cpp,h} targets should now include the
1221         header files. Also adds the header files to the generated sources list.
1222
1223         * GNUmakefile.am:
1224
1225 2010-07-02  Dumitru Daniliuc  <dumi@chromium.org>
1226
1227         Reviewed by Darin Fisher.
1228
1229         DB clean up.
1230         https://bugs.webkit.org/show_bug.cgi?id=41404
1231
1232         1. Made all DatabaseTasks internal classes of Database and made
1233            the Database methods called by those tasks private.
1234         2. Removed the Database::stop{ed}() methods.
1235         3. Removed the code that kept track of open databases from
1236            ScriptExecutionContext (no longer needed).
1237         4. Made minor changes to Database::closeImmediately() to make it
1238            possible for DatabaseThread to call that method instead of
1239            close().
1240         5. Minor fix to DatabaseTracker: addOpenDatabase() should call
1241            OriginQuotaManager::addDatabase() if the origin quota manager
1242            is not tracking this origin.
1243         6. Removed Database::performPolicyChecks(). We already update the
1244            DB size after each transaction, and we enforce a max size for
1245            the DB at the beginning of each transaction.
1246
1247         * dom/ScriptExecutionContext.cpp:
1248         (WebCore::ScriptExecutionContext::stopDatabases):
1249         * dom/ScriptExecutionContext.h:
1250         (WebCore::ScriptExecutionContext::hasOpenDatabases):
1251         * storage/Database.cpp:
1252         (WebCore::Database::openDatabase):
1253         (WebCore::Database::Database):
1254         (WebCore::Database::markAsDeletedAndClose):
1255         (WebCore::Database::close):
1256         (WebCore::Database::closeImmediately):
1257         * storage/Database.h:
1258         * storage/DatabaseTask.cpp:
1259         (WebCore::DatabaseTask::performTask):
1260         (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
1261         (WebCore::Database::DatabaseOpenTask::doPerformTask):
1262         (WebCore::Database::DatabaseOpenTask::debugTaskName):
1263         (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
1264         (WebCore::Database::DatabaseCloseTask::doPerformTask):
1265         (WebCore::Database::DatabaseCloseTask::debugTaskName):
1266         (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
1267         (WebCore::Database::DatabaseTransactionTask::doPerformTask):
1268         (WebCore::Database::DatabaseTransactionTask::debugTaskName):
1269         (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
1270         (WebCore::Database::DatabaseTableNamesTask::doPerformTask):
1271         (WebCore::Database::DatabaseTableNamesTask::debugTaskName):
1272         * storage/DatabaseTask.h:
1273         (WebCore::Database::DatabaseOpenTask::create):
1274         (WebCore::Database::DatabaseCloseTask::create):
1275         (WebCore::Database::DatabaseTransactionTask::create):
1276         (WebCore::Database::DatabaseTableNamesTask::create):
1277         * storage/DatabaseThread.cpp:
1278         (WebCore::DatabaseThread::databaseThread):
1279         * storage/DatabaseTracker.cpp:
1280         (WebCore::DatabaseTracker::addOpenDatabase):
1281         * storage/SQLTransaction.cpp:
1282         (WebCore::SQLTransaction::executeSQL):
1283         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
1284
1285 2010-07-02  Oliver Hunt  <oliver@apple.com>
1286
1287         Reviewed by Geoffrey Garen.
1288
1289         Move BOM handling out of the lexer and parser
1290         https://bugs.webkit.org/show_bug.cgi?id=41539
1291
1292         Update WebCore to ensure that SourceProviders don't
1293         produce strings with BOMs in them.
1294
1295         * bindings/js/ScriptSourceProvider.h:
1296         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
1297         * bindings/js/StringSourceProvider.h:
1298         (WebCore::StringSourceProvider::StringSourceProvider):
1299         * loader/CachedScript.cpp:
1300         (WebCore::CachedScript::CachedScript):
1301         (WebCore::CachedScript::script):
1302         * loader/CachedScript.h:
1303         (WebCore::CachedScript::):
1304           CachedScript now stores decoded data with the BOMs stripped,
1305           and caches the presence of BOMs across memory purges.
1306
1307 2010-07-02  Sam Weinig  <sam@webkit.org>
1308
1309         Add missing symbol to exports file.
1310
1311         * WebCore.base.exp:
1312
1313 2010-07-02  Abhishek Arya  <inferno@chromium.org>
1314
1315         Reviewed by Darin Fisher.
1316
1317         Remove the extra setFailed() call in JPEG decoder to prevent
1318         re-using an already freed object.
1319         https://bugs.webkit.org/show_bug.cgi?id=41487
1320
1321         Test: fast/images/large-size-image-crash.html
1322
1323         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1324         (WebCore::JPEGImageReader::decode):
1325
1326 2010-07-02  Peter Beverloo  <peter@lvp-media.com>
1327
1328         Reviewed by Maciej Stachowiak.
1329
1330         Add the HTML5 <mark> element. Text content of the element will have
1331         a yellow background color and black text.
1332
1333         Test: fast/html/mark-element.html
1334         Tests for <p> closing, phrasing child content and residual style.
1335
1336         * css/html.css:
1337         (mark):
1338         * html/HTMLElement.cpp:
1339         (WebCore::inlineTagList):
1340         * html/HTMLTagNames.in:
1341         * html/LegacyHTMLTreeBuilder.cpp:
1342         (WebCore::LegacyHTMLTreeBuilder::getNode):
1343         (WebCore::LegacyHTMLTreeBuilder::isInline):
1344         (WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag):
1345
1346 2010-07-02  Zhenyao Mo  <zmo@google.com>
1347
1348         Reviewed by Dimitri Glazkov.
1349
1350         Fix issues in boundary situations for WebGLRenderingContext::drawArrays/drawElements
1351         https://bugs.webkit.org/show_bug.cgi?id=41473
1352
1353         * WebCore.gypi: Add CheckedInt.h.
1354         * WebCore.xcodeproj/project.pbxproj: Add CheckedInt.h.
1355         * html/canvas/CheckedInt.h: Added support of safe integer operations.
1356         (mozilla::CheckedInt_internal::integer_type_manually_recorded_info::):
1357         (mozilla::CheckedInt_internal::is_unsupported_type::):
1358         (mozilla::CheckedInt_internal::):
1359         (mozilla::CheckedInt_internal::integer_traits::):
1360         (mozilla::CheckedInt_internal::integer_traits::min):
1361         (mozilla::CheckedInt_internal::integer_traits::max):
1362         (mozilla::CheckedInt_internal::has_sign_bit):
1363         (mozilla::CheckedInt_internal::binary_complement):
1364         (mozilla::CheckedInt_internal::is_in_range):
1365         (mozilla::CheckedInt_internal::is_add_valid):
1366         (mozilla::CheckedInt_internal::is_sub_valid):
1367         (mozilla::CheckedInt_internal::is_mul_valid):
1368         (mozilla::CheckedInt_internal::is_div_valid):
1369         (mozilla::CheckedInt::CheckedInt):
1370         (mozilla::CheckedInt::value):
1371         (mozilla::CheckedInt::valid):
1372         (mozilla::CheckedInt::operator -):
1373         (mozilla::CheckedInt::operator ==):
1374         (mozilla::CheckedInt::operator !=):
1375         (mozilla::operator /):
1376         (mozilla::cast_to_CheckedInt_impl::run):
1377         (mozilla::):
1378         (mozilla::cast_to_CheckedInt):
1379         (mozilla::operator ==):
1380         * html/canvas/WebGLRenderingContext.cpp:
1381         (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Fix a bug against 0-size buffer situation.
1382         (WebCore::WebGLRenderingContext::drawArrays): Deal with overflows and count==0 situation.
1383         (WebCore::WebGLRenderingContext::drawElements): Deal with count==0 situation.
1384
1385 2010-07-02  Zhenyao Mo  <zmo@google.com>
1386
1387         Reviewed by Dimitri Glazkov.
1388
1389         linkProgram should fail when vertex/fragment shaders are not both present
1390         https://bugs.webkit.org/show_bug.cgi?id=41380
1391
1392         Test: fast/canvas/webgl/program-test.html
1393
1394         * html/canvas/WebGLProgram.cpp: Add flag for link failure due to missing shaders.
1395         (WebCore::WebGLProgram::WebGLProgram):
1396         * html/canvas/WebGLProgram.h: Add interface for linkFailure flag.
1397         (WebCore::WebGLProgram::isLinkFailureFlagSet):
1398         (WebCore::WebGLProgram::setLinkFailureFlag):
1399         * html/canvas/WebGLRenderingContext.cpp:
1400         (WebCore::WebGLRenderingContext::getProgramParameter): Intercept when linkFailureFlag is set.
1401         (WebCore::WebGLRenderingContext::linkProgram): Check if there are missing shaders and don't link if yes.
1402         * html/canvas/WebGLShader.cpp: Cache shader type.
1403         (WebCore::WebGLShader::WebGLShader):
1404         * html/canvas/WebGLShader.h: Ditto.
1405         (WebCore::WebGLShader::getType):
1406
1407 2010-07-02  Qi Zhang  <qi.2.zhang@nokia.com>
1408
1409         Reviewed by Laszlo Gombos.
1410
1411         [Qt]  Failed on http://philip.html5.org/tests/canvas/suite/tests/2d.drawImage.negativesource.html
1412
1413         Support negative width and height in canvas image draw
1414
1415         * platform/graphics/FloatRect.h:
1416         * platform/graphics/qt/FloatRectQt.cpp:
1417         (WebCore::FloatRect::normalized):
1418         * platform/graphics/qt/ImageQt.cpp:
1419         (WebCore::BitmapImage::draw):
1420
1421 2010-06-24  Dimitri Glazkov  <dglazkov@chromium.org>
1422
1423         Reviewed by Alexey Proskuryakov.
1424
1425         REGRESSION: Enter does not trigger submit of forms when focus is on select.
1426         https://bugs.webkit.org/show_bug.cgi?id=39532
1427
1428         Restore behavior where hitting "Enter" on a select element attempts to submit
1429         form implicitly.
1430
1431         * dom/SelectElement.cpp:
1432         (WebCore::SelectElement::menuListDefaultEventHandler): Added htmlForm argument,
1433             and attempting to submit implicitly.
1434         (WebCore::SelectElement::listBoxDefaultEventHandler): Ditto.
1435         (WebCore::SelectElement::defaultEventHandler): Plumbed through htmlForm argument.
1436         * dom/SelectElement.h: Added htmlForm argument to method declaration.
1437         * html/HTMLSelectElement.cpp:
1438         (WebCore::HTMLSelectElement::defaultEventHandler): Changed to provide submitting form
1439             as the argument.
1440
1441 2010-07-02  Kent Tamura  <tkent@chromium.org>
1442
1443         Reviewed by Darin Fisher.
1444
1445         [Chromium] Support indeterminate checkbox for Linux, and a small fix for Windows
1446         https://bugs.webkit.org/show_bug.cgi?id=41508
1447
1448         * rendering/RenderThemeChromiumSkia.cpp:
1449         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
1450           Use dedicated images for indeterminate states.
1451         * rendering/RenderThemeChromiumWin.cpp:
1452         (WebCore::RenderThemeChromiumWin::determineClassicState):
1453           Do not use DFCS_CHECKED in a case of indeterminate state in
1454           order to have consistent appearance of indeterminate checkbox.
1455
1456 2010-07-02  Brent Fulgham  <bfulgham@webkit.org>
1457
1458         Reviewed by Gustavo Noronha Silva.
1459
1460         Fixes https://bugs.webkit.org/show_bug.cgi?id=41323.
1461         Provides an implementation of the 'squiggle' used for
1462         bad grammar or spelling, based on the Pango logic used
1463         by the GTK builds.
1464
1465         No new tests. Covered by LayoutTests/editing/spelling
1466
1467         * WebCore.vcproj/WebCore.vcproj: Add new file holding underline
1468         implementation, set to build only for WinCairo port.
1469         * platform/graphics/cairo/DrawErrorUnderline.cpp: Added.
1470         (drawErrorUnderline): New file containing the squiggle drawing
1471         logic based on the Pango implementation.  Placed in its own file
1472         to isolate licenses.
1473         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1474         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
1475         Have WinCairo build call new 'drawErrorUnderline' implementation.
1476
1477 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
1478
1479         Reviewed by Gustavo Noronha Silva.
1480
1481         [GTK] Separate DerivedSources per-project
1482         https://bugs.webkit.org/show_bug.cgi?id=41109
1483
1484         Generate WebCore derived sources in <builddir>/DerivedSources/WebCore.
1485
1486         * GNUmakefile.am:
1487
1488 2010-07-02  Zhenyao Mo  <zmo@google.com>
1489
1490         Reviewed by Dimitri Glazkov.
1491
1492         Implement OpenGL ES 2.0 semantics for vertex attribute 0
1493         https://bugs.webkit.org/show_bug.cgi?id=41300
1494
1495         Test: fast/canvas/webgl/gl-bind-attrib-location-test.html
1496               fast/canvas/webgl/gl-vertex-attrib.html
1497
1498         * html/canvas/WebGLProgram.cpp:
1499         (WebCore::WebGLProgram::numActiveAttribLocations): const.
1500         (WebCore::WebGLProgram::getActiveAttribLocation): const.
1501         (WebCore::WebGLProgram::isUsingVertexAttrib0): Determine whether vertex attrib 0 is used by the program.
1502         * html/canvas/WebGLProgram.h: Declare isUsingVertexAttrib0.
1503         * html/canvas/WebGLRenderingContext.cpp:
1504         (WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with vertex attrib 0.
1505         (WebCore::WebGLRenderingContext::disableVertexAttribArray): Ditto.
1506         (WebCore::WebGLRenderingContext::drawArrays): Ditto.
1507         (WebCore::WebGLRenderingContext::drawElements): Ditto.
1508         (WebCore::WebGLRenderingContext::getVertexAttrib): Use cached value instead of calling glGetVertexAtrtrib.
1509         (WebCore::WebGLRenderingContext::vertexAttrib1f): Validate input, deal with vertex attrib 0.
1510         (WebCore::WebGLRenderingContext::vertexAttrib1fv): Ditto.
1511         (WebCore::WebGLRenderingContext::vertexAttrib2f): Ditto.
1512         (WebCore::WebGLRenderingContext::vertexAttrib2fv): Ditto.
1513         (WebCore::WebGLRenderingContext::vertexAttrib3f): Ditto.
1514         (WebCore::WebGLRenderingContext::vertexAttrib3fv): Ditto.
1515         (WebCore::WebGLRenderingContext::vertexAttrib4f): Ditto.
1516         (WebCore::WebGLRenderingContext::vertexAttrib4fv): Ditto.
1517         (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
1518         (WebCore::WebGLRenderingContext::handleNPOTTextures): Move isGLES2Compliant() to caller.
1519         (WebCore::WebGLRenderingContext::vertexAttribImpl): Helper for vertexAttribNfv.
1520         (WebCore::WebGLRenderingContext::initVertexAttrib0): Initialize vertex attrib 0.
1521         (WebCore::WebGLRenderingContext::simulateVertexAttrib0): Simulate vertex attrib 0.
1522         (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation): Restore states after simulating vertex attrib 0.
1523         * html/canvas/WebGLRenderingContext.h:
1524         (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): Tracking full vertex attrib states.
1525         (WebCore::WebGLRenderingContext::VertexAttribState::initValue): Init value to [0,0,0,1].
1526
1527 2010-07-02  Zhenyao Mo  <zmo@google.com>
1528
1529         Reviewed by Dimitri Glazkov.
1530
1531         Need to validate the size of the incoming arrays for uniform* functions
1532         https://bugs.webkit.org/show_bug.cgi?id=41383
1533
1534         * html/canvas/WebGLRenderingContext.cpp: Validate input array size.
1535         (WebCore::WebGLRenderingContext::uniform1fv):
1536         (WebCore::WebGLRenderingContext::uniform1iv):
1537         (WebCore::WebGLRenderingContext::uniform2fv):
1538         (WebCore::WebGLRenderingContext::uniform2iv):
1539         (WebCore::WebGLRenderingContext::uniform3fv):
1540         (WebCore::WebGLRenderingContext::uniform3iv):
1541         (WebCore::WebGLRenderingContext::uniform4fv):
1542         (WebCore::WebGLRenderingContext::uniform4iv):
1543         (WebCore::WebGLRenderingContext::uniformMatrix2fv):
1544         (WebCore::WebGLRenderingContext::uniformMatrix3fv):
1545         (WebCore::WebGLRenderingContext::uniformMatrix4fv):
1546         (WebCore::WebGLRenderingContext::validateUniformParameters):
1547         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
1548         * html/canvas/WebGLRenderingContext.h: Add helper functions.
1549
1550 2010-07-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1551
1552         Reviewed by Simon Hausmann.
1553
1554         [Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear
1555
1556         The implementation of PathQt's addArcTo() was not float-safe and also had
1557         a case where it drew an 'infinite' line, which is not part of the spec.
1558
1559         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto
1560
1561         We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder()
1562         also had the same problem, and was refactored a bit in the process of fixing
1563         the bug.
1564
1565         Initial patch by Andreas Kling.
1566
1567         https://bugs.webkit.org/show_bug.cgi?id=41412
1568
1569         * platform/graphics/qt/PathQt.cpp:
1570
1571 2010-07-02  Yury Semikhatsky  <yurys@chromium.org>
1572
1573         Reviewed by Pavel Feldman.
1574
1575         [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
1576         https://bugs.webkit.org/show_bug.cgi?id=41511
1577
1578         Tests: fast/events/popup-blocked-from-fake-user-gesture.html
1579                http/tests/inspector/change-iframe-src.html
1580
1581         * bindings/v8/ScriptController.cpp:
1582         (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
1583         from the call stack. Get event directly from hidden property to avoid unnecessary checks.
1584         * bindings/v8/V8AbstractEventListener.cpp:
1585         (WebCore::V8AbstractEventListener::invokeEventHandler):
1586         * bindings/v8/V8HiddenPropertyName.h:
1587         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1588         (WebCore::V8DOMWindow::eventAccessorGetter):
1589         (WebCore::V8DOMWindow::eventAccessorSetter):
1590
1591 2010-07-02  Adam Barth  <abarth@webkit.org>
1592
1593         Reviewed by Eric Seidel.
1594
1595         Fix tokenization of <!----->
1596         https://bugs.webkit.org/show_bug.cgi?id=41505
1597
1598         I noticed this error when browsing through the HTML5lib failures.
1599         We're adding an extra character to the comment token, contrary to what
1600         the spec says to do.
1601
1602         * html/HTMLTokenizer.cpp:
1603         (WebCore::HTMLTokenizer::nextToken):
1604
1605 2010-07-02  Adam Barth  <abarth@webkit.org>
1606
1607         Reviewed by Eric Seidel.
1608
1609         Implement processFakePEndTagIfPInScope
1610         https://bugs.webkit.org/show_bug.cgi?id=41503
1611
1612         This is a common idiom because <p> likes to close itself.
1613
1614         * html/HTMLTreeBuilder.cpp:
1615         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
1616         (WebCore::HTMLTreeBuilder::processStartTag):
1617         * html/HTMLTreeBuilder.h:
1618
1619 2010-07-02  Adam Barth  <abarth@webkit.org>
1620
1621         Reviewed by Eric Seidel.
1622
1623         Implement AfterAfterBodyMode
1624         https://bugs.webkit.org/show_bug.cgi?id=41501
1625
1626         In implementing this mode, I noticed a bug in the character processing
1627         of the AfterBodyMode, which I fixed by adding a break statement.  Also,
1628         to get one of the new tests to pass, I needed to implement one
1629         notImplemented() in the InBody insertion mode.  Yay for testing.
1630
1631         * html/HTMLTreeBuilder.cpp:
1632         (WebCore::HTMLTreeBuilder::processStartTag):
1633         (WebCore::HTMLTreeBuilder::processEndTag):
1634         (WebCore::HTMLTreeBuilder::processComment):
1635         (WebCore::HTMLTreeBuilder::processCharacter):
1636         (WebCore::HTMLTreeBuilder::processEndOfFile):
1637
1638 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1639
1640         Unreviewed, rolling out r62371.
1641         http://trac.webkit.org/changeset/62371
1642         https://bugs.webkit.org/show_bug.cgi?id=41515
1643
1644         "Breaks media/controls-drag-timebar.html on 32-Bit Release"
1645         (Requested by philn-tp on #webkit).
1646
1647         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1648         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
1649         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
1650
1651 2010-06-28  Philippe Normand  <pnormand@igalia.com>
1652
1653         Reviewed by Xan Lopez.
1654
1655         [GStreamer] can't seek past maxTimeLoaded value
1656         https://bugs.webkit.org/show_bug.cgi?id=40526
1657
1658         Extended the seekable range to the whole media. This allows video
1659         played with progressive download to be seeked past the current
1660         buffered position.
1661
1662         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1663         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
1664         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
1665
1666 2010-07-02  Adam Barth  <abarth@webkit.org>
1667
1668         Reviewed by Eric Seidel.
1669
1670         Implement AfterBodyMode for HTML5 tree builder
1671         https://bugs.webkit.org/show_bug.cgi?id=41500
1672
1673         In the coarse of implementing this state, I ran into an ASSERT in how
1674         </br> tags where handled, which I fixed.  Technically, that could be a
1675         separate patch, but it seemed harmless to include it here (with tests).
1676
1677         * html/HTMLTreeBuilder.cpp:
1678         (WebCore::HTMLTreeBuilder::processStartTag):
1679         (WebCore::HTMLTreeBuilder::processEndTag):
1680         (WebCore::HTMLTreeBuilder::processComment):
1681         (WebCore::HTMLTreeBuilder::processCharacter):
1682         (WebCore::HTMLTreeBuilder::processEndOfFile):
1683         (WebCore::HTMLTreeBuilder::insertCommentOnHTMLHtmlElement):
1684         * html/HTMLTreeBuilder.h:
1685
1686 2010-07-02  Adam Barth  <abarth@webkit.org>
1687
1688         Reviewed by Eric Seidel.
1689
1690         Handle <base> and friends in AfterHeadMode
1691         https://bugs.webkit.org/show_bug.cgi?id=41502
1692
1693         Implement notImplemented() per spec.
1694
1695         * html/HTMLTreeBuilder.cpp:
1696         (WebCore::HTMLTreeBuilder::processStartTag):
1697
1698 2010-07-01  Oliver Hunt  <oliver@apple.com>
1699
1700         Build fix
1701
1702         * dom/Document.h:
1703
1704 2010-07-01  Oliver Hunt  <oliver@apple.com>
1705
1706         Reviewed by Maciej Stachowiak.
1707
1708         Add a FixedArray template to encapsulate fixed length arrays
1709         https://bugs.webkit.org/show_bug.cgi?id=41506
1710
1711         Add forwarding header, and replace a few fixed length arrays
1712         with the new FixedArray type.
1713
1714         * ForwardingHeaders/wtf/FixedArray.h: Added.
1715         * dom/Document.h:
1716         * platform/graphics/GlyphMetricsMap.h:
1717
1718 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
1719
1720         No review.
1721
1722         Fix a link warning in 32-bit by not explicitly exporting WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly().
1723
1724         * WebCore.AcceleratedCompositing.exp:
1725
1726 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
1727
1728         Reviewed by Dimitri Glazkov.
1729
1730         Add window.performance.navigation namespace
1731         https://bugs.webkit.org/show_bug.cgi?id=41442
1732
1733         Adds window.performance.navigation namespace consisting of ".type"
1734         and ".redirectCount". As part of this change, I renmaed "NavigationTiming"
1735         to just "Timing" to avoid confusion.
1736
1737         No new tests because tests will be added in a subsequent patch when
1738         functionality is added.
1739
1740         * Android.mk:
1741         * CMakeLists.txt:
1742         * DerivedSources.cpp:
1743         * DerivedSources.make:
1744         * GNUmakefile.am:
1745         * WebCore.gypi:
1746         * WebCore.pri:
1747         * WebCore.pro:
1748         * WebCore.vcproj/WebCore.vcproj:
1749         * WebCore.xcodeproj/project.pbxproj:
1750         * page/Navigation.cpp: Added.
1751         (WebCore::Navigation::Navigation):
1752         (WebCore::Navigation::frame):
1753         (WebCore::Navigation::disconnectFrame):
1754         (WebCore::Navigation::type):
1755         (WebCore::Navigation::redirectCount):
1756         * page/Navigation.h: Added.
1757         (WebCore::Navigation::create):
1758         * page/Navigation.idl: Added.
1759         * page/NavigationTiming.cpp: Removed.
1760         * page/NavigationTiming.h: Removed.
1761         * page/NavigationTiming.idl: Removed.
1762         * page/Performance.cpp:
1763         (WebCore::Performance::navigation):
1764         (WebCore::Performance::timing):
1765         * page/Performance.h:
1766         * page/Performance.idl:
1767         * page/Timing.cpp: Added.
1768         (WebCore::Timing::Timing):
1769         (WebCore::Timing::frame):
1770         (WebCore::Timing::disconnectFrame):
1771         (WebCore::Timing::navigationStart):
1772         * page/Timing.h: Added.
1773         (WebCore::Timing::create):
1774         * page/Timing.idl: Added.
1775
1776 2010-07-01  Daniel Cheng  <dcheng@chromium.org>
1777
1778         Reviewed by Jian Li.
1779
1780         [chromium] Dragging a link triggers an assert when accessing event.dataTransfer.types
1781         https://bugs.webkit.org/show_bug.cgi?id=41493
1782
1783         ClipboardChromium::writeURL violates ClipboardChromium's assumption that uriList will always
1784         be non-empty if url is valid.
1785
1786         No new tests.
1787
1788         * platform/chromium/ClipboardChromium.cpp:
1789         (WebCore::ClipboardChromium::writeURL):
1790
1791 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
1792
1793         Reviewed by Tor Arne Vestbø.
1794
1795         [Qt] Clamp color stops passed to QGradient to 1.0
1796         [https://bugs.webkit.org/show_bug.cgi?id=41484
1797
1798         Fixes an issue where color stops would be silently dropped from radial gradients.
1799
1800         * platform/graphics/qt/GradientQt.cpp:
1801         (WebCore::Gradient::platformGradient):
1802
1803 2010-07-01  Eric Seidel  <eric@webkit.org>
1804
1805         Reviewed by Adam Barth.
1806
1807         HTMLTokenizer should ASSERT that it never emits a null character
1808         https://bugs.webkit.org/show_bug.cgi?id=41448
1809
1810         No functional change, thus no tests.  These ASSERTs would have
1811         caught the coding error which caused the trouble in bug 41436
1812         (which was fixed by bug 41439).
1813
1814         * html/HTMLToken.h:
1815         (WebCore::HTMLToken::beginStartTag):
1816         (WebCore::HTMLToken::beginCharacter):
1817         (WebCore::HTMLToken::beginDOCTYPE):
1818         (WebCore::HTMLToken::appendToName):
1819         (WebCore::HTMLToken::appendToComment):
1820         (WebCore::HTMLToken::appendToAttributeName):
1821         (WebCore::HTMLToken::appendToAttributeValue):
1822         (WebCore::HTMLToken::appendToPublicIdentifier):
1823         (WebCore::HTMLToken::appendToSystemIdentifier):
1824
1825 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
1826
1827         Reviewed by Tor Arne Vestbø.
1828
1829         Canvas: Don't paint with empty radial gradients
1830         https://bugs.webkit.org/show_bug.cgi?id=41190
1831
1832         If a radial gradient has x0==x1 && y0==y1 && r0==r1, don't paint with it.
1833
1834         * html/canvas/CanvasRenderingContext2D.cpp:
1835         (WebCore::CanvasRenderingContext2D::fillRect):
1836         * platform/graphics/Gradient.h:
1837         (WebCore::Gradient::isZeroSize):
1838
1839 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
1840
1841         Reviewed by Adam Barth.
1842
1843         Add interface for network platform to pass up timing information
1844         https://bugs.webkit.org/show_bug.cgi?id=41437
1845
1846         The Web Timing feature requires the network platform to expose detailed
1847         timing information for the main resource. This patch adds that data to
1848         the ResourceResponseBase. Since the 82 bytes of information is only
1849         needed for the main resource, it is a RefPtr to avoid using the memory
1850         for other resource types.
1851
1852         No new tests because no new functionality.
1853
1854         * GNUmakefile.am:
1855         * WebCore.gypi:
1856         * WebCore.pro:
1857         * WebCore.vcproj/WebCore.vcproj:
1858         * WebCore.xcodeproj/project.pbxproj:
1859         * platform/network/ResourceLoadTiming.h: Added.
1860         (WebCore::ResourceLoadTiming::create):
1861         (WebCore::ResourceLoadTiming::deepCopy):
1862         (WebCore::ResourceLoadTiming::operator==):
1863         (WebCore::ResourceLoadTiming::operator!=):
1864         (WebCore::ResourceLoadTiming::ResourceLoadTiming):
1865         * platform/network/ResourceResponseBase.cpp:
1866         (WebCore::ResourceResponseBase::adopt):
1867         (WebCore::ResourceResponseBase::copyData):
1868         (WebCore::ResourceResponseBase::resourceLoadTiming):
1869         (WebCore::ResourceResponseBase::setResourceLoadTiming):
1870         (WebCore::ResourceResponseBase::compare):
1871         * platform/network/ResourceResponseBase.h:
1872
1873 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
1874
1875         Unreviewed, rolling out r62321.
1876         http://trac.webkit.org/changeset/62321
1877         https://bugs.webkit.org/show_bug.cgi?id=41494
1878
1879         Broke the non-win builds. (Requested by dumi on #webkit).
1880
1881         * dom/ScriptExecutionContext.cpp:
1882         (WebCore::ScriptExecutionContext::addOpenDatabase):
1883         (WebCore::ScriptExecutionContext::removeOpenDatabase):
1884         (WebCore::ScriptExecutionContext::stopDatabases):
1885         * dom/ScriptExecutionContext.h:
1886         * storage/Database.cpp:
1887         (WebCore::Database::openDatabase):
1888         (WebCore::Database::Database):
1889         (WebCore::Database::markAsDeletedAndClose):
1890         (WebCore::ContextRemoveOpenDatabaseTask::create):
1891         (WebCore::ContextRemoveOpenDatabaseTask::performTask):
1892         (WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
1893         (WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
1894         (WebCore::Database::close):
1895         (WebCore::Database::closeImmediately):
1896         (WebCore::Database::stop):
1897         (WebCore::Database::performPolicyChecks):
1898         * storage/Database.h:
1899         (WebCore::Database::):
1900         (WebCore::Database::stopped):
1901         * storage/DatabaseTask.cpp:
1902         (WebCore::DatabaseTask::performTask):
1903         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
1904         (WebCore::DatabaseOpenTask::doPerformTask):
1905         (WebCore::DatabaseOpenTask::debugTaskName):
1906         (WebCore::DatabaseCloseTask::DatabaseCloseTask):
1907         (WebCore::DatabaseCloseTask::doPerformTask):
1908         (WebCore::DatabaseCloseTask::debugTaskName):
1909         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
1910         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
1911         (WebCore::DatabaseTransactionTask::doPerformTask):
1912         (WebCore::DatabaseTransactionTask::debugTaskName):
1913         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
1914         (WebCore::DatabaseTableNamesTask::doPerformTask):
1915         (WebCore::DatabaseTableNamesTask::debugTaskName):
1916         * storage/DatabaseTask.h:
1917         (WebCore::DatabaseOpenTask::create):
1918         (WebCore::DatabaseCloseTask::create):
1919         (WebCore::DatabaseTransactionTask::create):
1920         (WebCore::DatabaseTableNamesTask::create):
1921         * storage/DatabaseThread.cpp:
1922         (WebCore::DatabaseThread::databaseThread):
1923         * storage/DatabaseTracker.cpp:
1924         (WebCore::DatabaseTracker::addOpenDatabase):
1925         * storage/SQLTransaction.cpp:
1926         (WebCore::SQLTransaction::executeSQL):
1927         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
1928
1929 2010-07-01  Xan Lopez  <xlopez@igalia.com>
1930
1931         Reviewed by Gustavo Noronha.
1932
1933         [GTK] Stop using GdkRegion in 3.x mode
1934         https://bugs.webkit.org/show_bug.cgi?id=41463
1935
1936         Make us compile without using GdkRegion, since it's gone from GTK+
1937         3.x.
1938
1939         * platform/graphics/IntRect.h:
1940         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1941         (WebCore::GraphicsContext::drawFocusRing):
1942         * platform/graphics/gtk/FontGtk.cpp:
1943         (WebCore::cairo_region_shrink):
1944         (WebCore::Font::drawComplexText):
1945         * platform/gtk/GtkPluginWidget.cpp:
1946         (WebCore::GtkPluginWidget::paint):
1947         * platform/gtk/RenderThemeGtk.h:
1948         * platform/gtk/ScrollbarGtk.cpp:
1949         (ScrollbarGtk::paint):
1950
1951 2010-06-30  Dumitru Daniliuc  <dumi@chromium.org>
1952
1953         Reviewed by Darin Fisher.
1954
1955         DB clean up.
1956         https://bugs.webkit.org/show_bug.cgi?id=41404
1957
1958         1. Made all DatabaseTasks internal classes of Database and made
1959            the Database methods called by those tasks private.
1960         2. Removed the Database::stop{ed}() methods.
1961         3. Removed the code that kept track of open databases from
1962            ScriptExecutionContext (no longer needed).
1963         4. Made minor changes to Database::closeImmediately() to make it
1964            possible for DatabaseThread to call that method instead of
1965            close().
1966         5. Minor fix to DatabaseTracker: addOpenDatabase() should call
1967            OriginQuotaManager::addDatabase() if the origin quota manager
1968            is not tracking this origin.
1969         6. Removed Database::performPolicyChecks(). We already update the
1970            DB size after each transaction, and we enforce a max size for
1971            the DB at the beginning of each transaction.
1972
1973         * dom/ScriptExecutionContext.cpp:
1974         (WebCore::ScriptExecutionContext::stopDatabases):
1975         * dom/ScriptExecutionContext.h:
1976         (WebCore::ScriptExecutionContext::hasOpenDatabases):
1977         * storage/Database.cpp:
1978         (WebCore::Database::openDatabase):
1979         (WebCore::Database::Database):
1980         (WebCore::Database::markAsDeletedAndClose):
1981         (WebCore::Database::close):
1982         (WebCore::Database::closeImmediately):
1983         * storage/Database.h:
1984         * storage/DatabaseTask.cpp:
1985         (WebCore::DatabaseTask::performTask):
1986         (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
1987         (WebCore::Database::DatabaseOpenTask::doPerformTask):
1988         (WebCore::Database::DatabaseOpenTask::debugTaskName):
1989         (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
1990         (WebCore::Database::DatabaseCloseTask::doPerformTask):
1991         (WebCore::Database::DatabaseCloseTask::debugTaskName):
1992         (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
1993         (WebCore::Database::DatabaseTransactionTask::doPerformTask):
1994         (WebCore::Database::DatabaseTransactionTask::debugTaskName):
1995         (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
1996         (WebCore::Database::DatabaseTableNamesTask::doPerformTask):
1997         (WebCore::Database::DatabaseTableNamesTask::debugTaskName):
1998         * storage/DatabaseTask.h:
1999         (WebCore::Database::DatabaseOpenTask::create):
2000         (WebCore::Database::DatabaseCloseTask::create):
2001         (WebCore::Database::DatabaseTransactionTask::create):
2002         (WebCore::Database::DatabaseTableNamesTask::create):
2003         * storage/DatabaseThread.cpp:
2004         (WebCore::DatabaseThread::databaseThread):
2005         * storage/DatabaseTracker.cpp:
2006         (WebCore::DatabaseTracker::addOpenDatabase):
2007         * storage/SQLTransaction.cpp:
2008         (WebCore::SQLTransaction::executeSQL):
2009         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
2010
2011 2010-07-01  Kent Tamura  <tkent@chromium.org>
2012
2013         Reviewed by Darin Fisher.
2014
2015         [Chromium] Support indeterminate checkbox for Windows
2016         https://bugs.webkit.org/show_bug.cgi?id=41444
2017
2018         * rendering/RenderThemeChromiumWin.cpp:
2019         (WebCore::RenderThemeChromiumWin::determineState):
2020          Check isIndeterminate() and set an appropriate flag value.
2021
2022 2010-07-01  Alexey Proskuryakov  <ap@apple.com>
2023
2024         Reviewed by Dan Bernstein.
2025
2026         https://bugs.webkit.org/show_bug.cgi?id=41488
2027         <rdar://problem/7487420> Crash in SubresourceLoader::create when load is initiated from plug-in destructor
2028
2029         Test: plugins/js-from-destroy.html
2030
2031         * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Null check active
2032         document loader.
2033
2034 2010-07-01  Andy Estes  <aestes@apple.com>
2035
2036         Reviewed by Darin Adler.
2037
2038         <rdar://problem/8113003> Correctly fire beforeload events for images
2039         added to the DOM using .innerHTML.
2040         https://bugs.webkit.org/show_bug.cgi?id=40919
2041
2042         Test: fast/dom/beforeload/image-before-load-innerHTML.html
2043
2044         * html/LegacyHTMLDocumentParser.cpp:
2045         (WebCore::LegacyHTMLDocumentParser::write): Do not fire synchronous
2046         image beforeload events immediately after parsing a document fragment.
2047         Let the events fire later, giving the fragment time to potentially be
2048         inserted into the document.
2049
2050 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
2051
2052         Reviewed by Tor Arne Vestbø.
2053
2054         Canvas: bezierCurveTo() and quadraticCurveTo() must ensure subpaths
2055         https://bugs.webkit.org/show_bug.cgi?id=41192
2056
2057         If the current path is empty, bezierCurveTo() and quadraticCurveTo() will now
2058         move to the (first) control point before adding the curve.
2059
2060         Spec links:
2061         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-beziercurveto
2062         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-quadraticcurveto
2063
2064         * html/canvas/CanvasRenderingContext2D.cpp:
2065         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
2066         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
2067
2068 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
2069
2070         Reviewed by Darin Adler.
2071
2072         Canvas element cannot have negative width or height (HTML5 spec 4.8.11)
2073         https://bugs.webkit.org/show_bug.cgi?id=39149
2074
2075         If assigned a negative value, it should default to 300 for width and 150 for height.
2076
2077         Spec link:
2078         http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width
2079
2080         Test: fast/canvas/canvas-negative-size.html
2081
2082         * html/HTMLCanvasElement.cpp:
2083         (WebCore::HTMLCanvasElement::reset):
2084
2085 2010-07-01  Darin Adler  <darin@apple.com>
2086
2087         Reviewed by Steve Falkenburg.
2088
2089         Turn on adoptRef assertion for TreeShared.
2090
2091         * platform/TreeShared.h: Remove LOOSE_TREE_SHARED and all the ifdefs.
2092         Actually, I used LOOSE_REF_COUNTED by accident in a few places, but
2093         removing them all now.
2094
2095         * rendering/ShadowElement.cpp:
2096         (WebCore::ShadowBlockElement::create): Added adoptRef. This was a
2097         storage leak before, probably recently introduced r61324.
2098         (WebCore::ShadowInputElement::create): Ditto.
2099
2100 2010-07-01  Xan Lopez  <xlopez@igalia.com>
2101
2102         Reviewed by Gustavo Noronha.
2103
2104         Only include the geolocation IDL in the GObject DOM bindings set
2105         if geolocation is enabled.
2106
2107         * GNUmakefile.am:
2108
2109 2010-07-01  Timothy Hatcher  <timothy@apple.com>
2110
2111         Provide a WebView preference to disable DNS prefetching.
2112
2113         https://bugs.webkit.org/show_bug.cgi?id=28825
2114         rdar://problem/7181249
2115
2116         Reviewed by Darin Adler.
2117
2118         * WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled.
2119         * dom/Document.cpp:
2120         (WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled().
2121         * page/Settings.cpp:
2122         (WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true.
2123         (WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled.
2124         * page/Settings.h:
2125         (WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled.
2126
2127 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
2128
2129         Reviewed by Darin Adler.
2130
2131         Get accelerated compositing working with webkit2
2132         https://bugs.webkit.org/show_bug.cgi?id=41084
2133
2134         Step 2: add a  method, syncCompositingStateForThisLayerOnly(), to GraphicsLayer to commit
2135         batched changes non-recursively. This allows us to use GraphicsLayer in places where we
2136         don't want to kick off a recursive commit of the entire tree.
2137
2138         * platform/graphics/GraphicsLayer.h:
2139         (WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly):
2140         * platform/graphics/mac/GraphicsLayerCA.h:
2141         * platform/graphics/mac/GraphicsLayerCA.mm:
2142         (WebCore::GraphicsLayerCA::syncCompositingStateForThisLayerOnly):
2143         * WebCore.AcceleratedCompositing.exp: Export the new method for use in WebKit2.
2144
2145 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
2146
2147         Reviewed by Sam Weinig.
2148
2149         Get accelerated compositing working with webkit2
2150         https://bugs.webkit.org/show_bug.cgi?id=41084
2151
2152         Step 1: add a new .exp file for WebCore, which exports symbols only when USE(ACCELERATED_COMPOSITING)
2153         is defined.
2154         
2155         Also export WebCore::FloatSize::FloatSize(WebCore::IntSize const&) from WebCore.
2156
2157         * DerivedSources.make:
2158         * WebCore.AcceleratedCompositing.exp: Added.
2159         * WebCore.base.exp:
2160         * WebCore.xcodeproj/project.pbxproj:
2161
2162 2010-07-01  Alexey Proskuryakov  <ap@apple.com>
2163
2164         Reviewed by Darin Adler.
2165
2166         <rdar://problem/8148656> <https://bugs.webkit.org/show_bug.cgi?id=41431>
2167         REGRESSION (r49411): Various crashes due to JavaScript execution during plug-in destruction
2168
2169         Test: plugins/write-xssauditor-from-destroy.html
2170
2171         Fix specific known cases that also crash in same process case. I don't know if there is
2172         any rule for when documentLoader should be checked for being null, it looks like a mess.
2173
2174         * loader/FrameLoader.cpp:
2175         (WebCore::FrameLoader::referrer):
2176         * page/XSSAuditor.cpp:
2177         (WebCore::XSSAuditor::findInRequest):
2178
2179 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
2180
2181         Reviewed by Darin Adler.
2182
2183         The HTML5 canvas 2d.drawImage.zerocanvas test does not pass
2184         https://bugs.webkit.org/show_bug.cgi?id=40271
2185
2186         Throw INVALID_STATE_ERR when attempting to draw a canvas with zero width or height.
2187
2188         Spec link:
2189         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
2190
2191         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2192         (WebCore::JSCanvasRenderingContext2D::drawImage): Call setDOMException after drawImage(canvas, x, y)
2193         * html/canvas/CanvasRenderingContext2D.cpp:
2194         (WebCore::CanvasRenderingContext2D::drawImage):
2195
2196 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
2197
2198         Reviewed by Oliver Hunt.
2199
2200         [Qt] Canvas: clip() should use non-zero winding rule
2201         https://bugs.webkit.org/show_bug.cgi?id=41466
2202
2203         Use non-zero winding number rule when clipping a GraphicsContext from canvas.
2204         Fixes appearance of the "pill" in the web inspector.
2205
2206         * platform/graphics/qt/GraphicsContextQt.cpp:
2207         (WebCore::GraphicsContext::canvasClip):
2208
2209 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
2210
2211         Unreviewed, rolling out r62246.
2212         http://trac.webkit.org/changeset/62246
2213         https://bugs.webkit.org/show_bug.cgi?id=41470
2214
2215         "Worker tests are broken in Chromium" (Requested by yurys on
2216         #webkit).
2217
2218         * bindings/v8/ScriptController.cpp:
2219         (WebCore::ScriptController::processingUserGesture):
2220         * bindings/v8/V8AbstractEventListener.cpp:
2221         (WebCore::V8AbstractEventListener::invokeEventHandler):
2222         * bindings/v8/V8HiddenPropertyName.h:
2223         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2224         (WebCore::V8DOMWindow::eventAccessorGetter):
2225         (WebCore::V8DOMWindow::eventAccessorSetter):
2226
2227 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
2228
2229         Reviewed by Tor Arne Vestbø.
2230
2231         Canvas: Exception erroneously thrown for drawImage() when image.complete=false
2232         https://bugs.webkit.org/show_bug.cgi?id=33968
2233
2234         Do nothing in drawImage() if called with an image whose 'complete'
2235         attribute is false, or a video whose readyState is either HAVE_NOTHING
2236         or HAVE_METADATA.
2237
2238         Spec link:
2239         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
2240
2241         Test: fast/canvas/canvas-drawImage-incomplete.html
2242
2243         * html/canvas/CanvasRenderingContext2D.cpp:
2244         (WebCore::CanvasRenderingContext2D::drawImage):
2245
2246 2010-07-01  Justin Schuh  <jschuh@chromium.org>
2247
2248         Reviewed by Dan Bernstein.
2249
2250         Prevent crash on counter destruction
2251         https://bugs.webkit.org/show_bug.cgi?id=40032
2252
2253         Added counter destruction to RenderWidget::destroy()
2254
2255         Test: fast/css/counters/destroy-counter-crash.html
2256
2257         * rendering/RenderWidget.cpp:
2258         (WebCore::RenderWidget::destroy):
2259
2260 2010-07-01  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
2261
2262         Unreviewed build fix after r62215.
2263
2264         No new functionality, so no new tests.
2265
2266         * CMakeLists.txt: Add missing files and re-sort.
2267
2268 2010-07-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2269
2270         Reviewed by Kenneth Rohde Christiansen.
2271
2272         [Qt] Remove an unneeded assert.
2273
2274         This assert is triggered for example while showing the falling leaves demo.
2275         GraphicsLayerQtImpl::toGraphicsLayerQtImpl asserts that its input
2276         pointer is null. Looking at the uses of this method it seems like
2277         it is expected to return null if a null pointer is given to it.
2278
2279         * platform/graphics/qt/GraphicsLayerQt.cpp:
2280         (WebCore::toGraphicsLayerQtImpl):
2281
2282 2010-06-16  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2283
2284         Reviewed by Simon Hausmann.
2285
2286         [Qt] Fix qmake vcproj generation for QtWebKit.
2287
2288         qmake use TARGET=/LIBS+= -lTARGET to create dependencies
2289         between projects in a subdir template.
2290
2291         Since when compiling outside of Qt we hijack the target name of
2292         QtWebKit to add the configuration and version suffix to the binary
2293         filename, qmake can't establish the WebCore project as a dependency
2294         to QtTestBrowser.
2295
2296         This patch makes sure that the target is not hijacked on the
2297         first of the three passes where the dependencies are determined.
2298
2299         * WebCore.pro:
2300
2301 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2302
2303         Reviewed by Dirk Schulze.
2304
2305         SVGRenderStyle::diff() is missing
2306         https://bugs.webkit.org/show_bug.cgi?id=41455
2307
2308         Don't just return StyleDifferenceLayout when two SVGRenderStyle objects differ.
2309         Figure out when to repaint, and as last resort do a relayout.
2310
2311         Lively Kernel doesn't do any relayouts anymore, same for lots of demos in the IE9 testcenter.
2312
2313         * rendering/style/RenderStyle.cpp:
2314         (WebCore::RenderStyle::diff):
2315         * rendering/style/SVGRenderStyle.cpp:
2316         (WebCore::SVGRenderStyle::diff):
2317         * rendering/style/SVGRenderStyle.h:
2318
2319 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
2320
2321         Revert accidental commit.
2322
2323         * platform/network/qt/ResourceRequestQt.cpp:
2324         (WebCore::ResourceRequest::toNetworkRequest):
2325
2326 2010-07-01  Patrick Gansterer  <paroga@paroga.com>
2327
2328         Reviewed by Nikolas Zimmermann.
2329
2330         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196.
2331         https://bugs.webkit.org/show_bug.cgi?id=40984
2332
2333         * rendering/SVGRenderSupport.cpp:
2334         (WebCore::SVGRenderSupport::finishRenderSVGContent):
2335
2336 2010-07-04  Patrick Gansterer  <paroga@paroga.com>
2337
2338         Reviewed by Dirk Schulze.
2339
2340         Buildfix for !ENABLE(FILTERS) after r62238.
2341         https://bugs.webkit.org/show_bug.cgi?id=41456
2342
2343         * rendering/SVGRenderSupport.cpp:
2344         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
2345
2346 2010-07-01  MORITA Hajime  <morrita@google.com>
2347
2348         Unreviewed build fix.
2349
2350         * rendering/RenderInputSpeech.cpp:
2351         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
2352         * rendering/RenderInputSpeech.h:
2353         * rendering/RenderTheme.cpp:
2354         (WebCore::RenderTheme::paintInputFieldSpeechButton):
2355         * rendering/RenderTheme.h:
2356
2357 2010-07-01  Satish Sampath  <satish@chromium.org>
2358
2359         Reviewed by Kent Tamura.
2360
2361         Rendering the speech button in input elements.
2362         https://bugs.webkit.org/show_bug.cgi?id=40984
2363
2364         The button currently has only one state and rendered as an image on all platforms. Subsequent
2365         patches will add user input handling and more states + rendering code to the button. The
2366         button's appearance can be customized by individual ports in their RenderTheme implementation
2367         if required.
2368
2369         Tests: platform/mac/fast/forms/input-appearance-numberandspeech.html
2370                platform/mac/fast/forms/input-appearance-searchandspeech.html
2371                platform/mac/fast/forms/input-appearance-speechbutton.html
2372
2373         * GNUmakefile.am:
2374         * Resources/inputSpeech.png: Added.
2375         * Resources/inputSpeech.tiff: Added. Used by the Mac implementation.
2376         * WebCore.gypi:
2377         * WebCore.pro:
2378         * WebCore.qrc:
2379         * WebCore.xcodeproj/project.pbxproj:
2380         * platform/graphics/qt/ImageQt.cpp:
2381         (loadResourcePixmap): Load the speech button images for Qt port.
2382         * rendering/RenderInputSpeech.cpp: Added.
2383         (WebCore::RenderInputSpeech::adjustInputFieldSpeechButtonStyle): Sets the button's dimensions.
2384         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
2385         * rendering/RenderInputSpeech.h: Added.
2386         * rendering/RenderTextControlSingleLine.cpp:
2387         (WebCore::RenderTextControlSingleLine::layout):
2388         (WebCore::RenderTextControlSingleLine::forwardEvent):
2389         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): Create the speech button.
2390         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
2391         * rendering/RenderTheme.cpp:
2392         (WebCore::RenderTheme::adjustStyle):
2393         (WebCore::RenderTheme::paint):
2394         (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle):
2395         (WebCore::RenderTheme::paintInputFieldSpeechButton):
2396         * rendering/RenderTheme.h:
2397         * rendering/RenderThemeMac.mm:
2398         (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Get cancel button to render to the left of
2399         speech button when enabled.
2400
2401 2010-07-01  Mario Sanchez Prada  <msanchez@igalia.com>
2402
2403         Reviewed by Xan Lopez.
2404
2405         [GTK] Extra nullcheck needed at SelectionControllerGtk.cpp
2406         https://bugs.webkit.org/show_bug.cgi?id=41447
2407
2408         Extra null check added.
2409
2410         * editing/gtk/SelectionControllerGtk.cpp:
2411         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2412
2413 2010-07-01  Yury Semikhatsky  <yurys@chromium.org>
2414
2415         Reviewed by Adam Barth.
2416
2417         [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
2418         https://bugs.webkit.org/show_bug.cgi?id=41350
2419
2420         Tests: fast/events/popup-blocked-from-fake-user-gesture.html
2421                http/tests/inspector/change-iframe-src.html
2422
2423         * bindings/v8/ScriptController.cpp:
2424         (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
2425         from the call stack. Get event directly from hidden property to avoid unnecessary checks.
2426         * bindings/v8/V8AbstractEventListener.cpp:
2427         (WebCore::V8AbstractEventListener::invokeEventHandler):
2428         * bindings/v8/V8HiddenPropertyName.h:
2429         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2430         (WebCore::V8DOMWindow::eventAccessorGetter):
2431         (WebCore::V8DOMWindow::eventAccessorSetter):
2432
2433 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2434
2435         Reviewed by Dirk Schulze.
2436
2437         RenderSVGContainer/RenderSVGRoot report wrong strokeBoundingBox()
2438         https://bugs.webkit.org/show_bug.cgi?id=41450
2439
2440         strokeBoundingBox() was reporting the repaintRectInLocalCoordinates() for children of a container,
2441         instead of the actual strokeBoundingBox(). Only visible in WebInspector when looking at a container
2442         which has a resource applied and contains a children which also has a resource applied.
2443
2444         Doesn't affect any test results.
2445
2446         * rendering/RenderSVGContainer.cpp:
2447         (WebCore::RenderSVGContainer::objectBoundingBox):
2448         (WebCore::RenderSVGContainer::strokeBoundingBox):
2449         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
2450         * rendering/RenderSVGRoot.cpp:
2451         (WebCore::RenderSVGRoot::objectBoundingBox): Deinlined this functions, it's virtual so there's no gain.
2452         (WebCore::RenderSVGRoot::strokeBoundingBox): Ditto.
2453         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
2454         * rendering/RenderSVGRoot.h:
2455         * rendering/SVGRenderSupport.cpp:
2456         (WebCore::SVGRenderSupport::computeContainerBoundingBox):
2457         * rendering/SVGRenderSupport.h: Add enum controlling the mode of container bounding box mode calculation.
2458
2459 2010-07-01  Zoltan Herczeg  <zherczeg@webkit.org>
2460
2461         Reviewed by Nikolas Zimmermann.
2462
2463         Implementing feConvolveMatrix svg filter
2464         https://bugs.webkit.org/show_bug.cgi?id=5861
2465
2466         The implementation is optimized for speed, and uses
2467         multiple algorithms for different parts of the image.
2468         See SVGFEConvolveMatrixElement.cpp for a detailed
2469         description.
2470
2471         * svg/SVGFEConvolveMatrixElement.cpp:
2472         (WebCore::SVGFEConvolveMatrixElement::build):
2473         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
2474         (WebCore::clampRGBAValue):
2475         (WebCore::FEConvolveMatrix::fastSetInteriorPixels):
2476         (WebCore::FEConvolveMatrix::getPixelValue):
2477         (WebCore::FEConvolveMatrix::fastSetOuterPixels):
2478         (WebCore::FEConvolveMatrix::setInteriorPixels):
2479         (WebCore::FEConvolveMatrix::setOuterPixels):
2480         (WebCore::FEConvolveMatrix::apply):
2481         * svg/graphics/filters/SVGFEConvolveMatrix.h:
2482         (WebCore::FEConvolveMatrix::uniteChildEffectSubregions):
2483
2484 2010-07-01  Adam Barth  <abarth@webkit.org>
2485
2486         Reviewed by Eric Seidel.
2487
2488         Abstract 'a'-'z' checks into a function
2489         https://bugs.webkit.org/show_bug.cgi?id=41438
2490
2491         Hopefully this version is more readable.
2492
2493         * html/HTMLTokenizer.cpp:
2494         (WebCore::HTMLTokenizer::nextToken):
2495
2496 2010-07-01  Adam Barth  <abarth@webkit.org>
2497
2498         Reviewed by Eric Seidel.
2499
2500         Parameter names in frame src URLs parsed incorrectly if resembles HTML entity code followed by underscore
2501         https://bugs.webkit.org/show_bug.cgi?id=41345
2502
2503         Apparently whether an HTML entity requires a trailing semicolon varies
2504         depending on the entity.  The full table is in the spec:
2505
2506         http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html#named-character-references
2507
2508         I believe branch added in this patch is accurate.  At some point, I'll
2509         add a full test suite for all the named entities.
2510
2511         * html/HTMLEntityParser.cpp:
2512         (WebCore::consumeHTMLEntity):
2513
2514 2010-07-01  Eric Seidel  <eric@webkit.org>
2515
2516         Unreviewed.  Fix paste-o in Gtk build file.
2517
2518         Split out HTMLFormattingElementList into its own file
2519         https://bugs.webkit.org/show_bug.cgi?id=41440
2520
2521         * GNUmakefile.am:
2522
2523 2010-07-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2524
2525         Reviewed by Eric Seidel & Dirk Schulze.
2526
2527         Performance regression for setting content of <text> in SVG
2528         https://bugs.webkit.org/show_bug.cgi?id=36564
2529
2530         Dramatically reducing the number of repaintRectInLocalCoordinates() calls needed while painting.
2531         Do not pass the repaintRect to prepareToRenderSVGContent, only calculate it if opacity < 1 or -webkit-svg-shadow is set.
2532         Most noticeable is that RenderSVGRoot had to visit all children, before actually painting, just to calculate the repaint rect.
2533         And as RenderSVGRoot never carries shadow or opacity it was completly useless.
2534
2535         RenderSVGContainer also called repaintRectInLocalCoordinates, but the result is only needed when painting outlines, which is a rare case.
2536         These modifications fix the performance regression and the number of repaintRectInLocalCoordinate calls for the complex example in
2537         the bug report with 500 runs shrinks from 1.7 million calls to less than 105.000.
2538
2539         50 runs without the patch: ~ 520.8ms
2540         50 runs with the patch   : ~ 501.8ms
2541
2542         The test calls setTimeout(0) 50 times, that already accounts for the 500ms. So setting the content of a <text>
2543         element withs clippers applied, is very cheap now.
2544
2545         Also remove the need to pass in a filter argument to prepareToRenderSVGContent/finishRenderSVGContent, it can easily be grabbed
2546         of the cache - just like all other resources are handled, simplifying the code.
2547
2548         * rendering/RenderPath.cpp:
2549         (WebCore::RenderPath::paint):
2550         * rendering/RenderSVGContainer.cpp:
2551         (WebCore::RenderSVGContainer::paint):
2552         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
2553         * rendering/RenderSVGImage.cpp:
2554         (WebCore::RenderSVGImage::paint):
2555         * rendering/RenderSVGRoot.cpp:
2556         (WebCore::RenderSVGRoot::paint):
2557         * rendering/SVGInlineFlowBox.cpp:
2558         (WebCore::SVGInlineFlowBox::paint):
2559         * rendering/SVGRenderSupport.cpp:
2560         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
2561         (WebCore::SVGRenderSupport::finishRenderSVGContent):
2562         * rendering/SVGRenderSupport.h:
2563         * rendering/SVGRootInlineBox.cpp:
2564         (WebCore::SVGRootInlineBox::paint):
2565
2566 2010-07-01  Eric Seidel  <eric@webkit.org>
2567
2568         Reviewed by Adam Barth.
2569
2570         Split out HTMLFormattingElementList into its own file
2571         https://bugs.webkit.org/show_bug.cgi?id=41440
2572
2573         No functional changes, thus no tests.
2574
2575         * Android.mk:
2576         * CMakeLists.txt:
2577         * GNUmakefile.am:
2578         * WebCore.gypi:
2579         * WebCore.pro:
2580         * WebCore.vcproj/WebCore.vcproj:
2581         * WebCore.xcodeproj/project.pbxproj:
2582         * html/HTMLTreeBuilder.cpp:
2583         (WebCore::HTMLTreeBuilder::processEndTag):
2584         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
2585         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
2586         * html/HTMLTreeBuilder.h:
2587
2588 2010-07-01  Adam Barth  <abarth@webkit.org>
2589
2590         Reviewed by Eric Seidel.
2591
2592         BogusCommentState should come in from the cold
2593         https://bugs.webkit.org/show_bug.cgi?id=41439
2594
2595         The BogusCommentState has always been wrong.  The proximate issue is
2596         that it didn't handle resuming correctly when parsing a partial input
2597         stream.  Now that we have EOF working properly, we can actually
2598         implement this state correctly.
2599
2600         We need to distinguish when we enter this state from when we continue
2601         in this state.  We could do that with a branch for each character, but
2602         it seemed easier to split the state in two, even though that leaves us
2603         with one more state in our tokenizer than we have in the HTML5 spec.
2604
2605         * html/HTMLTokenizer.cpp:
2606         (WebCore::HTMLTokenizer::nextToken):
2607         * html/HTMLTokenizer.h:
2608         (WebCore::HTMLTokenizer::):
2609
2610 2010-06-30  Adam Barth  <abarth@webkit.org>
2611
2612         Reviewed by Eric Seidel.
2613
2614         HTMLTokenizer's whitespace checks are very redundant
2615         https://bugs.webkit.org/show_bug.cgi?id=41434
2616
2617         This patch adds isTokenizerWhitespace, which replaces a lot of
2618         redundant logic in nextToken.
2619
2620         * html/HTMLTokenizer.cpp:
2621         (WebCore::HTMLTokenizer::nextToken):
2622
2623 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
2624
2625         Reviewed by Kenneth Rohde Christiansen.
2626
2627         [Qt] Crash when uploading document to Google Docs
2628         https://bugs.webkit.org/show_bug.cgi?id=40795
2629
2630         Fix bug where the local file wasn't opened (for POSTing)
2631         if it were the first element in the form.
2632
2633         * platform/network/qt/QNetworkReplyHandler.cpp:
2634         (WebCore::FormDataIODevice::FormDataIODevice):
2635         (WebCore::FormDataIODevice::moveToNextElement):
2636         (WebCore::FormDataIODevice::openFileForCurrentElement):
2637         * platform/network/qt/QNetworkReplyHandler.h:
2638
2639 2010-06-30  Eric Seidel  <eric@webkit.org>
2640
2641         Reviewed by Adam Barth.
2642
2643         Implement generateImpliedEndTags and deploy to steps which were blocked on it
2644         https://bugs.webkit.org/show_bug.cgi?id=41432
2645
2646         This fixes one subtest in html5lib/runner.html and positively
2647         effects a couple others.
2648
2649         More code sharing will be needed here.  For the moment
2650         we're using copy/paste code, but that will soon be shared.
2651
2652         * html/HTMLTreeBuilder.cpp:
2653         (WebCore::HTMLTreeBuilder::processEndTag):
2654         (WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion):
2655         (WebCore::HTMLTreeBuilder::generateImpliedEndTags):
2656         * html/HTMLTreeBuilder.h:
2657
2658 2010-06-30  Csaba Osztrogonác  <ossy@webkit.org>
2659
2660         Unreviewed buildfix after r62196 and r62214.
2661
2662         * html/HTMLElementStack.cpp: Put !ENABLE(SVG) guard instead of 
2663         !ENABLE(SVG_FOREIGN_OBJECT) around include of SVGNames.h.
2664
2665 2010-06-30  Sam Weinig  <sam@webkit.org>
2666
2667         Really fix the windows build.
2668
2669         * bindings/js/JSBindingsAllInOne.cpp:
2670
2671 2010-06-30  Sam Weinig  <sam@webkit.org>
2672
2673         Another Chromium build fix.
2674
2675         * page/DOMWindow.idl:
2676
2677 2010-06-30  Sam Weinig  <sam@webkit.org>
2678
2679         Fix Chromium build.
2680
2681         * WebCore.gyp/WebCore.gyp:
2682
2683 2010-06-30  Sam Weinig  <sam@webkit.org>
2684
2685         Fix Windows build.
2686
2687         * bindings/js/JSBindingsAllInOne.cpp:
2688
2689 2010-06-30  Sam Weinig  <sam@webkit.org>
2690
2691         Fix Gtk build.
2692
2693         * GNUmakefile.am:
2694
2695 2010-06-29  Sam Weinig  <sam@webkit.org>
2696
2697         Reviewed by Dan Bernstein.
2698
2699         Patch for https://bugs.webkit.org/show_bug.cgi?id=41146
2700         <rdar://problem/8126069>
2701         Implement the .dataset DOM property
2702
2703         Tests: fast/dom/dataset-xhtml.xhtml
2704                fast/dom/dataset.html
2705
2706         * DerivedSources.cpp:
2707         * DerivedSources.make:
2708         * GNUmakefile.am:
2709         * WebCore.gypi:
2710         * WebCore.pro:
2711         * WebCore.vcproj/WebCore.vcproj:
2712         * WebCore.xcodeproj/project.pbxproj:
2713         * bindings/js/JSDOMStringMapCustom.cpp: Added.
2714         (WebCore::JSDOMStringMap::canGetItemsForName):
2715         (WebCore::JSDOMStringMap::nameGetter):
2716         (WebCore::JSDOMStringMap::getOwnPropertyNames):
2717         (WebCore::JSDOMStringMap::deleteProperty):
2718         (WebCore::JSDOMStringMap::putDelegate):
2719         * bindings/js/JSDOMStringMapCustom.h: Added.
2720         * dom/DOMStringMap.cpp: Added.
2721         (WebCore::DOMStringMap::~DOMStringMap):
2722         * dom/DOMStringMap.h: Added.
2723         (WebCore::DOMStringMap::DOMStringMap):
2724         * dom/DOMStringMap.idl: Added.
2725         * dom/DatasetDOMStringMap.cpp: Added.
2726         (WebCore::isValidAttributeName):
2727         (WebCore::convertAttributeNameToPropertyName):
2728         (WebCore::propertyNameMatchesAttributeName):
2729         (WebCore::isValidPropertyName):
2730         (WebCore::convertPropertyNameToAttributeName):
2731         (WebCore::DatasetDOMStringMap::ref):
2732         (WebCore::DatasetDOMStringMap::deref):
2733         (WebCore::DatasetDOMStringMap::getNames):
2734         (WebCore::DatasetDOMStringMap::item):
2735         (WebCore::DatasetDOMStringMap::contains):
2736         (WebCore::DatasetDOMStringMap::setItem):
2737         (WebCore::DatasetDOMStringMap::deleteItem):
2738         * dom/DatasetDOMStringMap.h: Added.
2739         (WebCore::DatasetDOMStringMap::create):
2740         (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
2741         * dom/Element.cpp:
2742         (WebCore::Element::dataset):
2743         * dom/Element.h:
2744         * dom/Element.idl:
2745         * dom/ElementRareData.h:
2746         * page/DOMWindow.idl:
2747
2748 2010-06-30  Darin Adler  <darin@apple.com>
2749
2750         More Qt build fix.
2751
2752         * html/HTMLElementStack.cpp: Put !ENABLE(SVG_FOREIGN_OBJECT) around
2753         include of SVGNames.h too.
2754
2755 2010-06-30  Darin Adler  <darin@apple.com>
2756
2757         Reviewed by Adam Barth.
2758
2759         Add assertion, off by default, for when you forget to do adoptRef
2760         https://bugs.webkit.org/show_bug.cgi?id=41422
2761
2762         * platform/TreeShared.h: Added code to require adoption and assert if
2763         you don't call adoptRef. For now, it is turned off because of the
2764         LOOSE_TREE_SHARED define in this header. Later we can turn it on
2765         once we get everything working without asserting. Note also that it
2766         only works for objects with an initial reference count of 1.
2767
2768 2010-06-30  Patrick Gansterer  <paroga@paroga.com>
2769
2770         Reviewed by Darin Adler.
2771
2772         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196.
2773         https://bugs.webkit.org/show_bug.cgi?id=41429
2774
2775         * html/HTMLElementStack.cpp:
2776
2777 2010-06-30  Eric Seidel  <eric@webkit.org>
2778
2779         Reviewed by Adam Barth.
2780
2781         Add new popUntil(tagName) function and deploy
2782         https://bugs.webkit.org/show_bug.cgi?id=41405
2783
2784         Add a new popUntil function to share some common code
2785         between states.  There is more code to share here, but this
2786         is a start.
2787
2788         I also filled in a couple similar states to these with the
2789         hope of sharing more code, but decided to wait for a later
2790         patch.
2791
2792         No test changes, since this code doesn't do enough yet to
2793         pass any more subtests.  Lack of generateImpliedEndTags is the main
2794         blocking issue.
2795
2796         * html/HTMLElementStack.cpp:
2797         (WebCore::HTMLElementStack::popUntil):
2798         * html/HTMLElementStack.h:
2799         * html/HTMLTreeBuilder.cpp:
2800         (WebCore::HTMLTreeBuilder::processEndTag):
2801
2802 2010-06-30  Xan Lopez  <xlopez@igalia.com>
2803
2804         Reviewed by Gustavo Noronha.
2805
2806         [GTK] Unit test for DOM insertion methods
2807         https://bugs.webkit.org/show_bug.cgi?id=40495
2808
2809         Fix typo in custom function detection method.
2810
2811         * bindings/scripts/CodeGeneratorGObject.pm:
2812
2813 2010-06-30  Eric Seidel  <eric@webkit.org>
2814
2815         Reviewed by Adam Barth.
2816
2817         Implement HTML5 "in scope" algorithm and attempt to use it
2818         https://bugs.webkit.org/show_bug.cgi?id=41402
2819
2820         Implemented the 4 needed "in scope" functions for HTML5.
2821         3 for the different sets of scope markers, and one for
2822         doing exact element comparisons instead of tag name searches.
2823
2824         I deployed inScope("body") for </body> and </html> in InBody.
2825
2826         Adds two new (expected) failures, since we're now
2827         switching out of InBody to AfterBody when seeing
2828         </html>.  We don't implement AfterBody yet, so
2829         the rest of the content after </html> is ignored.
2830
2831         * html/HTMLElementStack.cpp:
2832         (WebCore::inScopeCommon):
2833         (WebCore::HTMLElementStack::inScope):
2834         (WebCore::HTMLElementStack::inListItemScope):
2835         (WebCore::HTMLElementStack::inTableScope):
2836         * html/HTMLElementStack.h:
2837         * html/HTMLTreeBuilder.cpp:
2838         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
2839         (WebCore::HTMLTreeBuilder::processEndTag):
2840         * html/HTMLTreeBuilder.h:
2841
2842 2010-06-30  Eric Seidel  <eric@webkit.org>
2843
2844         Reviewed by Adam Barth.
2845
2846         Split HTMLElementStack out into its own file
2847         https://bugs.webkit.org/show_bug.cgi?id=41399
2848
2849         No functional change, thus no tests.
2850
2851         * Android.mk:
2852         * CMakeLists.txt:
2853         * GNUmakefile.am:
2854         * WebCore.gypi:
2855         * WebCore.pro:
2856         * WebCore.vcproj/WebCore.vcproj:
2857         * WebCore.xcodeproj/project.pbxproj:
2858         * html/HTMLElementStack.cpp: Added.
2859         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
2860         (WebCore::HTMLElementStack::ElementRecord::element):
2861         (WebCore::HTMLElementStack::ElementRecord::next):
2862         (WebCore::HTMLElementStack::ElementRecord::releaseNext):
2863         (WebCore::HTMLElementStack::ElementRecord::setNext):
2864         (WebCore::HTMLElementStack::HTMLElementStack):
2865         (WebCore::HTMLElementStack::~HTMLElementStack):
2866         (WebCore::HTMLElementStack::popHTMLHeadElement):
2867         (WebCore::HTMLElementStack::pop):
2868         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
2869         (WebCore::HTMLElementStack::pushHTMLHeadElement):
2870         (WebCore::HTMLElementStack::pushHTMLBodyElement):
2871         (WebCore::HTMLElementStack::push):
2872         (WebCore::HTMLElementStack::top):
2873         (WebCore::HTMLElementStack::removeHTMLHeadElement):
2874         (WebCore::HTMLElementStack::remove):
2875         (WebCore::HTMLElementStack::contains):
2876         (WebCore::HTMLElementStack::inScope):
2877         (WebCore::HTMLElementStack::htmlElement):
2878         (WebCore::HTMLElementStack::headElement):
2879         (WebCore::HTMLElementStack::bodyElement):
2880         (WebCore::HTMLElementStack::pushCommon):
2881         (WebCore::HTMLElementStack::popCommon):
2882         (WebCore::HTMLElementStack::removeNonFirstCommon):
2883         * html/HTMLElementStack.h: Added.
2884         * html/HTMLTreeBuilder.h:
2885
2886 2010-06-30  Kenneth Russell  <kbr@google.com>
2887
2888         Reviewed by Oliver Hunt.
2889
2890         WebCore::WebGLArrayInternal::lengthAttrGetter ReadAV@NULL (b1a3e1a3e9d01f17fd493d68eeb2742f)
2891         https://bugs.webkit.org/show_bug.cgi?id=38040
2892
2893         Changed custom ArrayBufferView constructors to create a
2894         fully-initialized, zero-length array when called with zero
2895         arguments. This is the simplest fix which works identically in
2896         both the JSC and V8 bindings.
2897
2898         Test: fast/canvas/webgl/array-buffer-view-crash.html
2899
2900         * bindings/js/JSArrayBufferViewHelper.h:
2901         (WebCore::constructArrayBufferView):
2902         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
2903         (WebCore::constructWebGLArray):
2904
2905 2010-06-30  Victor Wang  <victorw@chromium.org>
2906
2907         Reviewed by Darin Fisher.
2908
2909         [chromium] update webcore gyp to use v8 dll for chromium multi dll build.
2910
2911         https://bugs.webkit.org/show_bug.cgi?id=41376
2912
2913         * WebCore.gyp/WebCore.gyp:
2914
2915 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
2916
2917         Reviewed by Dimitri Glazkov.
2918
2919         [Chromium] Add OOP font loading to FontPlatformDataChromiumMac.
2920
2921         On OS X, with font management software installed. Fonts
2922         can reside in an arbitrary path on disk which is blocked by
2923         Chromium's sandbox.
2924
2925         This change adds hooks to FontPlaformData which allow cross-process
2926         font loading in case of need.
2927
2928         https://bugs.webkit.org/show_bug.cgi?id=41148
2929
2930         Not possible to test - requires sandboxing which DRT doesn't support.
2931
2932         * WebCore.gypi:
2933         * platform/graphics/chromium/FontPlatformDataChromiumMac.mm: Added.
2934         (WebCore::FontPlatformData::FontPlatformData):
2935         (WebCore::FontPlatformData::~FontPlatformData):
2936         (WebCore::FontPlatformData::operator=):
2937         (WebCore::FontPlatformData::setFont):
2938         (WebCore::FontPlatformData::roundsGlyphAdvances):
2939         (WebCore::FontPlatformData::allowsLigatures):
2940         (WebCore::FontPlatformData::description):
2941
2942 2010-06-30  Jeremy Moskovich  <jeremy@chromium.org>
2943
2944         Reviewed by Dan Bernstein.
2945
2946         Minor tweaks to FontPlatformDataMac & SimpleFontDataMac.mm
2947
2948         * Avoid an extra FontPlatformData copy in SimpleFontDataMac.mm
2949         * Fix a typo in FontPlatformDataMac.mm
2950
2951         https://bugs.webkit.org/show_bug.cgi?id=41152
2952
2953         No behavior changes so no new tests.
2954
2955         * platform/graphics/mac/FontPlatformDataMac.mm:
2956         (WebCore::FontPlatformData::description):
2957         * platform/graphics/mac/SimpleFontDataMac.mm:
2958         (WebCore::copyFontTableForTag):
2959
2960 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
2961
2962         Reviewed by Kenneth Rohde Christiansen.
2963
2964         [Qt] Make "disallow multiple calls to SetWindow" on windowed plugins a quirk
2965         https://bugs.webkit.org/show_bug.cgi?id=41407
2966
2967         Only disallow calling SetWindow more than once if we're using Flash 9 or older.
2968         This fixes resizing of YouTube videos via the player's own button.
2969
2970         Removed copy-pasted logic in PluginViewGtk since the issue only exists
2971         when running Flash with a non-Gtk toolkit.
2972
2973         * plugins/PluginPackage.cpp:
2974         (WebCore::PluginPackage::determineQuirks):
2975         * plugins/PluginQuirkSet.h:
2976         (WebCore::):
2977         * plugins/gtk/PluginViewGtk.cpp:
2978         (WebCore::PluginView::setNPWindowIfNeeded): Remove unnecessary logic copy-pasted from PluginViewQt.
2979         * plugins/qt/PluginViewQt.cpp:
2980         (WebCore::PluginView::setNPWindowIfNeeded):
2981
2982 2010-06-30  Andreas Kling  <andreas.kling@nokia.com>
2983
2984         Reviewed by Antti Koivisto.
2985
2986         [Qt, Gtk, Symbian] Mind the semantics of NPRect for windowed plugin clip rects
2987         https://bugs.webkit.org/show_bug.cgi?id=41406
2988
2989         NPRect has right/bottom instead of width/height.
2990         This was fixed in PluginViewMac with http://trac.webkit.org/changeset/45815
2991
2992         * plugins/gtk/PluginViewGtk.cpp:
2993         (WebCore::PluginView::setNPWindowIfNeeded):
2994         * plugins/qt/PluginViewQt.cpp:
2995         (WebCore::PluginView::setNPWindowIfNeeded):
2996         * plugins/symbian/PluginViewSymbian.cpp:
2997         (WebCore::PluginView::setNPWindowIfNeeded):
2998
2999 2010-06-30  Antonio Gomes  <tonikitoo@webkit.org>
3000
3001         Reviewed by Simon Fraser.
3002
3003         Spatial Navigation: make elements in inner frames nested more than 1 level deep focusable
3004         https://bugs.webkit.org/show_bug.cgi?id=41160
3005
3006         Patch addresses the problem of spatial navigation not work properly with nested
3007         inner frames by adding the isNodeDeepDescendantOfDocument method. It recursively checks
3008         if a give node is descendant of a given document or any parent of it.
3009
3010         Test: fast/events/spatial-navigation/snav-iframe-nested.html
3011
3012         * page/FocusController.cpp:
3013         (WebCore::FocusController::deepFindFocusableNodeInDirection):
3014         * page/SpatialNavigation.cpp:
3015         (WebCore::isNodeDeepDescendantOfDocument):
3016         * page/SpatialNavigation.h:
3017
3018 2010-06-30  Adam Barth  <abarth@webkit.org>
3019
3020         Reviewed by Eric Seidel.
3021
3022         HTMLTokenizer should use fewer macros
3023         https://bugs.webkit.org/show_bug.cgi?id=41397
3024
3025         Macros are sadness.  Inline functions are the new hotness.
3026
3027         * html/HTMLTokenizer.cpp:
3028         (WebCore::HTMLTokenizer::processEntity):
3029         (WebCore::HTMLTokenizer::emitAndResumeIn):
3030         (WebCore::HTMLTokenizer::emitAndReconsumeIn):
3031         (WebCore::HTMLTokenizer::emitEndOfFile):
3032         (WebCore::HTMLTokenizer::flushBufferedEndTag):
3033         (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
3034         (WebCore::HTMLTokenizer::nextToken):
3035         (WebCore::HTMLTokenizer::bufferCharacter):
3036         (WebCore::HTMLTokenizer::bufferCodePoint):
3037         (WebCore::HTMLTokenizer::bufferParseError):
3038         (WebCore::HTMLTokenizer::bufferCurrentToken):
3039         (WebCore::HTMLTokenizer::bufferEndOfFile):
3040         * html/HTMLTokenizer.h:
3041
3042 2010-06-30  Justin Schuh  <jschuh@chromium.org>
3043
3044         Reviewed by Adam Barth.
3045
3046         Remove dead binding code
3047         https://bugs.webkit.org/show_bug.cgi?id=41388
3048
3049         Removed BindingElement because it was obsoleted by r59866.
3050
3051         * WebCore.gypi:
3052         * bindings/generic/BindingElement.h: Removed.
3053         * bindings/v8/SerializedScriptValue.cpp:
3054         * bindings/v8/V8Binding.h:
3055         * bindings/v8/custom/V8DatabaseCustom.cpp:
3056         * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
3057         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3058         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
3059
3060 2010-06-30  Eric Seidel  <eric@webkit.org>
3061
3062         Reviewed by Adam Barth.
3063
3064         HTMLTokenizer needs EndOfFile support
3065         https://bugs.webkit.org/show_bug.cgi?id=41344
3066
3067         EndOfFile support uncovered a bug in our implementation of finish().
3068         finish() may be called more than once if the first call does not
3069         result in end() being called (and parsing thus actually stopping).
3070
3071         SegmentedString::close() should have ASSERTed that it was not already
3072         closed when close() is called.  I've added such an assert now.
3073
3074         * html/HTMLDocumentParser.cpp:
3075         (WebCore::HTMLDocumentParser::finish):
3076         * platform/text/SegmentedString.cpp:
3077         (WebCore::SegmentedString::close):
3078         * platform/text/SegmentedString.h:
3079
3080 2010-06-29  Eric Seidel  <eric@webkit.org>
3081
3082         Reviewed by Adam Barth.
3083
3084         HTMLTokenizer needs EndOfFile support
3085         https://bugs.webkit.org/show_bug.cgi?id=41344
3086
3087         We're using \0 as the EndOfFile marker as HTML5 replaces
3088         all other \0 with \0xFFFD.  Added some special case logic
3089         to InputStreamPreprocessor::peek not to replace \0 when
3090         its being used at the end of a stream.
3091
3092         This fixed 60 subtests in html5lib/runner.html.
3093
3094         There are still at least two states (BogusCommentState and
3095         CDATASectionState) which do not have proper EOF support.
3096
3097         * html/HTMLDocumentParser.cpp:
3098         (WebCore::HTMLDocumentParser::finish):
3099         (WebCore::HTMLDocumentParser::finishWasCalled):
3100         * html/HTMLInputStream.h:
3101         (WebCore::HTMLInputStream::markEndOfFile):
3102         (WebCore::HTMLInputStream::haveSeenEndOfFile):
3103         * html/HTMLToken.h:
3104         (WebCore::HTMLToken::makeEndOfFile):
3105         * html/HTMLTokenizer.cpp:
3106         (WebCore::HTMLTokenizer::nextToken):
3107         (WebCore::HTMLTokenizer::emitEndOfFile):
3108         * html/HTMLTokenizer.h:
3109         (WebCore::HTMLTokenizer::InputStreamPreprocessor::peek):
3110         (WebCore::HTMLTokenizer::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
3111         * html/HTMLTreeBuilder.cpp:
3112         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
3113
3114 2010-06-28  Eric Seidel  <eric@webkit.org>
3115
3116         Reviewed by Adam Barth.
3117
3118         Teach HTML5TreeBuilder how to merge attributes from extra html/body elements
3119         https://bugs.webkit.org/show_bug.cgi?id=41337
3120
3121         Had to teach ElementStack to store pointers to html, head, and body
3122         elements.
3123
3124         This fixed a few tests in LayoutTests/html5lib.
3125
3126         * html/HTMLTreeBuilder.cpp:
3127         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
3128         (WebCore::HTMLTreeBuilder::mergeAttributesFromTokenIntoElement):
3129         (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
3130         (WebCore::HTMLTreeBuilder::processStartTag):
3131         (WebCore::HTMLTreeBuilder::processEndTag):
3132         (WebCore::HTMLTreeBuilder::createElementAndAttachToCurrent):
3133         (WebCore::HTMLTreeBuilder::insertHTMLHtmlElement):
3134         (WebCore::HTMLTreeBuilder::insertHTMLHeadElement):
3135         (WebCore::HTMLTreeBuilder::insertHTMLBodyElement):
3136         (WebCore::HTMLTreeBuilder::insertElement):
3137         (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
3138         (WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
3139         * html/HTMLTreeBuilder.h:
3140         (WebCore::HTMLTreeBuilder::ElementStack::ElementStack):
3141         (WebCore::HTMLTreeBuilder::ElementStack::popHTMLHeadElement):
3142         (WebCore::HTMLTreeBuilder::ElementStack::pop):
3143         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHtmlElement):
3144         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHeadElement):
3145         (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLBodyElement):
3146         (WebCore::HTMLTreeBuilder::ElementStack::push):
3147         (WebCore::HTMLTreeBuilder::ElementStack::removeHTMLHeadElement):
3148         (WebCore::HTMLTreeBuilder::ElementStack::remove):
3149         (WebCore::HTMLTreeBuilder::ElementStack::htmlElement):
3150         (WebCore::HTMLTreeBuilder::ElementStack::headElement):
3151         (WebCore::HTMLTreeBuilder::ElementStack::bodyElement):
3152         (WebCore::HTMLTreeBuilder::ElementStack::pushCommon):
3153         (WebCore::HTMLTreeBuilder::ElementStack::popCommon):
3154         (WebCore::HTMLTreeBuilder::ElementStack::removeNonFirstCommon):
3155
3156 2010-06-30  José Millán Soto  <jmillan@igalia.com>
3157
3158         Reviewed by Xan Lopez.
3159
3160         [Gtk] Text attributes not exposed
3161         https://bugs.webkit.org/show_bug.cgi?id=25528
3162
3163         Implemented the get_run_attributes and get_default_attributes
3164         functions for the ATK_TEXT role.
3165
3166         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3167         (getAttributeSetForAccessibilityObject):
3168         (compareAttribute):
3169         (attributeSetDifference):
3170         (accessibilityObjectLength):
3171         (getAccessibilityObjectForOffset):
3172         (getRunAttributesFromAccesibilityObject):
3173         (webkit_accessible_text_get_run_attributes):
3174         (webkit_accessible_text_get_default_attributes):
3175
3176 2010-06-30  Yuta Kitamura  <yutak@chromium.org>
3177
3178         Reviewed by Alexey Proskuryakov.
3179
3180         Fix Sec-WebSocketKey{1,2} headers.
3181
3182         According to WebSocket specification, a value of Sec-WebSocketKey{1,2} header
3183         should not start or end with a space.
3184
3185         WebSocket: Malformed handshake headers in a worker due to rand_s failing
3186         https://bugs.webkit.org/show_bug.cgi?id=41327
3187
3188         No new tests. ASSERT should catch the problem.
3189
3190         * websockets/WebSocketHandshake.cpp:
3191         (WebCore::generateSecWebSocketKey):
3192
3193 2010-06-30  Yuzo Fujishima  <yuzo@google.com>
3194
3195         Reviewed by Dan Bernstein.
3196
3197         Fix for Bug 41339 - unicode-range property only with a descending range
3198         causes a crash
3199
3200         https://bugs.webkit.org/show_bug.cgi?id=41339
3201
3202         Test: fast/css/font-face-descending-unicode-range.html
3203
3204         * css/CSSParser.cpp:
3205         (WebCore::CSSParser::parseFontFaceUnicodeRange):
3206
3207 2010-06-29  Abhinav Mithal <abhinav.mithal@nokia.com>
3208
3209         Reviewed by Laszlo Gombos.
3210
3211         [Qt] [Symbian] Fix doube-deallocation while destroying PluginContainerSymbian
3212         https://bugs.webkit.org/show_bug.cgi?id=37303
3213
3214         * plugins/symbian/PluginViewSymbian.cpp:
3215         (WebCore::PluginView::platformDestroy):
3216
3217 2010-06-29  Zhenyao Mo  <zmo@google.com>
3218
3219         Reviewed by Dimitri Glazkov.
3220
3221         Implement getAttachedShaders
3222         https://bugs.webkit.org/show_bug.cgi?id=31172
3223
3224         * bindings/js/JSWebGLRenderingContextCustom.cpp: JS binding for getAttachedShaders().
3225         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
3226         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: V8 binding for getAttachedShaders().
3227         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3228         * html/canvas/WebGLRenderingContext.cpp:
3229         (WebCore::WebGLRenderingContext::getAttachedShaders): Implementation of getAttachedShaders().
3230         (WebCore::WebGLRenderingContext::findShader): Helper function to find a shader object from its name.
3231         * html/canvas/WebGLRenderingContext.h: Declaration of getAttachedShaders().
3232         * html/canvas/WebGLRenderingContext.idl: Ditto.
3233         * platform/graphics/GraphicsContext3D.h: Ditto.
3234         * platform/graphics/mac/GraphicsContext3DMac.mm:
3235         (WebCore::GraphicsContext3D::getAttachedShaders): Implementation of getAttachedShaders().
3236
3237 2010-06-29  MORITA Hajime  <morrita@google.com>
3238
3239         Reviewed by Kent Tamura.
3240
3241         REGRESSION: [Chromium] <progress> appearance on windows looks not good
3242         https://bugs.webkit.org/show_bug.cgi?id=41343
3243         
3244         RenderThemeChromiumWin::paintProgressBar() should return false,
3245         which indicates the widget is painted.
3246         
3247         Test: fast/dom/HTMLProgressElement/progress-element.html
3248               * rebaselined with a wrong expectation.
3249
3250         * rendering/RenderThemeChromiumWin.cpp:
3251         (WebCore::RenderThemeChromiumWin::paintProgressBar):
3252
3253 2010-06-29  Kinuko Yasuda  <kinuko@chromium.org>
3254
3255         Reviewed by Jian Li.
3256
3257         Fix http/tests/local/blob/send-data-blob.html on Windows
3258         https://bugs.webkit.org/show_bug.cgi?id=41228
3259
3260         Fix a regression bug in the line-conversion code.
3261         Rewrite the line-conversion function with simpler functions to
3262         make it less error prone.
3263
3264         No new tests as this is for bug fixes.
3265
3266         * platform/BlobItem.cpp:
3267         (WebCore::StringBlobItem::convertToCString):
3268
3269 2010-06-29  Dumitru Daniliuc  <dumi@chromium.org>
3270
3271         Reviewed by Darin Fisher.
3272
3273         Implementing DatabaseSync::openDatabaseSync().
3274         https://bugs.webkit.org/show_bug.cgi?id=40607
3275
3276         1. Moved some common code from Database to AbstractDatabase.
3277         2. Made performOpenAndVerify() virtual, since DatabaseSync doesn't
3278            need to interact with DatabaseThread.
3279         3. Removed the m_creationCallback field, since it's only needed in
3280            the openDatabase{Sync} methods.
3281
3282         * storage/AbstractDatabase.cpp:
3283         (WebCore::retrieveTextResultFromDatabase):
3284         (WebCore::setTextValueInDatabase):
3285         (WebCore::guidMutex):
3286         (WebCore::guidToVersionMap):
3287         (WebCore::updateGuidVersionMap):
3288         (WebCore::guidToDatabaseMap):
3289         (WebCore::guidForOriginAndName):
3290         (WebCore::AbstractDatabase::databaseInfoTableName):
3291         (WebCore::AbstractDatabase::AbstractDatabase):
3292         (WebCore::AbstractDatabase::closeDatabase):
3293         (WebCore::AbstractDatabase::version):
3294         (WebCore::AbstractDatabase::performOpenAndVerify):
3295         (WebCore::AbstractDatabase::scriptExecutionContext):
3296         (WebCore::AbstractDatabase::securityOrigin):
3297         (WebCore::AbstractDatabase::stringIdentifier):
3298         (WebCore::AbstractDatabase::displayName):
3299         (WebCore::AbstractDatabase::estimatedSize):
3300         (WebCore::AbstractDatabase::fileName):
3301         (WebCore::AbstractDatabase::databaseVersionKey):
3302         (WebCore::AbstractDatabase::getVersionFromDatabase):
3303         (WebCore::AbstractDatabase::setVersionInDatabase):
3304         (WebCore::AbstractDatabase::versionMatchesExpected):
3305         (WebCore::AbstractDatabase::setExpectedVersion):
3306         (WebCore::AbstractDatabase::disableAuthorizer):
3307         (WebCore::AbstractDatabase::enableAuthorizer):
3308         (WebCore::AbstractDatabase::setAuthorizerReadOnly):
3309         (WebCore::AbstractDatabase::lastActionChangedDatabase):
3310         (WebCore::AbstractDatabase::lastActionWasInsert):
3311         (WebCore::AbstractDatabase::resetDeletes):
3312         (WebCore::AbstractDatabase::hadDeletes):
3313         (WebCore::AbstractDatabase::resetAuthorizer):
3314         * storage/AbstractDatabase.h:
3315         (WebCore::AbstractDatabase::opened):
3316         (WebCore::AbstractDatabase::isNew):
3317         (WebCore::AbstractDatabase::databaseDebugName):
3318         * storage/Database.cpp:
3319         (WebCore::DatabaseCreationCallbackTask::create):
3320         (WebCore::DatabaseCreationCallbackTask::performTask):
3321         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
3322         (WebCore::Database::openDatabase):
3323         (WebCore::Database::Database):
3324         (WebCore::Database::version):
3325         (WebCore::Database::openAndVerifyVersion):
3326         (WebCore::Database::close):
3327         (WebCore::Database::stop):
3328         (WebCore::Database::performOpenAndVerify):
3329         * storage/Database.h:
3330         (WebCore::Database::sqliteDatabase):
3331         * storage/DatabaseAuthorizer.cpp:
3332         (WebCore::DatabaseAuthorizer::create):
3333         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
3334         (WebCore::DatabaseAuthorizer::denyBasedOnTableName):
3335         * storage/DatabaseAuthorizer.h:
3336         * storage/DatabaseSync.cpp:
3337         (WebCore::DatabaseSync::openDatabaseSync):
3338         (WebCore::DatabaseSync::DatabaseSync):
3339         (WebCore::DatabaseSync::~DatabaseSync):
3340         (WebCore::DatabaseSync::markAsDeletedAndClose):
3341         (WebCore::CloseSyncDatabaseOnContextThreadTask::create):
3342         (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask):
3343         (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask):
3344         (WebCore::DatabaseSync::closeImmediately):
3345         * storage/DatabaseSync.h:
3346         * storage/DatabaseTask.cpp:
3347         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
3348         (WebCore::DatabaseOpenTask::doPerformTask):
3349         * storage/DatabaseTask.h:
3350         (WebCore::DatabaseOpenTask::create):
3351
3352 2010-06-29  François Sausset  <sausset@gmail.com>
3353
3354         Reviewed by Darin Adler.
3355
3356         Fix a bug when a msubsup element is inside a mrow element
3357         https://bugs.webkit.org/show_bug.cgi?id=36525
3358
3359         Test: mathml/presentation/subsup.xhtml
3360
3361         * mathml/RenderMathMLSubSup.cpp:
3362         (WebCore::RenderMathMLSubSup::stretchToHeight):
3363
3364 2010-06-29  Zhenyao Mo  <zmo@google.com>
3365
3366         Reviewed by Dimitri Glazkov.
3367
3368         uniformmatrix* should generate INVALID_VALUE with transpose = true
3369         https://bugs.webkit.org/show_bug.cgi?id=41235
3370
3371         Test: fast/canvas/webgl/gl-uniformmatrix4fv.html
3372
3373         * html/canvas/WebGLRenderingContext.cpp:
3374         (WebCore::WebGLRenderingContext::uniformMatrix2fv): Call validateUniformMatrixParameters instead.
3375         (WebCore::WebGLRenderingContext::uniformMatrix3fv): Ditto.
3376         (WebCore::WebGLRenderingContext::uniformMatrix4fv): Ditto.
3377         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): Validate input parameters for uniformMatrix*().
3378         * html/canvas/WebGLRenderingContext.h: Declare validateUniformMatrixParameters().
3379
3380 2010-06-29  Kenneth Russell  <kbr@google.com>
3381
3382         Reviewed by Dimitri Glazkov.
3383
3384         Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView
3385         https://bugs.webkit.org/show_bug.cgi?id=40398
3386
3387         Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store
3388         parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView.
3389         More cleanly separated the unpacking and packing phases of user-supplied pixel data
3390         in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling
3391         of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added
3392         validation of the amount of data passed to texImage2D and texSubImage2D. Modified
3393         fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha
3394         tests for relevant source formats; added new test which exercises all combinations
3395         of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel
3396         store parameters.
3397
3398         Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html
3399
3400         * html/canvas/WebGLRenderingContext.cpp:
3401         (WebCore::WebGLRenderingContext::texImage2D):
3402         (WebCore::WebGLRenderingContext::texSubImage2D):
3403         (WebCore::WebGLRenderingContext::validateTexFuncData):
3404         * html/canvas/WebGLRenderingContext.h:
3405         * platform/graphics/GraphicsContext3D.cpp:
3406         (WebCore::GraphicsContext3D::extractImageData):
3407         (WebCore::GraphicsContext3D::extractTextureData):
3408         (WebCore::GraphicsContext3D::flipVertically):
3409         (WebCore::doUnpackingAndPacking):
3410         (WebCore::computeIncrementParameters):
3411         (WebCore::doPacking):
3412         (WebCore::GraphicsContext3D::packPixels):
3413         * platform/graphics/GraphicsContext3D.h:
3414         (WebCore::GraphicsContext3D::):
3415         * platform/graphics/cg/GraphicsContext3DCG.cpp:
3416         (WebCore::GraphicsContext3D::getImageData):
3417         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3418         (WebCore::GraphicsContext3D::getImageData):
3419         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
3420         (WebCore::GraphicsContext3D::getImageData):
3421
3422 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
3423
3424         Reviewed by Dirk Schulze.
3425
3426         Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r61667.
3427         https://bugs.webkit.org/show_bug.cgi?id=41367
3428
3429         * svg/SVGSVGElement.cpp:
3430         (WebCore::SVGSVGElement::isOutermostSVG): Add missing ENABLE(SVG_FOREIGN_OBJECT).
3431
3432 2010-06-29  Patrick Gansterer  <paroga@paroga.com>
3433
3434         Reviewed by Darin Adler.
3435
3436         Buildfix after r62118.
3437         https://bugs.webkit.org/show_bug.cgi?id=41365
3438
3439         * rendering/RenderSVGRoot.cpp: Inlude missing RenderSVGResource.h.
3440
3441 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3442
3443         Unreviewed, rolling out r62052.
3444         http://trac.webkit.org/changeset/62052
3445         https://bugs.webkit.org/show_bug.cgi?id=41357
3446
3447         Causes crashes in JSLazyEventListener::initializeFunction (see
3448         bug 41352) (Requested by aroben on #webkit).
3449
3450         * bindings/js/ScriptEventListener.cpp:
3451         (WebCore::createAttributeEventListener):
3452         * bindings/js/ScriptEventListener.h:
3453         * bindings/v8/ScriptEventListener.cpp:
3454         (WebCore::createAttributeEventListener):
3455         * bindings/v8/ScriptEventListener.h:
3456         * html/HTMLBodyElement.cpp:
3457         (WebCore::HTMLBodyElement::parseMappedAttribute):
3458         * html/HTMLFrameSetElement.cpp:
3459         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
3460         * svg/SVGSVGElement.cpp:
3461         (WebCore::SVGSVGElement::parseMappedAttribute):
3462
3463 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3464
3465         Unreviewed, rolling out r62129.
3466         http://trac.webkit.org/changeset/62129
3467         https://bugs.webkit.org/show_bug.cgi?id=41362
3468
3469         Needed to roll out r62052 (see bug 41357) (Requested by aroben
3470         on #webkit).
3471
3472         * bindings/js/ScriptEventListener.cpp:
3473         (WebCore::createWindowAttributeEventListener):
3474
3475 2010-06-29  Beth Dakin  <bdakin@apple.com>
3476
3477         Reviewed by Darin Adler.
3478
3479         Speculative fix for <rdar://problem/8071558> CrashTracer: [USER] 
3480         2300+ crashes in Safari at com.apple.WebCore: 
3481         WebCore::FrameView::scheduleRelayout + 352
3482
3483         Unfortunately, we don't have a reproducible case for this bug, and 
3484         therefore, we do not have a layout test either. It is pretty clear 
3485         from the logs that m_frame->settings() is null in 
3486         FrameView::scheduleRelayout() in the crashing case. 
3487         m_frame->settings() is null whenever page is null. Everywhere else 
3488         in FrameView.cpp we null-check either page or settings before using 
3489         settings. It seems plausible to me that scheduleRelayout could be 
3490         called when page is null, so the fix is just to add null-checks. 
3491
3492         * page/FrameView.cpp:
3493         (WebCore::FrameView::layout):
3494         (WebCore::FrameView::scheduleRelayout):
3495
3496 2010-06-29  Dan Bernstein  <mitz@apple.com>
3497
3498         Reviewed by Darin Adler.
3499
3500         <rdar://problem/7975842> Certain text is repeated after using splitText()
3501
3502         Tests: fast/text/setData-dirty-lines.html
3503                fast/text/splitText-dirty-lines.html
3504
3505         * dom/CharacterData.cpp:
3506         (WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than
3507         setText(), because only the former correctly dirties line boxes.
3508         * dom/Text.cpp:
3509         (WebCore::Text::splitText): Ditto.
3510
3511 2010-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3512
3513         Unreviewed, rolling out r62073.
3514         http://trac.webkit.org/changeset/62073
3515         https://bugs.webkit.org/show_bug.cgi?id=41359
3516
3517         Necessary to fix chromium build when r62052 is rolled out.
3518         (Requested by dave_levin on #webkit).
3519
3520         * bindings/v8/ScriptEventListener.h:
3521
3522 2010-06-29  Vangelis Kokkevis  <vangelis@chromium.org>
3523
3524         Reviewed by Darin Fisher.
3525
3526         [Chromium] Hooking up WebGL layers to the gpu-compositor. Implement missing
3527         methods to set the contents of a GraphicsLayer with a platform specific WebGL
3528         Layer, and to update the contents of the WebGL Layer when needed.
3529         https://bugs.webkit.org/show_bug.cgi?id=41243
3530
3531         * platform/graphics/GraphicsContext3D.h:
3532         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3533         (WebCore::GraphicsLayerChromium::setContentsToWebGL):
3534         * platform/graphics/chromium/GraphicsLayerChromium.h:
3535         * platform/graphics/chromium/LayerChromium.cpp:
3536         (WebCore::LayerChromium::removeAllSublayers):
3537           No need to call setNeedsCommit() from here as the previous call to
3538           layer->removeFromSuperlayer() will have that effect (and we only need
3539           to notify the owner if there were actually any sublayers removed).
3540         * platform/graphics/chromium/LayerChromium.h:
3541         * platform/graphics/chromium/LayerRendererChromium.cpp:
3542         (WebCore::LayerRendererChromium::drawLayer):
3543         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3544         (WebCore::WebGLLayerChromium::create):
3545         (WebCore::WebGLLayerChromium::updateTextureContents):
3546         (WebCore::WebGLLayerChromium::setContext):
3547
3548 2010-06-29  Csaba Osztrogonác  <ossy@webkit.org>
3549
3550         Reviewed by Nikolas Zimmermann.
3551
3552         Buildfix for --minimal build after r62052
3553         https://bugs.webkit.org/show_bug.cgi?id=41338
3554
3555         * bindings/js/ScriptEventListener.cpp: #if ENABLE(SVG) guards added.
3556         (WebCore::createWindowAttributeEventListener):
3557
3558 2010-06-29  Brent Fulgham  <bfulgham@webkit.org>
3559
3560         Build fix. Not reviewd.
3561
3562         CGColor is only used for PLATFORM(CG).  Conditionalize include
3563         to correct build failure for WinCairo.
3564
3565         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
3566         Conditionalize use of CGColor.
3567
3568 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
3569
3570         Reviewed by Xan Lopez.
3571
3572         [GTK] Clean up the source lists in the GNUMakefile.am files
3573         https://bugs.webkit.org/show_bug.cgi?id=41229
3574
3575         Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
3576         the source lists.
3577
3578         * GNUmakefile.am:
3579
3580 2010-06-29  Martin Robinson  <mrobinson@igalia.com>
3581
3582         Reviewed by Xan Lopez.
3583
3584         [GTK] DragDataGtk should use DataObjectGtk as the platformDragData
3585         https://bugs.webkit.org/show_bug.cgi?id=40307
3586
3587         Use DataObjectGtk as the platformDragData for DragDataGtk. DataObjectGtk
3588         contains all the information necessary to keep track of drops in progress.
3589
3590         * platform/DragData.h: Use a DataObjectGtk* as the platform drag data.
3591         * platform/gtk/DragDataGtk.cpp:
3592         (WebCore::DragData::containsFiles): Retrieve information via platformDragData.
3593         (WebCore::DragData::asFilenames): Ditto.
3594         (WebCore::DragData::containsPlainText): Ditto.
3595         (WebCore::DragData::asPlainText): Ditto.
3596         (WebCore::DragData::createClipboard): Create the Clipboard with the platformDragData.
3597         (WebCore::DragData::containsCompatibleContent): Retrieve information via platformDragData.
3598         (WebCore::DragData::containsURL): Ditto.
3599         (WebCore::DragData::asURL): Ditto.
3600         (WebCore::DragData::asFragment): Ditto.
3601
3602 2010-06-29  Adam Langley  <agl@chromium.org>
3603
3604         Build fix. Not reviewd.
3605
3606         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
3607         (WebCore::FontPlatformData::setupPaint):
3608           The name of the Skia function changed between writing this patch and
3609           commiting it.
3610
3611 2010-06-29  Adam Langley  <agl@chromium.org>
3612
3613         Reviewed by Kent Tamura.
3614
3615         [chromium] Support forced autohinting.
3616
3617         https://bugs.webkit.org/show_bug.cgi?id=40493
3618
3619         Freetype (the typical font rendering on Linux) includes an 'autohinter':
3620         an algorithm for hinting glyph shapes without using the embedded hinting
3621         bytecode in a font.
3622
3623         Some people prefer the autohinter's results, so we support forcing its
3624         use.
3625
3626         This change also fixes a bug where two FontPlatformData structures would
3627         compare equal, even if their rendering styles were different.
3628
3629         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
3630         (WebCore::FontPlatformData::setupPaint):
3631           In order to compare FontPlatformData structures we need to make sure
3632           that they are initialised.
3633         (WebCore::FontPlatformData::operator==):
3634         * platform/graphics/chromium/FontRenderStyle.h:
3635         (WebCore::FontRenderStyle::FontRenderStyle):
3636         (WebCore::FontRenderStyle::operator==):
3637           This fixes the case where two FontPlatformData structures, differing
3638           only by rendering style, would compare equal.
3639
3640 2010-06-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
3641
3642         Unreviewed, Symbian build fix.
3643
3644         Add more directories to USERINCLUDE so that they get included
3645         before the Symbian system headers.
3646
3647         This is a workaround to some toolchain problems; bug 31273 is used to
3648         find a better solution.
3649
3650         No new tests as there is no new functionality.
3651
3652         * WebCore.pro:
3653
3654 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
3655
3656         Reviewed by Dirk Schulze.
3657
3658         Cleanup SVGRenderSupport
3659         https://bugs.webkit.org/show_bug.cgi?id=41347
3660
3661         Remove SVGRenderBase base class from all SVG renderers. It was meant as temporary solution until all SVG renderers inherit from RenderSVGModelObject,
3662         though this is not going to happen. RenderSVGModelObject inherits from RenderObject, making it impossible to inherit eg. RenderSVGImage from it, as
3663         it already indirectly inherits from RenderObject, through RenderImage. Other examples are RenderForeignObject (RenderBlock inheritance),
3664         RenderSVGInlineText (RenderText inheritance) etc.
3665
3666         Rename SVGRenderBase to SVGRenderSupport, just like the file is named, remove all free functions, and make them all static functions in SVGRenderSupport.
3667         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.
3668
3669         Doesn't affect any test.
3670
3671         * rendering/RenderBox.cpp: Remove localTransform() override, not needed at all.
3672         * rendering/RenderBox.h: Ditto.
3673         * rendering/RenderForeignObject.cpp: s/SVGRenderBase/SVGRenderSupport/
3674         (WebCore::RenderForeignObject::paint):
3675         (WebCore::RenderForeignObject::clippedOverflowRectForRepaint):
3676         (WebCore::RenderForeignObject::computeRectForRepaint):
3677         (WebCore::RenderForeignObject::nodeAtFloatPoint):
3678         (WebCore::RenderForeignObject::mapLocalToContainer):
3679         * rendering/RenderPath.cpp:
3680         (WebCore::BoundingRectStrokeStyleApplier::strokeStyle): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
3681         (WebCore::RenderPath::paint): s/SVGRenderBase/SVGRenderSupport/
3682         (WebCore::RenderPath::nodeAtFloatPoint): Ditto.
3683         (WebCore::RenderPath::updateCachedBoundaries): Ditto.
3684         * rendering/RenderSVGBlock.h: Remove SVGRenderBase inheritance.
3685         * rendering/RenderSVGContainer.cpp:
3686         (WebCore::RenderSVGContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
3687         (WebCore::RenderSVGContainer::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
3688         (WebCore::RenderSVGContainer::objectBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
3689         (WebCore::RenderSVGContainer::strokeBoundingBox): Ditto.
3690         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
3691         (WebCore::RenderSVGContainer::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
3692         * rendering/RenderSVGHiddenContainer.cpp:
3693         (WebCore::RenderSVGHiddenContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
3694         * rendering/RenderSVGImage.cpp:
3695         (WebCore::RenderSVGImage::paint): prepareToRenderSVGContent/finishRenderSVGContent are static functions in SVGRenderSupport now.
3696         (WebCore::RenderSVGImage::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. 
3697         (WebCore::RenderSVGImage::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
3698         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
3699         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
3700         (WebCore::RenderSVGImage::computeRectForRepaint): Ditto.
3701         (WebCore::RenderSVGImage::mapLocalToContainer): Ditto.
3702         * rendering/RenderSVGImage.h: Remove SVGRenderBase inheritance.
3703         * rendering/RenderSVGInline.cpp:
3704         (WebCore::RenderSVGInline::objectBoundingBox): findTextRootObject is a static function in SVGRenderSupport now.
3705         (WebCore::RenderSVGInline::strokeBoundingBox): Ditto.
3706         (WebCore::RenderSVGInline::repaintRectInLocalCoordinates): Ditto.
3707         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
3708         (WebCore::RenderSVGInline::computeRectForRepaint): Ditto,.
3709         (WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
3710         (WebCore::RenderSVGInline::absoluteQuads): findTextRootObject is a static function in SVGRenderSupport now.
3711         * rendering/RenderSVGInline.h: Remove SVGRenderBase inheritance.
3712         * rendering/RenderSVGModelObject.cpp:
3713         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
3714         (WebCore::RenderSVGModelObject::computeRectForRepaint): Ditto.
3715         (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
3716         (WebCore::RenderSVGModelObject::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
3717         * rendering/RenderSVGModelObject.h: Remove SVGRenderBase inheritance.
3718         * rendering/RenderSVGResource.cpp:
3719         (WebCore::invalidatePaintingResource): Moved here from SVGRenderSupport (static inline helper function).
3720         (WebCore::RenderSVGResource::invalidateAllResourcesOfRenderer): Moved here from SVGRenderSupport and renamed from deregisterFromResources.
3721         * rendering/RenderSVGResource.h: Expose invalidateAllResourcesOfRenderer function.
3722         * rendering/RenderSVGResourceClipper.cpp:
3723         (WebCore::RenderSVGResourceClipper::createClipData): renderSubtreeToImage is a static function in SVGRenderSupport now.
3724         (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
3725         * rendering/RenderSVGResourceGradient.cpp:
3726         (WebCore::createMaskAndSwapContextForTextGradient): findTextRootObject is a static function in SVGRenderSupport now.
3727         (WebCore::clipToTextMask): Ditto.
3728         (WebCore::RenderSVGResourceGradient::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
3729         (WebCore::RenderSVGResourceGradient::postApplyResource): findTextRootObject is a static function in SVGRenderSupport now.
3730         * rendering/RenderSVGResourceMarker.cpp:
3731         (WebCore::RenderSVGResourceMarker::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
3732         * rendering/RenderSVGResourceMasker.cpp:
3733         (WebCore::RenderSVGResourceMasker::createMaskImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
3734         * rendering/RenderSVGResourcePattern.cpp:
3735         (WebCore::RenderSVGResourcePattern::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
3736         (WebCore::clampImageBufferSizeToViewport): Moved here from SVGRenderSupport.
3737         (WebCore::RenderSVGResourcePattern::createTileImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
3738         * rendering/RenderSVGResourceSolidColor.cpp:
3739         (WebCore::RenderSVGResourceSolidColor::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now
3740         * rendering/RenderSVGRoot.cpp:
3741         (WebCore::RenderSVGRoot::layout): layoutChildren is a static function in SVGRenderSupport now.
3742         (WebCore::RenderSVGRoot::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
3743         (WebCore::RenderSVGRoot::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
3744         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
3745         * rendering/RenderSVGRoot.h: Remove localTransform() override, no longer needed. Remove SVGRenderBase inheritance.
3746         (WebCore::RenderSVGRoot::objectBoundingBox): Inlined for speeed. 
3747         (WebCore::RenderSVGRoot::strokeBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
3748         * rendering/RenderSVGText.cpp: 
3749         (WebCore::RenderSVGText::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
3750         (WebCore::RenderSVGText::computeRectForRepaint): Ditto.
3751         (WebCore::RenderSVGText::mapLocalToContainer): Ditto.
3752         (WebCore::RenderSVGText::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
3753         (WebCore::RenderSVGText::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
3754         (WebCore::RenderSVGText::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
3755         * rendering/RenderSVGViewportContainer.cpp:
3756         (WebCore::RenderSVGViewportContainer::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
3757         (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): pointInClippingArea is a static function in SVGRenderSupport now.
3758         * rendering/SVGInlineFlowBox.cpp:
3759         (WebCore::SVGInlineFlowBox::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
3760         * rendering/SVGRenderSupport.cpp: Make it impossible to construct the class. Remove virtual destructor, made all methods static.
3761         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
3762         (WebCore::SVGRenderSupport::computeRectForRepaint): Ditto.
3763         (WebCore::SVGRenderSupport::mapLocalToContainer): Ditto.
3764         (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Ditto.
3765         (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
3766         (WebCore::SVGRenderSupport::renderSubtreeToImage): Made static.
3767         (WebCore::SVGRenderSupport::computeContainerBoundingBox): Ditto.
3768         (WebCore::SVGRenderSupport::layoutChildren): Ditto.
3769         (WebCore::SVGRenderSupport::isOverflowHidden): s/SVGRenderBase/SVGRenderSupport/
3770         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
3771         (WebCore::SVGRenderSupport::pointInClippingArea): Made static.
3772         (WebCore::SVGRenderSupport::dashArrayFromRenderingStyle): Ditto.
3773         (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto.
3774         (WebCore::SVGRenderSupport::findTextRootObject): Ditto.
3775         * rendering/SVGRenderSupport.h:
3776         * rendering/SVGRenderTreeAsText.cpp:
3777         (WebCore::writeStyle): dashArrayFromRenderingStyle is a static function in SVGRenderSupport now.
3778         * rendering/SVGRootInlineBox.cpp:
3779         (WebCore::SVGRootInlineBox::paint): s/SVGRenderBase/SVGRenderSupport/
3780         * rendering/SVGRootInlineBox.h: Remove SVGRenderBase inheritance.
3781         * svg/SVGFEImageElement.cpp: Add RenderObject.h include, otherwhise it won't build anymore.
3782         (WebCore::SVGFEImageElement::build): renderSubtreeToImage is a static function in SVGRenderSupport now.
3783         * svg/SVGStyledElement.cpp: 
3784         (WebCore::SVGStyledElement::svgAttributeChanged): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
3785
3786 2010-06-21  Philippe Normand  <pnormand@igalia.com>
3787
3788         Reviewed by Xan Lopez.
3789
3790         [PNG decoder] direct access to jmpbuf is deprecated in libpng >= 1.4.0beta103
3791         https://bugs.webkit.org/show_bug.cgi?id=40907
3792
3793         Define a JMPBUF macro to cope with deprecation of the jmpbuf
3794         attribute in libpng >= 1.4.
3795
3796         * platform/image-decoders/png/PNGImageDecoder.cpp:
3797         (WebCore::decodingFailed):
3798         (WebCore::PNGImageReader::decode):
3799         (WebCore::PNGImageDecoder::headerAvailable):
3800         (WebCore::PNGImageDecoder::rowAvailable):
3801
3802 2010-06-29  Kristian Amlie  <kristian.amlie@nokia.com>
3803
3804         Reviewed by Simon Hausmann.
3805
3806         [Qt/Symbian] Fixed deployment paths for WebKit declarative plugin.
3807
3808         * WebCore.pro:
3809
3810 2010-06-29  Yury Semikhatsky  <yurys@chromium.org>
3811
3812         Unreviewed: Chromium Win and Mac build fix.
3813
3814         * bindings/v8/ScriptDebugServer.cpp:
3815         (WebCore::ScriptDebugServer::setBreakpoint):
3816
3817 2010-06-29  Nikolas Zimmermann  <nzimmermann@rim.com>
3818
3819         Reviewed by Dirk Schulze.
3820
3821         Move PaintInfo/PaintPhase into their own headers, out of RenderObject
3822         https://bugs.webkit.org/show_bug.cgi?id=41342
3823
3824         1) Move enums PaintPhase/PaintBehaviorFlags and the PaintBehaviour typedef from RenderObject into PaintPhase.h.
3825            Move PaintInfo from RenderObject into PaintInfo.h. Replace s/RenderObject::PaintInfo/PaintInfo/ throughout WebCore/.
3826            Also move the OverlapTestRequestMap typedef into PaintInfo.h, and replace s/RenderObject::OverlapTestRequestMap/OverlapTestRequestMap/ everywhere.
3827
3828         2) Move "RenderObject* paintingRootForChildren(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
3829            and modify it to take a renderer: "void updatePaintingRootForChildren(const RenderObject* renderer)".
3830
3831         This changes a common idiom:
3832         -    info.paintingRoot = paintingRootForChildren(paintInfo);
3833         +    info.updatePaintingRootForChildren(this);
3834
3835         We save resetting the paintingRoot to 0 if it was 0 already and thus do less work.
3836
3837         3) Move "bool shouldPaintWithinRoot(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
3838            and modify it to take a renderer: "bool shouldPaintWithinRoot(const RenderObject* renderer) const".
3839
3840         This changes a common idiom:
3841         -    if (!shouldPaintWithinRoot(paintInfo))
3842         +    if (!paintInfo.shouldPaintWithinRoot(this))
3843
3844         4) Move "void applyTransformToPaintInfo(RenderObject::PaintInfo&, const AffineTransform& localToChildTransform)"
3845            from SVGRenderSupport to PaintInfo and rename it to "applyTransform", guarded with ENABLE(SVG) blocks.
3846
3847         This changes a common idiom:
3848         -    applyTransformToPaintInfo(childPaintInfo, localToParentTransform());
3849         +    childPaintInfo.applyTransform(localToParentTransform());
3850
3851         Add PaintInfo.h / PaintPhase.h to all build systems that list headers.
3852
3853         * GNUmakefile.am:
3854         * WebCore.gypi:
3855         * WebCore.pro:
3856         * WebCore.vcproj/WebCore.vcproj:
3857         * WebCore.xcodeproj/project.pbxproj:
3858         * platform/android/RenderThemeAndroid.cpp:
3859         (WebCore::getCanvasFromInfo):
3860         (WebCore::RenderThemeAndroid::paintCheckbox):
3861         (WebCore::RenderThemeAndroid::paintButton):
3862         (WebCore::RenderThemeAndroid::paintRadio):
3863         (WebCore::RenderThemeAndroid::paintTextField):
3864         (WebCore::RenderThemeAndroid::paintTextArea):
3865         (WebCore::RenderThemeAndroid::paintSearchField):
3866         (WebCore::RenderThemeAndroid::paintCombo):
3867         (WebCore::RenderThemeAndroid::paintMenuList):
3868         (WebCore::RenderThemeAndroid::paintMenuListButton):
3869         * platform/android/RenderThemeAndroid.h:
3870         * platform/efl/RenderThemeEfl.cpp:
3871         (WebCore::RenderThemeEfl::paintThemePart):
3872         (WebCore::RenderThemeEfl::paintCheckbox):
3873         (WebCore::RenderThemeEfl::paintRadio):
3874         (WebCore::RenderThemeEfl::paintButton):
3875         (WebCore::RenderThemeEfl::paintMenuList):
3876         (WebCore::RenderThemeEfl::paintTextField):
3877         (WebCore::RenderThemeEfl::paintTextArea):
3878         (WebCore::RenderThemeEfl::paintSearchFieldDecoration):
3879         (WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
3880         (WebCore::RenderThemeEfl::paintSearchFieldResultsDecoration):
3881         (WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
3882         (WebCore::RenderThemeEfl::paintSearchField):
3883         * platform/efl/RenderThemeEfl.h:
3884         * platform/gtk/RenderThemeGtk.cpp:
3885         (WebCore::paintMozillaGtkWidget):
3886         (WebCore::RenderThemeGtk::paintCheckbox):
3887         (WebCore::RenderThemeGtk::paintRadio):
3888         (WebCore::RenderThemeGtk::paintButton):
3889         (WebCore::RenderThemeGtk::paintMenuList):
3890         (WebCore::RenderThemeGtk::paintTextField):
3891         (WebCore::RenderThemeGtk::paintTextArea):
3892         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
3893         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
3894         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
3895         (WebCore::RenderThemeGtk::paintSearchField):
3896         (WebCore::RenderThemeGtk::paintSliderTrack):
3897         (WebCore::RenderThemeGtk::paintSliderThumb):
3898         (WebCore::RenderThemeGtk::paintMediaFullscreenButton):
3899         (WebCore::RenderThemeGtk::paintMediaMuteButton):
3900         (WebCore::RenderThemeGtk::paintMediaPlayButton):
3901         (WebCore::RenderThemeGtk::paintMediaSeekBackButton):
3902         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
3903         (WebCore::RenderThemeGtk::paintMediaSliderTrack):
3904         (WebCore::RenderThemeGtk::paintMediaSliderThumb):
3905         (WebCore::RenderThemeGtk::paintProgressBar):
3906         * platform/gtk/RenderThemeGtk.h:
3907         * platform/haiku/RenderThemeHaiku.cpp:
3908         (WebCore::RenderThemeHaiku::paintCheckbox):
3909         (WebCore::RenderThemeHaiku::paintRadio):
3910         (WebCore::RenderThemeHaiku::paintMenuList):
3911         * platform/haiku/RenderThemeHaiku.h:
3912         * platform/qt/RenderThemeQt.cpp:
3913         (WebCore::StylePainter::StylePainter):
3914         (WebCore::RenderThemeQt::paintCheckbox):
3915         (WebCore::RenderThemeQt::paintRadio):
3916         (WebCore::RenderThemeQt::paintButton):
3917         (WebCore::RenderThemeQt::paintTextField):
3918         (WebCore::RenderThemeQt::paintTextArea):
3919         (WebCore::RenderThemeQt::paintMenuList):
3920         (WebCore::RenderThemeQt::paintMenuListButton):
3921         (WebCore::RenderThemeQt::paintProgressBar):
3922         (WebCore::RenderThemeQt::paintSliderTrack):
3923         (WebCore::RenderThemeQt::paintSliderThumb):
3924         (WebCore::RenderThemeQt::paintSearchField):
3925         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
3926         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
3927         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
3928         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
3929         (WebCore::RenderThemeQt::paintMediaMuteButton):
3930         (WebCore::RenderThemeQt::paintMediaPlayButton):
3931         (WebCore::RenderThemeQt::paintMediaSeekBackButton):
3932         (WebCore::RenderThemeQt::paintMediaSeekForwardButton):
3933         (WebCore::RenderThemeQt::paintMediaCurrentTime):
3934         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
3935         (WebCore::RenderThemeQt::paintMediaVolumeSliderThumb):
3936         (WebCore::RenderThemeQt::paintMediaSliderTrack):
3937         (WebCore::RenderThemeQt::paintMediaSliderThumb):
3938         * platform/qt/RenderThemeQt.h:
3939         * platform/wx/RenderThemeWx.cpp:
3940         (WebCore::RenderThemeWx::paintCheckbox):
3941         (WebCore::RenderThemeWx::paintRadio):
3942         (WebCore::RenderThemeWx::paintButton):
3943         (WebCore::RenderThemeWx::paintTextField):
3944         (WebCore::RenderThemeWx::paintMenuList):
3945         (WebCore::RenderThemeWx::paintMenuListButton):
3946         * rendering/EllipsisBox.cpp:
3947         (WebCore::EllipsisBox::paint):
3948         * rendering/EllipsisBox.h:
3949         * rendering/InlineBox.cpp:
3950         (WebCore::InlineBox::paint):
3951         * rendering/InlineBox.h:
3952         * rendering/InlineFlowBox.cpp:
3953         (WebCore::InlineFlowBox::paint):
3954         (WebCore::InlineFlowBox::paintFillLayers):
3955         (WebCore::InlineFlowBox::paintFillLayer):
3956         (WebCore::InlineFlowBox::paintBoxDecorations):
3957         (WebCore::InlineFlowBox::paintMask):
3958         (WebCore::InlineFlowBox::paintTextDecorations):
3959         * rendering/InlineFlowBox.h:
3960         * rendering/InlineTextBox.cpp:
3961         (WebCore::InlineTextBox::paint):
3962         * rendering/InlineTextBox.h:
3963         * rendering/PaintInfo.h: Added.
3964         (WebCore::PaintInfo::PaintInfo):
3965         (WebCore::PaintInfo::updatePaintingRootForChildren):
3966         (WebCore::PaintInfo::shouldPaintWithinRoot):
3967         (WebCore::PaintInfo::applyTransform):
3968         * rendering/PaintPhase.h: Added.
3969         (WebCore::):
3970         * rendering/RenderBlock.cpp:
3971         (WebCore::RenderBlock::paint):
3972         (WebCore::RenderBlock::paintChildren):
3973         (WebCore::RenderBlock::paintEllipsisBoxes):
3974         (WebCore::clipOutPositionedObjects):
3975         (WebCore::RenderBlock::layoutColumns):
3976         * rendering/RenderBox.cpp:
3977         (WebCore::RenderBox::paint):
3978         (WebCore::RenderBox::paintBoxDecorations):
3979         (WebCore::RenderBox::paintMask):
3980         * rendering/RenderFieldset.cpp:
3981         (WebCore::RenderFieldset::paintBoxDecorations):
3982         * rendering/RenderForeignObject.cpp:
3983         (WebCore::RenderForeignObject::paint):
3984         * rendering/RenderLayer.cpp:
3985         (WebCore::RenderLayer::paint):
3986         (WebCore::performOverlapTests):
3987         (WebCore::RenderLayer::paintLayer):
3988         (WebCore::RenderLayer::paintList):
3989         (WebCore::RenderLayer::paintPaginatedChildLayer):
3990         (WebCore::RenderLayer::paintChildLayerIntoColumns):
3991         * rendering/RenderLayer.h:
3992         * rendering/RenderLayerBacking.cpp:
3993         (WebCore::RenderLayerBacking::paintIntoLayer):
3994         * rendering/RenderLineBoxList.cpp:
3995         (WebCore::RenderLineBoxList::paint):
3996         * rendering/RenderLineBoxList.h:
3997         * rendering/RenderMediaControls.cpp:
3998         (WebCore::RenderMediaControls::paintMediaControlsPart):
3999         * rendering/RenderMediaControls.h:
4000         * rendering/RenderMediaControlsChromium.cpp:
4001         (WebCore::paintMediaMuteButton):
4002         (WebCore::paintMediaPlayButton):
4003         (WebCore::paintMediaSlider):
4004         (WebCore::paintMediaSliderThumb):
4005         (WebCore::paintMediaVolumeSlider):
4006         (WebCore::paintMediaVolumeSliderThumb):
4007         (WebCore::paintMediaTimelineContainer):
4008         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
4009         * rendering/RenderMediaControlsChromium.h:
4010         * rendering/RenderObject.h:
4011         * rendering/RenderPath.cpp:
4012         (WebCore::RenderPath::paint):
4013         * rendering/RenderReplaced.cpp:
4014         (WebCore::RenderReplaced::paint):
4015         (WebCore::RenderReplaced::shouldPaint):
4016         * rendering/RenderSVGContainer.cpp:
4017         (WebCore::RenderSVGContainer::paint):
4018         * rendering/RenderSVGResourceMarker.cpp:
4019         (WebCore::RenderSVGResourceMarker::draw):
4020         * rendering/RenderSVGResourceMarker.h:
4021         * rendering/RenderSVGRoot.cpp:
4022         (WebCore::RenderSVGRoot::paint):
4023         * rendering/RenderSVGText.cpp:
4024         (WebCore::RenderSVGText::paint):
4025         * rendering/RenderScrollbarPart.cpp:
4026         (WebCore::RenderScrollbarPart::paintIntoRect):
4027         * rendering/RenderTable.cpp:
4028         (WebCore::RenderTable::paintObject):
4029         (WebCore::RenderTable::paintBoxDecorations):
4030         * rendering/RenderTableCell.cpp:
4031         (WebCore::RenderTableCell::paint):
4032         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
4033         (WebCore::RenderTableCell::paintBoxDecorations):
4034         * rendering/RenderTheme.cpp:
4035         (WebCore::RenderTheme::paint):
4036         (WebCore::RenderTheme::paintBorderOnly):
4037         (WebCore::RenderTheme::paintDecorations):
4038         (WebCore::RenderTheme::paintMeter):
4039         * rendering/RenderTheme.h:
4040         (WebCore::RenderTheme::paintCapsLockIndicator):
4041         (WebCore::RenderTheme::paintCheckbox):
4042         (WebCore::RenderTheme::paintRadio):
4043         (WebCore::RenderTheme::paintButton):
4044         (WebCore::RenderTheme::paintInnerSpinButton):
4045         (WebCore::RenderTheme::paintOuterSpinButton):
4046         (WebCore::RenderTheme::paintTextField):
4047         (WebCore::RenderTheme::paintTextArea):
4048         (WebCore::RenderTheme::paintMenuList):
4049         (WebCore::RenderTheme::paintMenuListButton):
4050         (WebCore::RenderTheme::paintProgressBar):
4051         (WebCore::RenderTheme::paintSliderTrack):
4052         (WebCore::RenderTheme::paintSliderThumb):
4053         (WebCore::RenderTheme::paintSearchField):
4054         (WebCore::RenderTheme::paintSearchFieldCancelButton):
4055         (WebCore::RenderTheme::paintSearchFieldDecoration):
4056         (WebCore::RenderTheme::paintSearchFieldResultsDecoration):
4057         (WebCore::RenderTheme::paintSearchFieldResultsButton):
4058         (WebCore::RenderTheme::paintMediaFullscreenButton):
4059         (WebCore::RenderTheme::paintMediaPlayButton):
4060         (WebCore::RenderTheme::paintMediaMuteButton):
4061         (WebCore::RenderTheme::paintMediaSeekBackButton):
4062         (WebCore::RenderTheme::paintMediaSeekForwardButton):
4063         (WebCore::RenderTheme::paintMediaSliderTrack):
4064         (WebCore::RenderTheme::paintMediaSliderThumb):
4065         (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
4066         (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
4067         (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
4068         (WebCore::RenderTheme::paintMediaRewindButton):
4069         (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
4070         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
4071         (WebCore::RenderTheme::paintMediaControlsBackground):
4072         (WebCore::RenderTheme::paintMediaCurrentTime):
4073         (WebCore::RenderTheme::paintMediaTimeRemaining):
4074         * rendering/RenderThemeChromiumMac.h:
4075         * rendering/RenderThemeChromiumMac.mm:
4076         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
4077         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
4078         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
4079         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
4080         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
4081         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
4082         * rendering/RenderThemeChromiumSkia.cpp:
4083         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
4084         (WebCore::RenderThemeChromiumSkia::paintRadio):
4085         (WebCore::paintButtonLike):
4086         (WebCore::RenderThemeChromiumSkia::paintButton):
4087         (WebCore::RenderThemeChromiumSkia::paintTextField):
4088         (WebCore::RenderThemeChromiumSkia::paintTextArea):
4089         (WebCore::RenderThemeChromiumSkia::paintSearchField):
4090         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
4091         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
4092         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
4093         (WebCore::RenderThemeChromiumSkia::paintMediaControlsBackground):
4094         (WebCore::RenderThemeChromiumSkia::paintMediaSliderTrack):
4095         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack):
4096         (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb):
4097         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb):
4098         (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
4099         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
4100         (WebCore::RenderThemeChromiumSkia::paintMenuList):
4101         (WebCore::RenderThemeChromiumSkia::paintMenuListButton):
4102         (WebCore::RenderThemeChromiumSkia::paintSliderTrack):
4103         (WebCore::RenderThemeChromiumSkia::paintSliderThumb):
4104         (WebCore::RenderThemeChromiumSkia::paintProgressBar):
4105         * rendering/RenderThemeChromiumSkia.h:
4106         * rendering/RenderThemeChromiumWin.cpp:
4107         (WebCore::RenderThemeChromiumWin::paintCheckbox):
4108         (WebCore::RenderThemeChromiumWin::paintRadio):
4109         (WebCore::RenderThemeChromiumWin::paintButton):
4110         (WebCore::RenderThemeChromiumWin::paintTextField):
4111         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
4112         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
4113         (WebCore::RenderThemeChromiumWin::paintMenuList):
4114         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
4115         (WebCore::RenderThemeChromiumWin::paintProgressBar):
4116         * rendering/RenderThemeChromiumWin.h:
4117         * rendering/RenderThemeMac.h:
4118         * rendering/RenderThemeMac.mm:
4119         (WebCore::RenderThemeMac::paintTextField):
4120         (WebCore::RenderThemeMac::paintCapsLockIndicator):
4121         (WebCore::RenderThemeMac::paintTextArea):
4122         (WebCore::RenderThemeMac::paintMenuList):
4123         (WebCore::RenderThemeMac::paintMeter):
4124         (WebCore::RenderThemeMac::paintProgressBar):
4125         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
4126         (WebCore::RenderThemeMac::paintMenuListButton):
4127         (WebCore::RenderThemeMac::paintSliderTrack):
4128         (WebCore::RenderThemeMac::paintSliderThumb):
4129         (WebCore::RenderThemeMac::paintSearchField):
4130         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
4131         (WebCore::RenderThemeMac::paintSearchFieldDecoration):
4132         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
4133         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
4134         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
4135         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
4136         (WebCore::RenderThemeMac::paintMediaMuteButton):
4137         (WebCore::RenderThemeMac::paintMediaPlayButton):
4138         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
4139         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
4140         (WebCore::RenderThemeMac::paintMediaSliderTrack):
4141         (WebCore::RenderThemeMac::paintMediaSliderThumb):
4142         (WebCore::RenderThemeMac::paintMediaRewindButton):
4143         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
4144         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
4145         (WebCore::RenderThemeMac::paintMediaControlsBackground):
4146         (WebCore::RenderThemeMac::paintMediaCurrentTime):
4147         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
4148         * rendering/RenderThemeSafari.cpp:
4149         (WebCore::RenderThemeSafari::paintCheckbox):
4150         (WebCore::RenderThemeSafari::paintRadio):
4151         (WebCore::RenderThemeSafari::paintButton):
4152         (WebCore::RenderThemeSafari::paintTextField):
4153         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
4154         (WebCore::RenderThemeSafari::paintTextArea):
4155         (WebCore::RenderThemeSafari::paintMenuList):
4156         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
4157         (WebCore::RenderThemeSafari::paintMenuListButton):
4158         (WebCore::RenderThemeSafari::paintSliderTrack):
4159         (WebCore::RenderThemeSafari::paintSliderThumb):
4160         (WebCore::RenderThemeSafari::paintSearchField):
4161         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
4162         (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
4163         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
4164         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
4165         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
4166         (WebCore::RenderThemeSafari::paintMediaMuteButton):
4167         (WebCore::RenderThemeSafari::paintMediaPlayButton):
4168         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
4169         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
4170         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
4171         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
4172         * rendering/RenderThemeSafari.h:
4173         * rendering/RenderThemeWin.cpp:
4174         (WebCore::RenderThemeWin::paintButton):
4175         (WebCore::RenderThemeWin::paintTextField):
4176         (WebCore::RenderThemeWin::paintMenuList):
4177         (WebCore::RenderThemeWin::paintMenuListButton):
4178         (WebCore::RenderThemeWin::paintSliderTrack):
4179         (WebCore::RenderThemeWin::paintSliderThumb):
4180         (WebCore::RenderThemeWin::paintSearchField):
4181         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
4182         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
4183         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
4184         (WebCore::RenderThemeWin::paintMediaFullscreenButton):
4185         (WebCore::RenderThemeWin::paintMediaMuteButton):
4186         (WebCore::RenderThemeWin::paintMediaPlayButton):
4187         (WebCore::RenderThemeWin::paintMediaSeekBackButton):
4188         (WebCore::RenderThemeWin::paintMediaSeekForwardButton):
4189         (WebCore::RenderThemeWin::paintMediaSliderTrack):
4190         (WebCore::RenderThemeWin::paintMediaSliderThumb):
4191         (WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton):
4192         * rendering/RenderThemeWin.h:
4193         (WebCore::RenderThemeWin::paintCheckbox):
4194         (WebCore::RenderThemeWin::paintRadio):
4195         (WebCore::RenderThemeWin::paintTextArea):
4196         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
4197         * rendering/RenderThemeWince.cpp:
4198         (WebCore::RenderThemeWince::paintButton):
4199         (WebCore::RenderThemeWince::paintTextField):
4200         (WebCore::RenderThemeWince::paintMenuList):
4201         (WebCore::RenderThemeWince::paintMenuListButton):
4202         (WebCore::RenderThemeWince::paintSearchField):
4203         (WebCore::RenderThemeWince::paintSearchFieldCancelButton):
4204         (WebCore::RenderThemeWince::paintSearchFieldResultsDecoration):
4205         (WebCore::RenderThemeWince::paintSearchFieldResultsButton):
4206         (WebCore::RenderThemeWince::paintSliderTrack):
4207         (WebCore::RenderThemeWince::paintSliderThumb):
4208         (WebCore::RenderThemeWince::paintMediaFullscreenButton):
4209         (WebCore::RenderThemeWince::paintMediaMuteButton):
4210         (WebCore::RenderThemeWince::paintMediaPlayButton):
4211         (WebCore::RenderThemeWince::paintMediaSeekBackButton):
4212         (WebCore::RenderThemeWince::paintMediaSeekForwardButton):
4213         (WebCore::RenderThemeWince::paintMediaSliderTrack):
4214         (WebCore::RenderThemeWince::paintMediaSliderThumb):
4215         * rendering/RenderThemeWince.h:
4216         (WebCore::RenderThemeWince::paintCheckbox):
4217         (WebCore::RenderThemeWince::paintRadio):
4218         (WebCore::RenderThemeWince::paintTextArea):
4219