a35c813e173b7502e8d767cad486a774b29c4ebd
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-27  Oliver Hunt  <oliver@apple.com>
2
3         Reviewed by Geoffrey Garen.
4
5         Convert markstack to a slot visitor API
6         https://bugs.webkit.org/show_bug.cgi?id=53219
7
8         Update WebCore to the new marking apis, correct bindings
9         codegen. 
10
11         * ForwardingHeaders/runtime/WriteBarrier.h: Added.
12         * WebCore.exp.in:
13         * bindings/js/DOMWrapperWorld.h:
14         (WebCore::DOMWrapperWorld::globalData):
15         * bindings/js/JSAudioConstructor.cpp:
16         (WebCore::JSAudioConstructor::JSAudioConstructor):
17         * bindings/js/JSDOMBinding.cpp:
18         (WebCore::markDOMNodesForDocument):
19         (WebCore::markDOMObjectWrapper):
20         (WebCore::markDOMNodeWrapper):
21         * bindings/js/JSDOMGlobalObject.cpp:
22         (WebCore::JSDOMGlobalObject::markChildren):
23         (WebCore::JSDOMGlobalObject::setInjectedScript):
24         (WebCore::JSDOMGlobalObject::injectedScript):
25         * bindings/js/JSDOMGlobalObject.h:
26         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
27         (WebCore::getDOMConstructor):
28         * bindings/js/JSDOMWindowCustom.cpp:
29         (WebCore::JSDOMWindow::setLocation):
30         (WebCore::DialogHandler::dialogCreated):
31         * bindings/js/JSDOMWindowShell.cpp:
32         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
33         (WebCore::JSDOMWindowShell::setWindow):
34         (WebCore::JSDOMWindowShell::markChildren):
35         (WebCore::JSDOMWindowShell::unwrappedObject):
36         * bindings/js/JSDOMWindowShell.h:
37         (WebCore::JSDOMWindowShell::window):
38         (WebCore::JSDOMWindowShell::setWindow):
39         * bindings/js/JSEventListener.cpp:
40         (WebCore::JSEventListener::JSEventListener):
41         (WebCore::JSEventListener::markJSFunction):
42         * bindings/js/JSEventListener.h:
43         (WebCore::JSEventListener::jsFunction):
44         * bindings/js/JSHTMLDocumentCustom.cpp:
45         (WebCore::JSHTMLDocument::setAll):
46         * bindings/js/JSImageConstructor.cpp:
47         (WebCore::JSImageConstructor::JSImageConstructor):
48         * bindings/js/JSImageDataCustom.cpp:
49         (WebCore::toJS):
50         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
51         (WebCore::JSJavaScriptCallFrame::scopeChain):
52         (WebCore::JSJavaScriptCallFrame::scopeType):
53         * bindings/js/JSNodeFilterCondition.cpp:
54         (WebCore::JSNodeFilterCondition::markAggregate):
55         (WebCore::JSNodeFilterCondition::acceptNode):
56         * bindings/js/JSNodeFilterCondition.h:
57         * bindings/js/JSNodeFilterCustom.cpp:
58         * bindings/js/JSOptionConstructor.cpp:
59         (WebCore::JSOptionConstructor::JSOptionConstructor):
60         * bindings/js/JSSQLResultSetRowListCustom.cpp:
61         (WebCore::JSSQLResultSetRowList::item):
62         * bindings/js/ScriptCachedFrameData.cpp:
63         (WebCore::ScriptCachedFrameData::restore):
64         * bindings/js/ScriptObject.cpp:
65         (WebCore::ScriptGlobalObject::set):
66         * bindings/js/SerializedScriptValue.cpp:
67         (WebCore::CloneDeserializer::putProperty):
68         * bindings/scripts/CodeGeneratorJS.pm:
69         * dom/Document.h:
70
71 2011-01-28  Sam Weinig  <sam@webkit.org>
72
73         Reviewed by Anders Carlsson.
74
75         Keyboard scrolling doesn’t work in WebKit2
76         <rdar://problem/8909672>
77
78         * platform/mac/ScrollAnimatorMac.mm:
79         (-[ScrollAnimationHelperDelegate convertSizeToBacking:]):
80         (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]):
81         Add additional necessary delegate methods.
82
83 2011-01-29  Darin Adler  <darin@apple.com>
84
85         Reviewed by Dan Bernstein.
86
87         Re-land this patch with the missing null check that caused crashes in layout tests.
88
89         Changing cursor style has no effect until the mouse moves
90         https://bugs.webkit.org/show_bug.cgi?id=14344
91         rdar://problem/7563712
92
93         No tests added because we don't have infrastructure for testing actual cursor
94         changes (as opposed to cursor style computation) at this time. We might add it later.
95
96         * page/EventHandler.cpp:
97         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
98         * page/EventHandler.h: Ditto.
99
100         * rendering/RenderObject.cpp:
101         (WebCore::areNonIdenticalCursorListsEqual): Added.
102         (WebCore::areCursorsEqual): Added.
103         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
104         cursor styles changed.
105
106 2011-01-28  Justin Schuh  <jschuh@chromium.org>
107
108         Reviewed by Eric Seidel.
109
110         We should hold RefPtrs to SVG font faces
111         https://bugs.webkit.org/show_bug.cgi?id=53270
112
113         Test: svg/custom/use-multiple-on-nested-disallowed-font.html
114
115         * css/CSSFontFaceSource.cpp:
116         (WebCore::CSSFontFaceSource::getFontData):
117         * css/CSSFontFaceSource.h:
118         * svg/SVGFontFaceElement.cpp:
119         (WebCore::SVGFontFaceElement::associatedFontElement):
120         * svg/SVGFontFaceElement.h:
121
122 2011-01-28  Zhenyao Mo  <zmo@google.com>
123
124         Reviewed by Kenneth Russell.
125
126         uniformN*v should generate INVALID_VALUE of the array size is not a multiple of N
127         https://bugs.webkit.org/show_bug.cgi?id=53306
128
129         * html/canvas/WebGLRenderingContext.cpp:
130         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
131
132 2011-01-28  Tom Sepez  <tsepez@chromium.org>
133
134         Reviewed by Eric Seidel.
135
136         NULL pointer crash in TextIterator::handleTextBox()
137         https://bugs.webkit.org/show_bug.cgi?id=53267
138
139         Test: fast/css/rtl-nth-child-first-letter-crash.html
140
141         * editing/TextIterator.cpp:
142         (WebCore::TextIterator::handleTextBox):
143
144 2011-01-28  Adrienne Walker  <enne@google.com>
145
146         Reviewed by Kenneth Russell.
147
148         [chromium] Remove a spurious diagnostic CRASH check.
149         https://bugs.webkit.org/show_bug.cgi?id=52379
150
151         * platform/graphics/chromium/LayerTilerChromium.cpp:
152         (WebCore::LayerTilerChromium::invalidateRect):
153
154 2011-01-28  Dan Bernstein  <mitz@apple.com>
155
156         Reviewed by Sam Weinig.
157
158         <rdar://problem/4761512> <select> can't display right-to-left (rtl) languages
159         https://bugs.webkit.org/show_bug.cgi?id=19785
160
161         Changed <select> pop-up menus on Mac OS X Snow Leopard and later to have their items aligned in the
162         direction corresponding to the writing direction of the <select> element, with the checkmarks
163         on the "start" side, and use the <option>'s writing direction rather than "natural". Made the
164         pop-up button match the menu by adding a Chrome boolean function, selectItemAlignmentFollowsMenuWritingDirection(),
165         which returns true for this pop-up behavior.
166
167         * loader/EmptyClients.h:
168         (WebCore::EmptyChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added.
169         * manual-tests/pop-up-alignment-and-direction.html: Added.
170         * page/Chrome.cpp:
171         (WebCore::Chrome::selectItemAlignmentFollowsMenuWritingDirection): Added. Calls through to the
172         client.
173         * page/Chrome.h:
174         * page/ChromeClient.h:
175         * platform/PopupMenuStyle.h:
176         (WebCore::PopupMenuStyle::PopupMenuStyle): Added hasTextDirectionOverride parameter and member
177         variable initialization.
178         (WebCore::PopupMenuStyle::hasTextDirectionOverride): Added this accessor.
179         * platform/mac/PopupMenuMac.mm:
180         (WebCore::PopupMenuMac::populate): Set the pop-up's layout direction and items' text alignment
181         to match the menu's writing direction. Set items' writing direction and direction override
182         according to their styles.
183         * rendering/RenderMenuList.cpp:
184         (WebCore::RenderMenuList::RenderMenuList): Removed unncesaary initialization of a smart pointer.
185         (WebCore::RenderMenuList::adjustInnerStyle): If the alignment of items in the menu follows the
186         menu's writing direction, use that alignment for the button as well. Also in this mode, use the
187         item's writing direction and override setting.
188         (WebCore::RenderMenuList::setTextFromOption): Store the option element's style.
189         (WebCore::RenderMenuList::itemStyle): Pass the text direction override value.
190         (WebCore::RenderMenuList::menuStyle): Ditto. Also use the button's direction, not the inner text's.
191         * rendering/RenderMenuList.h:
192         * rendering/RenderTextControlSingleLine.cpp:
193         (WebCore::RenderTextControlSingleLine::menuStyle): Pass the text direction override value.
194
195 2011-01-28  Adam Barth  <abarth@webkit.org>
196
197         Reviewed by Daniel Bates.
198
199         Teach XSSFilter how to filter <script> elements
200         https://bugs.webkit.org/show_bug.cgi?id=53279
201
202         This patch adds the ability for the XSSFilter to block injected
203         <script> elements.  Handling script elements is slightly subtle because
204         these elements act very differently depending on whether they have a
205         src attribute.
206         
207         In the "src case", which check whether the src attribute was present in
208         the request.  In the "non-src case", we check whether the start tag and
209         the body of the script element was included in the request.  Checking
210         for the whole start tag means we miss out on some attribute splitting
211         attacks inside of script tags, but that doesn't seem like that big a
212         deal.
213
214         This patch also introduces some amount of state into the XSSFilter
215         because inline script elements span multiple tokens.  There's a lot of
216         tuning and optimization left in these cases, some of which I've noted
217         with FIXMEs.
218
219         To test this patch, I played around with some of the existing
220         XSSAuditor tests.  Hopefully I'll be able to run the test suite more
221         systematically in the future.
222
223         * html/parser/HTMLToken.h:
224         (WebCore::HTMLToken::eraseCharacters):
225         (WebCore::HTMLToken::eraseValueOfAttribute):
226         * html/parser/XSSFilter.cpp:
227         (WebCore::HTMLNames::hasName):
228         (WebCore::HTMLNames::findAttributeWithName):
229         (WebCore::HTMLNames::isNameOfScriptCarryingAttribute):
230         (WebCore::XSSFilter::XSSFilter):
231         (WebCore::XSSFilter::filterToken):
232         (WebCore::XSSFilter::filterTokenAfterScriptStartTag):
233         (WebCore::XSSFilter::filterScriptToken):
234         (WebCore::XSSFilter::snippetForRange):
235         (WebCore::XSSFilter::snippetForAttribute):
236         * html/parser/XSSFilter.h:
237
238 2011-01-28  Adam Barth  <abarth@webkit.org>
239
240         Reviewed by Daniel Bates.
241
242         Sketch out new XSS filter design (disabled by default)
243         https://bugs.webkit.org/show_bug.cgi?id=53205
244
245         This patch adds a basic sketch of the new XSS filter design.  Rather
246         than watching scripts as they execute, in this design, we watch tokens
247         emitted by the tokenizer.  We then map the tokens directly back into
248         input characters, which lets us skip all the complicated logic related
249         to HTML entities and double-decoding of JavaScript URLs.
250
251         This patch contains only the bare essentially machinery.  I'll add more
252         in future patches and eventually remove the previous code once this
253         code is up and running correctly.
254
255         * Android.mk:
256         * CMakeLists.txt:
257         * GNUmakefile.am:
258         * WebCore.gypi:
259         * WebCore.pro:
260         * WebCore.vcproj/WebCore.vcproj:
261         * WebCore.xcodeproj/project.pbxproj:
262         * html/parser/HTMLDocumentParser.cpp:
263         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
264         (WebCore::HTMLDocumentParser::pumpTokenizer):
265         (WebCore::HTMLDocumentParser::sourceForToken):
266         * html/parser/HTMLDocumentParser.h:
267         * html/parser/XSSFilter.cpp: Added.
268         * html/parser/XSSFilter.h: Added.
269
270 2011-01-28  Michael Saboff  <msaboff@apple.com>
271
272         Reviewed by Geoffrey Garen.
273
274         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
275         https://bugs.webkit.org/show_bug.cgi?id=53271
276
277         Reapplying this patch with the change that the second ASSERT in 
278         RootObject::removeRuntimeObject was changed to use
279         .uncheckedGet() instead of the failing .get().  The object in question
280         could be in the process of being GC'ed.  The get() call will not return
281         such an object while the uncheckedGet() call will return the (unsafe) 
282         object.  This is the behavior we want.
283
284         Precautionary change.
285         Changed RootObject to use WeakGCMap instead of HashSet.
286         Found will looking for another issue, but can't produce a test case
287         that is problematic.  THerefore there aren't any new tests.
288
289         * bridge/runtime_root.cpp:
290         (JSC::Bindings::RootObject::invalidate):
291         (JSC::Bindings::RootObject::addRuntimeObject):
292         (JSC::Bindings::RootObject::removeRuntimeObject):
293         * bridge/runtime_root.h:
294
295 2011-01-28  Adam Roben  <aroben@apple.com>
296
297         Notify CACFLayerTreeHost when the context is flushed
298
299         LegacyCACFLayerTreeHost was keeping this a secret, which meant that WebCore's animation
300         timers were never starting.
301
302         Fixes <http://webkit.org/b/53302> [Windows 7 Release Tests] changesets 76853, 76856, and
303         76858 broke ~36 animations, compositing, and transitions tests
304
305         Reviewed by Sam Weinig.
306
307         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
308         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): Call up to the base class after we
309         start our render timer.
310
311 2011-01-28  Antti Koivisto  <antti@apple.com>
312
313         Reviewed by Dan Bernstein.
314
315         Remove dead code that tried to map from CSS values to parser values
316         https://bugs.webkit.org/show_bug.cgi?id=53318
317
318         * css/CSSFunctionValue.cpp:
319         * css/CSSFunctionValue.h:
320         * css/CSSPrimitiveValue.cpp:
321         * css/CSSPrimitiveValue.h:
322         * css/CSSValue.h:
323         * css/CSSValueList.cpp:
324         * css/CSSValueList.h:
325
326 2011-01-28  Enrica Casucci  <enrica@apple.com>
327
328         Reviewed by Adam Roben.
329
330         Some drag and drop tests fail since r76824
331         https://bugs.webkit.org/show_bug.cgi?id=53304
332
333         There were '||' instead of '&&' in the checks for valid
334         clipboard content.
335         
336         * platform/win/ClipboardWin.cpp:
337         (WebCore::ClipboardWin::getData):
338         (WebCore::ClipboardWin::types):
339         (WebCore::ClipboardWin::files):
340
341 2011-01-28  Martin Robinson  <mrobinson@igalia.com>
342
343         [GTK] AudioProcessingEvent.h and JSJavaScriptAudioNode.h: No such file or directory
344         https://bugs.webkit.org/show_bug.cgi?id=52889
345
346         Build fix for WebAudio. Include WebAudio source files on the source
347         list when WebAudio is enabled.
348
349         * GNUmakefile.am: Include missing source files.
350
351 2011-01-28  Sam Weinig  <sam@webkit.org>
352
353         Reviewed by Maciej Stachowiak.
354
355         Add basic rubber banding support
356         <rdar://problem/8219429>
357         https://bugs.webkit.org/show_bug.cgi?id=53277
358
359         * page/EventHandler.cpp:
360         (WebCore::EventHandler::handleGestureEvent):
361         Pass gesture events to the FrameView.
362
363         * platform/ScrollAnimator.cpp:
364         (WebCore::ScrollAnimator::handleGestureEvent):
365         * platform/ScrollAnimator.h:
366         Add stubbed out implementation.
367
368         * platform/ScrollView.cpp:
369         (WebCore::ScrollView::ScrollView):
370         (WebCore::ScrollView::overhangAmount):
371         (WebCore::ScrollView::wheelEvent):
372         * platform/ScrollView.h:
373         * platform/ScrollableArea.cpp:
374         (WebCore::ScrollableArea::ScrollableArea):
375         (WebCore::ScrollableArea::handleGestureEvent):
376         * platform/ScrollableArea.h:
377         (WebCore::ScrollableArea::constrainsScrollingToContentEdge):
378         (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge):
379         Move constrains scrolling bit to ScrollableArea from ScrollView.
380
381         (WebCore::ScrollableArea::contentsSize):
382         (WebCore::ScrollableArea::overhangAmount):
383         Add additional virtual functions for information needed by the animator.
384
385         * platform/mac/ScrollAnimatorMac.h:
386         * platform/mac/ScrollAnimatorMac.mm:
387         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
388         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX):
389         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY):
390         (WebCore::elasticDeltaForTimeDelta):
391         (WebCore::elasticDeltaForReboundDelta):
392         (WebCore::reboundDeltaForElasticDelta):
393         (WebCore::scrollWheelMultiplier):
394         (WebCore::ScrollAnimatorMac::handleWheelEvent):
395         (WebCore::ScrollAnimatorMac::handleGestureEvent):
396         (WebCore::ScrollAnimatorMac::pinnedInDirection):
397         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
398         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
399         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
400         (WebCore::ScrollAnimatorMac::beginScrollGesture):
401         (WebCore::ScrollAnimatorMac::endScrollGesture):
402         (WebCore::ScrollAnimatorMac::snapRubberBand):
403         (WebCore::roundTowardZero):
404         (WebCore::roundToDevicePixelTowardZero):
405         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
406         Implement basic rubber banding.
407
408 2011-01-28  Dan Bernstein  <mitz@apple.com>
409
410         Reviewed by Anders Carlsson.
411
412         Changing unicode-bidi doesn’t force layout
413         https://bugs.webkit.org/show_bug.cgi?id=53311
414
415         Test: fast/dynamic/unicode-bidi.html
416
417         * rendering/style/RenderStyle.cpp:
418         (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ.
419
420 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
421
422         Reviewed by Kent Tamura.
423
424         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
425         https://bugs.webkit.org/show_bug.cgi?id=53122
426
427         This is the first step in converting HTMLMediaElement to the new shadow DOM.
428
429         Should not regress any existing tests. No observable change in behavior.
430
431         * css/CSSSelector.cpp:
432         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
433         (WebCore::nameToPseudoTypeMap): Ditto.
434         (WebCore::CSSSelector::extractPseudoType): Ditto.
435         * css/CSSSelector.h: Ditto.
436         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
437         * rendering/MediaControlElements.cpp:
438         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
439             which is now replaced with virtual shadowPseudoId on each corresponding class.
440         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
441         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
442             display type in constructor.
443         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
444             constructor argument.
445         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
446         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
447             to disambiguate from the MediaControlMuteButtonElement.
448         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
449         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
450         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
451             constructor argument.
452         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
453         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
454             constructor argument.
455         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
456         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
457         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
458         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
459         (WebCore::MediaControlSeekBackButtonElement::create): Added.
460         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
461         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
462         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
463         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
464             constructor argument.
465         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
466         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
467             constructor argument.
468         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
469         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
470             constructor argument.
471         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
472         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
473             constructor argument.
474         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
475         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
476             constructor argument.
477         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
478         * rendering/MediaControlElements.h:
479         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
480         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
481         * rendering/RenderMedia.cpp:
482         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
483         (WebCore::RenderMedia::createSeekBackButton): Ditto.
484         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
485         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
486         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
487
488 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
489
490         Reviewed by Eric Carlson.
491
492         Split MediaControls out of RenderMedia.
493         https://bugs.webkit.org/show_bug.cgi?id=53252
494
495         Near-mechanical moving of stuff, no change in behavior, thus no new tests.
496
497         * Android.mk: Added MediaControls to build system.
498         * CMakeLists.txt: Ditto.
499         * GNUmakefile.am: Ditto.
500         * WebCore.gypi: Ditto.
501         * WebCore.pro: Ditto.
502         * WebCore.vcproj/WebCore.vcproj: Ditto.
503         * WebCore.xcodeproj/project.pbxproj: Ditto.
504         * html/HTMLMediaElement.cpp:
505         (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls.
506         * html/shadow/MediaControls.cpp: Copied all controls-related methods from
507             Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. 
508         * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h.
509         * rendering/MediaControlElements.cpp:
510         (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls.
511         * rendering/RenderMedia.cpp:
512         (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls.
513         (WebCore::RenderMedia::destroy): Changed to use MediaControls.
514         (WebCore::RenderMedia::styleDidChange): Ditto.
515         (WebCore::RenderMedia::layout): Ditto.
516         (WebCore::RenderMedia::updateFromElement): Ditto.
517         * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which
518             is only used by sub-class RenderVideo.
519         (WebCore::RenderMedia::controls): Added.
520         * rendering/RenderVideo.cpp:
521         (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement().
522         (WebCore::RenderVideo::calculateIntrinsicSize): Ditto.
523         (WebCore::RenderVideo::paintReplaced): Ditto.
524         (WebCore::RenderVideo::updatePlayer): Ditto.
525         (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto.
526         (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto.
527
528 2011-01-28  Pavel Feldman  <pfeldman@chromium.org>
529
530         Reviewed by Yury Semikhatsky.
531
532         Web Inspector: allow remote debugging with front-end
533         served from the cloud.
534         https://bugs.webkit.org/show_bug.cgi?id=53303
535
536         * inspector/front-end/inspector.js:
537
538 2011-01-28  Aparna Nandyal  <aparna.nand@wipro.com>
539
540         Reviewed by Andreas Kling.
541
542         Setting value of m_PressedPos to make scrolling smooth
543
544         Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler.
545         https://bugs.webkit.org/show_bug.cgi?id=51349
546
547         The value of m_PressedPos was getting set before moveThumb() call
548         in all other scenarios except when "Scroll Here" option is used.
549         Hence scrolling with this option was not as expected even in cases
550         where scrolling was happening. The thumb would move in unexpected
551         direction. m_PressedPos is now set to pressed position so delta is
552         calculated.
553         Unable to write a test case as the test needs to click on "Scroll
554         Here" option of context sensitive menu and QTest is unable to do it.
555         Besides no new functionality introduced.
556
557         * platform/qt/ScrollbarQt.cpp:
558         (WebCore::Scrollbar::contextMenu):
559
560 2011-01-28  Andrey Kosyakov  <caseq@chromium.org>
561
562         Reviewed by Pavel Feldman.
563
564         Web Inspector: [Extensions API] add JSON schema for extensions API
565         https://bugs.webkit.org/show_bug.cgi?id=53236
566
567         * inspector/front-end/ExtensionAPISchema.json: Added.
568
569 2011-01-27  Zhenyao Mo  <zmo@google.com>
570
571         Reviewed by Kenneth Russell.
572
573         Remove _LENGTH enumerants
574         https://bugs.webkit.org/show_bug.cgi?id=53259
575
576         * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH.
577         (WebCore::WebGLRenderingContext::getProgramParameter):
578         (WebCore::WebGLRenderingContext::getShaderParameter):
579         * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH.
580
581 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
582
583         Reviewed by Yury Semikhatsky.
584
585         Web Inspector: syntax highlight inline JS and CSS in HTML resources
586         https://bugs.webkit.org/show_bug.cgi?id=30831
587
588         * inspector/front-end/SourceHTMLTokenizer.js:
589         (WebInspector.SourceHTMLTokenizer):
590         (WebInspector.SourceHTMLTokenizer.prototype.set line):
591         (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
592         * inspector/front-end/SourceHTMLTokenizer.re2js:
593
594 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
595
596         Reviewed by Yury Semikhatsky.
597
598         Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword
599         https://bugs.webkit.org/show_bug.cgi?id=53295
600
601         Select the current word suffix before switching to the next suggestion.
602
603         * inspector/front-end/StylesSidebarPane.js:
604         ():
605
606 2011-01-28  Alejandro G. Castro  <alex@igalia.com>
607
608         Reviewed by Xan Lopez.
609
610         [GTK] Fix dist compilation for the release
611         https://bugs.webkit.org/show_bug.cgi?id=53290
612
613         * GNUmakefile.am: Added inspector files to the extra dist.
614
615 2011-01-28  Ilya Sherman  <isherman@chromium.org>
616
617         Reviewed by Andreas Kling.
618
619         Const-correct HTMLSelectElement and WebSelectElement
620         https://bugs.webkit.org/show_bug.cgi?id=53293
621
622         * html/HTMLSelectElement.cpp:
623         (WebCore::HTMLSelectElement::value): const.
624         * html/HTMLSelectElement.h:
625
626 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
627
628         Unreviewed, rolling out r76893.
629         http://trac.webkit.org/changeset/76893
630         https://bugs.webkit.org/show_bug.cgi?id=53287
631
632         It made some tests crash on GTK and Qt debug bots (Requested
633         by Ossy on #webkit).
634
635         * bridge/runtime_root.cpp:
636         (JSC::Bindings::RootObject::invalidate):
637         (JSC::Bindings::RootObject::addRuntimeObject):
638         (JSC::Bindings::RootObject::removeRuntimeObject):
639         * bridge/runtime_root.h:
640
641 2011-01-27  Greg Coletta  <greg.coletta@nokia.com>
642
643         Reviewed by Laszlo Gombos.
644
645         Get rid of prefix header dependency for WebKit2 build system
646         https://bugs.webkit.org/show_bug.cgi?id=50174
647
648         Guard EmptyProtocalDefinitions.h to make sure it's not included twice.
649
650         * platform/mac/EmptyProtocolDefinitions.h:
651
652 2011-01-27  Abhishek Arya  <inferno@chromium.org>
653
654         Reviewed by Dan Bernstein.
655
656         Recalc table sections if needed before calculating the first line
657         box baseline.
658         https://bugs.webkit.org/show_bug.cgi?id=53265
659
660         When we try to calculate the baseline position of a table cell,
661         we recurse through all the child sibling boxes (when children are
662         non inline) and add their first linebox baseline values. If one of
663         the children is a table with pending section recalc, we will access
664         wrong table section values. We recalc table sections if it is needed.
665
666         Test: fast/table/recalc-section-first-body-crash-main.html
667
668         * rendering/RenderTable.cpp:
669         (WebCore::RenderTable::firstLineBoxBaseline):
670
671 2011-01-27  Adrienne Walker  <enne@google.com>
672
673         Reviewed by Kenneth Russell.
674
675         [chromium] Add CRASH calls to further debug tiled compositor memcpy crash.
676         https://bugs.webkit.org/show_bug.cgi?id=52379
677
678         Test: LayoutTests/compositing (to verify these weren't triggered)
679
680         * platform/graphics/chromium/LayerTilerChromium.cpp:
681         (WebCore::LayerTilerChromium::invalidateRect):
682         (WebCore::LayerTilerChromium::update):
683
684 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
685
686         Reviewed by Pavel Feldman.
687
688         Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact
689         https://bugs.webkit.org/show_bug.cgi?id=53242
690
691         * inspector/front-end/StylesSidebarPane.js:
692         (WebInspector.StylePropertyTreeElement.prototype):
693
694 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
695
696         Unreviewed, rolling out r76891.
697         http://trac.webkit.org/changeset/76891
698         https://bugs.webkit.org/show_bug.cgi?id=53280
699
700         Makes every layout test crash (Requested by othermaciej on
701         #webkit).
702
703         * page/EventHandler.cpp:
704         * page/EventHandler.h:
705         * rendering/RenderObject.cpp:
706         (WebCore::RenderObject::styleDidChange):
707
708 2011-01-27  Ryosuke Niwa  <rniwa@webkit.org>
709
710         Unreviewed, rolling out r76839.
711         http://trac.webkit.org/changeset/76839
712         https://bugs.webkit.org/show_bug.cgi?id=49744
713
714         broke pixel tests
715
716         * rendering/RenderBox.cpp:
717         (WebCore::RenderBox::localCaretRect):
718
719 2011-01-27  Emil A Eklund  <eae@chromium.org>
720
721         Reviewed by Darin Adler.
722
723         contentEditable formatBlock crashes on divs with contenteditable="false"
724         https://bugs.webkit.org/show_bug.cgi?id=53263
725
726         Check if editableRootForPosition returns null for position.
727
728         Test: editing/execCommand/format-block-contenteditable-false.html
729
730         * editing/FormatBlockCommand.cpp:
731         (WebCore::FormatBlockCommand::formatRange):
732
733 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
734
735         Reviewed by Darin Adler.
736
737         Remove RenderMedia members that aren't used.
738         https://bugs.webkit.org/show_bug.cgi?id=53245
739
740         Refactoring, no change in behavior, so no new tests.
741
742         * rendering/RenderMedia.h: Removed unused member variables.
743
744 2011-01-27  Michael Saboff  <msaboff@apple.com>
745
746         Reviewed by Darin Adler.
747
748         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
749         https://bugs.webkit.org/show_bug.cgi?id=53271
750
751         Precautionary change.
752         Changed RootObject to use WeakGCMap instead of HashSet.
753         Found will looking for another issue, but can't produce a test case
754         that is problematic.  THerefore there aren't any new tests.
755
756         * bridge/runtime_root.cpp:
757         (JSC::Bindings::RootObject::invalidate):
758         (JSC::Bindings::RootObject::addRuntimeObject):
759         (JSC::Bindings::RootObject::removeRuntimeObject):
760         * bridge/runtime_root.h:
761
762 2011-01-27  Kenneth Russell  <kbr@google.com>
763
764         Reviewed by James Robinson.
765
766         Rename Typed Array slice() to subset()
767         https://bugs.webkit.org/show_bug.cgi?id=53273
768
769         * bindings/js/JSArrayBufferViewHelper.h:
770         (WebCore::constructArrayBufferView):
771         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
772         (WebCore::constructWebGLArray):
773         * html/canvas/Float32Array.cpp:
774         (WebCore::Float32Array::subset):
775         * html/canvas/Float32Array.h:
776         * html/canvas/Float32Array.idl:
777         * html/canvas/Int16Array.cpp:
778         (WebCore::Int16Array::subset):
779         * html/canvas/Int16Array.h:
780         * html/canvas/Int16Array.idl:
781         * html/canvas/Int32Array.cpp:
782         (WebCore::Int32Array::subset):
783         * html/canvas/Int32Array.h:
784         * html/canvas/Int32Array.idl:
785         * html/canvas/Int8Array.cpp:
786         (WebCore::Int8Array::subset):
787         * html/canvas/Int8Array.h:
788         * html/canvas/Int8Array.idl:
789         * html/canvas/TypedArrayBase.h:
790         (WebCore::TypedArrayBase::subsetImpl):
791         * html/canvas/Uint16Array.cpp:
792         (WebCore::Uint16Array::subset):
793         * html/canvas/Uint16Array.h:
794         * html/canvas/Uint16Array.idl:
795         * html/canvas/Uint32Array.cpp:
796         (WebCore::Uint32Array::subset):
797         * html/canvas/Uint32Array.h:
798         * html/canvas/Uint32Array.idl:
799         * html/canvas/Uint8Array.cpp:
800         (WebCore::Uint8Array::subset):
801         * html/canvas/Uint8Array.h:
802         * html/canvas/Uint8Array.idl:
803
804 2011-01-27  Darin Adler  <darin@apple.com>
805
806         Reviewed by Dan Bernstein.
807
808         Changing cursor style has no effect until the mouse moves
809         https://bugs.webkit.org/show_bug.cgi?id=14344
810         rdar://problem/7563712
811
812         No tests added because we don't have infrastructure for testing actual cursor
813         changes (as opposed to cursor style computation) at this time. We might add it later.
814
815         * page/EventHandler.cpp:
816         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
817         * page/EventHandler.h: Ditto.
818
819         * rendering/RenderObject.cpp:
820         (WebCore::areNonIdenticalCursorListsEqual): Added.
821         (WebCore::areCursorsEqual): Added.
822         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
823         cursor styles changed.
824
825 2011-01-27  Leo Yang  <leo.yang@torchmobile.com.cn>
826
827         Reviewed by Dirk Schulze.
828
829         SVG Use Cycle is not detected
830         https://bugs.webkit.org/show_bug.cgi?id=52544
831
832         We should check if SVGUseElement::buildInstanceTree finds problem
833         for every child node. If it finds problem for any children we must
834         return immediately because otherwise the foundProblem variable may
835         be rewritten to false.
836
837         Test: svg/custom/recursive-use2.svg
838
839         * svg/SVGUseElement.cpp:
840         (WebCore::SVGUseElement::buildInstanceTree):
841
842 2011-01-27  Zhenyao Mo  <zmo@google.com>
843
844         Reviewed by Kenneth Russell.
845
846         texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call
847         https://bugs.webkit.org/show_bug.cgi?id=53054
848
849         Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html
850
851         * html/canvas/WebGLRenderingContext.cpp:
852         (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match.
853
854 2011-01-27  Yi Shen  <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
855
856         Reviewed by Andreas Kling.
857
858         [Qt] Add fullscreen media control button for html video
859         https://bugs.webkit.org/show_bug.cgi?id=51543
860
861         Implement media control fullscreen button for QtWebKit html5 video.
862
863         * css/mediaControlsQt.css:
864         (video::-webkit-media-controls-fullscreen-button):
865         * platform/qt/RenderThemeQt.cpp:
866         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
867
868 2011-01-27  Nate Chapin  <japhet@chromium.org>
869
870         Reviewed by Adam Barth.
871
872         Remove FrameLoader::url() and update callers to use
873         Document::url().
874         https://bugs.webkit.org/show_bug.cgi?id=41165
875
876         Refactor, no new tests.
877
878         * WebCore.exp.in:
879         * dom/Document.cpp:
880         (WebCore::Document::processHttpEquiv):
881         (WebCore::Document::removePendingSheet):
882         * history/CachedFrame.cpp:
883         (WebCore::CachedFrameBase::CachedFrameBase):
884         * history/PageCache.cpp:
885         (WebCore::logCanCacheFrameDecision):
886         (WebCore::PageCache::canCachePageContainingThisFrame):
887         * html/HTMLFrameElementBase.cpp:
888         (WebCore::HTMLFrameElementBase::isURLAllowed):
889         * html/HTMLPlugInImageElement.cpp:
890         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
891         * inspector/InspectorAgent.cpp:
892         (WebCore::InspectorAgent::inspectedURL):
893         * inspector/InspectorResourceAgent.cpp:
894         (WebCore::buildObjectForFrame):
895         * loader/DocumentWriter.cpp:
896         (WebCore::DocumentWriter::replaceDocument):
897         (WebCore::DocumentWriter::deprecatedFrameEncoding):
898         * loader/FrameLoader.cpp:
899         * loader/FrameLoader.h:
900         * loader/HistoryController.cpp:
901         (WebCore::HistoryController::updateForStandardLoad):
902         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
903         (WebCore::HistoryController::updateForSameDocumentNavigation):
904         * loader/NavigationScheduler.cpp:
905         (WebCore::ScheduledHistoryNavigation::fire):
906         (WebCore::NavigationScheduler::scheduleLocationChange):
907         (WebCore::NavigationScheduler::scheduleRefresh):
908         * page/FrameView.cpp:
909         (WebCore::FrameView::updateControlTints):
910         * page/Location.cpp:
911         (WebCore::Location::url):
912         (WebCore::Location::setProtocol):
913         (WebCore::Location::setHost):
914         (WebCore::Location::setHostname):
915         (WebCore::Location::setPort):
916         (WebCore::Location::setPathname):
917         (WebCore::Location::setSearch):
918         (WebCore::Location::setHash):
919         (WebCore::Location::reload):
920         * page/Page.cpp:
921         (WebCore::Page::goToItem):
922
923 2011-01-27  Stephen White  <senorblanco@chromium.org>
924
925         Reviewed by Darin Adler.
926
927         Fix performance regression in ImageQualityController::objectDestroyed().
928         https://bugs.webkit.org/show_bug.cgi?id=52645
929
930         In r72282, I inadvertently introduced this regression by using a
931         linear search through the hash map on object destruction.  This was
932         because the hash key consisted of both object pointer and layer id,
933         but on object destruction we only know the object pointer, requiring
934         a search to find all the layers. 
935         By replacing the hash map with two nested hash maps, where the outer key
936         is the object and the inner key is the layer, we can find all the
937         relevant data for an object in one hash lookup.
938
939         * rendering/RenderBoxModelObject.cpp:
940         Replace the (object,layer)->size HashMap with object->layer and
941         layer->size HashMaps.
942         (WebCore::ImageQualityController::isEmpty):
943         Implement isEmpty() for the outer HashMap.
944         (WebCore::ImageQualityController::removeLayer):
945         When a layer is removed, remove it from the inner hash map.
946         (WebCore::ImageQualityController::set):
947         Implement set():  if the inner map exists, set the layer->size tuple
948         directly.  If not, create a new inner map, set the tuple, and insert
949         it in the outer map.
950         (WebCore::ImageQualityController::objectDestroyed):
951         Look up the object in the outer map only.
952         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
953         Cosmetic changes for the renamed now-outer hash map.
954         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
955         Do both outer and inner hash map lookups.  Call set() to add/update
956         entries to the hash maps.  keyDestroyed() is now removeLayer().
957         (WebCore::imageQualityController):
958         Make the ImageQualityController a file-static global, so it can be
959         created and destroyed on the fly.
960         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
961         If there is no ImageQualityController, don't call objectDestroyed().
962         If it's empty, delete it.
963         * rendering/RenderImage.cpp:
964         (WebCore::RenderImage::paintIntoRect):
965         Also pass the Image* as the (void*) layer, since 0 is not a valid
966         HashMap key.
967
968 2011-01-27  Adrienne Walker  <enne@google.com>
969
970         Reviewed by James Robinson.
971
972         [chromium] Tiled compositor crashes if compositing turned off mid-paint
973         https://bugs.webkit.org/show_bug.cgi?id=53198
974
975         * platform/graphics/chromium/LayerRendererChromium.cpp:
976         (WebCore::LayerRendererChromium::drawLayers):
977         * platform/graphics/chromium/LayerTilerChromium.cpp:
978         (WebCore::LayerTilerChromium::update):
979         (WebCore::LayerTilerChromium::draw):
980
981 2011-01-27  Carol Szabo <carol.szabo@nokia.com>
982
983         Reviewed by David Hyatt.
984
985         A corrupted counter tree is created when renderers are added to the
986         tree bypassing RenderObject::addChild
987         https://bugs.webkit.org/show_bug.cgi?id=51270
988
989         No new tests. This patch reimplements the fix for bugs 43812 and
990         51637 and hence all tests are already there as part of the original
991         fixes for those bugs.
992
993         * rendering/RenderCounter.cpp:
994         (WebCore::findPlaceForCounter):
995         Removed old workaround as this patch hopefully fixes the real
996         problem.
997         * rendering/RenderObject.cpp:
998         (WebCore::RenderObject::addChild):
999         Removed call to counter updater as it was moved to a lower level.
1000         (WebCore::RenderObject::destroy):
1001         Moved attached counter nodes destruction to after the node is
1002         removed from the tree.
1003         * rendering/RenderObjectChildList.cpp:
1004         (WebCore::RenderObjectChildList::removeChildNode):
1005         (WebCore::RenderObjectChildList::appendChildNode):
1006         (WebCore::RenderObjectChildList::insertChildNode):
1007         Added notifications to the Counter system such that the
1008         CounterForest reflects the changes to the RendererTree.
1009         * rendering/RenderWidget.cpp:
1010         (WebCore::RenderWidget::destroy):
1011         Applied the same changes as for RenderObject::destroy()
1012         since RenderObject::destroy() is not called from here.
1013
1014 2011-01-27  Adam Roben  <aroben@apple.com>
1015
1016         Add WKCACFViewLayerTreeHost
1017
1018         This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render.
1019
1020         Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use
1021         WKCACFView for rendering
1022
1023         * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}.
1024
1025         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1026         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a
1027         non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window,
1028         so we need a non-empty window to perform a valid test.
1029         (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then
1030         fall back to a LegacyCACFLayerTreeHost.
1031         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the
1032         context flush from here...
1033         (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to
1034         call this function whenever changes are flushed to the context.
1035
1036         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange.
1037
1038         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
1039         (WebCore::LegacyCACFLayerTreeHost::createRenderer):
1040         (WebCore::LegacyCACFLayerTreeHost::resize):
1041         Changed to use flushContext instead of flushing the context manually so that we will always
1042         notify the base class when the context gets flushed.
1043
1044         (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the
1045         base class will know what happened. Moved code to schedule a render from here...
1046         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here.
1047
1048         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange.
1049
1050         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added.
1051         (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides
1052         WKCACFView, isn't present, bail. Otherwise allocate and return a new host.
1053         (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members.
1054         (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously
1055         marked that we needed to do so, and flush the context if our layer's bounds have changed.
1056         (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to
1057         contextDidChange.
1058         (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering
1059         (if we didn't already), then call up to the base class.
1060         (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the
1061         view's layer, and hook up our "context did change" callback.
1062         (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next
1063         time we paint.
1064         (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is
1065         able to render or not.
1066         (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down
1067         to the view.
1068         (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view.
1069         (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto.
1070         (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right
1071         size, then call up to the base class.
1072         (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty
1073         rects, then ask it to draw.
1074
1075         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h.
1076
1077 2011-01-27  Adam Roben  <aroben@apple.com>
1078
1079         Move LegacyCACFLayerTreeHost into its own files
1080
1081         More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
1082         should use WKCACFView for rendering
1083
1084         Reviewed by Simon Fraser.
1085
1086         * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}.
1087
1088         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files.
1089
1090         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added.
1091         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added.
1092
1093 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
1094
1095         Unreviewed WinCE build fix for r76824.
1096
1097         * platform/wince/DragDataWinCE.cpp:
1098         (WebCore::DragData::dragDataMap):
1099
1100 2011-01-27  Adam Roben  <aroben@apple.com>
1101
1102         Split CACFLayerTreeHost into base and derived classes
1103
1104         The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch
1105         will add a new derived class that replaces the D3D code with a different rendering API.
1106
1107         For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a
1108         little smaller. A later patch will move it to its own source files.
1109
1110         Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
1111         should use WKCACFView for rendering
1112
1113         Reviewed by Simon Fraser.
1114
1115         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1116         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before
1117         destroying the host, as that is now the API contract that clients must fulfill.
1118         (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator.
1119         (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the
1120         new initialize function to perform initialization that has to happen after the vtable has
1121         been set up.
1122
1123         (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
1124         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
1125         (WebCore::LegacyCACFLayerTreeHost::initializeContext):
1126         (WebCore::CACFLayerTreeHost::initialize):
1127         Moved some initialization code from the CACFLayerTreeHost constructor into these new
1128         functions.
1129
1130         (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from
1131         ~CACFLayerTreeHost.
1132         (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this
1133         point (which would be too late, since we won't be able to call into the derived class's
1134         virtual functions), just assert that it has already been cleared (or was never set in the
1135         first place).
1136         (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from
1137         CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing
1138         CACFLayerTreeHost's data members directly.
1139
1140         (WebCore::LegacyCACFLayerTreeHost::destroyRenderer):
1141         (WebCore::CACFLayerTreeHost::destroyRenderer):
1142         Moved some code to the new LegacyCACFLayerTreeHost function.
1143
1144         (WebCore::LegacyCACFLayerTreeHost::resize):
1145         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
1146         Moved these functions to LegacyCACFLayerTreeHost.
1147
1148         (WebCore::LegacyCACFLayerTreeHost::paint):
1149         (WebCore::CACFLayerTreeHost::paint):
1150         Moved some code to the new LegacyCACFLayerTreeHost function.
1151
1152         (WebCore::LegacyCACFLayerTreeHost::render):
1153         (WebCore::LegacyCACFLayerTreeHost::renderSoon):
1154         Moved these functions to LegacyCACFLayerTreeHost.
1155
1156         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context
1157         from here...
1158         (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function.
1159
1160         (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time
1161         to this new function...
1162         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here.
1163
1164         (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry):
1165         (WebCore::LegacyCACFLayerTreeHost::resetDevice):
1166         Moved these functions to LegacyCACFLayerTreeHost.
1167
1168         * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some
1169         members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more
1170         logically, and added some getters used by LegacyCACFLayerTreeHost.
1171
1172 2011-01-27  Adam Roben  <aroben@apple.com>
1173
1174         Move CACFLayerTreeHostClient to its own header file
1175
1176         Rubber-stamped by Steve Falkenburg.
1177
1178         * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way
1179         with the file.
1180
1181         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include.
1182
1183         * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient.
1184
1185         * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added.
1186
1187         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here
1188         from the header file.
1189
1190         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes
1191         with more specific ones, plus a forward-declaration.
1192
1193 2011-01-27  James Simonsen  <simonjam@chromium.org>
1194
1195         Reviewed by Tony Chang.
1196
1197         [Chromium] Simplify small caps logic in complex text on linux
1198         https://bugs.webkit.org/show_bug.cgi?id=53207
1199
1200         Test: fast/text/atsui-multiple-renderers.html
1201               fast/text/atsui-small-caps-punctuation-size.html
1202
1203         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
1204         (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes.
1205         (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above.
1206
1207 2011-01-27  Adam Barth  <abarth@webkit.org>
1208
1209         In which I attempt to fix the EFL build.
1210
1211         * CMakeLists.txt:
1212
1213 2011-01-25  Levi Weintraub  <leviw@chromium.org>
1214
1215         Reviewed by Darin Adler.
1216
1217         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
1218         Corrected for mistake in r76625
1219
1220         Undo moves caret to invalid position
1221         https://bugs.webkit.org/show_bug.cgi?id=49744
1222
1223         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
1224                editing/selection/caret-painting-after-paste-undo.html
1225
1226         * rendering/RenderBox.cpp:
1227         (WebCore::RenderBox::localCaretRect):
1228
1229 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1230
1231         Unreviewed, rolling out r76825.
1232         http://trac.webkit.org/changeset/76825
1233         https://bugs.webkit.org/show_bug.cgi?id=53256
1234
1235         "caused crashes on GTK and chromium" (Requested by rniwa on
1236         #webkit).
1237
1238         * rendering/RenderBoxModelObject.cpp:
1239         (WebCore::ImageQualityController::keyDestroyed):
1240         (WebCore::ImageQualityController::objectDestroyed):
1241         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1242         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1243         (WebCore::imageQualityController):
1244         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1245
1246 2011-01-27  Adam Barth  <abarth@webkit.org>
1247
1248         Reviewed by Eric Seidel.
1249
1250         Generalize the mechanism view-source uses to remember the source for an HTMLToken
1251         https://bugs.webkit.org/show_bug.cgi?id=53200
1252
1253         Currently view-source tracks the source associated with each HTMLToken.
1254         We want to re-use this mechanism for the new XSS auditor.  This patch
1255         moves this code into its own class so it can be shared between the
1256         view-source parser and the general HTML parser.  This patch also add
1257         support for tracking the source of tokens that span document.write
1258         boundaries.
1259
1260         No functional change.  This code change is somewhat tested by our
1261         view-source layout tests.
1262
1263         * Android.mk:
1264         * GNUmakefile.am:
1265         * WebCore.gypi:
1266         * WebCore.pro:
1267         * WebCore.vcproj/WebCore.vcproj:
1268         * WebCore.xcodeproj/project.pbxproj:
1269             - Fun with updating build files.
1270         * html/parser/HTMLDocumentParser.cpp:
1271         (WebCore::HTMLDocumentParser::pumpTokenizer):
1272             - Teach HTMLDocumentParser to track the source for HTMLTokens.
1273               Currently, this information isn't used, but it will be shortly.
1274               I ran the HTML parser benchmark and this change didn't have a
1275               measurable effect.
1276         * html/parser/HTMLDocumentParser.h:
1277             - Composite in the HTMLSourceTracker.
1278         * html/parser/HTMLSourceTracker.cpp: Added.
1279         (WebCore::HTMLSourceTracker::HTMLSourceTracker):
1280         (WebCore::HTMLSourceTracker::start):
1281         (WebCore::HTMLSourceTracker::end):
1282             - This function should eventualy be folded into HTMLTokenizer.
1283         (WebCore::HTMLSourceTracker::sourceForToken):
1284         * html/parser/HTMLSourceTracker.h: Added.
1285         * html/parser/HTMLToken.h:
1286             - Now HTMLTokens always have a start index of zero.  To do the job
1287               of the old start index, this patch introduces the notion of a
1288               baseOffset.  Unlike the start index (which was used as the base
1289               offset for all the other indicies), the baseOffset can change
1290               over the lifetime of the token.  We need the flexibility to
1291               change the offset for tokens that span document.write boundaries.
1292               Values are now normalized to zero-offset when stored.
1293         (WebCore::HTMLToken::clear):
1294         (WebCore::HTMLToken::setBaseOffset):
1295         (WebCore::HTMLToken::end):
1296         (WebCore::HTMLToken::beginAttributeName):
1297         (WebCore::HTMLToken::endAttributeName):
1298         (WebCore::HTMLToken::beginAttributeValue):
1299         (WebCore::HTMLToken::endAttributeValue):
1300         * html/parser/HTMLViewSourceParser.cpp:
1301             - Updates the HTMLViewSourceParser to use the new
1302               HTMLSourceTracker.
1303         (WebCore::HTMLViewSourceParser::pumpTokenizer):
1304         (WebCore::HTMLViewSourceParser::append):
1305         (WebCore::HTMLViewSourceParser::sourceForToken):
1306             - This function now just calls through to HTMLSourceTracker.
1307         * html/parser/HTMLViewSourceParser.h:
1308         * platform/text/SegmentedString.cpp:
1309         (WebCore::SegmentedString::currentColumn):
1310         (WebCore::SegmentedString::setCurrentPosition):
1311         * platform/text/SegmentedString.h:
1312         (WebCore::SegmentedString::numberOfCharactersConsumed):
1313             - We need to handle the general case now.  The "slow" version
1314               doesn't turn out to be any slower in practice anyway.
1315
1316 2011-01-27  Sam Weinig  <sam@webkit.org>
1317
1318         Fix all the builds.
1319
1320         * platform/ScrollView.cpp:
1321         (WebCore::ScrollView::paintOverhangAreas): Add parameters.
1322
1323 2011-01-27  Sam Weinig  <sam@webkit.org>
1324
1325         Reviewed by Dave Hyatt.
1326
1327         Add ability to do an unconstrained scroll on a ScrollView
1328         https://bugs.webkit.org/show_bug.cgi?id=53249
1329
1330         * platform/ScrollView.cpp:
1331         (WebCore::ScrollView::ScrollView):
1332         Initialize m_constrainsScrollingToContentEdge to true.
1333
1334         (WebCore::ScrollView::setScrollOffset):
1335         Only constrain the offset if the m_constrainsScrollingToContentEdge is set.
1336
1337         (WebCore::ScrollView::updateScrollbars):
1338         Simplify expression converting an IntSize to an IntPoint.
1339         
1340         (WebCore::ScrollView::paint):
1341         Paint the overhang if there is any.
1342         
1343         (WebCore::ScrollView::calculateOverhangAreasForPainting):
1344         Calculate the overhang in viewport coordinates for painting.
1345
1346         * platform/ScrollView.h:
1347         (WebCore::ScrollView::constrainsScrollingToContentEdge):
1348         (WebCore::ScrollView::setConstrainsScrollingToContentEdge):
1349         Add bit to control whether the scroll position should be constrained
1350         to the content edge when set.
1351
1352         * platform/ScrollbarThemeComposite.cpp:
1353         (WebCore::usedTotalSize):
1354         (WebCore::ScrollbarThemeComposite::thumbPosition):
1355         (WebCore::ScrollbarThemeComposite::thumbLength):
1356         * platform/mac/ScrollbarThemeMac.mm:
1357         (WebCore::ScrollbarThemeMac::paint):
1358         Improve calculations of thumb size and position to take overhang into account.
1359
1360 2011-01-27  Dirk Schulze  <krit@webkit.org>
1361
1362         Reviewed by Nikolas Zimmermann.
1363
1364         SVG animation of Paths with segments of different coordinate modes on begin and end
1365         https://bugs.webkit.org/show_bug.cgi?id=52984
1366
1367         At the moment we just support SVG path animations, if the number of segments on the given start path
1368         is the same as the number of segments on the given end path. But a segment on a given position must be identical
1369         on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical.
1370         If MoveToRel is on the second position on the start path a MoveToRel must be on the second position
1371         of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel
1372         in the start path, we can use MoveToAbs on the same position in the end path.
1373
1374         This patch fixes the blending code to follow the spec here. It was necessary to track the current position of
1375         both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back
1376         to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the
1377         animation.
1378
1379         Tests: svg/animations/animate-path-animation-Cc-Ss.html
1380                svg/animations/animate-path-animation-Ll-Vv-Hh.html
1381                svg/animations/animate-path-animation-Qq-Tt.html
1382                svg/animations/animate-path-animation-cC-sS-inverse.html
1383                svg/animations/animate-path-animation-lL-vV-hH-inverse.html
1384                svg/animations/animate-path-animation-qQ-tT-inverse.html
1385
1386         * svg/SVGPathBlender.cpp:
1387         (WebCore::blendFloatPoint):
1388         (WebCore::blendAnimatedFloat):
1389         (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat):
1390         (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
1391         (WebCore::SVGPathBlender::blendMoveToSegment):
1392         (WebCore::SVGPathBlender::blendLineToSegment):
1393         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
1394         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
1395         (WebCore::SVGPathBlender::blendCurveToCubicSegment):
1396         (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
1397         (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
1398         (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
1399         (WebCore::SVGPathBlender::blendArcToSegment):
1400         (WebCore::coordinateModeOfCommand):
1401         (WebCore::isSegmentEqual):
1402         (WebCore::SVGPathBlender::blendAnimatedPath):
1403         (WebCore::SVGPathBlender::cleanup):
1404         * svg/SVGPathBlender.h:
1405
1406 2011-01-27  Cris Neckar  <cdn@chromium.org>
1407
1408         Reviewed by Dimitri Glazkov.
1409
1410         Clear the parent on a css keyframe's m_style when removing it from the stylesheet.
1411         https://bugs.webkit.org/show_bug.cgi?id=52320
1412
1413         Test: fast/css/css-keyframe-style-crash.html
1414
1415         * css/CSSRuleList.cpp:
1416         (WebCore::CSSRuleList::deleteRule):
1417         * css/WebKitCSSKeyframesRule.cpp:
1418         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1419
1420 2011-01-27  Rob Buis  <rwlbuis@gmail.com>
1421
1422         Reviewed by Kent Tamura.
1423
1424         Color changes to option elements in a select multiple aren't drawn immediately
1425         https://bugs.webkit.org/show_bug.cgi?id=49790
1426
1427         Redirect style changes on <option> element to the owner <select> element.
1428
1429         Test: fast/repaint/select-option-background-color.html
1430
1431         * html/HTMLOptionElement.cpp:
1432         (WebCore::HTMLOptionElement::setRenderStyle):
1433
1434 2011-01-19  Stephen White  <senorblanco@chromium.org>
1435
1436         Reviewed by Darin Adler.
1437
1438         Fix performance regression in ImageQualityController::objectDestroyed().
1439         https://bugs.webkit.org/show_bug.cgi?id=52645
1440
1441         In r72282, I inadvertently introduced this regression by using a
1442         linear search through the hash map on object destruction.  This was
1443         because the hash key consisted of both object pointer and layer id,
1444         but on object destruction we only know the object pointer, requiring
1445         a search to find all the layers. 
1446         By replacing the hash map with two nested hash maps, where the outer key
1447         is the object and the inner key is the layer, we can find all the
1448         relevant data for an object in one hash lookup.
1449
1450         * rendering/RenderBoxModelObject.cpp:
1451         Replace the (object,layer)->size HashMap with object->layer and
1452         layer->size HashMaps.
1453         (WebCore::ImageQualityController::isEmpty):
1454         Implement isEmpty() for the outer HashMap.
1455         (WebCore::ImageQualityController::removeLayer):
1456         When a layer is removed, remove it from the inner hash map.
1457         (WebCore::ImageQualityController::set):
1458         Implement set():  if the inner map exists, set the layer->size tuple
1459         directly.  If not, create a new inner map, set the tuple, and insert
1460         it in the outer map.
1461         (WebCore::ImageQualityController::objectDestroyed):
1462         Look up the object in the outer map only.
1463         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1464         Cosmetic changes for the renamed now-outer hash map.
1465         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1466         Do both outer and inner hash map lookups.  Call set() to add/update
1467         entries to the hash maps.  keyDestroyed() is now removeLayer().
1468         (WebCore::imageQualityController):
1469         Make the ImageQualityController a file-static global, so it can be
1470         created and destroyed on the fly.
1471         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1472         If there is no ImageQualityController, don't call objectDestroyed().
1473         If it's empty, delete it.
1474
1475
1476 2011-01-26  Enrica Casucci  <enrica@apple.com>
1477
1478         Reviewed by Darin Adler and Adam Roben.
1479
1480         WebKit2: add support for drag and drop on Windows
1481         https://bugs.webkit.org/show_bug.cgi?id=52775
1482         <rdar://problem/8514409>
1483         
1484         On Windows the access to the content being dragged is
1485         provided via the IDataObject interface that is made available
1486         to the window that registers itself as drop target.
1487         Since this interface cannot be accessed from the WebProcess,
1488         in every call to one of the methods of the IDropTarget interface
1489         we serialize the content of the drag clipboard and send it over to
1490         the WebProcess.
1491         The bulk of this patch consists in the refactoring needed in DragData
1492         and ClipboardWin classes to extract the data from the serialized object.
1493         
1494         * platform/DragData.cpp:
1495         * platform/DragData.h:
1496         * platform/win/ClipboardUtilitiesWin.cpp:
1497         (WebCore::getWebLocData):
1498         (WebCore::getURL):
1499         (WebCore::getPlainText):
1500         (WebCore::getTextHTML):
1501         (WebCore::getCFHTML):
1502         (WebCore::fragmentFromFilenames):
1503         (WebCore::containsFilenames):
1504         (WebCore::fragmentFromHTML):
1505         (WebCore::containsHTML):
1506         (WebCore::getClipboardData):
1507         * platform/win/ClipboardUtilitiesWin.h:
1508         * platform/win/ClipboardWin.cpp:
1509         (WebCore::Clipboard::create):
1510         (WebCore::ClipboardWin::ClipboardWin):
1511         (WebCore::ClipboardWin::getData):
1512         (WebCore::ClipboardWin::types):
1513         (WebCore::ClipboardWin::files):
1514         (WebCore::ClipboardWin::hasData):
1515         * platform/win/ClipboardWin.h:
1516         (WebCore::ClipboardWin::create):
1517         * platform/win/DragDataWin.cpp:
1518         (WebCore::DragData::DragData):
1519         (WebCore::DragData::containsURL):
1520         (WebCore::DragData::dragDataMap):
1521         (WebCore::DragData::asURL):
1522         (WebCore::DragData::containsFiles):
1523         (WebCore::DragData::asFilenames):
1524         (WebCore::DragData::containsPlainText):
1525         (WebCore::DragData::asPlainText):
1526         (WebCore::DragData::canSmartReplace):
1527         (WebCore::DragData::containsCompatibleContent):
1528         (WebCore::DragData::asFragment):
1529
1530 2011-01-27  Mario Sanchez Prada  <msanchez@igalia.com>
1531
1532         Reviewed by Martin Robinson.
1533
1534         [GTK] Space characters in source document interfere with reported caret offset
1535         https://bugs.webkit.org/show_bug.cgi?id=53033
1536
1537         Calculate caret offset from rendered text instead of from node contents.
1538
1539         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1540         (objectAndOffsetUnignored): Calculate the caret offset based only
1541         on positions and ranges, instead of using the computed offset in
1542         the container node.
1543
1544 2011-01-26  Alexey Proskuryakov  <ap@apple.com>
1545
1546         Reviewed by Darin Adler.
1547
1548         https://bugs.webkit.org/show_bug.cgi?id=53197
1549         <rdar://problem/8895682> Make WebKit2 printing asynchronous
1550
1551         * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before.
1552
1553         * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same
1554         transformation as spoolPages does for consistency.
1555
1556 2011-01-27  David Grogan  <dgrogan@google.com>
1557
1558         Reviewed by Jeremy Orlow.
1559
1560         initial support for close() in indexeddb backend
1561         https://bugs.webkit.org/show_bug.cgi?id=53150
1562
1563         Test: storage/indexeddb/transaction-after-close.html
1564
1565         * storage/IDBDatabase.cpp:
1566         (WebCore::IDBDatabase::IDBDatabase):
1567         (WebCore::IDBDatabase::transaction):
1568         (WebCore::IDBDatabase::close):
1569         * storage/IDBDatabase.h:
1570         * storage/IDBDatabase.idl:
1571         * storage/IDBDatabaseBackendImpl.cpp:
1572         (WebCore::IDBDatabaseBackendImpl::transaction):
1573         (WebCore::IDBDatabaseBackendImpl::close):
1574
1575 2011-01-27  Dirk Schulze  <krit@webkit.org>
1576
1577         Reviewed by Nikolas Zimmermann.
1578
1579         SVG animation doesn't support calcMode discrete for number and color values.
1580         https://bugs.webkit.org/show_bug.cgi?id=53189
1581
1582         Add support for calcMode discrete on number and color animation.
1583
1584         Tests: svg/animations/animate-color-calcMode-discrete.html
1585                svg/animations/animate-number-calcMode-discrete.html
1586
1587         * svg/SVGAnimateElement.cpp:
1588         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1589
1590 2011-01-26  Zhenyao Mo  <zmo@google.com>
1591
1592         Reviewed by Kenneth Russell.
1593
1594         shaderSource needs to preserve original source
1595         https://bugs.webkit.org/show_bug.cgi?id=52833
1596
1597         Test: fast/canvas/webgl/gl-getshadersource.html
1598
1599         * html/canvas/WebGLRenderingContext.cpp:
1600         (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH.
1601         (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call.
1602         (WebCore::WebGLRenderingContext::shaderSource): Cache the source.
1603         * html/canvas/WebGLShader.cpp: Cache shader source.
1604         (WebCore::WebGLShader::WebGLShader):
1605         * html/canvas/WebGLShader.h: Ditto.
1606         (WebCore::WebGLShader::getSource):
1607         (WebCore::WebGLShader::setSource):
1608
1609 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
1610
1611         Unreviewed WinCE build fix for r76743.
1612
1613         * platform/graphics/wince/FontWinCE.cpp:
1614         (WebCore::TextRunComponent::TextRunComponent):
1615
1616 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
1617
1618         Reviewed by Pavel Feldman.
1619
1620         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
1621         https://bugs.webkit.org/show_bug.cgi?id=53234
1622
1623         * inspector/front-end/ScopeChainSidebarPane.js:
1624         (WebInspector.ScopeChainSidebarPane):
1625         (WebInspector.ScopeChainSidebarPane.prototype.update):
1626
1627 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1628
1629         Unreviewed, rolling out r76789.
1630         http://trac.webkit.org/changeset/76789
1631         https://bugs.webkit.org/show_bug.cgi?id=53238
1632
1633         Broke GTK layout tests (Requested by podivilov on #webkit).
1634
1635         * inspector/front-end/ScopeChainSidebarPane.js:
1636         (WebInspector.ScopeChainSidebarPane):
1637         (WebInspector.ScopeChainSidebarPane.prototype.update):
1638
1639 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
1640
1641         Reviewed by Pavel Feldman.
1642
1643         Web Inspector: store all settings related to the agents on the frontend side
1644         https://bugs.webkit.org/show_bug.cgi?id=53174
1645
1646         * CMakeLists.txt:
1647         * GNUmakefile.am:
1648         * WebCore.exp.in:
1649         * WebCore.gypi:
1650         * WebCore.pro:
1651         * WebCore.vcproj/WebCore.vcproj:
1652         * WebCore.xcodeproj/project.pbxproj:
1653         * bindings/js/ScriptDebugServer.cpp:
1654         * bindings/js/ScriptDebugServer.h:
1655         * bindings/js/ScriptProfiler.cpp:
1656         * bindings/js/ScriptProfiler.h:
1657         * bindings/v8/ScriptDebugServer.cpp:
1658         * bindings/v8/ScriptDebugServer.h:
1659         * bindings/v8/ScriptProfiler.cpp:
1660         * bindings/v8/ScriptProfiler.h:
1661         * inspector/Inspector.idl:
1662         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1663         on the front-end side and will be pushed to the backend when the frontend is loaded.
1664         (WebCore::InspectorAgent::InspectorAgent):
1665         (WebCore::InspectorAgent::disconnectFrontend):
1666         (WebCore::InspectorAgent::restoreDebugger):
1667         (WebCore::InspectorAgent::restoreProfiler):
1668         (WebCore::InspectorAgent::enableProfiler):
1669         (WebCore::InspectorAgent::disableProfiler):
1670         (WebCore::InspectorAgent::showAndEnableDebugger):
1671         (WebCore::InspectorAgent::enableDebugger):
1672         (WebCore::InspectorAgent::disableDebugger):
1673         * inspector/InspectorAgent.h:
1674         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1675         if the front-end was opened during current browser session and XHR logging is turned on
1676         there.
1677         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1678         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1679         * inspector/InspectorDebuggerAgent.cpp:
1680         * inspector/InspectorDebuggerAgent.h:
1681         * inspector/InspectorInstrumentation.cpp:
1682         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1683         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1684         * inspector/InspectorProfilerAgent.cpp:
1685         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1686         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1687         * inspector/InspectorSettings.cpp: Removed.
1688         * inspector/InspectorSettings.h: Removed.
1689         * inspector/InspectorState.cpp:
1690         (WebCore::InspectorState::InspectorState):
1691         * inspector/InspectorState.h:
1692         * inspector/front-end/ConsoleView.js:
1693         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1694         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1695         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1696         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1697         * inspector/front-end/ProfilesPanel.js:
1698         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1699         * inspector/front-end/ScriptsPanel.js:
1700         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1701         * inspector/front-end/Settings.js:
1702         (WebInspector.Settings):
1703         * inspector/front-end/inspector.js:
1704
1705 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
1706
1707         Reviewed by Pavel Feldman.
1708
1709         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
1710         https://bugs.webkit.org/show_bug.cgi?id=53234
1711
1712         * inspector/front-end/ScopeChainSidebarPane.js:
1713         (WebInspector.ScopeChainSidebarPane):
1714         (WebInspector.ScopeChainSidebarPane.prototype.update):
1715
1716 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
1717
1718         Reviewed by Pavel Feldman.
1719
1720         Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL
1721         https://bugs.webkit.org/show_bug.cgi?id=53171
1722
1723         * inspector/front-end/inspector.js:
1724         (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only)
1725
1726 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
1727
1728         Reviewed by Pavel Feldman.
1729
1730         [V8] Crash in WebCore::addMessageToConsole
1731         https://bugs.webkit.org/show_bug.cgi?id=53227
1732
1733         * bindings/v8/V8Proxy.cpp: check that the Frame where the error
1734         occured still has a page before getting a console object from it.
1735         (WebCore::V8Proxy::reportUnsafeAccessTo):
1736
1737 2011-01-27  Hans Wennborg  <hans@chromium.org>
1738
1739         Reviewed by Jeremy Orlow.
1740
1741         IndexedDB: Remove IDBCallbacks::onSuccess() used for null values.
1742         https://bugs.webkit.org/show_bug.cgi?id=53178
1743
1744         Remove the IDBCallbacks::onSuccess() function that was used for
1745         null values, and replace such calls with calls to
1746         IDBCallBacks::onSuccess(SerializedScriptValue::nullValue())
1747         instead.
1748
1749         No new functionality, so no new tests.
1750
1751         * storage/IDBCallbacks.h:
1752         * storage/IDBCursorBackendImpl.cpp:
1753         (WebCore::IDBCursorBackendImpl::updateInternal):
1754         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
1755         * storage/IDBIndexBackendImpl.cpp:
1756         (WebCore::IDBIndexBackendImpl::openCursorInternal):
1757         * storage/IDBObjectStoreBackendImpl.cpp:
1758         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1759         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
1760         * storage/IDBRequest.cpp:
1761         * storage/IDBRequest.h:
1762
1763 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1764
1765         Unreviewed, rolling out r76773.
1766         http://trac.webkit.org/changeset/76773
1767         https://bugs.webkit.org/show_bug.cgi?id=53230
1768
1769         breaks multiple GTK media tests (Requested by philn-tp on
1770         #webkit).
1771
1772         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1773         (WebCore::mimeTypeCache):
1774
1775 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1776
1777         Unreviewed, rolling out r76770.
1778         http://trac.webkit.org/changeset/76770
1779         https://bugs.webkit.org/show_bug.cgi?id=53229
1780
1781         Some inspector tests fail (Requested by yurys on #webkit).
1782
1783         * CMakeLists.txt:
1784         * GNUmakefile.am:
1785         * WebCore.exp.in:
1786         * WebCore.gypi:
1787         * WebCore.pro:
1788         * WebCore.vcproj/WebCore.vcproj:
1789         * WebCore.xcodeproj/project.pbxproj:
1790         * bindings/js/ScriptDebugServer.cpp:
1791         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1792         * bindings/js/ScriptDebugServer.h:
1793         * bindings/js/ScriptProfiler.cpp:
1794         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1795         * bindings/js/ScriptProfiler.h:
1796         * bindings/v8/ScriptDebugServer.cpp:
1797         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1798         * bindings/v8/ScriptDebugServer.h:
1799         * bindings/v8/ScriptProfiler.cpp:
1800         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1801         * bindings/v8/ScriptProfiler.h:
1802         * inspector/Inspector.idl:
1803         * inspector/InspectorAgent.cpp:
1804         (WebCore::InspectorAgent::InspectorAgent):
1805         (WebCore::InspectorAgent::disconnectFrontend):
1806         (WebCore::InspectorAgent::restoreDebugger):
1807         (WebCore::InspectorAgent::restoreProfiler):
1808         (WebCore::InspectorAgent::ensureSettingsLoaded):
1809         (WebCore::InspectorAgent::enableProfiler):
1810         (WebCore::InspectorAgent::disableProfiler):
1811         (WebCore::InspectorAgent::showAndEnableDebugger):
1812         (WebCore::InspectorAgent::enableDebugger):
1813         (WebCore::InspectorAgent::disableDebugger):
1814         * inspector/InspectorAgent.h:
1815         (WebCore::InspectorAgent::settings):
1816         * inspector/InspectorConsoleAgent.cpp:
1817         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1818         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1819         * inspector/InspectorDebuggerAgent.cpp:
1820         (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
1821         * inspector/InspectorDebuggerAgent.h:
1822         * inspector/InspectorInstrumentation.cpp:
1823         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1824         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1825         * inspector/InspectorProfilerAgent.cpp:
1826         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1827         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1828         * inspector/InspectorSettings.cpp: Added.
1829         (WebCore::InspectorSettings::InspectorSettings):
1830         (WebCore::InspectorSettings::getBoolean):
1831         (WebCore::InspectorSettings::setBoolean):
1832         (WebCore::InspectorSettings::getLong):
1833         (WebCore::InspectorSettings::setLong):
1834         (WebCore::InspectorSettings::registerBoolean):
1835         (WebCore::InspectorSettings::registerLong):
1836         * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
1837         * inspector/InspectorState.cpp:
1838         (WebCore::InspectorState::InspectorState):
1839         * inspector/InspectorState.h:
1840         * inspector/front-end/ConsoleView.js:
1841         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
1842         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1843         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1844         * inspector/front-end/ProfilesPanel.js:
1845         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1846         * inspector/front-end/ScriptsPanel.js:
1847         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1848         * inspector/front-end/Settings.js:
1849         (WebInspector.Settings):
1850         * inspector/front-end/inspector.js:
1851
1852 2011-01-26  Philippe Normand  <pnormand@igalia.com>
1853
1854         Reviewed by Martin Robinson.
1855
1856         [GTK] LayoutTests/media/audio-mpeg4-supported.html fails
1857         https://bugs.webkit.org/show_bug.cgi?id=53125
1858
1859         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1860         (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache.
1861
1862 2011-01-26  Yury Semikhatsky  <yurys@chromium.org>
1863
1864         Reviewed by Pavel Feldman.
1865
1866         Web Inspector: store all settings related to the agents on the frontend side
1867         https://bugs.webkit.org/show_bug.cgi?id=53174
1868
1869         * CMakeLists.txt:
1870         * GNUmakefile.am:
1871         * WebCore.exp.in:
1872         * WebCore.gypi:
1873         * WebCore.pro:
1874         * WebCore.vcproj/WebCore.vcproj:
1875         * WebCore.xcodeproj/project.pbxproj:
1876         * inspector/Inspector.idl:
1877         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1878         on the front-end side and will be pushed to the backend when the frontend is loaded.
1879         (WebCore::InspectorAgent::InspectorAgent):
1880         (WebCore::InspectorAgent::disconnectFrontend):
1881         (WebCore::InspectorAgent::restoreDebugger):
1882         (WebCore::InspectorAgent::restoreProfiler):
1883         (WebCore::InspectorAgent::enableProfiler):
1884         (WebCore::InspectorAgent::disableProfiler):
1885         (WebCore::InspectorAgent::showAndEnableDebugger):
1886         (WebCore::InspectorAgent::enableDebugger):
1887         (WebCore::InspectorAgent::disableDebugger):
1888         * inspector/InspectorAgent.h:
1889         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1890         if the front-end was opened during current browser session and XHR logging is turned on
1891         there.
1892         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1893         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1894         * inspector/InspectorInstrumentation.cpp:
1895         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1896         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1897         * inspector/InspectorProfilerAgent.cpp:
1898         (WebCore::InspectorProfilerAgent::enable):
1899         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1900         * inspector/InspectorProfilerAgent.h:
1901         * inspector/InspectorSettings.cpp: Removed.
1902         * inspector/InspectorSettings.h: Removed.
1903         * inspector/InspectorState.cpp:
1904         (WebCore::InspectorState::InspectorState):
1905         * inspector/InspectorState.h:
1906         * inspector/front-end/ConsoleView.js:
1907         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1908         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1909         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1910         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1911         * inspector/front-end/ProfilesPanel.js:
1912         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1913         * inspector/front-end/ScriptsPanel.js:
1914         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1915         * inspector/front-end/Settings.js:
1916         (WebInspector.Settings):
1917         * inspector/front-end/inspector.js:
1918
1919 2011-01-27  Dan Bernstein  <mitz@apple.com>
1920
1921         Reviewed by Sam Weinig.
1922
1923         REGRESSION (r76743): Uneven spacing in right-to-left justified text
1924         https://bugs.webkit.org/show_bug.cgi?id=53225
1925
1926         Fixes failure in fast/text/atsui-spacing-features.html
1927
1928         There was an inconsistency between rendering code and font code in the interpretation of
1929         'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of
1930         visual order rather than logical.
1931
1932         * platform/graphics/Font.cpp:
1933         (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to
1934         iterate in visual order accordingly.
1935         * platform/graphics/Font.h:
1936         * platform/graphics/WidthIterator.cpp:
1937         (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount().
1938         (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion
1939         condition with respect to the first character, which is the trailing character in visual order.
1940         * platform/graphics/mac/ComplexTextController.cpp:
1941         (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to
1942         expansionOpportunityCount().
1943         * rendering/RenderBlockLineLayout.cpp:
1944         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
1945
1946 2011-01-26  Adam Roben  <aroben@apple.com>
1947
1948         Don't create the Direct3D device before it's first needed
1949
1950         We only need the device once we decide to render. There's no point in creating it before
1951         then.
1952
1953         Reviewed by Sam Weinig.
1954
1955         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1956         (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here.
1957         We already have code to create it when we first try to draw.
1958         (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's
1959         bounds so that the bounds will take effect the next time we render (which could be just
1960         after this function returns).
1961
1962 2011-01-26  Adam Roben  <aroben@apple.com>
1963
1964         Add assertions that CACFLayerTreeHost gains and loses an HWND only once
1965
1966         CACFLayerTreeHost doesn't support any other use pattern.
1967
1968         Reviewed by Sam Weinig.
1969
1970         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1971         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
1972         (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window,
1973         to having a window, to not having a window just once over the lifetime of this object.
1974
1975         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state.
1976
1977 2011-01-26  Adam Roben  <aroben@apple.com>
1978
1979         Notify layers that their animations have started when we flush the context, not when we
1980         render
1981
1982         r76372 separated context flushing from rendering, but this bit of code got left behind.
1983
1984         Reviewed by Sam Weinig.
1985
1986         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1987         (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to
1988         notifyAnimationsStarted.
1989         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to
1990         notifyAnimationsStarted after we flush the context.
1991         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed
1992         to call PlatformCALayer::animationStarted rather than calling through to the client
1993         directly.
1994
1995         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted.
1996
1997 2011-01-26  Adam Roben  <aroben@apple.com>
1998
1999         Small cleanup in MediaPlayerPrivateFullscreenWindow
2000
2001         Reviewed by Sam Weinig.
2002
2003         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2004         (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved
2005         code here from close(), since this was the only place that called it after the following
2006         change to createWindow.
2007         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the
2008         case where we had already created the window with an assertion that we have not already done
2009         so. Our single caller (FullscreenVideoController) did not require this behavior.
2010
2011         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView.
2012
2013 2011-01-26  Sam Weinig  <sam@webkit.org>
2014
2015         Reviewed by Adam Roben.
2016
2017         Move ScrollView scroll wheel code to ScrollAnimator.
2018
2019         * platform/ScrollAnimator.cpp:
2020         (WebCore::ScrollAnimator::handleWheelEvent):
2021         * platform/ScrollAnimator.h:
2022         Moved implementation of handleWheelEvent from ScrollView::wheelEvent.
2023
2024         * platform/ScrollView.cpp:
2025         (WebCore::ScrollView::wheelEvent):
2026         Call down to the ScrollableArea.
2027
2028         * platform/ScrollableArea.cpp:
2029         (WebCore::ScrollableArea::handleWheelEvent):
2030         Call down to the ScrollAnimator.
2031
2032         * platform/ScrollableArea.h:
2033         (WebCore::ScrollableArea::scrollPosition):
2034         (WebCore::ScrollableArea::minimumScrollPosition):
2035         (WebCore::ScrollableArea::maximumScrollPosition):
2036         (WebCore::ScrollableArea::visibleContentRect):
2037         (WebCore::ScrollableArea::visibleHeight):
2038         (WebCore::ScrollableArea::visibleWidth):
2039         Add functions needed to implement wheel event in the animator.
2040
2041 2011-01-26  David Kilzer  <ddkilzer@apple.com>
2042
2043         <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
2044         <rdar://problem/8821760>
2045
2046         Reviewed by Antti Koivisto.
2047
2048         This adds support for HTTP pipelining in CFNetwork, but does not
2049         enable it.  To enable it post-SnowLeopard, use this command:
2050
2051             defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES
2052
2053         Once enabled, it is possible to force the same load priority
2054         (high) to be sent to CFNetwork to allow WebCore to handle the
2055         scheduling:
2056
2057             defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES
2058
2059         * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and
2060         _wkSetHTTPPipeliningPriority.
2061
2062         * loader/DocumentThreadableLoader.cpp:
2063         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
2064         Copy the priority to preflightRequest.
2065
2066         * loader/ResourceLoadScheduler.cpp:
2067         (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code
2068         at the end of the method to use an early return.
2069
2070         * loader/cache/CachedResourceRequest.cpp:
2071         (WebCore::CachedResourceRequest::load): Set the priority on the
2072         ResourceRequest object based on the priority of the
2073         CachedResourceRequest before calling
2074         ResourceLoadScheduler::scheduleSubresourceLoad().
2075
2076         * loader/icon/IconLoader.cpp:
2077         (WebCore::IconLoader::startLoading): Create a ResourceRequest
2078         object and set its priority to ResourceLoadPriorityLow before
2079         passing it to ResourceLoadScheduler::scheduleSubresourceLoad().
2080
2081         * platform/mac/WebCoreSystemInterface.h:
2082         (wkGetHTTPPipeliningPriority): Added.
2083         (wkSetHTTPPipeliningPriority): Added.
2084         * platform/mac/WebCoreSystemInterface.mm:
2085         (wkGetHTTPPipeliningPriority): Added.
2086         (wkSetHTTPPipeliningPriority): Added.
2087
2088         * platform/network/ResourceRequestBase.cpp:
2089         (WebCore::ResourceRequestBase::adopt): Set m_priority when
2090         adopting a CrossThreadResourceRequestData.
2091         (WebCore::ResourceRequestBase::copyData): Set m_priority when
2092         creating a CrossThreadResourceRequestData.
2093         (WebCore::ResourceRequestBase::priority): Added.
2094         (WebCore::ResourceRequestBase::setPriority): Added.
2095         (WebCore::equalIgnoringHeaderFields): Priorities must match when
2096         comparing two ResourceRequest objects.
2097
2098         * platform/network/ResourceRequestBase.h:
2099         (WebCore::ResourceRequestBase::ResourceRequestBase): Set default
2100         priority of new objects to ResourceLoadPriorityLow.
2101         (WebCore::ResourceRequestBase::priority): Added declaration.
2102         (WebCore::ResourceRequestBase::setPriority): Added declaration.
2103         (WebCore::isHTTPPipeliningEnabled): Added.
2104         (WebCore::shouldUseHTTPPipeliningPriority): Added.
2105
2106         * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that
2107         Mac OS X and Windows share code.
2108         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always
2109         set the HTTP connection count per host, but return an
2110         'unlimited' value when using HTTP pipelining.  This method used
2111         to be defined in ResourceRequestMac.mm for Mac OS X.
2112         (WebCore::readBooleanPreference): Added.  Helper method for
2113         reading boolean user defaults.
2114         (WebCore::isHTTPPipeliningEnabled): Returns value of user
2115         default key WebKitEnableHTTPPipelining, or false if not set.
2116         (WebCore::shouldUseHTTPPipeliningPriority): Returns value of
2117         user default key WebKitForceHTTPPipeliningPriorityHigh, or false
2118         if not set.
2119         * platform/network/cf/ResourceRequestCFNet.h: Updated so that
2120         Mac OS X and Windows share code.  Fixed indentation.
2121         (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added.
2122         (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added.
2123
2124         * platform/network/mac/ResourceRequestMac.mm:
2125         (WebCore::ResourceRequest::doUpdatePlatformRequest): Update
2126         HTTP pipelining priority on NSMutableFURLRequest object.
2127         (WebCore::ResourceRequest::doUpdateResourceRequest): Update
2128         m_priority from the NSURLRequest object.
2129         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed.
2130         Code is now shared with Windows in ResourceRequestCFNet.cpp.
2131
2132 2011-01-26  Beth Dakin  <bdakin@apple.com>
2133
2134         Reviewed by Darin Adler.
2135
2136         Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics 
2137         when using WKScrollbars.
2138
2139         New WebKitSystemInterface Functionality.
2140         * WebCore.exp.in:
2141         * platform/mac/WebCoreSystemInterface.h:
2142         * platform/mac/WebCoreSystemInterface.mm:
2143
2144         Some of the terrible static arrays are now only needed in the 
2145         old non-WK code, so they are if-def'd now.
2146         * platform/mac/ScrollbarThemeMac.mm:
2147         
2148         Just patching this function in a better way than I did
2149         before.
2150         (WebCore::updateArrowPlacement):
2151         
2152         Call into WK for the right values.
2153         (WebCore::ScrollbarThemeMac::scrollbarThickness):
2154         (WebCore::ScrollbarThemeMac::hasThumb):
2155         (WebCore::ScrollbarThemeMac::minimumThumbLength):
2156         
2157         Return false if there are no buttons.
2158         (WebCore::ScrollbarThemeMac::hasButtons):
2159
2160         Return an empty IntRect if there are not buttons.
2161         (WebCore::buttonRepaintRect):
2162
2163 2011-01-26  Sam Weinig  <sam@webkit.org>
2164
2165         Reviewed by Maciej Stachowiak.
2166
2167         Add events to represent the start/end of a gesture scroll
2168         https://bugs.webkit.org/show_bug.cgi?id=53215
2169
2170         * WebCore.exp.in: 
2171         Add new file.
2172
2173         * WebCore.xcodeproj/project.pbxproj:
2174         Add new file.
2175
2176         * page/EventHandler.cpp:
2177         (WebCore::EventHandler::handleGestureEvent):
2178         * page/EventHandler.h:
2179         Add entry point for handling gesture events.
2180
2181         * platform/PlatformGestureEvent.h: Added.
2182         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
2183         (WebCore::PlatformGestureEvent::type):
2184         (WebCore::PlatformGestureEvent::position):
2185         (WebCore::PlatformGestureEvent::globalPosition):
2186         (WebCore::PlatformGestureEvent::timestamp):
2187         Add platform agnostic representation of a gesture event.
2188
2189 2011-01-26  Dan Bernstein  <mitz@apple.com>
2190
2191         Reviewed by Dave Hyatt.
2192
2193         <rdar://problem/8446709> Allow inter-ideograph justification for CJK
2194         https://bugs.webkit.org/show_bug.cgi?id=53184
2195
2196         Tests: fast/text/justify-ideograph-complex.html
2197                fast/text/justify-ideograph-simple.html
2198                fast/text/justify-ideograph-vertical.html
2199
2200         * html/canvas/CanvasRenderingContext2D.cpp:
2201         (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter
2202         passed to the TextRun constructor and added the trailingExpansionBehavior parameter.
2203         * platform/graphics/Font.cpp:
2204         (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities
2205         for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists
2206         before the first character. On return, isAfterExpansion says whether an expansion opportunity
2207         exists after the last character.
2208         * platform/graphics/Font.h: 
2209         * platform/graphics/GlyphBuffer.h:
2210         (WebCore::GlyphBuffer::expandLastAdvance): Added.
2211         * platform/graphics/TextRun.h:
2212         (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors.
2213         Renamed padding to expansion.
2214         (WebCore::TextRun::expansion): Renamed padding() to this.
2215         (WebCore::TextRun::allowsTrailingExpansion): Added this accessor.
2216         * platform/graphics/WidthIterator.cpp:
2217         (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount()
2218         and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing
2219         expansion.
2220         (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs.
2221         (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance()
2222         can expand the last advance if it is followed by a CJK ideograph.
2223         * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace
2224         to m_expansionPerOpportunity.
2225         * platform/graphics/chromium/FontChromiumWin.cpp:
2226         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2227         * platform/graphics/chromium/FontLinux.cpp:
2228         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2229         * platform/graphics/efl/FontEfl.cpp:
2230         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2231         * platform/graphics/gtk/FontGtk.cpp:
2232         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2233         * platform/graphics/haiku/FontHaiku.cpp:
2234         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2235         * platform/graphics/mac/ComplexTextController.cpp:
2236         (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use
2237         Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion
2238         opportunity but the run disallows trailing expansion.
2239         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization
2240         of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs.
2241         * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace
2242         to m_expansionPerOpportunity.
2243         * platform/graphics/mac/FontMac.mm:
2244         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2245         * platform/graphics/qt/FontQt.cpp:
2246         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2247         * platform/graphics/win/FontWin.cpp:
2248         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2249         * platform/graphics/win/UniscribeController.cpp:
2250         (WebCore::UniscribeController::UniscribeController): Updated for rename.
2251         * platform/graphics/wince/FontWinCE.cpp:
2252         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2253         * platform/graphics/wx/FontWx.cpp:
2254         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2255         * rendering/EllipsisBox.cpp:
2256         (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor.
2257         (WebCore::EllipsisBox::selectionRect): Ditto.
2258         (WebCore::EllipsisBox::paintSelection): Ditto.
2259         * rendering/InlineBox.h:
2260         (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion.
2261         (WebCore::InlineBox::expansion): Renamed toAdd() to this.
2262         * rendering/InlineTextBox.cpp:
2263         (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor.
2264         (WebCore::InlineTextBox::paint): Ditto.
2265         (WebCore::InlineTextBox::paintSelection): Ditto.
2266         (WebCore::InlineTextBox::paintCompositionBackground): Ditto.
2267         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
2268         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
2269         (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
2270         (WebCore::InlineTextBox::offsetForPosition): Ditto.
2271         (WebCore::InlineTextBox::positionForOffset): Ditto.
2272         * rendering/InlineTextBox.h:
2273         (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this.
2274         (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this
2275         is not the last leaf box on the line.
2276         * rendering/RenderBlockLineLayout.cpp:
2277         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts
2278         in a vector instead of computing them twice. Discard the trailing expansion opportunity in the
2279         last text box.
2280         * rendering/RenderFileUploadControl.cpp:
2281         (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor.
2282         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto.
2283         * rendering/RenderListBox.cpp:
2284         (WebCore::RenderListBox::updateFromElement): Ditto.
2285         (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter.
2286         * rendering/RenderTextControl.cpp:
2287         (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
2288         (WebCore::RenderTextControl::paintPlaceholder): Ditto.
2289         * rendering/svg/SVGInlineTextBox.cpp:
2290         (WebCore::SVGInlineTextBox::constructTextRun): Ditto.
2291
2292 2011-01-26  Andy Estes  <aestes@apple.com>
2293
2294         Rubber-stamped by Darin Adler.
2295
2296         Inline HTMLObjectElement::hasValidClassId().
2297
2298         * html/HTMLObjectElement.cpp:
2299         (WebCore::HTMLObjectElement::hasValidClassId):
2300
2301 2011-01-26  Evan Martin  <evan@chromium.org>
2302
2303         Reviewed by Tony Chang.
2304
2305         [chromium] crash on getBoundingClientRect in complex text
2306         https://bugs.webkit.org/show_bug.cgi?id=53199
2307
2308         Use the correct array bound; we want the number of characters processed by
2309         the shaper, not the longest continuous script run length.
2310
2311         Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html
2312
2313         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
2314         (WebCore::ComplexTextController::nextScriptRun):
2315         * platform/graphics/chromium/ComplexTextControllerLinux.h:
2316         (WebCore::ComplexTextController::numCodePoints):
2317
2318 2011-01-26  Emil A Eklund  <eae@chromium.org>
2319
2320         Reviewed by Alexey Proskuryakov.
2321
2322         Remove cached document reference from CSSStyleSheet and XSLStyleSheet.
2323         https://bugs.webkit.org/show_bug.cgi?id=52084
2324
2325         Test: fast/dom/css-delete-doc.html
2326
2327         * css/CSSMediaRule.cpp:
2328         (WebCore::CSSMediaRule::insertRule):
2329         (WebCore::CSSMediaRule::deleteRule):
2330         * css/CSSStyleSheet.cpp:
2331         (WebCore::CSSStyleSheet::CSSStyleSheet):
2332         (WebCore::CSSStyleSheet::document):
2333         * css/CSSStyleSheet.h:
2334         * xml/XSLStyleSheet.h:
2335         (WebCore::XSLStyleSheet::parentStyleSheet):
2336         * xml/XSLStyleSheetLibxslt.cpp:
2337         (WebCore::XSLStyleSheet::XSLStyleSheet):
2338         (WebCore::XSLStyleSheet::cachedResourceLoader):
2339         (WebCore::XSLStyleSheet::setParentStyleSheet):
2340         (WebCore::XSLStyleSheet::ownerDocument):
2341         * xml/XSLStyleSheetQt.cpp:
2342         (WebCore::XSLStyleSheet::XSLStyleSheet):
2343         (WebCore::XSLStyleSheet::cachedResourceLoader):
2344         (WebCore::XSLStyleSheet::ownerDocument):
2345
2346 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
2347
2348         Reviewed by Kent Tamura.
2349
2350         Reduce ref-count churn in shadowPseudoId.
2351         https://bugs.webkit.org/show_bug.cgi?id=53136
2352
2353         Refactoring, so no new tests.
2354
2355         * dom/Element.h:
2356         (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString&
2357         * html/ValidationMessage.cpp:
2358         (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto.
2359         * html/shadow/SliderThumbElement.cpp:
2360         (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file.
2361         * html/shadow/SliderThumbElement.h: Ditto.
2362         * rendering/MediaControlElements.cpp:
2363         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto.
2364         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto.
2365         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto.
2366         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto.
2367         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto.
2368         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto.
2369         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto.
2370         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto.
2371         (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto.
2372         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto.
2373         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto.
2374         * rendering/MediaControlElements.h: Ditto.
2375
2376 2011-01-26  Dave Hyatt  <hyatt@apple.com>
2377
2378         Reviewed by Dan Bernstein.
2379
2380         https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text.
2381
2382         Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl.
2383
2384         * css/html.css:
2385         Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those
2386         elements work properly.
2387
2388         * rendering/InlineFlowBox.cpp:
2389         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
2390         Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk
2391         in some cases (causing lines to all stack on top of one another).
2392
2393         * rendering/InlineTextBox.h:
2394         (WebCore::InlineTextBox::calculateBoundaries):
2395         Fix calculateBoundaries to be physical rather than logical.
2396
2397         * rendering/LayoutState.cpp:
2398         (WebCore::LayoutState::addForcedColumnBreak):
2399         * rendering/LayoutState.h:
2400         Rename childY to childLogicalOffset.
2401
2402         * rendering/RenderBlock.cpp:
2403         (WebCore::RenderBlock::layoutBlock):
2404         (WebCore::RenderBlock::addOverflowFromChildren):
2405         (WebCore::RenderBlock::addOverflowFromFloats):
2406         (WebCore::RenderBlock::collapseMargins):
2407         (WebCore::RenderBlock::estimateLogicalTopPosition):
2408         (WebCore::RenderBlock::layoutBlockChild):
2409         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
2410         (WebCore::RenderBlock::paintColumnRules):
2411         (WebCore::RenderBlock::paintColumnContents):
2412         (WebCore::RenderBlock::paintFloats):
2413         (WebCore::RenderBlock::selectionGaps):
2414         (WebCore::RenderBlock::removeFloatingObjectsBelow):
2415         (WebCore::RenderBlock::addOverhangingFloats):
2416         (WebCore::RenderBlock::hitTestFloats):
2417         (WebCore::RenderBlock::hitTestColumns):
2418         (WebCore::RenderBlock::calcColumnWidth):
2419         (WebCore::RenderBlock::desiredColumnWidth):
2420         (WebCore::RenderBlock::columnRectAt):
2421         (WebCore::RenderBlock::layoutColumns):
2422         (WebCore::RenderBlock::adjustPointToColumnContents):
2423         (WebCore::RenderBlock::adjustRectForColumns):
2424         (WebCore::RenderBlock::flipForWritingModeIncludingColumns):
2425         (WebCore::RenderBlock::adjustForColumns):
2426         (WebCore::RenderBlock::adjustForBorderFit):
2427         (WebCore::RenderBlock::nextPageLogicalTop):
2428         (WebCore::RenderBlock::applyBeforeBreak):
2429         (WebCore::RenderBlock::applyAfterBreak):
2430         (WebCore::RenderBlock::adjustForUnsplittableChild):
2431         (WebCore::RenderBlock::adjustLinePositionForPagination):
2432         * rendering/RenderBlock.h:
2433         (WebCore::RenderBlock::logicalRightOffsetForContent):
2434         (WebCore::RenderBlock::logicalLeftOffsetForContent):
2435         (WebCore::RenderBlock::leftForFloatIncludingMargin):
2436         (WebCore::RenderBlock::topForFloatIncludingMargin):
2437         * rendering/RenderBlockLineLayout.cpp:
2438         (WebCore::RenderBlock::layoutInlineChildren):
2439         (WebCore::RenderBlock::determineStartPosition):
2440         Reworking of all the RenderBlock column functions to support flipping and vertical modes.
2441
2442         * rendering/RenderBox.cpp:
2443         (WebCore::RenderBox::offsetFromContainer):
2444         (WebCore::RenderBox::flipForWritingModeIncludingColumns):
2445         Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts.
2446
2447         * rendering/RenderBox.h:
2448         (WebCore::RenderBox::clientLogicalBottom):
2449         Fix a bug in clientLogicalBottom where it didn't add in the right border/padding.
2450         
2451         * rendering/RenderFlexibleBox.cpp:
2452         (WebCore::RenderFlexibleBox::layoutBlock):
2453         Better terminology for pagination.
2454
2455         * rendering/RenderInline.cpp:
2456         (WebCore::RenderInline::offsetFromContainer):
2457         (WebCore::RenderInline::mapLocalToContainer):
2458         * rendering/RenderLayer.cpp:
2459         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2460         (WebCore::RenderLayer::hitTestChildLayerColumns):
2461         (WebCore::RenderLayer::localBoundingBox):
2462         (WebCore::RenderLayer::boundingBox):
2463         Patch painting in RenderLayers to be vertical-text-aware.
2464     
2465         * rendering/RenderObject.cpp:
2466         (WebCore::RenderObject::mapLocalToContainer):
2467         Add code to be flipped block-aware with columns.
2468
2469         * rendering/RenderTable.cpp:
2470         (WebCore::RenderTable::layout):
2471         * rendering/RenderTableRow.cpp:
2472         (WebCore::RenderTableRow::layout):
2473         * rendering/RenderTableSection.cpp:
2474         (WebCore::RenderTableSection::layoutRows):
2475         Fix pagination to use better terminology.
2476         
2477         * rendering/RenderText.cpp:
2478         (WebCore::RenderText::absoluteQuads):
2479         (WebCore::RenderText::absoluteQuadsForRange):
2480         Fix a bug where vertical text wasn't taken into account.
2481
2482 2011-01-26  Dimitri Glazkov  <dglazkov@chromium.org>
2483
2484         Unreviewed, rolling out r76719.
2485         http://trac.webkit.org/changeset/76719
2486         https://bugs.webkit.org/show_bug.cgi?id=53122
2487
2488         Broke a bunch of media tests in Chromium/Qt/GTK.
2489
2490 2011-01-26  Tony Chang  <tony@chromium.org>
2491
2492         Reviewed by Ryosuke Niwa.
2493
2494         [gtk] strip NUL characters when copying text/html on GTK+
2495         https://bugs.webkit.org/show_bug.cgi?id=52508
2496
2497         Putting NUL characters in the text/html clipboard doesn't work in
2498         WebKit GTK+ (the pasted value is truncated at the NUL).  Since we're
2499         already stripping this character for plain text (for Windows), strip
2500         it in text/html too.
2501
2502         * editing/MarkupAccumulator.h: mark function as virtual
2503         * editing/markup.cpp:
2504         (WebCore::StyledMarkupAccumulator::appendString):
2505         (WebCore::StyledMarkupAccumulator::takeResults): strip nulls
2506
2507 2011-01-26  Mario Sanchez Prada  <msanchez@igalia.com>
2508
2509         Reviewed by Martin Robinson.
2510
2511         [GTK] Reliable crash with getTextAtOffset()
2512         https://bugs.webkit.org/show_bug.cgi?id=53131
2513
2514         Properly calculate length in bytes for a UTF8 substring.
2515
2516         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2517         (utf8Substr): Use character instead of bytes as units to
2518         calculate the length in bytes for the UTF8 string.
2519
2520 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
2521
2522         Reviewed by Kent Tamura.
2523
2524         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
2525         https://bugs.webkit.org/show_bug.cgi?id=53122
2526
2527         This is the first step in converting HTMLMediaElement to the new shadow DOM.
2528
2529         Should not regress any existing tests. No observable change in behavior.
2530
2531         * css/CSSSelector.cpp:
2532         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
2533         (WebCore::nameToPseudoTypeMap): Ditto.
2534         (WebCore::CSSSelector::extractPseudoType): Ditto.
2535         * css/CSSSelector.h: Ditto.
2536         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
2537         * rendering/MediaControlElements.cpp:
2538         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
2539             which is now replaced with virtual shadowPseudoId on each corresponding class.
2540         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
2541         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
2542             display type in constructor.
2543         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
2544             constructor argument.
2545         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
2546         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
2547             to disambiguate from the MediaControlMuteButtonElement.
2548         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
2549         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
2550         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
2551             constructor argument.
2552         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
2553         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
2554             constructor argument.
2555         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
2556         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
2557         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
2558         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
2559         (WebCore::MediaControlSeekBackButtonElement::create): Added.
2560         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
2561         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
2562         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
2563         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
2564             constructor argument.
2565         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
2566         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
2567             constructor argument.
2568         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
2569         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
2570             constructor argument.
2571         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
2572         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
2573             constructor argument.
2574         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
2575         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
2576             constructor argument.
2577         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
2578         * rendering/MediaControlElements.h:
2579         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
2580         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
2581         * rendering/RenderMedia.cpp:
2582         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
2583         (WebCore::RenderMedia::createSeekBackButton): Ditto.
2584         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
2585         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
2586         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
2587
2588 2011-01-26  Kenneth Russell  <kbr@google.com>
2589
2590         Reviewed by James Robinson.
2591
2592         Fix multisampling support in DrawingBuffer
2593         https://bugs.webkit.org/show_bug.cgi?id=53154
2594
2595         In DrawingBuffer's multisampling code path, fixed enum usage and a
2596         bug where it would incorrectly redefine the depth and stencil
2597         buffers. Hooked up multisampling code path in Chromium port.
2598
2599         Tested manually with some accelerated 2D canvas content.
2600         Multisampling isn't being switched on for the accelerated 2D
2601         canvas at the current time because it will increase fill rate
2602         requirements and cause a large number of rebaselines.
2603
2604         * platform/graphics/Extensions3D.h:
2605         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2606         (WebCore::DrawingBuffer::publishToPlatformLayer):
2607         * platform/graphics/chromium/Extensions3DChromium.h:
2608         * platform/graphics/gpu/DrawingBuffer.cpp:
2609         (WebCore::DrawingBuffer::create):
2610         (WebCore::DrawingBuffer::reset):
2611         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2612         (WebCore::Extensions3DOpenGL::supports):
2613
2614 2011-01-26  Tony Chang  <tony@chromium.org>
2615
2616         Unreviewed.
2617
2618         [chromium] revert r68310 because of race conditions detected by tsans
2619         https://bugs.webkit.org/show_bug.cgi?id=53185
2620
2621         Causes stability problems for Chromium, http://crbug.com/70589
2622
2623         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
2624         (WebCore::SQLiteFileSystem::registerSQLiteVFS):
2625
2626 2011-01-26  Justin Schuh  <jschuh@chromium.org>
2627
2628         Reviewed by Adam Barth.
2629
2630         Make fireEventsAndUpdateStyle use stack local vectors. 
2631         https://bugs.webkit.org/show_bug.cgi?id=46760
2632
2633         Test: animations/animation-add-events-in-handler.html
2634
2635         * page/animation/AnimationController.cpp:
2636         (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
2637
2638 2011-01-26  Nate Chapin  <japhet@chromium.org>
2639
2640         Reviewed by Adam Barth.
2641
2642         Remove m_URL from FrameLoader and depend on Document::url()
2643         instead. FrameLoader::url() will be removed in a followup patch.
2644         https://bugs.webkit.org/show_bug.cgi?id=41165
2645
2646         Refactor only, no new tests.
2647
2648         * WebCore.exp.in:
2649         * dom/Document.cpp:
2650         (WebCore::Document::Document):
2651         (WebCore::Document::updateURLForPushOrReplaceState):
2652         * loader/DocumentWriter.cpp:
2653         (WebCore::DocumentWriter::begin):
2654         * loader/FrameLoader.cpp:
2655         (WebCore::FrameLoader::iconURL):
2656         (WebCore::FrameLoader::didOpenURL):
2657         (WebCore::FrameLoader::didExplicitOpen):
2658         (WebCore::FrameLoader::receivedFirstData):
2659         (WebCore::FrameLoader::url):
2660         (WebCore::FrameLoader::setOutgoingReferrer):
2661         (WebCore::FrameLoader::startIconLoader):
2662         (WebCore::FrameLoader::commitIconURLToIconDatabase):
2663         (WebCore::FrameLoader::finishedParsing):
2664         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2665         (WebCore::FrameLoader::checkIfRunInsecureContent):
2666         (WebCore::FrameLoader::updateFirstPartyForCookies):
2667         (WebCore::FrameLoader::loadInSameDocument):
2668         (WebCore::FrameLoader::commitProvisionalLoad):
2669         (WebCore::FrameLoader::open):
2670         (WebCore::FrameLoader::shouldScrollToAnchor):
2671         * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer().
2672
2673 2011-01-25  Brian Weinstein  <bweinstein@apple.com>
2674
2675         Reviewed by Antti Koivisto.
2676
2677         Crashes loading pages when cancelling subresource loads through WebKit
2678         https://bugs.webkit.org/show_bug.cgi?id=53123
2679         <rdar://problem/8914361>
2680         
2681         Fix a crash that happened when cancelling subresource loads through WebKit.
2682         
2683         When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource 
2684         can be called recursively on the same function, either leading to infinite recursion, or deleting 
2685         an object when it is not done being used.
2686         
2687         The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when 
2688         CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously).
2689
2690         Test: fast/loader/willSendRequest-null-for-preload.html
2691
2692         * loader/DocumentLoader.cpp:
2693         (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame 
2694             if our new URL is non-null.
2695         * loader/cache/CachedResourceLoader.cpp:
2696         (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer.
2697         (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this 
2698             function was called synchronously
2699             from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously, 
2700             so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous.
2701         (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests.
2702         (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector, 
2703             so use Deque methods.
2704         * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque.
2705
2706 2011-01-25  Pavel Podivilov  <podivilov@chromium.org>
2707
2708         Reviewed by Pavel Feldman.
2709
2710         Web Inspector: evaluate in console may not work when window.console is substituted or deleted.
2711         https://bugs.webkit.org/show_bug.cgi?id=53072
2712
2713         Test: inspector/console-substituted.html
2714
2715         * inspector/InjectedScriptSource.js:
2716         (.):
2717
2718 2011-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2719
2720         Reviewed by Martin Robinson.
2721
2722         [cairo] Use CAIRO_OPERATOR_DARKEN when available
2723         https://bugs.webkit.org/show_bug.cgi?id=53084
2724
2725         Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of
2726         CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10.
2727
2728         * platform/graphics/cairo/CairoUtilities.cpp:
2729         (WebCore::toCairoOperator):
2730
2731 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2732
2733         Reviewed by Yury Semikhatsky.
2734
2735         Web Inspector: visualize \n in strings as unicode cr
2736         symbol in stack variables sidebar.
2737         https://bugs.webkit.org/show_bug.cgi?id=53162
2738
2739         * inspector/front-end/ObjectPropertiesSection.js:
2740         (WebInspector.ObjectPropertyTreeElement.prototype.update):
2741
2742 2011-01-26  Andrey Kosyakov  <caseq@chromium.org>
2743
2744         Reviewed by Pavel Feldman.
2745
2746         Web Inspector: size is wrong for cached resources in Network panel
2747         - Set the size for 304/not modified resources from cached resource.
2748         - Add response headers size to resource transfer size.
2749         https://bugs.webkit.org/show_bug.cgi?id=52886
2750
2751         * inspector/InspectorResourceAgent.cpp:
2752         (WebCore::InspectorResourceAgent::didReceiveResponse):
2753         * inspector/front-end/Resource.js:
2754         (WebInspector.Resource):
2755         (WebInspector.Resource.prototype.get transferSize):
2756         (WebInspector.Resource.prototype.set responseHeaders):
2757         (WebInspector.Resource.prototype._headersSize):
2758         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2759
2760 2011-01-26  Carol Szabo  <carol.szabo@nokia.com>
2761
2762         Reviewed by Simon Hausmann.
2763
2764         Fixed TiledBacking store to take into account new dirty regions caused by
2765         paint time layouts.
2766
2767         Flawed rendering design for QtWebKit resulting in artifacts being displayed
2768         https://bugs.webkit.org/show_bug.cgi?id=49184
2769
2770         There are no new tests as this patch aims at fixing flicker that
2771         happen randomly, mostly on slow hardware, thus are hard to reproduce
2772         consistently in an automated test.
2773
2774         This patch does not fully address the said bug but it is a step in the
2775         right direction. A full solution to the bug, as currently perceived,
2776         requires either a Qt GUI API change, a performance hit for QtWebKit,
2777         or a hack, until a full solution is provided this patch is progress.
2778
2779         * platform/graphics/TiledBackingStore.cpp:
2780         (WebCore::TiledBackingStore::updateTileBuffers):
2781         Changed to take into account newly dirtied areas created during
2782         tile update initiated layouts during the same update.
2783
2784 2011-01-26  Patrick Gansterer  <paroga@webkit.org>
2785
2786         Reviewed by Andreas Kling.
2787
2788         [SKIA] Remove "current path" of GraphicsContext
2789         https://bugs.webkit.org/show_bug.cgi?id=53124
2790
2791         * platform/graphics/GraphicsContext.h:
2792         * platform/graphics/skia/GraphicsContextSkia.cpp:
2793         (WebCore::GraphicsContext::clipPath):
2794         (WebCore::GraphicsContext::fillPath):
2795         (WebCore::GraphicsContext::strokePath):
2796         * platform/graphics/skia/PathSkia.cpp:
2797         (WebCore::Path::strokeBoundingRect):
2798         * platform/graphics/skia/PlatformContextSkia.cpp:
2799         * platform/graphics/skia/PlatformContextSkia.h:
2800
2801 2011-01-26  Zalan Bujtas <zbujtas@gmail.com>
2802
2803         Reviewed by Andreas Kling.
2804
2805         [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3.
2806
2807         QPainterPath returns angle values with the origo being at the top left corner,
2808         we need to account for this in normalAngleAtLength().
2809         This Regressed with r66979.
2810
2811         No new tests as this is already covered by ACID3.
2812
2813         * platform/graphics/qt/PathQt.cpp:
2814         (WebCore::Path::normalAngleAtLength):
2815
2816 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2817
2818         Reviewed by Yury Semikhatsky.
2819
2820         Web Inspector: live edit does not update source snippet.
2821         https://bugs.webkit.org/show_bug.cgi?id=53097
2822
2823         * inspector/front-end/ScriptsPanel.js:
2824         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
2825
2826 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2827
2828         Reviewed by Yury Semikhatsky.
2829
2830         Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'.
2831         https://bugs.webkit.org/show_bug.cgi?id=53018
2832
2833         * inspector/InjectedScript.cpp:
2834         (WebCore::InjectedScript::evaluate):
2835         (WebCore::InjectedScript::evaluateOnCallFrame):
2836         (WebCore::InjectedScript::getCompletions):
2837         (WebCore::InjectedScript::getCompletionsOnCallFrame):
2838         * inspector/InjectedScript.h:
2839         * inspector/InjectedScriptSource.js:
2840         (.):
2841         * inspector/Inspector.idl:
2842         * inspector/InspectorDebuggerAgent.cpp:
2843         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2844         (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
2845         * inspector/InspectorDebuggerAgent.h:
2846         * inspector/InspectorRuntimeAgent.cpp:
2847         (WebCore::InspectorRuntimeAgent::evaluate):
2848         (WebCore::InspectorRuntimeAgent::getCompletions):
2849         * inspector/InspectorRuntimeAgent.h:
2850         * inspector/front-end/ConsoleView.js:
2851         (WebInspector.ConsoleView.prototype.completions):
2852         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
2853         (WebInspector.ConsoleView.prototype._enterKeyPressed):
2854         * inspector/front-end/ScriptsPanel.js:
2855         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper):
2856         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
2857         * inspector/front-end/SourceFrame.js:
2858         (WebInspector.SourceFrame.prototype._showPopup):
2859         * inspector/front-end/WatchExpressionsSidebarPane.js:
2860         (WebInspector.WatchExpressionsSection.prototype.update):
2861
2862 2011-01-26  Hironori Bono  <hbono@chromium.org>
2863
2864         Reviewed by Kent Tamura.
2865
2866         A speculative fix for Bug 52422 - [chromium] More crash in
2867         FontFallbackList::determinePitch(const Font* font)
2868         https://bugs.webkit.org/show_bug.cgi?id=52422
2869
2870         My previous change may not work on non-US Windows whose system fonts
2871         have localized aliases matching to the system locale because of a
2872         font-name mismatch in createFontIndirectAndGetWinName(). This change
2873         tries all the fonts installed in a PC and returns the first font that we
2874         can create without errors.
2875
2876         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2877         (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData):
2878         Added a struct used for getLastResortFallbackFontProc().
2879         (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies().
2880         (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font.
2881
2882 2011-01-26  James Robinson  <jamesr@chromium.org>
2883
2884         Reviewed by Nate Chapin.
2885
2886         Add a DOMTimeStamp parameter to the requestAnimationFrame callback
2887         https://bugs.webkit.org/show_bug.cgi?id=53142
2888
2889         This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more
2890         closely match mozilla's proposal.  This is useful if the page has multiple imperative animations
2891         and wants to ensure that they all remain synchronized.  If each callback used Date.now() to
2892         update its animation state, they would potentially be out of sync with each other.  If they use
2893         the timestamp then all callbacks for the same "frame" will update to the same state.
2894
2895         Test: fast/animation/request-animation-frame-timestamps.html
2896
2897         * bindings/scripts/CodeGeneratorV8.pm:
2898         * bindings/scripts/test/V8/V8TestCallback.cpp:
2899         (WebCore::V8TestCallback::callbackWithClass2Param):
2900         * dom/Document.cpp:
2901         (WebCore::Document::serviceScriptedAnimations):
2902         * dom/Document.h:
2903         * dom/RequestAnimationFrameCallback.h:
2904         * dom/RequestAnimationFrameCallback.idl:
2905         * page/FrameView.cpp:
2906         (WebCore::FrameView::serviceScriptedAnimations):
2907         * page/FrameView.h:
2908
2909 2011-01-25  Yuzo Fujishima  <yuzo@google.com>
2910
2911         Unreviewed attempt to fix compilation error for Chromium Clang.
2912
2913         * platform/graphics/mac/ComplexTextController.cpp:
2914         (WebCore::ComplexTextController::advance):
2915
2916 2011-01-25  Ned Holbrook  <nholbrook@apple.com>
2917
2918         Reviewed by Dan Bernstein.
2919
2920         ComplexTextController incorrectly conflates string length and range of indexes
2921         https://bugs.webkit.org/show_bug.cgi?id=52760
2922
2923         Test: fast/text/offsetForPosition-complex-fallback.html
2924
2925         * platform/graphics/mac/ComplexTextController.cpp:
2926         (WebCore::ComplexTextController::offsetForPosition):
2927         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2928         (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
2929         (WebCore::ComplexTextController::advance):
2930         * platform/graphics/mac/ComplexTextController.h:
2931         (WebCore::ComplexTextController::ComplexTextRun::create):
2932         (WebCore::ComplexTextController::ComplexTextRun::indexEnd):
2933         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
2934         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2935         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
2936         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2937         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
2938
2939 2011-01-25  Sam Weinig  <sam@webkit.org>
2940
2941         Reviewed by David Hyatt.
2942
2943         Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area
2944         https://bugs.webkit.org/show_bug.cgi?id=53048
2945
2946         Test: fast/overflow/overflow-rtl-vertical-origin.html
2947
2948         * rendering/RenderLayer.cpp:
2949         (WebCore::RenderLayer::scrollPosition):
2950         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2951         Take the scroll origin into account when calculating scrollbars in more places.
2952
2953 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
2954
2955         Windows production build fix.
2956         Use correct configuration-specific path in makefile.
2957
2958         * WebCore.vcproj/WebCore.make:
2959
2960 2011-01-25  Kent Tamura  <tkent@chromium.org>
2961
2962         Reviewed by Dimitri Glazkov.
2963
2964         Radio button group state is not restored correctly
2965         https://bugs.webkit.org/show_bug.cgi?id=50442
2966
2967         Fixes a bug that radio button states are not restored correctly in
2968         a case that non-first radio button in a group is checked.
2969
2970         If "checked" attribute is present, the radio button is checked and
2971         other radio buttons in the group are unchecked. This behavior
2972         disturbs form state restoring. This patch changes this behavior so
2973         that the "checked" attribute handling is delayed after form state
2974         restoring.
2975
2976         Test: fast/forms/state-restore-radio-group.html
2977
2978         * html/HTMLFormControlElement.h:
2979          Make finishParsingChildren() protected so that HTMLInpuElement can call it.
2980         * html/HTMLInputElement.cpp:
2981         (WebCore::HTMLInputElement::HTMLInputElement):
2982          - Add createdByParser parameter.
2983          - Initialize m_stateRestored and m_parsingInProgress.
2984         (WebCore::HTMLInputElement::create): Sync with the constructor.
2985         (WebCore::HTMLInputElement::restoreFormControlState):
2986          Set m_stateRestored in order to refer it in finishParsingChildren().
2987         (WebCore::HTMLInputElement::parseMappedAttribute):
2988          Don't call setChecked() during parsing. Move setNeedsValidityCheck()
2989          to setChecked().
2990         (WebCore::HTMLInputElement::finishParsingChildren):
2991          Call setChecked() if form state is not restored.
2992         (WebCore::HTMLInputElement::setChecked):
2993          Move setNeedsValidityCheck() from parseMappedAttribute() because
2994          finishParsingChildren() also needs to call setNeedsValidityCheck().
2995         * html/HTMLInputElement.h:
2996          - Remove the default value of HTMLFormElement* of the HTMLInputElement
2997            constructor, and add createdByParser parameter.
2998          - Introduce m_parsingInProgress and m_stateRestored.
2999         * html/HTMLIsIndexElement.cpp:
3000         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
3001          Sync with the HTMLInputElement constructor change.
3002         * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser flag.
3003         * rendering/MediaControlElements.cpp:
3004         (WebCore::MediaControlInputElement::MediaControlInputElement):
3005          Sync with the HTMLInputElement constructor change.
3006         * rendering/ShadowElement.cpp:
3007         (WebCore::ShadowInputElement::ShadowInputElement): ditto.
3008         * rendering/ShadowElement.h:
3009         (WebCore::ShadowElement::ShadowElement): ditto.
3010
3011 2011-01-25  Kent Tamura  <tkent@chromium.org>
3012
3013         Reviewed by Dimitri Glazkov.
3014
3015         HTMLFormElement::checkValidity() returns incorrect result if 'invalid' events are canceled.
3016         https://bugs.webkit.org/show_bug.cgi?id=52565
3017
3018         * html/HTMLFormElement.cpp:
3019         (WebCore::HTMLFormElement::validateInteractively):
3020           Check checkInvalidControlsAndCollectUnhandled() result instead of
3021           checking emptiness of unhandled invalid controls list.
3022         (WebCore::HTMLFormElement::checkValidity): ditto.
3023         (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
3024           Renamed from collectUnhandledInvalidControls().
3025           Returns true if there is any invalid control regardless of event canceling.
3026         * html/HTMLFormElement.h: Rename collectUnhandledInvalidControls() to
3027           checkInvalidControlsAndCollectUnhandled().
3028
3029 2011-01-25  Kent Tamura  <tkent@chromium.org>
3030
3031         Reviewed by Dimitri Glazkov.
3032
3033         Range and number inputs should reject increment and decrement by
3034         keyboard or mouse wheel if they are disabled or read-only
3035         https://bugs.webkit.org/show_bug.cgi?id=53151
3036
3037         * html/RangeInputType.cpp:
3038         (WebCore::RangeInputType::handleKeydownEvent): Check disabled() and readOnly().
3039         * html/TextFieldInputType.cpp:
3040         (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): ditto.
3041         (WebCore::TextFieldInputType::handleWheelEventForSpinButton): ditto.
3042
3043 2011-01-25  Kent Tamura  <tkent@chromium.org>
3044
3045         Reviewed by Dimitri Glazkov.
3046
3047         API to support localized numbers for <input type=number>
3048         https://bugs.webkit.org/show_bug.cgi?id=45730
3049
3050         Introduce platform/text/LocalizedNumber.h, and
3051         LocalizedNumberNone.cpp, which is an empty implementation of the
3052         functions in LocalizedNumber.h.  We use LocalizedNumberNone.cpp in
3053         all platforms for now.
3054
3055         A string in a type=number field is parsed as a localized number
3056         first. If the parsing fails, it is parsed as the HTML5 number.
3057
3058         We introduce HTMLInputElement::visibleValue(). It represents a value
3059         which should be drawn by a renderer. HTMLInputElement::value() always
3060         returns a number formatted for HTML5, and visibleValue() may return a
3061         localized number.
3062
3063         No new tests because this doesn't change any behavior.
3064
3065         * Android.mk: Add LocalizedNumber.h and/or LocalizedNumberNone.cpp.
3066         * CMakeLists.txt: ditto.
3067         * GNUmakefile.am: ditto.
3068         * WebCore.gypi: ditto.
3069         * WebCore.pro: ditto.
3070         * WebCore.vcproj/WebCore.vcproj: ditto.
3071         * WebCore.xcodeproj/project.pbxproj: ditto.
3072         * dom/InputElement.h: Add visibleValue().
3073         * html/HTMLInputElement.cpp:
3074         (WebCore::HTMLInputElement::visibleValue): Added.  Just call InputType::visibleValue().
3075         * html/HTMLInputElement.h: Declare visibleValue().
3076         * html/InputType.cpp:
3077         (WebCore::InputType::visibleValue): Add the default implementation of
3078           visibleValue(), which returns HTMLInputElement::value().
3079         * html/InputType.h: Add declarations.
3080         * html/NumberInputType.cpp:
3081         (WebCore::isHTMLNumberCharacter): Renamed from isNumberCharacter().
3082         (WebCore::isNumberCharacter): Calls isLocalizedNumberCharacter() and isHTMLNumberCharacter().
3083         (WebCore::NumberInputType::visibleValue):
3084           Returns a localized number string produced by formatLocalizedNumber().
3085         (WebCore::NumberInputType::isAcceptableValue): Calls parseLocalizedNumber().
3086         (WebCore::NumberInputType::sanitizeValue): Calls parseLocalizedNumber().
3087         * html/NumberInputType.h: Add declarations.
3088         * platform/text/LocalizedNumber.h: Added.
3089         * platform/text/LocalizedNumberNone.cpp: Added.
3090         (WebCore::parseLocalizedNumber):
3091         (WebCore::formatLocalizedNumber):
3092         (WebCore::isLocalizedNumberCharacter):
3093         * rendering/RenderTextControlSingleLine.cpp:
3094         (WebCore::RenderTextControlSingleLine::updateFromElement):
3095           Calls InputElement::visibleValue() instead of value().
3096         * wml/WMLInputElement.h:
3097         (WebCore::WMLInputElement::visibleValue): Added. It just calls value().
3098
3099 2011-01-25  Alexey Proskuryakov  <ap@apple.com>
3100
3101         Reviewed by Darin Adler.
3102
3103         https://bugs.webkit.org/show_bug.cgi?id=53143
3104         Add IntRectHash
3105
3106         * WebCore.xcodeproj/project.pbxproj:
3107         * platform/graphics/IntRectHash.h: Added.
3108
3109         * platform/graphics/IntSizeHash.h: Don't do "using WebCore::IntSize"!
3110
3111 2011-01-25  Ilya Sherman  <isherman@chromium.org>
3112
3113         Reviewed by Ryosuke Niwa.
3114
3115         Remove trailing whitespace in HTMLInputElement.cpp
3116         https://bugs.webkit.org/show_bug.cgi?id=53152
3117
3118         * html/HTMLInputElement.cpp:
3119         (WebCore::HTMLInputElement::updateCheckedRadioButtons):
3120         (WebCore::HTMLInputElement::applyStep):
3121         (WebCore::HTMLInputElement::updateFocusAppearance):
3122         (WebCore::HTMLInputElement::mapToEntry):
3123         (WebCore::HTMLInputElement::setAutofilled):
3124         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
3125         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
3126
3127 2011-01-25  Mike Reed  <reed@google.com>
3128
3129         Reviewed by James Robinson.
3130
3131         DrawingBufer::reset() today checks if the new size is the same as its
3132         m_size, and if so, returns immediately. This does not match the
3133         semantics of <canvas>, which wants to clear its contents anytime the
3134         size is specified.
3135         https://bugs.webkit.org/show_bug.cgi?id=53149
3136
3137         Test: Covered by existing <canvas> tests using gpu.
3138
3139         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3140         (WebCore::DrawingBuffer::DrawingBuffer):
3141         * platform/graphics/gpu/DrawingBuffer.cpp:
3142         (WebCore::DrawingBuffer::reset):
3143
3144 2011-01-25  Cris Neckar  <cdn@chromium.org>
3145
3146         Reviewed by Adam Barth.
3147
3148         Add a hashset of DOMURLs to ScriptExecutionContext to track back references.
3149         https://bugs.webkit.org/show_bug.cgi?id=53038
3150
3151         Test: fast/dom/window-domurl-crash.html
3152
3153         * dom/ScriptExecutionContext.cpp:
3154         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
3155         (WebCore::ScriptExecutionContext::createdDomUrl):
3156         (WebCore::ScriptExecutionContext::destroyedDomUrl):
3157         * dom/ScriptExecutionContext.h:
3158         (WebCore::ScriptExecutionContext::domUrls):
3159         * html/DOMURL.cpp:
3160         (WebCore::DOMURL::DOMURL):
3161         (WebCore::DOMURL::~DOMURL):
3162         (WebCore::DOMURL::contextDestroyed):
3163         * html/DOMURL.h:
3164         (WebCore::DOMURL::scriptExecutionContext):
3165
3166 2011-01-23  Antti Koivisto  <antti@apple.com>
3167
3168         Reviewed by Darin Adler.
3169
3170         https://bugs.webkit.org/show_bug.cgi?id=52983
3171         Eliminate m_tagHistory pointer from CSSSelector
3172
3173         Keep the component selectors in the array in CSSSelectorList instead
3174         of maintaining a linked list between them. This allows eliminating
3175         m_tagHistory pointer, shrinking CSSSelector by 25% (selection performance
3176         seems to improve some too due to better locality).
3177
3178         * WebCore.xcodeproj/project.pbxproj:
3179         
3180             Make CSSSelector.h a private header.
3181         
3182         * css/CSSGrammar.y:
3183         
3184             Use CSSParserSelector during parsing to keep the tag history in 
3185             a linked list. This is flattened to an array after parsing.
3186             Use accessors for setting selector values.
3187             Use OwnPtr in selector vector.
3188             
3189         * css/CSSPageRule.cpp:
3190         (WebCore::CSSPageRule::CSSPageRule):
3191         * css/CSSPageRule.h:
3192         (WebCore::CSSPageRule::create):
3193         
3194             Simplify.
3195     
3196         * css/CSSParser.cpp:
3197         (WebCore::CSSParser::~CSSParser):
3198         (WebCore::CSSParser::createFloatingSelector):
3199         (WebCore::CSSParser::sinkFloatingSelector):
3200         (WebCore::CSSParser::createStyleRule):
3201         (WebCore::CSSParser::updateSpecifiersWithElementName):
3202         (WebCore::CSSParser::createPageRule):
3203         * css/CSSParser.h:
3204         (WebCore::CSSParser::reusableSelectorVector):
3205         
3206             CSSSelector -> CSSParserSelector.
3207             Use OwnPtr in selector vector.
3208             
3209         * css/CSSParserValues.cpp:
3210         (WebCore::CSSParserSelector::CSSParserSelector):
3211         (WebCore::CSSParserSelector::~CSSParserSelector):
3212         * css/CSSParserValues.h:
3213         (WebCore::CSSParserSelector::releaseSelector):
3214         (WebCore::CSSParserSelector::setTag):
3215         (WebCore::CSSParserSelector::setValue):
3216         (WebCore::CSSParserSelector::setAttribute):
3217         (WebCore::CSSParserSelector::setArgument):
3218         (WebCore::CSSParserSelector::setSimpleSelector):
3219         (WebCore::CSSParserSelector::setMatch):
3220         (WebCore::CSSParserSelector::setRelation):
3221         (WebCore::CSSParserSelector::setForPage):
3222         (WebCore::CSSParserSelector::pseudoType):
3223         (WebCore::CSSParserSelector::isUnknownPseudoElement):
3224         (WebCore::CSSParserSelector::isSimple):
3225         (WebCore::CSSParserSelector::tagHistory):
3226         (WebCore::CSSParserSelector::setTagHistory):
3227         
3228             Linked list used during parsing.
3229             Avoid recursive destruction.
3230
3231         * css/CSSSelector.cpp:
3232         (WebCore::CSSSelector::extractPseudoType):
3233         (WebCore::CSSSelector::operator==):
3234         (WebCore::CSSSelector::selectorText):
3235         (WebCore::CSSSelector::setSimpleSelector):
3236         * css/CSSSelector.h:
3237         (WebCore::CSSSelector::CSSSelector):
3238         (WebCore::CSSSelector::~CSSSelector):
3239         (WebCore::CSSSelector::tagHistory):
3240         (WebCore::CSSSelector::tag):
3241         (WebCore::CSSSelector::value):
3242         (WebCore::CSSSelector::setTag):
3243         (WebCore::CSSSelector::isLastInTagHistory):
3244         (WebCore::CSSSelector::setNotLastInTagHistory):
3245         (WebCore::CSSSelector::RareData::RareData):
3246         (WebCore::CSSSelector::RareData::~RareData):
3247         (WebCore::CSSSelector::createRareData):
3248         (WebCore::CSSSelector::setValue):
3249         
3250             Remove m_tagHistory.
3251             Keep m_value in the union with the rare data pointer instead.
3252             Make m_value and m_tag private, implement accessors.
3253             Add a new bit to indicate end of the tag history (multipart selector).
3254             Eliminate complex destruction. Selectors are now deleted as an array or by a CSSParserSelector chain.
3255             
3256         * css/CSSSelectorList.cpp:
3257         (WebCore::CSSSelectorList::adoptSelectorVector):
3258         
3259             Flatten everything to an array.
3260         
3261         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
3262         * css/CSSSelectorList.h:
3263         (WebCore::CSSSelectorList::hasOneSelector):
3264         (WebCore::CSSSelectorList::next):
3265         
3266             Skip over the subparts of multipart selectors to find the next selector.
3267     
3268         * css/CSSStyleRule.h:
3269         (WebCore::CSSStyleRule::adoptSelectorVector):
3270         
3271             CSSSelector -> CSSParserSelector.
3272             
3273         * css/CSSStyleSelector.cpp:
3274         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
3275         (WebCore::CSSRuleSet::addRule):
3276         (WebCore::collectIdsAndSiblingRulesFromList):
3277         (WebCore::CSSStyleSelector::matchPageRulesForList):
3278         * dom/Node.cpp:
3279         (WebCore::Node::querySelector):
3280         * dom/SelectorNodeList.cpp:
3281         (WebCore::createSelectorNodeList):
3282         
3283             Use accessors.
3284
3285 2011-01-25  James Simonsen  <simonjam@chromium.org>
3286
3287         Reviewed by Tony Chang.
3288
3289         [Chromium] Support small caps in complex text on linux
3290         https://bugs.webkit.org/show_bug.cgi?id=53051
3291
3292         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
3293         (WebCore::ComplexTextController::nextScriptRun): Break runs at small caps boundaries.
3294         (WebCore::ComplexTextController::setupFontForScriptRun): Setup small caps font data if needed.
3295         * platform/graphics/chromium/ComplexTextControllerLinux.h: Store small caps text in separate string.
3296
3297 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
3298
3299         Rubber-stamped by Adam Roben.
3300
3301         Windows production build fix.
3302         Use correct environment variable escaping
3303
3304         * WebCore.vcproj/WebCore.make:
3305
3306 2011-01-25  Adam Barth  <abarth@webkit.org>
3307
3308         Reviewed by Eric Seidel.
3309
3310         Empty URLs are never display isolated
3311         https://bugs.webkit.org/show_bug.cgi?id=53053
3312
3313         This check mirrors the check in the local case.  There isn't a good way
3314         to test this with a LayoutTest, but it is tested in Chromium (where
3315         this registry is used).
3316
3317         * platform/SchemeRegistry.cpp:
3318         (WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
3319
3320 2011-01-25  Sam Weinig  <sam@webkit.org>
3321
3322         Reviewed by Anders Carlsson.
3323
3324         Pipe a timestamp down into the PlatformWheelEvent for the Mac.
3325         https://bugs.webkit.org/show_bug.cgi?id=53111
3326
3327         * platform/PlatformWheelEvent.h:
3328         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3329         (WebCore::PlatformWheelEvent::timestamp):
3330         Add timestamp member.
3331
3332         * platform/mac/WheelEventMac.mm:
3333         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3334         Initialize the timestamp from the event.
3335
3336 2011-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3337
3338         Unreviewed, rolling out r76625.
3339         http://trac.webkit.org/changeset/76625
3340         https://bugs.webkit.org/show_bug.cgi?id=53119
3341
3342         "incorrect pixel test results" (Requested by rniwa on
3343         #webkit).
3344
3345         * rendering/RenderBox.cpp:
3346         (WebCore::RenderBox::localCaretRect):
3347
3348 2011-01-25  Patrick Gansterer  <paroga@webkit.org>
3349
3350         Unreviewed WinCE build fix for r76614.
3351
3352         * platform/FileSystem.h:
3353
3354 2011-01-21  Levi Weintraub  <leviw@chromium.org>
3355
3356         Reviewed by Darin Adler.
3357
3358         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
3359
3360         Undo moves caret to invalid position
3361         https://bugs.webkit.org/show_bug.cgi?id=49744
3362
3363         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
3364                editing/selection/caret-painting-after-paste-undo.html
3365
3366         * rendering/RenderBox.cpp:
3367         (WebCore::RenderBox::localCaretRect):
3368
3369 2011-01-25  Sam Weinig  <sam@webkit.org>
3370
3371         Reviewed by Anders Carlsson.
3372
3373         Add hasPreciseScrollingDeltas bit to PlatformWheelEvent on the Mac.
3374         https://bugs.webkit.org/show_bug.cgi?id=53107
3375
3376         * platform/PlatformWheelEvent.h:
3377         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3378         (WebCore::PlatformWheelEvent::hasPreciseScrollingDeltas):
3379         * platform/mac/WheelEventMac.mm:
3380         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3381
3382 2011-01-20  Jer Noble  <jer.noble@apple.com>
3383
3384         Reviewed by Eric Carlson.
3385
3386         REGRESSION (r72119): Audio never plays on Star Wars intro animation
3387         https://bugs.webkit.org/show_bug.cgi?id=52467
3388         
3389         QuickTime's eat/m4a movie importer compontent doesn't list audio/m4a as a mime
3390         type which it supports, though it handles .m4a files just fine.  Change the way
3391         we build the list of supported MIME Types through a new WebKitSystemInterface
3392         function.
3393         
3394         Caused by r72119, which adds system-specific extension->MIME entries to the cache
3395         before global entries, and the system-specific entries include QuickTime's registry 
3396         entries which contain the audio/m4a MIME type, while its components do not.
3397
3398         Test: media/audio-mpeg4-supported.html
3399
3400         * WebCore.vcproj/QTMovieWinCommon.vsprops:
3401         * platform/graphics/win/QTMovie.cpp:
3402         (getMIMETypeCallBack):
3403         (initializeSupportedTypes):
3404         (QTMovie::countSupportedTypes): gSupportedTypes is now a CFArrayRef.
3405         (QTMovie::getSupportedType): Ditto.
3406
3407 2011-01-25  Hans Wennborg  <hans@chromium.org>
3408
3409         Reviewed by Jeremy Orlow.
3410
3411         IndexedDB: Remove PlatformBridge::idbShutdown()
3412         https://bugs.webkit.org/show_bug.cgi?id=53077
3413
3414         Since Chromium r72157, this is not used anymore. The previous use was
3415         to signal to the embedder that IndexedDB was shutting down, but we
3416         agreed it is better if the embedder keeps track of that itself.
3417
3418         No new tests: this does not change any functionality.
3419
3420         * platform/chromium/PlatformBridge.h:
3421         * storage/IDBFactoryBackendInterface.cpp:
3422         * storage/IDBFactoryBackendInterface.h:
3423         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
3424         * storage/chromium/IDBFactoryBackendInterface.cpp:
3425
3426 2011-01-25  Darin Adler  <darin@apple.com>
3427
3428         Reviewed by Anders Carlsson.
3429
3430         WebKit is using CSBackupSetItemExcluded incorrectly
3431         https://bugs.webkit.org/show_bug.cgi?id=53095
3432         rdar://problem/8790540
3433
3434         * loader/icon/IconDatabase.cpp:
3435         (WebCore::IconDatabase::performOpenInitialization): Added code to
3436         exclude the database from backup one time, and record inside the
3437         database that this has been done.
3438         (WebCore::IconDatabase::wasExcludedFromBackup): Added.
3439         (WebCore::IconDatabase::setWasExcludedFromBackup): Added.
3440         * loader/icon/IconDatabase.h: Added new functions above.
3441
3442         * platform/FileSystem.cpp:
3443         (WebCore::canExcludeFromBackup): Added.
3444         (WebCore::excludeFromBackup): Added.
3445
3446         * platform/FileSystem.h: Added canExcludeFromBackup, excludeFromBackup,
3447         and pathAsURL functions. Cleaned up ifdefs and comments a bit and sorted
3448         things alphabetically, particularly platform-specific sections.
3449
3450         * platform/cf/FileSystemCF.cpp:
3451         (WebCore::pathAsURL): Added.