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