2010-07-06 Eric Seidel <eric@webkit.org>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-07-06  Eric Seidel  <eric@webkit.org>
2
3         Reviewed by Adam Barth.
4
5         Fix <nobr><nobr> case in HTMLTreeBuilder
6         https://bugs.webkit.org/show_bug.cgi?id=41735
7
8         We were both not handling <nobr> correctly, as well as
9         never hitting the <nobr> case because our formatting
10         elements check was overzealous.
11
12         * html/HTMLTreeBuilder.cpp:
13         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
14
15 2010-07-06  Adam Barth  <abarth@webkit.org>
16
17         Reviewed by Eric Seidel.
18
19         Implement "act as if the banana has been peeled" (for lack of a better term)
20         https://bugs.webkit.org/show_bug.cgi?id=41734
21
22         The spec has a tricky passage that says "whenever a node would be
23         inserted into the current node, it must instead be foster parented."
24         This patch attempts to implement that requirement.
25
26         * html/HTMLConstructionSite.cpp:
27         (WebCore::HTMLConstructionSite::attach):
28         (WebCore::HTMLConstructionSite::HTMLConstructionSite):
29         (WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
30         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
31         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
32         (WebCore::HTMLConstructionSite::insertScriptElement):
33         (WebCore::HTMLConstructionSite::fosterParent):
34         * html/HTMLConstructionSite.h:
35         (WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::RedirectToFosterParentGuard):
36         (WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::~RedirectToFosterParentGuard):
37         * html/HTMLTreeBuilder.cpp:
38         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
39         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
40         * html/HTMLTreeBuilder.h:
41
42 2010-07-06  Eric Seidel  <eric@webkit.org>
43
44         Reviewed by Adam Barth.
45
46         Fix </optgroup> in "in select" mode
47         https://bugs.webkit.org/show_bug.cgi?id=41733
48
49         I had to add a oneBelowTop() accessor.
50         I added some ASSERTs after looking at the fragment case
51         documentation.  I'm now convinced that top() and oneBeforeTop()
52         should never be NULL, so we just ASSERT they aren't.
53
54         This is a very obscure corner of the HTML spec, but at least
55         we have a test for it.  This makes one more html5lib test pass.
56
57         * html/HTMLConstructionSite.h:
58         (WebCore::HTMLConstructionSite::oneBelowTop):
59         * html/HTMLElementStack.cpp:
60         (WebCore::HTMLElementStack::topRecord):
61         (WebCore::HTMLElementStack::top):
62         (WebCore::HTMLElementStack::oneBelowTop):
63         * html/HTMLElementStack.h:
64         * html/HTMLTreeBuilder.cpp:
65         (WebCore::HTMLTreeBuilder::processEndTag):
66
67 2010-07-06  Eric Seidel  <eric@webkit.org>
68
69         Reviewed by Adam Barth.
70
71         Fix "in row" "Anything else" handling of end tags
72         https://bugs.webkit.org/show_bug.cgi?id=41731
73
74         I also fixed </br> handling to follow the spec more closely
75         since it implementation was old and didn't use all our
76         new processFake* hotness.
77
78         This is already covered by 3 tests, however we don't
79         pass them yet, due to lack of table foster parenting
80         code (which Adam is working on as we speak).
81
82         * html/HTMLTreeBuilder.cpp:
83         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
84         (WebCore::HTMLTreeBuilder::processEndTag):
85
86 2010-07-06  Mark Rowe  <mrowe@apple.com>
87
88         Fix clean builds on Mac OS X.
89
90         Since "Copy Forwarding and ICU Headers" was split in to a separate target
91         from the WebCore framework it no longer had automatica access to the
92         PRIVATE_HEADERS_FOLDER_PATH variable. This caused it to copy the header
93         files in to the wrong location. Fix that by giving PRIVATE_HEADERS_FOLDER_PATH
94         its correct value and ensuring that the path exists.
95
96         * WebCore.xcodeproj/project.pbxproj:
97
98 2010-07-06  Sam Weinig  <sam@webkit.org>
99
100         Fix Gtk build.
101
102         * GNUmakefile.am:
103
104 2010-07-06  Mark Rowe  <mrowe@apple.com>
105
106         Tiger build fix.
107
108         Don't use WebCore's LDFLAGS when building WebCoreExportFileGenerator.
109
110         * WebCore.xcodeproj/project.pbxproj:
111
112 2010-07-06  Eric Seidel  <eric@webkit.org>
113
114         Reviewed by Adam Barth.
115
116         "In cell" does not correctly handle <td><tr> or <td><td>
117         https://bugs.webkit.org/show_bug.cgi?id=41729
118
119         This change is mostly cleanup to try and prevent forgetting
120         tag name checks in the future by using inlines to reduce
121         copy/paste code.
122
123         3 little bugs in InCellMode:
124          - Missing trTag from the long or statement (reason for the cleanup)
125          - Used || instead of &&
126          - Forgot to reprocess the tag after closeTheCell()
127
128         * html/HTMLTreeBuilder.cpp:
129         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
130         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
131         (WebCore::HTMLTreeBuilder::processStartTag):
132         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
133         (WebCore::HTMLTreeBuilder::processEndTag):
134
135 2010-07-06  Adam Barth  <abarth@webkit.org>
136
137         Reviewed by Eric Seidel.
138
139         Move fosterParent to HTMLConstructionSite
140         https://bugs.webkit.org/show_bug.cgi?id=41728
141
142         This paves the way for handling the default case of InTableMode
143         properly.
144
145         * html/HTMLConstructionSite.cpp:
146         (WebCore::HTMLConstructionSite::fosterParent):
147         * html/HTMLConstructionSite.h:
148         * html/HTMLTreeBuilder.cpp:
149         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
150
151 2010-07-06  Adam Barth  <abarth@webkit.org>
152
153         Rubber-stamped by Eric Seidel.
154
155         Move HTMLConstructionSite to its own file.  No behavior change.
156
157         * Android.mk:
158         * CMakeLists.txt:
159         * GNUmakefile.am:
160         * WebCore.gypi:
161         * WebCore.pro:
162         * WebCore.vcproj/WebCore.vcproj:
163         * WebCore.xcodeproj/project.pbxproj:
164         * html/HTMLConstructionSite.cpp: Copied from WebCore/html/HTMLTreeBuilder.cpp.
165         (WebCore::HTMLNames::hasImpliedEndTag):
166         (WebCore::HTMLConstructionSite::attach):
167         (WebCore::HTMLConstructionSite::HTMLConstructionSite):
168         (WebCore::HTMLConstructionSite::~HTMLConstructionSite):
169         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
170         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
171         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
172         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
173         * html/HTMLConstructionSite.h: Copied from WebCore/html/HTMLTreeBuilder.h.
174         * html/HTMLTreeBuilder.cpp:
175         * html/HTMLTreeBuilder.h:
176
177 2010-07-06  Mark Rowe  <mrowe@apple.com>
178
179         Build fix.
180
181         The path to the generated file needs to be relative to the built product directory,
182         not to the project file.
183
184         * WebCore.xcodeproj/project.pbxproj:
185
186 2010-07-06  Mark Rowe  <mrowe@apple.com>
187
188         Reviewed by Darin Adler.
189
190         <http://webkit.org/b/41725> REGRESSION(r62283): No longer possible to build for Tiger from SnowLeopard due to export file shenanigans
191
192         Change how the exports file is generated. Rather than having the logic for which symbols
193         to include be encoded in a Makefile that concatenated separate files, the logic is now
194         encoded as #if's in the base exports file. This ensures that the exact same preprocessor
195         settings are used when determining which symbols to export as when compiling the code that
196         defines the symbols.
197
198         * DerivedSources.make: Remove logic that determines which export files to concatenate.
199         Replace with an invocation of WebCoreExportFileGenerator.
200         * WebCore.3DRendering.exp: Removed.
201         * WebCore.AcceleratedCompositing.exp: Removed.
202         * WebCore.ClientBasedGeolocation.exp: Removed.
203         * WebCore.ContextMenus.exp: Removed.
204         * WebCore.DashboardSupport.exp: Removed.
205         * WebCore.DragSupport.exp: Removed.
206         * WebCore.Geolocation.exp: Removed.
207         * WebCore.Inspector.exp: Removed.
208         * WebCore.JNI.exp: Removed.
209         * WebCore.NPAPI.exp: Removed.
210         * WebCore.OrientationEvents.exp: Removed.
211         * WebCore.PluginHostProcess.exp: Removed.
212         * WebCore.ProtectionSpaceAuthCallback.exp: Removed.
213         * WebCore.SVG.Animation.exp: Removed.
214         * WebCore.SVG.Filters.exp: Removed.
215         * WebCore.SVG.ForeignObject.exp: Removed.
216         * WebCore.SVG.exp: Removed.
217         * WebCore.Tiger.exp: Removed.
218         * WebCore.Video.exp: Removed.
219         * WebCore.VideoProxy.exp: Removed.
220         * WebCore.exp.in: Renamed from WebCore/WebCore.base.exp. Merge the individual .exp
221         files in, wrapping the appropriate parts with the necessary #if's.
222         * WebCore.xcodeproj/project.pbxproj:
223         * make-exports-file-generator: Added.
224
225 2010-07-06  Sam Weinig  <sam@webkit.org>
226
227         Reviewed by Anders Carlsson.
228
229         Patch for https://bugs.webkit.org/show_bug.cgi?id=41723
230         Add BackForwardController class
231
232         - Add BackForwardController which currently only forwards to the existing
233           BackForwardList implementation. This is a first step toward allowing
234           for a proxying BackForwardList implementation.
235
236         * CMakeLists.txt:
237         * GNUmakefile.am:
238         * WebCore.base.exp:
239         * WebCore.gypi:
240         * WebCore.pro:
241         * WebCore.vcproj/WebCore.vcproj:
242         * WebCore.xcodeproj/project.pbxproj:
243         * history/BackForwardController.cpp: Added.
244         (WebCore::BackForwardController::BackForwardController):
245         (WebCore::BackForwardController::~BackForwardController):
246         * history/BackForwardController.h: Added.
247         (WebCore::BackForwardController::client):
248         (WebCore::BackForwardController::list):
249         * history/BackForwardControllerClient.h: Added.
250         (WebCore::BackForwardControllerClient::~BackForwardControllerClient):
251         * page/Page.cpp:
252         (WebCore::Page::Page):
253         (WebCore::Page::~Page):
254         (WebCore::Page::backForwardList):
255         (WebCore::Page::goBack):
256         (WebCore::Page::goForward):
257         (WebCore::Page::canGoBackOrForward):
258         (WebCore::Page::goBackOrForward):
259         (WebCore::Page::getHistoryLength):
260         * page/Page.h:
261
262 2010-07-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
263
264         Unreviewed.
265
266         Fixes regression on API test by disabling the scrollbars before
267         configuring the adjustments.
268
269         * platform/gtk/ScrollViewGtk.cpp:
270         (WebCore::ScrollView::setGtkAdjustments):
271
272 2010-07-06  Eric Seidel  <eric@webkit.org>
273
274         Reviewed by Adam Barth.
275
276         Add support for <li>, <dd> and <dt> nested tag closing
277         https://bugs.webkit.org/show_bug.cgi?id=41720
278
279         li, dd, and dt have nearly identical logic in HTML5, so I
280         attempted to make them share as much code as possible.
281
282         This fixes a bunch of subtests for html5lib/runner.html
283
284         * html/HTMLTreeBuilder.cpp:
285         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
286         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
287         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
288         (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
289         * html/HTMLTreeBuilder.h:
290
291 2010-07-06  Adam Barth  <abarth@webkit.org>
292
293         Reviewed by Eric Seidel.
294
295         Factor HTMLConstructionSite out of HTMLTreeBuilder
296         https://bugs.webkit.org/show_bug.cgi?id=41716
297
298         The HTMLContructionSite is the model object on which the
299         HTMLTreeBuilder (a controller) acts.
300
301         No behavior change.  I'll move this class into its own file in a
302         followup patch.
303
304         * html/HTMLFormattingElementList.h:
305         (WebCore::HTMLFormattingElementList::at):
306         * html/HTMLTreeBuilder.cpp:
307         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
308         (WebCore::HTMLConstructionSite::HTMLConstructionSite):
309         (WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
310         (WebCore::HTMLTreeBuilder::processDoctypeToken):
311         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
312         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
313         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
314         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
315         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
316         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
317         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
318         (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
319         (WebCore::HTMLTreeBuilder::closeTheCell):
320         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
321         (WebCore::HTMLTreeBuilder::processStartTag):
322         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
323         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
324         (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
325         (WebCore::HTMLTreeBuilder::findFosterParentFor):
326         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
327         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
328         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
329         (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
330         (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
331         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
332         (WebCore::HTMLTreeBuilder::processEndTag):
333         (WebCore::HTMLTreeBuilder::processComment):
334         (WebCore::HTMLTreeBuilder::processCharacter):
335         (WebCore::HTMLTreeBuilder::processEndOfFile):
336         (WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
337         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
338         (WebCore::HTMLConstructionSite::insertDoctype):
339         (WebCore::HTMLConstructionSite::insertComment):
340         (WebCore::HTMLConstructionSite::insertCommentOnDocument):
341         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
342         (WebCore::HTMLConstructionSite::createElementAndAttachToCurrent):
343         (WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
344         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
345         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
346         (WebCore::HTMLConstructionSite::insertElement):
347         (WebCore::HTMLConstructionSite::insertSelfClosingElement):
348         (WebCore::HTMLConstructionSite::insertFormattingElement):
349         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
350         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
351         (WebCore::HTMLConstructionSite::insertScriptElement):
352         (WebCore::HTMLTreeBuilder::processScriptStartTag):
353         (WebCore::HTMLConstructionSite::insertTextNode):
354         (WebCore::HTMLConstructionSite::createElement):
355         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
356         (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
357         (WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion):
358         (WebCore::HTMLTreeBuilder::generateImpliedEndTags):
359         * html/HTMLTreeBuilder.h:
360         (WebCore::HTMLConstructionSite::currentElement):
361         (WebCore::HTMLConstructionSite::openElements):
362         (WebCore::HTMLConstructionSite::activeFormattingElements):
363         (WebCore::HTMLConstructionSite::head):
364         (WebCore::HTMLConstructionSite::form):
365         (WebCore::HTMLConstructionSite::releaseForm):
366         (WebCore::HTMLConstructionSite::setForm):
367         (WebCore::HTMLConstructionSite::fragmentScriptingPermission):
368         (WebCore::HTMLConstructionSite::attach):
369
370 2010-07-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
371
372         Reviewed by Xan Lopez.
373
374         [GTK] Scrollbars sometimes go dead and stop scrolling the view
375         https://bugs.webkit.org/show_bug.cgi?id=41711
376
377         Fixes GtkScrolledWindow scrollbars not actually scrolling the page
378         in certain conditions. No tests because it is hard to reproduce,
379         and depends on interaction with a widget that is outside of the
380         WebView, which is tricky.
381
382         * platform/gtk/ScrollViewGtk.cpp:
383         (WebCore::ScrollView::setGtkAdjustments):
384
385 2010-07-06  Darin Adler  <darin@apple.com>
386
387         Reviewed by Geoffrey Garen.
388
389         Simplify access to element attribute map, removing unneeded functions
390         https://bugs.webkit.org/show_bug.cgi?id=41703
391
392         * css/CSSStyleSelector.cpp:
393         (WebCore::CSSStyleSelector::canShareStyleWithElement): Use the
394         attributeMap function instead of the mappedAttributes function.
395         (WebCore::CSSStyleSelector::styleForElement): Ditto.
396
397         * dom/Element.cpp:
398         (WebCore::Element::~Element): Renamed namedAttrMap to m_attributeMap.
399         (WebCore::Element::removeAttribute): Ditto.
400         (WebCore::Element::getAttribute): Ditto.
401         (WebCore::Element::setAttribute): Ditto.
402         (WebCore::Element::setAttributeMap): Ditto.
403         (WebCore::Element::hasAttributes): Ditto.
404         (WebCore::Element::createAttributeMap): Ditto.
405         (WebCore::Element::insertedIntoDocument): Ditto.
406         (WebCore::Element::removedFromDocument): Ditto.
407         (WebCore::Element::getURLAttribute): Ditto.
408
409         * dom/Element.h: Removed unneeded virtual attributes function.
410         Made read-only argument to attributes function default to false.
411         (Later, we'll eliminate this.) Renamed namedAttrMap to m_attributeMap
412         and made it private instead of protected.
413
414         * dom/StyledElement.cpp:
415         (WebCore::StyledElement::attributeChanged): Use attributeMap function
416         instead of namedAttrMap data member or mappedAttributes function.
417         (WebCore::StyledElement::classAttributeChanged): Ditto.
418         (WebCore::StyledElement::parseMappedAttribute): Ditto.
419
420         * dom/StyledElement.h: Removed mappedAttributes function and changed
421         callers to use attributeMap function instead.
422
423         * html/HTMLInputElement.cpp:
424         (WebCore::HTMLInputElement::setInputType): Use attributeMap instead of
425         mappedAttributes.
426         * svg/SVGStyledElement.cpp:
427         (WebCore::SVGStyledElement::getPresentationAttribute): Ditto.
428
429 2010-07-06  Anders Carlsson  <andersca@apple.com>
430
431         Reviewed by Sam Weinig.
432
433         Add a build rule that removes the old generated Obj-C bindings for PluginArray and MimeTypeArray.
434
435         * DerivedSources.make:
436
437 2010-07-06  Adam Barth  <abarth@webkit.org>
438
439         Unreviewed.
440
441         Make the remaining insertion modes explicit.
442
443         * html/HTMLTreeBuilder.cpp:
444         (WebCore::HTMLTreeBuilder::processStartTag):
445         (WebCore::HTMLTreeBuilder::processEndTag):
446         (WebCore::HTMLTreeBuilder::processCharacter):
447         (WebCore::HTMLTreeBuilder::processEndOfFile):
448
449 2010-07-06  Alexey Proskuryakov  <ap@apple.com>
450
451         Not reviewed, fixing a simple copy/paste mistake.
452
453         https://bugs.webkit.org/show_bug.cgi?id=41156
454         Cross origin XMLHttpRequest should log the reason why connection failed
455
456         Covered by xmlhttprequest/access-control-basic-non-simple-deny-cached.html
457
458         * loader/CrossOriginPreflightResultCache.cpp:
459         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders): Fix incorrectly
460         copy/pasted header field name.
461
462 2010-07-06  Xan Lopez  <xlopez@igalia.com>
463
464         GTK+ fixes for the DOM plug-in renaming Apocalypse.
465
466         * GNUmakefile.am:
467
468 2010-07-06  Anders Carlsson  <andersca@apple.com>
469
470         Yet another Windows build fix.
471
472         * DerivedSources.cpp:
473
474 2010-07-06  Anders Carlsson  <andersca@apple.com>
475
476         Fix Windows build.
477
478         * WebCore.vcproj/WebCore.vcproj:
479
480 2010-07-06  Anders Carlsson  <andersca@apple.com>
481
482         More build fixes.
483
484         * WebCore.gypi:
485         * WebCore.pro:
486
487 2010-07-06  Anders Carlsson  <andersca@apple.com>
488
489         Try to fix Qt build.
490
491         * WebCore.pro:
492
493 2010-07-06  Anders Carlsson  <andersca@apple.com>
494
495         Attempt to fix GTK+ build.
496
497         * GNUmakefile.am:
498
499 2010-07-06  Adam Barth  <abarth@webkit.org>
500
501         Address reviewer comments from https://bugs.webkit.org/show_bug.cgi?id=41671
502
503         Deploy isTableBodyContextTag where possible.  No behavior change.
504
505         * html/HTMLTreeBuilder.cpp:
506         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
507         (WebCore::HTMLTreeBuilder::processStartTag):
508         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
509         (WebCore::HTMLTreeBuilder::processEndTag):
510
511 2010-07-06  Anders Carlsson  <andersca@apple.com>
512
513         Build fixes.
514
515         * WebCore.gypi:
516         * bindings/js/JSBindingsAllInOne.cpp:
517
518 2010-07-06  Anders Carlsson  <andersca@apple.com>
519
520         Reviewed by Sam Weinig.
521
522         DOM plug-in related renames
523         https://bugs.webkit.org/show_bug.cgi?id=41709
524
525         This is in preparation for using "Plugin" for something other than a DOM object.
526
527         MimeType => DOMMimeType
528         MimeTypeArray => DOMMimeTypeArray
529         Plugin => DOMPlugin
530         PluginArray => DOMPluginArray
531
532         * CMakeLists.txt:
533         * DerivedSources.make:
534         * GNUmakefile.am:
535         * WebCore.pri:
536         * WebCore.vcproj/WebCore.vcproj:
537         * WebCore.xcodeproj/project.pbxproj:
538         * bindings/js/JSDOMMimeTypeArrayCustom.cpp: Added.
539         (WebCore::JSDOMMimeTypeArray::canGetItemsForName):
540         (WebCore::JSDOMMimeTypeArray::nameGetter):
541         * bindings/js/JSDOMPluginArrayCustom.cpp: Added.
542         (WebCore::JSDOMPluginArray::canGetItemsForName):
543         (WebCore::JSDOMPluginArray::nameGetter):
544         * bindings/js/JSDOMPluginCustom.cpp: Added.
545         (WebCore::JSDOMPlugin::canGetItemsForName):
546         (WebCore::JSDOMPlugin::nameGetter):
547         * bindings/js/JSMimeTypeArrayCustom.cpp: Removed.
548         * bindings/js/JSPluginArrayCustom.cpp: Removed.
549         * bindings/js/JSPluginCustom.cpp: Removed.
550         * bindings/scripts/CodeGeneratorJS.pm:
551         * page/DOMWindow.idl:
552         * page/Navigator.cpp:
553         (WebCore::Navigator::plugins):
554         (WebCore::Navigator::mimeTypes):
555         * page/Navigator.h:
556         * page/Navigator.idl:
557         * plugins/DOMMimeType.cpp: Added.
558         (WebCore::DOMMimeType::DOMMimeType):
559         (WebCore::DOMMimeType::~DOMMimeType):
560         (WebCore::DOMMimeType::type):
561         (WebCore::DOMMimeType::suffixes):
562         (WebCore::DOMMimeType::description):
563         (WebCore::DOMMimeType::enabledPlugin):
564         * plugins/DOMMimeType.h: Added.
565         (WebCore::DOMMimeType::create):
566         (WebCore::DOMMimeType::mimeClassInfo):
567         * plugins/DOMMimeType.idl: Added.
568         * plugins/DOMMimeTypeArray.cpp: Added.
569         (WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
570         (WebCore::DOMMimeTypeArray::~DOMMimeTypeArray):
571         (WebCore::DOMMimeTypeArray::length):
572         (WebCore::DOMMimeTypeArray::item):
573         (WebCore::DOMMimeTypeArray::canGetItemsForName):
574         (WebCore::DOMMimeTypeArray::namedItem):
575         (WebCore::DOMMimeTypeArray::getPluginData):
576         * plugins/DOMMimeTypeArray.h: Added.
577         (WebCore::DOMMimeTypeArray::create):
578         (WebCore::DOMMimeTypeArray::disconnectFrame):
579         * plugins/DOMMimeTypeArray.idl: Added.
580         * plugins/DOMPlugin.cpp: Added.
581         (WebCore::DOMPlugin::DOMPlugin):
582         (WebCore::DOMPlugin::~DOMPlugin):
583         (WebCore::DOMPlugin::name):
584         (WebCore::DOMPlugin::filename):
585         (WebCore::DOMPlugin::description):
586         (WebCore::DOMPlugin::length):
587         (WebCore::DOMPlugin::item):
588         (WebCore::DOMPlugin::canGetItemsForName):
589         (WebCore::DOMPlugin::namedItem):
590         * plugins/DOMPlugin.h: Added.
591         (WebCore::DOMPlugin::create):
592         (WebCore::DOMPlugin::pluginInfo):
593         * plugins/DOMPlugin.idl: Added.
594         * plugins/DOMPluginArray.cpp: Added.
595         (WebCore::DOMPluginArray::DOMPluginArray):
596         (WebCore::DOMPluginArray::~DOMPluginArray):
597         (WebCore::DOMPluginArray::length):
598         (WebCore::DOMPluginArray::item):
599         (WebCore::DOMPluginArray::canGetItemsForName):
600         (WebCore::DOMPluginArray::namedItem):
601         (WebCore::DOMPluginArray::refresh):
602         (WebCore::DOMPluginArray::pluginData):
603         * plugins/DOMPluginArray.h: Added.
604         (WebCore::DOMPluginArray::create):
605         (WebCore::DOMPluginArray::disconnectFrame):
606         * plugins/DOMPluginArray.idl: Added.
607         * plugins/MimeType.cpp: Removed.
608         * plugins/MimeType.h: Removed.
609         * plugins/MimeType.idl: Removed.
610         * plugins/MimeTypeArray.cpp: Removed.
611         * plugins/MimeTypeArray.h: Removed.
612         * plugins/MimeTypeArray.idl: Removed.
613         * plugins/Plugin.cpp: Removed.
614         * plugins/Plugin.h: Removed.
615         * plugins/Plugin.idl: Removed.
616         * plugins/PluginArray.cpp: Removed.
617         * plugins/PluginArray.h: Removed.
618         * plugins/PluginArray.idl: Removed.
619
620 2010-07-06  Alexey Proskuryakov  <ap@apple.com>
621
622         Reviewed by Darin Adler.
623
624         https://bugs.webkit.org/show_bug.cgi?id=41156
625         Cross origin XMLHttpRequest should log the reason why connection failed
626
627         Covered by multiple existing tests.
628
629         * loader/CrossOriginAccessControl.cpp:
630         (WebCore::passesAccessControlCheck):
631         * loader/CrossOriginAccessControl.h:
632         * loader/CrossOriginPreflightResultCache.cpp:
633         (WebCore::CrossOriginPreflightResultCacheItem::parse):
634         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
635         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
636         (WebCore::CrossOriginPreflightResultCacheItem::allowsRequest):
637         * loader/CrossOriginPreflightResultCache.h:
638         Functions that check requests now take a string argument for error explanation.
639
640         * loader/DocumentThreadableLoader.cpp:
641         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Make an informative error
642         if crossOriginRequestPolicy is DenyCrossOriginRequests. This doesn't currently go anywhere,
643         since XMLHttpRequest is the only client that logs from didFail(), and it of course supports
644         cross origin requests.
645         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Make an informative
646         error when trying to e.g. send a cross origin XMLHttpRequest to ftp://.
647         (WebCore::DocumentThreadableLoader::didReceiveResponse): Pass error explanation from cross
648         origin access control code.
649         (WebCore::DocumentThreadableLoader::preflightFailure): Ditto.
650
651         * loader/DocumentThreadableLoader.h: preflightFailure() now takes arguments.
652
653         * platform/network/ResourceErrorBase.cpp:
654         * platform/network/ResourceErrorBase.h:
655         Added a constant for WebKit error domain.
656
657         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didFail): Report the error to console.
658         One day we'll be able to also provide script file and line number here, so it's best to
659         pass error all the way down to XHR for reporting.
660
661 2010-07-06  Pavel Podivilov  <podivilov@chromium.org>
662
663         Reviewed by Pavel Feldman.
664
665         Web Inspector: convert script offset to webkit format in v8 ScriptDebugServer
666         https://bugs.webkit.org/show_bug.cgi?id=41696
667
668         * bindings/v8/ScriptDebugServer.cpp:
669         (WebCore::ScriptDebugServer::dispatchDidParseSource):
670
671 2010-07-06  Adam Barth  <abarth@webkit.org>
672
673         Reviewed by Eric Seidel.
674
675         Implement InTableBodyMode
676         https://bugs.webkit.org/show_bug.cgi?id=41671
677
678         In the process of implementing this patch, Eric and I discussed some of
679         the high-level organization of the HTMLTreeBuilder class.  We'd like to
680         split it up into smaller pieces.  In the meantime, I've reordered some
681         of the declarations in the header to make the relations between the
682         different kinds of functions clearer.
683
684         * html/HTMLElementStack.cpp:
685         * html/HTMLTreeBuilder.cpp:
686         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
687         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
688         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
689         (WebCore::HTMLTreeBuilder::processStartTag):
690         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
691         (WebCore::HTMLTreeBuilder::processEndTag):
692         (WebCore::HTMLTreeBuilder::processCharacter):
693         (WebCore::HTMLTreeBuilder::processEndOfFile):
694         * html/HTMLTreeBuilder.h:
695
696 2010-07-06  Leandro Pereira  <leandro@profusion.mobi>
697
698         Unreviewed build fix.
699
700         [EFL] Generate code for RemoteInspector.
701
702         * CMakeLists.txt:
703
704 2010-07-06  Varun Jain  <varunjain@chromium.org>
705
706         Reviewed by Oliver Hunt.
707
708         Implementing CURVE_TO_CUBIC specification for SVG Path Segments. Currently,
709         curves specified in relative cordinates such as using createCurvetoCubicRel()
710         javascript function are not displayed.
711
712         SVG CurvetoCubic Path not implemented for relative cordinates
713         https://bugs.webkit.org/show_bug.cgi?id=41294
714
715         Test: svg/custom/svg-curve-with-relative-cordinates.html
716
717         * svg/SVGPathSegList.cpp:
718         (WebCore::SVGPathSegList::toPathData):
719
720 2010-07-06  Alexey Proskuryakov  <ap@apple.com>
721
722         Roll out patch for https://bugs.webkit.org/show_bug.cgi?id=41348 "Remove global variables
723         from XSLTProcessorLibxslt.cpp", as it causes crashes on buildbot.
724
725         * xml/XSLTProcessor.h:
726         (WebCore::XSLTProcessor::xslStylesheet):
727         (WebCore::XSLTProcessor::XSLTProcessor):
728         * xml/XSLTProcessorLibxslt.cpp:
729         (WebCore::docLoaderFunc):
730         (WebCore::setXSLTLoadCallBack):
731         (WebCore::xsltStylesheetPointer):
732         (WebCore::XSLTProcessor::transformToString):
733
734 2010-07-06  Eric Seidel  <eric@webkit.org>
735
736         Reviewed by Adam Barth.
737
738         Add processing for "in cell" mode and end tag processing for "in row"
739         https://bugs.webkit.org/show_bug.cgi?id=41688
740
741         I added several new table tests, not all of which pass yet.
742         Remaining failures exist due to lack of full "in table body" mode
743         support, which Adam has an outstanding patch for.
744         I believe all of the various branches added by this change are
745         covered now by our tests.
746
747         * html/HTMLElementStack.cpp:
748          - Added QualifiedName versions of inScope functions.
749            Using tagName.localName() is wrong for non-HTML elements,
750            in preparation for supporting foreign content we should centralize
751            our handling of QualifiedName in these functions instead of
752            sprinkling more .localName() calls around the code.
753         (WebCore::HTMLElementStack::inScope):
754         (WebCore::HTMLElementStack::inListItemScope):
755         (WebCore::HTMLElementStack::inTableScope):
756         * html/HTMLElementStack.h:
757         * html/HTMLFormattingElementList.cpp:
758         (WebCore::HTMLFormattingElementList::Entry::operator==):
759         (WebCore::HTMLFormattingElementList::Entry::operator!=):
760          - Calling element() on markers will assert, so use m_element.
761         * html/HTMLTreeBuilder.cpp:
762         (WebCore::HTMLTreeBuilder::closeTheCell):
763          - Implemented per the spec.
764         (WebCore::HTMLTreeBuilder::processStartTag):
765          - Use isTableBodyContextTag where possible.
766          - Add InCellMode.
767         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
768          - Use isTableBodyContextTag where possible.
769         (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
770          - This code is needed from at least two callsites.
771         (WebCore::HTMLTreeBuilder::processEndTag):
772          - Add InCellMode and InRowMode
773         (WebCore::HTMLTreeBuilder::processCharacter):
774         (WebCore::HTMLTreeBuilder::processEndOfFile):
775         * html/HTMLTreeBuilder.h:
776
777 2010-07-06  Eric Seidel  <eric@webkit.org>
778
779         Reviewed by Adam Barth.
780
781         Make <a> auto-close any parent <a> tag
782         https://bugs.webkit.org/show_bug.cgi?id=41684
783
784         I first fixed <a> to auto-close surrounding <a> tags.
785         That caused about 3 more test passes and one new test failure.
786         The test failure was due to <marque> not adding a marker
787         to the active formatting elements.
788
789         So I made a one-line change to fix <marque>.  However that hit an
790         ASSERT due to a bug in indexOfFirstUnopenFormattingElement.
791         Fixing indexOfFirstUnopenFormattingElement fixed another bunch of
792         Adoption Agency related tests (clearly this was the second typo
793         which was causing all the adoption agency failures).
794         
795         However fixing <marque> and indexOfFirstUnopenFormattingElement,
796         added yet another failure due to missing support for </p>
797         automatically adding an implicit <p> tag.  Fixing </p> finally
798         got the tests to a stable (all improving) state.
799
800         In the end, these 4 minor (and very well tested) tweaks fixed a total
801         of 9 subtests in html5lib/runner.html.
802         Another subtest progressed, but did not fully pass due to missing
803         <table> foster-parenting support.
804
805         * html/HTMLTreeBuilder.cpp:
806         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
807         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
808         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
809
810 2010-07-02  Philippe Normand  <pnormand@igalia.com>
811
812         Reviewed by Xan Lopez
813
814         [GStreamer] can't seek past maxTimeLoaded value
815         https://bugs.webkit.org/show_bug.cgi?id=40526
816
817         Extended the seekable range to the whole media. This allows video
818         played with progressive download to be seeked past the current
819         buffered position.
820
821         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
822         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
823         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
824
825 2010-07-06  Andreas Wictor  <andreas.wictor@xcerion.com>
826
827         Reviewed by Alexey Proskuryakov.
828
829         Remove global variables from XSLTProcessorLibxslt.cpp
830         https://bugs.webkit.org/show_bug.cgi?id=41348
831
832         Remove the globalProcessor and globalDocLoader global variables
833         by using the _private field that exists on most libxml structs.
834
835         No new tests, existing tests covers this.
836
837         * xml/XSLTProcessor.h:
838         (WebCore::XSLTProcessor::sourceNode):
839         (WebCore::XSLTProcessor::XSLTProcessor):
840         * xml/XSLTProcessorLibxslt.cpp:
841         (WebCore::registredXSLTProcessors):
842         (WebCore::registredXSLStyleSheets):
843         (WebCore::docLoaderFunc):
844         (WebCore::xsltStylesheetPointer):
845         (WebCore::XSLTProcessor::transformToString):
846
847 2010-07-06  Darin Adler  <darin@apple.com>
848
849         Fix Cairo build.
850
851         * platform/graphics/cairo/GraphicsContextCairo.cpp:
852         (WebCore::GraphicsContext::createPlatformShadow): Removed unnneded release
853         in code that passes a PassOwnPtr to another PassOwnPtr.
854
855 2010-07-06  Darin Adler  <darin@apple.com>
856
857         Fix Chromium build.
858
859         * platform/graphics/skia/SkiaUtils.cpp:
860         (WebCore::scratchContext): Use leakPtr instead of release.
861
862 2010-07-06  Martin Robinson  <mrobinson@igalia.com>
863
864         Unreviewed.
865
866         Build fix after r62549.
867
868         * GNUmakefile.am: Generate RemoteInspector files by manually listing
869         them instead of building them into libWebCoreJS.la.
870
871 2010-07-06  Darin Adler  <darin@apple.com>
872
873         Reviewed by Adam Barth.
874
875         Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
876         https://bugs.webkit.org/show_bug.cgi?id=41320
877
878         Made code changes required because of the change to the release function.
879         The equivalent to the old release function is now named leakPtr and
880         should be used sparingly. The new release function returns a PassOwnPtr.
881
882         * css/CSSFontFaceSource.cpp:
883         (WebCore::CSSFontFaceSource::getFontData): Changed code to call
884         leakPtr instead of release.
885         * css/CSSParser.cpp:
886         (WebCore::CSSParser::addProperty): Ditto.
887
888         * css/CSSSegmentedFontFace.cpp:
889         (WebCore::CSSSegmentedFontFace::getFontData): Removed unneeded type
890         casting. Not sure why this changed the type to FontData* and then
891         casted back to SimpleFontData*.
892
893         * css/MediaQuery.cpp:
894         (WebCore::MediaQuery::MediaQuery): Removed call to release on a
895         PassOwnPtr, since the data member is now an OwnPtr.
896         (WebCore::MediaQuery::~MediaQuery): Removed now-unneeded delete.
897         * css/MediaQuery.h: Changed m_expressions to be an OwnPtr.
898
899         * html/HTMLToken.h:
900         (WebCore::AtomicHTMLToken::AtomicHTMLToken): Use assignment instead
901         of the set function since there are no raw pointers involved.
902         * loader/CachedResource.cpp:
903         (WebCore::CachedResource::makePurgeable): Ditto.
904
905         * loader/CrossOriginPreflightResultCache.cpp:
906         (WebCore::CrossOriginPreflightResultCache::appendEntry): Use
907         leakPtr instead of release, and also add FIXME about deleting the
908         old value if the original and URL are already in the map. I
909         believe dealing with this FIXME may fix a storage leak.
910
911         * loader/CrossOriginPreflightResultCache.h: Change the argument
912         to be PassOwnPtr instead of a raw pointer, since this function
913         does take ownership.
914
915         * loader/DocumentThreadableLoader.cpp:
916         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
917         Use assignment instead of the set function since there are no raw
918         pointers involved.
919         * loader/FrameLoader.cpp:
920         (WebCore::FrameLoader::startIconLoader): Ditto.
921         * loader/TextResourceDecoder.cpp:
922         (WebCore::TextResourceDecoder::decode): Ditto.
923         (WebCore::TextResourceDecoder::flush): Ditto.
924
925         * page/DOMTimer.cpp:
926         (WebCore::DOMTimer::fired): Use OwnPtr instead of an explicit
927         delete.
928
929         * platform/CrossThreadCopier.h: Removed explicit code that tried
930         to copy PassOwnPtr in a complicated way. It did nothing different
931         from just returning the PassOwnPtr. This presumably was done because
932         PassRefPtr has issues when copied cross-thread, but there are no
933         similar issues for PassOwnPtr. Someone with more experience than I
934         might be able to remove the specialization altogether, because
935         CrossThreadCopierPassThrough does the right thing in this case.
936
937         * platform/SharedBuffer.cpp:
938         (WebCore::SharedBuffer::adoptPurgeableBuffer): Changed argument to
939         be a PassOwnPtr.
940         (WebCore::SharedBuffer::releasePurgeableBuffer): Changed result to
941         be a PassOwnPtr.
942         * platform/SharedBuffer.h: Updated for changes above.
943
944         * rendering/RenderSVGResourceFilter.cpp:
945         (WebCore::RenderSVGResourceFilter::applyResource): Changed one site
946         to use assignment instead of the set function since there are no raw
947         pointers involved. Changed another site to use leakPtr instead
948         of release.
949
950         * rendering/RenderSVGResourceGradient.cpp:
951         (WebCore::createMaskAndSwapContextForTextGradient): Use assignment
952         instead of the set function since there are no raw pointers involved.
953
954         * rendering/style/RenderStyle.cpp:
955         (WebCore::RenderStyle::setContent): Use leakPtr instead of release.
956         (WebCore::RenderStyle::setBoxShadow): Ditto.
957
958         * workers/DefaultSharedWorkerRepository.cpp:
959         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
960         Removed unneeded call to release function in a code path that passes
961         a PassOwnPtr to a function that takes a PassOwnPtr.
962
963         * workers/WorkerContext.cpp:
964         (WebCore::WorkerContext::setTimeout): Changed argument type to PassOwnPtr.
965         (WebCore::WorkerContext::setInterval): Ditto.
966         * workers/WorkerContext.h: Updated for changes above.
967
968         * workers/WorkerMessagingProxy.cpp:
969         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
970         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
971         Removed unneeded call to release function in code paths that pass
972         a PassOwnPtr to a function that takes a PassOwnPtr.
973
974 2010-07-06  Ilya Tikhonovsky  <loislo@chromium.org>
975
976         Reviewed by Yury Semikhatsky.
977
978         WebInspector: generator part of the patch for bug 40675.
979         On the way to Remote Debugging we want to support JSON serialization
980         on both sides of WebInspector transport.
981         As far as InspectorFrontend class is a simple proxy to WebInspector
982         it would be better to generate it from an IDL file.
983         We have generator infrastructure for binding and will reuse it for
984         new generator.
985         https://bugs.webkit.org/show_bug.cgi?id=41692
986
987
988         * CMakeLists.txt:
989         * DerivedSources.make:
990         * GNUmakefile.am:
991         * WebCore.gyp/WebCore.gyp:
992         * WebCore.gyp/scripts/rule_binding.py:
993         * WebCore.gypi:
994         * WebCore.pri:
995         * WebCore.vcproj/WebCore.vcproj:
996         * WebCore.xcodeproj/project.pbxproj:
997         * bindings/scripts/CodeGenerator.pm:
998         * bindings/scripts/IDLParser.pm:
999         * bindings/scripts/generate-bindings.pl:
1000         * inspector/CodeGeneratorInspector.pm: Added.
1001         * inspector/InspectorController.cpp:
1002         (WebCore::InspectorController::connectFrontend):
1003         (WebCore::InspectorController::startTimelineProfiler):
1004         * inspector/InspectorController.h:
1005         * inspector/InspectorFrontend.cpp:
1006         * inspector/InspectorFrontend.h:
1007         * inspector/InspectorFrontend2.idl: Added.
1008         * inspector/InspectorTimelineAgent.cpp:
1009         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1010         (WebCore::InspectorTimelineAgent::resetFrontendProxyObject):
1011         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
1012         * inspector/InspectorTimelineAgent.h:
1013
1014 2010-07-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1015
1016         Rubber-stamped by Xan Lopez.
1017
1018         [GTK] Crashes when going back with page cache in unknown circunstances
1019         https://bugs.webkit.org/show_bug.cgi?id=41710
1020
1021         Also NULL-check document, in hopes of fixing this hard to
1022         reproduce crash that we are getting reported quite a bit.
1023
1024         * page/FrameView.cpp:
1025         (WebCore::FrameView::windowClipRect):
1026
1027 2010-07-05  Ilya Tikhonovsky  <loislo@chromium.org>
1028
1029         Reviewed by Yury Semikhatsky.
1030
1031         Web Inspector: On the way to Remote Debuging we want to support JSON
1032         serialization on both sides of WebInspector transport. As far as
1033         InspectorFrontend class is a simple proxy to WebInspector it would
1034         be better to generate it from an IDL file. We have generator
1035         infostructure for binding and will reuse it for new generator.
1036         https://bugs.webkit.org/show_bug.cgi?id=40675
1037
1038         * bindings/js/ScriptCallStack.cpp:
1039         (WebCore::ScriptCallStack::stackTrace):
1040         * bindings/js/ScriptCallStack.h:
1041         * bindings/v8/ScriptCallStack.cpp:
1042         (WebCore::ScriptCallStack::stackTrace):
1043         * bindings/v8/ScriptCallStack.h:
1044         * inspector/InspectorFrontend.cpp:
1045         (WebCore::InspectorFrontend::addRecordToTimeline):
1046         * inspector/InspectorFrontend.h:
1047         * inspector/InspectorTimelineAgent.cpp:
1048         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
1049         (WebCore::InspectorTimelineAgent::willCallFunction):
1050         (WebCore::InspectorTimelineAgent::willDispatchEvent):
1051         (WebCore::InspectorTimelineAgent::willLayout):
1052         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
1053         (WebCore::InspectorTimelineAgent::willPaint):
1054         (WebCore::InspectorTimelineAgent::willWriteHTML):
1055         (WebCore::InspectorTimelineAgent::didWriteHTML):
1056         (WebCore::InspectorTimelineAgent::didInstallTimer):
1057         (WebCore::InspectorTimelineAgent::didRemoveTimer):
1058         (WebCore::InspectorTimelineAgent::willFireTimer):
1059         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
1060         (WebCore::InspectorTimelineAgent::willLoadXHR):
1061         (WebCore::InspectorTimelineAgent::willEvaluateScript):
1062         (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
1063         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
1064         (WebCore::InspectorTimelineAgent::willReceiveResourceData):
1065         (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
1066         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
1067         (WebCore::InspectorTimelineAgent::didMarkTimeline):
1068         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
1069         (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
1070         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
1071         (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
1072         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
1073         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
1074         * inspector/InspectorTimelineAgent.h:
1075         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
1076         * inspector/TimelineRecordFactory.cpp:
1077         (WebCore::TimelineRecordFactory::createGenericRecord):
1078         (WebCore::TimelineRecordFactory::createGCEventData):
1079         (WebCore::TimelineRecordFactory::createFunctionCallData):
1080         (WebCore::TimelineRecordFactory::createEventDispatchData):
1081         (WebCore::TimelineRecordFactory::createGenericTimerData):
1082         (WebCore::TimelineRecordFactory::createTimerInstallData):
1083         (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
1084         (WebCore::TimelineRecordFactory::createXHRLoadData):
1085         (WebCore::TimelineRecordFactory::createEvaluateScriptData):
1086         (WebCore::TimelineRecordFactory::createMarkTimelineData):
1087         (WebCore::TimelineRecordFactory::createScheduleResourceRequestData):
1088         (WebCore::TimelineRecordFactory::createResourceSendRequestData):
1089         (WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
1090         (WebCore::TimelineRecordFactory::createResourceFinishData):
1091         (WebCore::TimelineRecordFactory::createReceiveResourceData):
1092         (WebCore::TimelineRecordFactory::createPaintData):
1093         (WebCore::TimelineRecordFactory::createParseHTMLData):
1094         * inspector/TimelineRecordFactory.h:
1095
1096 2010-07-06  Adam Barth  <abarth@webkit.org>
1097
1098         Reviewed by Eric Seidel.
1099
1100         Implement InColgroupMode
1101         https://bugs.webkit.org/show_bug.cgi?id=41663
1102
1103         * html/HTMLTreeBuilder.cpp:
1104         (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
1105         (WebCore::HTMLTreeBuilder::processStartTag):
1106         (WebCore::HTMLTreeBuilder::processEndTag):
1107         (WebCore::HTMLTreeBuilder::processCharacter):
1108         (WebCore::HTMLTreeBuilder::processEndOfFile):
1109         * html/HTMLTreeBuilder.h:
1110
1111 2010-07-06  Eric Seidel  <eric@webkit.org>
1112
1113         Reviewed by Adam Barth.
1114
1115         Implement bookmarking for HTML5 Adoption Agency algorithm
1116         https://bugs.webkit.org/show_bug.cgi?id=41659
1117
1118         Was easier than I expected it to be.
1119         Fixes a bunch of html5lib/runner.html tests.
1120
1121         * html/HTMLFormattingElementList.cpp:
1122         (WebCore::HTMLFormattingElementList::bookmarkFor):
1123         (WebCore::HTMLFormattingElementList::insertAt):
1124         * html/HTMLFormattingElementList.h:
1125         (WebCore::HTMLFormattingElementList::Bookmark::Bookmark):
1126         (WebCore::HTMLFormattingElementList::Bookmark::moveToAfter):
1127         (WebCore::HTMLFormattingElementList::Bookmark::elementBefore):
1128         (WebCore::HTMLFormattingElementList::Bookmark::elementAfter):
1129         * html/HTMLTreeBuilder.cpp:
1130         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1131
1132 2010-07-06  Adam Barth  <abarth@webkit.org>
1133
1134         Reviewed by Eric Seidel.
1135
1136         Implement more of InTableMode
1137         https://bugs.webkit.org/show_bug.cgi?id=41652
1138
1139         By the time we got around to landing this patch, it turns out to be
1140         just a bit of cleanup (the functional changes where landed already.)
1141
1142         * html/HTMLTreeBuilder.cpp:
1143         (WebCore::HTMLTreeBuilder::processCharacter):
1144         (WebCore::HTMLTreeBuilder::processEndOfFile):
1145
1146 2010-07-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1147
1148         Unreviewed, rolling out r62529.
1149         http://trac.webkit.org/changeset/62529
1150         https://bugs.webkit.org/show_bug.cgi?id=41661
1151
1152         http/tests/inspector/resource-har-conversion.html is broken
1153         (Requested by yutak on #webkit).
1154
1155         * inspector/InspectorController.cpp:
1156         (WebCore::InspectorController::addResource):
1157         (WebCore::InspectorController::removeResource):
1158         * inspector/InspectorController.h:
1159         * inspector/InspectorResource.cpp:
1160         (WebCore::InspectorResource::InspectorResource):
1161         (WebCore::InspectorResource::updateScriptObject):
1162         (WebCore::InspectorResource::cachedResource):
1163         (WebCore::InspectorResource::type):
1164         (WebCore::InspectorResource::resourceData):
1165         * inspector/InspectorResource.h:
1166         (WebCore::InspectorResource::):
1167         (WebCore::InspectorResource::create):
1168         * inspector/front-end/Resource.js:
1169         (WebInspector.Resource.Type.toString):
1170         (WebInspector.Resource.prototype.set type):
1171         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
1172         * inspector/front-end/ResourceView.js:
1173         (WebInspector.ResourceView.prototype._refreshRequestHeaders):
1174         (WebInspector.ResourceView.prototype._refreshResponseHeaders):
1175         (WebInspector.ResourceView.prototype._refreshHeaders):
1176         * inspector/front-end/inspector.css:
1177         (.resources-category-scripts, .resources-category-xhr, .resources-category-fonts, .resources-category-other):
1178         * inspector/front-end/inspector.js:
1179         (WebInspector.loaded):
1180         (WebInspector.updateResource):
1181         * websockets/WebSocketChannel.cpp:
1182         (WebCore::WebSocketChannel::WebSocketChannel):
1183         (WebCore::WebSocketChannel::disconnect):
1184         (WebCore::WebSocketChannel::didOpen):
1185         (WebCore::WebSocketChannel::didClose):
1186         (WebCore::WebSocketChannel::processBuffer):
1187         * websockets/WebSocketChannel.h:
1188
1189 2010-07-06  Adam Barth  <abarth@webkit.org>
1190
1191         Reviewed by Eric Seidel.
1192
1193         Implement InCaptionMode
1194         https://bugs.webkit.org/show_bug.cgi?id=41660
1195
1196         Implementing this mode also turned up a subtle bug in the adoption
1197         agency code.
1198
1199         * html/HTMLTreeBuilder.cpp:
1200         (WebCore::HTMLTreeBuilder::processStartTag):
1201         (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
1202         (WebCore::HTMLTreeBuilder::processEndTag):
1203         (WebCore::HTMLTreeBuilder::processCharacter):
1204         (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
1205             - We're supposed to reutrn the first *unopened* formatting element.
1206               The old code returned the first *opened* formatting element.
1207         * html/HTMLTreeBuilder.h:
1208
1209 2010-07-06  Adam Barth  <abarth@webkit.org>
1210
1211         Reviewed by Eric Seidel.
1212
1213         Implement defaut cases for InTableMode
1214         https://bugs.webkit.org/show_bug.cgi?id=41656
1215
1216         * html/HTMLTreeBuilder.cpp:
1217         (WebCore::HTMLTreeBuilder::processStartTag):
1218         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
1219         (WebCore::HTMLTreeBuilder::processEndTag):
1220         * html/HTMLTreeBuilder.h:
1221
1222 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
1223
1224         Reviewed by Dirk Schulze.
1225
1226         SVGRenderContainer forces too many kids to relayout
1227         https://bugs.webkit.org/show_bug.cgi?id=15391
1228
1229         Fixing a long-standing performance issue. We should only ever need to relayout container children when the parent bounds change.
1230         The bounds of a container can only change, if the outermost RenderSVGRoot container uses relative length values and its size changes.
1231         This can either happen when the window resizes for standalone SVG documents, or if an enclosing RenderBox changes width/height values.
1232
1233         Only relayout container children if the container has selfNeedsLayout() true, or if the parent bounds change.
1234         Lively Kernel doesn't do any relayouts anymore, except if you change the Safari window size, this is a great progression.
1235
1236         * rendering/RenderPath.cpp:
1237         (WebCore::RenderPath::layout): No need to special case Path updates, if the element uses relative lengths. SVGRenderSupport now handles this case.
1238         * rendering/RenderSVGContainer.cpp:
1239         (WebCore::RenderSVGContainer::layout): Fix some style issues.
1240         * rendering/RenderSVGContainer.h:
1241         (WebCore::RenderSVGContainer::setDrawsContents): Inlined for speed.
1242         (WebCore::RenderSVGContainer::drawsContents): Ditto.
1243         * rendering/RenderSVGRoot.cpp:
1244         (WebCore::RenderSVGRoot::RenderSVGRoot): Initialize m_isLayoutSizeChanged to false.
1245         (WebCore::RenderSVGRoot::layout): Set m_isLayoutSizeChanged=true when the RenderSVGRoot size changes during layout.
1246         (WebCore::RenderSVGRoot::calcViewport): Remove hasRelativeLengths() special case.
1247         * rendering/RenderSVGRoot.h:
1248         (WebCore::RenderSVGRoot::isLayoutSizeChanged): New function, which returns true during layout() if the outermost <svg> size changes.
1249         * rendering/RenderSVGViewportContainer.cpp:
1250         (WebCore::RenderSVGViewportContainer::calcViewport): Cleanup code, and remove obsolete hasRelativeLengths() special case.
1251         * rendering/SVGRenderSupport.cpp:
1252         (WebCore::svgRootTreeObject): Added helper function, that returns the RenderSVGRoot for a given RenderObject.
1253         (WebCore::SVGRenderSupport::layoutChildren): Remove FIXME, only relayout container children, if the parent bounds change and the child uses relative lengths.
1254         * svg/SVGStyledElement.cpp:
1255         (WebCore::SVGStyledElement::updateRelativeLengthsInformation): Implemented this function. Keeps track of relative lengths elements, so that the
1256                                                                        hasRelativeLengths() information is always up2date.
1257         * svg/SVGStyledElement.h:
1258         (WebCore::SVGStyledElement::hasRelativeLengths): Don't call the virtual selfHasRelativeLengths() information, just return wheter m_elementsWithRelativeLengths is not empty.
1259
1260 2010-07-05  Yuzo Fujishima  <yuzo@google.com>
1261
1262         Reviewed by Dan Bernstein.
1263
1264         Fix for Bug 41509 - Ranges for @font-face unicode-range must be separated by commas
1265         https://bugs.webkit.org/show_bug.cgi?id=41509
1266
1267         Test: fast/css/font-face-multiple-ranges-for-unicode-range.html
1268
1269         * css/CSSParser.cpp:
1270         (WebCore::CSSParser::parseFontFaceUnicodeRange):
1271
1272 2010-07-05  Yuta Kitamura  <yutak@chromium.org>
1273
1274         Reviewed by Pavel Feldman.
1275
1276         Add WebSocket resource type to Web Inspector.
1277
1278         When a new WebSocket connection is established, a line for that connection
1279         will appear in Web Inspector's Resources tab. If the resource name is
1280         clicked, the details of handshake request and response will be shown.
1281
1282         Web Inspector: WebSocket in Resources tab
1283         https://bugs.webkit.org/show_bug.cgi?id=40768
1284
1285         * inspector/InspectorController.cpp:
1286         (WebCore::InspectorController::addResource): WebSocket resource does not
1287         have an associated loader, thus frame might be null. Need to check it.
1288         (WebCore::InspectorController::removeResource): Ditto.
1289         (WebCore::InspectorController::didCreateWebSocket):
1290         (WebCore::InspectorController::willSendWebSocketHandshakeRequest):
1291         (WebCore::InspectorController::didReceiveWebSocketHandshakeResponse):
1292         (WebCore::InspectorController::didCloseWebSocket):
1293         * inspector/InspectorController.h:
1294         * inspector/InspectorResource.cpp: Add null checks of m_loader and m_frame,
1295         because WebSocket does not have a loader and we need to allow null for
1296         these variables.
1297         (WebCore::createReadableStringFromBinary):
1298         (WebCore::InspectorResource::InspectorResource):
1299         (WebCore::InspectorResource::create): Factory function of
1300         regular (non-WebSocket) resources.
1301         (WebCore::InspectorResource::createWebSocket): Factory function of
1302         WebSocket resources.
1303         (WebCore::InspectorResource::updateWebSocketRequest):
1304         (WebCore::InspectorResource::updateWebSocketResponse):
1305         (WebCore::InspectorResource::updateScriptObject):
1306         (WebCore::InspectorResource::cachedResource):
1307         (WebCore::InspectorResource::type):
1308         (WebCore::InspectorResource::resourceData):
1309         * inspector/InspectorResource.h:
1310         (WebCore::InspectorResource::):
1311         (WebCore::InspectorResource::markWebSocket):
1312         * inspector/front-end/Resource.js:
1313         (WebInspector.Resource.Type.toString):
1314         (WebInspector.Resource.prototype.set type):
1315         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
1316         * inspector/front-end/ResourceView.js:
1317         (WebInspector.ResourceView.prototype._refreshRequestHeaders):
1318         (WebInspector.ResourceView.prototype._refreshResponseHeaders):
1319         (WebInspector.ResourceView.prototype._refreshHeaders):
1320         * inspector/front-end/inspector.css:
1321         (.resources-category-websockets, .resources-category-other):
1322         (.resources-category-websockets .resources-graph-bar):
1323         (.resources-category-websockets.resource-cached .resources-graph-bar):
1324         * inspector/front-end/inspector.js:
1325         (WebInspector.loaded):
1326         (WebInspector.updateResource):
1327         * websockets/WebSocketChannel.cpp:
1328         (WebCore::WebSocketChannel::WebSocketChannel):
1329         (WebCore::WebSocketChannel::disconnect):
1330         (WebCore::WebSocketChannel::didOpen):
1331         (WebCore::WebSocketChannel::didClose):
1332         (WebCore::WebSocketChannel::processBuffer):
1333         (WebCore::WebSocketChannel::identifier):
1334         * websockets/WebSocketChannel.h:
1335
1336 2010-07-05  Yury Semikhatsky  <yurys@chromium.org>
1337
1338         Unreviewed. Fix Chromium build.
1339
1340         * inspector/InspectorApplicationCacheAgent.cpp:
1341         (WebCore::InspectorApplicationCacheAgent::fillResourceList):
1342         (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
1343
1344 2010-07-05  Adam Barth  <abarth@webkit.org>
1345
1346         Unreviewed.
1347
1348         Move processStartTagForInBody to its own function.
1349
1350         * html/HTMLTreeBuilder.cpp:
1351         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1352         (WebCore::HTMLTreeBuilder::processStartTag):
1353         * html/HTMLTreeBuilder.cpp.orig: Added.
1354         * html/HTMLTreeBuilder.h:
1355
1356 2010-07-05  Eric Seidel  <eric@webkit.org>
1357
1358         Reviewed by Adam Barth.
1359
1360         Fix one more notImplemented in h1-h6 start tag handling
1361         https://bugs.webkit.org/show_bug.cgi?id=41654
1362
1363         * html/HTMLTreeBuilder.cpp:
1364         (WebCore::HTMLTreeBuilder::processStartTag):
1365
1366 2010-07-05  Eric Seidel  <eric@webkit.org>
1367
1368         Unreviewed.  Just fixing proess to process.
1369         Clearly Adam and I can't spell.  Thankfully MikeSmith can.
1370
1371         Add <isindex> support, per HTML5
1372         https://bugs.webkit.org/show_bug.cgi?id=41650
1373
1374         * html/HTMLTreeBuilder.cpp:
1375         (WebCore::HTMLTreeBuilder::processFakeStartTag):
1376         (WebCore::HTMLTreeBuilder::processFakeEndTag):
1377         (WebCore::HTMLTreeBuilder::processIsindexStartTagForBody):
1378         (WebCore::HTMLTreeBuilder::processStartTag):
1379         * html/HTMLTreeBuilder.h:
1380
1381 2010-07-05  Eric Seidel  <eric@webkit.org>
1382
1383         Reviewed by Adam Barth.
1384
1385         Add <isindex> support, per HTML5
1386         https://bugs.webkit.org/show_bug.cgi?id=41650
1387
1388         Covered by html5lib/runner.html including a new
1389         isindex.dat test suite.
1390
1391         * html/HTMLToken.h:
1392         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1393          - Support passing attributes to the constructor.
1394         (WebCore::AtomicHTMLToken::name):
1395         (WebCore::AtomicHTMLToken::setName):
1396         (WebCore::AtomicHTMLToken::getAttributeItem):
1397         (WebCore::AtomicHTMLToken::attributes):
1398         (WebCore::AtomicHTMLToken::takeAtributes):
1399          - Reduces ref-churn, and makes it possible for callers
1400            to modify attributes w/o affecting future uses of the attributes.
1401         (WebCore::AtomicHTMLToken::usesName):
1402          - Used by ASSERTS.
1403         (WebCore::AtomicHTMLToken::usesAttributes):
1404          - Used by ASSERTS.
1405         * html/HTMLTreeBuilder.cpp:
1406         (WebCore::convertToOldStyle):
1407          - Can't be const, now that we use takeAttributes()
1408         (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
1409         (WebCore::HTMLTreeBuilder::proesssFakeStartTag):
1410          - New function.  I'm not sure this is the perfect design
1411           (I'd kinda like AtomicHTMLToken to be copyable so we can
1412            have create functions for it), but this makes the callsites
1413            using fake tokens much more readable.
1414         (WebCore::HTMLTreeBuilder::proesssFakeEndTag):
1415         (WebCore::HTMLTreeBuilder::processFakeCharacters):
1416         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
1417         (WebCore::HTMLTreeBuilder::processIsindexStartTagForBody):
1418         (WebCore::HTMLTreeBuilder::processStartTag):
1419         (WebCore::HTMLTreeBuilder::insertScriptElement):
1420          - Use takeAttributes() for less ref-churn.
1421         (WebCore::HTMLTreeBuilder::createElement): ditto
1422         (WebCore::HTMLTreeBuilder::finished):
1423          - Remove bogus use of AtomicHTMLToken constructor which
1424            wasn't even being used now that we support emitting EOF tokens
1425            from the Tokenizer directly.
1426         * html/HTMLTreeBuilder.h:
1427
1428 2010-07-05  Adam Barth  <abarth@webkit.org>
1429
1430         Reviewed by Eric Seidel.
1431
1432         ASSERT that we're processing the correct type of token
1433         https://bugs.webkit.org/show_bug.cgi?id=41647
1434
1435         Making these asserts work required a small (non-observable) tweak to
1436         some old code.
1437
1438         * html/HTMLTreeBuilder.cpp:
1439         (WebCore::HTMLTreeBuilder::processDoctypeToken):
1440         (WebCore::HTMLTreeBuilder::processStartTag):
1441         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
1442         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1443         (WebCore::HTMLTreeBuilder::processEndTag):
1444         (WebCore::HTMLTreeBuilder::processComment):
1445         (WebCore::HTMLTreeBuilder::processCharacter):
1446         (WebCore::HTMLTreeBuilder::processEndOfFile):
1447         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
1448
1449 2010-07-05  Adam Barth  <abarth@webkit.org>
1450
1451         Reviewed by Eric Seidel.
1452
1453         Implement in select in table
1454         https://bugs.webkit.org/show_bug.cgi?id=41646
1455
1456         This mode is mostly a fall-through to the InSelectMode.
1457
1458         * html/HTMLTreeBuilder.cpp:
1459         (WebCore::HTMLTreeBuilder::processStartTag):
1460         (WebCore::HTMLTreeBuilder::processEndTag):
1461         (WebCore::HTMLTreeBuilder::processCharacter):
1462         (WebCore::HTMLTreeBuilder::processEndOfFile):
1463
1464 2010-07-05  Adam Barth  <abarth@webkit.org>
1465
1466         Reviewed by Eric Seidel.
1467
1468         Implement basic text node coalescing
1469         https://bugs.webkit.org/show_bug.cgi?id=41623
1470
1471         This patch isn't the end-all, be-all of text node coalescing, but it's
1472         a good start.
1473
1474         * dom/CharacterData.cpp:
1475         (WebCore::CharacterData::parserAppendData):
1476         (WebCore::CharacterData::appendData):
1477         * dom/CharacterData.h:
1478             - Added a new method to dance around mutation events.
1479         * html/HTMLTreeBuilder.cpp:
1480         (WebCore::HTMLTreeBuilder::insertTextNode):
1481
1482 2010-07-05  Adam Barth  <abarth@webkit.org>
1483
1484         Reviewed by Eric Seidel.
1485
1486         Implement InSelectMode
1487         https://bugs.webkit.org/show_bug.cgi?id=41627
1488
1489         * html/HTMLTreeBuilder.cpp:
1490         (WebCore::HTMLTreeBuilder::processStartTag):
1491         (WebCore::HTMLTreeBuilder::processEndTag):
1492         (WebCore::HTMLTreeBuilder::processCharacter):
1493         (WebCore::HTMLTreeBuilder::processEndOfFile):
1494
1495 2010-07-05  Fady Samuel  <fsamuel@chromium.org>
1496
1497         Reviewed by Darin Adler.
1498
1499         Fixed a svg crash when setting class of an svg ellipse object.
1500
1501         Altering the CSS class of an attached SVG element causes WebKit to crash
1502         https://bugs.webkit.org/show_bug.cgi?id=40857
1503
1504         Test: svg/css/svg-ellipse-render-crash.html
1505
1506         * dom/StyledElement.cpp:
1507         (WebCore::StyledElement::classAttributeChanged):
1508
1509 2010-07-05  Dan Bernstein  <mitz@apple.com>
1510
1511         Reviewed by Sam Weinig.
1512
1513         Reproducible crash with Optimize Legibility extension
1514         https://bugs.webkit.org/show_bug.cgi?id=41585
1515
1516         Test: fast/css/text-rendering-priority.html
1517
1518         Moved the text-rendering CSS property to the “high priority” group, because applying it
1519         during style selection invalidates the font.
1520
1521         * css/CSSPropertyNames.in: Moved text-rendering to the “high priority” section at the top.
1522         * css/CSSStyleSelector.cpp:
1523         (WebCore::CSSStyleSelector::applyDeclarations): Updated compile-time assertion.
1524
1525 2010-07-05  Dan Bernstein  <mitz@apple.com>
1526
1527         Reviewed by Sam Weinig.
1528
1529         optimizeLegibility doesn't play nice with fonts that do not have a space glyph
1530         https://bugs.webkit.org/show_bug.cgi?id=41599
1531
1532         No test because none of the fonts available to DumpRenderTree are missing a space glyph.
1533
1534         * rendering/RenderBlockLineLayout.cpp:
1535         (WebCore::RenderBlock::findNextLineBreak): When the font does not map the space character
1536         to a glyph, a fallback font is used for space. Therefore, wordTrailingSpaceWidth must be
1537         initialized with the width of a space as measured by the Font rather than with the cached
1538         space width.
1539
1540 2010-07-05  Eric Seidel  <eric@webkit.org>
1541
1542         Reviewed by Adam Barth.
1543
1544         Implement HTML5's "reset insertion mode appropriately"
1545         https://bugs.webkit.org/show_bug.cgi?id=41628
1546
1547         This has some minimal testing.  One from my previous
1548         </table> patch, and a few from the main suite.
1549
1550         Mostly resetInsertionModeAppropriately isn't used yet
1551         but we're about to add a bunch of states which do use it
1552         and our test coverage will expand further as we do.
1553
1554         * html/HTMLTreeBuilder.cpp:
1555         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1556         (WebCore::HTMLTreeBuilder::setInsertionModeAndEnd):
1557         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
1558         * html/HTMLTreeBuilder.h:
1559
1560 2010-07-04  Eric Seidel  <eric@webkit.org>
1561
1562         Reviewed by Adam Barth.
1563
1564         Add </table> support for "in table" insertion mode
1565         https://bugs.webkit.org/show_bug.cgi?id=41591
1566
1567         resetInsertionModeAppropriately isn't implemented yet, however
1568         I've added a test for the usage I added.
1569
1570         * html/HTMLTreeBuilder.cpp:
1571         (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
1572         (WebCore::HTMLTreeBuilder::processEndTag):
1573         * html/HTMLTreeBuilder.h:
1574
1575 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
1576
1577         Unreviewed build fix for r62503.
1578
1579         Chromium missing method. Filed bug 41632 to track.
1580
1581         * loader/appcache/ApplicationCacheHost.h:
1582         (WebCore::ApplicationCacheHost::applicationCache):
1583
1584 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
1585
1586         Unreviewed build fix for r62503.
1587
1588         Missed GTK's build file.
1589
1590         * GNUmakefile.am:
1591
1592 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
1593
1594         Unreviewed build fix for r62503.
1595
1596         Pass a blank ResourceResponse instead of passing 0.
1597
1598         * loader/appcache/ApplicationCacheGroup.cpp:
1599         (WebCore::ApplicationCacheGroup::createResourceHandle):
1600
1601 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
1602
1603         Unreviewed build fix for r62503.
1604
1605         Forward declare ApplicationCache for Chromium.
1606
1607         * loader/appcache/ApplicationCacheHost.h:
1608
1609 2010-07-05  Joseph Pecoraro  <joepeck@webkit.org>
1610
1611         Reviewed by Pavel Feldman.
1612
1613         WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
1614         https://bugs.webkit.org/show_bug.cgi?id=24529
1615
1616         Parts of this patch were written by Kavita Kanetkar <kkanetkar@chromium.org>.
1617
1618         Part 2: Pulling ApplicationCache Resources to Display in the Inspector.
1619
1620           The InspectorApplicationCacheAgent gathers the information it
1621           needs and forwards it on to the inspector.
1622
1623         * inspector/InspectorApplicationCacheAgent.cpp:
1624         (WebCore::InspectorApplicationCacheAgent::fillResourceList): get information about the resources.
1625         (WebCore::InspectorApplicationCacheAgent::getApplicationCaches): gathers all the information from the ApplicationCacheHost.
1626         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
1627         (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
1628         (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
1629         * inspector/InspectorApplicationCacheAgent.h: defines structures to hold information about caches and resources.
1630         (WebCore::InspectorApplicationCacheAgent::ApplicationCacheInfo::ApplicationCacheInfo):
1631         (WebCore::InspectorApplicationCacheAgent::ResourceInfo::ResourceInfo):
1632         (WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
1633         * loader/appcache/ApplicationCacheHost.h:
1634         (WebCore::ApplicationCacheHost::applicationCacheForInspector): new convention, public cache accessor for the inspector.
1635         (WebCore::ApplicationCacheHost::documentLoader): added const.
1636
1637           The User Interface uses a DataGrid, like Cookies.
1638
1639         * inspector/front-end/ApplicationCacheItemsView.js:
1640         (WebInspector.ApplicationCacheItemsView.prototype._update):
1641         (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
1642         (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
1643         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.numberCompare):
1644         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.localeCompare):
1645         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
1646
1647           The usual frontend pull workflow, except this goes through
1648           InspectorApplicationCacheAgent instead of InspectorController.
1649
1650         * inspector/InspectorBackend.cpp:
1651         (WebCore::InspectorBackend::getApplicationCaches):
1652         (WebCore::InspectorBackend::inspectorApplicationCacheAgent):
1653         * inspector/InspectorBackend.h:
1654         * inspector/InspectorBackend.idl:
1655         * inspector/InspectorFrontend.cpp:
1656         (WebCore::InspectorFrontend::didGetApplicationCaches):
1657         * inspector/InspectorFrontend.h:
1658         * inspector/front-end/DOMAgent.js:
1659         (WebInspector.DOMNode.prototype.hasChildNodes): style fix.
1660         (WebInspector.DOMAgent.prototype.nodeForId): style fix.
1661         (WebInspector.ApplicationCache.getApplicationCachesAsync): pull.
1662         (WebInspector.Cookies.getCookiesAsync):
1663         * inspector/front-end/StoragePanel.js:
1664         (WebInspector.StoragePanel.prototype.updateManifest):
1665         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
1666         * inspector/front-end/inspector.js:
1667         (WebInspector.updateResource):
1668         (WebInspector._addAppCacheDomain):
1669         (WebInspector.reset):
1670
1671           Miscellaneous. Localized Strings and fixes.
1672
1673         * English.lproj/localizedStrings.js: "Type", "%s (%s)"
1674         * inspector/InspectorController.cpp:
1675         (WebCore::InspectorController::deleteCookie):
1676         * inspector/InspectorController.h:
1677
1678 2010-07-04  Joseph Pecoraro  <joepeck@webkit.org>
1679
1680         Reviewed by Pavel Feldman.
1681
1682         WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
1683         https://bugs.webkit.org/show_bug.cgi?id=24529
1684
1685         Part 1: Backend -> Frontend Messages. ApplicationCache Status and Connectivity Status.
1686
1687         This patch adds an InspectorApplicationCacheAgent to monitor application
1688         cache changes, starts a UI in the Storage panel, handles the boilerplate
1689         of adding new files.
1690
1691           Added an agent to encapsulate and handle the application cache logic.
1692           This is similar to the timeline agent.
1693
1694         * inspector/InspectorApplicationCacheAgent.cpp: Added.
1695         (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
1696         (WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
1697         (WebCore::InspectorApplicationCacheAgent::didReceiveManifestResponse):
1698         (WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
1699         (WebCore::InspectorApplicationCacheAgent::updateNetworkState):
1700         * inspector/InspectorApplicationCacheAgent.h: Added.
1701
1702           InspectorController owns an InspectorApplicationCacheAgent. This
1703           handles its lifetime management.
1704
1705         * inspector/InspectorController.cpp:
1706         (WebCore::InspectorController::~InspectorController):
1707         (WebCore::InspectorController::connectFrontend): create the agent with a frontend.
1708         (WebCore::InspectorController::disconnectFrontend): remove the agent when closing.
1709         (WebCore::InspectorController::releaseFrontendLifetimeAgents):
1710         * inspector/InspectorController.h:
1711
1712           User Interface for ApplicationCache in the StoragePanel. This follows
1713           very closely to Cookies, it will have a sortable table of items. The
1714           status bar contains connectivity and application cache status
1715           indicators which update when backend messages are received. There
1716           are some stubs which the next part will implement.
1717
1718         * inspector/front-end/ApplicationCacheItemsView.js: Added.
1719         (WebInspector.ApplicationCacheItemsView):
1720         (WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems): refresh, delete, connectivity, application cache status.
1721         (WebInspector.ApplicationCacheItemsView.prototype.show):
1722         (WebInspector.ApplicationCacheItemsView.prototype.hide):
1723         (WebInspector.ApplicationCacheItemsView.prototype.updateStatus): this is the application cache status indicator.
1724         (WebInspector.ApplicationCacheItemsView.prototype.updateNetworkState): this is the online/offline connectivity indicator.
1725         (WebInspector.ApplicationCacheItemsView.prototype._update):
1726         (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
1727         (WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
1728         (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
1729         (WebInspector.ApplicationCacheItemsView.prototype.resize):
1730         (WebInspector.ApplicationCacheItemsView.prototype._deleteButtonClicked):
1731         (WebInspector.ApplicationCacheItemsView.prototype._deleteCallback):
1732         (WebInspector.ApplicationCacheItemsView.prototype._refreshButtonClicked):
1733
1734           The usual dispatch flow from the backend, to the frontend, to the
1735           panel, and then to the visible view. Some slight refactoring to
1736           eliminate duplicated code.
1737
1738         * inspector/InspectorFrontend.cpp:
1739         (WebCore::InspectorFrontend::updateDOMStorage):
1740         (WebCore::InspectorFrontend::didGetApplicationCaches):
1741         (WebCore::InspectorFrontend::updateApplicationCacheStatus):
1742         * inspector/InspectorFrontend.h:
1743         * inspector/front-end/StoragePanel.js:
1744         (WebInspector.StoragePanel):
1745         (WebInspector.StoragePanel.prototype.reset):
1746         (WebInspector.StoragePanel.prototype.addApplicationCache):
1747         (WebInspector.StoragePanel.prototype.showDatabase):
1748         (WebInspector.StoragePanel.prototype.showDOMStorage):
1749         (WebInspector.StoragePanel.prototype.showCookies):
1750         (WebInspector.StoragePanel.prototype.showApplicationCache):
1751         (WebInspector.StoragePanel.prototype._genericViewSetup):
1752         (WebInspector.StoragePanel.prototype.updateApplicationCacheStatus):
1753         (WebInspector.StoragePanel.prototype.updateNetworkState):
1754         (WebInspector.CookieSidebarTreeElement.prototype.set subtitle):
1755         (WebInspector.ApplicationCacheSidebarTreeElement):
1756         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
1757         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.get mainTitle):
1758         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.set mainTitle):
1759         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.get subtitle):
1760         (WebInspector.ApplicationCacheSidebarTreeElement.prototype.set subtitle):
1761         * inspector/front-end/inspector.js:
1762         (WebInspector.dispatch.delayDispatch):
1763         (WebInspector.dispatch):
1764         (WebInspector._addAppCacheDomain):
1765         (WebInspector.addDOMStorage):
1766         (WebInspector.updateDOMStorage):
1767
1768           Notify the InspectorApplicationCacheAgent on application cache changes
1769           or specifics. Notify the InspectorController on generic resource events.
1770           That is because ApplicationCacheController is a ResourceClient and needs
1771           to trigger the resource events normally handled by ResourceLoader.
1772
1773         * loader/appcache/ApplicationCacheGroup.cpp:
1774         (WebCore::inspectorUpdateApplicationCacheStatus): helper method to prevent duplicated code.
1775         (WebCore::ApplicationCacheGroup::setNewestCache): status change.
1776         (WebCore::ApplicationCacheGroup::makeObsolete): status change.
1777         (WebCore::ApplicationCacheGroup::update): status change.
1778         (WebCore::ApplicationCacheGroup::createResourceHandle): resource event.
1779         (WebCore::ApplicationCacheGroup::willSendRequest): resource event.
1780         (WebCore::ApplicationCacheGroup::didReceiveResponse): resource event.
1781         (WebCore::ApplicationCacheGroup::didReceiveData): resource event.
1782         (WebCore::ApplicationCacheGroup::didFinishLoading): resource event.
1783         (WebCore::ApplicationCacheGroup::didFail): resource event.
1784         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): resource event.
1785         (WebCore::ApplicationCacheGroup::manifestNotFound): status change.
1786         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): status change.
1787         (WebCore::ApplicationCacheGroup::setUpdateStatus): single access point for status changes.
1788         * loader/appcache/ApplicationCacheGroup.h:
1789         * page/Page.cpp:
1790         (WebCore::networkStateChanged): connectivity status change.
1791
1792           Final inspector details to add the new file, style new elements,
1793           images, and localized strings.
1794
1795         * inspector/front-end/inspector.css:
1796         (.application-cache-sidebar-tree-item .icon):
1797         (.timeline-records-counter, .storage-application-cache-status, .storage-application-cache-connectivity):
1798         (.storage-application-cache-status-icon, .storage-application-cache-connectivity-icon):
1799         (.status-bar-divider):
1800         (.storage-application-cache-status, .storage-application-cache-connectivity):
1801         * inspector/front-end/inspector.html:
1802         * inspector/front-end/Images/applicationCache.png: Added.
1803         * English.lproj/localizedStrings.js: "APPLICATION CACHE", "No Application Cache information available.", "Online", "Offline"
1804
1805           Updated build files.
1806
1807         * CMakeLists.txt:
1808         * WebCore.gypi:
1809         * WebCore.pro:
1810         * WebCore.vcproj/WebCore.vcproj:
1811         * WebCore.xcodeproj/project.pbxproj:
1812         * inspector/front-end/WebKit.qrc:
1813
1814 2010-07-05  Eric Seidel  <eric@webkit.org>
1815
1816         Reviewed by Adam Barth.
1817
1818         Add basic <col> support to the treebuilder
1819         https://bugs.webkit.org/show_bug.cgi?id=41590
1820
1821         * html/HTMLTreeBuilder.cpp:
1822         (WebCore::HTMLTreeBuilder::processStartTag):
1823
1824 2010-07-05  Eric Seidel  <eric@webkit.org>
1825
1826         Reviewed by Adam Barth.
1827
1828         Add basic "in row" mode to support <td> and <th> insertion
1829         https://bugs.webkit.org/show_bug.cgi?id=41588
1830
1831         Also fixed <td> or <th> as a direct child of <table>.
1832
1833         Most of this was covered by html5lib/runner.html tests,
1834         but I had to add a new tables01.dat to cover the <th> cases.
1835
1836         * html/HTMLElementStack.cpp:
1837         (WebCore::HTMLNames::isTableRowScopeMarker):
1838         (WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
1839         * html/HTMLElementStack.h:
1840         * html/HTMLTreeBuilder.cpp:
1841         (WebCore::HTMLTreeBuilder::processStartTag):
1842
1843 2010-07-05  Eric Seidel  <eric@webkit.org>
1844
1845         Reviewed by Adam Barth.
1846
1847         Finish implementing "any other end tag" for "in body" mode
1848         https://bugs.webkit.org/show_bug.cgi?id=41582
1849
1850         I believe I found a "bug" in the HTML5 spec when writing this:
1851         http://www.w3.org/Bugs/Public/show_bug.cgi?id=10080
1852
1853         * html/HTMLTreeBuilder.cpp:
1854         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1855         (WebCore::HTMLTreeBuilder::processEndTag):
1856         * html/HTMLTreeBuilder.h:
1857
1858 2010-07-05  Martin Robinson  <mrobinson@igalia.com>
1859
1860         Unreviewed.
1861
1862         Add a missing slash to the list of generated sources. This
1863         was missing from a previous build fix.
1864
1865         * GNUmakefile.am:
1866
1867 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
1868
1869         Reviewed by Joseph Pecoraro.
1870
1871         Web Inspector: preserve scroll positions in source frame when switching between panes.
1872
1873         https://bugs.webkit.org/show_bug.cgi?id=41620
1874
1875         * inspector/front-end/ScriptsPanel.js:
1876         (WebInspector.ScriptsPanel.prototype.hide):
1877         * inspector/front-end/SourceFrame.js:
1878         (WebInspector.SourceFrame.prototype.set visible):
1879         * inspector/front-end/SourceView.js:
1880         (WebInspector.SourceView.prototype.hide):
1881
1882 2010-07-05  Rob Buis  <rwlbuis@gmail.com>
1883
1884         Reviewed by Dirk Schulze.
1885
1886         IE SVG test fails
1887         https://bugs.webkit.org/show_bug.cgi?id=41619
1888
1889         Make SVGSVGElement.createSVGTransform create a SVGTransform with the
1890         right type, thereby fixing the IE test.
1891
1892         Test: svg/custom/svg-createsvgtransform-type.html
1893
1894         * svg/SVGSVGElement.cpp:
1895         (WebCore::SVGSVGElement::createSVGTransform):
1896
1897 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
1898
1899         Reviewed by Yury Semikhatsky.
1900
1901         Web Inspector: computed style pane is not updated when styles pane is collapsed.
1902
1903         https://bugs.webkit.org/show_bug.cgi?id=41615
1904
1905         * inspector/front-end/ElementsPanel.js:
1906         (WebInspector.ElementsPanel.prototype.updateStyles):
1907
1908 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
1909
1910         Reviewed by Dirk Schulze.
1911
1912         Logic to track whether elements are using relative lengths is incomplete
1913         https://bugs.webkit.org/show_bug.cgi?id=41566
1914
1915         Add logic to all SVG elements which create renderes to expose a method
1916         "bool selfHasRelativeLengths()", that returns whether the element uses relative
1917         lengths (eg. <rect x="50%"...). This will be used soon to avoid relayouts of
1918         container children, when the bounds have not changed.
1919
1920         A new method SVGStyledElement::updateRelativeLengthsInformation() is added,
1921         which is called from the various svgAttributeChanged() methods and insertedIntoDocument/removedFromDocument.
1922         It will be implemented in a follow-up patch. This patch does not affect any test behaviour related
1923         to relayouting. As SVGFilterElement finally got a proper svgAttributeChanged() method, it now
1924         properly invalidates clients on attribute changes - covered by a new test.
1925
1926         Tests: svg/custom/relative-sized-inner-svg.xhtml
1927                svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml
1928                svg/filters/filter-width-update.svg
1929  
1930         * rendering/RenderPath.cpp:
1931         (WebCore::RenderPath::layout): Rename hasRelativeValues to hasRelativeLengths.
1932         * rendering/RenderSVGRoot.cpp:
1933         (WebCore::RenderSVGRoot::layout): Ditto.
1934         (WebCore::RenderSVGRoot::calcViewport): Ditto.
1935         * rendering/RenderSVGViewportContainer.cpp:
1936         (WebCore::RenderSVGViewportContainer::calcViewport): Ditto
1937         * rendering/SVGRenderSupport.cpp:
1938         (WebCore::SVGRenderSupport::layoutChildren): Ditto.
1939         * svg/SVGCircleElement.cpp:
1940         (WebCore::SVGCircleElement::svgAttributeChanged): Call updateRelativeLengthsInformation() if any attribute which may contain relative lengths changes.
1941         (WebCore::SVGCircleElement::selfHasRelativeLengths): Ditto. Same for all other SVG*Elements below.
1942         * svg/SVGCircleElement.h:
1943         * svg/SVGEllipseElement.cpp:
1944         (WebCore::SVGEllipseElement::svgAttributeChanged):
1945         (WebCore::SVGEllipseElement::selfHasRelativeLengths):
1946         * svg/SVGEllipseElement.h:
1947         * svg/SVGFilterElement.cpp:
1948         (WebCore::SVGFilterElement::svgAttributeChanged):
1949         (WebCore::SVGFilterElement::selfHasRelativeLengths):
1950         * svg/SVGFilterElement.h:
1951         * svg/SVGForeignObjectElement.cpp:
1952         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
1953         (WebCore::SVGForeignObjectElement::selfHasRelativeLengths):
1954         * svg/SVGForeignObjectElement.h:
1955         * svg/SVGImageElement.cpp:
1956         (WebCore::SVGImageElement::svgAttributeChanged):
1957         (WebCore::SVGImageElement::selfHasRelativeLengths):
1958         * svg/SVGImageElement.h:
1959         * svg/SVGLineElement.cpp:
1960         (WebCore::SVGLineElement::svgAttributeChanged):
1961         (WebCore::SVGLineElement::selfHasRelativeLengths):
1962         * svg/SVGLineElement.h:
1963         * svg/SVGLinearGradientElement.cpp:
1964         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
1965         (WebCore::SVGLinearGradientElement::selfHasRelativeLengths):
1966         * svg/SVGLinearGradientElement.h:
1967         * svg/SVGMarkerElement.cpp:
1968         (WebCore::SVGMarkerElement::svgAttributeChanged):
1969         (WebCore::SVGMarkerElement::selfHasRelativeLengths):
1970         * svg/SVGMarkerElement.h:
1971         * svg/SVGMaskElement.cpp:
1972         (WebCore::SVGMaskElement::svgAttributeChanged):
1973         (WebCore::SVGMaskElement::selfHasRelativeLengths):
1974         * svg/SVGMaskElement.h:
1975         * svg/SVGPatternElement.cpp:
1976         (WebCore::SVGPatternElement::svgAttributeChanged):
1977         (WebCore::SVGPatternElement::selfHasRelativeLengths):
1978         * svg/SVGPatternElement.h:
1979         * svg/SVGRadialGradientElement.cpp:
1980         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
1981         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
1982         * svg/SVGRadialGradientElement.h:
1983         * svg/SVGRectElement.cpp:
1984         (WebCore::SVGRectElement::svgAttributeChanged):
1985         (WebCore::SVGRectElement::selfHasRelativeLengths):
1986         * svg/SVGRectElement.h:
1987         * svg/SVGSVGElement.cpp:
1988         (WebCore::SVGSVGElement::svgAttributeChanged):
1989         (WebCore::SVGSVGElement::selfHasRelativeLengths):
1990         * svg/SVGSVGElement.h:
1991         * svg/SVGStyledElement.cpp:
1992         (WebCore::SVGStyledElement::insertedIntoDocument): Call updateRelativeLengthsInformation().
1993         (WebCore::SVGStyledElement::removedFromDocument): Ditto.
1994         (WebCore::SVGStyledElement::updateRelativeLengthsInformation): Not implemented so far. Will land in a follow-up patch, together with the render tree changes.
1995         * svg/SVGStyledElement.h:
1996         (WebCore::SVGStyledElement::hasRelativeLengths): Devirtualized. For now, just call selfHasRelativeLengths() - this will change in a follow-up patch.
1997         (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
1998         (WebCore::SVGStyledElement::selfHasRelativeLengths): Renamed from hasRelativeValues().
1999         * svg/SVGSymbolElement.cpp:
2000         (WebCore::SVGSymbolElement::svgAttributeChanged):
2001         (WebCore::SVGSymbolElement::selfHasRelativeLengths):
2002         * svg/SVGSymbolElement.h:
2003         * svg/SVGTextContentElement.cpp:
2004         (WebCore::SVGTextContentElement::selfHasRelativeLengths):
2005         * svg/SVGTextContentElement.h:
2006         * svg/SVGTextPathElement.cpp:
2007         (WebCore::SVGTextPathElement::svgAttributeChanged):
2008         (WebCore::SVGTextPathElement::insertedIntoDocument): Call right base class' method. Skipped one in the hierachy before.
2009         (WebCore::SVGTextPathElement::selfHasRelativeLengths):
2010         * svg/SVGTextPathElement.h:
2011         * svg/SVGTextPositioningElement.cpp:
2012         (WebCore::SVGTextPositioningElement::svgAttributeChanged):
2013         (WebCore::listContainsRelativeValue): New helper funtion that checks wheter a SVGLengthList contains relative lengths.
2014         (WebCore::SVGTextPositioningElement::selfHasRelativeLengths):
2015         * svg/SVGTextPositioningElement.h:
2016         * svg/SVGUseElement.cpp:
2017         (WebCore::SVGUseElement::insertedIntoDocument): Call right base class' method. Skipped on in the hierachy before.
2018         (WebCore::SVGUseElement::removedFromDocument): Ditto.
2019         (WebCore::SVGUseElement::svgAttributeChanged):
2020         (WebCore::SVGUseElement::buildShadowAndInstanceTree): Call updateRelativeLengthsInformation() after building the shadow tree.
2021         (WebCore::SVGUseElement::selfHasRelativeLengths): Same as all other methods, except that it includes the shadow tree root element.
2022         * svg/SVGUseElement.h:
2023
2024 2010-07-05  Pavel Feldman  <pfeldman@chromium.org>
2025
2026         Reviewed by Yury Semikhatsky.
2027
2028         Web Inspector: Problem with copying a code from Scripts panel.
2029
2030         https://bugs.webkit.org/show_bug.cgi?id=40432
2031
2032         * inspector/front-end/TextViewer.js:
2033         (WebInspector.TextViewer.prototype._getSelection):
2034         (WebInspector.TextViewer.prototype._selectionToPosition):
2035
2036 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2037
2038         Reviewed by Dirk Schulze / Darin Adler.
2039
2040         Node.cloneNode does not work on SVG nodes
2041         https://bugs.webkit.org/show_bug.cgi?id=41421
2042
2043         Be sure to synchronize animated SVG properties before checking whether NamedNodeMap exists.
2044         When creating a SVG element from JS, and setting all attributes via SVG DOM, and not using setAttribute
2045         the NamedNodeMap does not exist. When cloning such an element, be sure to synchronize SVG <-> XML DOM
2046         attributes before attempting to clone, otherwhise the SVG animated properties are lost while cloning.
2047
2048         Test: svg/custom/clone-element-with-animated-svg-properties.html
2049
2050         * dom/Element.cpp:
2051         (WebCore::Element::cloneElementWithoutChildren):
2052
2053 2010-07-05  Antti Koivisto  <koivisto@iki.fi>
2054
2055         Revert unplanned project file change.
2056
2057         * WebCore.pri:
2058         * WebCore.pro:
2059
2060 2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2061
2062         Reviewed by Darin Adler.
2063
2064         Memory corruption with SVG <use> element
2065         https://bugs.webkit.org/show_bug.cgi?id=40994
2066
2067         Fix race condition in svgAttributeChanged. Never call svgAttributeChanged() from attributeChanged()
2068         when we're synchronizing SVG attributes. It leads to either unnecessary extra work being done or
2069         crashes. Especially together with <polyline>/<polygon> which always synchronize the SVGAnimatedPoints
2070         datastructure with the points attribute, no matter if there are changes are not. This should be
2071         furhter optimized, but this fix is sane and fixes the root of the evil races.
2072
2073         Test: svg/custom/use-property-synchronization-crash.svg
2074
2075         * svg/SVGElement.cpp:
2076         (WebCore::SVGElement::attributeChanged):
2077
2078 2010-07-05  Yury Semikhatsky  <yurys@chromium.org>
2079
2080         Reviewed by Pavel Feldman.
2081
2082         [v8] Web Inspector: remove v8-specific code dealing with getOwnPropertyNames from InjectedScript.js
2083         https://bugs.webkit.org/show_bug.cgi?id=41595
2084
2085         * inspector/front-end/InjectedScript.js:
2086         (injectedScriptConstructor):
2087
2088 2010-07-04  Rob Buis  <rwlbuis@gmail.com>
2089
2090         Reviewed by Dirk Schulze.
2091
2092         SVG polygons should draw polygons up to the first parsing error
2093         https://bugs.webkit.org/show_bug.cgi?id=41140
2094
2095         Render polygons up until the first parsing error.
2096
2097         Test: svg/custom/poly-parsing-error.html
2098
2099         * svg/SVGPolyElement.cpp:
2100         (WebCore::SVGPolyElement::parseMappedAttribute):
2101
2102 2010-07-04  Alice Liu  <alice.liu@apple.com>
2103
2104         Reviewed by Dan Bernstein.
2105
2106         Crash reading past end of block in UniscribeController::shapeAndPlaceItem
2107         https://bugs.webkit.org/show_bug.cgi?id=41554
2108
2109         Test: platform/win/fast/text/uniscribe-item-boundary-crash.html
2110
2111         * platform/graphics/win/UniscribeController.cpp:
2112         (WebCore::UniscribeController::shapeAndPlaceItem):
2113         Don't look one past the end of str. Instead look to the next item, if applicable.
2114
2115 2010-07-04  Eric Seidel  <eric@webkit.org>
2116
2117         Reviewed by Adam Barth.
2118
2119         Add basic "in table body" mode to support <tr> insertion
2120         https://bugs.webkit.org/show_bug.cgi?id=41587
2121
2122         This also adds a (currently untestable?)
2123         popUntilTableBodyScopeMarker code path.
2124         Any tags which would be between a tbody a <tr> would end up
2125         foster parented outside the <table>.  I think the spec was
2126         just being over-cautious with popUntilTableBodyScopeMarker.
2127
2128         * html/HTMLElementStack.cpp:
2129         (WebCore::HTMLNames::isTableScopeMarker):
2130         (WebCore::HTMLNames::isTableBodyScopeMarker):
2131         (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
2132         * html/HTMLElementStack.h:
2133         * html/HTMLTreeBuilder.cpp:
2134         (WebCore::HTMLTreeBuilder::processStartTag):
2135         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2136
2137 2010-07-04  Anders Carlsson  <andersca@apple.com>
2138
2139         Fix Windows build.
2140
2141         * WebCore.vcproj/WebCore.vcproj:
2142
2143 2010-07-04  Eric Seidel  <eric@webkit.org>
2144
2145         Reviewed by Adam Barth.
2146
2147         HTMLTreeBuilder needs an adoption agency
2148         https://bugs.webkit.org/show_bug.cgi?id=41453
2149
2150         Fix Qt Minimal build.  SVGNames.h should always
2151         be generated, even when SVG is off, however that's
2152         not how things currently work.
2153
2154         * html/HTMLTreeBuilder.cpp:
2155
2156 2010-07-04  Eric Seidel  <eric@webkit.org>
2157
2158         Reviewed by Adam Barth.
2159
2160         Add a very basic InTable insertion mode
2161         https://bugs.webkit.org/show_bug.cgi?id=41581
2162
2163         There is still a bunch of low-hanging fruit left for this
2164         mode, but even this most-basic support lets us pass 6 more tests. :)
2165
2166         It's a progression, ship it! :)
2167
2168         * html/HTMLElementStack.cpp:
2169         (WebCore::HTMLNames::isScopeMarker):
2170         (WebCore::HTMLNames::isListItemScopeMarker):
2171         (WebCore::HTMLNames::isTableScopeMarker):
2172         (WebCore::HTMLElementStack::popUntilTableScopeMarker):
2173         * html/HTMLElementStack.h:
2174         * html/HTMLFormattingElementList.cpp:
2175         (WebCore::HTMLFormattingElementList::appendMarker):
2176         * html/HTMLFormattingElementList.h:
2177         * html/HTMLTreeBuilder.cpp:
2178         (WebCore::HTMLTreeBuilder::processStartTag):
2179         * html/HTMLTreeBuilder.h:
2180
2181 2010-07-01  Eric Seidel  <eric@webkit.org>
2182
2183         Reviewed by Adam Barth.
2184
2185         HTMLTreeBuilder needs an adoption agency
2186         https://bugs.webkit.org/show_bug.cgi?id=41453
2187
2188         This changes some test results, but only makes the simplest
2189         adoption agency cases pass.  I think the code is likely
2190         very close, but further iteration to make this change larger
2191         seems counter-productive.  I recommend we check in this
2192         progression and work from here.
2193
2194         * dom/ContainerNode.cpp:
2195         (WebCore::ContainerNode::addChildCommon):
2196          - Make sure callers don't assume this will reparent.
2197         (WebCore::ContainerNode::parserAddChild):
2198          - Update comment to document lack of reparenting behavior.
2199         * html/HTMLElementStack.cpp:
2200         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
2201         (WebCore::HTMLElementStack::ElementRecord::~ElementRecord):
2202         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
2203         (WebCore::HTMLElementStack::ElementRecord::isAbove):
2204          - Added for debugging.
2205         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
2206         (WebCore::HTMLElementStack::insertAbove):
2207          - Needed for the adoption agency.
2208         (WebCore::HTMLElementStack::topRecord):
2209         (WebCore::HTMLElementStack::bottom):
2210         (WebCore::HTMLElementStack::removeHTMLHeadElement):
2211         (WebCore::HTMLElementStack::remove):
2212         (WebCore::HTMLElementStack::find):
2213         (WebCore::HTMLElementStack::topmost):
2214         (WebCore::HTMLElementStack::contains):
2215         (WebCore::HTMLElementStack::htmlElement):
2216         (WebCore::HTMLElementStack::headElement):
2217         (WebCore::HTMLElementStack::bodyElement):
2218         (WebCore::HTMLElementStack::pushCommon):
2219         (WebCore::HTMLElementStack::removeNonTopCommon):
2220          - Fix the name to match top/bottom.
2221         * html/HTMLElementStack.h:
2222         (WebCore::HTMLElementStack::ElementRecord::element):
2223         (WebCore::HTMLElementStack::ElementRecord::next):
2224         (WebCore::HTMLElementStack::ElementRecord::releaseNext):
2225         (WebCore::HTMLElementStack::ElementRecord::setNext):
2226         * html/HTMLFormattingElementList.cpp:
2227         (WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
2228         (WebCore::HTMLFormattingElementList::contains):
2229         (WebCore::HTMLFormattingElementList::find):
2230         (WebCore::HTMLFormattingElementList::remove):
2231         * html/HTMLFormattingElementList.h:
2232         (WebCore::HTMLFormattingElementList::isEmpty):
2233         (WebCore::HTMLFormattingElementList::size):
2234         * html/HTMLTreeBuilder.cpp:
2235         (WebCore::HTMLTreeBuilder::processStartTag):
2236         (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
2237          - Part of the Adoption Agency algorithm.
2238         (WebCore::HTMLTreeBuilder::findFosterParentFor):
2239          - Used to move mis-nested content out of tables.
2240            This doesn't seem to work quite right yet.
2241         (WebCore::HTMLTreeBuilder::reparentChildren):
2242         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2243          - The ridiculously long/complicated adoption agency algorithm from HTML5.
2244         (WebCore::HTMLTreeBuilder::processEndTag):
2245         * html/HTMLTreeBuilder.h:
2246
2247 2010-07-04  Justin Schuh  <jschuh@chromium.org>
2248
2249         Reviewed by Darin Adler.
2250
2251         Remove custom src bindings for HTMLFrameElement and HTMLIFrameElement
2252         https://bugs.webkit.org/show_bug.cgi?id=41578
2253
2254         Remove bindings obsoleted by: http://trac.webkit.org/changeset/59866
2255         No new tests because behavior is not changed.
2256
2257         * Android.jscbindings.mk:
2258         * Android.v8bindings.mk:
2259         * CMakeLists.txt:
2260         * GNUmakefile.am:
2261         * WebCore.gypi:
2262         * WebCore.pro:
2263         * WebCore.vcproj/WebCore.vcproj:
2264         * WebCore.xcodeproj/project.pbxproj:
2265         * bindings/js/JSBindingsAllInOne.cpp:
2266         * bindings/js/JSHTMLFrameElementCustom.cpp:
2267         * bindings/js/JSHTMLIFrameElementCustom.cpp: Removed.
2268         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
2269         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: Removed.
2270         * html/HTMLFrameElement.idl:
2271         * html/HTMLIFrameElement.idl:
2272
2273 2010-07-03  Adam Barth  <abarth@webkit.org>
2274
2275         Reviewed by Maciej Stachowiak.
2276
2277         Implement AfterAfterFramesetMode
2278         https://bugs.webkit.org/show_bug.cgi?id=41561
2279
2280         This mode is almost unobservable.  The main way to observe it seems to
2281         be seeing where comment nodes get attached to the DOM.
2282
2283         * html/HTMLTreeBuilder.cpp:
2284         (WebCore::HTMLTreeBuilder::processStartTag):
2285         (WebCore::HTMLTreeBuilder::processEndTag):
2286         (WebCore::HTMLTreeBuilder::processComment):
2287         (WebCore::HTMLTreeBuilder::processCharacter):
2288         (WebCore::HTMLTreeBuilder::processEndOfFile):
2289
2290 2010-07-03  Zhenyao Mo  <zmo@google.com>
2291
2292         Reviewed by Dimitri Glazkov.
2293
2294         WebGLRenderingContext::vertexAttrib* leads to possible out-of-range vector member visit
2295         https://bugs.webkit.org/show_bug.cgi?id=41572
2296
2297         * html/canvas/WebGLRenderingContext.cpp: Fix the out-of-range vector member visit, also refactor the code.
2298         (WebCore::WebGLRenderingContext::vertexAttrib1f):
2299         (WebCore::WebGLRenderingContext::vertexAttrib1fv):
2300         (WebCore::WebGLRenderingContext::vertexAttrib2f):
2301         (WebCore::WebGLRenderingContext::vertexAttrib2fv):
2302         (WebCore::WebGLRenderingContext::vertexAttrib3f):
2303         (WebCore::WebGLRenderingContext::vertexAttrib3fv):
2304         (WebCore::WebGLRenderingContext::vertexAttrib4f):
2305         (WebCore::WebGLRenderingContext::vertexAttrib4fv):
2306         (WebCore::WebGLRenderingContext::vertexAttribfImpl):
2307         (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
2308         * html/canvas/WebGLRenderingContext.h: Helper function declaration.
2309
2310 2010-07-03  Jeremy Orlow  <jorlow@chromium.org>
2311
2312         Ugh.  Have to put the destructor in the .h file since the .ccp isn't compiled yet.
2313
2314         * storage/IDBKey.h:
2315         (WebCore::IDBKey::~IDBKey):
2316
2317 2010-07-03  Jeremy Orlow  <jorlow@chromium.org>
2318
2319         Build fix.  Forgot destructor.
2320
2321         * storage/IDBKey.cpp:
2322         (WebCore::IDBKey::~IDBKey):
2323
2324 2010-06-26  Jeremy Orlow  <jorlow@chromium.org>
2325
2326         Reviewed by Dumitru Daniliuc.
2327
2328         Support for keys and in-memory storage for IndexedDB
2329         https://bugs.webkit.org/show_bug.cgi?id=41252
2330
2331         It'll take some time to get data persistence working for IndexedDB,
2332         so until then, we'll just store everything in an in memory tree.
2333         The tree uses WTF::AVLTree and is a template so that it can be used by
2334         object stores (IDBKey -> SerializedScriptValue) and indexes (IDBKey ->
2335         IDBKey).  This class will be used in a subsequent patch.
2336
2337         Also add an IDBKey type that represents one of these keys.  We use a
2338         custom toJS function in a way similar to IDBAny to convert from WebCore
2339         to a JS value.  For converting the other way, we have to teach the code
2340         generators what to do (unfortunately).  This is done in a way similar
2341         to serialized script value.  Unlike serialized script value, IDBKey is
2342         in WebCore and only a helper function is JS engine specific.
2343
2344         This code is not accessable from layout tests.  (Will fix in
2345         https://bugs.webkit.org/show_bug.cgi?id=41250)  The bindings tests
2346         show us that the generated bindings are what we expect.
2347
2348         * ForwardingHeaders/wtf/AVLTree.h: Added.
2349         * bindings/js/IDBBindingUtilities.cpp: Added.
2350         (WebCore::createIDBKeyFromValue):
2351         * bindings/js/IDBBindingUtilities.h: Added.
2352         * bindings/js/JSIDBKeyCustom.cpp: Added.
2353         (WebCore::toJS):
2354         * bindings/scripts/CodeGeneratorJS.pm:
2355         * bindings/scripts/CodeGeneratorV8.pm:
2356         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2357         (WebDOMTestObj::idbKey):
2358         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2359         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2360         (webkit_dom_test_obj_idb_key):
2361         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2362         * bindings/scripts/test/JS/JSTestObj.cpp:
2363         (WebCore::):
2364         (WebCore::jsTestObjPrototypeFunctionIdbKey):
2365         * bindings/scripts/test/JS/JSTestObj.h:
2366         * bindings/scripts/test/ObjC/DOMTestObj.h:
2367         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2368         (-[DOMTestObj idbKey:]):
2369         * bindings/scripts/test/TestObj.idl:
2370         * bindings/scripts/test/V8/V8TestObj.cpp:
2371         (WebCore::TestObjInternal::idbKeyCallback):
2372         (WebCore::):
2373         * bindings/v8/IDBBindingUtilities.cpp: Added.
2374         (WebCore::createIDBKeyFromValue):
2375         * bindings/v8/IDBBindingUtilities.h: Added.
2376         * bindings/v8/custom/V8IDBKeyCustom.cpp: Added.
2377         (WebCore::toV8):
2378         * storage/IDBCallbacks.h:
2379         * storage/IDBKey.cpp: Added.
2380         (WebCore::IDBKey::IDBKey):
2381         (WebCore::IDBKey::~IDBKey):
2382         * storage/IDBKey.h: Added.
2383         (WebCore::IDBKey::create):
2384         (WebCore::IDBKey::):
2385         (WebCore::IDBKey::type):
2386         (WebCore::IDBKey::string):
2387         (WebCore::IDBKey::number):
2388         * storage/IDBKey.idl: Added.
2389         * storage/IDBKeyTree.h: Added.
2390         (WebCore::IDBKeyTree::create):
2391         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_less):
2392         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_less):
2393         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_greater):
2394         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_greater):
2395         (WebCore::IDBKeyTree::AVLTreeAbstractor::get_balance_factor):
2396         (WebCore::IDBKeyTree::AVLTreeAbstractor::set_balance_factor):
2397         (WebCore::IDBKeyTree::AVLTreeAbstractor::null):
2398         (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_key_node):
2399         (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_node_node):
2400         (WebCore::::IDBKeyTree):
2401         (WebCore::::~IDBKeyTree):
2402         (WebCore::::AVLTreeAbstractor::compare_key_key):
2403         (WebCore::::get):
2404         (WebCore::::insert):
2405         (WebCore::::remove):
2406
2407 2010-07-03  Jon Honeycutt  <jhoneycutt@apple.com>
2408
2409         The missing plug-in indicator should be clickable
2410
2411         https://bugs.webkit.org/show_bug.cgi?id=41550
2412         <rdar://problem/8132162>
2413
2414         From an original patch by Kevin Decker.
2415
2416         Reviewed by Darin Adler.
2417
2418         * html/HTMLPlugInElement.cpp:
2419         (WebCore::HTMLPlugInElement::defaultEventHandler):
2420         If the renderer is a RenderEmbeddedWidget showing the missing plug-in
2421         indicator, and the event is a click even, call the ChromeClient's
2422         missingPluginButtonClicked() function.
2423
2424         * page/ChromeClient.h:
2425         (WebCore::ChromeClient::missingPluginButtonClicked):
2426         Declare missingPluginButtonClicked(), and stub the default
2427         implementation.
2428
2429         * rendering/RenderEmbeddedObject.cpp:
2430         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
2431         Initialize m_showsMissingPluginIndicator.
2432         (WebCore::RenderEmbeddedObject::setShowsMissingPluginIndicator):
2433         Assert that we're not currently showing any replacement text. Set
2434         m_showsMissingPluginIndicator after setting the replacement text.
2435         (WebCore::RenderEmbeddedObject::setShowsCrashedPluginIndicator):
2436         Add the same assert as above.
2437
2438         * rendering/RenderEmbeddedObject.h:
2439         (WebCore::RenderEmbeddedObject::showsMissingPluginIndicator):
2440         Getter for m_showsMissingPluginIndicator.
2441
2442 2010-07-02  Oliver Hunt  <oliver@apple.com>
2443
2444         Reviewed by Geoffrey Garen.
2445
2446         Move BOM handling out of the lexer and parser
2447         https://bugs.webkit.org/show_bug.cgi?id=41539
2448
2449         Update WebCore to ensure that SourceProviders don't
2450         produce strings with BOMs in them.
2451
2452         * bindings/js/ScriptSourceProvider.h:
2453         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
2454         * bindings/js/StringSourceProvider.h:
2455         (WebCore::StringSourceProvider::StringSourceProvider):
2456         * loader/CachedScript.cpp:
2457         (WebCore::CachedScript::CachedScript):
2458         (WebCore::CachedScript::script):
2459         * loader/CachedScript.h:
2460         (WebCore::CachedScript::):
2461           CachedScript now stores decoded data with the BOMs stripped,
2462           and caches the presence of BOMs across memory purges.
2463
2464 2010-07-03  Xan Lopez  <xlopez@igalia.com>
2465
2466         Include DerivedSources/WebCore before DerivedSources/
2467
2468         Recently DerivedSources generation was changed, with some files no
2469         longer being generated in the toplevel DerivedSources
2470         directory. Since that directory is first in the -I flags the build
2471         can be broken in some cases by including old files unless a 'make
2472         clean' is done. Change the -I order to fix the build in the 32 bit
2473         Release bot.
2474
2475         * GNUmakefile.am:
2476
2477 2010-07-03  Erik Arvidsson  <arv@chromium.org>
2478
2479         Reviewed by Ojan Vafai.
2480
2481         Fix issue where a contextmenu event was reporting the wrong target if
2482         the context menu was shown due to pressing the context menu key
2483         (or Shift+F10).
2484         
2485         Split sendContextMenuForEvent into one case for keyboard events and use
2486         that when the contextmenu event should be dispatched due to a keypress.
2487
2488         For the keboard case we now use the focused node as the target for the
2489         event and use the clipped rect to determine the position of the menu.
2490         
2491         https://bugs.webkit.org/show_bug.cgi?id=38129
2492
2493         Use manual test since DRT does not handle context menu keys.
2494
2495         * manual-tests/win/contextmenu-key.html: Added.
2496         * page/EventHandler.cpp:
2497         (WebCore::EventHandler::sendContextMenuEvent):
2498         (WebCore::EventHandler::sendContextMenuEventForKey):
2499         * page/EventHandler.h:
2500
2501 2010-07-03  Dirk Schulze  <krit@webkit.org>
2502
2503         Unreviewed sort of XCode project file.
2504
2505         * WebCore.xcodeproj/project.pbxproj:
2506
2507 2010-07-03  Kwang Yul Seo  <skyul@company100.net>
2508
2509         Reviewed by Kent Tamura.
2510
2511         [BREWMP] Port Widget
2512         https://bugs.webkit.org/show_bug.cgi?id=41538
2513
2514         Make Widget a dummy class. WebKit Brew MP uses the full screen mode
2515         and does not use the window system introduced in Brew MP.
2516
2517         * platform/Widget.h:
2518         * platform/brew/WidgetBrew.cpp: Added.
2519         (WebCore::Widget::Widget):
2520         (WebCore::Widget::~Widget):
2521         (WebCore::Widget::frameRect):
2522         (WebCore::Widget::setFrameRect):
2523         (WebCore::Widget::setFocus):
2524         (WebCore::Widget::setCursor):
2525         (WebCore::Widget::show):
2526         (WebCore::Widget::hide):
2527         (WebCore::Widget::paint):
2528         (WebCore::Widget::setIsSelected):
2529
2530 2010-07-03  Adam Barth  <abarth@webkit.org>
2531
2532         Reviewed by Eric Seidel.
2533
2534         Implement AfterFramesetMode
2535         https://bugs.webkit.org/show_bug.cgi?id=41560
2536
2537         * html/HTMLTreeBuilder.cpp:
2538         (WebCore::HTMLTreeBuilder::processStartTag):
2539         (WebCore::HTMLTreeBuilder::processEndTag):
2540         (WebCore::HTMLTreeBuilder::processCharacter):
2541         (WebCore::HTMLTreeBuilder::processEndOfFile):
2542
2543 2010-07-02  Adam Barth  <abarth@webkit.org>
2544
2545         Reviewed by Eric Seidel.
2546
2547         Implement InFramesetMode
2548         https://bugs.webkit.org/show_bug.cgi?id=41559
2549
2550         Pretty straighforward.  We still don't handle character tokens
2551         correctly.
2552
2553         * html/HTMLTreeBuilder.cpp:
2554         (WebCore::HTMLTreeBuilder::processStartTag):
2555         (WebCore::HTMLTreeBuilder::processEndTag):
2556         (WebCore::HTMLTreeBuilder::processCharacter):
2557         (WebCore::HTMLTreeBuilder::processEndOfFile):
2558
2559 2010-07-02  Adam Barth  <abarth@webkit.org>
2560
2561         Reviewed by Eric Seidel.
2562
2563         Handle <frameset> InBody
2564         https://bugs.webkit.org/show_bug.cgi?id=41558
2565
2566         Handling the <frameset> tag in the InBody mode is somewhat delicate.
2567
2568         * html/HTMLElementStack.cpp:
2569         (WebCore::HTMLElementStack::popHTMLBodyElement):
2570         (WebCore::HTMLElementStack::popUntil):
2571         (WebCore::HTMLElementStack::popCommon):
2572         * html/HTMLElementStack.h:
2573         * html/HTMLTreeBuilder.cpp:
2574         (WebCore::HTMLTreeBuilder::processStartTag):
2575
2576 2010-07-02  Adam Barth  <abarth@webkit.org>
2577
2578         Reviewed by Eric Seidel.
2579
2580         Special handling of <rp> and <rt> tags
2581         https://bugs.webkit.org/show_bug.cgi?id=41557
2582
2583         So sayeth the spec.
2584
2585         * html/HTMLTreeBuilder.cpp:
2586         (WebCore::HTMLTreeBuilder::processStartTag):
2587
2588 2010-07-02  Adam Barth  <abarth@webkit.org>
2589
2590         Reviewed by Eric Seidel.
2591
2592         Implement special optgroup processing
2593         https://bugs.webkit.org/show_bug.cgi?id=41556
2594
2595         * html/HTMLTreeBuilder.cpp:
2596         (WebCore::HTMLTreeBuilder::processStartTag):
2597
2598 2010-07-02  Adam Barth  <abarth@webkit.org>
2599
2600         Reviewed by Eric Seidel.
2601
2602         Handle <image> in new parser
2603         https://bugs.webkit.org/show_bug.cgi?id=41555
2604
2605         This patch is kind of goofy but apparently how the world works.
2606
2607         * html/HTMLToken.h:
2608         (WebCore::AtomicHTMLToken::setName):
2609         * html/HTMLTreeBuilder.cpp:
2610         (WebCore::HTMLTreeBuilder::processStartTag):
2611
2612 2010-07-02  Kwang Yul Seo  <skyul@company100.net>
2613
2614         Reviewed by Alexey Proskuryakov.
2615
2616         Remove extra semicolon at the end of HTMLTreeBuilder::attach
2617         https://bugs.webkit.org/show_bug.cgi?id=41546
2618
2619         This is not critical, but the extra semicolon at the end of HTMLTreeBuilder::attach
2620         causes a warning in RVCT.
2621
2622         * html/HTMLTreeBuilder.h:
2623         (WebCore::HTMLTreeBuilder::attach):
2624
2625 2010-07-02  Tony Gentilcore  <tonyg@chromium.org>
2626
2627         Reviewed by Darin Adler.
2628
2629         Performance::disconnectFrame() needs to disconnect its children
2630         https://bugs.webkit.org/show_bug.cgi?id=41533
2631
2632         No new tests because no new functionality.
2633
2634         * page/Performance.cpp:
2635         (WebCore::Performance::disconnectFrame):
2636
2637 2010-07-02  Luiz Agostini  <luiz.agostini@openbossa.org>
2638
2639         Reviewed by Sam Weinig.
2640
2641         Checking if WTF_USE_JSC is defined before redefining it in config.h
2642         https://bugs.webkit.org/show_bug.cgi?id=41530
2643
2644         * config.h:
2645
2646 2010-07-02  Tony Gentilcore  <tonyg@chromium.org>
2647
2648         Reviewed by Dimitri Glazkov.
2649
2650         Add vendor prefix to window.performance
2651         https://bugs.webkit.org/show_bug.cgi?id=41525
2652
2653         No new tests because window.performance tests not landed yet.
2654
2655         * page/DOMWindow.cpp:
2656         (WebCore::DOMWindow::webkitPerformance):
2657         * page/DOMWindow.h:
2658         (WebCore::DOMWindow::optionalWebkitPerformance):
2659         * page/DOMWindow.idl:
2660
2661 2010-07-02  Zoltan Herczeg  <zherczeg@webkit.org>
2662
2663         Reviewed by Oliver Hunt.
2664
2665         Minor fix: Diffuse constant is float (not integer)
2666         https://bugs.webkit.org/show_bug.cgi?id=10412
2667
2668         * svg/SVGFEDiffuseLightingElement.cpp:
2669         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
2670
2671 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
2672
2673         Unreviewed.
2674
2675         Build fix for GTK+. Try to force a rebuild of the HTMLNames.h
2676         file first by touching HTMLTagNames.in.
2677
2678         * html/HTMLTagNames.in:
2679
2680 2010-07-02  Andreas Kling  <andreas.kling@nokia.com>
2681
2682         Reviewed by Oliver Hunt.
2683
2684         RGB colors should be clamped to the 0-255 range
2685         https://bugs.webkit.org/show_bug.cgi?id=39482
2686
2687         Spec link:
2688         http://www.whatwg.org/specs/web-apps/current-work/#colors
2689
2690         Test: fast/canvas/canvas-color-clamping.html
2691
2692         * css/CSSParser.cpp:
2693         (WebCore::parseColorInt):
2694         (WebCore::CSSParser::parseColor):
2695         (WebCore::parseColorIntFromValue):
2696         (WebCore::CSSParser::parseColorParameters):
2697
2698 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
2699
2700         Unreviewed, rolling out r62410.
2701         http://trac.webkit.org/changeset/62410
2702         https://bugs.webkit.org/show_bug.cgi?id=41549
2703
2704         accursed last minute changes (Requested by olliej on #webkit).
2705
2706         * bindings/js/ScriptSourceProvider.h:
2707         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
2708         * bindings/js/StringSourceProvider.h:
2709         (WebCore::StringSourceProvider::StringSourceProvider):
2710         * loader/CachedScript.cpp:
2711         (WebCore::CachedScript::CachedScript):
2712         (WebCore::CachedScript::script):
2713         * loader/CachedScript.h:
2714
2715 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
2716
2717         Unreviewed.
2718
2719         Further Build fix for GTK+. Also include HTMLElementFactory.h in
2720         the list of dependencies.
2721
2722         * GNUmakefile.am:
2723
2724 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
2725
2726         Unreviewed.
2727
2728         Build fix for GTK+. *Names.{cpp,h} targets should now include the
2729         header files. Also adds the header files to the generated sources list.
2730
2731         * GNUmakefile.am:
2732
2733 2010-07-02  Dumitru Daniliuc  <dumi@chromium.org>
2734
2735         Reviewed by Darin Fisher.
2736
2737         DB clean up.
2738         https://bugs.webkit.org/show_bug.cgi?id=41404
2739
2740         1. Made all DatabaseTasks internal classes of Database and made
2741            the Database methods called by those tasks private.
2742         2. Removed the Database::stop{ed}() methods.
2743         3. Removed the code that kept track of open databases from
2744            ScriptExecutionContext (no longer needed).
2745         4. Made minor changes to Database::closeImmediately() to make it
2746            possible for DatabaseThread to call that method instead of
2747            close().
2748         5. Minor fix to DatabaseTracker: addOpenDatabase() should call
2749            OriginQuotaManager::addDatabase() if the origin quota manager
2750            is not tracking this origin.
2751         6. Removed Database::performPolicyChecks(). We already update the
2752            DB size after each transaction, and we enforce a max size for
2753            the DB at the beginning of each transaction.
2754
2755         * dom/ScriptExecutionContext.cpp:
2756         (WebCore::ScriptExecutionContext::stopDatabases):
2757         * dom/ScriptExecutionContext.h:
2758         (WebCore::ScriptExecutionContext::hasOpenDatabases):
2759         * storage/Database.cpp:
2760         (WebCore::Database::openDatabase):
2761         (WebCore::Database::Database):
2762         (WebCore::Database::markAsDeletedAndClose):
2763         (WebCore::Database::close):
2764         (WebCore::Database::closeImmediately):
2765         * storage/Database.h:
2766         * storage/DatabaseTask.cpp:
2767         (WebCore::DatabaseTask::performTask):
2768         (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
2769         (WebCore::Database::DatabaseOpenTask::doPerformTask):
2770         (WebCore::Database::DatabaseOpenTask::debugTaskName):
2771         (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
2772         (WebCore::Database::DatabaseCloseTask::doPerformTask):
2773         (WebCore::Database::DatabaseCloseTask::debugTaskName):
2774         (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
2775         (WebCore::Database::DatabaseTransactionTask::doPerformTask):
2776         (WebCore::Database::DatabaseTransactionTask::debugTaskName):
2777         (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
2778         (WebCore::Database::DatabaseTableNamesTask::doPerformTask):
2779         (WebCore::Database::DatabaseTableNamesTask::debugTaskName):
2780         * storage/DatabaseTask.h:
2781         (WebCore::Database::DatabaseOpenTask::create):
2782         (WebCore::Database::DatabaseCloseTask::create):
2783         (WebCore::Database::DatabaseTransactionTask::create):
2784         (WebCore::Database::DatabaseTableNamesTask::create):
2785         * storage/DatabaseThread.cpp:
2786         (WebCore::DatabaseThread::databaseThread):
2787         * storage/DatabaseTracker.cpp:
2788         (WebCore::DatabaseTracker::addOpenDatabase):
2789         * storage/SQLTransaction.cpp:
2790         (WebCore::SQLTransaction::executeSQL):
2791         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
2792
2793 2010-07-02  Oliver Hunt  <oliver@apple.com>
2794
2795         Reviewed by Geoffrey Garen.
2796
2797         Move BOM handling out of the lexer and parser
2798         https://bugs.webkit.org/show_bug.cgi?id=41539
2799
2800         Update WebCore to ensure that SourceProviders don't
2801         produce strings with BOMs in them.
2802
2803         * bindings/js/ScriptSourceProvider.h:
2804         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
2805         * bindings/js/StringSourceProvider.h:
2806         (WebCore::StringSourceProvider::StringSourceProvider):
2807         * loader/CachedScript.cpp:
2808         (WebCore::CachedScript::CachedScript):
2809         (WebCore::CachedScript::script):
2810         * loader/CachedScript.h:
2811         (WebCore::CachedScript::):
2812           CachedScript now stores decoded data with the BOMs stripped,
2813           and caches the presence of BOMs across memory purges.
2814
2815 2010-07-02  Sam Weinig  <sam@webkit.org>
2816
2817         Add missing symbol to exports file.
2818
2819         * WebCore.base.exp:
2820
2821 2010-07-02  Abhishek Arya  <inferno@chromium.org>
2822
2823         Reviewed by Darin Fisher.
2824
2825         Remove the extra setFailed() call in JPEG decoder to prevent
2826         re-using an already freed object.
2827         https://bugs.webkit.org/show_bug.cgi?id=41487
2828
2829         Test: fast/images/large-size-image-crash.html
2830
2831         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
2832         (WebCore::JPEGImageReader::decode):
2833
2834 2010-07-02  Peter Beverloo  <peter@lvp-media.com>
2835
2836         Reviewed by Maciej Stachowiak.
2837
2838         Add the HTML5 <mark> element. Text content of the element will have
2839         a yellow background color and black text.
2840
2841         Test: fast/html/mark-element.html
2842         Tests for <p> closing, phrasing child content and residual style.
2843
2844         * css/html.css:
2845         (mark):
2846         * html/HTMLElement.cpp:
2847         (WebCore::inlineTagList):
2848         * html/HTMLTagNames.in:
2849         * html/LegacyHTMLTreeBuilder.cpp:
2850         (WebCore::LegacyHTMLTreeBuilder::getNode):
2851         (WebCore::LegacyHTMLTreeBuilder::isInline):
2852         (WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag):
2853
2854 2010-07-02  Zhenyao Mo  <zmo@google.com>
2855
2856         Reviewed by Dimitri Glazkov.
2857
2858         Fix issues in boundary situations for WebGLRenderingContext::drawArrays/drawElements
2859         https://bugs.webkit.org/show_bug.cgi?id=41473
2860
2861         * WebCore.gypi: Add CheckedInt.h.
2862         * WebCore.xcodeproj/project.pbxproj: Add CheckedInt.h.
2863         * html/canvas/CheckedInt.h: Added support of safe integer operations.
2864         (mozilla::CheckedInt_internal::integer_type_manually_recorded_info::):
2865         (mozilla::CheckedInt_internal::is_unsupported_type::):
2866         (mozilla::CheckedInt_internal::):
2867         (mozilla::CheckedInt_internal::integer_traits::):
2868         (mozilla::CheckedInt_internal::integer_traits::min):
2869         (mozilla::CheckedInt_internal::integer_traits::max):
2870         (mozilla::CheckedInt_internal::has_sign_bit):
2871         (mozilla::CheckedInt_internal::binary_complement):
2872         (mozilla::CheckedInt_internal::is_in_range):
2873         (mozilla::CheckedInt_internal::is_add_valid):
2874         (mozilla::CheckedInt_internal::is_sub_valid):
2875         (mozilla::CheckedInt_internal::is_mul_valid):
2876         (mozilla::CheckedInt_internal::is_div_valid):
2877         (mozilla::CheckedInt::CheckedInt):
2878         (mozilla::CheckedInt::value):
2879         (mozilla::CheckedInt::valid):
2880         (mozilla::CheckedInt::operator -):
2881         (mozilla::CheckedInt::operator ==):
2882         (mozilla::CheckedInt::operator !=):
2883         (mozilla::operator /):
2884         (mozilla::cast_to_CheckedInt_impl::run):
2885         (mozilla::):
2886         (mozilla::cast_to_CheckedInt):
2887         (mozilla::operator ==):
2888         * html/canvas/WebGLRenderingContext.cpp:
2889         (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Fix a bug against 0-size buffer situation.
2890         (WebCore::WebGLRenderingContext::drawArrays): Deal with overflows and count==0 situation.
2891         (WebCore::WebGLRenderingContext::drawElements): Deal with count==0 situation.
2892
2893 2010-07-02  Zhenyao Mo  <zmo@google.com>
2894
2895         Reviewed by Dimitri Glazkov.
2896
2897         linkProgram should fail when vertex/fragment shaders are not both present
2898         https://bugs.webkit.org/show_bug.cgi?id=41380
2899
2900         Test: fast/canvas/webgl/program-test.html
2901
2902         * html/canvas/WebGLProgram.cpp: Add flag for link failure due to missing shaders.
2903         (WebCore::WebGLProgram::WebGLProgram):
2904         * html/canvas/WebGLProgram.h: Add interface for linkFailure flag.
2905         (WebCore::WebGLProgram::isLinkFailureFlagSet):
2906         (WebCore::WebGLProgram::setLinkFailureFlag):
2907         * html/canvas/WebGLRenderingContext.cpp:
2908         (WebCore::WebGLRenderingContext::getProgramParameter): Intercept when linkFailureFlag is set.
2909         (WebCore::WebGLRenderingContext::linkProgram): Check if there are missing shaders and don't link if yes.
2910         * html/canvas/WebGLShader.cpp: Cache shader type.
2911         (WebCore::WebGLShader::WebGLShader):
2912         * html/canvas/WebGLShader.h: Ditto.
2913         (WebCore::WebGLShader::getType):
2914
2915 2010-07-02  Qi Zhang  <qi.2.zhang@nokia.com>
2916
2917         Reviewed by Laszlo Gombos.
2918
2919         [Qt]  Failed on http://philip.html5.org/tests/canvas/suite/tests/2d.drawImage.negativesource.html
2920
2921         Support negative width and height in canvas image draw
2922
2923         * platform/graphics/FloatRect.h:
2924         * platform/graphics/qt/FloatRectQt.cpp:
2925         (WebCore::FloatRect::normalized):
2926         * platform/graphics/qt/ImageQt.cpp:
2927         (WebCore::BitmapImage::draw):
2928
2929 2010-06-24  Dimitri Glazkov  <dglazkov@chromium.org>
2930
2931         Reviewed by Alexey Proskuryakov.
2932
2933         REGRESSION: Enter does not trigger submit of forms when focus is on select.
2934         https://bugs.webkit.org/show_bug.cgi?id=39532
2935
2936         Restore behavior where hitting "Enter" on a select element attempts to submit
2937         form implicitly.
2938
2939         * dom/SelectElement.cpp:
2940         (WebCore::SelectElement::menuListDefaultEventHandler): Added htmlForm argument,
2941             and attempting to submit implicitly.
2942         (WebCore::SelectElement::listBoxDefaultEventHandler): Ditto.
2943         (WebCore::SelectElement::defaultEventHandler): Plumbed through htmlForm argument.
2944         * dom/SelectElement.h: Added htmlForm argument to method declaration.
2945         * html/HTMLSelectElement.cpp:
2946         (WebCore::HTMLSelectElement::defaultEventHandler): Changed to provide submitting form
2947             as the argument.
2948
2949 2010-07-02  Kent Tamura  <tkent@chromium.org>
2950
2951         Reviewed by Darin Fisher.
2952
2953         [Chromium] Support indeterminate checkbox for Linux, and a small fix for Windows
2954         https://bugs.webkit.org/show_bug.cgi?id=41508
2955
2956         * rendering/RenderThemeChromiumSkia.cpp:
2957         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
2958           Use dedicated images for indeterminate states.
2959         * rendering/RenderThemeChromiumWin.cpp:
2960         (WebCore::RenderThemeChromiumWin::determineClassicState):
2961           Do not use DFCS_CHECKED in a case of indeterminate state in
2962           order to have consistent appearance of indeterminate checkbox.
2963
2964 2010-07-02  Brent Fulgham  <bfulgham@webkit.org>
2965
2966         Reviewed by Gustavo Noronha Silva.
2967
2968         Fixes https://bugs.webkit.org/show_bug.cgi?id=41323.
2969         Provides an implementation of the 'squiggle' used for
2970         bad grammar or spelling, based on the Pango logic used
2971         by the GTK builds.
2972
2973         No new tests. Covered by LayoutTests/editing/spelling
2974
2975         * WebCore.vcproj/WebCore.vcproj: Add new file holding underline
2976         implementation, set to build only for WinCairo port.
2977         * platform/graphics/cairo/DrawErrorUnderline.cpp: Added.
2978         (drawErrorUnderline): New file containing the squiggle drawing
2979         logic based on the Pango implementation.  Placed in its own file
2980         to isolate licenses.
2981         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2982         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
2983         Have WinCairo build call new 'drawErrorUnderline' implementation.
2984
2985 2010-07-02  Martin Robinson  <mrobinson@igalia.com>
2986
2987         Reviewed by Gustavo Noronha Silva.
2988
2989         [GTK] Separate DerivedSources per-project
2990         https://bugs.webkit.org/show_bug.cgi?id=41109
2991
2992         Generate WebCore derived sources in <builddir>/DerivedSources/WebCore.
2993
2994         * GNUmakefile.am:
2995
2996 2010-07-02  Zhenyao Mo  <zmo@google.com>
2997
2998         Reviewed by Dimitri Glazkov.
2999
3000         Implement OpenGL ES 2.0 semantics for vertex attribute 0
3001         https://bugs.webkit.org/show_bug.cgi?id=41300
3002
3003         Test: fast/canvas/webgl/gl-bind-attrib-location-test.html
3004               fast/canvas/webgl/gl-vertex-attrib.html
3005
3006         * html/canvas/WebGLProgram.cpp:
3007         (WebCore::WebGLProgram::numActiveAttribLocations): const.
3008         (WebCore::WebGLProgram::getActiveAttribLocation): const.
3009         (WebCore::WebGLProgram::isUsingVertexAttrib0): Determine whether vertex attrib 0 is used by the program.
3010         * html/canvas/WebGLProgram.h: Declare isUsingVertexAttrib0.
3011         * html/canvas/WebGLRenderingContext.cpp:
3012         (WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with vertex attrib 0.
3013         (WebCore::WebGLRenderingContext::disableVertexAttribArray): Ditto.
3014         (WebCore::WebGLRenderingContext::drawArrays): Ditto.
3015         (WebCore::WebGLRenderingContext::drawElements): Ditto.
3016         (WebCore::WebGLRenderingContext::getVertexAttrib): Use cached value instead of calling glGetVertexAtrtrib.
3017         (WebCore::WebGLRenderingContext::vertexAttrib1f): Validate input, deal with vertex attrib 0.
3018         (WebCore::WebGLRenderingContext::vertexAttrib1fv): Ditto.
3019         (WebCore::WebGLRenderingContext::vertexAttrib2f): Ditto.
3020         (WebCore::WebGLRenderingContext::vertexAttrib2fv): Ditto.
3021         (WebCore::WebGLRenderingContext::vertexAttrib3f): Ditto.
3022         (WebCore::WebGLRenderingContext::vertexAttrib3fv): Ditto.
3023         (WebCore::WebGLRenderingContext::vertexAttrib4f): Ditto.
3024         (WebCore::WebGLRenderingContext::vertexAttrib4fv): Ditto.
3025         (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
3026         (WebCore::WebGLRenderingContext::handleNPOTTextures): Move isGLES2Compliant() to caller.
3027         (WebCore::WebGLRenderingContext::vertexAttribImpl): Helper for vertexAttribNfv.
3028         (WebCore::WebGLRenderingContext::initVertexAttrib0): Initialize vertex attrib 0.
3029         (WebCore::WebGLRenderingContext::simulateVertexAttrib0): Simulate vertex attrib 0.
3030         (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation): Restore states after simulating vertex attrib 0.
3031         * html/canvas/WebGLRenderingContext.h:
3032         (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): Tracking full vertex attrib states.
3033         (WebCore::WebGLRenderingContext::VertexAttribState::initValue): Init value to [0,0,0,1].
3034
3035 2010-07-02  Zhenyao Mo  <zmo@google.com>
3036
3037         Reviewed by Dimitri Glazkov.
3038
3039         Need to validate the size of the incoming arrays for uniform* functions
3040         https://bugs.webkit.org/show_bug.cgi?id=41383
3041
3042         * html/canvas/WebGLRenderingContext.cpp: Validate input array size.
3043         (WebCore::WebGLRenderingContext::uniform1fv):
3044         (WebCore::WebGLRenderingContext::uniform1iv):
3045         (WebCore::WebGLRenderingContext::uniform2fv):
3046         (WebCore::WebGLRenderingContext::uniform2iv):
3047         (WebCore::WebGLRenderingContext::uniform3fv):
3048         (WebCore::WebGLRenderingContext::uniform3iv):
3049         (WebCore::WebGLRenderingContext::uniform4fv):
3050         (WebCore::WebGLRenderingContext::uniform4iv):
3051         (WebCore::WebGLRenderingContext::uniformMatrix2fv):
3052         (WebCore::WebGLRenderingContext::uniformMatrix3fv):
3053         (WebCore::WebGLRenderingContext::uniformMatrix4fv):
3054         (WebCore::WebGLRenderingContext::validateUniformParameters):
3055         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
3056         * html/canvas/WebGLRenderingContext.h: Add helper functions.
3057
3058 2010-07-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3059
3060         Reviewed by Simon Hausmann.
3061
3062         [Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear
3063
3064         The implementation of PathQt's addArcTo() was not float-safe and also had
3065         a case where it drew an 'infinite' line, which is not part of the spec.
3066
3067         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto
3068
3069         We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder()
3070         also had the same problem, and was refactored a bit in the process of fixing
3071         the bug.
3072
3073         Initial patch by Andreas Kling.
3074
3075         https://bugs.webkit.org/show_bug.cgi?id=41412
3076
3077         * platform/graphics/qt/PathQt.cpp:
3078
3079 2010-07-02  Yury Semikhatsky  <yurys@chromium.org>
3080
3081         Reviewed by Pavel Feldman.
3082
3083         [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
3084         https://bugs.webkit.org/show_bug.cgi?id=41511
3085
3086         Tests: fast/events/popup-blocked-from-fake-user-gesture.html
3087                http/tests/inspector/change-iframe-src.html
3088
3089         * bindings/v8/ScriptController.cpp:
3090         (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
3091         from the call stack. Get event directly from hidden property to avoid unnecessary checks.
3092         * bindings/v8/V8AbstractEventListener.cpp:
3093         (WebCore::V8AbstractEventListener::invokeEventHandler):
3094         * bindings/v8/V8HiddenPropertyName.h:
3095         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3096         (WebCore::V8DOMWindow::eventAccessorGetter):
3097         (WebCore::V8DOMWindow::eventAccessorSetter):
3098
3099 2010-07-02  Adam Barth  <abarth@webkit.org>
3100
3101         Reviewed by Eric Seidel.
3102
3103         Fix tokenization of <!----->
3104         https://bugs.webkit.org/show_bug.cgi?id=41505
3105
3106         I noticed this error when browsing through the HTML5lib failures.
3107         We're adding an extra character to the comment token, contrary to what
3108         the spec says to do.
3109
3110         * html/HTMLTokenizer.cpp:
3111         (WebCore::HTMLTokenizer::nextToken):
3112
3113 2010-07-02  Adam Barth  <abarth@webkit.org>
3114
3115         Reviewed by Eric Seidel.
3116
3117         Implement processFakePEndTagIfPInScope
3118         https://bugs.webkit.org/show_bug.cgi?id=41503
3119
3120         This is a common idiom because <p> likes to close itself.
3121
3122         * html/HTMLTreeBuilder.cpp:
3123         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
3124         (WebCore::HTMLTreeBuilder::processStartTag):
3125         * html/HTMLTreeBuilder.h:
3126
3127 2010-07-02  Adam Barth  <abarth@webkit.org>
3128
3129         Reviewed by Eric Seidel.
3130
3131         Implement AfterAfterBodyMode
3132         https://bugs.webkit.org/show_bug.cgi?id=41501
3133
3134         In implementing this mode, I noticed a bug in the character processing
3135         of the AfterBodyMode, which I fixed by adding a break statement.  Also,
3136         to get one of the new tests to pass, I needed to implement one
3137         notImplemented() in the InBody insertion mode.  Yay for testing.
3138
3139         * html/HTMLTreeBuilder.cpp:
3140         (WebCore::HTMLTreeBuilder::processStartTag):
3141         (WebCore::HTMLTreeBuilder::processEndTag):
3142         (WebCore::HTMLTreeBuilder::processComment):
3143         (WebCore::HTMLTreeBuilder::processCharacter):
3144         (WebCore::HTMLTreeBuilder::processEndOfFile):
3145
3146 2010-07-02  Sheriff Bot  <webkit.review.bot@gmail.com>
3147
3148         Unreviewed, rolling out r62371.
3149         http://trac.webkit.org/changeset/62371
3150         https://bugs.webkit.org/show_bug.cgi?id=41515
3151
3152         "Breaks media/controls-drag-timebar.html on 32-Bit Release"
3153         (Requested by philn-tp on #webkit).
3154
3155         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3156         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
3157         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
3158
3159 2010-06-28  Philippe Normand  <pnormand@igalia.com>
3160
3161         Reviewed by Xan Lopez.
3162
3163         [GStreamer] can't seek past maxTimeLoaded value
3164         https://bugs.webkit.org/show_bug.cgi?id=40526
3165
3166         Extended the seekable range to the whole media. This allows video
3167         played with progressive download to be seeked past the current
3168         buffered position.
3169
3170         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3171         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
3172         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
3173
3174 2010-07-02  Adam Barth  <abarth@webkit.org>
3175
3176         Reviewed by Eric Seidel.
3177
3178         Implement AfterBodyMode for HTML5 tree builder
3179         https://bugs.webkit.org/show_bug.cgi?id=41500
3180
3181         In the coarse of implementing this state, I ran into an ASSERT in how
3182         </br> tags where handled, which I fixed.  Technically, that could be a
3183         separate patch, but it seemed harmless to include it here (with tests).
3184
3185         * html/HTMLTreeBuilder.cpp:
3186         (WebCore::HTMLTreeBuilder::processStartTag):
3187         (WebCore::HTMLTreeBuilder::processEndTag):
3188         (WebCore::HTMLTreeBuilder::processComment):
3189         (WebCore::HTMLTreeBuilder::processCharacter):
3190         (WebCore::HTMLTreeBuilder::processEndOfFile):
3191         (WebCore::HTMLTreeBuilder::insertCommentOnHTMLHtmlElement):
3192         * html/HTMLTreeBuilder.h:
3193
3194 2010-07-02  Adam Barth  <abarth@webkit.org>
3195
3196         Reviewed by Eric Seidel.
3197
3198         Handle <base> and friends in AfterHeadMode
3199         https://bugs.webkit.org/show_bug.cgi?id=41502
3200
3201         Implement notImplemented() per spec.
3202
3203         * html/HTMLTreeBuilder.cpp:
3204         (WebCore::HTMLTreeBuilder::processStartTag):
3205
3206 2010-07-01  Oliver Hunt  <oliver@apple.com>
3207
3208         Build fix
3209
3210         * dom/Document.h:
3211
3212 2010-07-01  Oliver Hunt  <oliver@apple.com>
3213
3214         Reviewed by Maciej Stachowiak.
3215
3216         Add a FixedArray template to encapsulate fixed length arrays
3217         https://bugs.webkit.org/show_bug.cgi?id=41506
3218
3219         Add forwarding header, and replace a few fixed length arrays
3220         with the new FixedArray type.
3221
3222         * ForwardingHeaders/wtf/FixedArray.h: Added.
3223         * dom/Document.h:
3224         * platform/graphics/GlyphMetricsMap.h:
3225
3226 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
3227
3228         No review.
3229
3230         Fix a link warning in 32-bit by not explicitly exporting WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly().
3231
3232         * WebCore.AcceleratedCompositing.exp:
3233
3234 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
3235
3236         Reviewed by Dimitri Glazkov.
3237
3238         Add window.performance.navigation namespace
3239         https://bugs.webkit.org/show_bug.cgi?id=41442
3240
3241         Adds window.performance.navigation namespace consisting of ".type"
3242         and ".redirectCount". As part of this change, I renmaed "NavigationTiming"
3243         to just "Timing" to avoid confusion.
3244
3245         No new tests because tests will be added in a subsequent patch when
3246         functionality is added.
3247
3248         * Android.mk:
3249         * CMakeLists.txt:
3250         * DerivedSources.cpp:
3251         * DerivedSources.make:
3252         * GNUmakefile.am:
3253         * WebCore.gypi:
3254         * WebCore.pri:
3255         * WebCore.pro:
3256         * WebCore.vcproj/WebCore.vcproj:
3257         * WebCore.xcodeproj/project.pbxproj:
3258         * page/Navigation.cpp: Added.
3259         (WebCore::Navigation::Navigation):
3260         (WebCore::Navigation::frame):
3261         (WebCore::Navigation::disconnectFrame):
3262         (WebCore::Navigation::type):
3263         (WebCore::Navigation::redirectCount):
3264         * page/Navigation.h: Added.
3265         (WebCore::Navigation::create):
3266         * page/Navigation.idl: Added.
3267         * page/NavigationTiming.cpp: Removed.
3268         * page/NavigationTiming.h: Removed.
3269         * page/NavigationTiming.idl: Removed.
3270         * page/Performance.cpp:
3271         (WebCore::Performance::navigation):
3272         (WebCore::Performance::timing):
3273         * page/Performance.h:
3274         * page/Performance.idl:
3275         * page/Timing.cpp: Added.
3276         (WebCore::Timing::Timing):
3277         (WebCore::Timing::frame):
3278         (WebCore::Timing::disconnectFrame):
3279         (WebCore::Timing::navigationStart):
3280         * page/Timing.h: Added.
3281         (WebCore::Timing::create):
3282         * page/Timing.idl: Added.
3283
3284 2010-07-01  Daniel Cheng  <dcheng@chromium.org>
3285
3286         Reviewed by Jian Li.
3287
3288         [chromium] Dragging a link triggers an assert when accessing event.dataTransfer.types
3289         https://bugs.webkit.org/show_bug.cgi?id=41493
3290
3291         ClipboardChromium::writeURL violates ClipboardChromium's assumption that uriList will always
3292         be non-empty if url is valid.
3293
3294         No new tests.
3295
3296         * platform/chromium/ClipboardChromium.cpp:
3297         (WebCore::ClipboardChromium::writeURL):
3298
3299 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
3300
3301         Reviewed by Tor Arne Vestbø.
3302
3303         [Qt] Clamp color stops passed to QGradient to 1.0
3304         [https://bugs.webkit.org/show_bug.cgi?id=41484
3305
3306         Fixes an issue where color stops would be silently dropped from radial gradients.
3307
3308         * platform/graphics/qt/GradientQt.cpp:
3309         (WebCore::Gradient::platformGradient):
3310
3311 2010-07-01  Eric Seidel  <eric@webkit.org>
3312
3313         Reviewed by Adam Barth.
3314
3315         HTMLTokenizer should ASSERT that it never emits a null character
3316         https://bugs.webkit.org/show_bug.cgi?id=41448
3317
3318         No functional change, thus no tests.  These ASSERTs would have
3319         caught the coding error which caused the trouble in bug 41436
3320         (which was fixed by bug 41439).
3321
3322         * html/HTMLToken.h:
3323         (WebCore::HTMLToken::beginStartTag):
3324         (WebCore::HTMLToken::beginCharacter):
3325         (WebCore::HTMLToken::beginDOCTYPE):
3326         (WebCore::HTMLToken::appendToName):
3327         (WebCore::HTMLToken::appendToComment):
3328         (WebCore::HTMLToken::appendToAttributeName):
3329         (WebCore::HTMLToken::appendToAttributeValue):
3330         (WebCore::HTMLToken::appendToPublicIdentifier):
3331         (WebCore::HTMLToken::appendToSystemIdentifier):
3332
3333 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
3334
3335         Reviewed by Tor Arne Vestbø.
3336
3337         Canvas: Don't paint with empty radial gradients
3338         https://bugs.webkit.org/show_bug.cgi?id=41190
3339
3340         If a radial gradient has x0==x1 && y0==y1 && r0==r1, don't paint with it.
3341
3342         * html/canvas/CanvasRenderingContext2D.cpp:
3343         (WebCore::CanvasRenderingContext2D::fillRect):
3344         * platform/graphics/Gradient.h:
3345         (WebCore::Gradient::isZeroSize):
3346
3347 2010-07-01  Tony Gentilcore  <tonyg@chromium.org>
3348
3349         Reviewed by Adam Barth.
3350
3351         Add interface for network platform to pass up timing information
3352         https://bugs.webkit.org/show_bug.cgi?id=41437
3353
3354         The Web Timing feature requires the network platform to expose detailed
3355         timing information for the main resource. This patch adds that data to
3356         the ResourceResponseBase. Since the 82 bytes of information is only
3357         needed for the main resource, it is a RefPtr to avoid using the memory
3358         for other resource types.
3359
3360         No new tests because no new functionality.
3361
3362         * GNUmakefile.am:
3363         * WebCore.gypi:
3364         * WebCore.pro:
3365         * WebCore.vcproj/WebCore.vcproj:
3366         * WebCore.xcodeproj/project.pbxproj:
3367         * platform/network/ResourceLoadTiming.h: Added.
3368         (WebCore::ResourceLoadTiming::create):
3369         (WebCore::ResourceLoadTiming::deepCopy):
3370         (WebCore::ResourceLoadTiming::operator==):
3371         (WebCore::ResourceLoadTiming::operator!=):
3372         (WebCore::ResourceLoadTiming::ResourceLoadTiming):
3373         * platform/network/ResourceResponseBase.cpp:
3374         (WebCore::ResourceResponseBase::adopt):
3375         (WebCore::ResourceResponseBase::copyData):
3376         (WebCore::ResourceResponseBase::resourceLoadTiming):
3377         (WebCore::ResourceResponseBase::setResourceLoadTiming):
3378         (WebCore::ResourceResponseBase::compare):
3379         * platform/network/ResourceResponseBase.h:
3380
3381 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
3382
3383         Unreviewed, rolling out r62321.
3384         http://trac.webkit.org/changeset/62321
3385         https://bugs.webkit.org/show_bug.cgi?id=41494
3386
3387         Broke the non-win builds. (Requested by dumi on #webkit).
3388
3389         * dom/ScriptExecutionContext.cpp:
3390         (WebCore::ScriptExecutionContext::addOpenDatabase):
3391         (WebCore::ScriptExecutionContext::removeOpenDatabase):
3392         (WebCore::ScriptExecutionContext::stopDatabases):
3393         * dom/ScriptExecutionContext.h:
3394         * storage/Database.cpp:
3395         (WebCore::Database::openDatabase):
3396         (WebCore::Database::Database):
3397         (WebCore::Database::markAsDeletedAndClose):
3398         (WebCore::ContextRemoveOpenDatabaseTask::create):
3399         (WebCore::ContextRemoveOpenDatabaseTask::performTask):
3400         (WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
3401         (WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
3402         (WebCore::Database::close):
3403         (WebCore::Database::closeImmediately):
3404         (WebCore::Database::stop):
3405         (WebCore::Database::performPolicyChecks):
3406         * storage/Database.h:
3407         (WebCore::Database::):
3408         (WebCore::Database::stopped):
3409         * storage/DatabaseTask.cpp:
3410         (WebCore::DatabaseTask::performTask):
3411         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
3412         (WebCore::DatabaseOpenTask::doPerformTask):
3413         (WebCore::DatabaseOpenTask::debugTaskName):
3414         (WebCore::DatabaseCloseTask::DatabaseCloseTask):
3415         (WebCore::DatabaseCloseTask::doPerformTask):
3416         (WebCore::DatabaseCloseTask::debugTaskName):
3417         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
3418         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
3419         (WebCore::DatabaseTransactionTask::doPerformTask):
3420         (WebCore::DatabaseTransactionTask::debugTaskName):
3421         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
3422         (WebCore::DatabaseTableNamesTask::doPerformTask):
3423         (WebCore::DatabaseTableNamesTask::debugTaskName):
3424         * storage/DatabaseTask.h:
3425         (WebCore::DatabaseOpenTask::create):
3426         (WebCore::DatabaseCloseTask::create):
3427         (WebCore::DatabaseTransactionTask::create):
3428         (WebCore::DatabaseTableNamesTask::create):
3429         * storage/DatabaseThread.cpp:
3430         (WebCore::DatabaseThread::databaseThread):
3431         * storage/DatabaseTracker.cpp:
3432         (WebCore::DatabaseTracker::addOpenDatabase):
3433         * storage/SQLTransaction.cpp:
3434         (WebCore::SQLTransaction::executeSQL):
3435         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
3436
3437 2010-07-01  Xan Lopez  <xlopez@igalia.com>
3438
3439         Reviewed by Gustavo Noronha.
3440
3441         [GTK] Stop using GdkRegion in 3.x mode
3442         https://bugs.webkit.org/show_bug.cgi?id=41463
3443
3444         Make us compile without using GdkRegion, since it's gone from GTK+
3445         3.x.
3446
3447         * platform/graphics/IntRect.h:
3448         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3449         (WebCore::GraphicsContext::drawFocusRing):
3450         * platform/graphics/gtk/FontGtk.cpp:
3451         (WebCore::cairo_region_shrink):
3452         (WebCore::Font::drawComplexText):
3453         * platform/gtk/GtkPluginWidget.cpp:
3454         (WebCore::GtkPluginWidget::paint):
3455         * platform/gtk/RenderThemeGtk.h:
3456         * platform/gtk/ScrollbarGtk.cpp:
3457         (ScrollbarGtk::paint):
3458
3459 2010-06-30  Dumitru Daniliuc  <dumi@chromium.org>
3460
3461         Reviewed by Darin Fisher.
3462
3463         DB clean up.
3464         https://bugs.webkit.org/show_bug.cgi?id=41404
3465
3466         1. Made all DatabaseTasks internal classes of Database and made
3467            the Database methods called by those tasks private.
3468         2. Removed the Database::stop{ed}() methods.
3469         3. Removed the code that kept track of open databases from
3470            ScriptExecutionContext (no longer needed).
3471         4. Made minor changes to Database::closeImmediately() to make it
3472            possible for DatabaseThread to call that method instead of
3473            close().
3474         5. Minor fix to DatabaseTracker: addOpenDatabase() should call
3475            OriginQuotaManager::addDatabase() if the origin quota manager
3476            is not tracking this origin.
3477         6. Removed Database::performPolicyChecks(). We already update the
3478            DB size after each transaction, and we enforce a max size for
3479            the DB at the beginning of each transaction.
3480
3481         * dom/ScriptExecutionContext.cpp:
3482         (WebCore::ScriptExecutionContext::stopDatabases):
3483         * dom/ScriptExecutionContext.h:
3484         (WebCore::ScriptExecutionContext::hasOpenDatabases):
3485         * storage/Database.cpp:
3486         (WebCore::Database::openDatabase):
3487         (WebCore::Database::Database):
3488         (WebCore::Database::markAsDeletedAndClose):
3489         (WebCore::Database::close):
3490         (WebCore::Database::closeImmediately):
3491         * storage/Database.h:
3492         * storage/DatabaseTask.cpp:
3493         (WebCore::DatabaseTask::performTask):
3494         (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
3495         (WebCore::Database::DatabaseOpenTask::doPerformTask):
3496         (WebCore::Database::DatabaseOpenTask::debugTaskName):
3497         (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
3498         (WebCore::Database::DatabaseCloseTask::doPerformTask):
3499         (WebCore::Database::DatabaseCloseTask::debugTaskName):
3500         (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
3501         (WebCore::Database::DatabaseTransactionTask::doPerformTask):
3502         (WebCore::Database::DatabaseTransactionTask::debugTaskName):
3503         (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
3504         (WebCore::Database::DatabaseTableNamesTask::doPerformTask):
3505         (WebCore::Database::DatabaseTableNamesTask::debugTaskName):
3506         * storage/DatabaseTask.h:
3507         (WebCore::Database::DatabaseOpenTask::create):
3508         (WebCore::Database::DatabaseCloseTask::create):
3509         (WebCore::Database::DatabaseTransactionTask::create):
3510         (WebCore::Database::DatabaseTableNamesTask::create):
3511         * storage/DatabaseThread.cpp:
3512         (WebCore::DatabaseThread::databaseThread):
3513         * storage/DatabaseTracker.cpp:
3514         (WebCore::DatabaseTracker::addOpenDatabase):
3515         * storage/SQLTransaction.cpp:
3516         (WebCore::SQLTransaction::executeSQL):
3517         (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
3518
3519 2010-07-01  Kent Tamura  <tkent@chromium.org>
3520
3521         Reviewed by Darin Fisher.
3522
3523         [Chromium] Support indeterminate checkbox for Windows
3524         https://bugs.webkit.org/show_bug.cgi?id=41444
3525
3526         * rendering/RenderThemeChromiumWin.cpp:
3527         (WebCore::RenderThemeChromiumWin::determineState):
3528          Check isIndeterminate() and set an appropriate flag value.
3529
3530 2010-07-01  Alexey Proskuryakov  <ap@apple.com>
3531
3532         Reviewed by Dan Bernstein.
3533
3534         https://bugs.webkit.org/show_bug.cgi?id=41488
3535         <rdar://problem/7487420> Crash in SubresourceLoader::create when load is initiated from plug-in destructor
3536
3537         Test: plugins/js-from-destroy.html
3538
3539         * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Null check active
3540         document loader.
3541
3542 2010-07-01  Andy Estes  <aestes@apple.com>
3543
3544         Reviewed by Darin Adler.
3545
3546         <rdar://problem/8113003> Correctly fire beforeload events for images
3547         added to the DOM using .innerHTML.
3548         https://bugs.webkit.org/show_bug.cgi?id=40919
3549
3550         Test: fast/dom/beforeload/image-before-load-innerHTML.html
3551
3552         * html/LegacyHTMLDocumentParser.cpp:
3553         (WebCore::LegacyHTMLDocumentParser::write): Do not fire synchronous
3554         image beforeload events immediately after parsing a document fragment.
3555         Let the events fire later, giving the fragment time to potentially be
3556         inserted into the document.
3557
3558 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
3559
3560         Reviewed by Tor Arne Vestbø.
3561
3562         Canvas: bezierCurveTo() and quadraticCurveTo() must ensure subpaths
3563         https://bugs.webkit.org/show_bug.cgi?id=41192
3564
3565         If the current path is empty, bezierCurveTo() and quadraticCurveTo() will now
3566         move to the (first) control point before adding the curve.
3567
3568         Spec links:
3569         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-beziercurveto
3570         http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-quadraticcurveto
3571
3572         * html/canvas/CanvasRenderingContext2D.cpp:
3573         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
3574         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
3575
3576 2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
3577
3578         Reviewed by Darin Adler.
3579
3580         Canvas element cannot have negative width or height (HTML5 spec 4.8.11)
3581         https://bugs.webkit.org/show_bug.cgi?id=39149
3582
3583         If assigned a negative value, it should default to 300 for width and 150 for height.
3584
3585         Spec link:
3586         http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width
3587
3588    &