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