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