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