Speculative WinCE build correction after r90057.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-06-29  Brent Fulgham  <bfulgham@webkit.org>
2
3         Speculative WinCE build correction after r90057.
4
5         * CMakeListsWinCE.txt: Add missing DIBPixelData.cpp to
6         WinCE build to support setting bitmap image alpha value.
7
8 2011-06-29  Simon Fraser  <simon.fraser@apple.com>
9
10         Reviewed by Beth Dakin.
11
12         Lay some groundwork for rubber-banding in overflow:scroll divs
13         https://bugs.webkit.org/show_bug.cgi?id=63654
14
15         Make it possible for scrollTop and scrollLeft on a RenderLayer to be
16         set to negative values, which we will do during rubber-banding in
17         future. Continue to clamp programmatic scrolls, and scroll positions
18         set by layout between 0 and the max value.
19
20         Test: fast/layers/negative-scroll-positions.html
21
22         * rendering/RenderBox.cpp:
23         (WebCore::RenderBox::setScrollLeft):
24         (WebCore::RenderBox::setScrollTop):
25         * rendering/RenderLayer.cpp:
26         (WebCore::RenderLayer::scrollToOffset):
27         (WebCore::RenderLayer::scrollTo):
28         * rendering/RenderLayer.h:
29         (WebCore::RenderLayer::scrollToXOffset):
30         (WebCore::RenderLayer::scrollToYOffset):
31         * rendering/RenderTextControlSingleLine.cpp:
32         (WebCore::RenderTextControlSingleLine::forwardEvent):
33
34 2011-06-29  Anders Carlsson  <andersca@apple.com>
35
36         Reviewed by Simon Fraser.
37
38         RenderLayer::maximumScrollPosition() is wrong
39         https://bugs.webkit.org/show_bug.cgi?id=62667
40
41         * platform/ScrollableArea.h:
42         (WebCore::ScrollableArea::isVerticalScrollerPinnedToMinimumPosition):
43         (WebCore::ScrollableArea::isVerticalScrollerPinnedToMaximumPosition):
44         Add these for good measure; they will be needed in an upcoming patch.
45
46         * rendering/RenderLayer.cpp:
47         (WebCore::RenderLayer::maximumScrollPosition):
48         Subtract the visible content rect, including the scroll bars.
49
50 2011-06-29  Brent Fulgham  <bfulgham@webkit.org>
51
52         Speculative WinCE build correction after r90053.
53
54         * platform/graphics/GraphicsContext.h:
55         (WebCore::GraphicsContext::inTransparencyLayer): Provide
56         stub implementation for 'inTransparencyLayer'.
57
58 2011-06-29  Xu Fan  <qifuren1985@gmail.com>
59
60         Reviewed by Brent Fulgham.
61
62         Fix Scrollbars Transparent in Windows XP if WebKit is using Layered Window
63         https://bugs.webkit.org/show_bug.cgi?id=61136
64
65         * platform/graphics/win/DIBPixelData.h: add a static method setRGBABitmapAlpha
66         * platform/graphics/win/DIBPixelData.cpp: add implementation
67         * platform/win/ScrollbarThemeWin.cpp: fix scroolbar transparent
68         * rendering/RenderThemeWin.cpp: fix textbox and button transparent
69
70 2011-06-29  Emil A Eklund  <eae@chromium.org>
71
72         Reviewed by Eric Seidel.
73
74         Switch RenderBoxModelObject::margin* and setMargin* to to new layout types
75         https://bugs.webkit.org/show_bug.cgi?id=63652
76
77         Switch margin methods for render tree over to the new layout unit abstraction.
78
79         No new tests, no functionality changes.
80
81         * rendering/InlineFlowBox.h:
82         * rendering/RenderBlock.cpp:
83         * rendering/RenderBlock.h:
84         * rendering/RenderBox.cpp:
85         * rendering/RenderBox.h:
86         * rendering/RenderBoxModelObject.h:
87         * rendering/RenderInline.cpp:
88         * rendering/RenderInline.h:
89         * rendering/RenderText.h:
90
91 2011-06-29  Levi Weintraub  <leviw@chromium.org>
92
93         Reviewed by Eric Seidel.
94
95         Switch paint to new layout types
96         https://bugs.webkit.org/show_bug.cgi?id=63645
97
98         Switch vanilla paint function over to the new layout unit abstraction.
99
100         No new tests, no functionality changes.
101
102         * rendering/RenderBlock.cpp:
103         (WebCore::RenderBlock::paint):
104         * rendering/RenderBlock.h:
105         * rendering/RenderBox.cpp:
106         (WebCore::RenderBox::paint):
107         * rendering/RenderBox.h:
108         * rendering/RenderDetailsMarker.cpp:
109         (WebCore::RenderDetailsMarker::paint):
110         * rendering/RenderDetailsMarker.h:
111         * rendering/RenderEmbeddedObject.cpp:
112         (WebCore::RenderEmbeddedObject::paint):
113         * rendering/RenderEmbeddedObject.h:
114         * rendering/RenderFrameSet.cpp:
115         (WebCore::RenderFrameSet::paint):
116         * rendering/RenderFrameSet.h:
117         * rendering/RenderImage.cpp:
118         (WebCore::RenderImage::paint):
119         * rendering/RenderImage.h:
120         * rendering/RenderInline.cpp:
121         (WebCore::RenderInline::paint):
122         * rendering/RenderInline.h:
123         * rendering/RenderLineBoxList.h:
124         * rendering/RenderListItem.cpp:
125         (WebCore::RenderListItem::paint):
126         * rendering/RenderListItem.h:
127         * rendering/RenderListMarker.cpp:
128         (WebCore::RenderListMarker::paint):
129         * rendering/RenderListMarker.h:
130         * rendering/RenderObject.h:
131         * rendering/RenderReplaced.cpp:
132         (WebCore::RenderReplaced::paint):
133         * rendering/RenderReplaced.h:
134         * rendering/RenderReplica.cpp:
135         (WebCore::RenderReplica::paint):
136         * rendering/RenderReplica.h:
137         * rendering/RenderTable.cpp:
138         (WebCore::RenderTable::paint):
139         * rendering/RenderTable.h:
140         * rendering/RenderTableCell.cpp:
141         (WebCore::RenderTableCell::paint):
142         * rendering/RenderTableCell.h:
143         * rendering/RenderTableRow.cpp:
144         (WebCore::RenderTableRow::paint):
145         * rendering/RenderTableRow.h:
146         * rendering/RenderTableSection.cpp:
147         (WebCore::RenderTableSection::paint):
148         * rendering/RenderTableSection.h:
149         * rendering/RenderTextControlSingleLine.cpp:
150         (WebCore::RenderTextControlSingleLine::paint):
151         * rendering/RenderTextControlSingleLine.h:
152         * rendering/RenderTheme.h:
153         * rendering/RenderView.cpp:
154         (WebCore::RenderView::paint):
155         * rendering/RenderView.h:
156         * rendering/RenderWidget.cpp:
157         (WebCore::RenderWidget::paint):
158         * rendering/RenderWidget.h:
159         * rendering/mathml/RenderMathMLBlock.h:
160         * rendering/mathml/RenderMathMLFraction.h:
161         * rendering/mathml/RenderMathMLRoot.h:
162         * rendering/mathml/RenderMathMLSquareRoot.h:
163         * rendering/svg/RenderSVGContainer.h:
164         * rendering/svg/RenderSVGForeignObject.h:
165         * rendering/svg/RenderSVGHiddenContainer.h:
166         * rendering/svg/RenderSVGImage.h:
167         * rendering/svg/RenderSVGPath.h:
168         * rendering/svg/RenderSVGRoot.cpp:
169         (WebCore::RenderSVGRoot::paint):
170         * rendering/svg/RenderSVGRoot.h:
171         * rendering/svg/RenderSVGText.h:
172
173 2011-06-29  Jian Li  <jianli@chromium.org>
174
175         Reviewed by Kenneth Russell.
176
177         WebGL test failing on SL bots: fast/canvas/webgl/data-view-test.html 
178         https://bugs.webkit.org/show_bug.cgi?id=63151
179
180         The fix is to change to throw TypeError in custom JS/V8 bindings.
181
182         * bindings/js/JSDataViewCustom.cpp:
183         (WebCore::getDataViewMember):
184         (WebCore::setDataViewMember):
185         * bindings/v8/custom/V8DataViewCustom.cpp:
186         (WebCore::V8DataView::constructorCallback):
187         (WebCore::V8DataView::getInt8Callback):
188
189 2011-06-29  Luke Macpherson   <macpherson@chromium.org>
190
191         Reviewed by Darin Adler.
192
193         Convert uses of computeLengthIntForLength() to computeLength<Length>()
194         https://bugs.webkit.org/show_bug.cgi?id=63641
195
196         No new tests / refactoring only.
197
198         * css/CSSStyleSelector.cpp:
199         (WebCore::convertToLength):
200         (WebCore::CSSStyleSelector::applyProperty):
201         (WebCore::CSSStyleSelector::applyPageSizeProperty):
202         (WebCore::CSSStyleSelector::mmLength):
203         (WebCore::CSSStyleSelector::inchLength):
204         (WebCore::CSSStyleSelector::mapFillSize):
205         (WebCore::CSSStyleSelector::mapFillXPosition):
206         (WebCore::CSSStyleSelector::mapFillYPosition):
207
208 2011-06-29  Chris Rogers  <crogers@google.com>
209
210         Reviewed by Kenneth Russell.
211
212         Simplify AudioBufferSourceNode rendering
213         https://bugs.webkit.org/show_bug.cgi?id=63586
214
215         No new tests since this doesn't change API.
216
217         * webaudio/AudioBufferSourceNode.cpp:
218         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
219         (WebCore::AudioBufferSourceNode::process):
220         (WebCore::AudioBufferSourceNode::renderFromBuffer):
221         (WebCore::AudioBufferSourceNode::reset):
222         (WebCore::AudioBufferSourceNode::setBuffer):
223         (WebCore::AudioBufferSourceNode::noteOn):
224         (WebCore::AudioBufferSourceNode::noteGrainOn):
225         (WebCore::AudioBufferSourceNode::totalPitchRate):
226         * webaudio/AudioBufferSourceNode.h:
227
228 2011-06-29  Martin Robinson  <mrobinson@igalia.com>
229
230         Reviewed by Xan Lopez.
231
232         [Freetype] Many tests report ERROR: Failed to get glyph page zero.
233         https://bugs.webkit.org/show_bug.cgi?id=63498
234
235         Instead of conditionally instantiating the m_scaledFont member of FontPlatformData,
236         always instantiate it. For times when the size is 0 and the instantiation would lead
237         to a Cairo error, we use size 1 and just make operations which would fail conditional
238         on the m_size > 0.
239
240         No new tests. This change is covered by existing tests. We should
241         observe no errors on the bots after landing.
242
243         * platform/graphics/cairo/FontCairo.cpp:
244         (WebCore::Font::drawGlyphs): Instead of looking at whether or not there is
245         a scaled font to determine whether to draw, just look at the size.
246         * platform/graphics/freetype/FontPlatformData.h: Remove the m_font member.
247         * platform/graphics/freetype/FontPlatformDataFreeType.cpp: Always instantiate
248         a scaled font member and remove references to m_font. If we are instantiating
249         a scaled font for a 0 size font, instantiate a size 1 font, so that we can
250         still use Cairo to query font properties.
251         * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
252         (WebCore::GlyphPage::fill): We can assume there is always a scaled font now.
253         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
254         (WebCore::SimpleFontData::platformInit): Ditto.
255         (WebCore::SimpleFontData::createScaledFontData): Ditto.
256         (WebCore::SimpleFontData::containsCharacters): Ditto.
257         (WebCore::SimpleFontData::platformWidthForGlyph): Ditto.
258
259 2011-06-29  Eric Carlson  <eric.carlson@apple.com>
260
261         Reviewed by Darin Adler.
262
263         Media element loads blocked by a resource load delegate do not generate an error event
264         https://bugs.webkit.org/show_bug.cgi?id=63558
265
266         Tests: media/media-blocked-by-beforeload.html
267                media/media-blocked-by-willsendrequest.html
268
269         * html/HTMLMediaElement.cpp:
270         (WebCore::HTMLMediaElement::selectMediaResource): Call mediaLoadingFailed instead of noneSupported
271             so all failures follow the same code path.
272         (WebCore::HTMLMediaElement::loadResource): Call mediaLoadingFailed when there is no frame, when 
273             the loader delegate rejects the url, or when MediaPlayer doesn't find a media engine that
274             supports the type.
275         (WebCore::HTMLMediaElement::selectNextSourceChild): Fix incorrect logging.
276         (WebCore::HTMLMediaElement::mediaLoadingFailed): Change name of parameter from "state" to
277             "error" to make its purpose obvious.
278
279         * platform/graphics/MediaPlayer.cpp:
280         (WebCore::MediaPlayer::load): Return a bool indicating whether or not the url was given to
281             a media engine.
282         (WebCore::MediaPlayer::loadWithNextMediaEngine): Add some logging.
283         * platform/graphics/MediaPlayer.h:
284
285 2011-06-29  Darin Adler  <darin@apple.com>
286
287         Reviewed by Anders Carlsson.
288
289         [WebKit2] Crash loading page that adds/removes frame in DOMContentLoaded/loaded
290         https://bugs.webkit.org/show_bug.cgi?id=63483
291
292         Test: fast/loader/create-frame-in-DOMContentLoaded.html
293
294         * loader/FrameLoader.cpp:
295         (WebCore::FrameLoader::init): Added an assertion.
296         (WebCore::FrameLoader::finishedLoadingDocument): Removed a non-helpful #if
297         statement. The rule that we do not call the client when creating the initial
298         empty document was nominally specific to Windows and Chromium but is needed
299         for all platforms.
300
301 2011-06-29  Emil A Eklund  <eae@chromium.org>
302
303         Reviewed by Darin Adler.
304
305         Switch hitTestColumns/Contents/Floats to to new layout types
306         https://bugs.webkit.org/show_bug.cgi?id=63589
307
308         Switch location and size methods for RenderBox over to the new layout unit abstraction.
309
310         No new tests, no functionality changes.
311
312         * rendering/ColumnInfo.h:
313         (WebCore::ColumnInfo::desiredColumnWidth):
314         (WebCore::ColumnInfo::setDesiredColumnWidth):
315         (WebCore::ColumnInfo::columnHeight):
316         (WebCore::ColumnInfo::setColumnCountAndHeight):
317         (WebCore::ColumnInfo::setColumnHeight):
318         (WebCore::ColumnInfo::updateMinimumColumnHeight):
319         (WebCore::ColumnInfo::minimumColumnHeight):
320         * rendering/RenderBlock.cpp:
321         (WebCore::RenderBlock::addOverflowFromChildren):
322         (WebCore::RenderBlock::paintColumnRules):
323         (WebCore::RenderBlock::paintColumnContents):
324         (WebCore::RenderBlock::hitTestFloats):
325         (WebCore::RenderBlock::hitTestColumns):
326         (WebCore::RenderBlock::hitTestContents):
327         (WebCore::RenderBlock::columnRectAt):
328         * rendering/RenderBlock.h:
329         (WebCore::RenderBlock::xPositionForFloatIncludingMargin):
330         (WebCore::RenderBlock::yPositionForFloatIncludingMargin):
331         * rendering/RenderLayer.cpp:
332         (WebCore::RenderLayer::hitTestContents):
333         * rendering/RenderLayer.h:
334
335 2011-06-29  Adrienne Walker  <enne@google.com>
336
337         Reviewed by James Robinson.
338
339         [chromium] Divide by zero in TilingData
340         https://bugs.webkit.org/show_bug.cgi?id=63305
341
342         Add safety checks for empty layers.
343
344         * platform/graphics/chromium/LayerTilerChromium.cpp:
345         (WebCore::LayerTilerChromium::prepareToUpdate):
346         (WebCore::LayerTilerChromium::reset):
347         (WebCore::LayerTilerChromium::updateRect):
348
349 2011-06-29  Dimitri Glazkov  <dglazkov@chromium.org>
350
351         Reviewed by Adam Barth.
352
353         Extract setShadowRoot function, harden it in preparation to be exposed to script.
354         https://bugs.webkit.org/show_bug.cgi?id=63596
355
356         Refactoring, covered by existing tests.
357
358         * dom/Element.cpp:
359         (WebCore::validateShadowRoot): Added.
360         (WebCore::Element::setShadowRoot): Extracted from ensureShadowRoot.
361         (WebCore::Element::ensureShadowRoot): Changed to use setShadowRoot.
362         * dom/Element.h: Added decl.
363
364 2011-06-29  Vsevolod Vlasov  <vsevik@chromium.org>
365
366         Reviewed by Pavel Feldman.
367
368         Web Inspector: REGRESSION Resource revision fails to request content if it was not yet loaded for resource.
369         https://bugs.webkit.org/show_bug.cgi?id=63631
370
371         Test: http/tests/inspector/network/network-request-revision-content.html
372
373         * inspector/front-end/Resource.js:
374         (WebInspector.ResourceRevision.prototype.requestContent):
375
376 2011-06-29  Igor Oliveira  <igor.oliveira@openbossa.org>
377
378         Reviewed by Andreas Kling.
379
380         [Qt] GraphicsContext::clipToImageBuffer does not support scale transformation
381         https://bugs.webkit.org/show_bug.cgi?id=63555
382
383         Scale alphaMask if GraphicsContext is scaled
384
385         * platform/graphics/qt/GraphicsContextQt.cpp:
386         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
387         * platform/graphics/qt/ImageBufferQt.cpp:
388         (WebCore::ImageBuffer::clip):
389
390 2011-06-29  Andrey Kosyakov  <caseq@chromium.org>
391
392         Reviewed by Pavel Feldman.
393
394         Web Inspector: backend needs to provide system-unique object ids, so these remain unique across navigation
395         https://bugs.webkit.org/show_bug.cgi?id=62894
396
397         * inspector/InspectorController.cpp:
398         (WebCore::InspectorController::setAgentProcessIdentifier):
399         * inspector/InspectorController.h:
400         * inspector/InspectorPageAgent.cpp:
401         (WebCore::InspectorPageAgent::setAgentIdentifier):
402         (WebCore::InspectorPageAgent::createIdentifier):
403         (WebCore::InspectorPageAgent::frameForId):
404         (WebCore::InspectorPageAgent::frameId):
405         (WebCore::InspectorPageAgent::frameDestroyed):
406         * inspector/InspectorPageAgent.h:
407
408 2011-06-29  Pavel Feldman  <pfeldman@google.com>
409
410         Reviewed by Yury Semikhatsky.
411
412         Web Inspector: create status bar buttons programmatically. Add "Inspect" button to all panels.
413         https://bugs.webkit.org/show_bug.cgi?id=63450
414
415         Buttons should be created in code, not in HTML. Also making Inspect Element
416         action available on all panels (as an experiment).
417
418         * inspector/front-end/ConsoleView.js:
419         (WebInspector.ConsoleView.prototype.show):
420         (WebInspector.ConsoleView.prototype.hide):
421         * inspector/front-end/ElementsPanel.js:
422         (WebInspector.ElementsPanel):
423         (WebInspector.ElementsPanel.prototype.get statusBarItems):
424         (WebInspector.ElementsPanel.prototype.updateFocusedNode):
425         (WebInspector.ElementsPanel.prototype._setSearchingForNode):
426         (WebInspector.ElementsPanel.prototype.toggleSearchingForNode):
427         * inspector/front-end/inspector.css:
428         (button.dock-status-bar-item.status-bar-item .glyph):
429         (button.dock-status-bar-item.status-bar-item.toggled-on .glyph):
430         (.console-status-bar-item .glyph):
431         * inspector/front-end/inspector.html:
432         * inspector/front-end/inspector.js:
433         (WebInspector._createGlobalStatusBarItems):
434         (WebInspector.set attached):
435
436 2011-06-29  Pavel Feldman  <pfeldman@google.com>
437
438         Reviewed by Yury Semikhatsky.
439
440         Web Inspector: tab crash after deleting trailing quote when editing attribute
441         https://bugs.webkit.org/show_bug.cgi?id=63544
442
443         * inspector/InspectorDOMAgent.cpp:
444         (WebCore::InspectorDOMAgent::setAttributesText):
445         * inspector/front-end/ElementsTreeOutline.js:
446         (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted.moveToNextAttributeIfNeeded):
447         (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
448
449 2011-06-29  Vsevolod Vlasov  <vsevik@chromium.org>
450
451         Reviewed by Pavel Feldman.
452
453         Web Inspector: REGRESSION Inspector failing to load resource content after navigation. Safari.
454         https://bugs.webkit.org/show_bug.cgi?id=63480
455
456         * inspector/front-end/NetworkManager.js:
457         (WebInspector.NetworkDispatcher):
458         (WebInspector.NetworkDispatcher.prototype.resourceLoadedFromMemoryCache):
459
460 2011-06-29  Mike West  <mkwst@chromium.org>
461
462         Reviewed by Pavel Feldman.
463
464         Web Inspector: Missing fields in HAR
465         https://bugs.webkit.org/show_bug.cgi?id=58127
466         
467         Specifically, this patch adds:
468         - entry.request.httpVersion
469         - entry.request.headersSize
470         - entry.request.bodySize
471         - entry.response.httpVersion
472         - entry.response.headersSize
473         - entry.response.bodySize
474         - entry.response.content.compression
475         
476         Tests: http/tests/inspector/resource-har-conversion.html
477                http/tests/inspector/resource-har-headers.html
478                http/tests/inspector/resource-parameters.html
479                http/tests/inspector/network/network-size.html
480
481         * inspector/front-end/HAREntry.js:
482         (WebInspector.HAREntry.prototype.build):
483         (WebInspector.HAREntry.prototype._buildRequest):
484         (WebInspector.HAREntry.prototype._buildResponse):
485         (WebInspector.HAREntry.prototype._buildContent):
486         (WebInspector.HAREntry.prototype._buildCookie):
487         (WebInspector.HAREntry.prototype._interval):
488         (WebInspector.HAREntry.prototype.get requestBodySize):
489         (WebInspector.HAREntry.prototype.get responseBodySize):
490         (WebInspector.HAREntry.prototype.get responseCompression):
491         (WebInspector.HARLog.prototype.build):
492         * inspector/front-end/Resource.js:
493         (WebInspector.Resource.prototype.set requestHeaders):
494         (WebInspector.Resource.prototype.get requestHeadersText):
495         (WebInspector.Resource.prototype.set requestHeadersText):
496         (WebInspector.Resource.prototype.get requestHeadersSize):
497         (WebInspector.Resource.prototype.get requestHttpVersion):
498         (WebInspector.Resource.prototype.set responseHeaders):
499         (WebInspector.Resource.prototype.get responseHeadersText):
500         (WebInspector.Resource.prototype.set responseHeadersText):
501         (WebInspector.Resource.prototype.get responseHeadersSize):
502         (WebInspector.Resource.prototype.get responseHttpVersion):
503
504 2011-06-29  Hayato Ito  <hayato@chromium.org>
505
506         Reviewed by Hajime Morita.
507
508         Make a shadow host transfer a focus to the first focusable element in the shadow root when its focus() is called.
509         https://bugs.webkit.org/show_bug.cgi?id=62358.
510
511         This patch doesn't take an effect on the following elements to keep a compatibility.
512         - <input>, <textarea>, <video> and <audio> elements
513         We'll address these elements separately after re-targeting focus events
514         (bug 61421) is implemented.
515
516         A shadow root's <content> is not considered in this patch.
517         That should be addressed in another patch. See bug 63522.
518
519         Test: fast/dom/shadow/shadow-host-transfer-focus.html
520
521         * dom/Element.cpp:
522         (WebCore::Element::focus):
523         * page/FocusController.cpp:
524         (WebCore::shadowRoot):
525         (WebCore::isTreeScopeOwner):
526         (WebCore::FocusController::transferFocusToElementInShadowRoot):
527         (WebCore::hasCustomFocusLogic):
528         (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocumentOrShadowRoot):
529         (WebCore::FocusController::advanceFocusInDocumentOrder):
530         (WebCore::ownerOfTreeScope):
531         (WebCore::FocusController::findFocusableNodeAcrossTreeScope):
532         * page/FocusController.h:
533
534 2011-06-29  Ryan Sleevi  <rsleevi@chromium.org>
535
536         Reviewed by Dirk Schulze.
537
538         SVGRadialGradientElement::selfHasRelativeLengths() doesn't consider if cx() is relative
539         https://bugs.webkit.org/show_bug.cgi?id=61600
540
541         Correct the logic for checking for relative lengths in a SVGRadialGradientElement to consider cx() in addition to cy()
542         
543         No new tests, as there is no way to currently test this. With the bug present, a side-effect is causing the
544         expected/correct image to be rendered. This is because the cached SVG resource is getting invalided through a
545         different path, forcing a repaint. The repaint takes into consideration the proper dimensions, hiding the bug.
546
547         * svg/SVGRadialGradientElement.cpp:
548         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
549
550 2011-06-28  Dirk Schulze  <krit@webkit.org>
551
552         Reviewed by Nikolas Zimmermann.
553
554         SVGAnimatedType should support SVGBoolean animation
555         https://bugs.webkit.org/show_bug.cgi?id=63529
556
557         Follow up of "SVGAnimation should use direct unit animation for SVGLength": https://bugs.webkit.org/show_bug.cgi?id=61368
558         This patch continues the conversion to the new concept of SVGAnimatorFactory with SVGBoolean.
559         
560         The new animator does not affect any behavior, since it was animated with SVGAnimatedString before. The new animator is still needed
561         to support animVal and baseVal later.
562
563         Test: svg/animations/svgboolean-animation-1.html
564
565         * CMakeLists.txt: Add new file to build system.
566         * GNUmakefile.list.am: Ditto.
567         * WebCore.gypi: Ditto.
568         * WebCore.pro: Ditto.
569         * WebCore.xcodeproj/project.pbxproj: Ditto.
570         * svg/SVGAllInOne.cpp: Ditto.
571         * svg/SVGAnimateElement.cpp: Make use of AnimatedBoolean.
572         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
573         (WebCore::SVGAnimateElement::calculateAnimatedValue):
574         (WebCore::SVGAnimateElement::calculateFromAndToValues):
575         (WebCore::SVGAnimateElement::calculateFromAndByValues):
576         (WebCore::SVGAnimateElement::resetToBaseValue):
577         (WebCore::SVGAnimateElement::applyResultsToTarget):
578         (WebCore::SVGAnimateElement::calculateDistance):
579         * svg/SVGAnimatedBoolean.cpp: Added. New animator for SVGBoolean.
580         (WebCore::SVGAnimatedBooleanAnimator::SVGAnimatedBooleanAnimator):
581         (WebCore::SVGAnimatedBooleanAnimator::constructFromString):
582         (WebCore::SVGAnimatedBooleanAnimator::calculateFromAndToValues):
583         (WebCore::SVGAnimatedBooleanAnimator::calculateFromAndByValues):
584         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
585         (WebCore::SVGAnimatedBooleanAnimator::calculateDistance):
586         * svg/SVGAnimatedBoolean.h:
587         (WebCore::SVGAnimatedBooleanAnimator::~SVGAnimatedBooleanAnimator):
588         * svg/SVGAnimatedType.cpp: Use bool for SVGBoolean.
589         (WebCore::SVGAnimatedType::~SVGAnimatedType):
590         (WebCore::SVGAnimatedType::createBoolean):
591         (WebCore::SVGAnimatedType::boolean):
592         (WebCore::SVGAnimatedType::valueAsString):
593         (WebCore::SVGAnimatedType::setValueAsString):
594         * svg/SVGAnimatedType.h:
595         * svg/SVGAnimatorFactory.h: New crate function for SVGAnimatedSVGBooleanAnimator.
596         (WebCore::SVGAnimatorFactory::create):
597
598 2011-06-28  Dimitri Glazkov  <dglazkov@chromium.org>
599
600         Reviewed by Adam Barth.
601
602         Make applyAuthorSheets settable on ShadowRoot.
603         https://bugs.webkit.org/show_bug.cgi?id=63599
604
605         Refactoring and adding not-yet used function, tests to follow when API lands.
606
607         * dom/ShadowRoot.cpp:
608         (WebCore::ShadowRoot::ShadowRoot): Added initializer.
609         (WebCore::ShadowRoot::applyAuthorSheets): Made to use member variable.
610         (WebCore::ShadowRoot::setApplyAuthorSheets): Added.
611         * dom/ShadowRoot.h: Tweaked, added decls.
612
613 2011-06-28  Ilya Sherman  <isherman@chromium.org>
614
615         Reviewed by Adam Barth.
616
617         form.autocomplete="off" does not work
618         Rename the autoComplete() method for HTMLFormElement, HTMLFormControlElementWithState, and HTMLInputElement to shouldAutocomplete()
619         Add the autocomplete attribute to HTMLFormElement.idl and HTMLInputElement.idl
620         https://bugs.webkit.org/show_bug.cgi?id=35823
621
622         Test: fast/forms/autocomplete.html
623
624         * html/HTMLFormControlElement.cpp:
625         (WebCore::HTMLFormControlElementWithState::shouldAutocomplete): Renamed from ::autoComplete()
626         (WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState): Update callsite.
627         * html/HTMLFormControlElement.h:
628         * html/HTMLFormElement.cpp:
629         (WebCore::HTMLFormElement::~HTMLFormElement): Update callsite.
630         (WebCore::HTMLFormElement::parseMappedAttribute): Update callsite.
631         (WebCore::HTMLFormElement::documentDidBecomeActive): Update callsite.
632         (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Update callsite.
633         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Update callsite.
634         (WebCore::HTMLFormElement::shouldAutocomplete): Renamed from ::autoComplete()
635         * html/HTMLFormElement.h:
636         * html/HTMLFormElement.idl: Bind the autocomplete attribute to a JavaScript property.
637         * html/HTMLInputElement.cpp:
638         (WebCore::HTMLInputElement::shouldAutocomplete): Renamed from ::autoComplete()
639         * html/HTMLInputElement.h:
640         * html/HTMLInputElement.idl: Bind the autocomplete attribute to a JavaScript property.
641         * WebCore.exp.in: Updated autoComplete() -> shouldAutocomplete()
642
643 2011-06-28  Dimitri Glazkov  <dglazkov@chromium.org>
644
645         Reviewed by Kent Tamura.
646
647         Store shadowPseudoId in ElementRareData.
648         https://bugs.webkit.org/show_bug.cgi?id=63604
649
650         No new tests, because the code isn't yet used.
651
652         * css/CSSSelector.cpp:
653         (WebCore::CSSSelector::isUnknownPseudoType): Added convenience helper.
654         * css/CSSSelector.h: Added decl.
655         * dom/Element.cpp:
656         (WebCore::Element::shadowPseudoId): Changed to use ElementRareData.
657         (WebCore::Element::setShadowPseudoId): Ditto.
658         * dom/Element.h: Added decls.
659         * dom/ElementRareData.h: Added a member to keep shadowPseudoId.
660
661 2011-06-28  Kenichi Ishibashi  <bashi@chromium.org>
662
663         Reviewed by Tony Chang.
664
665         [Chromium] Remove dependencies on harfbuzz from FontPlatformDataLinux and FontLinux
666         https://bugs.webkit.org/show_bug.cgi?id=62530
667
668         - Moved codes of FontLinux which depend on harfbuzz APIs to ComplexTextController.  Removed Some methods of ComplexTextController(advances() and logClusters()) since they are no longer needed.
669         - Moved RefCountedHarfbuzzFace from FontPlatformDataLinux to HarfbuzzSkia and renamed it to HarfbuzzFace.
670
671         No new tests because there is no behavior change (The existing tests should cover the changes).
672
673         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
674         (WebCore::ComplexTextController::ComplexTextController): Added arguments so eliminating setter invocations.
675         (WebCore::ComplexTextController::setupForRTL): Added.
676         (WebCore::ComplexTextController::setupFontForScriptRun): Adopt the change of HarfbuzzFace class.
677         (WebCore::ComplexTextController::setGlyphPositions): Use m_item.log_clusters instead of removed method.
678         (WebCore::ComplexTextController::glyphIndexForXPositionInScriptRun): Added.
679         (WebCore::ComplexTextController::offsetForPosition): Ditto.
680         (WebCore::ComplexTextController::selectionRect): Ditto.
681         * platform/graphics/chromium/ComplexTextControllerLinux.h:
682         (WebCore::ComplexTextController::width):
683         * platform/graphics/chromium/FontLinux.cpp: Removed truncateFixedPointToInteger().
684         (WebCore::Font::drawComplexText): Removed setter invocations of ComplexTextController.
685         (WebCore::Font::floatWidthForComplexText): Ditto.
686         (WebCore::Font::offsetForPositionForComplexText): Moved harfbuzz dependent code to ComplexTextController.
687         (WebCore::Font::selectionRectForComplexText): Ditto.
688         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
689         (WebCore::FontPlatformData::harfbuzzFace): Wrapped up HB_FaceRec in HarfbuzzFace class.
690         * platform/graphics/chromium/FontPlatformDataLinux.h: Moved RefCountedHarfbuzzFace class and renamed to HarfbuzzFace.
691         * platform/graphics/chromium/HarfbuzzSkia.cpp:
692         (WebCore::allocHarfbuzzFont): Moved from ComplexTextControllerLinux.cpp.
693         (WebCore::HarfbuzzFace::HarfbuzzFace): Added.
694         (WebCore::HarfbuzzFace::~HarfbuzzFace): Added.
695         * platform/graphics/chromium/HarfbuzzSkia.h:
696         (WebCore::HarfbuzzFace::create): Added.
697         (WebCore::HarfbuzzFace::face): Added.
698         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:
699         (WebCore::substituteWithVerticalGlyphs): Adopt  the change of HarfbuzzFace class.
700
701 2011-06-28  Roland Steiner  <rolandsteiner@chromium.org>
702
703         Reviewed by Eric Seidel.
704
705         Bug 55930 - (CVE-2011-1440) Incorrect handling of 'display:' property within nested <ruby> tags
706         https://bugs.webkit.org/show_bug.cgi?id=55930
707
708         Don't set style type BEFORE/AFTER on anonymous wrapper block.
709         Rather, check style type on generated wrapped child.
710
711         Tests: fast/ruby/generated-after-counter-doesnt-crash.html
712                fast/ruby/generated-before-and-after-counter-doesnt-crash.html
713                fast/ruby/generated-before-counter-doesnt-crash.html
714
715         * rendering/RenderRuby.cpp:
716         (WebCore::isAnonymousRubyInlineBlock):
717         (WebCore::isRubyBeforeBlock):
718         (WebCore::isRubyAfterBlock):
719         (WebCore::rubyBeforeBlock):
720         (WebCore::rubyAfterBlock):
721         (WebCore::createAnonymousRubyInlineBlock):
722         (WebCore::RenderRubyAsInline::addChild):
723         (WebCore::RenderRubyAsBlock::addChild):
724
725 2011-06-28  Emil A Eklund  <eae@chromium.org>
726
727         Reviewed by Eric Seidel.
728
729         Switch RenderLayer position/size to to new layout types
730         https://bugs.webkit.org/show_bug.cgi?id=63578
731
732         Switch location and size methods for RenderLayer over to the new layout unit abstraction.
733         
734         No new tests, no functionality changes.
735
736         * rendering/RenderLayer.cpp:
737         (WebCore::RenderLayer::resize):
738         (WebCore::RenderLayer::visibleHeight):
739         (WebCore::RenderLayer::visibleWidth):
740         (WebCore::RenderLayer::offsetFromResizeCorner):
741         * rendering/RenderLayer.h:
742         (WebCore::RenderLayer::location):
743         (WebCore::RenderLayer::setLocation):
744         (WebCore::RenderLayer::size):
745         (WebCore::RenderLayer::setSize):
746         (WebCore::RenderLayer::rect):
747         (WebCore::RenderLayer::renderBoxLocation):
748         (WebCore::RenderLayer::renderBoxX):
749         (WebCore::RenderLayer::renderBoxY):
750         * rendering/RenderListBox.cpp:
751         (WebCore::RenderListBox::visibleHeight):
752         (WebCore::RenderListBox::visibleWidth):
753         * rendering/RenderListBox.h:
754
755 2011-06-28  Levi Weintraub  <leviw@chromium.org>
756
757         Reviewed by Eric Seidel.
758
759         Switch paintObject and paintReplaced to new layout types
760         https://bugs.webkit.org/show_bug.cgi?id=63585
761
762         Switching paintObject and paintReplaced to layout type abstractions from more integral types.
763
764         No new tests as this is just moving to an abstraction.
765
766         * rendering/RenderBlock.cpp:
767         (WebCore::RenderBlock::paintObject):
768         * rendering/RenderBlock.h:
769         * rendering/RenderBox.h:
770         (WebCore::RenderBox::paintObject):
771         * rendering/RenderEmbeddedObject.cpp:
772         (WebCore::RenderEmbeddedObject::paintReplaced):
773         * rendering/RenderEmbeddedObject.h:
774         * rendering/RenderFileUploadControl.cpp:
775         (WebCore::RenderFileUploadControl::paintObject):
776         * rendering/RenderFileUploadControl.h:
777         * rendering/RenderHTMLCanvas.cpp:
778         (WebCore::RenderHTMLCanvas::paintReplaced):
779         * rendering/RenderHTMLCanvas.h:
780         * rendering/RenderImage.cpp:
781         (WebCore::RenderImage::paintReplaced):
782         * rendering/RenderImage.h:
783         * rendering/RenderListBox.cpp:
784         (WebCore::RenderListBox::paintObject):
785         * rendering/RenderListBox.h:
786         * rendering/RenderReplaced.h:
787         (WebCore::RenderReplaced::paintReplaced):
788         * rendering/RenderTable.cpp:
789         (WebCore::RenderTable::paintObject):
790         * rendering/RenderTable.h:
791         * rendering/RenderTableSection.cpp:
792         (WebCore::RenderTableSection::paintObject):
793         * rendering/RenderTableSection.h:
794         * rendering/RenderTextControl.cpp:
795         (WebCore::RenderTextControl::paintObject):
796         * rendering/RenderTextControl.h:
797         * rendering/RenderVideo.cpp:
798         (WebCore::RenderVideo::paintReplaced):
799         * rendering/RenderVideo.h:
800
801 2011-06-28  Adam Langley  <agl@chromium.org>
802
803         Reviewed by Adam Barth.
804
805         Skip cache validation on back with HTTPS.
806         https://bugs.webkit.org/show_bug.cgi?id=63537
807
808         For back navigations over HTTP, WebKit sets a flag to use cached data
809         irrespective of whether it has expired. However, this isn't currently
810         done for HTTPS.
811
812         The logic in question was added in
813         https://bugs.webkit.org/show_bug.cgi?id=33993 and appears to have been
814         precautionary. However, both Firefox and IE will use this back
815         navigation trick for HTTPS as well and so we should probably behave
816         likewise.
817
818         Test: http/tests/cache/history-only-cached-subresource-loads-max-age-https.html
819
820         * loader/FrameLoader.cpp:
821         (WebCore::FrameLoader::addExtraFieldsToRequest):
822
823 2011-06-28  Dimitri Glazkov  <dglazkov@chromium.org>
824
825         Reviewed by Adam Barth.
826
827         Remove errant isShadowBoundary on ShadowRoot.
828         https://bugs.webkit.org/show_bug.cgi?id=63588
829
830         Removing dead code, no tests for that.
831
832         * dom/ShadowRoot.h: Removed a function that's no longer used.
833
834 2011-06-28  Zeng Huiqing  <huiqing.zeng@intel.com>
835
836         Reviewed by Kenneth Russell.
837
838         [chromium]Optimize GraphicsLayerChromium::setChildren()
839         https://bugs.webkit.org/show_bug.cgi?id=62837
840
841         No new tests. 
842
843         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
844         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
845         (WebCore::GraphicsLayerChromium::setChildren):
846         (WebCore::GraphicsLayerChromium::addChild):
847         * platform/graphics/chromium/GraphicsLayerChromium.h:
848
849 2011-06-28  Levi Weintraub  <leviw@chromium.org>
850
851         Reviewed by Eric Seidel.
852
853         Switch paintBoxShadow and paintBoxDecorations to new layout types
854         https://bugs.webkit.org/show_bug.cgi?id=63577
855
856         Switching paintBoxShadow and paintBoxDecorations to layout type abstraction 
857         from more integral types.
858
859         No new tests as this is just moving to an abstraction.
860
861         * rendering/InlineFlowBox.cpp:
862         (WebCore::InlineFlowBox::paintBoxShadow):
863         (WebCore::InlineFlowBox::paintBoxDecorations):
864         * rendering/InlineFlowBox.h:
865         * rendering/RenderBox.cpp:
866         (WebCore::RenderBox::paintBoxDecorations):
867         * rendering/RenderBox.h:
868         * rendering/RenderBoxModelObject.cpp:
869         (WebCore::RenderBoxModelObject::paintBoxShadow):
870         * rendering/RenderBoxModelObject.h:
871         * rendering/RenderFieldset.cpp:
872         (WebCore::RenderFieldset::paintBoxDecorations):
873         * rendering/RenderFieldset.h:
874         * rendering/RenderTable.cpp:
875         (WebCore::RenderTable::paintBoxDecorations):
876         * rendering/RenderTable.h:
877         * rendering/RenderTableCell.cpp:
878         (WebCore::RenderTableCell::paintBoxDecorations):
879         * rendering/RenderTableCell.h:
880         * rendering/RenderView.cpp:
881         (WebCore::RenderView::paintBoxDecorations):
882         * rendering/RenderView.h:
883
884 2011-06-28  Emil A Eklund  <eae@chromium.org>
885
886         Reviewed by Eric Seidel.
887
888         Switch RenderBox position/size to to new layout types
889         https://bugs.webkit.org/show_bug.cgi?id=63571
890
891         Switch location and size methods for RenderBox over to the new layout unit abstraction.
892
893         No new tests, no functionality changes.
894
895         * rendering/RenderBox.cpp:
896         * rendering/RenderBox.h:
897         * rendering/RenderBoxModelObject.cpp:
898         * rendering/RenderBoxModelObject.h:
899         * rendering/RenderInline.cpp:
900         * rendering/RenderInline.h:
901         * rendering/RenderVideo.cpp:
902         * rendering/RenderVideo.h:
903
904 2011-06-28  Sheriff Bot  <webkit.review.bot@gmail.com>
905
906         Unreviewed, rolling out r89968.
907         http://trac.webkit.org/changeset/89968
908         https://bugs.webkit.org/show_bug.cgi?id=63581
909
910         Broke chromium windows compile (Requested by jamesr on
911         #webkit).
912
913         * WebCore.gyp/WebCore.gyp:
914         * loader/cache/CachedFont.cpp:
915         * platform/chromium/DragImageRef.h:
916         * platform/graphics/FloatPoint.h:
917         * platform/graphics/FloatRect.h:
918         * platform/graphics/FloatSize.h:
919         * platform/graphics/FontPlatformData.h:
920         (WebCore::FontPlatformData::hash):
921         * platform/graphics/GlyphBuffer.h:
922         (WebCore::GlyphBuffer::advanceAt):
923         (WebCore::GlyphBuffer::add):
924         (WebCore::GlyphBuffer::expandLastAdvance):
925         * platform/graphics/IntPoint.h:
926         * platform/graphics/IntRect.h:
927         * platform/graphics/IntSize.h:
928         * platform/graphics/SimpleFontData.h:
929         * platform/graphics/cg/FloatPointCG.cpp:
930         * platform/graphics/cg/FloatRectCG.cpp:
931         * platform/graphics/cg/FloatSizeCG.cpp:
932         * platform/graphics/cg/IntPointCG.cpp:
933         * platform/graphics/cg/IntRectCG.cpp:
934         * platform/graphics/cg/IntSizeCG.cpp:
935         * platform/graphics/mac/FontCustomPlatformData.cpp:
936         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
937         (WebCore::createFontCustomPlatformData):
938         * platform/graphics/mac/FontCustomPlatformData.h:
939         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
940
941 2011-06-28  Levi Weintraub  <leviw@chromium.org>
942
943         Reviewed by Eric Seidel.
944
945         Switch PaintMask* to new layout types
946         https://bugs.webkit.org/show_bug.cgi?id=63576
947
948         Switching paintMask* to layout type abstraction from more integral types.
949
950         No new tests as this is just moving to an abstraction.
951
952         * rendering/InlineFlowBox.cpp:
953         (WebCore::InlineFlowBox::paintMask):
954         * rendering/InlineFlowBox.h:
955         * rendering/RenderBox.cpp:
956         (WebCore::RenderBox::paintMask):
957         (WebCore::RenderBox::paintMaskImages):
958         * rendering/RenderBox.h:
959         * rendering/RenderFieldset.cpp:
960         (WebCore::RenderFieldset::paintMask):
961         * rendering/RenderFieldset.h:
962         * rendering/RenderTable.cpp:
963         (WebCore::RenderTable::paintMask):
964         * rendering/RenderTable.h:
965         * rendering/RenderTableCell.cpp:
966         (WebCore::RenderTableCell::paintMask):
967         * rendering/RenderTableCell.h:
968
969 2011-06-28  Levi Weintraub  <leviw@chromium.org>
970
971         Reviewed by Eric Seidel.
972
973         Switch paintFillLayer* to new layout types
974         https://bugs.webkit.org/show_bug.cgi?id=63570
975
976         Switching painFillLayer* to layout type abstraction from more integral types.
977
978         No new tests as this is just moving to an abstraction.
979
980         * rendering/InlineFlowBox.cpp:
981         (WebCore::InlineFlowBox::paintFillLayers):
982         (WebCore::InlineFlowBox::paintFillLayer):
983         * rendering/InlineFlowBox.h:
984         * rendering/RenderBox.cpp:
985         (WebCore::RenderBox::paintFillLayers):
986         (WebCore::RenderBox::paintFillLayer):
987         * rendering/RenderBox.h:
988         * rendering/RenderBoxModelObject.cpp:
989         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
990         * rendering/RenderBoxModelObject.h:
991         * rendering/RenderObject.h:
992
993 2011-06-28  Luke Macpherson   <macpherson@chromium.org>
994
995         Reviewed by Eric Seidel.
996
997         Use appropriate macro for CSSPropertyWebkitAppearance in CSSStyleSelector::applyProperty()
998         https://bugs.webkit.org/show_bug.cgi?id=63197
999
1000         No new tests / no functionality changed.
1001
1002         * css/CSSStyleSelector.cpp:
1003         (WebCore::CSSStyleSelector::applyProperty):
1004         Use HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro and delete duplicate code.
1005
1006 2011-06-28  Cary Clark  <caryclark@google.com>
1007
1008         Reviewed by James Robinson.
1009
1010         Use Skia if Skia on Mac Chrome is enabled
1011         https://bugs.webkit.org/show_bug.cgi?id=62999
1012
1013         No new tests. This does not affect existing
1014         functionality.
1015
1016         * WebCore.gyp/WebCore.gyp:
1017         Include Skia and related files and exclude CG
1018         and related files when building Chromium for Skia
1019         on the Mac.
1020
1021         * loader/cache/CachedFont.cpp:
1022         Rename CHROME to CHROMIUM.
1023
1024         * platform/chromium/DragImageRef.h:
1025         * platform/graphics/FloatPoint.h:
1026         * platform/graphics/FloatRect.h:
1027         * platform/graphics/FloatSize.h:
1028         * platform/graphics/FontPlatformData.h:
1029         (WebCore::FontPlatformData::hash):
1030         * platform/graphics/GlyphBuffer.h:
1031         (WebCore::GlyphBuffer::advanceAt):
1032         (WebCore::GlyphBuffer::add):
1033         (WebCore::GlyphBuffer::expandLastAdvance):
1034         * platform/graphics/IntPoint.h:
1035         * platform/graphics/IntRect.h:
1036         * platform/graphics/IntSize.h:
1037         * platform/graphics/SimpleFontData.h:
1038         * platform/graphics/cg/FloatPointCG.cpp:
1039         * platform/graphics/cg/FloatRectCG.cpp:
1040         * platform/graphics/cg/FloatSizeCG.cpp:
1041         * platform/graphics/cg/IntPointCG.cpp:
1042         * platform/graphics/cg/IntRectCG.cpp:
1043         * platform/graphics/cg/IntSizeCG.cpp:
1044         * platform/graphics/mac/FontCustomPlatformData.cpp:
1045         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1046         (WebCore::createFontCustomPlatformData):
1047         * platform/graphics/mac/FontCustomPlatformData.h:
1048         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1049         Ditto.
1050
1051 2011-06-28  Ryosuke Niwa  <rniwa@webkit.org>
1052
1053         Reviewed by Darin Adler.
1054
1055         Stop instantiating Position with PositionIsOffsetInAnchor in various files
1056         https://bugs.webkit.org/show_bug.cgi?id=63384
1057
1058         Refactoring.
1059
1060         Removed many if conditions that compared the anchor type to Position::PositionIsOffsetInAnchor
1061         because there were also checking that containerNode is a text node.
1062
1063         Also added Position::containerText() to avoid manually casting containerNode().
1064
1065         * dom/Position.cpp:
1066         (WebCore::Position::Position): Added an assertion to ensure BeforeChildren/AfterChildren
1067         anchor type won't be used for a node whose contents is ignored by editing.
1068         (WebCore::Position::containerText): Added.
1069         * dom/Position.h:
1070         * editing/ApplyBlockElementCommand.cpp:
1071         (WebCore::isNewLineAtPosition): Removed a redundant comparison of anchor type.
1072         (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): Since containerNode
1073         is always a text node when renderStyleOfEnclosingTextNode returns a render style, use new Position
1074         constructor that takes Text* and offset.
1075         (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded): Removed redundant
1076         comparison of anchor type and use new Position constructor that takes Text* and offset.
1077         * editing/ApplyStyleCommand.cpp:
1078         (WebCore::ApplyStyleCommand::splitTextAtStart): Replaced an assertion that compared anchor type by
1079         an assertion that the container node is a text node; use new constructor.
1080         (WebCore::ApplyStyleCommand::splitTextAtEnd): Ditto; also added early exits in the case script
1081         modified DOM.
1082         (WebCore::ApplyStyleCommand::splitTextElementAtStart): Ditto.
1083         (WebCore::ApplyStyleCommand::splitTextElementAtEnd): Ditto.
1084         (WebCore::ApplyStyleCommand::joinChildTextNodes): Use new constructor.
1085         * editing/CompositeEditCommand.cpp:
1086         (WebCore::Editor::replaceSelectedTextInNode): Calls containerText instead of manually casting containerNode.
1087         * editing/Editor.cpp:
1088         (WebCore::Editor::canDeleteRange): Call Range::startPosition instead of manually instantiating Position
1089         by calling startContainer and startOffset.
1090         * editing/FrameSelection.cpp:
1091         (WebCore::FrameSelection::setSelectedRange): Ditto.
1092         * editing/InsertTextCommand.cpp:
1093         (WebCore::InsertTextCommand::input): Calls containerText instead of manually casting containerNode.
1094         * editing/ReplaceSelectionCommand.cpp:
1095         (WebCore::ReplaceSelectionCommand::doApply): Calls containerText instead of manually casting containerNode.
1096         * editing/VisiblePosition.cpp:
1097         (WebCore::VisiblePosition::characterAfter): Removed a redundant anchor type comparison.
1098         (WebCore::startVisiblePosition): Call Range::startPosition instead of startContainer and startOffset.
1099         (WebCore::endVisiblePosition): Call Range::endPosition instead of endContainer and endOffset.
1100         * editing/htmlediting.cpp:
1101         (WebCore::firstInSpecialElement): Call containerNode() to address <rdar://problem/5027702>.
1102         (WebCore::lastInSpecialElement): Ditto; use new constructor.
1103         * editing/visible_units.cpp:
1104         (WebCore::endPositionForLine): Use new constructor.
1105         (WebCore::startOfParagraph): Ditto.
1106         (WebCore::endOfParagraph): Ditto.
1107
1108 2011-06-28  Rob Buis  <rbuis@rim.com>
1109
1110         Reviewed by Nikolas Zimmermann.
1111
1112         SVG1.1SE test text-tref-03-b.svg fails
1113         https://bugs.webkit.org/show_bug.cgi?id=63390
1114
1115         Support tref on forward referenced content by listening to DOMSubtreeModified events. This also
1116         allows updating after modifications in the referenced content subtree.
1117
1118         Tests: svg/W3C-SVG-1.1-SE/text-tref-03-b.svg
1119                svg/custom/text-tref-03-b-change-href-dom.svg
1120                svg/custom/text-tref-03-b-change-href.svg
1121                svg/custom/text-tref-03-b-dynamic.svg
1122                svg/custom/text-tref-03-b-dynamic2.svg
1123                svg/custom/text-tref-03-b-referenced-element-removal.svg
1124                svg/custom/text-tref-03-b-tref-removal.svg
1125
1126         * svg/SVGTRefElement.cpp:
1127         (WebCore::SubtreeModificationEventListener::create):
1128         (WebCore::SubtreeModificationEventListener::cast):
1129         (WebCore::SubtreeModificationEventListener::removeFromTarget):
1130         (WebCore::SubtreeModificationEventListener::SubtreeModificationEventListener):
1131         (WebCore::SubtreeModificationEventListener::operator==):
1132         (WebCore::SubtreeModificationEventListener::handleEvent):
1133         (WebCore::SVGTRefElement::updateReferencedText):
1134         (WebCore::SVGTRefElement::parseMappedAttribute):
1135         (WebCore::SVGTRefElement::svgAttributeChanged):
1136         (WebCore::SVGTRefElement::buildPendingResource):
1137         (WebCore::SVGTRefElement::removedFromDocument):
1138         * svg/SVGTRefElement.h:
1139
1140 2011-06-28  Abhishek Arya  <inferno@chromium.org>
1141
1142         Reviewed by Anders Carlsson.
1143
1144         Split the string creation into a local (while creating text runs)
1145         so that it is not destroyed prematurely.
1146         https://bugs.webkit.org/show_bug.cgi?id=63543
1147
1148         Run fast/forms/text-control-intrinsic-widths.html under valgrind/ASAN.       
1149         * rendering/RenderFileUploadControl.cpp:
1150         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
1151         this one is just done for caution, in case, we don't do the same
1152         mistake when adding legacy rounding hacks option.
1153         * rendering/RenderTextControl.cpp:
1154         (WebCore::RenderTextControl::getAvgCharWidth):
1155
1156 2011-06-28  Greg Simon  <gregsimon@chromium.org>
1157
1158         Reviewed by Dimitri Glazkov.
1159
1160         Migrate SQLite backing store to LevelDB backing store for Indexeddb.
1161         https://bugs.webkit.org/show_bug.cgi?id=62780
1162
1163         * storage/IDBFactoryBackendImpl.cpp:
1164         (WebCore::computeFileIdentifier):
1165         (WebCore::computeUniqueIdentifier):
1166         (WebCore::IDBFactoryBackendImpl::open):
1167         (WebCore::migrateObjectStores):
1168         (WebCore::IDBFactoryBackendImpl::migrateFromSQLiteToLevelDB):
1169         * storage/IDBLevelDBBackingStore.cpp:
1170         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
1171         * storage/IDBLevelDBBackingStore.h:
1172         * storage/IDBObjectStoreBackendImpl.cpp:
1173         (WebCore::IDBObjectStoreBackendImpl::populateIndex):
1174         * storage/IDBObjectStoreBackendImpl.h:
1175         * storage/IDBSQLiteBackingStore.cpp:
1176         (WebCore::IDBSQLiteBackingStore::backingStoreExists):
1177         * storage/IDBSQLiteBackingStore.h:
1178
1179 2011-06-28  Levi Weintraub  <leviw@chromium.org>
1180
1181         Reviewed by Darin Adler.
1182
1183         Create intermediate classes as a path towards getting off of pixel offsets
1184         https://bugs.webkit.org/show_bug.cgi?id=61896
1185
1186         Creating three intermediate typedefs to aid in moving layout and hit testing from integers
1187         to floats. We'll transition the render tree over to these intermediate types and add
1188         infrastructure to support the new types behind USE(FLOAT_LAYOUT_OFFSETS). This allows the ultimate
1189         changeover to be easier.
1190
1191         Switching LayoutState over to this abstraction to verify it works correctly.
1192
1193         No new tests since this is creating a new abstraction, not changing current behavior.
1194
1195         * GNUmakefile.list.am:
1196         * WebCore.gypi:
1197         * WebCore.pro:
1198         * WebCore.vcproj/WebCore.vcproj:
1199         * WebCore.xcodeproj/project.pbxproj:
1200         * rendering/LayoutState.cpp:
1201         (WebCore::LayoutState::LayoutState):
1202         (WebCore::LayoutState::pageLogicalOffset):
1203         (WebCore::LayoutState::addForcedColumnBreak):
1204         * rendering/LayoutState.h:
1205         * rendering/LayoutTypes.h: Added.
1206
1207 2011-06-28  Jeff Miller  <jeffm@apple.com>
1208
1209         Add fullscreen.css and fullscreenQuickTime.css to the WebCore Visual Studio project for convenience.
1210         Looks like Visual Studio also re-sorted one more file since my last checkin.
1211
1212         * WebCore.vcproj/WebCore.vcproj:
1213
1214 2011-06-28  Jeff Miller  <jeffm@apple.com>
1215
1216         Re-sort the WebCore project with Visual Studio after recent changes that I assume were done by manually editing the XML.
1217
1218         * WebCore.vcproj/WebCore.vcproj:
1219
1220 2011-06-28  Joone Hur  <joone.hur@collabora.co.uk>
1221
1222         Reviewed by Martin Robinson.
1223
1224         [GTK] Rename 3D transforms to 3D rendering
1225         https://bugs.webkit.org/show_bug.cgi?id=63508
1226
1227         This patch allows to include ENABLE_3D_RENDERING to build WebKitGtk+.
1228
1229         * GNUmakefile.am: Add ENABLE_3D_RENDERING
1230
1231 2011-06-22  Pavel Podivilov  <podivilov@chromium.org>
1232
1233         Reviewed by Yury Semikhatsky.
1234
1235         Web Inspector: use column numbers when linking to script location in timeline and console.
1236         https://bugs.webkit.org/show_bug.cgi?id=63126
1237
1238         * inspector/front-end/ConsoleView.js:
1239         (WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
1240         * inspector/front-end/TimelinePanel.js:
1241         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
1242         (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
1243
1244 2011-06-28  Joone Hur  <joone.hur@collabora.co.uk>
1245
1246         Reviewed by Martin Robinson.
1247
1248         [GTK] Allow to build WebKitGtk+ with accelerated compositing
1249         https://bugs.webkit.org/show_bug.cgi?id=63404
1250
1251         WebKitGtk+ needs to implement accelerated compositing for running CSS3 3D transforms 
1252         and animation through GPU acceleration. We could implement GraphicsLayer using Clutter.
1253
1254         * GNUmakefile.list.am:
1255         * platform/graphics/clutter/GraphicsLayerClutter.cpp: Added.
1256         (WebCore::GraphicsLayer::create): Not implemented yet.
1257         (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
1258         (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
1259         (WebCore::GraphicsLayerClutter::setNeedsDisplay): Ditto.
1260         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Ditto.
1261         * platform/graphics/clutter/GraphicsLayerClutter.h: Added.
1262
1263 2011-06-28  Dan Bernstein  <mitz@apple.com>
1264
1265         Reviewed by Darin Adler.
1266
1267         REGRESSION (r89733): fast/text/zero-font-size.html is failing on Leopard
1268         https://bugs.webkit.org/show_bug.cgi?id=63512
1269
1270         * platform/graphics/mac/SimpleFontDataMac.mm:
1271         (WebCore::SimpleFontData::platformWidthForGlyph): Initialize the advance local variable, because
1272         on Leopard wkGetGlyphTransformedAdvances can return successfully yet not update the variable when
1273         the font size is 0. Presumably, r89733 exposed this by changing the values put on the stack just
1274         before this function is called.
1275
1276 2011-06-27  Alexander Pavlov  <apavlov@chromium.org>
1277
1278         Reviewed by Pavel Feldman.
1279
1280         Web Inspector: Change the inspector model API and backend to allow CSS pseudoclass inspection
1281         https://bugs.webkit.org/show_bug.cgi?id=63446
1282
1283         * inspector/Inspector.json:
1284         * inspector/InspectorCSSAgent.cpp:
1285         (WebCore::computePseudoClassMask):
1286         (WebCore::InspectorCSSAgent::getStylesForNode):
1287         * inspector/InspectorCSSAgent.h:
1288         * inspector/front-end/AuditRules.js:
1289         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
1290         * inspector/front-end/CSSStyleModel.js:
1291         (WebInspector.CSSStyleModel.prototype.getStylesAsync):
1292         * inspector/front-end/StylesSidebarPane.js:
1293         (WebInspector.StylesSidebarPane.prototype.update):
1294
1295 2011-06-28  Kent Tamura  <tkent@chromium.org>
1296
1297         Fix a build error on Mac by r89907.
1298
1299         * svg/animation/SVGSMILElement.cpp:
1300         (WebCore::SVGSMILElement::endListChanged):
1301
1302 2011-06-27  Alexander Pavlov  <apavlov@chromium.org>
1303
1304         Reviewed by Kent Tamura.
1305
1306         [Chromium] SELECT or autofill popup is trimmed by screen edge on Windows
1307         https://bugs.webkit.org/show_bug.cgi?id=63438
1308
1309         If the popup is calculated to be trimmed by a screen edge, an attempt is made
1310         to alter its vertical edge alignment (set to the right edge for LTR or to the left edge for RTL)
1311         to see if the trimmed portion becomes smaller than that with the original layout.
1312         The change involves remembering the original frameRect for the popup and restoring it in refresh().
1313         This is due to the fact that the frameRect originally set in showInRect() is overwritten
1314         by layoutAndGetRTLOffset(), which breaks the originally requested popup container layout metrics.
1315         The max width is reset on every layoutAndCalculateWidgetRect(), as it can be constrained by the screen edge,
1316         and thus should be re-checked every time the popup is displayed, in case the browser window has been moved.
1317
1318         Tests: manual-tests/popup-width-restriction-within-screen.html partly covers the fix (should not regress).
1319         Other than that, there is no way to unit-test the platform-specific native code.
1320
1321         * platform/chromium/PopupMenuChromium.cpp:
1322         (WebCore::PopupListBox::setMaxWidth): Added. Avoid duplicate popup content layouts (in contrast with setMaxWidthAndLayout()).
1323         (WebCore::PopupListBox::PopupListBox):
1324         (WebCore::PopupContainer::layoutAndCalculateWidgetRect): Attempt a left-right popup alignment inversion
1325         to minimize the trimmed content. Also restore a default max popup width.
1326         (WebCore::PopupContainer::layoutAndGetRTLOffset): Always return the popup listbox offset for the RTL (right alignment) case.
1327         The method rename is due to the return value semantics change.
1328         (WebCore::PopupContainer::showInRect): Store the originally requested frameRect for the popup.
1329         (WebCore::PopupContainer::refresh): Restore the original popup frameRect to avoid layout artifacts on refresh.
1330         (WebCore::PopupContainer::isRTL): This check should be made by the layoutAndGetRTLOffset() clients.
1331         * platform/chromium/PopupMenuChromium.h:
1332
1333 2011-06-28  Kentaro Hara  <haraken@google.com>
1334
1335         Reviewed by Kent Tamura.
1336
1337         Allow spaces between e-mail addresses in 'email' input type.
1338         https://bugs.webkit.org/show_bug.cgi?id=55987
1339
1340         Allowed spaces between e-mail addresses in 'email' input type,
1341         e.g. ' a@p.com , b@p.com ' is a valid value. Implemented the
1342         value sanitization algorithm for an e-mail value.  Added more unit
1343         tests that check the e-mail value parser.
1344
1345         Test: fast/forms/ValidityState-typeMismatch-email.html
1346
1347         * html/EmailInputType.cpp:
1348         (WebCore::EmailInputType::typeMismatchFor):
1349         (WebCore::EmailInputType::sanitizeValue):
1350         * html/EmailInputType.h:
1351         * html/parser/HTMLParserIdioms.cpp:
1352         (WebCore::stripHTMLLineBreaks):
1353         * html/parser/HTMLParserIdioms.h:
1354         (WebCore::isHTMLLineBreak):
1355
1356 2011-06-28  Kent Tamura  <tkent@chromium.org>
1357
1358         Reviewed by Hajime Morita.
1359
1360         Refactor RenderTextControl::text().
1361         https://bugs.webkit.org/show_bug.cgi?id=63519
1362
1363         No new tests because this is just a refactoring.
1364
1365         * rendering/RenderTextControl.cpp:
1366         (WebCore::RenderTextControl::setInnerTextValue):
1367          Resuce the number of text() calls.
1368         (WebCore::finishText):
1369           - Use StringBuilder.
1370           - Make this a static function.
1371             This function doesn't access anything of RenderTextControl.
1372         (WebCore::RenderTextControl::text):
1373          Use emptyString() and StringBuilder.
1374         (WebCore::RenderTextControl::textWithHardLineBreaks): ditto.
1375         * rendering/RenderTextControl.h: Remove finishText().
1376
1377 2011-06-28  Yury Semikhatsky  <yurys@chromium.org>
1378
1379         Reviewed by Pavel Feldman.
1380
1381         Web Inspector: console.group messages should never be coalesced
1382         https://bugs.webkit.org/show_bug.cgi?id=63521
1383
1384         * inspector/InspectorConsoleAgent.cpp:
1385         (WebCore::isGroupMessage):
1386         (WebCore::InspectorConsoleAgent::addConsoleMessage):
1387
1388 2011-06-28  Yury Semikhatsky  <yurys@chromium.org>
1389
1390         Reviewed by Pavel Feldman.
1391
1392         Web Inspector: console group boundaries should be more distinct in UI
1393         https://bugs.webkit.org/show_bug.cgi?id=63455
1394
1395         Show grey bracket to on the left side of a console group message to highlight
1396         the group extent.
1397
1398         * inspector/front-end/ConsoleView.js:
1399         (WebInspector.ConsoleGroup):
1400         * inspector/front-end/inspector.css:
1401         (#console-prompt):
1402         (.console-message, .console-user-command):
1403         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
1404         (.console-group-title::before):
1405         (.console-group):
1406         (.console-group-bracket):
1407         (.console-group.collapsed > .console-group-bracket):
1408
1409 2011-06-28  Kent Tamura  <tkent@chromium.org>
1410
1411         Reviewed by Hajime Morita.
1412
1413         Use RefPtr for the HTMLElement data members of TextFieldInptType
1414         and SearchInputType.
1415         https://bugs.webkit.org/show_bug.cgi?id=63511
1416
1417         No new tests because of no behavior change.
1418
1419         * html/SearchInputType.cpp:
1420         (WebCore::SearchInputType::SearchInputType):
1421         No need to initialize the element members explicitly because
1422         RefPtr constructor works well.
1423         (WebCore::SearchInputType::createShadowSubtree):
1424         Substitute an element to a data member, and don't call RefPtr<>::release().
1425         (WebCore::SearchInputType::innerBlockElement):
1426         Moved from the header file, and adjustment for RefPtr<>.
1427         (WebCore::SearchInputType::resultsButtonElement): ditto.
1428         (WebCore::SearchInputType::cancelButtonElement): ditto.
1429         (WebCore::SearchInputType::destroyShadowSubtree):
1430          Adjustment for RefPtr<>.
1431         * html/SearchInputType.h:
1432          - Move accessor functions to the cpp file because they are virtual.
1433          - Change element data member types: HTMLElement* -> RefPtr<HTMLElement>.
1434         * html/TextFieldInputType.cpp:
1435         (WebCore::TextFieldInputType::TextFieldInputType):
1436         No need to initialize the element members explicitly because
1437         RefPtr constructor works well.
1438         (WebCore::TextFieldInputType::~TextFieldInputType):
1439         Explicityly defines the destructor in the cpp file to avoid to
1440         make it implicitly in the header file. If the destructor was made
1441         in the header file, we would need to include HTMLElement.h in the
1442         header file.
1443         (WebCore::TextFieldInputType::createShadowSubtree):
1444         - Don't call RenderTheme::themeForPage().
1445         - Substitute an element to a data member, and don't call RefPtr<>::release().
1446         (WebCore::TextFieldInputType::setInnerTextElement):
1447          Moved from the header file to avoid to include HTMLElement.h.
1448         (WebCore::TextFieldInputType::setSpeechButtonElement): ditto.
1449         (WebCore::TextFieldInputType::innerTextElement):
1450         Moved from the header file, and adjustment for RefPtr<>.
1451         (WebCore::TextFieldInputType::innerSpinButtonElement): ditto.
1452         (WebCore::TextFieldInputType::speechButtonElement): ditto.
1453         (WebCore::TextFieldInputType::destroyShadowSubtree):
1454          Adjustment for RefPtr<>.
1455         * html/TextFieldInputType.h:
1456          - Move accessor functions to the cpp file because they are virtual.
1457          - Change element data member types: HTMLElement* -> RefPtr<HTMLElement>.
1458
1459 2011-06-28  Felician Marton  <marton.felician.zoltan@stud.u-szeged.hu>
1460
1461         Reviewed by Nikolas Zimmermann.
1462
1463         SVG animation flickers when restarting
1464         https://bugs.webkit.org/show_bug.cgi?id=18450
1465
1466         Add new parameter to the following methods. The new parameter is the time of adding a "begin" or "end" time to the SVG animation.
1467          - WebCore::SVGSMILElement::addBeginTime
1468          - WebCore::SVGSMILElement::beginListChanged
1469          - WebCore::SVGSMILElement::addEndTime
1470          - WebCore::SVGSMILElement::endListChanged
1471         In case of beginTime and beginListChanged it's necessary, because the delay between the event of adding a new begin time
1472         (in WebCore::SVGAnimationElement::beginElementAt) and the actual processing (in WebCore::SVGSMILElement::endListChanged)
1473         is significant. In lack of event time we can't decide that we should consider the new time or not.
1474         If the new begin time is smaller than the event time, we musn't begin the animation, else we shoud do further calculations.
1475
1476         The following methods just modified for consistency:
1477          - WebCore::SVGSMILElement::addEndTime
1478          - WebCore::SVGSMILElement::endListChanged
1479
1480         No new tests, because currently there is no way to test SVG flickering at zero time.
1481
1482         * svg/SVGAnimationElement.cpp:
1483         (WebCore::SVGAnimationElement::beginElementAt):
1484         (WebCore::SVGAnimationElement::endElementAt):
1485         * svg/animation/SVGSMILElement.cpp:
1486         (WebCore::SVGSMILElement::attributeChanged):
1487         (WebCore::SVGSMILElement::addBeginTime):
1488         (WebCore::SVGSMILElement::addEndTime):
1489         (WebCore::SVGSMILElement::beginListChanged):
1490         (WebCore::SVGSMILElement::endListChanged):
1491           The body changed:
1492            - Use new parameter, the time of adding the new begin time.
1493            - Cancel some incorrect optimalization. We should also do further calculations when elapsed >= m_intervalBegin.
1494         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
1495         (WebCore::SVGSMILElement::handleConditionEvent):
1496         (WebCore::SVGSMILElement::beginByLinkActivation):
1497         * svg/animation/SVGSMILElement.h:
1498
1499 2011-06-28  Csaba Osztrogon√°c  <ossy@webkit.org>
1500
1501         Reviewed by Andreas Kling.
1502
1503         Adding MHTML reading support.
1504         https://bugs.webkit.org/show_bug.cgi?id=7168
1505
1506         * features.pri: Disable MHTML on Qt by default in a proper way.
1507
1508 2011-06-28  Csaba Osztrogon√°c  <ossy@webkit.org>
1509
1510         Reviewed by Andreas Kling.
1511
1512         [Qt] Remove ENABLE_XBL, because there aren't ENABLE(XBL) macros anymore.
1513
1514         * features.pri:
1515
1516 2011-06-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1517
1518         Unreviewed. Fix style error related to wrong include order.
1519
1520         * platform/graphics/efl/ImageEfl.cpp:
1521
1522 2011-06-27  Brian Weinstein  <bweinstein@apple.com>
1523
1524         Fix the WebCore vcproj file after r89851.
1525
1526         * WebCore.vcproj/WebCore.vcproj:
1527
1528 2011-06-27  Joe Wild  <joseph.wild@nokia.com>
1529
1530         Reviewed by Simon Fraser.
1531
1532         Crash on www.crave.cnet.com in FrameView::windowClipRect()
1533         https://bugs.webkit.org/show_bug.cgi?id=56393
1534
1535         Check for a null renderer to fix a crash. This situation can
1536         arise when external content/plugins is referenced from html
1537         elements with style="display:none".
1538
1539         Test: plugins/hidden-iframe-with-swf-plugin.html
1540
1541         * page/FrameView.cpp:
1542         (WebCore::FrameView::windowClipRect):
1543
1544 2011-06-27  Raymes Khoury  <raymes@chromium.org>
1545
1546         Reviewed by Tony Chang.
1547
1548         WebCore fails to compile in thumb mode when neon instructions are
1549         enabled.
1550
1551         There are two files (FELightingNEON.cpp and FEGaussianBlur.cpp)
1552         which fail to build when -mthumb is passed to gcc. These contain inline
1553         assembly for neon instructions on arm. This patch forces the -marm flag
1554         to be passed when compiling these files to work around this.
1555
1556         https://bugs.webkit.org/show_bug.cgi?id=62916
1557
1558         Built WebKit in Chromium and checked that -marm is passed
1559         only when building these files.
1560
1561         https://bugs.webkit.org/show_bug.cgi?id=62916
1562
1563         * WebCore.gyp/WebCore.gyp:
1564
1565 2011-06-27  Jay Civelli  <jcivelli@chromium.org>
1566
1567         Reviewed by Darin Fisher.
1568
1569         Adding binary part support to MHTML.
1570         https://bugs.webkit.org/show_bug.cgi?id=63310
1571
1572         * loader/archive/mhtml/MHTMLArchive.cpp:
1573         (WebCore::MHTMLArchive::generateMHTMLData):
1574         (WebCore::MHTMLArchive::generateMHTMLDataUsingBinaryEncoding):
1575         * loader/archive/mhtml/MHTMLArchive.h:
1576         * loader/archive/mhtml/MHTMLParser.cpp:
1577         (WebCore::MHTMLParser::parseNextPart):
1578         * platform/SharedBuffer.cpp:
1579         (WebCore::SharedBuffer::append):
1580         * platform/SharedBuffer.h:
1581         * platform/network/MIMEHeader.cpp:
1582         (WebCore::MIMEHeader::parseContentTransferEncoding):
1583         * platform/network/MIMEHeader.h:
1584
1585 2011-06-27  Levi Weintraub  <leviw@chromium.org>
1586
1587         Reviewed by Eric Seidel.
1588
1589         Add support for unicode-bidi:plaintext CSS property
1590         https://bugs.webkit.org/show_bug.cgi?id=50949
1591
1592         Adding support for unicode-bidi: plaintext. This involves invoking P2 and P3
1593         of the Unicode BiDi algorithm on each paragraph of a block with that style.
1594         This is similar to dir=auto but done per-paragraph instead of per element.
1595
1596         Test: fast/text/international/unicode-bidi-plaintext.html
1597
1598         * css/CSSParser.cpp:
1599         (WebCore::CSSParser::parseValue):  Added plaintext.
1600         * css/CSSPrimitiveValueMappings.h:
1601         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
1602         (WebCore::CSSPrimitiveValue::operator EUnicodeBidi): Ditto.
1603         * css/CSSValueKeywords.in: Ditto.
1604         * html/HTMLElement.cpp:
1605         (WebCore::unicodeBidiAttributeForDirAuto): Helper to map elements with dir=auto
1606         to their proper unicode-bidi attribute.
1607         (WebCore::HTMLElement::parseMappedAttribute): Assign plaintext to pre and textarea
1608         when dir=auto.
1609         * platform/text/UnicodeBidi.h: Added plaintext.
1610         * rendering/RenderBlockLineLayout.cpp:
1611         (WebCore::determineParagraphDirection): Determines the direction of a paragraph
1612         based on the first strong character. Stops at first paragraph separator.
1613         (WebCore::RenderBlock::layoutInlineChildren): Uses determineParagraphDirection
1614         when in unicode-bidi: plaintext mode (and operating at the block's BidiContext)
1615         to set each paragraph to the proper base BidiContext.
1616         (WebCore::RenderBlock::determineStartPosition): Ditto.
1617         * rendering/style/RenderStyle.h: Gave _unicodebidi another bit to accomodate
1618         for plaintext.
1619
1620 2011-06-27  Alexis Menard  <alexis.menard@openbossa.org>
1621
1622         Reviewed by Darin Adler.
1623
1624         Use specific headers includes rather than full system headers.
1625         https://bugs.webkit.org/show_bug.cgi?id=63475
1626
1627         Use only needed headers rather than system headers.
1628
1629         No new tests, it's just a little cosmetic change.
1630
1631         * platform/mac/WebVideoFullscreenController.h:
1632         * platform/mac/WebVideoFullscreenHUDWindowController.h:
1633
1634 2011-06-27  Joseph Pecoraro  <joepeck@webkit.org>
1635
1636         Reviewed by Darin Adler.
1637
1638         Allow non-main thread text drawing in ICU ports
1639         https://bugs.webkit.org/show_bug.cgi?id=63482
1640
1641         Some ports allow multiple threads to draw strings.
1642         LineBreakIteratorPool is not thread safe and the existing
1643         ASSERT caught cases where multiple threads were trying
1644         to access the shared pool. This makes the pool a lazily
1645         created per-thread pool to allow for thread safe pool use.
1646
1647         * platform/ThreadGlobalData.h:
1648         * platform/ThreadGlobalData.cpp:
1649         (WebCore::ThreadGlobalData::ThreadGlobalData): start with null.
1650         (WebCore::ThreadGlobalData::lineBreakIteratorPool): lazily create.
1651         (WebCore::ThreadGlobalData::destroy): delete.
1652         Manage the lifetime of the per-thread pool instance.
1653
1654         * platform/text/LineBreakIteratorPoolICU.h:
1655         (WebCore::LineBreakIteratorPool::sharedPool):
1656         Use the per-thread pool instance and remove the ASSERT that
1657         this needs to be on the main thread.
1658
1659         (WebCore::LineBreakIteratorPool::create):
1660         Create a PassOwnPtr so we can use OwnPtr on pools.
1661
1662         (WebCore::LineBreakIteratorPool::LineBreakIteratorPool):
1663         Private now that there is a public create function.
1664
1665 2011-06-27  Joseph Pecoraro  <joepeck@webkit.org>
1666
1667         Reviewed by Darin Adler.
1668
1669         Extract LineBreakIteratorPool class into its own file
1670         https://bugs.webkit.org/show_bug.cgi?id=63471
1671
1672         * GNUmakefile.list.am:
1673         * WebCore.gypi:
1674         * WebCore.vcproj/WebCore.vcproj:
1675         * WebCore.xcodeproj/project.pbxproj:
1676         Add the new file to builds that used TextBreakIteratorPoolICU.h.
1677
1678         * platform/text/LineBreakIteratorPoolICU.h: Added.
1679         (WebCore::LineBreakIteratorPool::sharedPool):
1680         (WebCore::LineBreakIteratorPool::LineBreakIteratorPool):
1681         Expose the constructor so it can be used by others.
1682
1683         * platform/text/TextBreakIteratorICU.cpp:
1684         Remove the old LineBreakIteratorPool implementation.
1685
1686 2011-06-27  Justin Garcia  <justin.garcia@apple.com>
1687
1688         Reviewed by Ryosuke Niwa.
1689
1690         CompositeEditCommand::inputText(const String& text, bool selectedInsertText) is unused
1691         https://bugs.webkit.org/show_bug.cgi?id=62921
1692
1693         * editing/CompositeEditCommand.cpp:
1694         * editing/CompositeEditCommand.h:
1695         * editing/InsertTextCommand.cpp:
1696         (WebCore::InsertTextCommand::input):
1697
1698 2011-05-17  Nat Duca  <nduca@chromium.org>
1699
1700         Reviewed by James Robinson.
1701
1702         [chromium] Implement CCLayerTreeHost and CCLayerTreeHostImpl portions of threaded compositor
1703         https://bugs.webkit.org/show_bug.cgi?id=58408
1704
1705         Create CCLayerTreeHost and CCLayerTreeHostImpl, which are the main
1706         thread and compositor thread halves of a composited view. Communication
1707         between the two is based on the design used in FileStreamProxy.
1708
1709         * WebCore.gypi:
1710         * platform/chromium/TraceEvent.h:
1711         * platform/graphics/chromium/LayerRendererChromium.cpp:
1712         (WebCore::LayerRendererChromium::create):
1713         (WebCore::LayerRendererChromium::LayerRendererChromium):
1714         (WebCore::LayerRendererChromium::setViewport):
1715         (WebCore::LayerRendererChromium::updateLayers):
1716         (WebCore::LayerRendererChromium::drawLayers):
1717         (WebCore::LayerRendererChromiumImpl::create):
1718         (WebCore::LayerRendererChromiumImpl::drawLayersAndPresent):
1719         (WebCore::LayerRendererChromiumImpl::LayerRendererChromiumImpl):
1720         (WebCore::LayerRendererChromiumImpl::drawLayersOnMainThread):
1721         (WebCore::LayerRendererChromiumImplProxy::create):
1722         (WebCore::LayerRendererChromiumImplProxy::createLayerTreeHostImpl):
1723         (WebCore::LayerRendererChromiumImplProxy::LayerRendererChromiumImplProxy):
1724         (WebCore::LayerRendererChromium::createLayerTreeHostImplProxy):
1725         * platform/graphics/chromium/LayerRendererChromium.h:
1726         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1727         (WebCore::CCHeadsUpDisplay::setShowFPSCounter):
1728         (WebCore::CCHeadsUpDisplay::setShowPlatformLayerTree):
1729         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1730         (WebCore::CCHeadsUpDisplay::currentFrameNumber):
1731         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
1732         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1733         (WebCore::CCLayerTreeHost::init):
1734         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1735         (WebCore::CCLayerTreeHost::beginCommit):
1736         (WebCore::CCLayerTreeHost::commitComplete):
1737         (WebCore::CCLayerTreeHost::animateAndLayout):
1738         (WebCore::CCLayerTreeHost::createLayerTreeHostCommitter):
1739         (WebCore::CCLayerTreeHost::setNeedsCommitAndRedraw):
1740         (WebCore::CCLayerTreeHost::setNeedsRedraw):
1741         (WebCore::CCLayerTreeHost::updateLayers):
1742         * platform/graphics/chromium/cc/CCLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
1743         (WebCore::CCLayerTreeHost::frameNumber):
1744         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
1745         (WebCore::CCLayerTreeHostCommitter::create):
1746         (WebCore::CCLayerTreeHostCommitter::commit):
1747         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
1748         (WebCore::CCLayerTreeHostCommitter::CCLayerTreeHostCommitter):
1749         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Added.
1750         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1751         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
1752         (WebCore::CCLayerTreeHostImpl::beginCommit):
1753         (WebCore::CCLayerTreeHostImpl::commitComplete):
1754         (WebCore::CCLayerTreeHostImpl::drawLayers):
1755         (WebCore::CCLayerTreeHostImpl::setNeedsCommitAndRedraw):
1756         (WebCore::CCLayerTreeHostImpl::setNeedsRedraw):
1757         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
1758         (WebCore::CCLayerTreeHostImplClient::~CCLayerTreeHostImplClient):
1759         (WebCore::CCLayerTreeHostImpl::frameNumber):
1760         (WebCore::CCLayerTreeHostImpl::sourceFrameNumber):
1761         (WebCore::CCLayerTreeHostImpl::setSourceFrameNumber):
1762         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.cpp: Added.
1763         (WebCore::CCLayerTreeHostImplProxy::CCLayerTreeHostImplProxy):
1764         (WebCore::CCLayerTreeHostImplProxy::start):
1765         (WebCore::CCLayerTreeHostImplProxy::~CCLayerTreeHostImplProxy):
1766         (WebCore::CCLayerTreeHostImplProxy::isStarted):
1767         (WebCore::CCLayerTreeHostImplProxy::setNeedsCommitAndRedraw):
1768         (WebCore::CCLayerTreeHostImplProxy::setNeedsRedraw):
1769         (WebCore::CCLayerTreeHostImplProxy::stop):
1770         (WebCore::CCLayerTreeHostImplProxy::postDrawLayersTaskOnCCThread):
1771         (WebCore::CCLayerTreeHostImplProxy::requestFrameAndCommitOnCCThread):
1772         (WebCore::CCLayerTreeHostImplProxy::isMainThread):
1773         (WebCore::CCLayerTreeHostImplProxy::isCCThread):
1774         (WebCore::CCLayerTreeHostImplProxy::requestFrameAndCommit):
1775         (WebCore::CCLayerTreeHostImplProxy::commitOnCCThread):
1776         (WebCore::CCLayerTreeHostImplProxy::drawLayersOnCCThread):
1777         (WebCore::CCLayerTreeHostImplProxy::setNeedsCommitAndRedrawOnCCThread):
1778         (WebCore::CCLayerTreeHostImplProxy::setNeedsRedrawOnCCThread):
1779         (WebCore::CCLayerTreeHostImplProxy::initImplOnCCThread):
1780         (WebCore::CCLayerTreeHostImplProxy::layerTreeHostClosedOnCCThread):
1781         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.h: Added.
1782         (WebCore::CCLayerTreeHostImplProxy::host):
1783         * platform/graphics/chromium/cc/CCMainThreadTask.h:
1784         * platform/graphics/chromium/cc/CCThread.cpp:
1785         (WebCore::CCThread::runLoop):
1786         * platform/graphics/chromium/cc/CCThreadTask.h:
1787
1788 2011-06-27  Abhishek Arya  <inferno@chromium.org>
1789
1790         Reviewed by Simon Fraser.
1791
1792         Fix removal of overhanging floats on style changes to absolute/fixed position.
1793         https://bugs.webkit.org/show_bug.cgi?id=63355
1794
1795         1. If we are not currently positioned.
1796         2. And we are not floating. (If we are floating, then this will be automatically
1797            done in RenderBox::styleWillChange as part of removeFloatingOrPositionedChildFromBlockLists) 
1798         3. And we have overhanging floats from previous sibling blocks.
1799         4. And our new new style tells that we will have absolute or fixed position.
1800
1801         Then, we mark all our descendants with floats for layout. This will make sure that
1802         overhanging floats are removed. Also, it is important to do that since if that previous
1803         sibling block goes away, it is not able to tell us that to remove those floats thinking 
1804         that being a positioned block, we should have removed them already.
1805
1806         Tests: fast/block/float/intruding-float-add-in-sibling-block-on-static-position.html
1807                fast/block/float/intruding-float-add-in-sibling-block-on-static-position2.html
1808                fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position.html
1809                fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position2.html
1810                fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position.html
1811                fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position2.html
1812                fast/block/float/overhanging-float-add-in-static-position-block.html
1813                fast/block/float/overhanging-float-add-in-static-position-block2.html
1814                fast/block/float/overhanging-float-remove-from-absolute-position-block.html
1815                fast/block/float/overhanging-float-remove-from-absolute-position-block2.html
1816                fast/block/float/overhanging-float-remove-from-fixed-position-block.html
1817                fast/block/float/overhanging-float-remove-from-fixed-position-block2.html
1818
1819         * rendering/RenderBlock.cpp:
1820         (WebCore::RenderBlock::styleWillChange):
1821
1822 2011-06-27  Dirk Schulze  <krit@webkit.org>
1823
1824         Reviewed by Nikolas Zimmermann.
1825
1826         SVGAnimatedType should support SVGPreserveAspectRatio animation
1827         https://bugs.webkit.org/show_bug.cgi?id=63456
1828         
1829         Follow up of "SVGAnimation should use direct unit animation for SVGLength": https://bugs.webkit.org/show_bug.cgi?id=61368
1830         This patch continues the conversion to the new concept of SVGAnimatorFactory with SVGAnimatedPreserveAspectRatio.
1831         
1832         The new animator does not affect any behavior, since it was animated with SVGAnimatedString before. The new animator is still needed
1833         to support animVal and baseVal later.
1834
1835         Test: svg/animations/svgPreserveAspectRatio-animation-1.html
1836
1837         * CMakeLists.txt: Added new file.
1838         * GNUmakefile.list.am: Ditto.
1839         * WebCore.gypi: Ditto.
1840         * WebCore.pro: Ditto.
1841         * WebCore.xcodeproj/project.pbxproj: Ditto.
1842         * svg/SVGAllInOne.cpp: Ditto.
1843         * svg/SVGAnimateElement.cpp: Handle AnimatedPreserveAspectRatio.
1844         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
1845         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1846         (WebCore::SVGAnimateElement::calculateFromAndToValues):
1847         (WebCore::SVGAnimateElement::calculateFromAndByValues):
1848         (WebCore::SVGAnimateElement::resetToBaseValue):
1849         (WebCore::SVGAnimateElement::applyResultsToTarget):
1850         (WebCore::SVGAnimateElement::calculateDistance):
1851         * svg/SVGAnimatedPreserveAspectRatio.cpp: Added. New animator for SVGAnimatedPreserveAspectRatio.
1852         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::SVGAnimatedPreserveAspectRatioAnimator):
1853         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
1854         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateFromAndToValues):
1855         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateFromAndByValues):
1856         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
1857         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateDistance):
1858         * svg/SVGAnimatedPreserveAspectRatio.h:
1859         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::~SVGAnimatedPreserveAspectRatioAnimator):
1860         * svg/SVGAnimatedType.cpp: Support for SVGPreserveAspectRatio.
1861         (WebCore::SVGAnimatedType::~SVGAnimatedType):
1862         (WebCore::SVGAnimatedType::createPreserveAspectRatio):
1863         (WebCore::SVGAnimatedType::preserveAspectRatio):
1864         (WebCore::SVGAnimatedType::valueAsString):
1865         (WebCore::SVGAnimatedType::setValueAsString):
1866         (WebCore::SVGAnimatedType::setPreserveAspectRatioBaseValue):
1867         * svg/SVGAnimatedType.h:
1868         * svg/SVGAnimatorFactory.h:
1869         (WebCore::SVGAnimatorFactory::create):
1870
1871 2011-06-27  Alexis Menard  <alexis.menard@openbossa.org>
1872
1873         Reviewed by Kenneth Rohde Christiansen.
1874
1875         [Qt] Remove Phonon MediaPlayer from the tree.
1876         https://bugs.webkit.org/show_bug.cgi?id=63448
1877
1878         Remove Phonon mediaplayer as it is unused, not finished and
1879         unmaintained.
1880
1881         * WebCore.gypi:
1882         * WebCore.pri:
1883         * WebCore.pro:
1884         * features.pri:
1885         * platform/graphics/MediaPlayer.cpp:
1886         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: Removed.
1887         * platform/graphics/qt/MediaPlayerPrivatePhonon.h: Removed.
1888
1889 2011-06-27  Ryosuke Niwa  <rniwa@webkit.org>
1890
1891         Reviewed by Kent Tamura.
1892
1893         Crash in TextIterator
1894         https://bugs.webkit.org/show_bug.cgi?id=63334
1895
1896         Fix a crash in TextIterator. Keep m_sortedTextBoxes and renderer consistent
1897         and check !m_offset when handling first letter.
1898
1899         Also add more assertions to help detecting similar bugs.
1900
1901         Test: editing/text-iterator/first-letter-rtl-crash.html
1902
1903         * editing/TextIterator.cpp:
1904         (WebCore::TextIterator::handleTextNode):
1905         (WebCore::TextIterator::emitText):
1906
1907 2011-06-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1908
1909         Reviewed by Andreas Kling.
1910
1911         [Qt] tst_QWebFrame::overloadedSlots() fails
1912         https://bugs.webkit.org/show_bug.cgi?id=37319
1913
1914         This patch is based on Noam Rosenthal original patch in the same bug.
1915
1916         When hinted with QWebElement metatype, we qualify the conversion
1917         from JSElement as a "perfect match".
1918
1919         The test was failing because the wrong slot was called, since the QWebElement
1920         match was taken as equal to the others and not chosen when the metacall happened.
1921
1922         * bridge/qt/qt_runtime.cpp:
1923         (JSC::Bindings::convertValueToQVariant): Identify the conversion between JSElement
1924         to QWebElement as a "perfect match" (dist = 0). Add comments to explain the reason
1925         why we have the implicit conversion.
1926
1927 2011-06-27  ChangSeok Oh  <shivamidow@gmail.com>
1928
1929         Reviewed by Martin Robinson.
1930
1931         [GTK] Fix build break to support webgl
1932         https://bugs.webkit.org/show_bug.cgi?id=63425
1933
1934         Some missing files in ANGLE are just added to fix build-break.
1935
1936         No test reqired
1937
1938         * GNUmakefile.list.am:
1939
1940 2011-06-27  Hyowon Kim  <hw1008.kim@samsung.com>
1941
1942         Reviewed by Martin Robinson.
1943
1944         [EFL] Add some PLATFORM(EFL) ifdefs to GraphicsContext3D.h
1945         https://bugs.webkit.org/show_bug.cgi?id=62959
1946
1947         Add PLATFORM(EFL) ifdefs to use GraphicsContextInternal.
1948
1949         * platform/graphics/GraphicsContext3D.h:
1950
1951 2011-06-27  Alexandru Chiculita  <achicu@adobe.com>
1952
1953         Reviewed by Ojan Vafai.
1954
1955         css combinator "+" in combination with NAV tag is buggy
1956         https://bugs.webkit.org/show_bug.cgi?id=47971
1957
1958         Added a new state in css/tokenizer.flex for the "nth" rule. The state begins
1959         at nth-*( functions and ends at the first ")". It avoids parsing selectors 
1960         like "#div+nav" as: "#div" "+n" "av".
1961
1962         Test: fast/css/div_plus_nav_bug47971.html
1963
1964         * css/maketokenizer:
1965         * css/tokenizer.flex:
1966
1967 2011-06-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1968
1969         Unreviewed, rolling out r89822.
1970         http://trac.webkit.org/changeset/89822
1971         https://bugs.webkit.org/show_bug.cgi?id=63461
1972
1973         Broken builds (Requested by apavlov on #webkit).
1974
1975         * inspector/Inspector.json:
1976         * inspector/InspectorCSSAgent.cpp:
1977         (WebCore::InspectorCSSAgent::getStylesForNode):
1978         * inspector/InspectorCSSAgent.h:
1979         * inspector/front-end/AuditRules.js:
1980         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
1981         * inspector/front-end/CSSStyleModel.js:
1982         (WebInspector.CSSStyleModel.prototype.getStylesAsync):
1983         * inspector/front-end/StylesSidebarPane.js:
1984         (WebInspector.StylesSidebarPane.prototype.update):
1985
1986 2011-06-27  Noel Gordon  <noel.gordon@gmail.com>
1987
1988         Reviewed by Adam Roben.
1989
1990         Send keypress events to windowless plugins on the windows port.
1991         https://bugs.webkit.org/show_bug.cgi?id=63144
1992
1993         No new tests.  Covered by existing windowless plugin tests plugins/mouse-events.html
1994         and plugins/keyboard-events.html.  Both are not yet working as desired because focus
1995         events are not being fowarded to windowed plugins on the win port (bug 62375).  Test
1996         plugin logging on the win port was added in bug 61721.  New failing expectations for
1997         plugins/keyboard-events.html were subsequently added in bug 33973 so there's no need
1998         to update test expectations in this patch.
1999
2000          * plugins/win/PluginViewWin.cpp:
2001         (WebCore::PluginView::handleKeyboardEvent): Add an ASSERT(m_plugin && !m_isWindowed)
2002         to indicate that the routine is for windowless plugins.  Remove trailing whitespace.
2003         Add handling for keyPress events (map to WM_CHAR).
2004         (WebCore::PluginView::handleMouseEvent): Add the ASSERT to indicate that the routine
2005         is for windowless plugins.  Add FIXME note.  Remove trailing whitespace.
2006
2007 2011-06-27  Alexander Pavlov  <apavlov@chromium.org>
2008
2009         Reviewed by Pavel Feldman.
2010
2011         Web Inspector: Change the inspector model API and backend to allow CSS pseudoclass inspection
2012         https://bugs.webkit.org/show_bug.cgi?id=63446
2013
2014         * inspector/Inspector.json:
2015         * inspector/InspectorCSSAgent.cpp:
2016         (WebCore::computePseudoClassMask):
2017         (WebCore::InspectorCSSAgent::getStylesForNode):
2018         * inspector/InspectorCSSAgent.h:
2019         * inspector/front-end/AuditRules.js:
2020         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
2021         * inspector/front-end/CSSStyleModel.js:
2022         (WebInspector.CSSStyleModel.prototype.getStylesAsync):
2023         * inspector/front-end/StylesSidebarPane.js:
2024         (WebInspector.StylesSidebarPane.prototype.update):
2025
2026 2011-06-27  Pavel Feldman  <pfeldman@google.com>
2027
2028         Reviewed by Yury Semikhatsky.
2029
2030         Web Inspector: [REGRESSION r84481] updateLayout called from DrawNodeHighlight
2031         https://bugs.webkit.org/show_bug.cgi?id=63405
2032
2033         We should not call layout from paint.
2034
2035         * inspector/DOMNodeHighlighter.cpp:
2036         (WebCore::DOMNodeHighlighter::drawNodeHighlight):
2037         * inspector/DOMNodeHighlighter.h:
2038         * inspector/InspectorDOMAgent.cpp:
2039         (WebCore::InspectorDOMAgent::drawNodeHighlight):
2040
2041 2011-06-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2042
2043         Unreviewed. Fix style error in EFL port.
2044
2045         * platform/efl/PlatformKeyboardEventEfl.cpp:
2046         * platform/efl/PlatformScreenEfl.cpp:
2047         * platform/efl/SharedBufferEfl.cpp:
2048
2049 2011-06-27  Pavel Feldman  <pfeldman@google.com>
2050
2051         Reviewed by Yury Semikhatsky.
2052
2053         Web Inspector: node selection is slow in the Elements panel.
2054         https://bugs.webkit.org/show_bug.cgi?id=60813
2055
2056         * inspector/front-end/StylesSidebarPane.js:
2057         (WebInspector.StylesSidebarPane.prototype.update.stylesCallback):
2058         (WebInspector.StylesSidebarPane.prototype.update.computedStyleCallback):
2059         (WebInspector.StylesSidebarPane.prototype.update):
2060
2061 2011-06-26  Pavel Feldman  <pfeldman@chromium.org>
2062
2063         Reviewed by Yury Semikhatsky.
2064
2065         Web Inspector: roll out r88337 for making tests flaky.
2066         https://bugs.webkit.org/show_bug.cgi?id=63422
2067
2068         * inspector/front-end/ElementsPanel.js:
2069         (WebInspector.ElementsPanel):
2070         (WebInspector.ElementsPanel.prototype.updateStyles):
2071         (WebInspector.ElementsPanel.prototype._stylesUpdated):
2072         * inspector/front-end/StylesSidebarPane.js:
2073         (WebInspector.StylesSidebarPane.prototype.update.stylesCallback):
2074         (WebInspector.StylesSidebarPane.prototype.update.computedStyleCallback):
2075         (WebInspector.StylesSidebarPane.prototype.update):
2076
2077 2011-06-27  Huang Dongsung  <luxtella@company100.net>
2078
2079         Reviewed by Kenneth Rohde Christiansen.
2080
2081         TiledBackingStore endlessly creates and destroys tiles due to an off-by-one
2082         error.
2083         https://bugs.webkit.org/show_bug.cgi?id=62422
2084
2085         REGRESSION(r77286): Remove bottomRight().
2086         REGRESSION(r77312): Change the logic to get the bottom right point.
2087         REGRESSION(r77928): Cause off-by-one error in TiledBackingStore.
2088         REGRESSION(r78783): Cause off-by-one error in TiledDrawingAreaProxy.
2089         REGRESSION(r78785): Cause off-by-one error in TiledDrawingAreaProxy.
2090
2091         If the viewport width equals the contents width, especially in the mobile
2092         device, TiledBackingStore endlessly creates and deletes the rightmost
2093         column and bottom row of tiles.
2094         In the detail, dropTilesOutsideRect() in TiledBackingStore::createTiles()
2095         deletes tiles and setTile(coordinate, Tile::create(this, coordinate)) creates
2096         tiles infinitely.
2097         Modified TiledDrawingAreaProxy also.
2098
2099         * platform/graphics/TiledBackingStore.cpp:
2100         (WebCore::innerBottomRight):
2101         (WebCore::TiledBackingStore::invalidate):
2102         (WebCore::TiledBackingStore::paint):
2103         (WebCore::TiledBackingStore::createTiles):
2104
2105 2011-06-26  Adam Barth  <abarth@webkit.org>
2106
2107         Reviewed by Eric Seidel.
2108
2109         Remove LegacyDefaultOptionalArguments from WebAudio IDL files
2110         https://bugs.webkit.org/show_bug.cgi?id=63416
2111
2112         WebAudio isn't that widely used, so it's seems somewhat safe to remove
2113         legacy code generation hacks.  I'm not an expert on WebAudio, but the
2114         API doesn't appear to need many optional arguments.
2115
2116         There are a bunch of APIs that have custom bindings that look like they
2117         could be autogenerated.  I've added FIXME comments where appropriate.
2118
2119         * webaudio/AudioBuffer.idl:
2120         * webaudio/AudioContext.idl:
2121         * webaudio/AudioListener.idl:
2122         * webaudio/AudioNode.idl:
2123         * webaudio/AudioPannerNode.idl:
2124         * webaudio/AudioParam.idl:
2125         * webaudio/RealtimeAnalyserNode.idl:
2126
2127 2011-06-26  Yury Semikhatsky  <yurys@chromium.org>
2128
2129         Reviewed by Pavel Feldman.
2130
2131         Web Inspector: REGRESSION Scripts panel sidebar pane context menu has no "Remove breakpoint" item
2132         https://bugs.webkit.org/show_bug.cgi?id=63421
2133
2134         Show generic sidebar menu only if no pane-specific menu has been shown.
2135
2136         * inspector/front-end/ScriptsPanel.js:
2137         (WebInspector.ScriptsPanel):
2138
2139 2011-06-26  Adam Barth  <abarth@webkit.org>
2140
2141         Build fix for clang.  Apparently clang doesn't want us to use the std
2142         namespace in headers, which makes sense.
2143
2144         * svg/SVGAnimatedType.h:
2145
2146 2011-06-26  Adam Barth  <abarth@webkit.org>
2147
2148         Reviewed by Eric Seidel.
2149
2150         Remove LegacyDefaultOptionalArguments from XMLHttpRequest.idl and XMLHttpRequestUpload.idl
2151         https://bugs.webkit.org/show_bug.cgi?id=63418
2152
2153         The XMLHttpRequest.idl interface used to implement the new behavior
2154         manually using the RequiresAllArguments attribute.  Now that we have
2155         that behavior by default, we can simply remove the
2156         LegacyDefaultOptionalArguments attribute.
2157
2158         * xml/XMLHttpRequest.idl:
2159         * xml/XMLHttpRequestUpload.idl:
2160
2161 2011-06-26  Dirk Schulze  <krit@webkit.org>
2162
2163         Reviewed by Nikolas Zimmermann.
2164
2165         SVGAnimatedType should support SVGLengthList animation
2166         https://bugs.webkit.org/show_bug.cgi?id=63399
2167
2168         Follow up of "SVGAnimation should use direct unit animation for SVGLength": https://bugs.webkit.org/show_bug.cgi?id=61368
2169         This patch continues the conversion to the new concept of SVGAnimatorFactory with SVGAnimatedLengthList.
2170         
2171         Interpolated animations of glyph positions are possible now.
2172
2173         Tests: svg/animations/svglengthlist-animation-1.html
2174                svg/animations/svglengthlist-animation-2.html
2175                svg/animations/svglengthlist-animation-3.html
2176                svg/animations/svglengthlist-animation-4.html
2177
2178         * CMakeLists.txt: Add new file to build system.
2179         * GNUmakefile.list.am: Ditto.
2180         * WebCore.gypi: Ditto.
2181         * WebCore.pro: Ditto.
2182         * WebCore.xcodeproj/project.pbxproj: Ditto.
2183         * svg/SVGAllInOne.cpp: Ditto.
2184         * svg/SVGAnimateElement.cpp: Make use of AnimatedLengthList.
2185         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
2186         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2187         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2188         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2189         (WebCore::SVGAnimateElement::resetToBaseValue):
2190         (WebCore::SVGAnimateElement::applyResultsToTarget):
2191         (WebCore::SVGAnimateElement::calculateDistance):
2192         * svg/SVGAnimatedLengthList.cpp: Added. New animator for SVGLengthList.
2193         (WebCore::SVGAnimatedLengthListAnimator::SVGAnimatedLengthListAnimator):
2194         (WebCore::SVGAnimatedLengthListAnimator::constructFromString):
2195         (WebCore::SVGAnimatedLengthListAnimator::calculateFromAndToValues):
2196         (WebCore::SVGAnimatedLengthListAnimator::calculateFromAndByValues):
2197         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2198         (WebCore::SVGAnimatedLengthListAnimator::calculateDistance):
2199         * svg/SVGAnimatedLengthList.h:
2200         (WebCore::SVGAnimatedLengthListAnimator::~SVGAnimatedLengthListAnimator):
2201         * svg/SVGAnimatedType.cpp: Add SVGLengthList.
2202         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2203         (WebCore::SVGAnimatedType::createLengthList):
2204         (WebCore::SVGAnimatedType::lengthList):
2205         (WebCore::SVGAnimatedType::valueAsString):
2206         (WebCore::SVGAnimatedType::setValueAsString):
2207         * svg/SVGAnimatedType.h:
2208         * svg/SVGAnimatorFactory.h:
2209         (WebCore::SVGAnimatorFactory::create):
2210         * svg/SVGLength.cpp: Add new constructor with LengthType, LengthMode and value.
2211         (WebCore::SVGLength::SVGLength):
2212         * svg/SVGLength.h:
2213
2214 2011-06-26  Adam Barth  <abarth@webkit.org>
2215
2216         Reviewed by Eric Seidel.
2217
2218         window.location should use the holder's prototype chain
2219         https://bugs.webkit.org/show_bug.cgi?id=63411
2220
2221         This patch corrects the prototype chain for Location, but we really
2222         should do a complete cleanup of the prototype chain generation, like we
2223         did for JavaScriptCore.
2224
2225         Test: http/tests/security/location-prototype.html
2226
2227         * bindings/scripts/CodeGeneratorV8.pm:
2228
2229 2011-06-26  Adam Barth  <abarth@webkit.org>
2230
2231         Reviewed by Eric Seidel.
2232
2233         Add [Optional] attributes where appropriate for addEventListener and removeEventListener
2234         https://bugs.webkit.org/show_bug.cgi?id=63417
2235
2236         This patch doesn't actually change behavior because these interfaces
2237         have the LegacyDefaultOptionalArguments attribute.  This patch paves
2238         the way to removing LegacyDefaultOptionalArguments from some of these
2239         interfaces as well as making the project safer for copy-and-pasting
2240         these methods into new IDL files that don't have the
2241         LegacyDefaultOptionalArguments attribute.
2242
2243         * bindings/scripts/test/TestObj.idl:
2244         * dom/EventTarget.idl:
2245         * dom/MediaStream.idl:
2246         * dom/MessagePort.idl:
2247         * dom/Node.idl:
2248         * loader/appcache/DOMApplicationCache.idl:
2249         * notifications/Notification.idl:
2250         * page/DOMWindow.idl:
2251         * page/EventSource.idl:
2252         * storage/IDBRequest.idl:
2253         * storage/IDBTransaction.idl:
2254         * svg/SVGElementInstance.idl:
2255         * websockets/WebSocket.idl:
2256         * workers/AbstractWorker.idl:
2257         * workers/WorkerContext.idl:
2258         * xml/XMLHttpRequest.idl:
2259         * xml/XMLHttpRequestUpload.idl:
2260
2261 2011-06-26  Adam Barth  <abarth@webkit.org>
2262
2263         Reviewed by Kent Tamura.
2264
2265         m_formElementsWithFormAttribute doesn't ref the objects it holds
2266         https://bugs.webkit.org/show_bug.cgi?id=62956
2267
2268         Test: fast/forms/form-associated-element-crash3.html
2269
2270         * dom/Document.h:
2271
2272 2011-06-26  Dimitri Glazkov  <dglazkov@chromium.org>
2273
2274         Reviewed by Adam Barth.
2275
2276         FileList::filenames should be FileList::paths, because it's more accurate.
2277         https://bugs.webkit.org/show_bug.cgi?id=63414
2278
2279         Refactoring, no change in behavior.
2280
2281         * fileapi/FileList.cpp:
2282         (WebCore::FileList::paths): Renamed from filenames.
2283         * fileapi/FileList.h:
2284         * html/FileInputType.cpp:
2285         (WebCore::FileInputType::handleDOMActivateEvent): Changed to use filenames, also fixed a reach-unto-thyself whoopsie.
2286         (WebCore::FileInputType::requestIcon): Ditto.
2287         (WebCore::FileInputType::filesChosen): Ditto.
2288         * rendering/RenderFileUploadControl.cpp:
2289         (WebCore::RenderFileUploadControl::fileTextValue): Ditto.
2290
2291 2011-06-26  Young Han Lee  <joybro@company100.net>
2292
2293         Reviewed by Dirk Schulze.
2294
2295         SVGAnimation - keyTime value 1 never get animated
2296         https://bugs.webkit.org/show_bug.cgi?id=63230
2297
2298         According to the SMIL 3.0 specification, the index of the keyTimes should be 
2299         determined under the end-point-exclusive rule (e.g. Given keyTimes(0;0.5;1) 
2300         and t=0.5, the current index of the keyTimes have to be 1 not 0).
2301         http://www.w3.org/TR/SMIL3/smil-animation.html#animationNS-InterpolationExamplesAdvanced
2302
2303         Test: svg/animations/animate-number-calcMode-discrete-keyTimes.html
2304
2305         * svg/SVGAnimationElement.cpp:
2306         (WebCore::SVGAnimationElement::calculateKeyTimesIndex):
2307
2308 2011-06-26  Dan Bernstein  <mitz@apple.com>
2309
2310         Reviewed by Darin Adler.
2311
2312         With word-break: break-all, words do not break correctly before a surrogate pair
2313         https://bugs.webkit.org/show_bug.cgi?id=63401
2314
2315         The code to check for mid-word breaks accumulates width one character at a time. It was actually
2316         measuring the two parts of the surrogate pair individually, so they appeared to have zero width.
2317         Fixed by checking for surrogate pairs and measuring the pair as one unit.
2318
2319         Test: fast/text/midword-break-before-surrogate-pair.html
2320
2321         * rendering/RenderBlockLineLayout.cpp:
2322         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
2323
2324 2011-06-26  Dirk Schulze  <krit@webkit.org>
2325
2326         Reviewed by Nikolas Zimmermann.
2327
2328         SVGAnimatedType should support SVGNumberOptionalNumber animation
2329         https://bugs.webkit.org/show_bug.cgi?id=63397
2330         
2331         Follow up of "SVGAnimation should use direct unit animation for SVGLength": https://bugs.webkit.org/show_bug.cgi?id=61368
2332         This patch continues the conversion to the new concept of SVGAnimatorFactory with SVGAnimatedNumberOptionalNumber.
2333         
2334         Animations of attributes with type SVGAnimatedNumberOptionalNumber can be interpolated now. This can be used for smooth
2335         growing shadows with feGaussianBlur, feDropShadow or other filter effects.
2336
2337         Tests: svg/animations/svgnumberoptionalnumber-animation-1.html
2338                svg/animations/svgnumberoptionalnumber-animation-2.html
2339                svg/animations/svgnumberoptionalnumber-animation-3.html
2340                svg/animations/svgnumberoptionalnumber-animation-4.html
2341
2342         * CMakeLists.txt: Added new files to build system.
2343         * GNUmakefile.list.am: Ditto.
2344         * WebCore.gypi: Ditto.
2345         * WebCore.pro: Ditto.
2346         * WebCore.vcproj/WebCore.vcproj: Ditto.
2347         * WebCore.xcodeproj/project.pbxproj: Ditto.
2348         * svg/SVGAllInOne.cpp: Ditto.
2349         * svg/SVGAnimateElement.cpp: Make use of attribute type AnimatedNumberOptionalNumber.
2350         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
2351         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2352         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2353         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2354         (WebCore::SVGAnimateElement::resetToBaseValue):
2355         (WebCore::SVGAnimateElement::applyResultsToTarget):
2356         (WebCore::SVGAnimateElement::calculateDistance):
2357         * svg/SVGAnimatedNumberOptionalNumber.cpp: Added. New animator for SVGAnimatedNumberOptionalNumber.
2358         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::SVGAnimatedNumberOptionalNumberAnimator):
2359         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
2360         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateFromAndToValues):
2361         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateFromAndByValues):
2362         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
2363         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateDistance):
2364         * svg/SVGAnimatedNumberOptionalNumber.h: Added.
2365         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::~SVGAnimatedNumberOptionalNumberAnimator):
2366         * svg/SVGAnimatedType.cpp: Added new type: pair<float, float>.
2367         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2368         (WebCore::SVGAnimatedType::createNumberOptionalNumber):
2369         (WebCore::SVGAnimatedType::numberOptionalNumber):
2370         (WebCore::SVGAnimatedType::valueAsString):
2371         (WebCore::SVGAnimatedType::setValueAsString):
2372         * svg/SVGAnimatedType.h:
2373         * svg/SVGAnimatorFactory.h: Add new animator to factory.
2374         (WebCore::SVGAnimatorFactory::create):
2375
2376 2011-06-25  Dimitri Glazkov  <dglazkov@chromium.org>
2377
2378         Reviewed by Adam Barth.
2379
2380         Crash in frameless document with media element.
2381         https://bugs.webkit.org/show_bug.cgi?id=63393
2382
2383         Since MediaControls::create can return 0 (and does for frameless documents), we must anticipate it
2384         in the calling code.
2385
2386         Test: fast/dom/shadow/frameless-media-element-crash.html
2387
2388         * html/HTMLMediaElement.cpp:
2389         (WebCore::HTMLMediaElement::attributeChanged): Changed to bail out if controls weren't successfully created.
2390         (WebCore::HTMLMediaElement::createMediaControls): Renamed to better reflect the purpose, changed to handle failure of creation.
2391         (WebCore::HTMLMediaElement::preDispatchEventHandler): Changed to bail out if controls weren't successfully created.
2392         * html/HTMLMediaElement.h: Adjusted def.
2393
2394 2011-06-25  Joseph Pecoraro  <joepeck@webkit.org>
2395
2396         Reviewed by Darin Adler.
2397
2398         Fix some minor style issues
2399         https://bugs.webkit.org/show_bug.cgi?id=63391
2400
2401         * inspector/DOMNodeHighlighter.cpp:
2402         (WebCore::DOMNodeHighlighter::DrawNodeHighlight):
2403         The explicit WebCore namespace usage can be dropped.
2404
2405         * rendering/RenderView.cpp:
2406         (WebCore::RenderView::mapLocalToContainer):
2407         Use ASSERT_UNUSED for a parameter that we want to ASSERT
2408         on for a debug build, but is UNUSED in a release build.
2409
2410 2011-06-25  Joseph Pecoraro  <joepeck@webkit.org>
2411
2412         Unreviewed build fix.
2413
2414         Use UNUSED_PARAM on the correct param!
2415
2416         * rendering/RenderView.cpp:
2417         (WebCore::RenderView::mapLocalToContainer):
2418
2419 2011-06-25  Joseph Pecoraro  <joepeck@webkit.org>
2420
2421         Reviewed by Simon Fraser.
2422
2423         Inspector highlight rect is wrong for contents of transformed iframes
2424         https://bugs.webkit.org/show_bug.cgi?id=53627
2425
2426         Part 2: Only adjust for the FrameView's scroll position when
2427         the localToAbsolute mapping did not end with fixed content.
2428         Content that is inside of a fixed position container is already
2429         adjusted for the FrameView's scrollPosition when RenderView
2430         maps local to container.
2431
2432         This patch uses a "wasFixed" out parameter to determine if
2433         the localToAbsolute transformation ended inside a fixed block,
2434         and if so does not apply the scroll position.
2435
2436         * page/FrameView.cpp:
2437         (WebCore::FrameView::convertFromRenderer):
2438         Respect wasFixed as described above.
2439
2440         * rendering/RenderBox.h:
2441         * rendering/RenderBox.cpp:
2442         (WebCore::RenderBox::mapLocalToContainer):
2443         This is the only time that "fixed" ever changed. So when
2444         fixed changes, update the optional wasFixed out parameter.
2445
2446         * rendering/RenderObject.cpp:
2447         (WebCore::RenderObject::localToAbsolute):
2448         (WebCore::RenderObject::mapLocalToContainer):
2449         (WebCore::RenderObject::localToContainerQuad):
2450         * rendering/RenderObject.h:
2451         (WebCore::RenderObject::localToAbsoluteQuad):
2452         Ignore wasFixed by default, but pipe it though where needed.
2453
2454         * rendering/RenderView.h:
2455         * rendering/RenderView.cpp:
2456         (WebCore::RenderView::mapLocalToContainer):
2457         This is the final recursive call, so wasFixed goes no
2458         further. We sanity check its value in debug builds.
2459
2460         * rendering/RenderBlock.cpp:
2461         (WebCore::RenderBlock::selectionGapRectsForRepaint):
2462         * rendering/RenderInline.cpp:
2463         (WebCore::RenderInline::mapLocalToContainer):
2464         * rendering/RenderInline.h:
2465         * rendering/svg/RenderSVGForeignObject.cpp:
2466         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
2467         * rendering/svg/RenderSVGForeignObject.h:
2468         * rendering/svg/RenderSVGInline.cpp:
2469         (WebCore::RenderSVGInline::mapLocalToContainer):
2470         * rendering/svg/RenderSVGInline.h:
2471         * rendering/svg/RenderSVGModelObject.cpp:
2472         (WebCore::RenderSVGModelObject::mapLocalToContainer):
2473         * rendering/svg/RenderSVGModelObject.h:
2474         * rendering/svg/RenderSVGRoot.cpp:
2475         (WebCore::RenderSVGRoot::mapLocalToContainer):
2476         * rendering/svg/RenderSVGRoot.h:
2477         * rendering/svg/RenderSVGText.cpp:
2478         (WebCore::RenderSVGText::mapLocalToContainer):
2479         * rendering/svg/RenderSVGText.h:
2480         * rendering/svg/SVGRenderSupport.cpp:
2481         (WebCore::SVGRenderSupport::mapLocalToContainer):
2482         * rendering/svg/SVGRenderSupport.h:
2483         Pipe wasFixed through where needed.
2484
2485 2011-06-25  Joseph Pecoraro  <joepeck@webkit.org>
2486
2487         Reviewed by Simon Fraser.
2488
2489         Inspector highlight rect is wrong for contents of transformed iframes
2490         https://bugs.webkit.org/show_bug.cgi?id=53627
2491
2492         Part 1: Provide FloatQuad versions of convertFromRenderer,
2493         convertToContainingView, and convertChildToSelf, so that we
2494         can get the fully transformed quad of a renderer all the
2495         way up to the root widget.
2496
2497         * page/FrameView.cpp:
2498         (WebCore::FrameView::convertFromRenderer):
2499         (WebCore::FrameView::convertToContainingView):
2500         * page/FrameView.h:
2501         * platform/ScrollView.h:
2502         (WebCore::ScrollView::convertChildToSelf):
2503         * platform/Widget.h:
2504         * platform/Widget.cpp:
2505         (WebCore::Widget::convertToContainingView):
2506         Provide FloatQuad versions of these already existing functions.
2507
2508         (WebCore::Widget::convertToRootContainingView):
2509         Provide a helper conversion function to recursively
2510         convert a given FloatQuad up to the root widget.
2511
2512         * inspector/DOMNodeHighlighter.cpp:
2513         (WebCore::DOMNodeHighlighter::DrawNodeHighlight):
2514         Use the new methods to convert the FloatQuad for the highlighted
2515         node to the root container, without losing transformation
2516         information. Add a FIXME for SVG, which is still broken.
2517
2518         * WebCore.exp.in:
2519         Export the new Widget functions so WebKit can link properly.
2520
2521 2011-06-25  Dirk Schulze  <krit@webkit.org>
2522
2523         Unreviewed build fix.
2524
2525         SVGAnimatedType should support SVGNumberList animation
2526         https://bugs.webkit.org/show_bug.cgi?id=63387
2527
2528         * svg/SVGAnimatedNumberList.cpp:
2529         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2530
2531 2011-06-25  Dirk Schulze  <krit@webkit.org>
2532
2533         Reviewed by Nikolas Zimmermann.
2534
2535         SVGAnimatedType should support SVGNumberList animation
2536         https://bugs.webkit.org/show_bug.cgi?id=63387
2537         
2538         Follow up of "SVGAnimation should use direct unit animation for SVGLength": https://bugs.webkit.org/show_bug.cgi?id=61368
2539         This patch continues the conversion to the new concept of SVGAnimatorFactory with SVGNumberList.
2540         
2541         Animations of attributes with type SVGNumberList can be interpolated now.
2542
2543         Tests: svg/animations/svgnumberlist-animation-1.html
2544                svg/animations/svgnumberlist-animation-2.html
2545
2546         * CMakeLists.txt: Added new file to build system.
2547         * GNUmakefile.list.am: Ditto.
2548         * WebCore.gypi: Ditto.
2549         * WebCore.pro: Ditto.
2550         * WebCore.xcodeproj/project.pbxproj: Ditto.
2551         * svg/SVGAllInOne.cpp: Ditto.
2552         * svg/SVGAnimateElement.cpp: Make use of attribute type AnimatedNumberList.
2553         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
2554         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2555         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2556         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2557         (WebCore::SVGAnimateElement::resetToBaseValue):
2558         (WebCore::SVGAnimateElement::applyResultsToTarget):
2559         (WebCore::SVGAnimateElement::calculateDistance):
2560         * svg/SVGAnimatedNumber.cpp:
2561         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedNumber): Made method static for reuse in SVGAnimatedNumberList (and SVGAnimatedNumberOptionalNumber later).
2562         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue): Use new static function.
2563         * svg/SVGAnimatedNumber.h:
2564         * svg/SVGAnimatedNumberList.cpp: Added. New animator for SVGNumberList.
2565         (WebCore::SVGAnimatedNumberListAnimator::SVGAnimatedNumberListAnimator):
2566         (WebCore::SVGAnimatedNumberListAnimator::constructFromString):
2567         (WebCore::SVGAnimatedNumberListAnimator::calculateFromAndToValues):
2568         (WebCore::SVGAnimatedNumberListAnimator::calculateFromAndByValues):
2569         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2570         (WebCore::SVGAnimatedNumberListAnimator::calculateDistance):
2571         * svg/SVGAnimatedNumberList.h:
2572         (WebCore::SVGAnimatedNumberListAnimator::~SVGAnimatedNumberListAnimator):
2573         * svg/SVGAnimatedType.cpp: Use new Animator.
2574         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2575         (WebCore::SVGAnimatedType::createNumberList):
2576         (WebCore::SVGAnimatedType::numberList):
2577         (WebCore::SVGAnimatedType::valueAsString):
2578         (WebCore::SVGAnimatedType::setValueAsString):
2579         * svg/SVGAnimatedType.h:
2580         * svg/SVGAnimatorFactory.h:
2581         (WebCore::SVGAnimatorFactory::create):
2582
2583 2011-06-25  Nikolas Zimmermann  <nzimmermann@rim.com>
2584
2585         Reviewed by Dirk Schulze.
2586
2587         Convert SVGPath to SVGAnimatorFactory concept
2588         https://bugs.webkit.org/show_bug.cgi?id=63336
2589
2590         Convert <animate attributeName="d"> parsing to the new SVGAnimatorFactory concept, removing
2591         the last special data types from SVGAnimateElement: SVGPathByteStream m_fromPath/m_toPath/m_animatedPath.
2592         All existing non-string primitives have been converted to the new concept.
2593
2594         Doesn't change any functionality.
2595
2596         * CMakeLists.txt: Added SVGAnimatedPath.*.
2597         * GNUmakefile.list.am: Ditto.
2598         * WebCore.gypi: Ditto.
2599         * WebCore.pro: Ditto.
2600         * WebCore.vcproj/WebCore.vcproj: Ditto.
2601         * WebCore.xcodeproj/project.pbxproj: Ditto.
2602         * svg/SVGAllInOne.cpp: Ditto.
2603         * svg/SVGAnimateElement.cpp:
2604         (WebCore::SVGAnimateElement::SVGAnimateElement):
2605         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2606         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2607         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2608         (WebCore::SVGAnimateElement::resetToBaseValue):
2609         (WebCore::SVGAnimateElement::applyResultsToTarget):
2610         * svg/SVGAnimateElement.h:
2611         * svg/SVGAnimatedPath.cpp: Added.
2612         (WebCore::SVGAnimatedPathAnimator::SVGAnimatedPathAnimator):
2613         (WebCore::SVGAnimatedPathAnimator::constructFromString):
2614         (WebCore::SVGAnimatedPathAnimator::calculateFromAndToValues):
2615         (WebCore::SVGAnimatedPathAnimator::calculateFromAndByValues):
2616         (WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
2617         (WebCore::SVGAnimatedPathAnimator::calculateDistance):
2618         * svg/SVGAnimatedPath.h: Added.
2619         (WebCore::SVGAnimatedPathAnimator::~SVGAnimatedPathAnimator):
2620         * svg/SVGAnimatedType.cpp:
2621         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2622         (WebCore::SVGAnimatedType::createPath):
2623         (WebCore::SVGAnimatedType::path):
2624         (WebCore::SVGAnimatedType::valueAsString):
2625         (WebCore::SVGAnimatedType::setValueAsString):
2626         * svg/SVGAnimatedType.h:
2627         * svg/SVGAnimatorFactory.h:
2628         (WebCore::SVGAnimatorFactory::create):
2629         * svg/SVGPathByteStream.h:
2630         (WebCore::SVGPathByteStream::initializeFrom):
2631         * svg/SVGPathParserFactory.cpp:
2632         (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromSVGPathSegList):
2633         (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
2634         (WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream):
2635
2636 2011-06-25  Jer Noble  <jer.noble@apple.com>
2637
2638         Reviewed by Maciej Stachowiak.
2639
2640         SOFT_LINK_POINTER_OPTIONAL isn't optional.
2641         https://bugs.webkit.org/show_bug.cgi?id=63378
2642
2643         Continuation of r89718.  SOFT_LINK_POINTER_OPTIONAL should check the value returned by dlsym before dereferencing it.
2644
2645         * platform/mac/SoftLinking.h:
2646
2647 2011-06-25  Rob Buis  <rbuis@rim.com>
2648
2649         Reviewed by Nikolas Zimmermann.
2650
2651         SVG1.1SE test linking-uri-01-b.svg fails
2652         https://bugs.webkit.org/show_bug.cgi?id=63322
2653
2654         Allow navigating to internal <view> targets. When choosing Back ensure
2655         the <svg> current view is initialized correctly.
2656
2657         Tests: svg/W3C-SVG-1.1-SE/linking-uri-01-b.svg
2658                svg/custom/linking-uri-01-b.svg
2659
2660         * page/FrameView.cpp: Delegate to setupInitialView.
2661         (WebCore::FrameView::scrollToAnchor):
2662         * svg/SVGAElement.cpp: Allow navigating to internal <view> targets.
2663         (WebCore::SVGAElement::defaultEventHandler):
2664         * svg/SVGSVGElement.cpp:
2665         (WebCore::SVGSVGElement::setupInitialView): Initialize current view depending on fragment identifier.
2666         (WebCore::SVGSVGElement::inheritViewAttributes):
2667         * svg/SVGSVGElement.h:
2668
2669 2011-06-24  Dimitri Glazkov  <dglazkov@chromium.org>
2670
2671         Reviewed by Darin Adler.
2672
2673         REGRESSION (r77740): Shadow DOM pseudo elements aren't matching when combined with descendant selectors
2674         https://bugs.webkit.org/show_bug.cgi?id=63373
2675
2676         * css/CSSStyleSelector.cpp:
2677         (WebCore::CSSStyleSelector::pushParentStackFrame): Changed to use parentOrHostElement.
2678         (WebCore::CSSStyleSelector::pushParent): Ditto.
2679         * dom/Node.cpp:
2680         (WebCore::Node::parentOrHostElement): Added.
2681         * dom/Node.h:
2682
2683 2011-06-24  Dan Bernstein  <mitz@apple.com>
2684
2685         Reviewed by Anders Carlsson.
2686
2687         Add an option to enable legacy rounding hacks
2688         https://bugs.webkit.org/show_bug.cgi?id=63363
2689
2690         Restored most of text rounding hacks which were removed in r78846, with a global flag to control
2691         whether rounding hacks are allowed, which defaults to false.
2692
2693         Test: platform/mac/fast/text/rounding-hacks.html
2694
2695         * CMakeLists.txt: Added TextRun.cpp.
2696         * GNUmakefile.list.am: Ditto.
2697         * WebCore.exp.in: Export new TextRun function and global and updated StringTruncator functions.
2698         * WebCore.gypi: Added TextRun.cpp.
2699         * WebCore.pro: Ditto.
2700         * WebCore.vcproj/WebCore.vcproj: Ditto.
2701         * WebCore.xcodeproj/project.pbxproj: Ditto.
2702         * html/canvas/CanvasRenderingContext2D.cpp:
2703         (WebCore::CanvasRenderingContext2D::drawTextInternal): Disable rounding hacks in the one place
2704         they used to be disabled.
2705         * platform/graphics/Font.cpp: Re-added the rounding character table.
2706         * platform/graphics/Font.h:
2707         (WebCore::Font::isRoundingHackCharacter): Re-added.
2708         * platform/graphics/FontFastPath.cpp:
2709         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Account for final rounding width.
2710         * platform/graphics/SimpleFontData.cpp:
2711         (WebCore::SimpleFontData::platformGlyphInit): Initialize m_adjustedSpaceWidth.
2712         * platform/graphics/SimpleFontData.h:
2713         (WebCore::SimpleFontData::adjustedSpaceWidth): Re-added.
2714         * platform/graphics/StringTruncator.cpp:
2715         (WebCore::stringWidth): Re-added disableRoundingHacks parameter.
2716         (WebCore::truncateString): Ditto.
2717         (WebCore::StringTruncator::centerTruncate): Added EnableRoundingHacksOrNot parameter.
2718         (WebCore::StringTruncator::rightTruncate): Ditto.
2719         (WebCore::StringTruncator::width): Ditto.
2720         * platform/graphics/StringTruncator.h:
2721         * platform/graphics/TextRun.cpp: Added.
2722         (WebCore::TextRun::setAllowsRoundingHacks): Added.
2723         * platform/graphics/TextRun.h:
2724         (WebCore::TextRun::TextRun): Added RoundingHacks parameter to the constructors, used to initialize
2725         the m_applyRunRounding and m_applyWordRounding member variables, subject to rounding hacks being allowed.
2726         (WebCore::TextRun::applyRunRounding): Re-added this accessor.
2727         (WebCore::TextRun::applyWordRounding): Ditto.
2728         (WebCore::TextRun::disableRoundingHacks): Re-added.
2729         * platform/graphics/WidthIterator.cpp:
2730         (WebCore::WidthIterator::WidthIterator): Re-added code to apply rounding hacks.
2731         (WebCore::WidthIterator::advance): Ditto.
2732         * platform/graphics/WidthIterator.h:
2733         * platform/graphics/mac/ComplexTextController.cpp:
2734         (WebCore::ceilCGFloat): Re-added.
2735         (WebCore::ComplexTextController::ComplexTextController): Re-added code to apply rounding hacks.
2736         (WebCore::ComplexTextController::advance): Ditto.
2737         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.
2738         * platform/graphics/mac/ComplexTextController.h:
2739         (WebCore::ComplexTextController::finalRoundingWidth): Re-added this accessor.
2740         * platform/graphics/mac/FontComplexTextMac.cpp:
2741         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Accound for final rounding width.
2742         * platform/graphics/qt/SimpleFontDataQt.cpp:
2743         (WebCore::SimpleFontData::platformGlyphInit): Initialize m_adjustedSpaceWidth.
2744         * platform/gtk/RenderThemeGtk.cpp:
2745         (WebCore::RenderThemeGtk::fileListNameForWidth): Enabled rounding hacks in the string truncator.
2746         * platform/mac/DragImageMac.mm:
2747         (WebCore::widthWithFont): Disable rounding hacks when measuring.
2748         (WebCore::drawAtPoint): Disable rounding hacks when drawing.
2749         * platform/win/DragImageWin.cpp:
2750         (WebCore::createDragImageForLink): Enable rounding hacks in the string truncator.
2751         * platform/win/WebCoreTextRenderer.cpp:
2752         (WebCore::WebCoreTextFloatWidth): Ditto.
2753         * rendering/RenderFileUploadControl.cpp:
2754         (WebCore::RenderFileUploadControl::paintObject): Disable rounding hacks.
2755         * rendering/RenderListBox.cpp:
2756         (WebCore::RenderListBox::updateFromElement): Ditto.
2757         (WebCore::RenderListBox::paintItemForeground): Ditto.
2758         * rendering/RenderTextControl.cpp:
2759         (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
2760         * rendering/RenderTheme.cpp:
2761         (WebCore::RenderTheme::fileListNameForWidth): Enabled rounding hacks in the string truncator.
2762         * rendering/RenderThemeMac.mm:
2763         (WebCore::RenderThemeMac::fileListNameForWidth): Ditto.
2764         * rendering/svg/SVGInlineTextBox.cpp:
2765         (WebCore::SVGInlineTextBox::constructTextRun): Disabled rounding hacks.
2766         * rendering/svg/SVGTextMetrics.cpp:
2767         (WebCore::constructTextRun): Ditto.
2768
2769 2011-06-24  Nikolas Zimmermann  <nzimmermann@rim.com>
2770
2771         Reviewed by Rob Buis.
2772
2773         Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
2774         https://bugs.webkit.org/show_bug.cgi?id=59085
2775
2776         font substitution doesn't work for HTML text using SVG fonts
2777         https://bugs.webkit.org/show_bug.cgi?id=17608
2778
2779         Selection rects are wrong for text with SVG fonts
2780         https://bugs.webkit.org/show_bug.cgi?id=25460
2781
2782         With @font-face, SVG fonts only work as primary, non-segmented
2783         https://bugs.webkit.org/show_bug.cgi?id=32227
2784
2785         When using SVG fonts with @font-face word-spacing and text-align: justify are not being honored
2786         https://bugs.webkit.org/show_bug.cgi?id=34236
2787
2788         SVG @font-face breaks text-overflow: ellipsis
2789         https://bugs.webkit.org/show_bug.cgi?id=36840
2790
2791         REGRESSION: SVG Font selection problems
2792         https://bugs.webkit.org/show_bug.cgi?id=41934
2793
2794         Tests: svg/custom/svg-fonts-fallback.xhtml (for bug 17608, extended the original test from Mark Ambachtsheer)
2795                svg/custom/svg-fonts-segmented.xhtml (for bug 32227)
2796                svg/custom/svg-fonts-word-spacing.html (for bug 34236, from Michael Lewis)
2797                svg/text/select-text-svgfont.html (for bug 25460/41934, from Emil Schutte)
2798                svg/text/text-overflow-ellipsis-svgfont.html (for 36840, from Emil Schutte)
2799
2800         Rewrite the SVG Fonts support to fully integrate within the GlyphPage concept and the "simple" code path used to render platform fonts.
2801         That means the special logic for measuring text using SVG Fonts, calculating offset for positions, computing selection rects etc. is all gone now.
2802         There's no difference anymore between using a native font or a SVG Font, in terms of these operations.
2803
2804         This makes text selection using SVG Fonts possible again.
2805
2806         * features.pri: Temporarily turn of SVG Fonts for Qt, as long as QRawFont support is not available and the fast path is disabled.
2807         * page/DOMWindow.idl: Touched file to force Qt regenerating the bindings.
2808         * platform/graphics/Font.cpp: Remove SVG Font special cases, the simple code path now handles SVG Fonts as well.
2809         (WebCore::Font::drawText):
2810         (WebCore::Font::drawEmphasisMarks):
2811         (WebCore::Font::width):
2812         (WebCore::Font::selectionRectForText):
2813         (WebCore::Font::offsetForPosition):
2814         (WebCore::Font::codePath):
2815         * platform/graphics/Font.h: Pass TextRun to drawGlyphBuffer/drawEmphasisMarks. Add new glyphDataAndPageForCharacter() method which returns a pair
2816                                     std::pair<GlyphData, GlyphPage*>, so we know the associated GlyphPage for a certain GlyphData object, which is needed to properly
2817                                     handle font fallback glyph matching for SVG Fonts..
2818         (WebCore::Font::fontList): Add FontFallbackList accessor.
2819         * platform/graphics/FontFallbackList.h: Add getters/setters for glyphPageZero -- SVG Fonts support needs access to these objects from SVGTextRunRenderingContext.
2820         (WebCore::FontFallbackList::glyphPageZero):
2821         (WebCore::FontFallbackList::glyphPages):
2822         (WebCore::FontFallbackList::setGlyphPageZero):
2823         (WebCore::FontFallbackList::setGlyphPages):
2824         * platform/graphics/FontFastPath.cpp:
2825         (WebCore::Font::glyphDataForCharacter): Move implementation to glyphDataAndPageForCharacter(), and use that method from here.
2826         (WebCore::Font::glyphDataAndPageForCharacter): Does the same as before, just returns an additional GlyphPage* pointer.
2827         (WebCore::Font::getEmphasisMarkGlyphData): Remove SVG Fonts special case.
2828         (WebCore::Font::drawGlyphBuffer): Ditto.
2829         * platform/graphics/FontMetrics.h:
2830         (WebCore::scaleEmToUnits): Refactored scaleEmToUnits free function from SimpleFontDataMac/CGWin to share with SVGFontData/SVGTextRunRenderingContext.
2831         * platform/graphics/GlyphPageTreeNode.cpp:
2832         (WebCore::fill): Stop skipping SVG Fonts, they now also fill the GlyphPage using the glyphs defined in the SVG Font.
2833         * platform/graphics/SVGGlyph.h: s/isValid/isPartOfLigature/. Its usage has been changed.
2834         (WebCore::SVGGlyph::SVGGlyph):
2835         (WebCore::SVGGlyph::operator==):
2836         * platform/graphics/SimpleFontData.cpp: Change font size to be a float, not an int.
2837         (WebCore::SimpleFontData::SimpleFontData):
2838         * platform/graphics/SimpleFontData.h: Add new pure virtual methods to the AdditionalFontData interface, to be implemented in SVGFontData.
2839         (WebCore::SimpleFontData::widthForGlyph): Call widthForSVGGlyph, if we encounter a SVG glyph.
2840         * platform/graphics/TextRun.h: 
2841         * platform/graphics/WidthIterator.cpp:
2842         (WebCore::WidthIterator::glyphDataForCharacter):
2843         (WebCore::WidthIterator::advance):
2844         * platform/graphics/WidthIterator.h: Store several new members needed for SVG Fonts support (last processed glyph name used for kerning pair lookup)
2845                                              and a map mapping each character of a text to its arabic-form (if needed, to perform SVG glyph selection for Arabic text).
2846         (WebCore::WidthIterator::run):
2847         (WebCore::WidthIterator::runWidthSoFar):
2848         (WebCore::WidthIterator::lastGlyphName):
2849         (WebCore::WidthIterator::setLastGlyphName):
2850         (WebCore::WidthIterator::arabicForms):
2851         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Use new scaleEmToUnits free function from FontMetrics.h.
2852         * platform/graphics/mac/SimpleFontDataMac.mm: Ditto.
2853         * platform/graphics/win/SimpleFontDataCGWin.cpp: Ditto.
2854         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
2855         (WebCore::SVGTextLayoutAttributesBuilder::propagateLayoutAttributes): Handle UTF-16 surrogate pairs correctly, fixes the previous Acid3 regression.
2856         * rendering/svg/SVGTextMetrics.cpp:
2857         (WebCore::SVGTextMetrics::SVGTextMetrics):
2858         (WebCore::constructTextRun):
2859         (WebCore::SVGTextMetrics::measureCharacterRange):
2860         * rendering/svg/SVGTextMetrics.h:
2861         * rendering/svg/SVGTextRunRenderingContext.cpp: Remove drawTextUsingSVGFont/floatWidthUsingSVGFont/selectionRectForTextUsingSVGFont/offsetForPositionForTextUsingSVGFont.
2862         (WebCore::firstParentRendererForNonTextNode): Don't assert node() exists, doesn't hold true for generated render objects.
2863         (WebCore::renderObjectFromRun): Renamed from referencingRenderObjectFromRun.
2864         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Remove extra "extraCharsAvailable" parameter, now solves via TextRun::charactersLength().
2865         (WebCore::calculateEmUnitToPixelScaleFactor): Add helper method.
2866         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Main drawing method, this actually creates/renders Paths.
2867         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Part 1/2 of SVG Glyph selection code.
2868         * rendering/svg/SVGTextRunRenderingContext.h:
2869         * svg/SVGAltGlyphElement.cpp:
2870         (WebCore::SVGAltGlyphElement::hasValidGlyphElement):
2871         * svg/SVGAltGlyphElement.h:
2872         * svg/SVGFontData.cpp:
2873         (WebCore::SVGFontData::initializeFontData): Changed font size from int to float.
2874         (WebCore::SVGFontData::widthForSVGGlyph): Lookup a SVGGlyph from a Glyph using the glyph table in SVGFontElement and calculate its width.
2875         (WebCore::SVGFontData::applySVGGlyphSelection): Part 2/2 of SVG Glyph selection code.
2876         (WebCore::SVGFontData::fillSVGGlyphPage): Fill GlyphPage using glyphs defined in the SVG Font.
2877         (WebCore::SVGFontData::fillBMPGlyphs): Moved from the previous fillSVGGlyphPage implementation.
2878         (WebCore::SVGFontData::fillNonBMPGlyphs): Add non-bmp glyph handling, fixing the Acid3 regression (support using SVGGlyphs for UTF-16 surrogate pairs).
2879         * svg/SVGFontData.h:
2880         * svg/SVGFontElement.cpp:
2881         (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Enable ligature registration for the use within GlyphPage.
2882         (WebCore::SVGFontElement::ensureGlyphCache):
2883         * svg/SVGGlyphMap.h: Switch to use SurrogatePairTextIterator, and switch glyph table from UChar to UChar32, just like GlyphPage, to handle glyphs from non-BMP correctly.
2884         (WebCore::SVGGlyphMap::addGlyph): Remove setting isValid, it's not needed anymore and gone.
2885         (WebCore::SVGGlyphMap::collectGlyphsForString):
2886         * svg/svgtags.in: Surround vkern in ENABLE_SVG_FONTS block.
2887
2888 2011-06-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2889
2890         Reviewed by Antonio Gomes.
2891
2892         [CMAKE] Replace ";" with space in FEATURE_DEFINES macro
2893         https://bugs.webkit.org/show_bug.cgi?id=62211
2894
2895         html.css file doesn't recognize ENABLE_XXX macro because FEATURE_DEFINES macro has ";"
2896         as separator. So, let the html.css to use new feature macro with space separator.
2897
2898         * CMakeLists.txt:
2899
2900 2011-06-24  Gavin Peters  <gavinp@chromium.org>
2901
2902         Reviewed by Darin Adler.
2903
2904         fix possible race in LinkLoader
2905         https://bugs.webkit.org/show_bug.cgi?id=63360
2906
2907         In chromium bug 80729
2908         http://code.google.com/p/chromium/issues/detail?id=80729 I am
2909         seeing some kind of double triggering of the timer; I am concerned
2910         that it is possible that a Link element errors out or succeeds,
2911         sets a timer, and shortly before the timer is triggered it is
2912         editted, launches another request.  After that, the first timer
2913         triggers, zeroing out m_cachedResource.  Then, the second load
2914         finishes, and *crash*.  If this is the case, this fix should stop
2915         it.
2916
2917         No new tests; I haven't reproduced this.  I hope chrome's crash
2918         telemetry will give good feedback; this crash is occuring many times a
2919         day so the difference should be obvious.
2920
2921         * loader/LinkLoader.cpp:
2922         (WebCore::LinkLoader::LinkLoader):
2923         (WebCore::LinkLoader::linkLoadTimerFired):
2924         (WebCore::LinkLoader::linkLoadingErrorTimerFired):
2925         (WebCore::LinkLoader::notifyFinished):
2926         * loader/LinkLoader.h:
2927
2928 2011-06-24  Jer Noble  <jer.noble@apple.com>
2929
2930         Reviewed by Eric Carlson.
2931
2932         Safari will quit unexpectedly when launching Safari in the first time (crash in initQTSecurityPolicyNoLocalToRemoteSiteAttribute)
2933         https://bugs.webkit.org/show_bug.cgi?id=63332
2934         <rdar://problem/9661650>
2935
2936         No new tests; Only affects machines with QTKit < 7.6.3 installed.
2937
2938         Check to see if QTSecurityPolicyNoRemoteToLocalSiteAttribute is non-NULL before passing it into -[QTMovie initWithAttributes:],
2939         as it is only defined in QTKit >= 7.6.3.  If it is NULL, pass QTSecurityPolicyNoCrossSiteAttribute=YES instead, which has
2940         the same effect in earlier versions of QTKit as the NoLocalToRemote and NoRemoteToLocal keys.  To avoid ASSERTs when running
2941         debug builds with earlier versions of QTKit, add a SOFT_LINK_POINTER_OPTIONAL macro to SoftLinking.h and make these keys optional.
2942
2943         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2944         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
2945         * platform/mac/SoftLinking.h: Add SOFT_LINK_POINTER_OPTIONAL macro.
2946
2947 2011-06-24  Darin Adler  <darin@apple.com>
2948
2949         Try to fix Windows build failure.
2950
2951         * platform/win/ClipboardUtilitiesWin.cpp:
2952         (WebCore::setFileDescriptorData): Copy string into a local so we
2953         can call charactersWithNullTermination on it.
2954
2955 2011-06-23  Darin Adler  <darin@apple.com>
2956
2957         Reviewed by Adam Barth.
2958
2959         Remove some unneeded functions from FrameLoader
2960         https://bugs.webkit.org/show_bug.cgi?id=63295
2961
2962         Removing 7 of the functions in FrameLoader.h is probably a step
2963         in the right direction.
2964
2965         * loader/DocumentLoader.cpp:
2966         (WebCore::DocumentLoader::handledOnloadEvents):
2967         Moved the call to stopDeferringEvents in here from FrameLoader.
2968         * loader/DocumentLoader.h: Ditto.
2969
2970         * loader/DocumentWriter.h: Fixed a typo.
2971
2972         * loader/FrameLoader.cpp:
2973         (WebCore::FrameLoader::setFirstPartyForCookies): Changed this to
2974         use a non-recursive tree walk instead of recursion.
2975         (WebCore::FrameLoader::stopAllLoaders): Moved the code from
2976         stopLoadingSubframes inline, since it's only two lines of code.
2977         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Moved
2978         the code from markLoadComplete inline, since it's only one line.
2979         (WebCore::FrameLoader::checkLoadComplete): Changed this to use a
2980         non-recursive tree walk instead of recursion, eliminating the
2981         recursiveCheckLoadComplete function completely.
2982         (WebCore::FrameLoader::handledOnloadEvents): Moved the call to
2983         stopDeferringEvents into DocumentLoader.
2984
2985         * loader/FrameLoader.h: Removed unneeded forward declarations,
2986         and now-unneeded functions setupForReplaceByMIMEType,
2987         isStopping, isLoadingFromCachedPage, stopLoadingSubframes,
2988         markLoadComplete, mainReceivedError, and recursiveCheckLoadComplete.
2989         Also made allChildrenAreComplete private.
2990
2991         * loader/MainResourceLoader.cpp:
2992         (WebCore::MainResourceLoader::continueAfterContentPolicy):
2993         Call DocumentLoader::isStopping so we can remove the function
2994         from FrameLoader that just calls through. Other call sites were
2995         using DocumentLoader::isStopping directly.
2996         (WebCore::MainResourceLoader::didReceiveResponse): Call
2997         DocumentLoader::setupForReplaceByMIMEType so we can remove the
2998         function from FrameLoader that just calls through. This was
2999         the only call site.
3000
3001         * loader/ResourceLoader.cpp:
3002         (WebCore::ResourceLoader::init): Call the
3003         ResourceLoader::cancelledError function instead of calling
3004         directly to FrameLoader.
3005
3006         * loader/ResourceLoader.h: Made response an inline function.
3007
3008 2011-06-24  Alexey Proskuryakov  <ap@apple.com>
3009
3010         Rubber-stamped by Maciej Stachowiak.
3011
3012         REGRESSION (r88984): Infinite recursion in DocumentLoader::detachFromFrame/stopLoading
3013
3014         No new tests, as there is no known way to reproduce this (but we'll keep investigating, as
3015         the rollout will re-introduce the older less frequent crash).
3016
3017         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::detachFromFrame): Rollout the fix
3018         for bug 62764.
3019
3020 2011-06-24  Tony Chang  <tony@chromium.org>
3021
3022         Reviewed by Ojan Vafai.
3023
3024         add flexbox and inline-flexbox as possible CSS display values
3025         https://bugs.webkit.org/show_bug.cgi?id=63361
3026
3027         Test: css3/flexbox/display-property.html
3028
3029         * css/CSSParser.cpp:
3030         (WebCore::CSSParser::parseValue):
3031         * css/CSSValueKeywords.in:
3032
3033 2011-06-24  Anna Cavender  <annacc@chromium.org>
3034
3035         Reviewed by Eric Carlson.
3036
3037         Loading out-of-band text track files from <track>.
3038         https://bugs.webkit.org/show_bug.cgi?id=62881
3039
3040         Uses the src attribute of <track> urls to load out-of-band text track
3041         files using ThreadableLoader.  Also removes TextTrackPrivateInterface
3042         (as well as LoadableTextTrackImpl and MutableTextTrackImpl) classes.
3043
3044         No new tests because feature is hidden behind VIDEO_TRACK feature
3045         define, which is turned off.
3046
3047         * CMakeLists.txt:
3048         * GNUmakefile.am:
3049         * GNUmakefile.list.am:
3050         * WebCore.gypi:
3051         * WebCore.pro:
3052         * WebCore.xcodeproj/project.pbxproj:
3053         * html/HTMLMediaElement.cpp:
3054         * html/HTMLMediaElement.h:
3055         * html/HTMLTrackElement.cpp:
3056         * html/HTMLTrackElement.h:
3057         * html/LoadableTextTrack.cpp:
3058         * html/LoadableTextTrack.h:
3059         * html/LoadableTextTrackImpl.cpp: Removed.
3060         * html/LoadableTextTrackImpl.h: Removed.
3061         * html/MutableTextTrack.cpp:
3062         * html/MutableTextTrack.h:
3063         * html/MutableTextTrackImpl.cpp: Removed.
3064         * html/MutableTextTrackImpl.h: Removed.
3065         * html/TextTrack.cpp:
3066         * html/TextTrack.h:
3067         * html/TextTrackPrivate.h: Removed.
3068         * platform/track/CueParser.cpp:
3069         * platform/track/CueParser.h:
3070
3071 2011-06-24  Rob Buis  <rbuis@rim.com>
3072
3073         Rubber-stamped by Nikolas Zimmermann.
3074
3075         All pointer-events fail if text has visibility="hidden"
3076         https://bugs.webkit.org/show_bug.cgi?id=62209
3077
3078         Do not use writing mode aware code for SVG Text.
3079
3080         No new tests needed.
3081
3082         * rendering/svg/SVGInlineTextBox.cpp:
3083         (WebCore::SVGInlineTextBox::nodeAtPoint):
3084
3085 2011-06-24  Lukasz Slachciak  <l.slachciak@samsung.com>
3086
3087         Reviewed by Darin Adler.
3088
3089         Change NDEBUG to !LOG_DISABLED macro in databases for logging.
3090         https://bugs.webkit.org/show_bug.cgi?id=63346
3091
3092         Changed NDEBUG to !LOG_DISABLED in databases code which involves logging.
3093         This change resolves also build break in Release build when logging enabled.
3094
3095         No new tests because there is no new behavior or feature exposed.
3096
3097         * loader/icon/IconDatabase.cpp: Macro fixes.
3098         (WebCore::IconDatabase::iconDatabaseSyncThread):
3099         (WebCore::IconDatabase::syncThreadMainLoop):
3100         (WebCore::IconDatabase::readFromDatabase):
3101         (WebCore::IconDatabase::writeToDatabase):
3102         (WebCore::IconDatabase::cleanupSyncThread):
3103         * storage/AbstractDatabase.h: Macro fixes.
3104         * storage/DatabaseTask.cpp: Macro fixes.
3105         * storage/DatabaseTask.h: Macro fixes.
3106         * storage/SQLTransaction.cpp: Macro fixes.
3107         * storage/SQLTransaction.h: Macro fixes.
3108
3109 2011-06-24  Tony Chang  <tony@chromium.org>
3110
3111         Reviewed by Adam Barth.
3112
3113         Pass Strings by const reference to functions
3114         https://bugs.webkit.org/show_bug.cgi?id=63341
3115
3116         Note that since Strings hold a RefPtr to StringImpl, passing Strings
3117         by value isn't horrible, but it does cause ref count churn and using
3118         const references is more consistent with the rest of the code base.
3119
3120         * loader/FrameLoader.cpp:
3121         (WebCore::FrameLoader::addHTTPOriginIfNeeded): Rework the code to not
3122             change the value of the passed in String.
3123         * loader/FrameLoader.h:
3124         * platform/win/ClipboardUtilitiesWin.cpp:
3125         (WebCore::setFileDescriptorData):
3126         * platform/win/ClipboardUtilitiesWin.h:
3127         * storage/DatabaseTracker.h:
3128         * storage/IDBLevelDBBackingStore.cpp:
3129         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
3130         * storage/IDBLevelDBBackingStore.h:
3131         * storage/IDBSQLiteBackingStore.cpp:
3132         (WebCore::IDBSQLiteBackingStore::IDBSQLiteBackingStore):
3133         * storage/IDBSQLiteBackingStore.h:
3134         * storage/chromium/DatabaseTrackerChromium.cpp:
3135         (WebCore::DatabaseTracker::getOpenDatabases):
3136         * svg/SVGPaint.cpp:
3137         (WebCore::SVGPaint::SVGPaint):
3138         * svg/SVGPaint.h:
3139         * svg/animation/SMILTimeContainer.cpp:
3140         (WebCore::SMILTimeContainer::updateAnimations):
3141         * svg/animation/SMILTimeContainer.h:
3142         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3143         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
3144         * websockets/ThreadableWebSocketChannelClientWrapper.h:
3145
3146 2011-06-24  Abhishek Arya  <inferno@chromium.org>
3147
3148         Reviewed by Darin Adler.
3149
3150         Add clamping for CSSPrimitiveValues and SVGInlineText font size.
3151         https://bugs.webkit.org/show_bug.cgi?id=53449        
3152
3153         Test: svg/text/svg-zoom-large-value.xhtml
3154
3155         * css/CSSPrimitiveValue.cpp:
3156         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): add asserts to detect if the
3157         number created is valid.
3158         * css/CSSPrimitiveValue.h: add clamping checks to prevent overflows.
3159         (WebCore::CSSPrimitiveValue::getFloatValue):
3160         (WebCore::CSSPrimitiveValue::getIntValue):
3161         * css/CSSStyleSelector.cpp:
3162         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): split into two
3163         static functions, one specific to CSSStyleSelector and other generic to help
3164         in clamping font size for other callers like svg text, etc.
3165         * css/CSSStyleSelector.h:
3166         * platform/graphics/FontDescription.h: add asserts to detect if the new font
3167         size is valid.
3168         (WebCore::FontDescription::setComputedSize):
3169         (WebCore::FontDescription::setSpecifiedSize):
3170         * rendering/svg/RenderSVGInlineText.cpp:
3171         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle): use the new helper
3172         from CSSStyleSelector to help in clamping new scaled font size. do not use
3173         "smart minimum" since svg allows really small unreadable fonts (tested by existing
3174         layout tests). Document's minimum font size clamp (0 in my case) and harmless epsilon
3175         check in CSSStyleSelector function should still hold for svg.
3176
3177 2011-06-24  Julien Chaffraix  <jchaffraix@webkit.org>
3178
3179         Reviewed by Darin Adler.
3180
3181         Remove unsafe static_cast inside the InlineBox hierarchy
3182         https://bugs.webkit.org/show_bug.cgi?id=63077
3183
3184         Refactoring only, no new test.
3185
3186         * rendering/InlineFlowBox.h:
3187         (WebCore::toInlineFlowBox):
3188         * rendering/InlineTextBox.h:
3189         (WebCore::toInlineTextBox):
3190         Added the proper cast methods to those 2 classes from an InlineBox.
3191
3192         * rendering/InlineBox.cpp:
3193         (WebCore::InlineBox::nextLeafChild):
3194         (WebCore::InlineBox::prevLeafChild):
3195         * rendering/InlineFlowBox.cpp:
3196         (WebCore::InlineFlowBox::getFlowSpacingLogicalWidth):
3197         (WebCore::InlineFlowBox::addToLine):
3198         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
3199         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
3200         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
3201         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
3202         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
3203         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
3204         (WebCore::InlineFlowBox::flipLinesInBlockDirection):
3205         (WebCore::InlineFlowBox::computeOverflow):
3206         (WebCore::InlineFlowBox::firstLeafChild):
3207         (WebCore::InlineFlowBox::lastLeafChild):
3208         (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
3209         (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
3210         * rendering/RenderBlock.cpp:
3211         (WebCore::RenderBlock::positionForBox):
3212         * rendering/RenderBlockLineLayout.cpp:
3213         (WebCore::RenderBlock::createLineBoxes):
3214         (WebCore::RenderBlock::constructLine):
3215         (WebCore::setLogicalWidthForTextRun):
3216         (WebCore::computeExpansionForJustifiedText):
3217         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
3218         * rendering/RenderText.cpp:
3219         (WebCore::RenderText::localCaretRect):
3220         (WebCore::RenderText::positionLineBox):
3221         * rendering/RootInlineBox.cpp:
3222         (WebCore::RootInlineBox::ascentAndDescentForBox):
3223         (WebCore::RootInlineBox::includeFontForBox):
3224         (WebCore::RootInlineBox::includeGlyphsForBox):
3225         Replaced the static_cast in those previous call sites with the new cast methods.
3226
3227 2011-06-24  Alexis Menard  <alexis.menard@openbossa.org>
3228
3229         Unreviewed build fix.
3230
3231         Build fix on Linux when using the GStreamer backend.
3232
3233         No new tests, just a build fix.
3234
3235         * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
3236         (FullScreenVideoWindow::keyPressEvent):
3237
3238 2011-06-24  Nat Duca  <nduca@chromium.org>
3239
3240         Unreviewed, rolling out r89694.
3241         http://trac.webkit.org/changeset/89694
3242         https://bugs.webkit.org/show_bug.cgi?id=58408
3243
3244         Test shell still not ready for animate changes.
3245
3246         * WebCore.gypi:
3247         * platform/graphics/chromium/LayerRendererChromium.cpp:
3248         (WebCore::LayerRendererChromium::create):
3249         (WebCore::LayerRendererChromium::LayerRendererChromium):
3250         (WebCore::LayerRendererChromium::setViewport):
3251         (WebCore::LayerRendererChromium::updateAndDrawLayers):
3252         * platform/graphics/chromium/LayerRendererChromium.h:
3253         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3254         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
3255         (WebCore::CCHeadsUpDisplay::setShowFPSCounter):
3256         (WebCore::CCHeadsUpDisplay::setShowPlatformLayerTree):
3257         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Removed.
3258         * platform/graphics/chromium/cc/CCLayerTreeHost.h: Removed.
3259         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.cpp: Removed.
3260         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.h: Removed.
3261         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Removed.
3262         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Removed.
3263         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.cpp: Removed.
3264         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.h: Removed.
3265         * platform/graphics/chromium/cc/CCMainThreadTask.h:
3266         * platform/graphics/chromium/cc/CCThread.cpp:
3267         (WebCore::CCThread::runLoop):
3268         * platform/graphics/chromium/cc/CCThreadTask.h:
3269
3270 2011-06-24  Chris Rogers  <crogers@google.com>
3271
3272         Unreviewed build fix.
3273
3274         Fix Chromium Linux Build
3275         https://bugs.webkit.org/show_bug.cgi?id=63349
3276
3277         * WebCore.gyp/WebCore.gyp:
3278
3279 2011-06-24  Henry Song  <hsong@sisa.samsung.com>
3280
3281         Reviewed by Martin Robinson.
3282
3283         Correct _sharedTimer value in SharedTimerEfl.cpp
3284         https://bugs.webkit.org/show_bug.cgi?id=62380
3285
3286         SharedTimerEfl.cpp set _sharedTimer = 0 is incorrect in 
3287         timerEvent(), we have observed addNewTimer() can be triggered 
3288         by either inside timerFunction() or others that are not within
3289         timerFunction().  We have observed the following case:
3290         1. add a new Timer within timerFunction()
3291         2. timerFunction returns, set _sharedTimer = 0
3292         3. addNewTimer() is triggered again within webkit, don't know
3293            it triggers this.
3294         4. because at this moment, _sharedTimer == 0, the previous
3295            registered timer (in step 1) did not get removed.
3296         5. Now in ecore_timer, there are two timers with same callbacks
3297         6. From now on, timerFunction() will be called twice back-to-back
3298            in each ecore_timer loop.
3299         To correct this, we should set _sharedTimer = 0 before
3300         timerFunction() so that when addNewTimer() triggered within,
3301         we have a valid timer object.
3302
3303         * platform/efl/SharedTimerEfl.cpp:
3304         (WebCore::timerEvent):
3305
3306 2011-05-17  Nat Duca  <nduca@chromium.org>
3307
3308         Reviewed by James Robinson.
3309
3310         [chromium] Implement CCLayerTreeHost and CCLayerTreeHostImpl portions of threaded compositor
3311         https://bugs.webkit.org/show_bug.cgi?id=58408
3312
3313         Create CCLayerTreeHost and CCLayerTreeHostImpl, which are the main
3314         thread and compositor thread halves of a composited view. Communication
3315         between the two is based on the design used in FileStreamProxy.
3316
3317         * WebCore.gypi:
3318         * platform/chromium/TraceEvent.h:
3319         * platform/graphics/chromium/LayerRendererChromium.cpp:
3320         (WebCore::LayerRendererChromium::create):
3321         (WebCore::LayerRendererChromium::LayerRendererChromium):
3322         (WebCore::LayerRendererChromium::setViewport):
3323         (WebCore::LayerRendererChromium::updateLayers):
3324         (WebCore::LayerRendererChromium::drawLayers):
3325         (WebCore::LayerRendererChromiumImpl::create):
3326         (WebCore::LayerRendererChromiumImpl::drawLayersAndPresent):
3327         (WebCore::LayerRendererChromiumImpl::LayerRendererChromiumImpl):
3328         (WebCore::LayerRendererChromiumImpl::drawLayersOnMainThread):
3329         (WebCore::LayerRendererChromiumImplProxy::create):
3330         (WebCore::LayerRendererChromiumImplProxy::createLayerTreeHostImpl):
3331         (WebCore::LayerRendererChromiumImplProxy::LayerRendererChromiumImplProxy):
3332         (WebCore::LayerRendererChromium::createLayerTreeHostImplProxy):
3333         * platform/graphics/chromium/LayerRendererChromium.h:
3334         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3335         (WebCore::CCHeadsUpDisplay::setShowFPSCounter):
3336         (WebCore::CCHeadsUpDisplay::setShowPlatformLayerTree):
3337         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
3338         (WebCore::CCHeadsUpDisplay::currentFrameNumber):
3339         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
3340         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3341         (WebCore::CCLayerTreeHost::init):
3342         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
3343         (WebCore::CCLayerTreeHost::beginCommit):
3344         (WebCore::CCLayerTreeHost::commitComplete):
3345         (WebCore::CCLayerTreeHost::animateAndLayout):
3346         (WebCore::CCLayerTreeHost::createLayerTreeHostCommitter):
3347         (WebCore::CCLayerTreeHost::setNeedsCommitAndRedraw):
3348         (WebCore::CCLayerTreeHost::setNeedsRedraw):
3349         (WebCore::CCLayerTreeHost::updateLayers):
3350         * platform/graphics/chromium/cc/CCLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
3351         (WebCore::CCLayerTreeHost::frameNumber):
3352         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
3353         (WebCore::CCLayerTreeHostCommitter::create):
3354         (WebCore::CCLayerTreeHostCommitter::commit):
3355         * platform/graphics/chromium/cc/CCLayerTreeHostCommitter.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
3356         (WebCore::CCLayerTreeHostCommitter::CCLayerTreeHostCommitter):
3357         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Added.
3358         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
3359         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
3360         (WebCore::CCLayerTreeHostImpl::beginCommit):
3361         (WebCore::CCLayerTreeHostImpl::commitComplete):
3362         (WebCore::CCLayerTreeHostImpl::drawLayers):
3363         (WebCore::CCLayerTreeHostImpl::setNeedsCommitAndRedraw):
3364         (WebCore::CCLayerTreeHostImpl::setNeedsRedraw):
3365         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCThread.cpp.
3366         (WebCore::CCLayerTreeHostImplClient::~CCLayerTreeHostImplClient):
3367         (WebCore::CCLayerTreeHostImpl::frameNumber):
3368         (WebCore::CCLayerTreeHostImpl::sourceFrameNumber):
3369         (WebCore::CCLayerTreeHostImpl::setSourceFrameNumber):
3370         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.cpp: Added.
3371         (WebCore::CCLayerTreeHostImplProxy::CCLayerTreeHostImplProxy):
3372         (WebCore::CCLayerTreeHostImplProxy::start):
3373         (WebCore::CCLayerTreeHostImplProxy::~CCLayerTreeHostImplProxy):
3374         (WebCore::CCLayerTreeHostImplProxy::isStarted):
3375         (WebCore::CCLayerTreeHostImplProxy::setNeedsCommitAndRedraw):
3376         (WebCore::CCLayerTreeHostImplProxy::setNeedsRedraw):
3377         (WebCore::CCLayerTreeHostImplProxy::stop):
3378         (WebCore::CCLayerTreeHostImplProxy::postDrawLayersTaskOnCCThread):
3379         (WebCore::CCLayerTreeHostImplProxy::requestFrameAndCommitOnCCThread):
3380         (WebCore::CCLayerTreeHostImplProxy::isMainThread):
3381         (WebCore::CCLayerTreeHostImplProxy::isCCThread):
3382         (WebCore::CCLayerTreeHostImplProxy::requestFrameAndCommit):
3383         (WebCore::CCLayerTreeHostImplProxy::commitOnCCThread):
3384         (WebCore::CCLayerTreeHostImplProxy::drawLayersOnCCThread):
3385         (WebCore::CCLayerTreeHostImplProxy::setNeedsCommitAndRedrawOnCCThread):
3386         (WebCore::CCLayerTreeHostImplProxy::setNeedsRedrawOnCCThread):
3387         (WebCore::CCLayerTreeHostImplProxy::initImplOnCCThread):
3388         (WebCore::CCLayerTreeHostImplProxy::layerTreeHostClosedOnCCThread):
3389         * platform/graphics/chromium/cc/CCLayerTreeHostImplProxy.h: Added.
3390         (WebCore::CCLayerTreeHostImplProxy::host):
3391         * platform/graphics/chromium/cc/CCMainThreadTask.h:
3392         * platform/graphics/chromium/cc/CCThread.cpp:
3393         (WebCore::CCThread::runLoop):
3394         * platform/graphics/chromium/cc/CCThreadTask.h:
3395
3396 2011-06-24  Adrienne Walker  <enne@google.com>
3397
3398         Unreviewed, remove assertion about root layers in RenderLayerBacking.
3399         https://bugs.webkit.org/show_bug.cgi?id=60741
3400
3401         This was added in r89687, but somehow is not true on Safari Leopard.
3402         However, as the tests that were added with that revision are passing
3403         correctly, the assertion is most likely not correct.
3404
3405         * rendering/RenderLayerBacking.cpp:
3406         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3407
3408 2011-06-24  Nikolas Zimmermann  <nzimmermann@rim.com>
3409
3410         Reviewed by Dirk Schulze.
3411
3412         Refactor text iterator code respecting surrogate pairs from WidthIterator
3413         https://bugs.webkit.org/show_bug.cgi?id=63319
3414
3415         WidthIterator contains a surrogate pair aware text iterator that is needed in other parts of WebCore.
3416         Refactor the code into its own SurrogatePairAwareTextIterator class. It can be used like this:
3417
3418         UChar32 character = 0;
3419         unsigned clusterLength = 0;
3420
3421         SurrogatePairAwareTextIterator textIterator(myString.characters(), 0, myString.length(), myString.length());
3422         while (textIterator.consume(character, clusterLength)) {
3423             // Either clusterLength is 1 and UChar32 fits into a single UChar.
3424             // Or     clusterLength is 2 and the UChar32 has been computed by combining the high & low surrogate pairs
3425             ...
3426         
3427             textIterator.advance(clusterLength);
3428         }
3429
3430         SVGGlyphMap is the next candidate that wants to make use of SurrogatePairAwareTextIterator.
3431