requestAnimationFrame doesn't throttle on Mac
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-09  Chris Marrin  <cmarrin@apple.com>
2
3         requestAnimationFrame doesn't throttle on Mac
4         https://bugs.webkit.org/show_bug.cgi?id=67171
5
6         Reviewed by Simon Fraser.
7
8         Changed requestAnimationFrame to use a Timer in ScriptedAnimationController
9         on Mac, rather than runLoopObservers. The Timer is throttled to fire no
10         faster than every 15ms. It is behind a WTF_USE_REQUEST_ANIMATION_FRAME_TIMER
11         flag and can be used by any implementation, but currently it is only enabled
12         by PLATFORM(MAC).
13
14         * dom/ScriptedAnimationController.cpp:
15         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
16         (WebCore::ScriptedAnimationController::resume):
17         (WebCore::ScriptedAnimationController::registerCallback):
18         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
19         (WebCore::ScriptedAnimationController::scheduleAnimation):
20         (WebCore::ScriptedAnimationController::animationTimerFired):
21         * dom/ScriptedAnimationController.h:
22         * loader/EmptyClients.h:
23         * page/Chrome.cpp:
24         (WebCore::Chrome::scheduleAnimation):
25         * page/ChromeClient.h:
26
27 2011-09-10  Jarred Nicholls  <jarred@sencha.com>
28
29         [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
30         https://bugs.webkit.org/show_bug.cgi?id=34884
31         
32         KURL::path() alone does not handle removing the leading slash from a windows file path.
33         Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
34
35         Reviewed by Andreas Kling.
36
37         * platform/qt/KURLQt.cpp:
38         (WebCore::KURL::fileSystemPath):
39
40 2011-09-10  Ken Buchanan <kenrb@chromium.org>
41
42         Crash due to bad data in SVGDocumentExtensions m_pendingResources
43         https://bugs.webkit.org/show_bug.cgi?id=67488
44
45         Reviewed by Nikolas Zimmermann.
46
47         Resolving a crash condition caused by the deletion of
48         elements while pending resource entries for those elements are still
49         recorded.
50
51         * rendering/svg/RenderSVGResourceContainer.cpp:
52         (WebCore::RenderSVGResourceContainer::registerResource)
53         * svg/SVGDocumentExtensions.h:
54         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
55         * svg/SVGDocumentExtensions.cpp:
56         (WebCore::SVGDocumentExtensions::addPendingResource)
57         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
58         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources)
59         * svg/SVGStyledElement.h:
60         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
61         * svg/SVGStyledElement.cpp:
62         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded)
63         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
64         * svg/SVGUseElement.cpp:
65         (WebCore::SVGUseElement::svgAttributeChanged)
66
67 2011-09-10  Adam Barth  <abarth@webkit.org>
68
69         Remove DocumentWriter::deprecatedFrameEncoding()
70         https://bugs.webkit.org/show_bug.cgi?id=67882
71
72         Reviewed by Eric Seidel.
73
74         Three years ago, in http://trac.webkit.org/changeset/39026, Alexey
75         Proskuryakov added ContentDispositionEncodingFallbackArray to work
76         around a web site compatibility issue with a non-ASCII file name
77         becoming garbled when received in the Content-Disposition header.
78
79         Since that time, there has been copious discussion of this topic among
80         browser vendors, in the IETF, and in the broader web community.  For
81         example, here is a Stack Overflow thread about this topic:
82
83         http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
84
85         Eric Lawrence has written a blog post that summarizes IE's perspective
86         on this issue:
87
88         http://blogs.msdn.com/b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx
89
90         The current consensus is that browsers should implement RFC 6266,
91         which is a new RFC that updates the definition of the
92         Content-Disposition header.  Chrome and Firefox have both implemented
93         RFC 6266 and have encountered only one issue, which was then fixed by
94         the web site operator.  IE has also implemented RFC 6266, but I don't
95         have detailed information about their compatibility experience.
96
97         This patch add explicit PLATFORM #ifdefs around the quirky
98         implementation previously used in Apple's Mac and Windows ports.  This
99         code is already only used on Apple's ports, so this patch introduces no
100         functional changes.  It does, however, discourage other ports from
101         adopting this quirk.  IMHO, Apple should remove this quirk as soon as
102         compatibility allows and converge behavior with the other major browser
103         vendors.
104
105         See bug for manual test (the bug manifests in Safari download UI).
106
107         * loader/DocumentWriter.cpp:
108         * loader/DocumentWriter.h:
109         * loader/FrameLoader.cpp:
110         (WebCore::FrameLoader::addExtraFieldsToRequest):
111         * platform/network/ResourceRequestBase.cpp:
112         (WebCore::ResourceRequestBase::adopt):
113         (WebCore::ResourceRequestBase::copyData):
114         * platform/network/ResourceRequestBase.h:
115
116 2011-09-09  Beth Dakin  <bdakin@apple.com>
117
118         Attempted Leopard build fix.
119
120         * rendering/RenderImage.cpp:
121         (WebCore::RenderImage::paintReplaced):
122         * rendering/RenderLayer.cpp:
123         (WebCore::RenderLayer::drawPlatformResizerImage):
124
125 2011-09-09  Beth Dakin  <bdakin@apple.com>
126
127         Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
128         Use high resolution platform images when the deviceScaleFactor > 1
129         -and corresponding-
130         <rdar://problem/10003098>
131
132         Reviewed by Darin Adler.
133
134         Add all of the new high resolution images. I also removed some tiffs from the 
135         project and replaced them with png equivalents (that are already checked into 
136         WebCore anyway). Since the high resolution images are pngs, it makes sense to use 
137         pngs for all of the images that load through Image::loadPlatformResource()
138         * WebCore.xcodeproj/project.pbxproj:
139         * platform/graphics/mac/ImageMac.mm:
140         (WebCore::Image::loadPlatformResource):
141
142         Load the @2x resource for deviceScaleFactors >= 2.
143         * editing/DeleteButtonController.cpp:
144         (WebCore::DeleteButtonController::createDeletionUI):
145
146         CachedImage::brokenImage() is no longer a static helper function, but a real 
147         member function. It also now loads the @2x resource for deviceScaleFactors >= 2 
148         and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns 
149         the brokenImage(), it just returns the 1x version. brokenImage() has to be called 
150         directly to reliably return the deviceScaleFactor-appropriate resource.
151         * loader/cache/CachedImage.cpp:
152         (WebCore::CachedImage::brokenImage):
153         (WebCore::CachedImage::image):
154         * loader/cache/CachedImage.h:
155         * rendering/RenderLayer.cpp:
156         (WebCore::RenderLayer::drawPlatformResizerImage):
157         (WebCore::RenderLayer::paintResizer):
158         * rendering/RenderLayer.h:
159
160         New static function to retrieve the deviceScaleFactor for callers that do not have 
161         direct access to a Page.
162         * page/Page.cpp:
163         (WebCore::Page::deviceScaleFactor):
164         * page/Page.h:
165
166         Call CachedImage::brokenImage() for the broken-image image at an accurate 
167         resolution.
168         * rendering/RenderImage.cpp:
169         (WebCore::RenderImage::imageSizeForError):
170         (WebCore::RenderImage::paintReplaced):
171
172 2011-09-09  Erik Arvidsson  <arv@chromium.org>
173
174         Move Element.contains to Node
175         https://bugs.webkit.org/show_bug.cgi?id=67651
176
177         Reviewed by Darin Adler.
178
179         This moves the contains method from Element to Node as in the DOM4 working draft: 
180         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
181
182         This also special cases Document contains to make it O(1) instead of O(depth).
183
184         Tests: fast/dom/Node/contains-method.html
185                perf/document-contains.html
186
187         * bindings/objc/PublicDOMInterfaces.h: Move contains from DOMElement to DOMNode.
188         * dom/Element.idl:
189         * dom/Node.cpp:
190         (WebCore::Node::contains): Added document special case.
191         * dom/Node.idl:
192         * editing/DeleteSelectionCommand.cpp:
193         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
194
195 2011-09-09  Tim Horton  <timothy_horton@apple.com>
196
197         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
198         https://bugs.webkit.org/show_bug.cgi?id=67543
199         <rdar://problem/10070536>
200
201         Reviewed by Darin Adler.
202
203         Generalize (begin|end)TransparencyLayer, which now forward
204         through to (begin|end)PlatformTransparencyLayer, so that
205         isInTransparencyLayer can exist on every platform.
206
207         Make use of isInTransparencyLayer in FontMac to disable
208         "simple" shadow drawing when the text is being rendered
209         into a transparency layer.
210
211         Test: svg/custom/simple-text-double-shadow.svg
212
213         * platform/graphics/GraphicsContext.cpp:
214         (WebCore::GraphicsContext::GraphicsContext):
215         (WebCore::GraphicsContext::~GraphicsContext):
216         (WebCore::GraphicsContext::beginTransparencyLayer):
217         (WebCore::GraphicsContext::endTransparencyLayer):
218         (WebCore::GraphicsContext::isInTransparencyLayer):
219         * platform/graphics/GraphicsContext.h:
220         * platform/graphics/cairo/GraphicsContextCairo.cpp:
221         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
222         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
223         (WebCore::GraphicsContext::supportsTransparencyLayers):
224         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
225         * platform/graphics/cg/GraphicsContextCG.cpp:
226         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
227         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
228         (WebCore::GraphicsContext::supportsTransparencyLayers):
229         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
230         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
231         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
232         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
233         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
234         (WebCore::GraphicsContext::supportsTransparencyLayers):
235         * platform/graphics/mac/FontMac.mm:
236         (WebCore::Font::drawGlyphs):
237         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
238         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
239         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
240         (WebCore::GraphicsContext::supportsTransparencyLayers):
241         * platform/graphics/qt/GraphicsContextQt.cpp:
242         (WebCore::GraphicsContext::isInTransparencyLayer):
243         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
244         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
245         (WebCore::GraphicsContext::supportsTransparencyLayers):
246         * platform/graphics/skia/GraphicsContextSkia.cpp:
247         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
248         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
249         (WebCore::GraphicsContext::supportsTransparencyLayers):
250         * platform/graphics/win/FontCGWin.cpp:
251         (WebCore::drawGDIGlyphs):
252         * platform/graphics/win/GraphicsContextCGWin.cpp:
253         (WebCore::GraphicsContext::releaseWindowsContext):
254         * platform/graphics/win/GraphicsContextCairoWin.cpp:
255         (WebCore::GraphicsContext::releaseWindowsContext):
256         * platform/graphics/win/GraphicsContextWin.cpp:
257         (WebCore::GraphicsContext::getWindowsContext):
258         * platform/graphics/wince/GraphicsContextWinCE.cpp:
259         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
260         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
261         (WebCore::GraphicsContext::supportsTransparencyLayers):
262         * platform/graphics/wx/GraphicsContextWx.cpp:
263         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
264         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
265         (WebCore::GraphicsContext::supportsTransparencyLayers):
266         * platform/win/ScrollbarThemeWin.cpp:
267         * plugins/win/PluginViewWin.cpp:
268         * rendering/RenderThemeWin.cpp:
269
270 2011-09-09  Julien Chaffraix  <jchaffraix@webkit.org>
271
272         [V8] V8WebKitPoint::constructorCallback leaks
273         https://bugs.webkit.org/show_bug.cgi?id=67865
274
275         Reviewed by Adam Barth.
276
277         Covered by fast/js/instanceof-XMLHttpRequest.html under Valgrind.
278
279         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
280         (WebCore::V8WebKitPoint::constructorCallback): Changed the code
281         to use a RefPtr (per our usual style). Also use toV8 that will
282         take care of properly wrapping the object.
283
284 2011-09-09  Chris Rogers  <crogers@google.com>
285
286         HRTFDatabaseLoader should not call WTF::waitForThreadCompletion() more than once
287         https://bugs.webkit.org/show_bug.cgi?id=67866
288
289         Reviewed by David Levin.
290
291         No new tests since this is difficult to test.
292         This is designed to fix existing webaudio layout test failures.
293
294         * platform/audio/HRTFDatabaseLoader.cpp:
295         (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
296         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
297         (WebCore::HRTFDatabaseLoader::loadAsynchronously):
298         (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
299         * platform/audio/HRTFDatabaseLoader.h:
300
301 2011-09-09  Jessie Berlin  <jberlin@apple.com>
302
303         Cookies are not available after turning off Private Browsing after the last window has been
304         closed.
305         https://bugs.webkit.org/show_bug.cgi?id=67874
306
307         Reviewed by Darin Adler.
308
309         The private browsing storage session is a global setting that is being incorrectly set on a
310         per-page basis (see http://webkit.org/b/67870).
311
312         In this case, the global value was getting out of sync with the per-page setting:
313         1. The global value was getting set to true when setPrivateBrowsingEnabled(true) was called.
314         2. All Pages were then closed, destroying their Settings objects.
315         3. When a new Page was created, a new Settings object was created and its
316            m_privateBrowsingEnabled value was getting set to false.
317         4. The WebPage settings were then applied to the new Settings object, resulting in
318            setPrivateBrowsingEnabled(false) to be called.
319         5. An if (m_privateBrowsingEnabled == privateBrowsingEnabled) early return prevented the
320            global value for the storage session from being destroyed.
321
322         * page/Settings.cpp:
323         (WebCore::Settings::setPrivateBrowsingEnabled):
324         Move the early return to be after setting the global private browsing values, and add a
325         clearer comment + FIXME.
326
327 2011-09-09  Kentaro Hara  <haraken@google.com>
328
329         Generate a WebKitCSSMatrix constructor of V8 using the IDL 'Constructor' extended attribute
330         https://bugs.webkit.org/show_bug.cgi?id=67458
331
332         Reviewed by Adam Barth.
333
334         Added a 'CallWithNullValue' extended attribute.
335         If a parameter is optional and missing, 'CallWithDefaultValue'
336         handles it as a string "undefined". On the other hand,
337         'CallWithNullValue' handles it as a null string
338         (Note: not a string "null", but a null string).
339
340         Tests: fast/dom/Window/custom-constructors.html
341                transforms/svg-vs-css.xhtml
342                transforms/cssmatrix-2d-interface.xhtml
343                transforms/cssmatrix-3d-interface.xhtmlGenerate a WebKitCSSMatrix constructor
344
345         * WebCore.gypi: Removed V8WebKitCSSMatrixConstructor.cpp.
346         * WebCore.pro: Removed V8WebKitCSSMatrixConstructor.cpp.
347         * bindings/scripts/CodeGeneratorV8.pm:
348         (GenerateParametersCheck): If the 'CallWithNullValue' extended attribute is set, we call MAYBE_MISSING_PARAMETER() with MissingIsEmpty mode to obtain a maybe missing parameter. Otherwise, we call MAYBE_MISSING_PARAMETER() with MissingIsUndefined mode.
349         (RequiresCustomSignature):
350         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated test results.
351         (WebCore::V8TestInterface::constructorCallback):
352         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
353         (WebCore::TestMediaQueryListListenerInternal::methodCallback):
354         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
355         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
356         (WebCore::TestObjInternal::intMethodWithArgsCallback):
357         (WebCore::TestObjInternal::objMethodWithArgsCallback):
358         (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
359         (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
360         (WebCore::TestObjInternal::optionsObjectCallback):
361         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
362         (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
363         (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
364         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
365         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
366         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
367         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
368         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
369         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
370         (WebCore::TestObjInternal::overloadedMethod1Callback):
371         (WebCore::TestObjInternal::overloadedMethod2Callback):
372         (WebCore::TestObjInternal::overloadedMethod3Callback):
373         (WebCore::TestObjInternal::overloadedMethod4Callback):
374         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
375         (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
376         (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
377         * bindings/v8/V8Binding.h:
378         (WebCore::V8ParameterBase::prepareBase): The fact that V8ParameterBase does not have any object means that we do not need to prepare anything, i.e. we should just return true in this case.
379         (WebCore::::prepare): If V8ParameterBase does not have any object, then we set a null string.
380         * bindings/v8/custom/V8BindingMacros.h: MAYBE_MISSING_PARAMETER() returns the parameter of a given index if the parameter exists. If the parameter does not exist and MissingIsUndefined is set, this macro returns an object that represents undefined. If the parameter does not exist and MissingIsEmpty is set, this macro returns an empty object.
381         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Removed.
382         * css/WebKitCSSMatrix.idl: Added the 'Constructor' extended attribute.
383
384 2011-09-09  Geoffrey Garen  <ggaren@apple.com>
385
386         Reviewed by Dan Bernstein.
387
388         Removed ENABLE(SINGLE_THREADED) support, since it is always false
389         https://bugs.webkit.org/show_bug.cgi?id=67862
390
391         Next step toward making the baseline platform assumption that threads exist.
392
393         * WebCore.pri:
394         * features.pri: 
395         * platform/sql/SQLiteDatabase.cpp:
396         (WebCore::SQLiteDatabase::interrupt): Removed now-dead code.
397
398 2011-09-09  Fady Samuel  <fsamuel@chromium.org>
399
400         Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}
401         https://bugs.webkit.org/show_bug.cgi?id=67250
402
403         Reviewed by Simon Fraser.
404
405         No new tests because there's no change in functionality.
406
407         * WebCore.exp.in:
408         * css/CSSStyleSelector.cpp:
409         (WebCore::CSSStyleSelector::styleForDocument):
410         * dom/Element.cpp:
411         (WebCore::Element::getClientRects):
412         (WebCore::Element::getBoundingClientRect):
413         * dom/Range.cpp:
414         (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale):
415         * loader/HistoryController.cpp:
416         (WebCore::HistoryController::restoreScrollPositionAndViewState):
417         * page/Frame.cpp:
418         (WebCore::Frame::Frame):
419         (WebCore::Frame::pageScaleFactor):
420         * page/Frame.h:
421         * page/Page.cpp:
422         (WebCore::Page::Page):
423         (WebCore::Page::setPageScaleFactor):
424         * page/Page.h:
425         (WebCore::Page::pageScaleFactor):
426         * rendering/RenderLayerCompositor.cpp:
427         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
428         (WebCore::RenderLayerCompositor::pageScaleFactor):
429         * rendering/RenderView.cpp:
430         (WebCore::RenderView::paintBoxDecorations):
431
432 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
433
434         AX: Images within anchors causes crash
435         https://bugs.webkit.org/show_bug.cgi?id=44149
436
437         Reviewed by Chris Fleizach.
438
439         Fixes the way parent RenderObject of an AccessibilityRenderObject
440         is computed in the presence of adjacent continuations.
441
442         Test: accessibility/div-within-anchors-causes-crash.html
443
444         * accessibility/AccessibilityRenderObject.cpp:
445         (WebCore::AccessibilityRenderObject::renderParentObject):
446
447 2011-09-09  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
448
449         CSS rules not being applied when a hidden field is inserted between an input[type=checkbox] and a label
450         https://bugs.webkit.org/show_bug.cgi?id=66887
451
452         Reviewed by David Hyatt.
453
454         Test: fast/css/adjacent-sibling-selector.html
455
456         This patch addresses the problem of elements not getting their style recomputed
457         when they are affected by direct adjacent sibling rules and one of their sibling in
458         their corresponding rules is modified dynamically.
459
460         * css/CSSStyleSelector.cpp:
461         (WebCore::CSSStyleSelector::canShareStyleWithElement):
462         (WebCore::parentStylePreventsSharing):
463         * css/SelectorChecker.cpp:
464         (WebCore::SelectorChecker::checkSelector):
465         * dom/Element.cpp:
466         (WebCore::Element::recalcStyle):
467         (WebCore::checkForSiblingStyleChanges):
468         * rendering/style/RenderStyle.cpp:
469         (WebCore::RenderStyle::RenderStyle):
470         * rendering/style/RenderStyle.h:
471         (WebCore::InheritedFlags::affectedByDirectAdjacentRules):
472         (WebCore::InheritedFlags::setAffectedByDirectAdjacentRules):
473
474 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
475
476         Make the EFL port use the correct rendering file.
477         https://bugs.webkit.org/show_bug.cgi?id=66323
478
479         Reviewed by Martin Robinson.
480
481         When compiling with Pango support, the EFL port should use
482         FontPango.cpp instead of FontEfl.cpp (which is just full of stubs).
483
484         No new functionality so no new tests.
485
486         * CMakeListsEfl.txt:
487
488 2011-09-09  Chris Rogers  <crogers@google.com>
489
490         AudioBufferSourceNode must validate AudioBuffer in .buffer attribute setter
491         https://bugs.webkit.org/show_bug.cgi?id=67749
492
493         Reviewed by Kenneth Russell.
494
495         Test: webaudio/audiobuffersource-channels.html
496
497         * WebCore.gypi:
498         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
499         (WebCore::JSAudioBufferSourceNode::setBuffer):
500         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp: Copied from Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp.
501         (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
502         * webaudio/AudioBufferSourceNode.cpp:
503         (WebCore::AudioBufferSourceNode::setBuffer):
504         * webaudio/AudioBufferSourceNode.h:
505         * webaudio/AudioBufferSourceNode.idl:
506
507 2011-09-09  Dan Bernstein  <mitz@apple.com>
508
509         RenderBlock::addOverhangingFloats() takes superfluous parameters
510         https://bugs.webkit.org/show_bug.cgi?id=67863
511
512         Reviewed by Dave Hyatt.
513
514         No new tests, because behavior is unchanged.
515
516         * rendering/RenderBlock.cpp:
517         (WebCore::RenderBlock::layoutBlock):
518         (WebCore::RenderBlock::layoutBlockChild):
519         (WebCore::RenderBlock::addOverhangingFloats): Removed the logical{Left, Top}Offset parameters,
520         since they were always the inverse of the logical{Left, Top}() of the child parameter.
521         * rendering/RenderBlock.h:
522
523 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
524
525         Add replacement functions for gdk ones.
526         https://bugs.webkit.org/show_bug.cgi?id=66323
527
528         Reviewed by Martin Robinson.
529
530         This will allow the EFL port to don't depend on gdk anymore.
531
532         No new functionality so no new tests.
533
534         * CMakeListsEfl.txt:
535         * platform/graphics/cairo/CairoUtilities.cpp:
536         (WebCore::appendRegionToCairoContext):
537         * platform/graphics/cairo/CairoUtilities.h:
538         * platform/graphics/pango/FontPango.cpp:
539         (WebCore::drawGlyphsShadow):
540         (WebCore::Font::drawComplexText):
541         * platform/graphics/pango/PangoUtilities.cpp: Added.
542         (WebCore::getLineClipRegionFromLayoutIter):
543         (WebCore::getClipRegionFromPangoLayoutLine):
544         * platform/graphics/pango/PangoUtilities.h: Added.
545
546 2011-09-09  Mark Hahnenberg  <mhahnenberg@apple.com>
547
548         Unzip initialization lists and constructors in JSCell hierarchy (5/7)
549         https://bugs.webkit.org/show_bug.cgi?id=67420
550
551         Reviewed by Geoffrey Garen.
552
553         No new tests.
554
555         Completed the fifth level of the refactoring to add finishCreation() 
556         methods to all classes within the JSCell hierarchy with non-trivial 
557         constructor bodies.
558
559         This primarily consists of pushing the calls to finishCreation() down 
560         into the constructors of the subclasses of the second level of the hierarchy 
561         as well as pulling the finishCreation() calls out into the class's corresponding
562         create() method if it has one.  Doing both simultaneously allows us to 
563         maintain the invariant that the finishCreation() method chain is called exactly 
564         once during the creation of an object, since calling it any other number of 
565         times (0, 2, or more) will cause an assertion failure.
566
567         * WebCore.exp.in:
568         * bindings/js/JSDOMBinding.h:
569         (WebCore::DOMConstructorObject::DOMConstructorObject):
570         * bindings/js/JSDOMGlobalObject.cpp:
571         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
572         (WebCore::JSDOMGlobalObject::finishCreation):
573         * bindings/js/JSDOMGlobalObject.h:
574         * bindings/js/JSDOMWindowShell.cpp:
575         * bindings/js/JSDOMWindowShell.h:
576         (WebCore::JSDOMWindowShell::create):
577         * bindings/js/JSDOMWrapper.h:
578         (WebCore::JSDOMWrapper::JSDOMWrapper):
579         * bindings/scripts/CodeGeneratorJS.pm:
580         (GenerateImplementation):
581         * bindings/scripts/test/JS/JSTestInterface.cpp:
582         (WebCore::JSTestInterface::JSTestInterface):
583         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
584         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
585         * bindings/scripts/test/JS/JSTestObj.cpp:
586         (WebCore::JSTestObj::JSTestObj):
587         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
588         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
589         * bridge/c/CRuntimeObject.cpp:
590         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
591         (JSC::Bindings::CRuntimeObject::finishCreation):
592         * bridge/c/CRuntimeObject.h:
593         * bridge/jni/jsc/JavaRuntimeObject.cpp:
594         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
595         (JSC::Bindings::JavaRuntimeObject::finishCreation):
596         * bridge/jni/jsc/JavaRuntimeObject.h:
597         * bridge/objc/ObjCRuntimeObject.h:
598         * bridge/objc/ObjCRuntimeObject.mm:
599         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
600         (JSC::Bindings::ObjCRuntimeObject::finishCreation):
601         * bridge/objc/objc_runtime.h:
602         (JSC::Bindings::ObjcFallbackObjectImp::create):
603         * bridge/objc/objc_runtime.mm:
604         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
605         * bridge/qt/qt_instance.cpp:
606         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
607         * bridge/qt/qt_pixmapruntime.cpp:
608         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
609         * bridge/qt/qt_runtime.cpp:
610         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
611         (JSC::Bindings::QtRuntimeMethod::finishCreation):
612         * bridge/qt/qt_runtime.h:
613         * bridge/runtime_array.cpp:
614         (JSC::RuntimeArray::RuntimeArray):
615         * bridge/runtime_array.h:
616         (JSC::RuntimeArray::create):
617         * bridge/runtime_method.cpp:
618         (JSC::RuntimeMethod::RuntimeMethod):
619         (JSC::RuntimeMethod::finishCreation):
620         * bridge/runtime_method.h:
621         * bridge/runtime_object.cpp:
622         (JSC::Bindings::RuntimeObject::RuntimeObject):
623         * bridge/runtime_object.h:
624         (JSC::Bindings::RuntimeObject::create):
625
626 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
627
628         Rename FontGtk.cpp to FontPango.cpp
629         https://bugs.webkit.org/show_bug.cgi?id=66323
630
631         Reviewed by Martin Robinson.
632
633         This file will be used by the EFL port too, and since it's not GTK
634         specific anymore, rename it to something better.
635
636         No new functionality so no new tests.
637
638         * GNUmakefile.list.am:
639         * platform/graphics/pango/FontPango.cpp: Renamed from Source/WebCore/platform/graphics/gtk/FontGtk.cpp.
640
641 2011-09-09  Adam Klein  <adamk@chromium.org>
642
643         Initialize ExceptionCode in Element::removeAttribute
644         https://bugs.webkit.org/show_bug.cgi?id=67820
645
646         Reviewed by Darin Adler.
647
648         Silences valgrind warning reported in http://crbug.com/76490.
649
650         No new tests since this would only very occasionally be flaky,
651         and in the codepath in the valgrind report, the ec is ignored anyway.
652
653         * dom/Element.cpp:
654         (WebCore::Element::removeAttribute): Initialize ec to 0.
655
656 2011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
657
658         [Qt] Remove common.pri
659         https://bugs.webkit.org/show_bug.cgi?id=67814
660
661         Reviewed by Andreas Kling.
662
663         No new tests, no change in functionality.
664
665         * CodeGenerators.pri:
666         * WebCore.pri:
667
668 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
669
670         Assert being hit in AccessibilityRenderObject::addChildren()
671         https://bugs.webkit.org/show_bug.cgi?id=61805
672
673         Reviewed by Chris Fleizach.
674
675         Fix nextSibling and previousSibling to handle adjacent continuations
676         properly, otherwise nodes end up appearing in the accessibility
677         tree twice (or a debug assertion could be raised).
678
679         Test: accessibility/adjacent-continuations-cause-assertion-failure.html
680
681         * accessibility/AccessibilityRenderObject.cpp:
682         (WebCore::AccessibilityRenderObject::previousSibling):
683         (WebCore::AccessibilityRenderObject::nextSibling):
684
685 2011-09-08  Kentaro Hara  <haraken@google.com>
686
687         Implement a WebKitAnimationEvent constructor.
688         https://bugs.webkit.org/show_bug.cgi?id=67825
689
690         Reviewed by Sam Weinig.
691
692         There is no spec for the WebKitAnimationEvent constructor
693         since it is WebKit-specific. However, based on the current
694         IDL of initWebKitAnimationEvent(), the constructor IDL
695         should be as follows.
696
697         [Constructor(DOMString type, optional WebKitAnimationEventInit eventInitDict)]
698         interface WebKitAnimationEvent : Event {
699             ...;
700         }
701
702         dictionary WebKitAnimationEventInit : EventInit {
703             DOMString animationName;
704             double elapsedTime;
705         }
706
707         Test: fast/events/constructors/webkit-animation-event-constructor.html
708
709         * bindings/generic/EventConstructors.h: Added a definition for the WebKitAnimationEvent constructor.
710         * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitAnimationEvent.
711         * dom/WebKitAnimationEvent.cpp:
712         (WebCore::WebKitAnimationEventInit::WebKitAnimationEventInit):
713         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
714         * dom/WebKitAnimationEvent.h: Added a definition for WebKitAnimationEventInit.
715         (WebCore::WebKitAnimationEvent::create):
716         * dom/WebKitAnimationEvent.idl: Makes WebKitAnimationEvent constructible.
717
718 2011-09-08  Abhishek Arya  <inferno@chromium.org>
719
720         :before content rendering issues with list markers and run-ins.
721         https://bugs.webkit.org/show_bug.cgi?id=67735
722
723         1) Remove the isAnonymous checks for run-in detection since the
724         run-in can belong to a node.
725         2) When the parent has block children, then the list marker will
726         be enclosed in an anonymous block. In that case, for going to the
727         next list marker, we need to traverse one level up. We don't need
728         this check when searching for generated run-in (loop 2), since we
729         know parent will have inline children, so the list marker wont be
730         enclosed in an anonymous block.
731
732         Reviewed by Dave Hyatt.
733
734         Tests: fast/lists/list-marker-before-content-table.html
735                fast/runin/runin-generated-before-content.html
736
737         * rendering/RenderObjectChildList.cpp:
738         (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
739
740 2011-09-09  Pavel Podivilov  <podivilov@chromium.org>
741
742         Web Inspector: introduce JavaScriptSourceFrame class.
743         https://bugs.webkit.org/show_bug.cgi?id=67838
744
745         SourceFrame should not deal with JavaScript debugging since it is a base class for all source frame implementations.
746
747         Reviewed by Pavel Feldman.
748
749         * WebCore.gypi:
750         * WebCore.vcproj/WebCore.vcproj:
751         * inspector/front-end/JavaScriptSourceFrame.js: Added.
752         (WebInspector.JavaScriptSourceFrame):
753         (WebInspector.SourceFrameDelegateForScriptsPanel): moved from ScriptsPanel.js
754         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.requestContent):
755         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggingSupported):
756         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setBreakpoint):
757         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.updateBreakpoint):
758         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.removeBreakpoint):
759         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.findBreakpoint):
760         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.continueToLine):
761         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.canEditScriptSource):
762         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSource):
763         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSourceIsBeingEdited):
764         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggerPaused):
765         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.evaluateInSelectedCallFrame):
766         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult):
767         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.suggestedFileName):
768         * inspector/front-end/ScriptsPanel.js:
769         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
770         * inspector/front-end/WebKit.qrc:
771         * inspector/front-end/inspector.html:
772
773 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
774
775         Unreviewed, rolling out r94845.
776         http://trac.webkit.org/changeset/94845
777         https://bugs.webkit.org/show_bug.cgi?id=67839
778
779         This patch kicked Qt-SL bots, but we don't need this
780         modification. (Requested by ossy_ on #webkit).
781
782         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
783         * platform/mac/WebVideoFullscreenController.mm:
784         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
785
786 2011-09-09  Csaba Osztrogonác  <ossy@webkit.org>
787
788         [Qt][Mac]REGRESSION(r94774): Build is broken
789         https://bugs.webkit.org/show_bug.cgi?id=67799
790
791         It seems these files didn't rebuilt because of a
792         dependency bug. Touch them to trigger a rebuild.
793
794         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
795         * platform/mac/WebVideoFullscreenController.mm:
796         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
797
798 2011-09-09  Alexander Pavlov  <apavlov@chromium.org>
799
800         Unreviewed, Chromium valgrind build fix.
801
802         Web Inspector: [Chromium] Valgrind signals use of uninitialized field in InspectorStyleSheetForInlineStyle
803         https://bugs.webkit.org/show_bug.cgi?id=67837
804
805         * inspector/InspectorStyleSheet.cpp:
806         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
807
808 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
809
810         Unreviewed, rolling out r94536.
811         http://trac.webkit.org/changeset/94536
812         https://bugs.webkit.org/show_bug.cgi?id=67836
813
814         breaks absoluteLocation() of RelatedMouseEvent (Requested by
815         jknotten on #webkit).
816
817         * dom/MouseRelatedEvent.cpp:
818         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
819
820 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
821
822         Web Inspector: live edit both for JS and CSS is not discoverable.
823         https://bugs.webkit.org/show_bug.cgi?id=65962
824
825         Add the "Edit" button to SourceFrame, so that resources/scripts can be edited both in the
826         Resources and the Scripts panels. The button is grayed out if the resource/script is not editable.
827
828         Reviewed by Yury Semikhatsky.
829
830         * inspector/front-end/Images/statusbarButtonGlyphs.png:
831         * inspector/front-end/ResourceView.js:
832         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
833         * inspector/front-end/ScriptsPanel.js:
834         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
835         (WebInspector.ScriptsPanel.prototype.set visibleView):
836         * inspector/front-end/SourceFrame.js:
837         (WebInspector.SourceFrame):
838         (WebInspector.SourceFrame.prototype.get statusBarItems):
839         (WebInspector.SourceFrame.prototype._initializeTextViewer):
840         (WebInspector.SourceFrame.prototype._editButtonClicked):
841         (WebInspector.SourceFrame.prototype.canEditSource):
842         (WebInspector.SourceFrame.prototype.startEditing):
843         (WebInspector.SourceFrame.prototype.commitEditing):
844         (WebInspector.SourceFrame.prototype._setReadOnly):
845         (WebInspector.TextViewerDelegateForSourceFrame.prototype.doubleClick):
846         * inspector/front-end/TextViewer.js:
847         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
848         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
849         * inspector/front-end/inspector.css:
850         (button.edit-source-status-bar-item .glyph):
851         (button.edit-source-status-bar-item.toggled-on .glyph):
852
853 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
854
855         Crashes in WebCore::AppendNodeCommand::create().
856         https://bugs.webkit.org/show_bug.cgi?id=67767
857
858         Reviewed by Darin Adler.
859
860         In CompositeEditCommand::closeParagraphUnderNewElement(), lastNode could be a non Element node.
861         The current code assumes lastNode is an Element node. This patch checks it.
862
863         Test: editing/execCommand/ident-crashes-topnode-is-text.html
864
865         * editing/CompositeEditCommand.cpp:
866         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement): Added an element node check.
867
868 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
869
870         Crashes in WebCore::ApplyStyleCommand.doApply()
871         https://bugs.webkit.org/show_bug.cgi?id=67765
872
873         Reviewed by Ryosuke Niwa.
874
875         WebCore::enclosingBlock may return null, but ApplyStyleCommand::applyBlockStyle did not check it. This patch make it to be checked.
876
877         Test: editing/style/remove-format-without-enclosing-block.html
878
879         * editing/ApplyStyleCommand.cpp:
880         (WebCore::ApplyStyleCommand::applyBlockStyle): Added null check.
881
882 2011-09-09  James Simonsen  <simonjam@chromium.org>
883
884         [Chromium] Fix leak of Skia stream with custom CSS fonts
885         https://bugs.webkit.org/show_bug.cgi?id=67815
886
887         Reviewed by Adam Barth.
888
889         Test: fast/css/font-face-opentype.html under valgrind
890
891         * platform/graphics/mac/FontCustomPlatformData.cpp:
892         (WebCore::createFontCustomPlatformData):
893         * platform/graphics/skia/FontCustomPlatformData.cpp:
894         (WebCore::createFontCustomPlatformData):
895
896 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
897
898         Push more code from HTMLInputElement::setValue to TextFieldInputType::setValue
899         https://bugs.webkit.org/show_bug.cgi?id=67742
900
901         Reviewed by Darin Adler.
902
903         Moved more code in HTMLInputElement::setValue to TextFieldInputType::setValue, and merged
904         InputType::valueChanged into InputType::setValue. Also introduced
905         InputType::dispatchChangeEventInResponseToSetValue to be overridden by TextFieldInputType.
906
907         * html/BaseButtonInputType.cpp:
908         (WebCore::BaseButtonInputType::setValue):
909         * html/BaseButtonInputType.h:
910         * html/BaseCheckableInputType.cpp:
911         (WebCore::BaseCheckableInputType::setValue):
912         * html/BaseCheckableInputType.h:
913         * html/ColorInputType.cpp:
914         * html/ColorInputType.h:
915         * html/FileInputType.cpp:
916         (WebCore::FileInputType::setValue):
917         * html/FileInputType.h:
918         * html/HTMLInputElement.cpp:
919         (WebCore::HTMLInputElement::setValue):
920         * html/HTMLInputElement.h:
921         (WebCore::HTMLInputElement::cacheSelectionInResponseToSetValue):
922         * html/HiddenInputType.cpp:
923         (WebCore::HiddenInputType::setValue):
924         * html/HiddenInputType.h:
925         * html/InputType.cpp:
926         (WebCore::InputType::setValue):
927         (WebCore::InputType::dispatchChangeEventInResponseToSetValue):
928         * html/InputType.h:
929         * html/RangeInputType.cpp:
930         (WebCore::RangeInputType::setValue):
931         * html/RangeInputType.h:
932         * html/TextFieldInputType.cpp:
933         (WebCore::TextFieldInputType::setValue):
934         (WebCore::TextFieldInputType::dispatchChangeEventInResponseToSetValue):
935         * html/TextFieldInputType.h:
936
937 2011-09-08  Annie Sullivan  <sullivan@chromium.org>
938
939         Crashes in WebCore::InsertNodeBeforeCommand constructor.
940         https://bugs.webkit.org/show_bug.cgi?id=67763
941
942         Reviewed by Ryosuke Niwa.
943
944         Changes editableRootForPosition() to use the position's containerNode instead of deprecatedNode so that
945         positions which are before or after a given node cannot return that node as the editable root.
946
947         Test: editing/inserting/insert-paragraph-selection-outside-contenteditable.html
948
949         * editing/htmlediting.cpp:
950         (WebCore::editableRootForPosition): use containerNode instead of deprecatedNode.
951
952 2011-09-08  James Weatherall  <wez@chromium.org>
953
954         Release the reference to the HTMLPlugInElement's script object, when the element is removed from the document.  This breaks a cyclical reference that would otherwise cause the element to be retained until the document is torn down.
955         https://bugs.webkit.org/show_bug.cgi?id=66181
956
957         Reviewed by Anders Carlsson.
958
959         No new tests - no functional change.
960
961         * html/HTMLPlugInElement.cpp:
962         (WebCore::HTMLPlugInElement::removedFromDocument):
963         * html/HTMLPlugInElement.h:
964
965 2011-09-08  Daniel Bates  <dbates@webkit.org>
966
967         XSS filter bypass via non-standard URL encoding
968         https://bugs.webkit.org/show_bug.cgi?id=66588
969
970         Reviewed by Adam Barth.
971
972         Tests: http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html
973                http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html
974                http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html
975                http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html
976                http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html
977                http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html
978                http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html
979                http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html
980
981         Implement support for decoding non-standard 16-bit Unicode escape sequences of
982         the form %u26C4 as described in <http://www.w3.org/International/iri-edit/draft-duerst-iri.html#anchor29>.
983
984         See also <http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations>.
985
986         * GNUmakefile.list.am: Added DecodeEscapeSequences.h.
987         * WebCore.gypi: Ditto.
988         * WebCore.pro: Ditto.
989         * WebCore.vcproj/WebCore.vcproj: Ditto.
990         * WebCore.xcodeproj/project.pbxproj: Ditto.
991         * html/parser/XSSAuditor.cpp:
992         (WebCore::decode16BitUnicodeEscapeSequences): Added.
993         (WebCore::decodeStandardURLEscapeSequences): Added.
994         (WebCore::fullyDecodeString): Modified to call decode16BitUnicodeEscapeSequences().
995         (WebCore::XSSAuditor::init): Modified to return early when the URL of the document
996         is the empty string. This can happen when opening a new browser window or calling
997         window.open("").
998         * platform/KURL.cpp:
999         (WebCore::decodeURLEscapeSequences): Abstracted code into template-function decodeEscapeSequences().
1000         This function just calls decodeEscapeSequences<URLEscapeSequence>().
1001         * platform/text/DecodeEscapeSequences.h: Added.
1002         (WebCore::Unicode16BitEscapeSequence::findInString):
1003         (WebCore::Unicode16BitEscapeSequence::matchStringPrefix):
1004         (WebCore::Unicode16BitEscapeSequence::decodeRun):
1005         (WebCore::URLEscapeSequence::findInString):
1006         (WebCore::URLEscapeSequence::matchStringPrefix):
1007         (WebCore::URLEscapeSequence::decodeRun):
1008         (WebCore::decodeEscapeSequences):
1009
1010 2011-09-08  Adam Barth  <abarth@webkit.org>
1011
1012         DocumentWriter::deprecatedFrameEncoding doesn't need to refert to Settings
1013         https://bugs.webkit.org/show_bug.cgi?id=67812
1014
1015         Reviewed by Eric Seidel.
1016
1017         The one caller of this function does this work already.
1018
1019         * loader/DocumentWriter.cpp:
1020         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1021
1022 2011-09-08  Adam Klein  <adamk@chromium.org>
1023
1024         Always zero-out m_sortedTextBoxesPosition to avoid uninitialized read in TextIterator
1025         https://bugs.webkit.org/show_bug.cgi?id=67810
1026
1027         Reviewed by Tony Chang.
1028
1029         Reported as a valgrind failure in http://crbug.com/84777.
1030
1031         No possible change in behavior, so no tests. The unitialized read
1032         could never have an impact:
1033
1034            if (m_sortedTextBoxesPosition + 1 < m_sortedTextBoxes.size()) ...
1035
1036         Since m_sortedTextBoxes.size() will be zero here if
1037         m_sortedTextBoxesPosition is uninitialized, and they're both unsigned,
1038         so no possible value of m_sortedTextBoxesPosition could be < 0.
1039
1040         * editing/TextIterator.cpp:
1041         (WebCore::TextIterator::TextIterator):
1042
1043 2011-09-08  Tony Chang  <tony@chromium.org>
1044
1045         Cleanup of switch statements with default cases
1046         https://bugs.webkit.org/show_bug.cgi?id=67808
1047
1048         Reviewed by Adam Barth.
1049
1050         No new tests, just a small refactoring.
1051
1052         * page/WebKitAnimation.cpp:
1053         (WebCore::WebKitAnimation::fillMode):
1054         * platform/audio/Distance.cpp:
1055         (WebCore::DistanceEffect::gain):
1056
1057 2011-09-08  Eric Seidel  <eric@webkit.org>
1058
1059         [BiDi] Add support for the BDI element
1060         https://bugs.webkit.org/show_bug.cgi?id=50913
1061
1062         Reviewed by Ryosuke Niwa.
1063
1064         This patch is ridiculously trivial now that we have unicode-bidi: isolate support in WebKit.
1065
1066         Test: css3/bdi-element.html
1067
1068         * css/html.css:
1069         (bdi):
1070
1071 2011-09-08  David Levin  <levin@chromium.org>
1072
1073         [chromium] KURL::copy doesn't produce something usable on another thread.
1074         https://bugs.webkit.org/show_bug.cgi?id=67809
1075
1076         Reviewed by Adam Barth.
1077
1078         No new functionality exposed so no new test. This was caught by testing code: the thread
1079         sanitizer run in Chromium (http://code.google.com/p/chromium/issues/detail?id=93708).
1080
1081         * platform/KURLGoogle.cpp:
1082         (WebCore::KURLGooglePrivate::copyTo): Clear out the invalid String so that it will
1083         not be used on another thread.
1084
1085 2011-09-08  Alexey Proskuryakov  <ap@apple.com>
1086
1087         REGRESSION (r66874): Missing RefPtr in ScriptController
1088         https://bugs.webkit.org/show_bug.cgi?id=67748
1089
1090         Reviewed by Adam Barth.
1091
1092         * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeScript):
1093
1094 2011-09-08  Adam Barth  <abarth@webkit.org>
1095
1096         Second attempt to fix Chromium build.
1097
1098         * dom/Document.h:
1099
1100 2011-09-08  Oliver Hunt  <oliver@apple.com>
1101
1102         Use bump allocator for initial property storage
1103         https://bugs.webkit.org/show_bug.cgi?id=67494
1104
1105         Reviewed by Geoffrey Garen.
1106
1107         Add a forwarding header.
1108
1109         * ForwardingHeaders/runtime/StorageBarrier.h: Added.
1110
1111 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1112
1113         Unreviewed, rolling out r94809.
1114         http://trac.webkit.org/changeset/94809
1115         https://bugs.webkit.org/show_bug.cgi?id=67718
1116
1117         commit _still_ premature, despite CQ eagerness
1118
1119         * html/HTMLAttributeNames.in:
1120         * html/HTMLStyleElement.cpp:
1121         * html/HTMLStyleElement.h:
1122         * html/HTMLStyleElement.idl:
1123
1124 2011-09-08  Sam Weinig  <sam@webkit.org>
1125
1126         Remove the Completion object from JSC, I have never liked it
1127         https://bugs.webkit.org/show_bug.cgi?id=67755
1128
1129         Reviewed by Gavin Barraclough.
1130
1131         * bindings/js/JSDOMBinding.cpp:
1132         (WebCore::reportException):
1133         * bindings/js/JSEventListener.cpp:
1134         (WebCore::JSEventListener::handleEvent):
1135         * bindings/js/JSInjectedScriptManager.cpp:
1136         (WebCore::InjectedScriptManager::createInjectedScript):
1137         * bindings/js/JSMainThreadExecState.h:
1138         (WebCore::JSMainThreadExecState::evaluate):
1139         * bindings/js/ScriptController.cpp:
1140         (WebCore::ScriptController::evaluateInWorld):
1141         * bindings/js/WorkerScriptController.cpp:
1142         (WebCore::WorkerScriptController::evaluate):
1143         * bindings/objc/WebScriptObject.mm:
1144         (-[WebScriptObject evaluateWebScript:]):
1145         * bridge/NP_jsobject.cpp:
1146         (_NPN_Evaluate):
1147         * bridge/jni/jni_jsobject.mm:
1148         (JavaJSObject::eval):
1149
1150 2011-09-08  Adam Barth  <abarth@webkit.org>
1151
1152         Inline DocumentWriter::encoding() into it's only caller: deprecatedFrameEncoding()
1153         https://bugs.webkit.org/show_bug.cgi?id=67807
1154
1155         Reviewed by Eric Seidel.
1156
1157         This function is super nutty.  We don't want any more folks to call it
1158         thinking that it does something sane.
1159
1160         * loader/DocumentWriter.cpp:
1161         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1162         * loader/DocumentWriter.h:
1163
1164 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1165
1166         <style scoped>: Add 'scoped' attribute
1167         https://bugs.webkit.org/show_bug.cgi?id=67718
1168
1169         Add 'scoped' attribute to IDL and attribute list,
1170         implement and test setting/resetting of the attribute.
1171
1172         Reviewed by Dimitri Glazkov.
1173
1174         Test: fast/css/style-scoped/basic-attribute.html
1175
1176         * html/HTMLAttributeNames.in:
1177         * html/HTMLStyleElement.cpp:
1178         (WebCore::HTMLStyleElement::scoped):
1179         (WebCore::HTMLStyleElement::setScoped):
1180         (WebCore::HTMLStyleElement::scopingElement):
1181         * html/HTMLStyleElement.h:
1182         * html/HTMLStyleElement.idl:
1183
1184 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1185
1186         Unreviewed, rolling out r94781.
1187         http://trac.webkit.org/changeset/94781
1188         https://bugs.webkit.org/show_bug.cgi?id=67806
1189
1190         Broke Objective-C binding on Mac (Requested by rniwa on
1191         #webkit).
1192
1193         * dom/Element.idl:
1194         * dom/Node.cpp:
1195         (WebCore::Node::contains):
1196         * dom/Node.idl:
1197         * editing/DeleteSelectionCommand.cpp:
1198         (WebCore::DeleteSelectionCommand::mergeParagraphs):
1199
1200 2011-09-08  Eric Seidel  <eric@webkit.org>
1201
1202         Remove DocumentWriter::setDecoder as a grep of WebKit shows no callers
1203         https://bugs.webkit.org/show_bug.cgi?id=67803
1204
1205         Reviewed by Adam Barth.
1206
1207         Smells like dead code.
1208
1209         * loader/DocumentWriter.cpp:
1210         * loader/DocumentWriter.h:
1211
1212 2011-09-08  Shinya Kawanaka  <shinyak@google.com>
1213
1214         Crashes in WebCore::ReplaceSelectionCommand::doApply
1215         https://bugs.webkit.org/show_bug.cgi?id=67762
1216
1217         Reviewed by Ryosuke Niwa.
1218
1219         WebCore::enclosingBlock may return null, but its return value was not checked. This patch checks it.
1220
1221         Tests: editing/inserting/insert-without-enclosing-block.html
1222
1223         * editing/ReplaceSelectionCommand.cpp:
1224         (WebCore::ReplaceSelectionCommand::doApply): Added null check.
1225
1226 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1227
1228         Unreviewed, rolling out r94784.
1229         http://trac.webkit.org/changeset/94784
1230         https://bugs.webkit.org/show_bug.cgi?id=67796
1231
1232         Commit was premature (Requested by rolandsteiner on #webkit).
1233
1234         * html/HTMLAttributeNames.in:
1235         * html/HTMLStyleElement.cpp:
1236         * html/HTMLStyleElement.h:
1237         * html/HTMLStyleElement.idl:
1238
1239 2011-09-08  W. James MacLean  <wjmaclean@chromium.org>
1240
1241         [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation.
1242         https://bugs.webkit.org/show_bug.cgi?id=66472
1243
1244         This patch contains plumbing from Internals to WebViewImpl that can be removed
1245         at a later time when the zoom animator code is complete.
1246
1247         Reviewed by James Robinson.
1248
1249         Test: platform/chromium/compositing/zoom-animator-scale-test.html
1250
1251         * page/Settings.cpp:
1252         (WebCore::Settings::Settings):
1253         * page/Settings.h:
1254         (WebCore::Settings::setZoomAnimatorScale):
1255         (WebCore::Settings::zoomAnimatorScale):
1256         * platform/graphics/chromium/LayerRendererChromium.cpp:
1257         (WebCore::LayerRendererChromium::LayerRendererChromium):
1258         (WebCore::LayerRendererChromium::drawLayersInternal):
1259         * platform/graphics/chromium/LayerRendererChromium.h:
1260         (WebCore::LayerRendererChromium::setZoomAnimatorScale):
1261         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1262         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1263         (WebCore::CCLayerTreeHost::commitTo):
1264         (WebCore::CCLayerTreeHost::setZoomAnimatorScale):
1265         (WebCore::CCLayerTreeHost::updateLayers):
1266         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1267         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1268         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale):
1269         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1270         * testing/Internals.cpp:
1271         (WebCore::Internals::setZoomAnimatorScale):
1272         * testing/Internals.h:
1273         * testing/Internals.idl:
1274
1275 2011-09-08  Eric Carlson  <eric.carlson@apple.com>
1276
1277         HTMLMediaElement is missing initialTime attribute
1278         https://bugs.webkit.org/show_bug.cgi?id=67791
1279
1280         Reviewed by Darin Adler.
1281
1282         Test: media/media-initialTime.html
1283
1284         * html/HTMLMediaElement.cpp:
1285         (WebCore::HTMLMediaElement::initialTime):
1286         * html/HTMLMediaElement.h:
1287         * html/HTMLMediaElement.idl:
1288         * platform/graphics/MediaPlayer.cpp:
1289         (WebCore::MediaPlayer::initialTime):
1290         * platform/graphics/MediaPlayer.h:
1291         * platform/graphics/MediaPlayerPrivate.h:
1292         (WebCore::MediaPlayerPrivateInterface::initialTime):
1293
1294 2011-09-03  Robert Hogan  <robert@webkit.org>
1295
1296         Elements with position:absolute don't move to correct position after images load
1297         https://bugs.webkit.org/show_bug.cgi?id=54611
1298
1299         Reviewed by Simon Fraser.
1300
1301         Test: fast/block/positioning/absolute-layout-after-image-load.html
1302
1303         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
1304         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
1305         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
1306         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. 
1307
1308         Note: Although the issue is encountered only on first load without a fragment identifier, it 
1309         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
1310         because scrolling to the fragment always happens before the image has loaded, rendering the page 
1311         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
1312         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
1313         re-rendered.
1314
1315         Note: This was originally landed in r94755 but positioned-float-layout-after-image-load.html exposed
1316               an ASSERT bug, unrelated to this change, and was rolled out. That issue is tracked separately
1317               in bug 67759.
1318
1319         * rendering/RenderBlock.cpp:
1320         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
1321                                                          deciding whether to mark children for layout
1322
1323 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
1324
1325         <style scoped>: Add 'scoped' attribute
1326         https://bugs.webkit.org/show_bug.cgi?id=67718
1327
1328         Add 'scoped' attribute to IDL and attribute list,
1329         implement and test setting/resetting of the attribute.
1330
1331         Reviewed by Dimitri Glazkov.
1332
1333         Test: fast/css/style-scoped/basic-attribute.html
1334
1335         * html/HTMLAttributeNames.in:
1336         * html/HTMLStyleElement.cpp:
1337         (WebCore::HTMLStyleElement::scoped):
1338         (WebCore::HTMLStyleElement::setScoped):
1339         (WebCore::HTMLStyleElement::scopingElement):
1340         * html/HTMLStyleElement.h:
1341         * html/HTMLStyleElement.idl:
1342
1343 2011-09-08  Erik Arvidsson  <arv@chromium.org>
1344
1345         Move Element.contains to Node
1346         https://bugs.webkit.org/show_bug.cgi?id=67651
1347
1348         Reviewed by Darin Adler.
1349
1350         This moves the contains method from Element to Node as in the DOM4 working draft: 
1351         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
1352
1353         This also special cases Document contains to make it O(1) instead of O(depth).
1354
1355         Tests: fast/dom/Node/contains-method.html
1356                perf/document-contains.html
1357
1358         * dom/Element.idl:
1359         * dom/Node.cpp:
1360         (WebCore::Node::contains): Added document special case.
1361         * dom/Node.idl:
1362         * editing/DeleteSelectionCommand.cpp:
1363         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
1364
1365 2011-09-08  Chris Rogers  <crogers@google.com>
1366
1367         Check AudioContext createChannelMerger() for thread safety
1368         https://bugs.webkit.org/show_bug.cgi?id=67247
1369
1370         Reviewed by Kenneth Russell.
1371
1372         Test: webaudio/audiochannelmerger-stereo.html
1373
1374         * webaudio/AudioChannelMerger.cpp:
1375         (WebCore::AudioChannelMerger::process):
1376         (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
1377         * webaudio/AudioChannelMerger.h:
1378
1379 2011-09-08  Ned Holbrook  <nholbrook@apple.com>
1380
1381         Refactor hyphen measurement
1382         https://bugs.webkit.org/show_bug.cgi?id=67728
1383
1384         Reviewed by Darin Adler.
1385
1386         No new tests, purely refactoring.
1387
1388         * rendering/RenderBlockLineLayout.cpp:
1389         (WebCore::measureHyphenWidth): Added.
1390         (WebCore::setLogicalWidthForTextRun): Use measureHyphenWidth().
1391         (WebCore::tryHyphenating): Ditto.
1392         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
1393
1394 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
1395
1396         Remove LayoutStateDisabler instances from RenderLayer
1397         https://bugs.webkit.org/show_bug.cgi?id=66896
1398
1399         Reviewed by Simon Fraser.
1400
1401         As part of r93614, scrollTo does not call updateLayerPositions anymore.
1402         This means that we don't need to disable LayoutState from the scrolling code
1403         in RenderLayer.
1404
1405         This change is covered by the existing tests.
1406
1407         * rendering/RenderLayer.cpp:
1408         (WebCore::RenderLayer::updateLayerPositions): Updated the comment
1409         that was not accurate anymore. Also explained what is wrong with
1410         LayoutState vs RenderLayer now. Note that the ASSERT is still
1411         valid and will not trigger as the remaining calls to updateLayerPositions
1412         are done *outside* layout() where LayoutState is not set (thus disabled).
1413
1414         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed
1415         2 LayoutStateDisabler surrounding scrollToOffset.
1416
1417 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
1418
1419         Factor out the code to get the first non-null RenderTableSection in RenderTable
1420         https://bugs.webkit.org/show_bug.cgi?id=66972
1421
1422         Reviewed by Darin Adler.
1423
1424         Refactoring only, covered by existing tests.
1425
1426         * accessibility/AccessibilityTable.cpp:
1427         (WebCore::AccessibilityTable::addChildren):
1428         (WebCore::AccessibilityTable::cellForColumnAndRow):
1429         * accessibility/AccessibilityTableCell.cpp:
1430         (WebCore::AccessibilityTableCell::rowIndexRange):
1431         Updated those for the signature change in sectionBelow. Also added
1432         a FIXME where topSection should be used instead of iterating
1433         over the section (and likely missing some corner cases).
1434
1435         * rendering/FixedTableLayout.cpp:
1436         (WebCore::FixedTableLayout::calcWidthArray):
1437         * rendering/RenderTable.cpp:
1438         (WebCore::RenderTable::calcBorderStart):
1439         (WebCore::RenderTable::calcBorderEnd):
1440         (WebCore::RenderTable::outerBorderBefore):
1441         (WebCore::RenderTable::sectionAbove):
1442         (WebCore::RenderTable::sectionBelow):
1443         (WebCore::RenderTable::firstLineBoxBaseline):
1444         Updated all those functions to use the newly added functions. Also changed
1445         the variable names to match the functions.
1446
1447         (WebCore::RenderTable::layout):
1448         (WebCore::RenderTable::topNonEmptySection): Newly added function
1449         that returns the top non null section of the table that has at least a
1450         row.
1451
1452         (WebCore::RenderTable::cellAbove):
1453         (WebCore::RenderTable::cellBelow):
1454         Update the signature of those 2 functions to take an enum as it makes the
1455         rest of the code more readable.
1456
1457         * rendering/RenderTable.h:
1458         (WebCore::RenderTable::topSection): Newly added function to return
1459         the top non null section in the table.
1460
1461 2011-04-19  Eric Seidel  <eric@webkit.org>
1462
1463         Reviewed by Ryosuke Niwa.
1464
1465         [BiDi] [CSS3] MASTER: Add support for the unicode-bidi:isolate CSS property
1466         https://bugs.webkit.org/show_bug.cgi?id=50912
1467
1468         This patch adds support for CSS3 unicode-bidi: isolate property, under the -webkit- vendor prefix.
1469         Parsing support was added in a previous patch, this wires up the RenderStyle values
1470         to code changes in the BidiResolver.
1471
1472         The effect of this patch is that it makes it possible to "isolate" runs of text
1473         so that their RTL-ness or LTR-ness does not bleed out into the rest of your text
1474         and effect layout.  This is important because many unicode characters (like parenthesis, ':', '-', etc.)
1475         do not have intrinsic directionality and are affected by whatever characters come before/after.
1476         If you have usernames which include RTL text, if you inject those usernames in your page
1477         you might end up with nearby characters moving!
1478         (like 'RTL USERNAME - my awesome site' as a title, could end up as
1479         'my awesome site - USERNAME RTL' when correct would be 'USERNAME RTL - my awesome site'.)
1480         This patch makes it possible to wrap sections of text in isolated spans, so that
1481         they correctly order all their RTL/LTR contents, but also correctly participate in the
1482         larger RTL/LTR ordering without affecting nearby characters.
1483
1484         Because much of this code is old and rarely touched, I've included extra background
1485         information in hopes of expanding my set of potential reviewers:
1486
1487         WebKit uses the standard "Unicode Bidi Algorithm" henceforth known as the UBA.
1488         The UBA is defined at http://unicode.org/reports/tr9/ for those not faint of heart.
1489
1490         Text layout is done per-block (<div>, <p>, etc), and begins with a string of text
1491         (which in our case comes from the rendering tree) and a specified width.
1492         First:  Text is measured and wrapped into lines.
1493         Second: The UBA is run over the lines of text.
1494         Third:  WebKit builds InlineBoxes (its linebox tree) and eventually render the text.
1495
1496         This patch modifies our UBA to ignore all text content inside "isolated" inlines (treating them as neutral characters)
1497         and then adds another step after running the UBA, where we run the UBA recursively on any
1498         previously identified "isolated" content.
1499
1500         The result of the UBA is an ordered list of "runs" of text with the RTL runs
1501         correctly RTL and the LTR runs LTR.
1502
1503         The UBA does three things:
1504         1.  It assigns a "class" to each character in a text stream (like neutral, strongly-RTL, strongly-LTR, etc.)
1505         2.  Divides the text stream up into "runs" of characters of the same directionality (all RTL, all LTR).
1506         3.  Re-orders those runs.
1507
1508         The UBA in WebKit is implemented by BidiResolver<T> in BidiResolver.h
1509
1510         The InlineBidiResolver (BidiResolver specialization which knows about the rendering tree)
1511         walks along its InlineIterators, looking at each character and running the
1512         Unicode Bidi Algorithm (UBA).  It walks through the rendering tree subtree under
1513         a block, using a (poorly named) bidiNext function which returns the next inline object.
1514         Each inline object (or text character there-in) has a corresponding meaning in the UBA
1515         such as a "strong RTL" character or a "neutral" character.  The UBA reads these sequence
1516         of characters, and figures out what direction (RTL or LTR) to assign to any neutral
1517         characters it encounters, based on surrounding characters.
1518
1519         As the InlineBidiResolver is walking the rendering tree, the InlineIterator::advance()
1520         function calls bidiNext(), which in turn can call notifyObserverEnteredObject/notifyObserverWillExitObject
1521         notifying InlineBidiResolver that it is entering or exiting an "isolated"
1522         span, at which point it will either start or stop ignoring the stream of characters
1523         from the InlineIterator.  When the InlineBidiResolver is ignoring the stream of
1524         characters, instead of creating separate BidiRuns at each RTL/LTR boundary
1525         as it normally would, it instead creates one "fake" run for the entire
1526         isolated span.  These fake runs participate in the normal UBA run ordering process,
1527         but after the main UBA, a second pass is made where we examine
1528         the list of isolatedRuns() and run the UBA on each of them, replacing the fake
1529         run we previously inserted, with the resulting list of runs from that inner UBA run.
1530         The way it "ignores" characters is by treating them all as neutral when inside an isolate.
1531         Thus all the characters end up grouped in a single run, but their directionality (as a group)
1532         is correctly affected by any surrounding strong characters.
1533
1534         If you understood that last paragraph, than the rest of the change is just plumbing.
1535
1536         I added a huge number of FIXMEs to this code, because this code has a variety of
1537         design choices (or lack there of) which make some of this very difficult.
1538
1539         For example the bidiNext iterator function has two sets of mutually exclusive
1540         parameters and can be used optionally with or without an observer.  Prior to this
1541         change there was only ever one object which cared about observing a walk over inlines
1542         and that was InlineBidiResolver.  This patch (regretfully) templatizes bidiNext
1543         to support a new Observer type.  The correct fix would be to rip bidiNext into
1544         multiple functions and rip need for observation out of InlineBidiResolver.
1545         Unfortunately I've tried both in separate bugs and failed.  This code is very very
1546         old and very poorly understood.  We're slowly moving forward, this is another tiny step.
1547
1548         This is my fourth iteration of this patch (I'm happy to do more!), but I believe
1549         it's a good compromise between fixing all of the design gotcha's of our bidi
1550         system and doing the minimum amount to add this killer CSS feature.
1551
1552         I ran the PLT.  (It averaged 0.2% faster with this change, but I attribute that to noise).
1553
1554         Test: css3/unicode-bidi-isolate-basic.html and css3/unicode-bidi-isolate-aharon.html
1555
1556         * platform/text/BidiResolver.h:
1557         (WebCore::BidiCharacterRun::setNext):
1558          - Needed by the new replaceRunWithRuns function.
1559         (WebCore::BidiResolver::BidiResolver):
1560         (WebCore::BidiResolver::~BidiResolver):
1561         (WebCore::BidiResolver::enterIsolate):
1562         (WebCore::BidiResolver::exitIsolate):
1563         (WebCore::BidiResolver::inIsolate):
1564         (WebCore::BidiResolver::isolatedRuns):
1565          - Used to track isolated spans of text as they're encoutered.
1566            They're stuffed away here to be processed recursively
1567            after the main UBA has done its thang.
1568         (WebCore::::appendRun):
1569         (WebCore::::embed):
1570         (WebCore::::commitExplicitEmbedding):
1571         (WebCore::::createBidiRunsForLine):
1572         * platform/text/BidiRunList.h:
1573         (WebCore::::replaceRunWithRuns):
1574          - This effectively takes all the runs from one runlist and adds them to
1575            this one, replacing the fake run we inserted during a previous pass of the UBA.
1576          - This RunList now owns the runs, so we call clear() on the other RunList
1577            so that we don't end up double-freeing the runs.
1578         (WebCore::::clear):
1579          - This allows us to "take" runs from another run list and then clear it.
1580         * rendering/BidiRun.h:
1581         (WebCore::BidiRun::object):
1582         * rendering/InlineIterator.h:
1583         (WebCore::InlineIterator::object):
1584         (WebCore::InlineIterator::offset):
1585         (WebCore::notifyObserverEnteredObject): Mostly just renaming and adding a FIXME about plaintext.
1586         (WebCore::notifyObserverWillExitObject): Mostly just renaming.
1587         (WebCore::addPlaceholderRunForIsolatedInline):
1588         (WebCore::isIsolatedInline):
1589         (WebCore::InlineBidiResolver::appendRun):
1590         * rendering/RenderBlockLineLayout.cpp:
1591         (WebCore::statusWithDirection):
1592         (WebCore::constructBidiRuns):
1593          - This is the heavy-lifting of this change.  This function
1594            runs the UBA recursively on all the previously identified isolated spans.
1595          - If we encounter more isolated spans in our run, we just add them to the
1596            main list an keep going.  Because the runs are linked lists and we have
1597            direct pointers to our placeholder objects, we don't care what order
1598            we process the placeholders in, so long as when we're done, they're all processed.
1599         (WebCore::RenderBlock::layoutInlineChildren):
1600
1601 2011-09-08  Kentaro Hara  <haraken@google.com>
1602
1603         Implement a ProgressEvent constructor for JSC
1604         https://bugs.webkit.org/show_bug.cgi?id=67537
1605
1606         Reviewed by Sam Weinig.
1607
1608         The spec for the ProgressEvent constructor is here:
1609         http://www.w3.org/TR/progress-events/#interface-progressevent
1610
1611         Test: fast/events/constructors/progress-event-constructor.html
1612
1613         * bindings/generic/EventConstructors.h: Added a definition for the ProgressEvent constructor.
1614         * bindings/js/JSDictionary.cpp:
1615         (WebCore::JSDictionary::convertValue): Converts an ECMA-262 Number into an IDL unsigned long long value. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
1616         * bindings/js/JSEventConstructors.cpp: Added #includes for ProgressEvent.
1617         * dom/ProgressEvent.cpp:
1618         (WebCore::ProgressEventInit::ProgressEventInit):
1619         (WebCore::ProgressEvent::ProgressEvent):
1620         * dom/ProgressEvent.h: Added a definition for ProgressEventInit.
1621         (WebCore::ProgressEvent::create):
1622         * dom/ProgressEvent.idl: Makes ProgressEvent constructible.
1623
1624 2011-09-08  Ryosuke Niwa  <rniwa@webkit.org>
1625
1626         Make bindings tests quiet after r94701.
1627
1628         * bindings/scripts/test/JS/JSTestInterface.cpp:
1629         * bindings/scripts/test/JS/JSTestInterface.h:
1630         (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
1631         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1632         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
1633         (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
1634         * bindings/scripts/test/JS/JSTestObj.cpp:
1635         * bindings/scripts/test/JS/JSTestObj.h:
1636         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
1637         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1638         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1639         (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
1640
1641 2011-09-07  Pavel Podivilov  <podivilov@chromium.org>
1642
1643         Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded.
1644         https://bugs.webkit.org/show_bug.cgi?id=67717
1645
1646         Listen to SourceMappingUpdated event instead of using createSourceMappingIfNeeded.
1647
1648         Reviewed by Yury Semikhatsky.
1649
1650         * inspector/front-end/DebuggerPresentationModel.js:
1651         (WebInspector.DebuggerPresentationModel):
1652         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
1653         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
1654         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
1655         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
1656         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
1657         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
1658         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
1659         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
1660         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
1661         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
1662         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
1663         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
1664         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
1665         (WebInspector.PresentationCallFrame.prototype.sourceLine):
1666         * inspector/front-end/SourceFile.js:
1667
1668 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
1669
1670         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
1671         https://bugs.webkit.org/show_bug.cgi?id=67647
1672
1673         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
1674         2) Add RawSourceCode unit tests.
1675         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
1676
1677         Reviewed by Yury Semikhatsky.
1678
1679         Test: inspector/debugger/raw-source-code.html
1680
1681         * inspector/front-end/DebuggerPresentationModel.js:
1682         (WebInspector.DebuggerPresentationModel):
1683         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
1684         (WebInspector.DebuggerPresentationModel.prototype._addScript):
1685         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
1686         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
1687         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
1688         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
1689         * inspector/front-end/ScriptsPanel.js:
1690         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
1691         * inspector/front-end/SourceFile.js:
1692         (WebInspector.RawSourceCode):
1693         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
1694         (WebInspector.RawSourceCode.prototype.setFormatted):
1695         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
1696         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
1697
1698 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
1699
1700         Web Inspector: [REGRESSION] Clear console shortcut Ctrl + L broken
1701         https://bugs.webkit.org/show_bug.cgi?id=67711
1702
1703         Reviewed by Yury Semikhatsky.
1704
1705         * inspector/front-end/ConsoleView.js:
1706         (WebInspector.ConsoleView.prototype._consoleCleared):
1707         (WebInspector.ConsoleView.prototype._registerShortcuts):
1708         (WebInspector.ConsoleView.prototype._promptKeyDown):
1709
1710 2011-09-08  Andras Becsi  <andras.becsi@nokia.com>
1711
1712         [Qt] Build fails with strict compiler
1713         https://bugs.webkit.org/show_bug.cgi?id=67778
1714
1715         Reviewed by Csaba Osztrogonác.
1716
1717         No new tests needed.
1718
1719         * platform/graphics/TiledBackingStore.cpp:
1720         (WebCore::TiledBackingStore::resizeEdgeTiles): Remove unused contentsRect variable
1721         which's usage was removed in r94681 to fix the build with [-Werror=unused-but-set-variable].
1722
1723 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1724
1725         Unreviewed, rolling out r94695.
1726         http://trac.webkit.org/changeset/94695
1727         https://bugs.webkit.org/show_bug.cgi?id=67776
1728
1729         Hitting an assertion on Snow Leopard, Qt, GTK (Requested by
1730         Zoltan on #webkit).
1731
1732         * rendering/RenderBlock.cpp:
1733         (WebCore::RenderBlock::positionedFloatsNeedRelayout):
1734         (WebCore::RenderBlock::layoutPositionedObjects):
1735
1736 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
1737
1738         Unreviewed, strip trailing whitespace in the Web Inspector frontend (*.js and *.css).
1739
1740         * inspector/front-end/ApplicationCacheItemsView.js:
1741         * inspector/front-end/AuditResultView.js:
1742         * inspector/front-end/BinarySearch.js:
1743         * inspector/front-end/CSSStyleModel.js:
1744         * inspector/front-end/ConsoleMessage.js:
1745         * inspector/front-end/ConsoleModel.js:
1746         * inspector/front-end/ConsoleView.js:
1747         * inspector/front-end/CookieItemsView.js:
1748         * inspector/front-end/CookieParser.js:
1749         * inspector/front-end/DOMAgent.js:
1750         * inspector/front-end/DOMStorage.js:
1751         * inspector/front-end/DOMStorageItemsView.js:
1752         * inspector/front-end/DataGrid.js:
1753         * inspector/front-end/Database.js:
1754         * inspector/front-end/DatabaseQueryView.js:
1755         * inspector/front-end/DetailedHeapshotGridNodes.js:
1756         * inspector/front-end/DetailedHeapshotView.js:
1757         * inspector/front-end/ElementsTreeOutline.js:
1758         * inspector/front-end/EmptyView.js:
1759         * inspector/front-end/EventListenersSidebarPane.js:
1760         * inspector/front-end/ExtensionCommon.js:
1761         * inspector/front-end/GoToLineDialog.js:
1762         * inspector/front-end/HeapSnapshot.js:
1763         * inspector/front-end/HeapSnapshotProxy.js:
1764         * inspector/front-end/HeapSnapshotWorkerDispatcher.js:
1765         * inspector/front-end/ImageView.js:
1766         * inspector/front-end/InjectedFakeWorker.js:
1767         * inspector/front-end/InspectorFrontendHostStub.js:
1768         * inspector/front-end/MetricsSidebarPane.js:
1769         * inspector/front-end/NetworkManager.js:
1770         * inspector/front-end/NetworkPanel.js:
1771         * inspector/front-end/ObjectPropertiesSection.js:
1772         * inspector/front-end/PartialQuickSort.js:
1773         * inspector/front-end/ProfileView.js:
1774         * inspector/front-end/ProfilesPanel.js:
1775         * inspector/front-end/RemoteObject.js:
1776         * inspector/front-end/Resource.js:
1777         * inspector/front-end/ResourceCategory.js:
1778         * inspector/front-end/ResourceHTMLView.js:
1779         * inspector/front-end/ResourceHeadersView.js:
1780         * inspector/front-end/ResourceJSONView.js:
1781         * inspector/front-end/ResourceTimingView.js:
1782         * inspector/front-end/ResourceTreeModel.js:
1783         * inspector/front-end/ResourceView.js:
1784         * inspector/front-end/ResourcesPanel.js:
1785         * inspector/front-end/SearchController.js:
1786         * inspector/front-end/SettingsScreen.js:
1787         * inspector/front-end/ShortcutsScreen.js:
1788         * inspector/front-end/SourceCSSTokenizer.js:
1789         * inspector/front-end/SourceHTMLTokenizer.js:
1790         * inspector/front-end/SourceJavaScriptTokenizer.js:
1791         * inspector/front-end/StatusBarButton.js:
1792         * inspector/front-end/TextEditorModel.js:
1793         * inspector/front-end/TimelineGrid.js:
1794         * inspector/front-end/View.js:
1795         * inspector/front-end/heapProfiler.css:
1796         * inspector/front-end/inspector.css:
1797         * inspector/front-end/inspector.js:
1798         * inspector/front-end/inspectorSyntaxHighlight.css:
1799         * inspector/front-end/networkPanel.css:
1800         * inspector/front-end/treeoutline.js:
1801         * inspector/front-end/utilities.js:
1802
1803 2011-09-07  Andrey Kosyakov  <caseq@chromium.org>
1804
1805         Web Inspector: trying to scroll mouse wheel when in TextViewer's gutter pane causes EventException::DISPATCH_REQUEST_ERR
1806         https://bugs.webkit.org/show_bug.cgi?id=67715
1807
1808         Reviewed by Yury Semikhatsky.
1809
1810         - avoid exception on attempt to dispatch an event that is being dispatched by cloning the event.
1811
1812         * inspector/front-end/TextViewer.js:
1813         (WebInspector.TextViewer.forwardWheelEvent):
1814         (WebInspector.TextViewer):
1815
1816 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1817
1818         Unreviewed, rolling out r94674 and r94689.
1819         http://trac.webkit.org/changeset/94674
1820         http://trac.webkit.org/changeset/94689
1821         https://bugs.webkit.org/show_bug.cgi?id=67754
1822
1823         Broke inspector/debugger/script-formatter.html (Requested by
1824         rniwa on #webkit).
1825
1826         * inspector/front-end/DebuggerPresentationModel.js:
1827         (WebInspector.DebuggerPresentationModel):
1828         (WebInspector.DebuggerPresentationModel.prototype.addSourceMappingListener):
1829         (WebInspector.DebuggerPresentationModel.prototype.removeSourceMappingListener):
1830         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
1831         (WebInspector.DebuggerPresentationModel.prototype._addScript):
1832         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
1833         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
1834         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
1835         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
1836         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
1837         * inspector/front-end/ScriptsPanel.js:
1838         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
1839         * inspector/front-end/SourceFile.js:
1840         (WebInspector.RawSourceCode):
1841         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
1842         (WebInspector.RawSourceCode.prototype.get rawSourceCode):
1843         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
1844         (WebInspector.RawSourceCode.prototype.requestContent):
1845         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
1846
1847 2011-09-07  Julien Chaffraix  <jchaffraix@webkit.org>
1848
1849         offsetFromRoot optimization is disabled after r93837
1850         https://bugs.webkit.org/show_bug.cgi?id=67677
1851
1852         Reviewed by Simon Fraser.
1853
1854         Unfortunately not covered by any test as it does not change updateLayerPosition complexity (it is still O(n^2)
1855         because of clippedOverflowRectForRepaint). However it is a noticeable slowdown on some use cases but we don't
1856         have a good test harness to cover such slowdown.
1857
1858         * rendering/RenderLayer.cpp:
1859         (WebCore::RenderLayer::updateLayerPositions): Pass offsetFromRoot as not doing so means that we miss
1860         the optimization altogether.
1861
1862         (WebCore::RenderLayer::computeRepaintRects):
1863         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
1864         * rendering/RenderLayer.h:
1865         Renamed |cachedOffset| to |offsetFromRoot| to be consistent with our latest renaming.
1866
1867 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
1868
1869         Windows build fix after r94737.
1870
1871         * rendering/RenderBlock.cpp:
1872         (WebCore::RenderBlock::adjustRectForColumns):
1873
1874 2011-09-07  Dan Bernstein  <mitz@apple.com>
1875
1876         Removed hyphenation function implementations for an usupported build configuration.
1877
1878         Reviewed by Sam Weinig.
1879
1880         * platform/text/cf/HyphenationCF.cpp:
1881
1882 2011-09-07  David Hyatt  <hyatt@apple.com>
1883
1884         https://bugs.webkit.org/show_bug.cgi?id=67739
1885
1886         adjustRectForColumns is O(# of columns) when it can be O(1). Fix the slow performance of this
1887         function by removing the loop and just computing the start and end column for a repaint rect
1888         and uniting everything in between.
1889
1890         Reviewed by Dan Bernstein.
1891
1892         * rendering/RenderBlock.cpp:
1893         (WebCore::RenderBlock::adjustRectForColumns):
1894
1895 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1896
1897         Unreviewed, rolling out r94714 and r94723.
1898         http://trac.webkit.org/changeset/94714
1899         http://trac.webkit.org/changeset/94723
1900         https://bugs.webkit.org/show_bug.cgi?id=67746
1901
1902         breaks gtk-linux tests with assertion failure (Requested by
1903         thorton on #webkit).
1904
1905         * platform/graphics/GraphicsContext.cpp:
1906         (WebCore::GraphicsContext::GraphicsContext):
1907         (WebCore::GraphicsContext::~GraphicsContext):
1908         * platform/graphics/GraphicsContext.h:
1909         (WebCore::GraphicsContext::inTransparencyLayer):
1910         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1911         (WebCore::GraphicsContext::beginTransparencyLayer):
1912         (WebCore::GraphicsContext::endTransparencyLayer):
1913         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
1914         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
1915         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
1916         * platform/graphics/cg/GraphicsContextCG.cpp:
1917         (WebCore::GraphicsContext::beginTransparencyLayer):
1918         (WebCore::GraphicsContext::endTransparencyLayer):
1919         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
1920         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1921         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
1922         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
1923         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
1924         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1925         (WebCore::GraphicsContext::beginTransparencyLayer):
1926         (WebCore::GraphicsContext::endTransparencyLayer):
1927         * platform/graphics/mac/FontMac.mm:
1928         (WebCore::Font::drawGlyphs):
1929         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
1930         (WebCore::GraphicsContext::beginTransparencyLayer):
1931         (WebCore::GraphicsContext::endTransparencyLayer):
1932         * platform/graphics/qt/GraphicsContextQt.cpp:
1933         (WebCore::GraphicsContext::inTransparencyLayer):
1934         (WebCore::GraphicsContext::beginTransparencyLayer):
1935         (WebCore::GraphicsContext::endTransparencyLayer):
1936         * platform/graphics/skia/GraphicsContextSkia.cpp:
1937         (WebCore::GraphicsContext::beginTransparencyLayer):
1938         (WebCore::GraphicsContext::endTransparencyLayer):
1939         * platform/graphics/win/FontCGWin.cpp:
1940         (WebCore::drawGDIGlyphs):
1941         * platform/graphics/win/GraphicsContextCGWin.cpp:
1942         (WebCore::GraphicsContext::releaseWindowsContext):
1943         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1944         (WebCore::GraphicsContext::releaseWindowsContext):
1945         * platform/graphics/win/GraphicsContextWin.cpp:
1946         (WebCore::GraphicsContext::inTransparencyLayer):
1947         (WebCore::GraphicsContext::getWindowsContext):
1948         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1949         (WebCore::GraphicsContext::beginTransparencyLayer):
1950         (WebCore::GraphicsContext::endTransparencyLayer):
1951         * platform/graphics/wx/GraphicsContextWx.cpp:
1952         (WebCore::GraphicsContext::beginTransparencyLayer):
1953         (WebCore::GraphicsContext::endTransparencyLayer):
1954         * platform/win/ScrollbarThemeWin.cpp:
1955         (WebCore::ScrollbarThemeWin::paintTrackPiece):
1956         (WebCore::ScrollbarThemeWin::paintButton):
1957         (WebCore::ScrollbarThemeWin::paintThumb):
1958         * plugins/win/PluginViewWin.cpp:
1959         (WebCore::PluginView::paint):
1960         * rendering/RenderThemeWin.cpp:
1961         (WebCore::drawControl):
1962
1963 2011-09-07  Chris Fleizach  <cfleizach@apple.com>
1964
1965         Changes to aria-hidden don't change VO navigation
1966         https://bugs.webkit.org/show_bug.cgi?id=67722
1967
1968         Reviewed by Darin Adler.
1969
1970         When altering aria-hidden, WebCore needs to update the children caches of 
1971         affected elements. However, for elements that were children, but ignored, their
1972         caches did not get updated, and stale information would be propagated.
1973
1974         The fix is to always clearChildren() when a parent is asking for children. This 
1975         ensures information is always up to date when the parent itself is asking for new data.
1976
1977         Test: accessibility/aria-hidden-updates-alldescendants.html
1978
1979         * accessibility/AccessibilityObject.h:
1980         * accessibility/AccessibilityRenderObject.cpp:
1981         (WebCore::AccessibilityRenderObject::ariaIsHidden):
1982         (WebCore::AccessibilityRenderObject::childrenChanged):
1983         (WebCore::AccessibilityRenderObject::addChildren):
1984
1985 2011-09-07  Tim Horton  <timothy_horton@apple.com>
1986
1987         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
1988         https://bugs.webkit.org/show_bug.cgi?id=67543
1989         <rdar://problem/10070536>
1990
1991         Reviewed by Simon Fraser.
1992
1993         Generalize (begin|end)TransparencyLayer, which now forward
1994         through to (begin|end)PlatformTransparencyLayer, so that
1995         isInTransparencyLayer can exist on every platform.
1996
1997         Make use of isInTransparencyLayer in FontMac to disable
1998         "simple" shadow drawing when the text is being rendered
1999         into a transparency layer.
2000
2001         Test: svg/custom/simple-text-double-shadow.svg
2002
2003         * platform/graphics/GraphicsContext.cpp:
2004         (WebCore::GraphicsContext::GraphicsContext):
2005         (WebCore::GraphicsContext::~GraphicsContext):
2006         (WebCore::GraphicsContext::beginTransparencyLayer):
2007         (WebCore::GraphicsContext::endTransparencyLayer):
2008         (WebCore::GraphicsContext::isInTransparencyLayer):
2009         * platform/graphics/GraphicsContext.h:
2010         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2011         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2012         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2013         (WebCore::GraphicsContext::supportsTransparencyLayers):
2014         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2015         * platform/graphics/cg/GraphicsContextCG.cpp:
2016         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2017         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2018         (WebCore::GraphicsContext::supportsTransparencyLayers):
2019         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
2020         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2021         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
2022         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2023         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2024         (WebCore::GraphicsContext::supportsTransparencyLayers):
2025         * platform/graphics/mac/FontMac.mm:
2026         (WebCore::Font::drawGlyphs):
2027         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
2028         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2029         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2030         (WebCore::GraphicsContext::supportsTransparencyLayers):
2031         * platform/graphics/qt/GraphicsContextQt.cpp:
2032         (WebCore::GraphicsContext::isInTransparencyLayer):
2033         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2034         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2035         (WebCore::GraphicsContext::supportsTransparencyLayers):
2036         * platform/graphics/skia/GraphicsContextSkia.cpp:
2037         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2038         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2039         (WebCore::GraphicsContext::supportsTransparencyLayers):
2040         * platform/graphics/win/FontCGWin.cpp:
2041         (WebCore::drawGDIGlyphs):
2042         * platform/graphics/win/GraphicsContextCGWin.cpp:
2043         (WebCore::GraphicsContext::releaseWindowsContext):
2044         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2045         (WebCore::GraphicsContext::releaseWindowsContext):
2046         * platform/graphics/win/GraphicsContextWin.cpp:
2047         (WebCore::GraphicsContext::getWindowsContext):
2048         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2049         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2050         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2051         (WebCore::GraphicsContext::supportsTransparencyLayers):
2052         * platform/graphics/wx/GraphicsContextWx.cpp:
2053         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2054         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2055         (WebCore::GraphicsContext::supportsTransparencyLayers):
2056         * platform/win/ScrollbarThemeWin.cpp:
2057         * plugins/win/PluginViewWin.cpp:
2058         * rendering/RenderThemeWin.cpp:
2059
2060 2011-09-07  Dan Bernstein  <mitz@apple.com>
2061
2062         <rdar://problem/8881922> Support the hyphenate-limit-lines property
2063         https://bugs.webkit.org/show_bug.cgi?id=67730
2064
2065         Reviewed by Dave Hyatt.
2066
2067         Tests: fast/css/parsing-hyphenate-limit-lines.html
2068                fast/text/hyphenate-limit-lines.html
2069
2070         * css/CSSComputedStyleDeclaration.cpp:
2071         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added hyphenate-limit-lines.
2072         * css/CSSParser.cpp:
2073         (WebCore::CSSParser::parseValue): Ditto. Valid values are non-negative integers and the keyword
2074         "no-limit".
2075         * css/CSSPropertyNames.in: Added -webkit-hyphenate-limit-lines.
2076         * css/CSSStyleSelector.cpp:
2077         (WebCore::CSSStyleSelector::applyProperty): Added hyphenate-limit-lines.
2078         * css/CSSValueKeywords.in: Added the "no-limit" value keyword.
2079         * rendering/RenderBlock.h:
2080         * rendering/RenderBlockLineLayout.cpp:
2081         (WebCore::RenderBlock::layoutRunsAndFloats): Count the number of consecutive hyphenated lines
2082         before the start line and pass it to layoutRunsAndFloatsInRange().
2083         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Keep track of the number of consecutive
2084         hyphenated lines before the current line and pass it to LineBreaker::nextLineBreak().
2085         (WebCore::tryHyphenating): Added parameters for the number of consecutive hyphenated lines before
2086         the current line and the limit on consecutive hyphenated lines, and an early return if the limit
2087         has been reached.
2088         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Added a parameter for the number of consecutive
2089         hyphenated lines before the current line, which is passed through to tryHyphenating, along with
2090         the value of hyphenate-limit-lines.
2091         * rendering/RootInlineBox.cpp:
2092         (WebCore::RootInlineBox::isHyphenated): Added. Returns true if the line was hyphenated.
2093         * rendering/RootInlineBox.h:
2094         * rendering/style/RenderStyle.h:
2095         (WebCore::InheritedFlags::hyphenationLimitLines): Added this getter.
2096         (WebCore::InheritedFlags::setHyphenationLimitLines): Added this setter.
2097         (WebCore::InheritedFlags::initialHyphenationLimitLines): Added. The initial value is -1,
2098         corresponding to "no-limit".
2099         * rendering/style/StyleRareInheritedData.cpp:
2100         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Initialize new member variable.
2101         (WebCore::StyleRareInheritedData::operator==): Compare new member variable.
2102         * rendering/style/StyleRareInheritedData.h:
2103
2104 2011-09-02  Ojan Vafai  <ojan@chromium.org>
2105
2106         split overrideSize into overrideHeight and overrideWidth
2107         https://bugs.webkit.org/show_bug.cgi?id=67550
2108
2109         Reviewed by Sam Weinig.
2110
2111         All uses of overrideSize only set one of the width or the height.
2112         This change removes a bool from RenderObject and removes some
2113         flexbox specific logic from RenderBox.
2114
2115         The only downside is that we have two global maps where we used
2116         to have one.
2117
2118         No functional changes so existing tests are sufficient.
2119
2120         * rendering/RenderBox.cpp:
2121         (WebCore::RenderBox::hasOverrideHeight):
2122         (WebCore::RenderBox::hasOverrideWidth):
2123         (WebCore::RenderBox::setOverrideHeight):
2124         (WebCore::RenderBox::setOverrideWidth):
2125         (WebCore::RenderBox::clearOverrideSize):
2126         (WebCore::RenderBox::overrideWidth):
2127         (WebCore::RenderBox::overrideHeight):
2128         (WebCore::RenderBox::computeLogicalWidth):
2129         (WebCore::RenderBox::computeLogicalHeight):
2130         (WebCore::RenderBox::computePercentageLogicalHeight):
2131         * rendering/RenderBox.h:
2132         * rendering/RenderDeprecatedFlexibleBox.cpp:
2133         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2134         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2135         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
2136         * rendering/RenderFlexibleBox.cpp:
2137         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenHorizontal):
2138         * rendering/RenderObject.cpp:
2139         (WebCore::RenderObject::RenderObject):
2140         * rendering/RenderObject.h:
2141         * rendering/RenderTableCell.cpp:
2142         (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
2143         * rendering/RenderTableCell.h:
2144         * rendering/RenderTableSection.cpp:
2145         (WebCore::RenderTableSection::calcRowLogicalHeight):
2146         (WebCore::RenderTableSection::layoutRows):
2147
2148 2011-09-07  Alexei Svitkine  <asvitkine@chromium.org>
2149
2150         Add test infrastructure to test rubber-banding overhang drawing along with layout tests for existing Chromium Mac overhang drawing in the non-gpu path.
2151         https://bugs.webkit.org/show_bug.cgi?id=67511
2152
2153         Reviewed by Dimitri Glazkov.
2154
2155         Tests: platform/chromium-mac/rubberbanding/overhang-e.html
2156                platform/chromium-mac/rubberbanding/overhang-n.html
2157                platform/chromium-mac/rubberbanding/overhang-ne.html
2158                platform/chromium-mac/rubberbanding/overhang-nw.html
2159                platform/chromium-mac/rubberbanding/overhang-s.html
2160                platform/chromium-mac/rubberbanding/overhang-se.html
2161                platform/chromium-mac/rubberbanding/overhang-sw.html
2162                platform/chromium-mac/rubberbanding/overhang-w.html
2163
2164         * WebCore.exp.in:
2165         * platform/ScrollableArea.h:
2166         * testing/Internals.cpp:
2167         (WebCore::Internals::setScrollViewPosition):
2168         * testing/Internals.h:
2169         * testing/Internals.idl:
2170
2171 2011-09-07  David Reveman  <reveman@chromium.org>
2172
2173         [Chromium] Render surface anti-aliasing.
2174         https://bugs.webkit.org/show_bug.cgi?id=66437
2175
2176         Reviewed by James Robinson.
2177
2178         Add CCLayerQuad class and CCLayerQuad::Edge subclass to allow
2179         edge computations to be shared between tiled layers and render
2180         surfaces. Move isCCW utility function to FloatQuad class and
2181         add to2dTransform method to TransformationMatrix class. Add
2182         necessary anti-aliasing shaders for render surfaces and use them
2183         to avoid aliased edges.
2184
2185         Tests: compositing/reflections/nested-reflection-transformed.html (existing)
2186
2187         * WebCore.gypi:
2188         * platform/graphics/FloatQuad.cpp:
2189         (WebCore::FloatQuad::isCounterclockwise):
2190         * platform/graphics/FloatQuad.h:
2191         * platform/graphics/chromium/LayerChromium.cpp:
2192         (WebCore::LayerChromium::drawTexturedQuad):
2193         * platform/graphics/chromium/LayerChromium.h:
2194         * platform/graphics/chromium/LayerRendererChromium.cpp:
2195         (WebCore::LayerRendererChromium::LayerRendererChromium):
2196         (WebCore::LayerRendererChromium::headsUpDisplayProgram):
2197         (WebCore::LayerRendererChromium::renderSurfaceProgram):
2198         (WebCore::LayerRendererChromium::renderSurfaceProgramAA):
2199         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
2200         (WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
2201         (WebCore::LayerRendererChromium::tilerProgramSwizzle):
2202         (WebCore::LayerRendererChromium::canvasLayerProgram):
2203         (WebCore::LayerRendererChromium::pluginLayerProgram):
2204         (WebCore::LayerRendererChromium::videoLayerRGBAProgram):
2205         (WebCore::LayerRendererChromium::videoLayerYUVProgram):
2206         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2207         * platform/graphics/chromium/LayerRendererChromium.h:
2208         (WebCore::LayerRendererChromium::sharedGeometryQuad):
2209         * platform/graphics/chromium/ShaderChromium.cpp:
2210         (WebCore::VertexShaderQuad::VertexShaderQuad):
2211         (WebCore::VertexShaderQuad::init):
2212         (WebCore::VertexShaderQuad::getShaderString):
2213         (WebCore::FragmentShaderRGBATexAlphaAA::FragmentShaderRGBATexAlphaAA):
2214         (WebCore::FragmentShaderRGBATexAlphaAA::init):
2215         (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
2216         (WebCore::FragmentTexClampAlphaAABinding::FragmentTexClampAlphaAABinding):
2217         (WebCore::FragmentTexClampAlphaAABinding::init):
2218         (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
2219         (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
2220         (WebCore::FragmentShaderRGBATexAlphaMaskAA::FragmentShaderRGBATexAlphaMaskAA):
2221         (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
2222         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
2223         * platform/graphics/chromium/ShaderChromium.h:
2224         (WebCore::VertexShaderQuad::matrixLocation):
2225         (WebCore::VertexShaderQuad::pointLocation):
2226         (WebCore::FragmentShaderRGBATexAlphaAA::alphaLocation):
2227         (WebCore::FragmentShaderRGBATexAlphaAA::samplerLocation):
2228         (WebCore::FragmentShaderRGBATexAlphaAA::edgeLocation):
2229         (WebCore::FragmentShaderRGBATexAlphaMaskAA::alphaLocation):
2230         (WebCore::FragmentShaderRGBATexAlphaMaskAA::samplerLocation):
2231         (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskSamplerLocation):
2232         (WebCore::FragmentShaderRGBATexAlphaMaskAA::edgeLocation):
2233         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2234         (WebCore::CCCanvasLayerImpl::draw):
2235         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2236         (WebCore::CCHeadsUpDisplay::draw):
2237         * platform/graphics/chromium/cc/CCLayerQuad.cpp: Added.
2238         (WebCore::CCLayerQuad::Edge::Edge):
2239         (WebCore::CCLayerQuad::CCLayerQuad):
2240         (WebCore::CCLayerQuad::floatQuad):
2241         (WebCore::CCLayerQuad::toFloatArray):
2242         * platform/graphics/chromium/cc/CCLayerQuad.h: Added.
2243         (WebCore::CCLayerQuad::Edge::Edge):
2244         (WebCore::CCLayerQuad::Edge::x):
2245         (WebCore::CCLayerQuad::Edge::y):
2246         (WebCore::CCLayerQuad::Edge::z):
2247         (WebCore::CCLayerQuad::Edge::setX):
2248         (WebCore::CCLayerQuad::Edge::setY):
2249         (WebCore::CCLayerQuad::Edge::setZ):
2250         (WebCore::CCLayerQuad::Edge::set):
2251         (WebCore::CCLayerQuad::Edge::moveX):
2252         (WebCore::CCLayerQuad::Edge::moveY):
2253         (WebCore::CCLayerQuad::Edge::moveZ):
2254         (WebCore::CCLayerQuad::Edge::move):
2255         (WebCore::CCLayerQuad::Edge::scaleX):
2256         (WebCore::CCLayerQuad::Edge::scaleY):
2257         (WebCore::CCLayerQuad::Edge::scaleZ):
2258         (WebCore::CCLayerQuad::Edge::scale):
2259         (WebCore::CCLayerQuad::Edge::intersect):
2260         (WebCore::CCLayerQuad::CCLayerQuad):
2261         (WebCore::CCLayerQuad::left):
2262         (WebCore::CCLayerQuad::top):
2263         (WebCore::CCLayerQuad::right):
2264         (WebCore::CCLayerQuad::bottom):
2265         (WebCore::CCLayerQuad::inflateX):
2266         (WebCore::CCLayerQuad::inflateY):
2267         (WebCore::CCLayerQuad::inflate):
2268         (WebCore::CCLayerQuad::inflateAntiAliasingDistance):
2269         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2270         (WebCore::CCPluginLayerImpl::draw):
2271         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2272         (WebCore::CCRenderSurface::draw):
2273         (WebCore::CCRenderSurface::drawLayer):
2274         (WebCore::CCRenderSurface::drawSurface):
2275         * platform/graphics/chromium/cc/CCRenderSurface.h:
2276         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2277         (WebCore::CCTiledLayerImpl::draw):
2278         (WebCore::CCTiledLayerImpl::drawTiles):
2279         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2280         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2281         (WebCore::CCVideoLayerImpl::drawYUV):
2282         (WebCore::CCVideoLayerImpl::drawRGBA):
2283         * platform/graphics/transforms/TransformationMatrix.cpp:
2284         (WebCore::TransformationMatrix::to2dTransform):
2285         * platform/graphics/transforms/TransformationMatrix.h:
2286
2287 2011-09-06  Oliver Hunt  <oliver@apple.com>
2288
2289         Remove JSObjectWithGlobalObject
2290         https://bugs.webkit.org/show_bug.cgi?id=67689
2291
2292         Reviewed by Geoff Garen.
2293
2294         Remove use of anonymous storage and JSObjectWithGlobalObject for
2295         accessing a JSObject's global object now that they're available
2296         on the object's structure.
2297
2298         * bindings/js/JSDOMWindowShell.cpp:
2299         (WebCore::JSDOMWindowShell::setWindow):
2300         * bindings/js/JSDOMWrapper.h:
2301         (WebCore::JSDOMWrapper::globalObject):
2302         (WebCore::JSDOMWrapper::JSDOMWrapper):
2303         * bindings/js/WorkerScriptController.cpp:
2304         (WebCore::WorkerScriptController::initScript):
2305         * bindings/scripts/CodeGeneratorJS.pm:
2306         (GenerateHeader):
2307         (GenerateImplementation):
2308         * bridge/objc/objc_runtime.h:
2309         * bridge/objc/objc_runtime.mm:
2310         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2311         (JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
2312         * bridge/runtime_object.cpp:
2313         (JSC::Bindings::RuntimeObject::RuntimeObject):
2314         (JSC::Bindings::RuntimeObject::finishCreation):
2315         * bridge/runtime_object.h:
2316
2317 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2318
2319         Mac build fix after r94694.
2320
2321         * WebCore.xcodeproj/project.pbxproj:
2322
2323 2011-09-07  Tim Horton  <timothy_horton@apple.com>
2324
2325         FELighting is using width instead of height to determine skip for parallel(n>2) case
2326         https://bugs.webkit.org/show_bug.cgi?id=67719
2327         <rdar://problem/10086178>
2328
2329         Reviewed by Dirk Schulze.
2330
2331         No new tests, because the bug only exhibits under conditions which are currently
2332         impossible by default (using more than 2 cores) on some platforms.
2333
2334         * platform/graphics/filters/FELighting.cpp:
2335         (WebCore::FELighting::platformApplyGeneric):
2336
2337 2011-09-07  W. James MacLean  <wjmaclean@chromium.org>
2338
2339         Eliminate motion jitter in animated, blurred SVG image
2340         https://bugs.webkit.org/show_bug.cgi?id=67503
2341
2342         Fixes filter shear-free transform applied to SVG images.
2343
2344         In applyResource() the shearFreeAbsoluteTransform is applied to the drawing region,
2345         which is based on the object bounding box (which doesn't move). For a rotation
2346         around the centre of the box, this should really just be the identity matrix,
2347         since the BB should neither change size nor location. So really, we're just interested
2348         in the scale change of the BB here, and not in moving it.
2349
2350         This impacts how slices are extracted, and affects the {x|y}Mid and {x|y}Max extractions
2351         for vertical and horizontal slices, so the test verifies these.
2352
2353         Reviewed by Dirk Schulze.
2354
2355         Test: svg/W3C-SVG-1.1-SE/filters-image-05-f.svg
2356
2357         * rendering/svg/RenderSVGResourceFilter.cpp:
2358         (WebCore::RenderSVGResourceFilter::applyResource):
2359
2360 2011-09-03  Robert Hogan  <robert@webkit.org>
2361
2362         Elements with position:absolute don't move to correct position after images load
2363         https://bugs.webkit.org/show_bug.cgi?id=54611
2364
2365         Reviewed by Simon Fraser.
2366
2367         Test: fast/block/positioning/absolute-layout-after-image-load.html
2368               fast/block/positioning/positioned-float-layout-after-image-load.html
2369
2370         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
2371         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
2372         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
2373         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. Do the same
2374         for positioned floats in RenderBlock::positionedFloatsNeedRelayout(), although currently layoutPositionedObjects()
2375         takes care of it this at least ensures no regression in future.
2376
2377         Note: Although the issue is encountered only on first load without a fragment identifier, it 
2378         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
2379         because scrolling to the fragment always happens before the image has loaded, rendering the page 
2380         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
2381         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
2382         re-rendered.
2383
2384         * rendering/RenderBlock.cpp:
2385         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
2386                                                          deciding whether to mark children for layout
2387         (WebCore::RenderBlock::positionedFloatsNeedRelayout): ditto
2388
2389 2011-09-07  Anna Cavender  <annacc@chromium.org>
2390
2391         Moving platform/track to html/track to avoid layering violation.
2392         https://bugs.webkit.org/show_bug.cgi?id=67680
2393
2394         Reviewed by Adam Barth.
2395
2396         No new tests. No new functionality.
2397
2398         * CMakeLists.txt:
2399         * GNUmakefile.am:
2400         * GNUmakefile.list.am:
2401         * WebCore.gyp/WebCore.gyp:
2402         * WebCore.gypi:
2403         * WebCore.pri:
2404         * WebCore.pro:
2405         * html/track/CueParser.cpp: Renamed from Source/WebCore/platform/track/CueParser.cpp.
2406         * html/track/CueParser.h: Renamed from Source/WebCore/platform/track/CueParser.h.
2407         * html/track/CueParserPrivate.h: Renamed from Source/WebCore/platform/track/CueParserPrivate.h.
2408         * html/track/WebVTTParser.cpp: Renamed from Source/WebCore/platform/track/WebVTTParser.cpp.
2409         * html/track/WebVTTParser.h: Renamed from Source/WebCore/platform/track/WebVTTParser.h.
2410         * html/track/WebVTTToken.h: Renamed from Source/WebCore/platform/track/WebVTTToken.h.
2411         * html/track/WebVTTTokenizer.cpp: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.cpp.
2412         * html/track/WebVTTTokenizer.h: Renamed from Source/WebCore/platform/track/WebVTTTokenizer.h.
2413
2414 2011-09-07  David Hyatt  <hyatt@apple.com>
2415
2416         https://bugs.webkit.org/show_bug.cgi?id=67286
2417
2418         REGRESSION: css2.1/t090204-display-change-01-b-ao.html fails after r94084.
2419
2420         Make sure that the trailing floats line box explicitly sets the line top with leading and line bottom with
2421         leading to just be the block height.
2422
2423         Reviewed by Dan Bernstein.
2424
2425         * rendering/RenderBlockLineLayout.cpp:
2426         (WebCore::RenderBlock::linkToEndLineIfNeeded):
2427
2428 2011-09-06  Abhishek Arya  <inferno@chromium.org>
2429
2430         Null owningRenderer crash in RenderScrollbar::updateScrollbarParts.
2431         https://bugs.webkit.org/show_bug.cgi?id=67669
2432
2433         Reviewed by James Robinson.
2434
2435         Owning renderer can be cleared for custom scrollbars in clearOwningRenderer()
2436         call. We need a null check in updateScrollbarParts, so that we do not crash.
2437
2438         No tests since issue seen in crash reports only and I donot know a way to
2439         reproduce.
2440
2441         * rendering/RenderScrollbar.cpp:
2442         (WebCore::RenderScrollbar::updateScrollbarParts):
2443
2444 2011-09-05  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2445
2446         [Qt][WK2] Make TiledDrawingArea request tiles only in the direction the viewport is panned to.
2447         https://bugs.webkit.org/show_bug.cgi?id=67606
2448
2449         Reviewed by Noam Rosenthal.
2450
2451         TiledBackingStore previously used different values for horizontal and vertial multiplication
2452         to calculate the cover area.
2453         This patch replaces this mechanism, used to give a bigger panning range to vertical panning,
2454         with the possibility to use the motion vector of the viewport to request tiles ahead instead.
2455         This allows economies on rendering resources as tiles won't be rendered beside the trajectory
2456         of the viewport.
2457
2458         * platform/graphics/TiledBackingStore.cpp:
2459         (WebCore::TiledBackingStore::TiledBackingStore):
2460         (WebCore::TiledBackingStore::setKeepAndCoverAreaMultipliers):
2461         (WebCore::TiledBackingStore::setCoverAreaFocusVector):
2462         (WebCore::TiledBackingStore::createTiles):
2463         (WebCore::TiledBackingStore::calculateKeepRect):
2464         (WebCore::TiledBackingStore::calculateCoverRect):
2465         * platform/graphics/TiledBackingStore.h:
2466         (WebCore::TiledBackingStore::getKeepAndCoverAreaMultipliers):
2467
2468 2011-09-01  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2469
2470         [Qt] TiledBackingStore: Import the resizeEdgeTiles logic from TiledDrawindAreaProxy.
2471         https://bugs.webkit.org/show_bug.cgi?id=67416
2472
2473         Reviewed by Kenneth Rohde Christiansen.
2474
2475         Original code by Antti Koivisto.
2476         With the current code, when the page is layouted during load, edge tiles will
2477         get removed instead of continuing to show their front buffer while the tile
2478         is being rendered for the new size.
2479
2480         * platform/graphics/Tile.h:
2481         * platform/graphics/TiledBackingStore.cpp:
2482         (WebCore::TiledBackingStore::createTiles):
2483         (WebCore::TiledBackingStore::resizeEdgeTiles):
2484         * platform/graphics/TiledBackingStore.h:
2485         * platform/graphics/qt/TileQt.cpp:
2486         (WebCore::TileQt::resize):
2487         * platform/graphics/qt/TileQt.h:
2488
2489 2011-09-07  Tim Horton  <timothy_horton@apple.com>
2490
2491         Don't round-trip through TransformationMatrix in SVGImageBufferTools::clearAffineTransform2DRotation
2492         https://bugs.webkit.org/show_bug.cgi?id=67242
2493         <rdar://problem/10069770>
2494
2495         Reviewed by Dirk Schulze.
2496
2497         No new tests, minor performance improvement.
2498
2499         * platform/graphics/transforms/AffineTransform.cpp:
2500         (WebCore::AffineTransform::blend):
2501         (WebCore::AffineTransform::decompose):
2502         (WebCore::AffineTransform::recompose):
2503         * platform/graphics/transforms/AffineTransform.h:
2504         * rendering/svg/SVGImageBufferTools.cpp:
2505         (WebCore::SVGImageBufferTools::clear2DRotation):
2506
2507 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
2508
2509         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
2510         https://bugs.webkit.org/show_bug.cgi?id=67647
2511
2512         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
2513         2) Add RawSourceCode unit tests.
2514         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
2515
2516         Reviewed by Yury Semikhatsky.
2517
2518         Test: inspector/debugger/raw-source-code.html
2519
2520         * inspector/front-end/DebuggerPresentationModel.js:
2521         (WebInspector.DebuggerPresentationModel):
2522         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2523         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2524         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
2525         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
2526         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
2527         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2528         * inspector/front-end/ScriptsPanel.js:
2529         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2530         * inspector/front-end/SourceFile.js:
2531         (WebInspector.RawSourceCode):
2532         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
2533         (WebInspector.RawSourceCode.prototype.setFormatted):
2534         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2535         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2536
2537 2011-09-07  Alexander Pavlov  <apavlov@chromium.org>
2538
2539         Web Inspector: Implement circular tabbing through the Styles sidebar pane contents
2540         https://bugs.webkit.org/show_bug.cgi?id=67127
2541
2542         Reviewed by Yury Semikhatsky.
2543
2544         * inspector/front-end/Section.js:
2545         (WebInspector.Section.prototype.get firstSibling):
2546         (WebInspector.Section.prototype.get lastSibling):
2547         * inspector/front-end/StylesSidebarPane.js:
2548         (WebInspector.StylePropertiesSection.prototype.nextEditableSibling):
2549         (WebInspector.StylePropertiesSection.prototype.previousEditableSibling):
2550         (WebInspector.StylePropertiesSection.prototype.startEditingSelector):
2551         (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
2552         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
2553         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
2554         (WebInspector.StylePropertyTreeElement.prototype):
2555         (WebInspector.StylePropertyTreeElement.prototype.element.userInput.previousContent.context.moveDirection):
2556
2557 2011-09-02  Andrey Kosyakov  <caseq@chromium.org>
2558
2559         Web Inspector: [Extensions API] expose console API
2560         https://bugs.webkit.org/show_bug.cgi?id=67506
2561
2562         Reviewed by Pavel Feldman.
2563
2564         Test: inspector/extensions/extensions-console.html
2565
2566         * inspector/front-end/ConsoleMessage.js:
2567         (WebInspector.ConsoleMessage.prototype.get text):
2568         (WebInspector.ConsoleMessage.prototype.get parameters):
2569         * inspector/front-end/ExtensionAPI.js:
2570         (WebInspector.injectedExtensionAPI.InspectorExtensionAPI):
2571         (WebInspector.injectedExtensionAPI):
2572         (WebInspector.injectedExtensionAPI.Console.prototype.getMessages):
2573         (WebInspector.injectedExtensionAPI.Console.prototype.addMessage):
2574         (WebInspector.injectedExtensionAPI.Console.prototype.get MessageLevel):
2575         (WebInspector.injectedExtensionAPI.Network.dispatchRequestEvent):
2576         (WebInspector.injectedExtensionAPI.Network):
2577         (WebInspector.injectedExtensionAPI.AuditCategoryImpl.dispatchAuditEvent):
2578         (WebInspector.injectedExtensionAPI.AuditCategoryImpl):
2579         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceEvent):
2580         (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceContentEvent):
2581         (WebInspector.injectedExtensionAPI.InspectedWindow):
2582         * inspector/front-end/ExtensionCommon.js:
2583         (WebInspector.commonExtensionSymbols):
2584         * inspector/front-end/ExtensionServer.js:
2585         (WebInspector.ExtensionServer):
2586         (WebInspector.ExtensionServer.prototype._notifyConsoleMessageAdded):
2587         (WebInspector.ExtensionServer.prototype._onGetConsoleMessages):
2588         (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
2589         (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
2590         (WebInspector.ExtensionServer.prototype._makeConsoleMessage.convertParameter):
2591         (WebInspector.ExtensionServer.prototype._dispatchCallback):
2592         (WebInspector.ExtensionServer.prototype.initExtensions):
2593
2594 2011-09-05  Andrey Kosyakov  <caseq@chromium.org>
2595
2596         Web Inspector: disable popover when a mouse button is pressed
2597         https://bugs.webkit.org/show_bug.cgi?id=67610
2598
2599         Reviewed by Pavel Feldman.
2600
2601         - disable popover when a mouse button is pressed
2602         - disable popover in a SourceFrame when the source is being edited
2603
2604         * inspector/front-end/Popover.js:
2605         (WebInspector.PopoverHelper):
2606         (WebInspector.PopoverHelper.prototype._mouseUp):
2607         (WebInspector.PopoverHelper.prototype._mouseDown):
2608         (WebInspector.PopoverHelper.prototype._handleMouseAction):
2609         * inspector/front-end/SourceFrame.js:
2610         (WebInspector.SourceFrame.prototype._onHidePopover):
2611         (WebInspector.SourceFrame.prototype.doubleClick):
2612
2613 2011-09-07  Antti Koivisto  <antti@apple.com>
2614
2615         https://bugs.webkit.org/show_bug.cgi?id=67634
2616         De-virtualize styleForRenderer()
2617
2618         Reviewed by Sam Weinig.
2619         
2620         This has performance and code clarity benefits.
2621
2622         - move styleForRenderer from Node to Element
2623         - get rid of the now unnecessary NodeRenderingContext parameter
2624         - de-virtualize, add virtual customStyleForRenderer()
2625
2626         * dom/Element.cpp:
2627         (WebCore::Element::customStyleForRenderer):
2628         (WebCore::Element::styleForRenderer):
2629         (WebCore::Element::recalcStyle):
2630         * dom/Element.h:
2631         * dom/Node.cpp:
2632         * dom/Node.h:
2633         (WebCore::Node::hasCustomWillOrDidRecalcStyle):
2634         (WebCore::Node::setHasCustomWillOrDidRecalcStyle):
2635         (WebCore::Node::hasCustomStyleForRenderer):
2636         (WebCore::Node::setHasCustomStyleForRenderer):
2637         
2638             Move styleForRenderer, add customStyleForRenderer, add a bit.
2639         
2640         * dom/NodeRenderingContext.cpp:
2641         (WebCore::NodeRendererFactory::createRendererAndStyle): 
2642         
2643             Handle non-element case separately since styleForRenderer was moved from Node to Element.
2644
2645         * html/HTMLNoScriptElement.cpp:
2646         (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
2647         (WebCore::HTMLNoScriptElement::customStyleForRenderer):
2648         * html/HTMLNoScriptElement.h:
2649         
2650             Move a strange XHTMLMP special case to where it belongs.
2651
2652         * html/HTMLOptGroupElement.cpp:
2653         (WebCore::HTMLOptGroupElement::attach):
2654         * html/HTMLOptionElement.cpp:
2655         (WebCore::HTMLOptionElement::attach):
2656         * html/HTMLTitleElement.cpp:
2657         (WebCore::HTMLTitleElement::textWithDirection):
2658         * html/shadow/TextControlInnerElements.cpp:
2659         (WebCore::TextControlInnerElement::TextControlInnerElement):
2660         (WebCore::TextControlInnerElement::customStyleForRenderer):
2661         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
2662         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
2663         * html/shadow/TextControlInnerElements.h:
2664         * rendering/svg/SVGShadowTreeElements.cpp:
2665         (WebCore::SVGShadowTreeContainerElement::customStyleForRenderer):
2666         * rendering/svg/SVGShadowTreeElements.h:
2667         * svg/SVGElement.cpp:
2668         (WebCore::SVGElement::SVGElement):
2669         (WebCore::SVGElement::customStyleForRenderer):
2670         * svg/SVGElement.h:
2671         
2672             Adopt customStyleForRenderer().
2673
2674 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2675
2676         Change event is not fired for input[type=number] when the user reverts a change made by script
2677         https://bugs.webkit.org/show_bug.cgi?id=67697
2678
2679         Reviewed by Kent Tamura.
2680
2681         The bug was caused by HTMLInputElement::setValue not calling setTextAsOfLastFormControlChangeEvent
2682         for text fields other than type=text.
2683
2684         Also fixed a that stepUpFromRenderer does not call setTextAsOfLastFormControlChangeEvent at appropriate
2685         timing due to setValueAsNumber always passing sendChangeEvent=false to setValue by propagating values
2686         through setValueAsNumber and applyStep. This refactoring allows us to remove calls to dispatch* in
2687         stepUpFromRenderer because they're now called in setValueAsNumber or applyStep.
2688
2689         Test: fast/forms/number-input-changeevent.html
2690
2691         * html/BaseDateAndTimeInputType.cpp:
2692         (WebCore::BaseDateAndTimeInputType::setValueAsNumber):
2693         * html/BaseDateAndTimeInputType.h:
2694         * html/HTMLInputElement.cpp:
2695         (WebCore::HTMLInputElement::applyStep):
2696         (WebCore::HTMLInputElement::stepUp):
2697         (WebCore::HTMLInputElement::stepDown):
2698         (WebCore::HTMLInputElement::setValue):
2699         (WebCore::HTMLInputElement::setValueAsNumber):
2700         (WebCore::HTMLInputElement::stepUpFromRenderer):
2701         * html/HTMLInputElement.h:
2702         * html/InputType.cpp:
2703         (WebCore::InputType::setValueAsNumber):
2704         * html/InputType.h:
2705         * html/NumberInputType.cpp:
2706         (WebCore::NumberInputType::setValueAsNumber):
2707         * html/NumberInputType.h:
2708         * html/RangeInputType.cpp:
2709         (WebCore::RangeInputType::setValueAsNumber):
2710         (WebCore::RangeInputType::handleKeydownEvent):
2711         * html/RangeInputType.h:
2712
2713 2011-09-07  Antti Koivisto  <antti@apple.com>
2714
2715         Try to fix Qt build by moving the Qt specific include (which is not really allowed here!).
2716
2717         Not reviewed.
2718
2719         * css/CSSStyleSelector.cpp:
2720         * css/SelectorChecker.cpp:
2721         (WebCore::SelectorChecker::determineLinkStateSlowCase):
2722
2723 2011-09-07  Antti Koivisto  <antti@apple.com>
2724
2725         Move SelectorChecker out from CSSStyleSelector scope
2726         https://bugs.webkit.org/show_bug.cgi?id=67648
2727
2728         Reviewed by Sam Weinig.
2729
2730         - Move SelectorChecker to SelectorChecker.h/cpp
2731         - Make private functions private
2732         - Make members private, add accessors
2733         - Move m_sameOriginOnly to CSSStyleSelector as it is not used by SelectorChecker
2734
2735         * CMakeLists.txt:
2736         * GNUmakefile.list.am:
2737         * WebCore.gypi:
2738         * WebCore.pro:
2739         * WebCore.vcproj/WebCore.vcproj:
2740         * WebCore.xcodeproj/project.pbxproj:
2741         * css/CSSStyleSelector.cpp:
2742         (WebCore::CSSStyleSelector::CSSStyleSelector):
2743         (WebCore::CSSStyleSelector::matchRules):
2744         (WebCore::CSSStyleSelector::matchRulesForList):
2745         (WebCore::CSSStyleSelector::sortMatchedRules):
2746         (WebCore::CSSStyleSelector::initForStyleResolve):
2747         (WebCore::CSSStyleSelector::matchUARules):
2748         (WebCore::CSSStyleSelector::styleForElement):
2749         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2750         (WebCore::CSSStyleSelector::styleForPage):
2751         (WebCore::CSSStyleSelector::adjustRenderStyle):
2752         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
2753         (WebCore::CSSStyleSelector::checkSelector):
2754         (WebCore::RuleData::RuleData):
2755         (WebCore::CSSStyleSelector::applyProperty):
2756         (WebCore::CSSStyleSelector::checkForGenericFamilyChange):
2757         (WebCore::CSSStyleSelector::setFontSize):
2758         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
2759         * css/CSSStyleSelector.h:
2760         (WebCore::CSSStyleSelector::style):
2761         (WebCore::CSSStyleSelector::parentStyle):
2762         (WebCore::CSSStyleSelector::rootElementStyle):
2763         (WebCore::CSSStyleSelector::element):
2764         (WebCore::CSSStyleSelector::fontDescription):
2765         (WebCore::CSSStyleSelector::parentFontDescription):
2766         (WebCore::CSSStyleSelector::setFontDescription):
2767         (WebCore::CSSStyleSelector::setZoom):
2768         (WebCore::CSSStyleSelector::setEffectiveZoom):
2769         (WebCore::CSSStyleSelector::setTextSizeAdjust):
2770         (WebCore::CSSStyleSelector::setStyle):
2771         (WebCore::CSSStyleSelector::fontSelector):
2772         (WebCore::CSSStyleSelector::allVisitedStateChanged):
2773         (WebCore::CSSStyleSelector::visitedStateChanged):
2774         (WebCore::CSSStyleSelector::usesSiblingRules):
2775         (WebCore::CSSStyleSelector::usesFirstLineRules):
2776         (WebCore::CSSStyleSelector::usesBeforeAfterRules):
2777         (WebCore::CSSStyleSelector::usesLinkRules):
2778         (WebCore::CSSStyleSelector::addMatchedRule):
2779         (WebCore::CSSStyleSelector::isRightPage):
2780         (WebCore::CSSStyleSelector::ParentStackFrame::ParentStackFrame):
2781         (WebCore::CSSStyleSelector::styleNotYetAvailable):
2782         * css/SelectorChecker.cpp: Added.
2783         (WebCore::SelectorChecker::SelectorChecker):
2784         (WebCore::linkAttribute):
2785         (WebCore::SelectorChecker::determineLinkStateSlowCase):
2786         (WebCore::SelectorChecker::checkSelector):
2787         (WebCore::SelectorChecker::fastCheckSelector):
2788         (WebCore::SelectorChecker::isFastCheckableSelector):
2789         (WebCore::addLocalNameToSet):
2790         (WebCore::createHtmlCaseInsensitiveAttributesSet):
2791         (WebCore::htmlAttributeHasCaseInsensitiveValue):
2792         (WebCore::attributeQualifiedNameMatches):
2793         (WebCore::attributeValueMatches):
2794         (WebCore::anyAttributeMatches):
2795         (WebCore::SelectorChecker::checkOneSelector):
2796         (WebCore::SelectorChecker::checkScrollbarPseudoClass):
2797         (WebCore::SelectorChecker::allVisitedStateChanged):
2798         (WebCore::SelectorChecker::visitedStateChanged):
2799         * css/SelectorChecker.h: Added.
2800         (WebCore::SelectorChecker::document):
2801         (WebCore::SelectorChecker::strictParsing):
2802         (WebCore::SelectorChecker::isCollectingRulesOnly):
2803         (WebCore::SelectorChecker::setCollectingRulesOnly):
2804         (WebCore::SelectorChecker::isMatchingVisitedPseudoClass):
2805         (WebCore::SelectorChecker::setMatchingVisitedPseudoClass):
2806         (WebCore::SelectorChecker::pseudoStyle):
2807         (WebCore::SelectorChecker::setPseudoStyle):
2808         (WebCore::SelectorChecker::hasUnknownPseudoElements):
2809         (WebCore::SelectorChecker::clearHasUnknownPseudoElements):
2810         (WebCore::SelectorChecker::determineLinkState):
2811         * dom/Element.cpp:
2812         (WebCore::Element::webkitMatchesSelector):
2813         * dom/SelectorQuery.cpp:
2814         (WebCore::SelectorQuery::SelectorQuery):
2815         * dom/SelectorQuery.h:
2816
2817 2011-09-07  Dmitry Lomov  <dslomov@google.com>
2818
2819         https://bugs.webkit.org/show_bug.cgi?id=67413 
2820         [Chromium]Web Inspector: inspected page with dedicated worker crashes on refresh.
2821         This patch enforces lifetime ordering between WorkerInspectorController and WorkerScriptController.
2822
2823         Reviewed by Yury Semikhatsky.
2824
2825         * workers/WorkerContext.cpp:
2826         (WebCore::WorkerContext::clearInspector):
2827         * workers/WorkerContext.h:
2828         * workers/WorkerThread.cpp:
2829         (WebCore::WorkerThreadShutdownFinishTask::performTask):
2830
2831 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2832
2833         Unreviewed, rolling out r94627 and r94632.
2834         http://trac.webkit.org/changeset/94627
2835         http://trac.webkit.org/changeset/94632
2836         https://bugs.webkit.org/show_bug.cgi?id=67698
2837
2838         It broke tests on GTK and Qt (Requested by Ossy on #webkit).
2839
2840         * WebCore.exp.in:
2841         * bindings/js/JSDOMBinding.h:
2842         (WebCore::DOMConstructorObject::DOMConstructorObject):
2843         * bindings/js/JSDOMGlobalObject.cpp:
2844         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
2845         * bindings/js/JSDOMGlobalObject.h:
2846         * bindings/js/JSDOMWindowShell.cpp:
2847         (WebCore::JSDOMWindowShell::create):
2848         * bindings/js/JSDOMWindowShell.h:
2849         * bindings/js/JSDOMWrapper.h:
2850         (WebCore::JSDOMWrapper::JSDOMWrapper):
2851         * bindings/scripts/CodeGeneratorJS.pm:
2852         (GenerateImplementation):
2853         * bindings/scripts/test/JS/JSTestInterface.cpp:
2854         (WebCore::JSTestInterface::JSTestInterface):
2855         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2856         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
2857         * bindings/scripts/test/JS/JSTestObj.cpp:
2858         (WebCore::JSTestObj::JSTestObj):
2859         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2860         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
2861         * bridge/c/CRuntimeObject.cpp:
2862         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
2863         * bridge/c/CRuntimeObject.h:
2864         * bridge/jni/jsc/JavaRuntimeObject.cpp:
2865         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
2866         * bridge/jni/jsc/JavaRuntimeObject.h:
2867         * bridge/objc/ObjCRuntimeObject.h:
2868         * bridge/objc/ObjCRuntimeObject.mm:
2869         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
2870         * bridge/objc/objc_runtime.h:
2871         (JSC::Bindings::ObjcFallbackObjectImp::create):
2872         * bridge/objc/objc_runtime.mm:
2873         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2874         * bridge/qt/qt_instance.cpp:
2875         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
2876         * bridge/qt/qt_pixmapruntime.cpp:
2877         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
2878         * bridge/qt/qt_runtime.cpp:
2879         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
2880         * bridge/qt/qt_runtime.h:
2881         * bridge/runtime_array.cpp:
2882         (JSC::RuntimeArray::RuntimeArray):
2883         * bridge/runtime_array.h:
2884         (JSC::RuntimeArray::create):
2885         * bridge/runtime_method.cpp:
2886         (JSC::RuntimeMethod::RuntimeMethod):
2887         * bridge/runtime_method.h:
2888         * bridge/runtime_object.cpp:
2889         (JSC::Bindings::RuntimeObject::RuntimeObject):
2890         * bridge/runtime_object.h:
2891         (JSC::Bindings::RuntimeObject::create):
2892
2893 2011-08-31  Yury Semikhatsky  <yurys@chromium.org>
2894
2895         fast/workers/worker-script-error.html fails on Chromium after r94061
2896         https://bugs.webkit.org/show_bug.cgi?id=67206
2897
2898         Default action should be prevented if window.onerror returned true and stay
2899         not prevented otherwise.
2900
2901         Reviewed by Dmitry Titov.
2902
2903         Tests: fast/events/window-onerror14.html
2904                fast/events/window-onerror15.html
2905                fast/events/window-onerror16.html
2906
2907         * bindings/v8/V8AbstractEventListener.cpp:
2908         (WebCore::V8AbstractEventListener::invokeEventHandler):
2909         (WebCore::V8AbstractEventListener::shouldPreventDefault): allow specific
2910         event listeners to decide when to prevent default action based on the handler
2911         return value.
2912         * bindings/v8/V8AbstractEventListener.h:
2913         * bindings/v8/V8WindowErrorHandler.cpp:
2914         (WebCore::V8WindowErrorHandler::callListenerFunction):
2915         (WebCore::V8WindowErrorHandler::shouldPreventDefault):
2916         * bindings/v8/V8WindowErrorHandler.h:
2917         * bindings/v8/V8WorkerContextErrorHandler.cpp:
2918         (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
2919         (WebCore::V8WorkerContextErrorHandler::shouldPreventDefault):
2920         * bindings/v8/V8WorkerContextErrorHandler.h:
2921
2922 2011-09-06  Xianzhu Wang  <wangxianzhu@chromium.org>
2923
2924         Replace usages of Vector<UChar> with existing StringBuilder
2925         https://bugs.webkit.org/show_bug.cgi?id=67079
2926
2927         Reviewed by Gavin Barraclough.
2928
2929         No new tests. All existing unit tests and layout tests should run
2930         as before.
2931
2932         * css/CSSOMUtils.cpp:
2933         (WebCore::appendCharacter):
2934         (WebCore::serializeCharacter):
2935         (WebCore::serializeCharacterAsCodePoint):
2936         (WebCore::serializeIdentifier):
2937         (WebCore::serializeString):
2938         * css/CSSOMUtils.h:
2939         * css/CSSPrimitiveValue.cpp:
2940         (WebCore::CSSPrimitiveValue::cssText):
2941         * css/CSSStyleSelector.cpp:
2942         (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase):
2943         * css/CSSWrapShapes.cpp:
2944         (WebCore::CSSWrapShapeRect::cssText):
2945         (WebCore::CSSWrapShapeCircle::cssText):
2946         (WebCore::CSSWrapShapeEllipse::cssText):
2947         (WebCore::CSSWrapShapePolygon::cssText):
2948         * editing/HTMLInterchange.cpp:
2949         (WebCore::convertHTMLTextToInterchangeFormat):
2950         * editing/MarkupAccumulator.cpp:
2951         (WebCore::appendCharactersReplacingEntities):
2952         (WebCore::MarkupAccumulator::serializeNodes):
2953         (WebCore::MarkupAccumulator::appendStartTag):
2954         (WebCore::MarkupAccumulator::appendEndTag):
2955         (WebCore::MarkupAccumulator::concatenateMarkup):
2956         (WebCore::MarkupAccumulator::appendAttributeValue):
2957         (WebCore::MarkupAccumulator::appendCustomAttributes):
2958         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
2959         (WebCore::MarkupAccumulator::appendNodeValue):
2960         (WebCore::MarkupAccumulator::appendNamespace):
2961         (WebCore::MarkupAccumulator::appendText):
2962         (WebCore::MarkupAccumulator::appendComment):
2963         (WebCore::MarkupAccumulator::appendDocumentType):
2964         (WebCore::MarkupAccumulator::appendProcessingInstruction):
2965         (WebCore::MarkupAccumulator::appendElement):
2966         (WebCore::MarkupAccumulator::appendOpenTag):
2967         (WebCore::MarkupAccumulator::appendCloseTag):
2968         (WebCore::MarkupAccumulator::appendAttribute):
2969         (WebCore::MarkupAccumulator::appendCDATASection):
2970         (WebCore::MarkupAccumulator::appendStartMarkup):
2971         (WebCore::MarkupAccumulator::appendEndMarkup):
2972         * editing/MarkupAccumulator.h:
2973         * editing/markup.cpp:
2974         (WebCore::StyledMarkupAccumulator::appendElement):
2975         (WebCore::StyledMarkupAccumulator::wrapWithNode):
2976         (WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
2977         (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
2978         (WebCore::StyledMarkupAccumulator::takeResults):
2979         (WebCore::StyledMarkupAccumulator::appendText):
2980         (WebCore::urlToMarkup):
2981         * html/DOMTokenList.cpp:
2982         (WebCore::DOMTokenList::removeToken):
2983         * html/HTMLFontElement.cpp:
2984         (WebCore::parseFontSize):
2985         * html/HTMLTextFormControlElement.cpp:
2986         (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
2987         * html/parser/CSSPreloadScanner.cpp:
2988         (WebCore::CSSPreloadScanner::emitRule):
2989         * html/parser/CSSPreloadScanner.h:
2990         * html/parser/HTMLEntityParser.cpp:
2991         (WebCore::consumeHTMLEntity):
2992         * html/parser/HTMLEntityParser.h:
2993         * html/parser/HTMLParserIdioms.cpp:
2994         (WebCore::parseHTMLInteger):
2995         (WebCore::parseHTMLNonNegativeInteger):
2996         * html/parser/HTMLTokenizer.cpp:
2997         (WebCore::HTMLTokenizer::processEntity):
2998         (WebCore::HTMLTokenizer::nextToken):
2999         * html/parser/HTMLTreeBuilder.cpp:
3000         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo):
3001         (WebCore::HTMLTreeBuilder::defaultForInTableText):
3002         * html/parser/HTMLTreeBuilder.h:
3003         * inspector/InspectorValues.cpp:
3004         (WebCore::InspectorValue::toJSONString):
3005         (WebCore::InspectorValue::writeJSON):
3006         (WebCore::InspectorBasicValue::writeJSON):
3007         (WebCore::InspectorString::writeJSON):
3008         (WebCore::InspectorObject::writeJSON):
3009         (WebCore::InspectorArray::writeJSON):
3010         * inspector/InspectorValues.h:
3011         * loader/CrossOriginAccessControl.cpp:
3012         (WebCore::createAccessControlPreflightRequest):
3013         * loader/appcache/ApplicationCacheStorage.cpp:
3014         (WebCore::ApplicationCacheStorage::store):
3015         * page/Chrome.cpp:
3016         (WebCore::Chrome::setToolTip):
3017         * page/PageSerializer.cpp:
3018         (WebCore::SerializerMarkupAccumulator::appendText):
3019         (WebCore::SerializerMarkupAccumulator::appendElement):
3020         (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
3021         * page/SecurityOrigin.cpp:
3022         (WebCore::SecurityOrigin::toString):
3023         * platform/KURL.cpp:
3024         (WebCore::KURL::deprecatedString):
3025         (WebCore::decodeURLEscapeSequences):
3026         * platform/LinkHash.cpp:
3027         (WebCore::squeezeOutNullCharacters):
3028         (WebCore::cleanSlashDotDotSlashes):
3029         (WebCore::mergeDoubleSlashes):
3030         (WebCore::cleanSlashDotSlashes):
3031         (WebCore::cleanPath):
3032         (WebCore::visitedURLInline):
3033         (WebCore::visitedURL):
3034         (WebCore::visitedLinkHash):
3035         * platform/LinkHash.h:
3036         * platform/gtk/DataObjectGtk.cpp:
3037         (WebCore::DataObjectGtk::setURL):
3038         * platform/network/HTTPParsers.cpp:
3039         (WebCore::extractMIMETypeFromMediaType):
3040         * platform/text/TextCodecICU.cpp:
3041         (WebCore::TextCodecICU::decode):
3042         * platform/text/TextStream.cpp:
3043         (WebCore::TextStream::operator<<):
3044         (WebCore::TextStream::release):
3045         * platform/text/TextStream.h:
3046         * plugins/PluginStream.cpp:
3047         (WebCore::PluginStream::startStream):
3048         * rendering/InlineTextBox.cpp:
3049         (WebCore::adjustCharactersAndLengthForHyphen):
3050         * rendering/InlineTextBox.h:
3051         (WebCore::BufferForAppendingHyphen::BufferForAppendingHyphen):
3052         * rendering/RenderListItem.cpp:
3053         (WebCore::RenderListItem::markerTextWithSuffix):
3054         * rendering/RenderListMarker.cpp:
3055         (WebCore::toSymbolic):
3056         (WebCore::RenderListMarker::paint):
3057         (WebCore::RenderListMarker::suffix):
3058         * rendering/RenderTreeAsText.cpp:
3059         (WebCore::quoteAndEscapeNonPrintables):
3060         * rendering/mathml/RenderMathMLFenced.cpp:
3061         (WebCore::RenderMathMLFenced::updateFromElement):
3062         * storage/IDBLevelDBCoding.cpp:
3063         (WebCore::IDBLevelDBCoding::decodeString):
3064         * xml/XMLHttpRequest.cpp:
3065         (WebCore::XMLHttpRequest::getAllResponseHeaders):
3066         * xml/XPathFunctions.cpp:
3067         (WebCore::XPath::FunId::evaluate):
3068         (WebCore::XPath::FunConcat::evaluate):
3069         * xml/XPathUtil.cpp:
3070         (WebCore::XPath::stringValue):
3071         * xml/XSLTProcessorLibxslt.cpp:
3072         (WebCore::writeToStringBuilder):
3073         (WebCore::saveResultToString):
3074         * xml/parser/CharacterReferenceParserInlineMethods.h:
3075         (WebCore::unconsumeCharacters):
3076         (WebCore::consumeCharacterReference):
3077         * xml/parser/XMLCharacterReferenceParser.cpp:
3078         (WebCore::consumeXMLCharacterReference):
3079         * xml/parser/XMLCharacterReferenceParser.h:
3080         * xml/parser/XMLTokenizer.cpp:
3081         (WebCore::XMLTokenizer::nextToken):
3082
3083 2011-09-05  Kent Tamura  <tkent@chromium.org>
3084
3085         REGRESSION (Safari 5.1 - ToT): File input retains its file icon when the value is reset
3086         https://bugs.webkit.org/show_bug.cgi?id=67567
3087
3088         Reviewed by Dimitri Glazkov.
3089
3090         - Introduce InputType::setValue(), which is called by HTMLInputElement::setValue().
3091         - Clear m_icon in FileInputType::setValue().
3092
3093         Tests: fast/forms/file/file-reset-in-change-expected.html
3094                fast/forms/file/file-reset-in-change.html
3095
3096         * html/BaseButtonInputType.cpp:
3097         (WebCore::BaseButtonInputType::setValue):
3098         Implemenation for the "default" mode.
3099         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#dom-input-value-default
3100         * html/BaseButtonInputType.h:
3101         * html/BaseCheckableInputType.cpp:
3102         (WebCore::BaseCheckableInputType::setValue):
3103         Implemenation for the "default/on" mode.
3104         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#dom-input-value-default-on
3105         * html/BaseCheckableInputType.h:
3106         * html/FileInputType.cpp:
3107         (WebCore::FileInputType::setValue):
3108         Implemenation for the "filename" mode, and clearing m_icon.
3109         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#dom-input-value-filename
3110         * html/FileInputType.h:
3111         * html/HTMLInputElement.cpp:
3112         (WebCore::HTMLInputElement::setValue):
3113         Move some code to InputType::setValue().
3114         (WebCore::HTMLInputElement::setValueInternal): A helper for InputType::setValue().
3115         * html/HTMLInputElement.h:
3116         * html/HiddenInputType.cpp:
3117         (WebCore::HiddenInputType::setValue):
3118         Implementation for the "default" mode.
3119         * html/HiddenInputType.h:
3120         * html/InputType.cpp:
3121         (WebCore::InputType::setValue):
3122         Implementation for the "value" mode.
3123         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#dom-input-value-value
3124         * html/InputType.h:
3125         * html/TextFieldInputType.cpp:
3126         (WebCore::TextFieldInputType::setValue):
3127         In addition to the "value" mode processing, updates placeholder visibililty.
3128         * html/TextFieldInputType.h:
3129
3130 2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>
3131
3132         REGRESSION(r94274): The inner text value of an input element is not updated when input.value is set
3133         https://bugs.webkit.org/show_bug.cgi?id=67681
3134
3135         Reviewed by Kent Tamura.
3136
3137         The bug was caused by HTMLInputElement::setValue's not clearing m_suggestedValue before updateInnerTextValue is called.
3138         Since updateInnerTextValue uses the suggested value when one is present, we need to clear m_suggestedValue in advance.
3139
3140         Test: fast/forms/suggested-value-after-setvalue.html
3141
3142         * html/HTMLInputElement.cpp:
3143         (WebCore::HTMLInputElement::setValue):
3144
3145 2011-09-06  Adam Barth  <abarth@webkit.org>
3146
3147         Attempt to fix GTK build.
3148
3149         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
3150         (WebKit::createHTMLElementWrapper):
3151
3152 2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>
3153
3154         fast/forms/suggested-value-crash.html crashes on Windows
3155         https://bugs.webkit.org/show_bug.cgi?id=67688
3156
3157         Reviewed by Adam Barth.
3158
3159         The crash was caused because functions in internals were accessing uninitialized QualifiedNames.
3160         Fixed the bug by avoiding to link to inputTag and textareaTag. Instead, we resort to toInputElement
3161         and string comparison.
3162
3163         * testing/Internals.cpp:
3164         (WebCore::Internals::wasLastChangeUserEdit):
3165         (WebCore::Internals::suggestedValue):
3166         (WebCore::Internals::setSuggestedValue):
3167
3168 2011-09-06  Mark Hahnenberg  <mhahnenberg@apple.com>
3169
3170         Unzip initialization lists and constructors in JSCell hierarchy (5/7)
3171         https://bugs.webkit.org/show_bug.cgi?id=67420
3172
3173         Reviewed by Geoffrey Garen.
3174
3175         No new tests.
3176
3177         Completed the fifth level of the refactoring to add finishCreation() 
3178         methods to all classes within the JSCell hierarchy with non-trivial 
3179         constructor bodies.
3180
3181         This primarily consists of pushing the calls to finishCreation() down 
3182         into the constructors of the subclasses of the second level of the hierarchy 
3183         as well as pulling the finishCreation() calls out into the class's corresponding
3184         create() method if it has one.  Doing both simultaneously allows us to 
3185         maintain the invariant that the finishCreation() method chain is called exactly 
3186         once during the creation of an object, since calling it any other number of 
3187         times (0, 2, or more) will cause an assertion failure.
3188
3189         * WebCore.exp.in:
3190         * bindings/js/JSDOMBinding.h:
3191         (WebCore::DOMConstructorObject::DOMConstructorObject):
3192         * bindings/js/JSDOMGlobalObject.cpp:
3193         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
3194         (WebCore::JSDOMGlobalObject::finishCreation):
3195         * bindings/js/JSDOMGlobalObject.h:
3196         * bindings/js/JSDOMWindowShell.cpp:
3197         * bindings/js/JSDOMWindowShell.h:
3198         (WebCore::JSDOMWindowShell::create):
3199         * bindings/js/JSDOMWrapper.h:
3200         (WebCore::JSDOMWrapper::JSDOMWrapper):
3201         * bindings/scripts/CodeGeneratorJS.pm:
3202         (GenerateImplementation):
3203         * bindings/scripts/test/JS/JSTestInterface.cpp:
3204         (WebCore::JSTestInterface::JSTestInterface):
3205         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3206         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
3207         * bindings/scripts/test/JS/JSTestObj.cpp:
3208         (WebCore::JSTestObj::JSTestObj):
3209         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3210         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
3211         * bridge/c/CRuntimeObject.cpp:
3212         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
3213         (JSC::Bindings::CRuntimeObject::finishCreation):
3214         * bridge/c/CRuntimeObject.h:
3215         * bridge/jni/jsc/JavaRuntimeObject.cpp:
3216         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
3217         (JSC::Bindings::JavaRuntimeObject::finishCreation):
3218         * bridge/jni/jsc/JavaRuntimeObject.h:
3219         * bridge/objc/ObjCRuntimeObject.h:
3220         * bridge/objc/ObjCRuntimeObject.mm:
3221         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
3222         (JSC::Bindings::ObjCRuntimeObject::finishCreation):
3223         * bridge/objc/objc_runtime.h:
3224         (JSC::Bindings::ObjcFallbackObjectImp::create):
3225         * bridge/objc/objc_runtime.mm:
3226         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
3227         * bridge/qt/qt_instance.cpp:
3228         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
3229         * bridge/qt/qt_pixmapruntime.cpp:
3230         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
3231         * bridge/qt/qt_runtime.cpp:
3232         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
3233         (JSC::Bindings::QtRuntimeMethod::finishCreation):
3234         * bridge/qt/qt_runtime.h:
3235         * bridge/runtime_array.cpp:
3236         (JSC::RuntimeArray::RuntimeArray):
3237         * bridge/runtime_array.h:
3238         (JSC::RuntimeArray::create):
3239         * bridge/runtime_method.cpp:
3240         (JSC::RuntimeMethod::RuntimeMethod):
3241         (JSC::RuntimeMethod::finishCreation):
3242         * bridge/runtime_method.h:
3243         * bridge/runtime_object.cpp:
3244         (JSC::Bindings::RuntimeObject::RuntimeObject):
3245         * bridge/runtime_object.h:
3246         (JSC::Bindings::RuntimeObject::create):
3247
3248 2011-09-06  Luke Macpherson   <macpherson@chromium.org>
3249
3250         Implement list style properties in CSSStyleApplyProperty.
3251         https://bugs.webkit.org/show_bug.cgi?id=67103
3252
3253         Reviewed by Eric Seidel.
3254
3255         No new tests / no behavioral changes.
3256
3257         * css/CSSStyleApplyProperty.cpp:
3258         Add class to wrap call to CSSStyleSelector::styleImage().
3259         (WebCore::ApplyPropertyStyleImage::ApplyPropertyStyleImage):
3260         (WebCore::ApplyPropertyStyleImage::applyValue):
3261         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3262         Initialize handlers for list style properties.
3263         * css/CSSStyleSelector.cpp:
3264         (WebCore::CSSStyleSelector::applyProperty):
3265         Remove existing property implementations.
3266
3267 2011-09-06  Alexis Menard  <alexis.menard@openbossa.org>
3268
3269         [Qt] Move away from QPointer as it is slow and it has a replacement QWeakPointer.
3270         https://bugs.webkit.org/show_bug.cgi?id=67673
3271
3272         Reviewed by Ariya Hidayat.
3273
3274         Move away from QPointer to QWeakPointer, it is faster.
3275
3276         No new tests, the existing ones should cover.
3277
3278         * bridge/qt/qt_instance.cpp:
3279         (JSC::Bindings::QtInstance::~QtInstance):
3280         (JSC::Bindings::QtInstance::getClass):
3281         (JSC::Bindings::QtField::name):
3282         (JSC::Bindings::QtField::valueFromInstance):
3283         * bridge/qt/qt_instance.h:
3284         (JSC::Bindings::QtInstance::getObject):
3285         * bridge/qt/qt_runtime.h:
3286         * platform/qt/SharedTimerQt.cpp:
3287         (WebCore::SharedTimerQt::inst):
3288
3289 2011-09-06  Oliver Hunt  <oliver@apple.com>
3290
3291         Update expected results of bindings tests.
3292
3293         * bindings/scripts/test/JS/JSTestInterface.cpp:
3294         (WebCore::JSTestInterfaceConstructor::createStructure):
3295         (WebCore::JSTestInterface::createPrototype):
3296         * bindings/scripts/test/JS/JSTestInterface.h:
3297         (WebCore::JSTestInterface::createStructure):
3298         (WebCore::JSTestInterfacePrototype::createStructure):
3299         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3300         (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
3301         (WebCore::JSTestMediaQueryListListener::createPrototype):
3302         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3303         (WebCore::JSTestMediaQueryListListener::createStructure):
3304         (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
3305         * bindings/scripts/test/JS/JSTestObj.cpp:
3306         (WebCore::JSTestObjConstructor::createStructure):
3307         (WebCore::JSTestObj::createPrototype):
3308         * bindings/scripts/test/JS/JSTestObj.h:
3309         (WebCore::JSTestObj::createStructure):
3310         (WebCore::JSTestObjPrototype::createStructure):
3311         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3312         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
3313         (WebCore::JSTestSerializedScriptValueInterface::createPrototype):
3314         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3315         (WebCore::JSTestSerializedScriptValueInterface::createStructure):
3316         (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
3317
3318 2011-09-06  Eric Seidel  <eric@webkit.org>
3319
3320         Remove window.HTMLBlockquoteElement per HTML5 (and DOM Core 1)
3321         https://bugs.webkit.org/show_bug.cgi?id=67678
3322
3323         Reviewed by Darin Adler.
3324
3325         This is why we can't have nice things.
3326
3327         There was some confusion in the original DOM HTML 1 spec about
3328         the existence of HTMlBlockquoteElement which was clarified by
3329         a later errata, removing HTMLBlockquoteElement:
3330         http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html
3331         "This interface is an error and must be ignored. The Interface HTMLQuoteElement is used for both the Q and BLOCKQUOTE elements"
3332
3333         Le sigh.  Personally I think having a separate HTMLBlockquoteElement
3334         is clearer, but thats not how the web works.  Removed it and updated test results.
3335
3336         * CMakeLists.txt:
3337         * CodeGenerators.pri:
3338         * DerivedSources.cpp:
3339         * DerivedSources.make:
3340         * GNUmakefile.list.am:
3341         * WebCore.gypi:
3342         * WebCore.pro:
3343         * WebCore.vcproj/WebCore.vcproj:
3344         * WebCore.xcodeproj/project.pbxproj:
3345         * bindings/gobject/GNUmakefile.am:
3346         * editing/IndentOutdentCommand.cpp:
3347         * html/HTMLBlockquoteElement.cpp: Removed.
3348         * html/HTMLBlockquoteElement.h: Removed.
3349         * html/HTMLBlockquoteElement.idl: Removed.
3350         * html/HTMLElementsAllInOne.cpp:
3351         * html/HTMLQuoteElement.cpp:
3352         (WebCore::HTMLQuoteElement::HTMLQuoteElement):
3353         (WebCore::HTMLQuoteElement::insertedIntoDocument):
3354         * html/HTMLTagNames.in:
3355         * page/DOMWindow.idl:
3356
3357 2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>
3358
3359         Rename confirmCompositionWithoutDisturbingSelection to cancelComposition
3360         https://bugs.webkit.org/show_bug.cgi?id=67569
3361
3362         Reviewed by Antonio Gomes.
3363
3364         Renamed Editor::confirmCompositionWithoutDisturbingSelection to Editor::cancelComposition.
3365         Also renamed the shared function from confirmComposition to setComposition.
3366
3367         * WebCore.exp.in:
3368         * editing/Editor.cpp:
3369         (WebCore::Editor::confirmComposition):
3370         (WebCore::Editor::cancelComposition):
3371         (WebCore::Editor::setComposition):
3372         * editing/Editor.h:
3373
3374 2011-09-06  Sam Weinig  <sam@webkit.org>
3375
3376         WebVTTTokenizer files in the wrong place in the Xcode project.
3377
3378         * WebCore.xcodeproj/project.pbxproj:
3379         Move WebVTTTokenizer files so they are in the right place in the project.
3380
3381 2011-09-06  Chris Rogers  <crogers@google.com>
3382
3383         MediaElementAudioSourceNode destruction triggers ASSERTS
3384         https://bugs.webkit.org/show_bug.cgi?id=67665
3385
3386         Reviewed by Nate Chapin.
3387
3388         Test: webaudio/mediaelementaudiosourcenode-gc.html
3389
3390         * html/HTMLMediaElement.cpp:
3391         (WebCore::HTMLMediaElement::setAudioSourceNode):
3392         * webaudio/AudioContext.cpp:
3393         (WebCore::AudioContext::uninitializeDispatch):
3394         (WebCore::AudioContext::stop):
3395         * webaudio/AudioContext.h:
3396
3397 2011-09-05  Oliver Hunt  <oliver@apple.com>
3398
3399         An object's structure should reference the global object responsible for its creation
3400         https://bugs.webkit.org/show_bug.cgi?id=67624
3401
3402         Reviewed by Gavin Barraclough.
3403
3404         Update calls to Structure::create() to pass the globalObject in,
3405         and update the CodeGenerator to generate appropriate createStructure
3406         methods.
3407
3408         * bindings/js/JSAudioConstructor.h:
3409         (WebCore::JSAudioConstructor::createStructure):
3410         * bindings/js/JSDOMBinding.h:
3411         (WebCore::DOMConstructorObject::createStructure):
3412         (WebCore::getDOMStructure):
3413         * bindings/js/JSDOMGlobalObject.h:
3414         (WebCore::JSDOMGlobalObject::createStructure):
3415         (WebCore::getDOMConstructor):
3416         * bindings/js/JSDOMWindowBase.h:
3417         (WebCore::JSDOMWindowBase::createStructure):
3418         * bindings/js/JSDOMWindowShell.cpp:
3419         (WebCore::JSDOMWindowShell::setWindow):
3420         * bindings/js/JSDOMWindowShell.h:
3421         (WebCore::JSDOMWindowShell::createStructure):
3422         * bindings/js/JSDOMWrapper.h:
3423         (WebCore::JSDOMWrapper::createStructure):
3424         * bindings/js/JSImageConstructor.h:
3425         (WebCore::JSImageConstructor::createStructure):
3426         * bindings/js/JSImageDataCustom.cpp:
3427         (WebCore::toJS):
3428         * bindings/js/JSOptionConstructor.h:
3429         (WebCore::JSOptionConstructor::createStructure):
3430         * bindings/js/JSWorkerContextBase.h:
3431         (WebCore::JSWorkerContextBase::createStructure):
3432         * bindings/js/WorkerScriptController.cpp:
3433         (WebCore::WorkerScriptController::initScript):
3434         * bindings/scripts/CodeGeneratorJS.pm:
3435         (GenerateHeader):
3436         (GenerateImplementation):
3437         (GenerateConstructorDeclaration):
3438         * bridge/c/CRuntimeObject.h:
3439         (JSC::Bindings::CRuntimeObject::createStructure):
3440         * bridge/c/c_instance.cpp:
3441         (JSC::Bindings::CRuntimeMethod::createStructure):
3442         * bridge/jni/jsc/JavaInstanceJSC.cpp:
3443         (JavaRuntimeMethod::createStructure):
3444         * bridge/jni/jsc/JavaRuntimeObject.h:
3445         (JSC::Bindings::JavaRuntimeObject::createStructure):
3446         * bridge/objc/ObjCRuntimeObject.h:
3447         (JSC::Bindings::ObjCRuntimeObject::createStructure):
3448         * bridge/objc/objc_instance.mm:
3449         (ObjCRuntimeMethod::createStructure):
3450         * bridge/objc/objc_runtime.h:
3451         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
3452         * bridge/runtime_array.h:
3453         (JSC::RuntimeArray::createStructure):
3454         * bridge/runtime_method.h:
3455         (JSC::RuntimeMethod::createStructure):
3456         * bridge/runtime_object.h:
3457         (JSC::Bindings::RuntimeObject::createStructure):
3458
3459 2011-09-06  Anders Carlsson  <andersca@apple.com>
3460
3461         Move NPAPI headers in bridge to plugins
3462         https://bugs.webkit.org/show_bug.cgi?id=67661
3463
3464         Reviewed by Darin Adler.
3465
3466         * WebCore.gypi:
3467         * WebCore.pro:
3468         * WebCore.vcproj/WebCore.vcproj:
3469         * WebCore.xcodeproj/project.pbxproj:
3470         Update build systems.
3471
3472         * bridge/npapi.h: Removed.
3473         * bridge/npruntime.h: Removed.
3474         * bridge/nptypes.h: Removed.
3475         * plugins/npapi.h: Copied from Source/WebCore/bridge/npapi.h.
3476         * plugins/npruntime.h: Copied from Source/WebCore/bridge/npruntime.h.
3477         * plugins/nptypes.h: Copied from Source/WebCore/bridge/nptypes.h.
3478
3479 2011-09-06  David Hyatt  <hyatt@apple.com>
3480
3481         https://bugs.webkit.org/show_bug.cgi?id=67672
3482         
3483         Improve background-size parsing. Make it actually dump auto values properly, and also make it omit
3484         auto if it is the second value. Fix the parsing to not create a value list when only a singleton value
3485         is specified.
3486
3487         Reviewed by Beth Dakin.
3488
3489         Covered well by existing tests.
3490
3491         * css/CSSComputedStyleDeclaration.cpp:
3492         (WebCore::fillSizeToCSSValue):
3493         * css/CSSParser.cpp:
3494         (WebCore::CSSParser::parseFillSize):
3495         * css/CSSStyleSelector.cpp:
3496         (WebCore::CSSStyleSelector::mapFillSize):
3497
3498 2011-09-06  David Hyatt  <hyatt@apple.com>
3499
3500         https://bugs.webkit.org/show_bug.cgi?id=67657
3501         
3502         Implement border-image-width. This patch stops short of converting -webkit-border-image to a shorthand.
3503         I'll do that in the next patch.
3504
3505         Note that unlike the -webkit-border-image syntax, border-image-width does not actually set the border
3506         width values. It simply makes cuts into the border image drawing area (which for now is just the border
3507         box, but that will change once border-image-outset is implemented).
3508         
3509         This means we need additional storage for the slices, since they are now separate from the border widths.
3510         
3511         For backwards compatibility, -webkit-border-image will continue to set the border widths when
3512         border-image-width is specified in the -webkit-border-image shorthand.
3513
3514         Reviewed by Beth Dakin.
3515
3516         Added new tests in fast/borders.
3517
3518         * css/CSSBorderImageSliceValue.cpp:
3519         (WebCore::CSSBorderImageSliceValue::CSSBorderImageSliceValue):
3520         (WebCore::CSSBorderImageSliceValue::cssText):
3521         * css/CSSBorderImageSliceValue.h:
3522         (WebCore::CSSBorderImageSliceValue::create):
3523         (WebCore::CSSBorderImageSliceValue::slices):
3524         Rename slices() to imageSlices() and add borderSlices() and m_borderSlices to hold the desired cuts
3525         for the border image drawing area. Converted the slices over to the new Quad primitive value (a RectBase
3526         subclass that is identical to Rect but dumps as a quad instead of a rect primitive).
3527
3528         * css/CSSBorderImageValue.cpp:
3529         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
3530         (WebCore::CSSBorderImageValue::cssText):
3531         * css/CSSBorderImageValue.h:
3532         (WebCore::CSSBorderImageValue::create):
3533         Make CSSBorderImageValue take the border slices during construction now.
3534     
3535         * css/CSSComputedStyleDeclaration.cpp:
3536         (WebCore::valueForNinePieceImageSlice):
3537         (WebCore::valueForNinePieceImageWidth):
3538         (WebCore::valueForNinePieceImageRepeat):
3539         (WebCore::valueForNinePieceImage):
3540         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3541         Add support for computed style via valueForNinePieceImageWidth. Patch all of the border image properties
3542         to dump the most compact form possible for the property values, e.g., "stretch stretch" becomes "stretch."
3543
3544         * css/CSSParser.cpp:
3545         (WebCore::CSSParser::parseValue):
3546         (WebCore::CSSParser::parseReflect):
3547         (WebCore::BorderImageParseContext::BorderImageParseContext):
3548         (WebCore::BorderImageParseContext::commitImageSlice):
3549         (WebCore::BorderImageParseContext::commitBorderWidth):
3550         (WebCore::BorderImageParseContext::commitBorderImage):
3551         (WebCore::CSSParser::parseBorderImage):
3552         (WebCore::isBorderImageRepeatKeyword):
3553         (WebCore::CSSParser::parseBorderImageRepeat):
3554         (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
3555         (WebCore::CSSParser::parseBorderImageSlice):
3556         (WebCore::BorderImageWidthParseContext::BorderImageWidthParseContext):
3557         (WebCore::BorderImageWidthParseContext::allowNumber):
3558         (WebCore::BorderImageWidthParseContext::allowFinalCommit):
3559         (WebCore::BorderImageWidthParseContext::top):
3560         (WebCore::BorderImageWidthParseContext::commitNumber):
3561         (WebCore::BorderImageWidthParseContext::setAllowFinalCommit):
3562         (WebCore::BorderImageWidthParseContext::setTop):
3563         (WebCore::BorderImageWidthParseContext::commitBorderImageWidth):
3564         (WebCore::CSSParser::parseBorderImageWidth):
3565         * css/CSSParser.h:
3566         Modify the border-image code to pass off border-image-width parsing to parseBorderImageWidth.
3567
3568         * css/CSSPrimitiveValue.cpp:
3569         (WebCore::isValidCSSUnitTypeForDoubleConversion):
3570         (WebCore::CSSPrimitiveValue::init):
3571         (WebCore::CSSPrimitiveValue::cleanup):
3572         (WebCore::CSSPrimitiveValue::getQuadValue):
3573         (WebCore::CSSPrimitiveValue::cssText):
3574         * css/CSSPrimitiveValue.h:
3575         (WebCore::CSSPrimitiveValue::getQuadValue):
3576         Add the new Quad value to CSSPrimitiveValue.
3577     
3578         * css/CSSPropertyNames.in:
3579         Add the new properties for border-image-width and -webkit-mask-box-image-width.
3580
3581         * css/CSSStyleSelector.cpp:
3582         (WebCore::CSSStyleSelector::applyProperty):
3583         (WebCore::CSSStyleSelector::mapNinePieceImage):
3584         (WebCore::CSSStyleSelector::mapNinePieceImageSlice):
3585         (WebCore::CSSStyleSelector::mapNinePieceImageWidth):
3586         (WebCore::CSSStyleSelector::loadPendingImages):
3587         * css/CSSStyleSelector.h:
3588         Add the code to map the image width into border slices.
3589     
3590         * css/Rect.h:
3591         (WebCore::RectBase::top):
3592         (WebCore::RectBase::right):
3593         (WebCore::RectBase::bottom):
3594         (WebCore::RectBase::left):
3595         (WebCore::RectBase::setTop):
3596         (WebCore::RectBase::setRight):
3597         (WebCore::RectBase::setBottom):
3598         (WebCore::RectBase::setLeft):
3599         (WebCore::RectBase::RectBase):
3600         (WebCore::RectBase::~RectBase):
3601         (WebCore::Rect::create):
3602         (WebCore::Rect::Rect):
3603         (WebCore::Quad::create):
3604         (WebCore::Quad::Quad):
3605         Adding the new Quad value.
3606
3607         * rendering/RenderBoxModelObject.cpp:
3608         (WebCore::computeBorderImageSide):
3609         (WebCore::RenderBoxModelObject::paintNinePieceImage):
3610         Modify painting to treat the border slices as separate from the border widths.
3611         
3612         * rendering/style/NinePieceImage.cpp:
3613         (WebCore::NinePieceImage::operator==):
3614         * rendering/style/NinePieceImage.h:
3615         (WebCore::NinePieceImage::NinePieceImage):
3616         (WebCore::NinePieceImage::imageSlices):
3617         (WebCore::NinePieceImage::setImageSlices):
3618         (WebCore::NinePieceImage::borderSlices):
3619         (WebCore::NinePieceImage::setBorderSlices):
3620         (WebCore::NinePieceImage::copyImageSlicesFrom):
3621         (WebCore::NinePieceImage::copyBorderSlicesFrom):
3622         * rendering/style/StyleRareNonInheritedData.cpp:
3623         Add the border slices.
3624         
3625         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3626         * rendering/style/StyleReflection.h:
3627         (WebCore::StyleReflection::StyleReflection):
3628         Make sure masks and reflections default border-image-width to auto instead of 1, since that matches
3629         old behavior.
3630
3631 2011-09-06  Noel Gordon  <noel.gordon@gmail.com>
3632
3633         [chromium skia] JPEGImageEncoder: hoist constants out of the encoding loop
3634         https://bugs.webkit.org/show_bug.cgi?id=67589
3635
3636         Reviewed by Kenneth Russell.
3637
3638         Change the row converter function signatures to be the same.  Call them via a function
3639         pointer during the encoding loop.  Minor webkit style cleanup, remove unused include.
3640
3641         No new tests.  Covered by existing canvas 2d and 3d tests.
3642         canvas/philip/tests/toDataURL.jpeg.alpha.html
3643         fast/canvas/webgl/premultiplyalpha-test.html
3644
3645         * platform/image-encoders/skia/JPEGImageEncoder.cpp:  Remove SkUnPreMultiply.h (not used).
3646         (WebCore::preMultipliedBGRAtoRGB):  Use unsigned char* instead of void* for pixels.
3647         (WebCore::RGBAtoRGB):  pixels & pixelCount to match the preMultipliedBGRAtoRGB() signature.
3648         (WebCore::encodePixels):  Move constants out of the encoding loop: use a function pointer
3649         to call preMultipliedBGRAtoRGB or RGBAtoRGB (now they have identical signatures), define
3650         and use pixelRowStride constant.
3651         (WebCore::JPEGImageEncoder::encode):
3652
3653 2011-09-06  Aaron Colwell  <acolwell@chromium.org>
3654
3655         Allow MediaSource API to be enabled at runtime.
3656         https://bugs.webkit.org/show_bug.cgi?id=67306
3657
3658         Reviewed by Eric Carlson.
3659
3660         * bindings/generic/RuntimeEnabledFeatures.cpp:
3661         * bindings/generic/RuntimeEnabledFeatures.h:
3662         (WebCore::RuntimeEnabledFeatures::webkitMediaSourceEnabled):
3663         (WebCore::RuntimeEnabledFeatures::setWebkitMediaSourceEnabled):
3664         * html/HTMLMediaElement.idl:
3665
3666 2011-09-06  Mike Reed  <reed@google.com>
3667
3668         [skia] never draw with GDI, so that all text can be gpu-accelerated
3669         https://bugs.webkit.org/show_bug.cgi?id=65203
3670
3671         Reviewed by Kenneth Russell.
3672
3673         * platform/graphics/chromium/FontChromiumWin.cpp:
3674         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter):
3675         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter):
3676         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3677         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::TransparencyAwareUniscribePainter):
3678         (WebCore::drawGlyphsWin):
3679         (WebCore::Font::drawComplexText):
3680         * platform/graphics/chromium/UniscribeHelper.cpp:
3681         (WebCore::UniscribeHelper::draw):
3682         * platform/graphics/skia/PlatformContextSkia.cpp:
3683         * platform/graphics/skia/PlatformContextSkia.h:
3684         * platform/graphics/skia/SkiaFontWin.cpp:
3685         (WebCore::skiaDrawText):
3686         * platform/graphics/skia/SkiaFontWin.h:
3687
3688 2011-09-06  Nat Duca  <nduca@chromium.org>
3689
3690         [chromium] REGRESSION(94353): requestAnimationFrame not throttled in compositing path
3691         https://bugs.webkit.org/show_bug.cgi?id=67621
3692
3693         CCSingleThreadProxy should not perform layout when called
3694         via the compositeImmediately path. Doing so makes it look
3695         like frame rate is unbounded.
3696
3697         Reviewed by James Robinson.
3698
3699         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3700         (WebCore::CCSingleThreadProxy::compositeAndReadback):
3701         (WebCore::CCSingleThreadProxy::compositeImmediately):
3702         (WebCore::CCSingleThreadProxy::commitIfNeeded):
3703         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3704
3705 2011-09-06  Ryosuke Niwa  <rniwa@webkit.org>
3706
3707         REGRESSION(r94274): FormManagerTest.PreviewForm and FillFormNonEmptyField fail on chromium
3708         https://bugs.webkit.org/show_bug.cgi?id=67453
3709
3710         Reviewed by Kent Tamura.
3711
3712         Fixed the bug by updating inner text value in setSuggestedValue.
3713
3714         Also added a suggestedValue and setSuggestedValue on window.internals for testing purposes.
3715
3716         Test: fast/forms/suggested-value.html
3717
3718         * WebCore.exp.in:
3719         * testing/Internals.cpp:
3720         (WebCore::Internals::suggestedValue):
3721         (WebCore::Internals::setSuggestedValue):
3722         * testing/Internals.h:
3723         * testing/Internals.idl:
3724
3725 2011-09-06  Eric Carlson  <eric.carlson@apple.com>
3726
3727         load() does not reset the resource selection algorithm
3728         https://bugs.webkit.org/show_bug.cgi?id=64917
3729
3730         Reviewed by Darin Adler.
3731
3732         Test: media/video-source-load.html
3733
3734         * html/HTMLMediaElement.cpp:
3735         (WebCore::HTMLMediaElement::selectMediaResource): Reset m_nextChildNodeToConsider, update
3736             comments and rearrange logic to more closely match logic in spec.
3737         (WebCore::HTMLMediaElement::noneSupported): Update comments.
3738
3739 2011-09-06  Abhishek Arya  <inferno@chromium.org>
3740
3741         Style not propagated to anonymous boxes and anonymous
3742         inline-blocks.
3743         https://bugs.webkit.org/show_bug.cgi?id=67364
3744
3745         Reviewed by James Robinson.
3746
3747         Share propagateStyleToAnonymousChildren with RenderBlock::styleDidChange.
3748
3749         * rendering/RenderBlock.cpp:
3750         (WebCore::RenderBlock::styleDidChange):
3751         * rendering/RenderObject.cpp:
3752         (WebCore::RenderObject::propagateStyleToAnonymousChildren):
3753         * rendering/RenderObject.h:
3754
3755 2011-09-06  Robin Cao  <robin.cao@torchmobile.com.cn>
3756
3757         [skia] States of GraphicsContext may never be restored after clipToImageBuffer
3758         https://bugs.webkit.org/show_bug.cgi?id=67358
3759
3760         beginLayerClippedToImage/applyClipFromImage are mismatched when clipping to
3761         an empty ImageBuffer, which will make states of GraphicsContext incorrect.
3762
3763         Reviewed by James Robinson.
3764
3765         Test: fast/repaint/background-clip-text.html
3766
3767         * platform/graphics/skia/PlatformContextSkia.cpp:
3768         (WebCore::PlatformContextSkia::beginLayerClippedToImage):
3769
3770 2011-09-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
3771
3772         [EFL] Do not allocate memory for extremely large surfaces.
3773         https://bugs.webkit.org/show_bug.cgi?id=65192
3774
3775         Reviewed by Martin Robinson.
3776
3777         So far, RenderThemeEfl tried to allocate a buffer and a cairo surface
3778         the size of the whole form element passed to it.
3779
3780         In the case of
3781         fast/overflow/overflow-height-float-not-removed-crash.html and others,
3782         this meant extremely large widgets, which crashed the code.
3783
3784         We now only render the widgets if they are smaller than some hardcoded
3785         and sufficiently large values which should work in most cases.
3786
3787         No new tests, as this was uncovered by existing ones.
3788
3789         * platform/efl/RenderThemeEfl.cpp:
3790         (WebCore::RenderThemeEfl::isFormElementTooLargeToDisplay):
3791         (WebCore::RenderThemeEfl::cacheThemePartNew):
3792         (WebCore::RenderThemeEfl::paintThemePart):
3793         * platform/efl/RenderThemeEfl.h:
3794
3795 2011-08-30  Pavel Podivilov  <podivilov@chromium.org>
3796
3797         Web Inspector: implement source map v3 consumer.
3798         https://bugs.webkit.org/show_bug.cgi?id=67205
3799
3800         Reviewed by Yury Semikhatsky.
3801
3802         Test: inspector/debugger/compiler-source-mapping.html
3803
3804         * WebCore.gypi:
3805         * WebCore.vcproj/WebCore.vcproj:
3806         * inspector/front-end/CompilerSourceMapping.js: Added.
3807         (WebInspector.CompilerSourceMapping):
3808         (WebInspector.CompilerSourceMapping.prototype.compiledLocationToSourceLocation):
3809         (WebInspector.CompilerSourceMapping.prototype.sourceLocationToCompiledLocation):
3810         (WebInspector.CompilerSourceMapping.prototype.get sources):
3811         (WebInspector.ClosureCompilerSourceMapping):
3812         (WebInspector.ClosureCompilerSourceMapping.prototype.compiledLocationToSourceLocation):
3813         (WebInspector.ClosureCompilerSourceMapping.prototype.sourceLocationToCompiledLocation):
3814         (WebInspector.ClosureCompilerSourceMapping.prototype.get sources):
3815         (WebInspector.ClosureCompilerSourceMapping.prototype._findMapping):
3816         (WebInspector.ClosureCompilerSourceMapping.prototype._parsePayload):
3817         (WebInspector.ClosureCompilerSourceMapping.prototype._isSeparator):
3818         (WebInspector.ClosureCompilerSourceMapping.prototype._decodeVLQ):
3819         (WebInspector.ClosureCompilerSourceMapping.StringCharIterator):
3820         (WebInspector.ClosureCompilerSourceMapping.StringCharIterator.prototype.next):
3821         (WebInspector.ClosureCompilerSourceMapping.StringCharIterator.prototype.peek):
3822         (WebInspector.ClosureCompilerSourceMapping.StringCharIterator.prototype.hasNext):
3823         * inspector/front-end/WebKit.qrc:
3824         * inspector/front-end/inspector.html:
3825
3826 2011-09-05  Pavel Podivilov  <podivilov@chromium.org>
3827
3828         Web Inspector: re-implement RawSourceCode.
3829         https://bugs.webkit.org/show_bug.cgi?id=67609
3830
3831         RawSourceCode content and source mapping loading logic is too complex, re-implement it using simpler semantics:
3832         1) Initially, RawSourceCode doesn't have any content or mapping because content loading and
3833         formatting operations are asynchronous, it only has scripts metadata. We don't update UI right
3834         after RawSourceCode creation until full RawSourceCode representation is ready (content + mapping).
3835         2) When RawSourceCode representation is ready (e.g. resource is finished, or content is formatted
3836         if in pretty-print mode) we dispatch SourceMappingUpdated event to notify the listeners that
3837         source code should be shown to user and raw locations should be converted to ui locations
3838         (to show breakpoins, messages, call frames etc in UI). At this moment, all source file's content
3839         is ready for loading and source mapping is available.
3840         3) Later, RawSourceCode representation may change again, e.g. if pretty-print mode is toggled, or
3841         blocked resource is finished etc., in that case SourceMappingUpdated is dispatched again to update
3842         source code, links and decorations in UI.
3843
3844         Reviewed by Yury Semikhatsky.
3845
3846         * inspector/front-end/DebuggerPresentationModel.js:
3847         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3848         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3849         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3850         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3851         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage.didGetUILocation):
3852         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage):
3853         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
3854         * inspector/front-end/ScriptsPanel.js:
3855         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
3856         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
3857         * inspector/front-end/SourceFile.js:
3858         (WebInspector.RawSourceCode):
3859         (WebInspector.RawSourceCode.prototype.addScript):
3860         (WebInspector.RawSourceCode.prototype.contentEdited):
3861         (WebInspector.RawSourceCode.prototype._resourceFinished):
3862         (WebInspector.RawSourceCode.prototype.requestContent):
3863         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded.sourceMappingUpdated):
3864         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded):
3865         (WebInspector.RawSourceCode.prototype.forceLoadContent):
3866         (WebInspector.RawSourceCode.prototype._updateSourceMapping.didCreateSourceMapping):
3867         (WebInspector.RawSourceCode.prototype._updateSourceMapping):
3868         (WebInspector.RawSourceCode.prototype._createContentProvider):
3869         (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent.didFormatContent):
3870         (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent):
3871         (WebInspector.RawSourceCode.prototype._createSourceMapping):
3872         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
3873         (WebInspector.StaticContentProvider):
3874         (WebInspector.StaticContentProvider.prototype.requestContent):
3875
3876 2011-09-06  Csaba Osztrogonác  <ossy@webkit.org>
3877
3878         Unreviewed, rolling out r94564.
3879         http://trac.webkit.org/changeset/94564
3880         https://bugs.webkit.org/show_bug.cgi?id=67555
3881
3882         It broke many tests
3883
3884         * svg/SVGTRefElement.cpp:
3885         (WebCore::SVGTRefElement::svgAttributeChanged):
3886
3887 2011-09-06  Rob Buis  <rbuis@rim.com>
3888
3889         use after free in WebCore::SVGTRefElement::updateReferencedText
3890         https://bugs.webkit.org/show_bug.cgi?id=67555
3891
3892         Reviewed by Nikolas Zimmermann.
3893
3894         Do not install event listener if tref is not part of any document.
3895
3896         Test: svg/custom/tref-clone-crash.html
3897
3898         * svg/SVGTRefElement.cpp:
3899         (WebCore::SVGTRefElement::svgAttributeChanged):
3900
3901 2011-09-06  Sheriff Bot  <webkit.review.bot@gmail.com>
3902
3903         Unreviewed, rolling out r94560.
3904         http://trac.webkit.org/changeset/94560
3905         https://bugs.webkit.org/show_bug.cgi?id=67636
3906
3907         It made inspector/debugger/script-formatter.html flakey
3908         (Requested by Ossy on #webkit).
3909
3910         * inspector/front-end/BreakpointManager.js:
3911         (WebInspector.BreakpointManager.prototype.set reset):
3912         * inspector/front-end/DebuggerPresentationModel.js:
3913         (WebInspector.DebuggerPresentationModel.prototype._addScript.didCreateSourceMapping):
3914         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3915         (WebInspector.DebuggerPresentationModel.prototype._uiSourceCodeReplaced):
3916         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3917         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage.didGetUILocation):
3918         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage):
3919         (WebInspector.PresenationCallFrame.prototype.select):
3920         * inspector/front-end/ScriptsPanel.js:
3921         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
3922         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
3923         * inspector/front-end/SourceFile.js:
3924         (WebInspector.RawSourceCode):
3925         (WebInspector.RawSourceCode.prototype.addScript):
3926         (WebInspector.RawSourceCode.prototype.contentEdited):
3927         (WebInspector.RawSourceCode.prototype.requestContent):
3928         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded.didRequestContent):
3929         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded):
3930         (WebInspector.RawSourceCode.prototype._setContentProvider):
3931         (WebInspector.RawSourceCode.prototype.forceLoadContent):
3932         (WebInspector.RawSourceCode.prototype._reload):
3933         (WebInspector.RawSourceCode.prototype._requestContent):
3934         (WebInspector.RawSourceCode.prototype._loadResourceContent):
3935         (WebInspector.RawSourceCode.prototype._loadScriptContent):
3936         (WebInspector.RawSourceCode.prototype._loadAndConcatenateScriptsContent):
3937         (WebInspector.RawSourceCode.prototype._didRequestContent):
3938         (WebInspector.RawSourceCode.prototype._hasPendingResource):
3939         (WebInspector.FormattedContentProvider):
3940         (WebInspector.FormattedContentProvider.prototype.requestContent.didRequestContent.didFormatContent):
3941         (WebInspector.FormattedContentProvider.prototype.requestContent):
3942
3943 2011-09-06  Antti Koivisto  <antti@apple.com>
3944
3945         https://bugs.webkit.org/show_bug.cgi?id=67480
3946         [Chromium] [REGRESSION] Layout Test svg/batik/text/textStyles.svg is failing
3947
3948         Reviewed by Dimitri Glazkov.
3949
3950         The text node needs willRecalcStyle mechanism too.
3951
3952         * dom/Text.cpp:
3953         (WebCore::Text::recalcTextStyle):
3954         * dom/Text.h:
3955         (WebCore::Text::willRecalcTextStyle):
3956         * svg/SVGTRefElement.cpp:
3957         (WebCore::SVGTRefElement::SVGTRefElement):
3958         (WebCore::SVGShadowText::SVGShadowText):
3959         (WebCore::SVGShadowText::willRecalcTextStyle):
3960
3961 2011-09-05  Pavel Podivilov  <podivilov@chromium.org>
3962
3963         Web Inspector: re-implement RawSourceCode.
3964         https://bugs.webkit.org/show_bug.cgi?id=67609
3965
3966         RawSourceCode content and source mapping loading logic is too complex, re-implement it using simpler semantics:
3967         1) Initially, RawSourceCode doesn't have any content or mapping because content loading and
3968         formatting operations are asynchronous, it only has scripts metadata. We don't update UI right
3969         after RawSourceCode creation until full RawSourceCode representation is ready (content + mapping).
3970         2) When RawSourceCode representation is ready (e.g. resource is finished, or content is formatted
3971         if in pretty-print mode) we dispatch SourceMappingUpdated event to notify the listeners that
3972         source code should be shown to user and raw locations should be converted to ui locations
3973         (to show breakpoins, messages, call frames etc in UI). At this moment, all source file's content
3974         is ready for loading and source mapping is available.
3975         3) Later, RawSourceCode representation may change again, e.g. if pretty-print mode is toggled, or
3976         blocked resource is finished etc., in that case SourceMappingUpdated is dispatched again to update
3977         source code, links and decorations in UI.
3978
3979         Reviewed by Yury Semikhatsky.
3980
3981         * inspector/front-end/DebuggerPresentationModel.js:
3982         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3983         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3984         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3985         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3986         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage.didGetUILocation):
3987         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessage):
3988         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
3989         * inspector/front-end/ScriptsPanel.js:
3990         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
3991         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
3992         * inspector/front-end/SourceFile.js:
3993         (WebInspector.RawSourceCode):
3994         (WebInspector.RawSourceCode.prototype.addScript):
3995         (WebInspector.RawSourceCode.prototype.contentEdited):
3996         (WebInspector.RawSourceCode.prototype._resourceFinished):
3997         (WebInspector.RawSourceCode.prototype.requestContent):
3998         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded.sourceMappingUpdated):
3999         (WebInspector.RawSourceCode.prototype.createSourceMappingIfNeeded):
4000         (WebInspector.RawSourceCode.prototype.forceLoadContent):