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