d2a84cbc89c48300db4f99c5cc969548cc33d641
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-01-31  Alexei Filippov  <alexeif@chromium.org>
2
3         Web Inspector: show sizes in bytes instead of KB, MB in heap profiler.
4         https://bugs.webkit.org/show_bug.cgi?id=77199
5
6         Reviewed by Pavel Feldman.
7
8         * inspector/front-end/DetailedHeapshotGridNodes.js:
9         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
10         (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
11         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
12         (WebInspector.HeapSnapshotDiffNode.prototype.get data):
13         * inspector/front-end/UIUtils.js:
14         (Number.withThousandsSeparator):
15
16 2012-01-26  Hans Wennborg  <hans@chromium.org>
17
18         Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
19         https://bugs.webkit.org/show_bug.cgi?id=77083
20
21         Reviewed by Darin Fisher.
22
23         Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
24         implementation.
25
26         No new tests, just refactoring.
27
28         * GNUmakefile.list.am:
29         * Target.pri:
30         * WebCore.gypi:
31         * WebCore.vcproj/WebCore.vcproj:
32         * WebCore.xcodeproj/project.pbxproj:
33         * platform/mock/SpeechInputClientMock.cpp: Removed.
34         * platform/mock/SpeechInputClientMock.h: Removed.
35
36 2012-01-31  Pavel Feldman  <pfeldman@google.com>
37
38         Web Inspector: boost protocol version to 1.0
39         https://bugs.webkit.org/show_bug.cgi?id=77408
40
41         Reviewed by Yury Semikhatsky.
42
43         * inspector/Inspector-1.0.json: Copied from Source/WebCore/inspector/Inspector.json.
44         * inspector/Inspector.json:
45
46 2012-01-31  Roland Steiner  <rolandsteiner@chromium.org>
47
48         <style scoped>: Improve shortcut code for cases where <style scoped> isn't used
49         https://bugs.webkit.org/show_bug.cgi?id=77410
50
51         Move shortcut from setupScopingElementStack(), do it at the calling sites instead
52         (where a larger chunk of work can be skipped).
53
54         Reviewed by Antti Koivisto.
55
56         No new tests. (refactoring)
57
58         * css/CSSStyleSelector.cpp:
59         (WebCore::CSSStyleSelector::setupScopingElementStack): remove shortcut code
60         (WebCore::CSSStyleSelector::pushParent): add shortcut code
61         (WebCore::CSSStyleSelector::matchScopedAuthorRules): factor matching scoped rules out from matchAuthorRules
62         (WebCore::CSSStyleSelector::matchAuthorRules): add shortcut code
63         * css/CSSStyleSelector.h:
64         (CSSStyleSelector): add matchScopedAuthorRules
65
66 2012-01-31  Pavel Feldman  <pfeldman@google.com>
67
68         Web Inspector: DOMDebugger.setEventListenerBreakpoint should accept regular DOM event names.
69         https://bugs.webkit.org/show_bug.cgi?id=77409
70
71         Reviewed by Yury Semikhatsky.
72
73         * inspector/Inspector.json:
74         * inspector/InspectorDOMDebuggerAgent.cpp:
75         (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
76         (WebCore):
77         (WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
78         (WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
79         (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
80         (WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
81         (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
82         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
83         * inspector/InspectorDOMDebuggerAgent.h:
84         (InspectorDOMDebuggerAgent):
85         * inspector/InspectorInstrumentation.cpp:
86         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
87         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
88         (WebCore::InspectorInstrumentation::willHandleEventImpl):
89         (WebCore::InspectorInstrumentation::willFireTimerImpl):
90         (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
91         * inspector/InspectorInstrumentation.h:
92         (InspectorInstrumentation):
93         * inspector/front-end/BreakpointsSidebarPane.js:
94         (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint):
95         (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint):
96
97 2012-01-31  Pablo Flouret  <pablof@motorola.com>
98
99         Fix compilation errors on build-webkit --debug --no-workers on mac.
100         https://bugs.webkit.org/show_bug.cgi?id=75869
101
102         Reviewed by Adam Barth.
103
104         * WebCore.exp.in:
105
106 2012-01-30  Konrad Piascik  <kpiascik@rim.com>
107
108         Web Inspector: [BlackBerry] Add BlackBerry UA Strings to the Inspector's UA switcher
109         https://bugs.webkit.org/show_bug.cgi?id=77343
110
111         Reviewed by Yury Semikhatsky.
112
113         * inspector/front-end/SettingsScreen.js:
114         (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
115
116 2012-01-30  Yury Semikhatsky  <yurys@chromium.org>
117
118         Web Inspector: should be possible to step through all event listeners when event listener breakpoint is hit
119         https://bugs.webkit.org/show_bug.cgi?id=77331
120
121         Inspector instrumentation is called before and after each event handler invokation.
122         In case inspector front-end is closed it is no-op, otherwise it may stop execution
123         on an event listener breakpoint.
124
125         Reviewed by Pavel Feldman.
126
127         Test: inspector/debugger/step-through-event-listeners.html
128
129         * dom/EventTarget.cpp:
130         (WebCore::EventTarget::fireEventListeners):
131         * inspector/InspectorInstrumentation.cpp:
132         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
133         (WebCore::InspectorInstrumentation::willHandleEventImpl):
134         (WebCore):
135         (WebCore::InspectorInstrumentation::didHandleEventImpl):
136         (WebCore::InspectorInstrumentation::didDispatchEventImpl):
137         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
138         (WebCore::InspectorInstrumentation::didDispatchEventOnWindowImpl):
139         * inspector/InspectorInstrumentation.h:
140         (InspectorInstrumentation):
141         (WebCore::InspectorInstrumentation::willHandleEvent):
142         (WebCore):
143         (WebCore::InspectorInstrumentation::didHandleEvent):
144
145 2011-01-30  Hayato Ito  <hayato@chromium.org>
146
147         Attach light children after removing a shadow root.
148         https://bugs.webkit.org/show_bug.cgi?id=74267
149
150         Reviewed by Ryosuke Niwa.
151
152         Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
153                fast/dom/shadow/dynamically-created-shadow-root.html:
154
155         * dom/Element.cpp:
156         (WebCore::Element::removeShadowRoot):
157
158 2012-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>
159
160         Unreviewed, rolling out r106324.
161         http://trac.webkit.org/changeset/106324
162         https://bugs.webkit.org/show_bug.cgi?id=77406
163
164         Broke CCLayerTreeHostTestLayerOcclusion.runMultiThread and
165         runSingleThread (Requested by yuzo1 on #webkit).
166
167         * platform/graphics/FloatRect.cpp:
168         * platform/graphics/FloatRect.h:
169         (WebCore):
170         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
171         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
172         * platform/graphics/chromium/Canvas2DLayerChromium.h:
173         (WebCore):
174         (Canvas2DLayerChromium):
175         * platform/graphics/chromium/ContentLayerChromium.cpp:
176         (WebCore::ContentLayerChromium::paintContentsIfDirty):
177         * platform/graphics/chromium/ContentLayerChromium.h:
178         (WebCore):
179         (ContentLayerChromium):
180         * platform/graphics/chromium/ImageLayerChromium.cpp:
181         (WebCore::ImageLayerChromium::paintContentsIfDirty):
182         * platform/graphics/chromium/ImageLayerChromium.h:
183         (WebCore):
184         (ImageLayerChromium):
185         * platform/graphics/chromium/LayerChromium.cpp:
186         * platform/graphics/chromium/LayerChromium.h:
187         (WebCore):
188         (WebCore::LayerChromium::paintContentsIfDirty):
189         (LayerChromium):
190         * platform/graphics/chromium/RenderSurfaceChromium.h:
191         * platform/graphics/chromium/TiledLayerChromium.cpp:
192         * platform/graphics/chromium/TiledLayerChromium.h:
193         (WebCore):
194         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
195         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
196         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
197         (WebCore::CCLayerTreeHost::paintLayerContents):
198         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
199         (WebCore):
200         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
201         (WebCore::enclosedIntRect):
202         (WebCore):
203
204 2012-01-30  Raymond Liu  <raymond.liu@intel.com>
205
206         Fix ASSERT fail within AudioBus::processWithGainFrom()
207         https://bugs.webkit.org/show_bug.cgi?id=76685
208
209         Reviewed by Daniel Bates.
210
211         Test: webaudio/audionode-connect-order.html
212
213         * webaudio/AudioBasicProcessorNode.cpp:
214         (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
215
216 2012-01-30  Roland Steiner  <rolandsteiner@chromium.org>
217
218         <style scoped>: Implement scoped stylesheets and basic application
219         https://bugs.webkit.org/show_bug.cgi?id=73190
220
221         Implementing support for <style scoped>:
222         Add a vector stack to CSSStyleSelector that keeps track of encountered scoping elements. This is
223         used for O(1) access to all relevant style sheets for a given element.
224         Adapt matching of author style sheets to also consult appropriate scoped sheets.
225         Finally, prevent style sharing from crossing into/out of scoped style boundaries.
226
227         Reviewed by Antti Koivisto.
228
229         Tests: fast/css/style-scoped/style-scoped-attach.html
230                fast/css/style-scoped/style-scoped-basic.html
231                fast/css/style-scoped/style-scoped-detach.html
232                fast/css/style-scoped/style-scoped-remove-scoped.html
233                fast/css/style-scoped/style-scoped-set-scoped.html
234
235         * css/CSSStyleSelector.cpp:
236         (RuleSet):
237         (WebCore::CSSStyleSelector::CSSStyleSelector): add code for scoped style sheets
238         (WebCore::CSSStyleSelector::collectFeatures): ditto
239         (WebCore):
240         (WebCore::CSSStyleSelector::determineScopingElement): determine whether an author sheet is scoped (and to which scope), or global
241         (WebCore::CSSStyleSelector::scopedRuleSetForElement): returns the RuleSet for the <style scoped> contained by the passed-in element (if any), or 0
242         (WebCore::CSSStyleSelector::appendAuthorStylesheets): add code for scoped style sheets
243         (WebCore::CSSStyleSelector::setupScopingElementStack): determine scoping element ancestors of the given element
244         (WebCore::CSSStyleSelector::pushParent): simplify and refactor SelectorChecker::pushParent, as code in CSStyleSelector needs partial access
245         (WebCore::CSSStyleSelector::popParent): ditto
246         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules): helper function
247         (WebCore::CSSStyleSelector::matchAuthorRules): use AuthorRuleSetIterator to iterate over all relevant RuleSets
248         (WebCore::CSSStyleSelector::matchRules): adapt for scoped style rules
249         (WebCore::CSSStyleSelector::matchAllRules): ditto
250         (WebCore::CSSStyleSelector::locateCousinList): prevent style sharing across scope boundaries
251         (WebCore::CSSStyleSelector::canShareStyleWithElement): ditto
252         (WebCore::CSSStyleSelector::locateSharedStyle): ditto
253         (WebCore::CSSStyleSelector::pseudoStyleForElement): changed call to matchAuthorRules
254         (WebCore::CSSStyleSelector::styleForPage): add comment
255         (WebCore::CSSStyleSelector::checkRegionStyle): add global scope parameter
256         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): changed call to matchAuthorRules
257         (WebCore::RuleSet::addRulesFromSheet): adapt for scoped style rules
258         * css/CSSStyleSelector.h:
259         (CSSStyleSelector):
260         (WebCore::CSSStyleSelector::ScopeStackFrame::ScopeStackFrame): struct holding an Element pointer and a RuleSet pointer, to be used in a Vector
261         (WebCore::CSSStyleSelector::scopingElementStackIsConsistent): returns if the last seen parent matches the passed-in element
262         * css/SelectorChecker.cpp:
263         (WebCore::SelectorChecker::setupParentStack): set up the parent stack (refactoring)
264         (WebCore::SelectorChecker::pushParent): simplify and refactor
265         * css/SelectorChecker.h:
266         (WebCore::SelectorChecker::popParent): ditto
267         (WebCore::SelectorChecker::parentStackIsEmpty): ditto
268         (WebCore::SelectorChecker::parentStackIsConsistent): make parameter const
269
270 2012-01-30  Dana Jansens  <danakj@chromium.org>
271
272         [chromium] Compute occlusion during paint loop
273         https://bugs.webkit.org/show_bug.cgi?id=76858
274
275         Reviewed by James Robinson.
276
277         New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp
278
279         * platform/graphics/FloatRect.cpp:
280         (WebCore::enclosedIntRect):
281         (WebCore):
282         * platform/graphics/FloatRect.h:
283         (WebCore):
284         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
285         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
286         * platform/graphics/chromium/Canvas2DLayerChromium.h:
287         (Canvas2DLayerChromium):
288         * platform/graphics/chromium/ContentLayerChromium.cpp:
289         (WebCore::ContentLayerChromium::paintContentsIfDirty):
290         * platform/graphics/chromium/ContentLayerChromium.h:
291         (ContentLayerChromium):
292         * platform/graphics/chromium/ImageLayerChromium.cpp:
293         (WebCore::ImageLayerChromium::paintContentsIfDirty):
294         * platform/graphics/chromium/ImageLayerChromium.h:
295         (ImageLayerChromium):
296         * platform/graphics/chromium/LayerChromium.cpp:
297         (WebCore::LayerChromium::contentToScreenSpaceTransform):
298         (WebCore):
299         (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
300         (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
301         * platform/graphics/chromium/LayerChromium.h:
302         (WebCore):
303         (WebCore::LayerChromium::paintContentsIfDirty):
304         (LayerChromium):
305         * platform/graphics/chromium/RenderSurfaceChromium.h:
306         (RenderSurfaceChromium):
307         * platform/graphics/chromium/TiledLayerChromium.cpp:
308         (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
309         * platform/graphics/chromium/TiledLayerChromium.h:
310         (WebCore):
311         ():
312         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
313         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
314         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
315         (RenderSurfaceRegion):
316         (WebCore):
317         (WebCore::pushTargetRenderSurfaceRegion):
318         (WebCore::popAndPushTargetRenderSurfaceRegion):
319         (WebCore::CCLayerTreeHost::paintLayerContents):
320         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
321         (WebCore):
322         ():
323         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
324
325 2012-01-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
326
327         Add ElementAttributeData class to replace internal uses of NamedNodeMap
328         https://bugs.webkit.org/show_bug.cgi?id=77233
329
330         Reviewed by Andreas Kling.
331
332         Move part of non-DOM functionality of NamedNodeMap into a separate class. This is
333         the first step toward the goal of separating NamedNodeMap from internal attribute
334         storage, as described in https://bugs.webkit.org/show_bug.cgi?id=75069.
335
336         The internal attribute storage is exposed as attributeData() in Element, and when
337         necessary (because it has no back pointer to Element) via methods in Element.
338
339         No new tests. Except from setClass() change this is just moving the code, no new
340         feature was added.
341
342         * CMakeLists.txt:
343         * GNUmakefile.list.am:
344         * Target.pri:
345         * WebCore.gypi:
346         * WebCore.xcodeproj/project.pbxproj:
347         * dom/DOMAllInOne.cpp:
348         * dom/Element.cpp:
349         (WebCore::Element::idAttributeChanged):
350         * dom/Element.h:
351         (WebCore::Element::attributeData):
352         (WebCore::Element::ensureAttributeData):
353         (Element):
354         (WebCore::Element::idForStyleResolution):
355         * dom/ElementAttributeData.cpp: Added.
356         (WebCore):
357         (WebCore::ElementAttributeData::setClass): the only caller of this function
358         already deal with the case when the element has no class, so don't do it here.
359         * dom/ElementAttributeData.h: Added.
360         (WebCore):
361         (ElementAttributeData):
362         (WebCore::ElementAttributeData::clearClass):
363         (WebCore::ElementAttributeData::classNames):
364         (WebCore::ElementAttributeData::idForStyleResolution):
365         (WebCore::ElementAttributeData::setIdForStyleResolution):
366         (WebCore::ElementAttributeData::ElementAttributeData):
367         * dom/NamedNodeMap.cpp:
368         (WebCore::NamedNodeMap::clearAttributes):
369         * dom/NamedNodeMap.h:
370         (WebCore::NamedNodeMap::attributeData):
371         (NamedNodeMap):
372         * dom/StyledElement.cpp:
373         (WebCore::StyledElement::classAttributeChanged):
374         * dom/StyledElement.h:
375         (WebCore::StyledElement::classNames):
376         * html/ClassList.cpp:
377         (WebCore::ClassList::classNames):
378
379 2012-01-30  Gregg Tavares  <gman@chromium.org>
380
381         Add Plumming to get graphics error messages to JS Console
382         https://bugs.webkit.org/show_bug.cgi?id=77238
383
384         Reviewed by Kenneth Russell.
385
386         No new tests. No change in behavior.
387
388         * html/canvas/WebGLRenderingContext.cpp:
389         (WebGLRenderingContextErrorMessageCallback):
390         (WebCore::WebGLRenderingContextErrorMessageCallback::WebGLRenderingContextErrorMessageCallback):
391         (WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
392         (WebCore::WebGLRenderingContextErrorMessageCallback::~WebGLRenderingContextErrorMessageCallback):
393         (WebCore):
394         (WebCore::WebGLRenderingContext::create):
395         (WebCore::WebGLRenderingContext::initializeNewContext):
396         (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
397         * html/canvas/WebGLRenderingContext.h:
398         (WebGLRenderingContext):
399         * platform/graphics/GraphicsContext3D.h:
400         (ErrorMessageCallback):
401         (WebCore::GraphicsContext3D::ErrorMessageCallback::~ErrorMessageCallback):
402         (GraphicsContext3D):
403         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
404         (WebCore::GraphicsContext3D::setErrorMessageCallback):
405         (WebCore):
406         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
407         (WebCore::GraphicsContext3D::setErrorMessageCallback):
408         (WebCore):
409         * platform/graphics/qt/GraphicsContext3DQt.cpp:
410         (WebCore::GraphicsContext3D::setErrorMessageCallback):
411         (WebCore):
412
413 2012-01-30  Anders Carlsson  <andersca@apple.com>
414
415         Simplify RenderLayerCompositor::frameViewDidScroll
416         https://bugs.webkit.org/show_bug.cgi?id=77398
417
418         Reviewed by Sam Weinig.
419
420         Remove the scrollPosition parameter from RenderLayerCompositor::frameViewDidScroll; we can just get it
421         from the associated FrameView object.
422
423         * page/FrameView.cpp:
424         (WebCore::FrameView::scrollPositionChanged):
425         * rendering/RenderLayerCompositor.cpp:
426         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
427         Call frameViewDidScroll() here instead of setting the scroll layer position explicitly.
428
429         (WebCore::RenderLayerCompositor::frameViewDidScroll):
430         (WebCore::RenderLayerCompositor::ensureRootLayer):
431         * rendering/RenderLayerCompositor.h:
432         (RenderLayerCompositor):
433
434 2012-01-30  Pablo Flouret  <pablof@motorola.com>
435
436         Don't select the next selectable index when deselecting an option in select elements with size set to a value greater than one.
437         https://bugs.webkit.org/show_bug.cgi?id=76389
438
439         Reviewed by Kent Tamura.
440
441         This behavior matches the rest of the browsers.
442
443         Test: fast/forms/select/option-selecting.html
444
445         * html/HTMLSelectElement.cpp:
446         (WebCore::HTMLSelectElement::optionSelectionStateChanged):
447
448 2012-01-30  Anders Carlsson  <andersca@apple.com>
449
450         Scrollbars don't show when scrolling on the scrolling thread
451         https://bugs.webkit.org/show_bug.cgi?id=77396
452         <rdar://problem/10710736>
453
454         Reviewed by Sam Weinig.
455
456         Use ScrollAnimator::scrollToOffsetWithoutAnimation when updating the frame view scroll offset,
457         since that function will end up invalidating the scrollbars correctly.
458
459         * page/ScrollingCoordinator.cpp:
460         (WebCore::ScrollingCoordinator::didUpdateMainFrameScrollPosition):
461
462 2012-01-30  Anders Carlsson  <andersca@apple.com>
463
464         Show repaint counters in individual tiles
465         https://bugs.webkit.org/show_bug.cgi?id=77390
466         <rdar://problem/10767967>
467
468         Reviewed by Darin Adler.
469
470         * platform/graphics/ca/mac/TileCache.h:
471         * platform/graphics/ca/mac/TileCache.mm:
472         (WebCore::TileCache::setNeedsDisplayInRect):
473         Make sure to invalidate the repaint counter rect if necessary.
474
475         (WebCore::TileCache::drawLayer):
476         Draw the repaint counter.
477
478         (WebCore::TileCache::showRepaintCounter):
479         New function that determines whether we should show repaint counters for the given tile cache.
480
481         * platform/graphics/ca/mac/WebTileLayer.h:
482         * platform/graphics/ca/mac/WebTileLayer.mm:
483         (-[WebTileLayer incrementRepaintCount]):
484         Add method for getting the repaint count.
485
486 2012-01-30  Dan Bernstein  <mitz@apple.com>
487
488         <rdar://problem/10778045> REGRESSION (r91935): text-combine fails
489         https://bugs.webkit.org/show_bug.cgi?id=77373
490
491         Reviewed by Darin Adler.
492
493         Removed tests that were failing because of this bug from the Lion skipped
494         list.
495
496         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
497         (WebCore::GlyphPage::fill): Changed to use CTFontGetGlyphsForCharacters,
498         rather than wkGetVerticalGlyphsForCharacters, for non-fullwidth fonts.
499
500 2012-01-30  Christopher Hutten-Czapski  <chutten@rim.com>
501
502         BlackBerry - Support Proxy-Authenticate headers when a proxy is configured
503         https://bugs.webkit.org/show_bug.cgi?id=77361
504
505         Though we have a proxy configured, we might not have the auth
506         credentials it requires. Support Proxy-Authenticate for that case.
507
508         Reviewed by George Staikos.
509
510         * platform/network/blackberry/NetworkJob.cpp:
511         (WebCore::NetworkJob::handleNotifyHeaderReceived):
512         (WebCore::NetworkJob::handleAuthHeader):
513         (WebCore::NetworkJob::sendRequestWithCredentials):
514         * platform/network/blackberry/NetworkJob.h:
515         * platform/network/blackberry/NetworkManager.cpp:
516         (WebCore::NetworkManager::startJob):
517
518 2012-01-27  James Robinson  <jamesr@chromium.org>
519
520         [chromium] Remove unnecessary retry logic in LayerRendererChromium initialization for accelerated painting
521         https://bugs.webkit.org/show_bug.cgi?id=77247
522
523         Reviewed by Kenneth Russell.
524
525         The accelerate painting setting is done differently from other capability-dependent settings for no good reason,
526         requiring that we retry initialization with different settings. For all other settings we set the capabilities
527         bit to true if the setting is requested and if the required capabilities exist on the underlying context.
528
529         * platform/graphics/chromium/LayerRendererChromium.cpp:
530         (WebCore::LayerRendererChromium::create):
531         (WebCore::LayerRendererChromium::initialize):
532         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
533         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
534
535 2012-01-30  Brady Eidson  <beidson@apple.com>
536
537         <rdar://problem/10707072>
538         Crashes in WebProcess at WebCore::Node::rendererIsNeeded
539
540         Reviewed by Darin Adler.
541
542         In specific circumstances a plugin element can be without a render style at the point in time where
543         the page navigated and enters the page cache.
544
545         When this is the cash, the element should not enter into the "custom style for renderer" mode and should
546         instead use the default render style machinery.
547
548         Test: plugins/crash-restoring-pluging-page-from-page-cache.html
549
550         * html/HTMLPlugInImageElement.cpp:
551         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Only setHasCustomStyleForRenderer and 
552           forceRecalc if there actually is a custom style to be used.
553         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Only clearHasCustomStyleForRenderer if there
554           actually was a custom style to be cleared.
555         (WebCore::HTMLPlugInImageElement::customStyleForRenderer): This should only be called if there actually is a 
556           custom style to be used. Otherwise the element would have to fallback to the "normal" RenderStyle which might
557           not exist.
558
559 2012-01-30  Anders Carlsson  <andersca@apple.com>
560
561         Show debug borders for individual tile cache tiles
562         https://bugs.webkit.org/show_bug.cgi?id=77388
563
564         Reviewed by Sam Weinig.
565
566         * platform/graphics/GraphicsLayer.cpp:
567         (WebCore::GraphicsLayer::updateDebugIndicators):
568         Give tile cache tiles a thin dark blue border.
569
570         * platform/graphics/ca/mac/TileCache.h:
571         (WebCore::TileCache::tileDebugBorderWidth):
572         (WebCore::TileCache::tileDebugBorderColor):
573         Add getters and member variables for the tile debug border width and color.
574
575         * platform/graphics/ca/mac/TileCache.mm:
576         (WebCore::TileCache::TileCache):
577         Initialize m_tileDebugBorderWidth.
578
579         (WebCore::TileCache::setTileDebugBorderWidth):
580         Update the border width of each tile layer.
581
582         (WebCore::TileCache::setTileDebugBorderColor):
583         Update the border color of each tile layer.
584
585         (WebCore::TileCache::createTileLayer):
586         Set the border color and border width.
587
588         * platform/graphics/ca/mac/WebTileCacheLayer.h:
589         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
590         (-[WebTileCacheLayer borderColor]):
591         (-[WebTileCacheLayer setBorderColor:]):
592         (-[WebTileCacheLayer borderWidth]):
593         (-[WebTileCacheLayer setBorderWidth:]):
594         Call through to the TileCache.
595
596         * platform/graphics/mac/WebLayer.mm:
597         (drawLayerContents):
598         Don't draw the repaint counter for tile cache layers, each tile will maintain its own repaint counter.
599
600 2012-01-30  Rakesh KN  <rakesh.kn@motorola.com>
601
602         single-file input elements should refuse multi-file drags
603         https://bugs.webkit.org/show_bug.cgi?id=25913
604
605         Reviewed by Eric Seidel.
606
607         Refuse the multiple file drags onto a single file input element.
608
609         No new tests: Covered by existing tests, updated the expected results.
610
611         * page/DragController.cpp:
612         (WebCore::DragController::tryDocumentDrag):
613         Setting the dragSession.numberOfItemsToBeAccepted to 0 so that drag operation is none if the
614         file input element under mouse is single input type and number of files dragged onto that
615         input element are more than 1.
616
617 2012-01-30  Dana Jansens  <danakj@chromium.org>
618
619         [chromium] Use region reported painted opaque for draw culling
620         https://bugs.webkit.org/show_bug.cgi?id=76015
621
622         Reviewed by James Robinson.
623
624         New unit tests in CCTiledLayerImplTest.cpp, CCQuadCullerTest.cpp, CCLayerTreeHostImplTest.cpp
625
626         * platform/graphics/chromium/LayerChromium.cpp:
627         (WebCore::LayerChromium::setOpaque):
628         * platform/graphics/chromium/TiledLayerChromium.cpp:
629         (UpdatableTile):
630         (WebCore::TiledLayerChromium::pushPropertiesTo):
631         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
632         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
633         (WebCore::CCDrawQuad::opaqueRect):
634         (WebCore):
635         * platform/graphics/chromium/cc/CCDrawQuad.h:
636         (CCDrawQuad):
637         (WebCore::CCDrawQuad::needsBlending):
638         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
639         (WebCore::CCQuadCuller::cullOccludedQuads):
640         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
641         (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
642         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
643         (WebCore::CCTileDrawQuad::create):
644         (WebCore::CCTileDrawQuad::CCTileDrawQuad):
645         * platform/graphics/chromium/cc/CCTileDrawQuad.h:
646         (CCTileDrawQuad):
647         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
648         (DrawableTile):
649         (WebCore::DrawableTile::opaqueRect):
650         (WebCore::DrawableTile::setOpaqueRect):
651         (WebCore::CCTiledLayerImpl::appendQuads):
652         (WebCore::CCTiledLayerImpl::pushTileProperties):
653         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
654         (CCTiledLayerImpl):
655
656 2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>
657
658         Crash in previousLinePosition when moving into a root inline box without leaves
659         https://bugs.webkit.org/show_bug.cgi?id=76812
660
661         Reviewed by Enrica Casucci.
662
663         The crash was caused by us assuming that every root inline box has at least one leaf,
664         which isn't true when we create inline boxes for an empty text run with margin, border, etc...
665
666         Test: editing/selection/move-into-empty-root-inline-box.html
667
668         * editing/visible_units.cpp:
669         (WebCore::previousLinePosition):
670         (WebCore::nextLinePosition):
671
672 2012-01-30  Levi Weintraub  <leviw@chromium.org>
673
674         !m_insideRegionPaint assertion in RenderRegion.cpp is invalid
675         https://bugs.webkit.org/show_bug.cgi?id=77372
676
677         Reviewed by David Hyatt.
678
679         Removing the !m_insideRegionPaint assertion that's in three functions in
680         RenderRegion. It's triggering in numerous layout tests and isn't valid.
681
682         No new tests as this just removes assertions.
683
684         * rendering/RenderRegion.cpp:
685         (WebCore::RenderRegion::setRenderBoxRegionInfo):
686         (WebCore::RenderRegion::takeRenderBoxRegionInfo):
687         (WebCore::RenderRegion::removeRenderBoxRegionInfo):
688
689 2012-01-30  Adrienne Walker  <enne@google.com>
690
691         [chromium] Always pre-reserve scrollbar and scroll corner textures
692         https://bugs.webkit.org/show_bug.cgi?id=77251
693
694         Reviewed by James Robinson.
695
696         Add a flag to LayerChromium that says that a layer's textures should
697         always be reserved. Prior to painting layers, find all layers marked
698         as such and reserve their textures. This will prevent texture memory
699         limits from being hit before the root layer's scrollbars are reserved
700         and painted.
701
702         * platform/graphics/chromium/LayerChromium.cpp:
703         (WebCore::LayerChromium::LayerChromium):
704         * platform/graphics/chromium/LayerChromium.h:
705         (LayerChromium):
706         (WebCore::LayerChromium::reserveTextures):
707         (WebCore::LayerChromium::setAlwaysReserveTextures):
708         (WebCore::LayerChromium::alwaysReserveTextures):
709         * platform/graphics/chromium/TiledLayerChromium.cpp:
710         (WebCore::TiledLayerChromium::reserveTextures):
711         * platform/graphics/chromium/TiledLayerChromium.h:
712         ():
713         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
714         (WebCore::CCLayerTreeHost::updateLayers):
715         (WebCore::CCLayerTreeHost::reserveTextures):
716         (WebCore):
717         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
718         ():
719
720 2012-01-30  Beth Dakin  <bdakin@apple.com>
721
722         Speculative 32-bit build-fix.
723
724         * WebCore.exp.in:
725
726 2012-01-30  Mihnea Ovidenie  <mihnea@adobe.com>
727
728         [CSSRegions]Add support for background-color in region styling
729         https://bugs.webkit.org/show_bug.cgi?id=71488
730
731         Reviewed by David Hyatt.
732
733         Based on work by Alexandru Chiculita (achicu@adobe.com).
734         Previous patches for region styling were touching RenderObject::style() method. After several attempts to avoid regressions
735         (including caching of RenderObject::style() pointer in most used methods), we decided to attempt a different approach:
736         Step1: before each region is repainted, we compute the style for each box that falls into the region
737         Step2: before paint, we store the box original style
738         Step3: paint the region contents using the style in region
739         Step4: after paint is finished, we restore the box original style (and store the box style in region for future region paint)
740
741         Tests for region styling are also enabled with this patch.
742
743         * WebCore.exp.in:
744         * rendering/RenderFlowThread.cpp:
745         (WebCore::RenderFlowThread::clearRenderBoxCustomStyle):
746         (WebCore::RenderFlowThread::setRegionRangeForBox):
747         * rendering/RenderFlowThread.h:
748         ():
749         * rendering/RenderLayer.cpp:
750         (WebCore::RenderLayer::paint):
751         (WebCore::RenderLayer::hitTest):
752         * rendering/RenderObject.cpp:
753         * rendering/RenderObject.h:
754         (WebCore::RenderObject::style):
755         (RenderObject):
756         * rendering/RenderObjectChildList.cpp:
757         (WebCore::RenderObjectChildList::removeChildNode):
758         * rendering/RenderRegion.cpp:
759         (WebCore::RenderRegion::RenderRegion):
760         (WebCore::RenderRegion::setRegionBoxesRegionStyle):
761         (WebCore):
762         (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
763         (WebCore::RenderRegion::paintReplaced):
764         (WebCore::RenderRegion::setRenderBoxRegionInfo):
765         (WebCore::RenderRegion::takeRenderBoxRegionInfo):
766         (WebCore::RenderRegion::removeRenderBoxRegionInfo):
767         (WebCore::RenderRegion::renderBoxRegionStyle):
768         (WebCore::RenderRegion::computeStyleInRegion):
769         (WebCore::RenderRegion::clearBoxStyleInRegion):
770         * rendering/RenderRegion.h:
771         (RenderRegion):
772         * rendering/RenderView.cpp:
773         (WebCore::RenderView::RenderView):
774         * rendering/RenderView.h:
775         (WebCore):
776         (RenderView):
777
778 2012-01-30  Jessie Berlin  <jberlin@apple.com>
779
780         WebCore build exceeds address space on 32-bit Windows builders (again).
781         https://bugs.webkit.org/show_bug.cgi?id=77357
782
783         Reviewed by Adam Roben.
784
785         Add an Inspector All-In-One file, but only use it in Release and Production builds.
786         This differs from our other All-In-One files, but it is a better approach because it makes
787         debugging possible in the Debug configuration (the symbols will be in the correct .obj file
788         for the original .cpp files).
789
790         * WebCore.vcproj/WebCore.vcproj:
791         Also, let VS have its way with the vcproj file.
792         * inspector/InspectorAllInOne.cpp: Added.
793
794 2012-01-28  Matthew Delaney  <mdelaney@apple.com>
795
796         Limit periodic flushing inside ImageBufferCG to just Lion
797         https://bugs.webkit.org/show_bug.cgi?id=77353
798         <rdar://problem/10328309>
799
800         Reviewed by Chris Marrin.
801
802         * platform/graphics/cg/ImageBufferCG.cpp:
803         * platform/graphics/cg/ImageBufferDataCG.h:
804
805 2012-01-30  Tommy Widenflycht  <tommyw@google.com>
806
807         Memory leak caused by PeerConnection add a NULL media stream
808         https://bugs.webkit.org/show_bug.cgi?id=76150
809
810         It was my missunderstanding that the IDL keyword [StrictTypeChecking] also protects against
811         null or undefined arguments, it doesn't. Added checks for null pointers.
812
813         Reviewed by Adam Barth.
814
815         Test: fast/mediastream/peerconnection-addstream.html
816
817         * mediastream/PeerConnection.cpp:
818         (WebCore::PeerConnection::addStream):
819         (WebCore::PeerConnection::removeStream):
820
821 2012-01-26  Andy Estes  <aestes@apple.com>
822
823         [Windows] Optionally invert colors when drawing to a WebView's backing store.
824         https://bugs.webkit.org/show_bug.cgi?id=77168
825
826         Reviewed by Sam Weinig.
827
828         * css/CSSPrimitiveValueMappings.h: Assert that CompositeDifference is
829         not converted to a CSS value. Exposing a new compositing operation to
830         CSS is outside the scope of this patch.
831         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
832         * platform/graphics/GraphicsTypes.h: Add CompositeDifference as a
833         CompositeOperator. Also, remove an outdated comment.
834         * platform/graphics/cg/GraphicsContextCG.cpp:
835         (WebCore::GraphicsContext::setPlatformCompositeOperation): Map
836         CompositeDifference to kCGBlendModeDifference.
837
838 2012-01-28  Matthew Delaney  <mdelaney@apple.com>
839
840         Limit the shadow offset CG hack to just SL and Lion
841         https://bugs.webkit.org/show_bug.cgi?id=77348
842         <rdar://problem/10158016>
843
844         Reviewed by Chris Marrin.
845
846         No new tests, current tests cover this.
847
848         * platform/graphics/cg/GraphicsContextCG.cpp:
849         (WebCore::GraphicsContext::setPlatformShadow):
850
851 2012-01-30  Beth Dakin  <bdakin@apple.com>
852
853         https://bugs.webkit.org/show_bug.cgi?id=77263
854         PlatformScreenMac should not rely on NSWindow for important bits of data
855
856         Reviewed by Geoff Garen.
857
858         The main problem is that we cannot rely on the NSWindow for information about 
859         the deviceScaleFactor because we cannot access an NSWindow from within 
860         WebCore for WebKit2 windows. Instead, we can fetch it from 
861         WebCore::deviceScaleFactor(), but we need a Frame to call that. So 
862         screenAvailableRect and screenRect both now take a FrameView* instead of a 
863         Widget*. All existing call sites actually sent a FrameView in anyway, so this 
864         is not a big change, but it does require touching a lot of platforms.
865         * WebCore.exp.in:
866         * platform/PlatformScreen.h:
867         (WebCore):
868         * platform/blackberry/PlatformScreenBlackBerry.cpp:
869         (WebCore::screenAvailableRect):
870         (WebCore::screenRect):
871         * platform/chromium/PlatformScreenChromium.cpp:
872         (WebCore::screenRect):
873         (WebCore::screenAvailableRect):
874         * platform/chromium/PlatformSupport.h:
875         (WebCore):
876         (PlatformSupport):
877         ():
878         * platform/efl/PlatformScreenEfl.cpp:
879         (WebCore::screenRect):
880         (WebCore::screenAvailableRect):
881         * platform/gtk/PlatformScreenGtk.cpp:
882         (WebCore::screenRect):
883         (WebCore::screenAvailableRect):
884         * platform/qt/PlatformScreenQt.cpp:
885         (WebCore::screenRect):
886         (WebCore::screenAvailableRect):
887         * platform/win/PlatformScreenWin.cpp:
888         (WebCore::screenRect):
889         (WebCore::screenAvailableRect):
890         * platform/wx/ScreenWx.cpp:
891         (WebCore::screenRect):
892         (WebCore::screenAvailableRect):
893
894         The Mac-only functions toUserSpace() and toDeviceSpace() were also updated to 
895         take a parameter for the deviceScaleFactor.
896         * platform/mac/PlatformScreenMac.mm:
897         (WebCore::screenRect):
898         (WebCore::screenAvailableRect):
899         (WebCore::toUserSpace):
900         (WebCore::toDeviceSpace):
901
902 2012-01-30  Antti Koivisto  <antti@apple.com>
903
904         Kill CSSMutableStyleDeclarationConstIterator
905         https://bugs.webkit.org/show_bug.cgi?id=77342
906
907         Reviewed by Sam Weinig.
908
909         CSSMutableStyleDeclaration is an array and should be iterated using an index. This simplifies the code.
910
911         * css/CSSMutableStyleDeclaration.cpp:
912         (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):
913         (WebCore::CSSMutableStyleDeclaration::removeProperty):
914         (WebCore::CSSMutableStyleDeclaration::setProperty):
915         (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
916         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
917         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
918         (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
919         (WebCore::CSSMutableStyleDeclaration::merge):
920         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
921         * css/CSSMutableStyleDeclaration.h:
922         (WebCore):
923         (WebCore::CSSMutableStyleDeclaration::createForSVGFontFaceElement):
924         (CSSMutableStyleDeclaration):
925         * css/CSSStyleDeclaration.cpp:
926         (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
927         * css/CSSStyleDeclaration.h:
928         (CSSStyleDeclaration):
929         ():
930         * css/CSSStyleSelector.cpp:
931         (WebCore::CSSStyleSelector::styleForKeyframe):
932         (WebCore::CSSStyleSelector::applyDeclaration):
933         * editing/EditingStyle.cpp:
934
935 2012-01-30  Michael Saboff  <msaboff@apple.com>
936
937         Dromaeo tests call parseSimpleLengthValue() on 8 bit strings
938         https://bugs.webkit.org/show_bug.cgi?id=76649
939
940         Reviewed by Geoffrey Garen.
941
942         No functionality change, therefore no new tests.
943
944         Added 8 bit patch for parseSimpleLengthValue().
945
946         * css/CSSParser.cpp:
947         (WebCore::parseSimpleLengthValue):
948
949 2012-01-30  Michael Saboff  <msaboff@apple.com>
950
951         WebCore decodeEscapeSequences unnecessarily converts 8 bit strings to 16 bit when decoding.
952         https://bugs.webkit.org/show_bug.cgi?id=76648
953
954         Reviewed by Geoffrey Garen.
955
956         Using new overloaded append(String&, offset, length)  member to build result string.
957         The new member properly handles 8/16 bit-ness of strings.
958
959         Functionality not changed, therefore no new tests.
960
961         * platform/text/DecodeEscapeSequences.h:
962         (WebCore::decodeEscapeSequences):
963
964 2012-01-30  Pavel Feldman  <pfeldman@google.com>
965
966         Not reviewed: follow up to r105625, use proper event categoty in inspector frontend.
967
968         * inspector/front-end/BreakpointsSidebarPane.js:
969         (WebInspector.EventListenerBreakpointsSidebarPane):
970
971 2012-01-30  Parag Radke  <nrqv63@motorola.com>
972
973         REGRESSION (r82580): Reproducible crash in CSSPrimitiveValue::computeLengthDouble
974         https://bugs.webkit.org/show_bug.cgi?id=61989
975
976         Reviewed by Simon Fraser.
977
978         According to css3 specs when font-size is specified in 'rems' for an element implies the font-size
979         of the root element. In this case as HTML element has a property 'display:none' and hence renderer 
980         is NULL causes this crash.
981
982         Test: fast/css/fontsize-unit-rems-crash.html
983
984         * css/CSSPrimitiveValue.cpp:
985         (WebCore::CSSPrimitiveValue::computeLengthDouble):
986         Added a null check for the root element's RenderStyle as it can be null in case of html has a property
987         hidden or display:none.
988
989 2012-01-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
990
991         [Qt] WKTR: Use a software rendering pipiline when running tests.
992         https://bugs.webkit.org/show_bug.cgi?id=76708
993
994         Reviewed by Kenneth Rohde Christiansen.
995
996         * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
997         (WebCore::TextureMapperQt::setGraphicsContext):
998         * platform/graphics/qt/TextureMapperQt.h:
999         (WebCore::TextureMapperQt::initialize):
1000
1001 2012-01-27  Enrica Casucci  <enrica@apple.com>
1002
1003         Remove all references to NSPasteboard objects from the Pasteboard
1004         class interface on Mac.
1005         https://bugs.webkit.org/show_bug.cgi?id=77261
1006         
1007         This is cleanup work needed as first step in the direction of
1008         removing access to NSPasteboard from the WebProcess.
1009         This way all access to the NSPasteboard object are internal to
1010         the class.
1011         Removed static methods taking NSPasteboard as paramenter and changed
1012         the constructor of the class to take the pasteboard name instead of
1013         the NSPasteboard object.
1014
1015         Reviewed by Alexey Proskuryakov.
1016
1017         No new tests. There is no change in behavior.
1018
1019         * editing/Editor.cpp: Removed ununsed private method writeSelectionToPasteboard.
1020         (WebCore):
1021         * editing/Editor.h: Ditto.
1022         (Editor):
1023         ():
1024         * editing/mac/EditorMac.mm:
1025         (WebCore::Editor::writeSelectionToPasteboard):
1026         (WebCore::Editor::readSelectionFromPasteboard):
1027         * platform/Pasteboard.h:
1028         (Pasteboard):
1029         * platform/mac/ClipboardMac.mm:
1030         (WebCore::ClipboardMac::writeRange):
1031         (WebCore::ClipboardMac::writePlainText):
1032         (WebCore::ClipboardMac::writeURL):
1033         * platform/mac/DragDataMac.mm:
1034         (WebCore::DragData::asPlainText):
1035         (WebCore::DragData::asURL):
1036         (WebCore::DragData::asFragment):
1037         * platform/mac/PasteboardMac.mm:
1038         (WebCore::Pasteboard::generalPasteboard):
1039         (WebCore::Pasteboard::Pasteboard):
1040         (WebCore::Pasteboard::writeSelectionForTypes): Added.
1041         (WebCore::Pasteboard::writePlainText):
1042         (WebCore::Pasteboard::writeSelection):
1043         (WebCore::Pasteboard::writeURLForTypes): Added.
1044         (WebCore::Pasteboard::writeURL):
1045         (WebCore::Pasteboard::writeImage):
1046
1047 2012-01-29  Antti Koivisto  <antti@apple.com>
1048
1049         Reduce non-CSSOM API of CSSStyleDeclaration
1050         https://bugs.webkit.org/show_bug.cgi?id=77299
1051
1052         Reviewed by Andreas Kling.
1053
1054         CSSStyleDeclaration should expose the CSSOM API only. Subclasses should expose the internal API only. 
1055         This will move us closer to being able to split the CSSOM API from the internal implementation.
1056         
1057         - Make CSSStyleDeclaration CSSOM functions virtual, internal functions non-virtual.
1058         - Move implementations to subclasses (CSSComputedStyleDeclaration, CSSMutableStyleDeclaration).
1059         - Make CSSOM functions in the subclasses private (making it harder to invoke them internally).
1060         - Switch a bunch of places to use internal API instead of CSSOM.
1061
1062         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1063         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
1064         (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
1065         
1066             Switch to *Internal versions of the CSSOM functions.
1067         
1068         * css/CSSComputedStyleDeclaration.cpp:
1069         (WebCore):
1070         (WebCore::CSSComputedStyleDeclaration::length):
1071         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
1072         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
1073         
1074             Move copyPropertiesInSet to subclasses, devirtualize.
1075             
1076         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1077         (WebCore::CSSComputedStyleDeclaration::getPropertyValue):
1078         (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
1079         (WebCore::CSSComputedStyleDeclaration::getPropertyShorthand):
1080         (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit):
1081         (WebCore::CSSComputedStyleDeclaration::setProperty):
1082         (WebCore::CSSComputedStyleDeclaration::removeProperty):
1083         * css/CSSComputedStyleDeclaration.h:
1084         (CSSComputedStyleDeclaration):
1085         * css/CSSFontFaceRule.cpp:
1086         (WebCore::CSSFontFaceRule::cssText):
1087         * css/CSSMutableStyleDeclaration.cpp:
1088         (WebCore::CSSMutableStyleDeclaration::length):
1089         (WebCore::CSSMutableStyleDeclaration::asText):
1090         (WebCore::CSSMutableStyleDeclaration::cssText):
1091         (WebCore):
1092         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
1093         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
1094         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
1095         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
1096         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
1097         (WebCore::CSSMutableStyleDeclaration::setProperty):
1098         (WebCore::CSSMutableStyleDeclaration::removeProperty):
1099         (WebCore::CSSMutableStyleDeclaration::copyPropertiesInSet):
1100         
1101             Move copyPropertiesInSet to subclasses, devirtualize.
1102         
1103         (WebCore::CSSMutableStyleDeclaration::cssPropertyMatches):
1104         (WebCore::CSSMutableStyleDeclaration::removeEquivalentProperties):
1105         
1106             Move diff() to CSSMutableStyleDeclaration, rename to removeEquivalentProperties, switch to mutate
1107             this object instead of the argument object.
1108     
1109         * css/CSSMutableStyleDeclaration.h:
1110         (CSSMutableStyleDeclaration):
1111         (WebCore::CSSMutableStyleDeclaration::propertyCount):
1112         (WebCore::CSSMutableStyleDeclaration::isEmpty):
1113         (WebCore::CSSMutableStyleDeclaration::propertyAt):
1114         
1115             Expose properties and property count internally (iterator should be removed in favor of these).
1116         
1117         * css/CSSStyleDeclaration.cpp:
1118         (WebCore):
1119         * css/CSSStyleDeclaration.h:
1120         (CSSStyleDeclaration):
1121         (WebCore::CSSStyleDeclaration::getPropertyCSSValueInternal):
1122         (WebCore::CSSStyleDeclaration::getPropertyValueInternal):
1123         (WebCore::CSSStyleDeclaration::setPropertyInternal):
1124         
1125             Add *Internal versions of some CSSOM APIs to support some editing and bindings uses.
1126             These take propertyIDs instead of strings names.
1127
1128         * css/CSSStyleRule.cpp:
1129         (WebCore::CSSStyleRule::cssText):
1130         * css/CSSStyleSelector.cpp:
1131         (WebCore::leftToRightDeclaration):
1132         (WebCore::rightToLeftDeclaration):
1133         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1134         (WebCore::CSSStyleSelector::matchPageRulesForList):
1135         * css/WebKitCSSKeyframeRule.cpp:
1136         (WebCore::WebKitCSSKeyframeRule::cssText):
1137         * dom/StyledElement.cpp:
1138         (WebCore::StyledElement::updateStyleAttribute):
1139         * editing/ApplyStyleCommand.cpp:
1140         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1141         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
1142         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
1143         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
1144         (WebCore::ApplyStyleCommand::addBlockStyle):
1145         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
1146         * editing/EditingStyle.cpp:
1147         ():
1148         (WebCore::copyEditingProperties):
1149         (WebCore):
1150         (WebCore::propertyCSSValue):
1151         (WebCore::getRGBAFontColor):
1152         (WebCore::EditingStyle::overrideWithStyle):
1153         (WebCore::EditingStyle::removeStyleAddedByNode):
1154         (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
1155         (WebCore::EditingStyle::triStateOfStyle):
1156         (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
1157         (WebCore::EditingStyle::prepareToApplyAt):
1158         (WebCore::removePropertiesInStyle):
1159         (WebCore::EditingStyle::removeStyleFromRulesAndContext):
1160         (WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
1161         (WebCore::StyleChange::StyleChange):
1162         (WebCore::fontWeightIsBold):
1163         (WebCore::getPropertiesNotIn):
1164         (WebCore::getIdentifierValue):
1165         (WebCore::hasTransparentBackgroundColor):
1166         * editing/EditingStyle.h:
1167         
1168             Adapt to changes.
1169     
1170         (WebCore):
1171         * editing/ReplaceSelectionCommand.cpp:
1172         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1173         (WebCore::handleStyleSpansBeforeInsertion):
1174         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1175         * editing/mac/EditorMac.mm:
1176         (WebCore::styleForSelectionStart):
1177         * editing/markup.cpp:
1178         (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
1179         (WebCore::StyledMarkupAccumulator::appendElement):
1180         * html/ImageDocument.cpp:
1181         (WebCore::ImageDocument::resizeImageToFit):
1182         (WebCore::ImageDocument::restoreImageSize):
1183         (WebCore::ImageDocument::windowSizeChanged):
1184         * html/canvas/CanvasRenderingContext2D.cpp:
1185         (WebCore::CanvasRenderingContext2D::setFont):
1186         * html/canvas/CanvasStyle.cpp:
1187         (WebCore::currentColor):
1188         * inspector/InspectorStyleSheet.cpp:
1189         (WebCore::InspectorStyleSheet::revalidateStyle):
1190         * page/PageSerializer.cpp:
1191         (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
1192         * rendering/RenderTreeAsText.cpp:
1193         (WebCore::isEmptyOrUnstyledAppleStyleSpan):
1194         * svg/SVGStyledElement.cpp:
1195         (WebCore::SVGStyledElement::getPresentationAttribute):
1196
1197 2012-01-30  Pavel Feldman  <pfeldman@google.com>
1198
1199         Web Inspector: protocol validator should fail if one of response fields turns optional
1200         https://bugs.webkit.org/show_bug.cgi?id=76452
1201
1202         Reviewed by Yury Semikhatsky.
1203
1204         * inspector/Inspector-0.1.json:
1205         * inspector/Inspector.json:
1206         * inspector/generate-inspector-protocol-version:
1207         (compare_commands):
1208         (compare_events):
1209         (compare_params_list):
1210         (compare_types):
1211         (self_test):
1212
1213 2012-01-30  Yury Semikhatsky  <yurys@chromium.org>
1214
1215         Web Inspector: keyboard navigation through comparison view in heap profiler should update retainers view
1216         https://bugs.webkit.org/show_bug.cgi?id=77326
1217
1218         Keyboard navigation in the detailed heap snapshot view now updates retainers view.
1219
1220         Reviewed by Pavel Feldman.
1221
1222         * inspector/front-end/DataGrid.js: Added SelectedNode/DeselectedNode events to DataGrid.
1223         (WebInspector.DataGridNode.prototype.select):
1224         (WebInspector.DataGridNode.prototype.deselect):
1225         * inspector/front-end/DetailedHeapshotView.js:
1226         (WebInspector.DetailedHeapshotView.prototype._selectionChanged):
1227         (WebInspector.DetailedHeapshotView.prototype._setRetainmentDataGridSource):
1228
1229 2012-01-30  Yury Semikhatsky  <yurys@chromium.org>
1230
1231         Unreviewed. Fix inspector front-end compilation.
1232
1233         * inspector/front-end/RemoteObject.js:
1234         (WebInspector.RemoteObject):
1235         (WebInspector.RemoteObject.fromPayload):
1236
1237 2012-01-30  Roland Steiner  <rolandsteiner@chromium.org>
1238
1239         Node::parentOrHostElement(): Node::shadowHost() already returns an Element*
1240         https://bugs.webkit.org/show_bug.cgi?id=77332
1241
1242         Reviewed by Kent Tamura.
1243
1244         No new tests. (simple refactoring)
1245
1246         * dom/Node.cpp:
1247         (WebCore::Node::parentOrHostElement):
1248
1249 2012-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>
1250
1251         Unreviewed. Fix make distcheck.
1252
1253         * GNUmakefile.am: Add idl files in Source/WebCore/html/shadow/ to
1254         EXTRA_DIST.
1255         * GNUmakefile.list.am: Add missing files.
1256
1257 2012-01-27  Vsevolod Vlasov  <vsevik@chromium.org>
1258
1259         Web Inspector: TabbedEditorContainer should save open tabs.
1260         https://bugs.webkit.org/show_bug.cgi?id=76912
1261
1262         Reviewed by Pavel Feldman.
1263
1264         Test: inspector/tabbed-editors-history.html
1265
1266         * inspector/front-end/ScriptsPanel.js:
1267         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1268         (WebInspector.ScriptsPanel.prototype._reset):
1269         (WebInspector.ScriptsPanel.prototype._showFile):
1270         (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
1271         (WebInspector.ScriptsPanel.prototype._editorSelected):
1272         (WebInspector.EditorContainer.prototype.uiSourceCodeAdded):
1273         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
1274         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
1275         * inspector/front-end/TabbedEditorContainer.js:
1276         (WebInspector.TabbedEditorContainer):
1277         (WebInspector.TabbedEditorContainer.prototype.showFile):
1278         (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
1279         (WebInspector.TabbedEditorContainer.prototype._editorSelectedByUserAction):
1280         (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURL):
1281         (WebInspector.TabbedEditorContainer.prototype._updateHistory):
1282         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
1283         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1284         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
1285         (WebInspector.TabbedEditorContainer.prototype.reset):
1286         (WebInspector.TabbedEditorContainer.History):
1287         (WebInspector.TabbedEditorContainer.History.prototype.index):
1288         (WebInspector.TabbedEditorContainer.History.prototype.update):
1289         (WebInspector.TabbedEditorContainer.History.prototype.remove):
1290         (WebInspector.TabbedEditorContainer.History.prototype.save):
1291         * inspector/front-end/TabbedPane.js:
1292         (WebInspector.TabbedPane.prototype.appendTab):
1293         (WebInspector.TabbedPane.prototype.closeTab):
1294         (WebInspector.TabbedPane.prototype._innerCloseTab):
1295         (WebInspector.TabbedPane.prototype.closeAllTabs):
1296         (WebInspector.TabbedPane.prototype.lastOpenedTabIds):
1297         (WebInspector.TabbedPane.prototype._tabsSelectChanged):
1298
1299 2012-01-30  Alexander Pavlov  <apavlov@chromium.org>
1300
1301         Web Inspector: [Styles] Unable to paste and subsequently edit multiple properties in the Styles pane
1302         https://bugs.webkit.org/show_bug.cgi?id=77209
1303
1304         Reviewed by Pavel Feldman.
1305
1306         Check if the property value contains a ";" before kicking the freeflow text update.
1307
1308         * inspector/front-end/StylesSidebarPane.js:
1309         (WebInspector.StylePropertyTreeElement.prototype):
1310
1311 2012-01-30  Vsevolod Vlasov  <vsevik@chromium.org>
1312
1313         Web Inspector: Change Open Resource and Go To function shortcuts in scripts panel.
1314         https://bugs.webkit.org/show_bug.cgi?id=77321
1315
1316         Reviewed by Pavel Feldman.
1317
1318         * inspector/front-end/FilteredItemSelectionDialog.js:
1319         (WebInspector.JavaScriptOutlineDialog.createShortcut):
1320         (WebInspector.OpenResourceDialog.createShortcut):
1321         * inspector/front-end/ScriptsPanel.js:
1322
1323 2012-01-30  Yury Semikhatsky  <yurys@chromium.org>
1324
1325         Web Inspector: hide function popover in heap snapshot view before navigating to the function definition
1326         https://bugs.webkit.org/show_bug.cgi?id=77330
1327
1328         Reviewed by Pavel Feldman.
1329
1330         * inspector/front-end/DetailedHeapshotView.js:
1331         (WebInspector.DetailedHeapshotView.prototype.willHide):
1332
1333 2012-01-30  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1334
1335         [BlackBerry] Credential backing store implementation
1336         https://bugs.webkit.org/show_bug.cgi?id=76761
1337
1338         Reviewed by Antonio Gomes.
1339
1340         Implemented credential backing store database and related
1341         operations in class CredentialBackingStore.
1342
1343         * platform/network/blackberry/CredentialBackingStore.cpp:
1344         (WebCore::CredentialBackingStore::~CredentialBackingStore):
1345         (WebCore::CredentialBackingStore::open):
1346         (WebCore::CredentialBackingStore::close):
1347         (WebCore::CredentialBackingStore::addLogin):
1348         (WebCore::CredentialBackingStore::updateLogin):
1349         (WebCore::CredentialBackingStore::hasLogin):
1350         (WebCore::CredentialBackingStore::getLogin):
1351         (WebCore::CredentialBackingStore::removeLogin):
1352         (WebCore::CredentialBackingStore::clear):
1353
1354 2012-01-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1355
1356         Only send resize events when layout size changes.
1357         https://bugs.webkit.org/show_bug.cgi?id=77212
1358
1359         When using fixed layout the widget size is the size of content, therefore
1360         resize checks must check against layoutsize and not widget size.
1361
1362         Reviewed by Kenneth Rohde Christiansen.
1363
1364         Needs to be manual tests because the test framework does not currently
1365         support testing fixed layout.
1366
1367         Tests: ManualTests/resize-events.html
1368
1369         * page/FrameView.cpp:
1370         (WebCore::FrameView::layout):
1371         (WebCore::FrameView::performPostLayoutTasks):
1372
1373 2012-01-30  Pavel Feldman  <pfeldman@google.com>
1374
1375         Web Inspector: TimelinePanel does not respect InspectorFrontendHost.canSaveAs
1376         https://bugs.webkit.org/show_bug.cgi?id=77301
1377
1378         Reviewed by Vsevolod Vlasov.
1379
1380         * inspector/front-end/TimelinePanel.js:
1381         (WebInspector.TimelinePanel.prototype._registerShortcuts):
1382
1383 2012-01-30  Nikolas Zimmermann  <nzimmermann@rim.com>
1384
1385         Not reviewed. Fix Clang build for real after r106218.
1386
1387         * inspector/CodeGeneratorInspector.py:
1388         (Generator.go): Add virtual destructor to the ABCs.
1389
1390 2012-01-30  Shinya Kawanaka  <shinyak@google.com>
1391
1392         No need to keep anonymous RenderBlock in DETAILS.
1393         https://bugs.webkit.org/show_bug.cgi?id=77322
1394
1395         Reviewed by Hajime Morita.
1396
1397         Anonymous RenderBlock of DETAILS element was not squashed when detaching them.
1398         However, it should be removed.
1399
1400         No new tests. Should be covered by existing tests.
1401
1402         * rendering/RenderBlock.cpp:
1403         (WebCore::canMergeContiguousAnonymousBlocks):
1404
1405 2012-01-30  Zoltan Herczeg  <zherczeg@webkit.org>
1406
1407         Custom written CSS lexer
1408         https://bugs.webkit.org/show_bug.cgi?id=70107
1409
1410         Rubber Stamped by Csaba Osztrogonác.
1411
1412         Do not advance pointer at the end of input, just
1413         keep returning with END_TOKEN.
1414
1415         * css/CSSParser.cpp:
1416         (WebCore::CSSParser::lex):
1417
1418 2012-01-30  Shinya Kawanaka  <shinyak@google.com>
1419
1420         The query selector for HTMLContentElement should follow the shadow dom spec.
1421         https://bugs.webkit.org/show_bug.cgi?id=75946
1422
1423         Reviewed by Hajime Morita.
1424
1425         Checks the query selector of HTMLContentElement is valid.
1426         If not valid, the selector won't match anything, and shows fallback element.
1427
1428         Test: fast/dom/shadow/content-selector-query.html
1429
1430         * html/shadow/ContentSelectorQuery.cpp:
1431         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
1432         (WebCore::ContentSelectorQuery::isValidSelector):
1433         (WebCore::ContentSelectorQuery::matches):
1434           When a select query is not valid, any element won't be matched.
1435         (WebCore::validateSubSelector):
1436         (WebCore::validateSelector):
1437         (WebCore::ContentSelectorQuery::validateSelectorList):
1438           Validate selectors.
1439         * html/shadow/ContentSelectorQuery.h:
1440         * html/shadow/HTMLContentElement.cpp:
1441         (WebCore::HTMLContentElement::isSelectValid):
1442           Returns true if select attribute is valid.
1443         * html/shadow/HTMLContentElement.h:
1444         * testing/Internals.cpp:
1445         (WebCore::Internals::isValidContentSelect):
1446         * testing/Internals.h:
1447         * testing/Internals.idl:
1448
1449 2012-01-30  Hans Wennborg  <hans@chromium.org>
1450
1451         Unreviewed, rolling out r106219.
1452         http://trac.webkit.org/changeset/106219
1453         https://bugs.webkit.org/show_bug.cgi?id=77083
1454
1455         This broke Chromium's test_shell.
1456
1457         * GNUmakefile.list.am:
1458         * Target.pri:
1459         * WebCore.gypi:
1460         * WebCore.vcproj/WebCore.vcproj:
1461         * WebCore.xcodeproj/project.pbxproj:
1462         * platform/mock/SpeechInputClientMock.cpp: Added.
1463         (WebCore):
1464         (WebCore::SpeechInputClientMock::SpeechInputClientMock):
1465         (WebCore::SpeechInputClientMock::setListener):
1466         (WebCore::SpeechInputClientMock::startRecognition):
1467         (WebCore::SpeechInputClientMock::stopRecording):
1468         (WebCore::SpeechInputClientMock::cancelRecognition):
1469         (WebCore::SpeechInputClientMock::addRecognitionResult):
1470         (WebCore::SpeechInputClientMock::clearResults):
1471         (WebCore::SpeechInputClientMock::timerFired):
1472         * platform/mock/SpeechInputClientMock.h: Added.
1473         (WebCore):
1474         (SpeechInputClientMock):
1475
1476 2012-01-30  Yury Semikhatsky  <yurys@chromium.org>
1477
1478         Unreviewed. Clang build fix after r106218
1479
1480         * inspector/CodeGeneratorInspector.py:
1481
1482 2012-01-30  ChangSeok Oh  <shivamidow@gmail.com>
1483
1484         Make GraphicsContext3DPrivate of GTK port shareable.
1485         https://bugs.webkit.org/show_bug.cgi?id=77296
1486
1487         Reviewed by Eric Seidel.
1488
1489         GraphicsContext3DPrivate.cpp/h of GTK port look shareable with another port
1490         using glx backend for WebGL. For example, EFL port.
1491         Moved GraphicsContext3DPrivate.cpp and its header into Source/WebCore/platform/graphics/glx.
1492
1493         No new tests required, because of no new feature.
1494
1495         * GNUmakefile.am:
1496         * GNUmakefile.list.am:
1497         * platform/graphics/glx/GraphicsContext3DPrivate.cpp: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.cpp.
1498         (sharedDisplay):
1499         (WebCore):
1500         (WebCore::activeGraphicsContexts):
1501         (WebCore::GraphicsContext3DPrivate::addActiveGraphicsContext):
1502         (WebCore::GraphicsContext3DPrivate::removeActiveGraphicsContext):
1503         (WebCore::GraphicsContext3DPrivate::cleanupActiveContextsAtExit):
1504         (WebCore::GraphicsContext3DPrivate::create):
1505         (WebCore::GraphicsContext3DPrivate::createPbufferContext):
1506         (WebCore::GraphicsContext3DPrivate::createPixmapContext):
1507         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1508         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1509         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
1510         * platform/graphics/glx/GraphicsContext3DPrivate.h: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.h.
1511         (WebCore):
1512         (GraphicsContext3DPrivate):
1513
1514 2012-01-26  Hans Wennborg  <hans@chromium.org>
1515
1516         Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
1517         https://bugs.webkit.org/show_bug.cgi?id=77083
1518
1519         Reviewed by Darin Fisher.
1520
1521         Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
1522         implementation.
1523
1524         No new tests, just refactoring.
1525
1526         * GNUmakefile.list.am:
1527         * Target.pri:
1528         * WebCore.gypi:
1529         * WebCore.vcproj/WebCore.vcproj:
1530         * WebCore.xcodeproj/project.pbxproj:
1531         * platform/mock/SpeechInputClientMock.cpp: Removed.
1532         * platform/mock/SpeechInputClientMock.h: Removed.
1533
1534 2012-01-30  Peter Rybin  <peter.rybin@gmail.com>
1535
1536         Web Inspector: CodeGeneratorInspector.py: clean InspectorBackendDispatcher.h
1537         https://bugs.webkit.org/show_bug.cgi?id=77062
1538
1539         Reviewed by Yury Semikhatsky.
1540
1541         Code generator is changed. Now it generates InspectorBackendDispatcher
1542         as an abstract class so that implementation details could be fully
1543         hidden in .cpp file in a separate 'impl' class. This should make .h
1544         file more clear.
1545         Also new formal interfaces to domain agents are generated. This is an
1546         improvement over the current case when interfaces to agents are
1547         definen implicitly at calling sites.
1548
1549         * inspector/CodeGeneratorInspector.py:
1550         (RawTypes):
1551         (RawTypes.OutputPassModel):
1552         (RawTypes.OutputPassModel.ByPointer):
1553         (RawTypes.OutputPassModel.ByPointer.get_argument_prefix):
1554         (RawTypes.OutputPassModel.ByPointer.get_parameter_type_suffix):
1555         (RawTypes.OutputPassModel.ByReference):
1556         (RawTypes.OutputPassModel.ByReference.get_argument_prefix):
1557         (RawTypes.OutputPassModel.ByReference.get_parameter_type_suffix):
1558         (RawTypes.BaseType.is_event_param_check_optional):
1559         (RawTypes.String):
1560         (RawTypes.String.get_output_pass_model):
1561         (RawTypes.String.is_heavy_value):
1562         (RawTypes.Int):
1563         (RawTypes.Int.get_output_pass_model):
1564         (RawTypes.Int.is_heavy_value):
1565         (RawTypes.Number):
1566         (RawTypes.Number.get_output_pass_model):
1567         (RawTypes.Number.is_heavy_value):
1568         (RawTypes.Bool.get_c_param_type):
1569         (RawTypes.Bool):
1570         (RawTypes.Bool.get_output_pass_model):
1571         (RawTypes.Bool.is_heavy_value):
1572         (RawTypes.Object):
1573         (RawTypes.Object.get_output_pass_model):
1574         (RawTypes.Object.is_heavy_value):
1575         (RawTypes.Any.get_c_initializer):
1576         (RawTypes.Any):
1577         (RawTypes.Any.get_output_pass_model):
1578         (RawTypes.Any.is_heavy_value):
1579         (RawTypes.Array):
1580         (RawTypes.Array.get_output_pass_model):
1581         (RawTypes.Array.is_heavy_value):
1582         (InspectorBackendDispatcherImpl):
1583         (void):
1584         (Generator):
1585         (Generator.go):
1586         (Generator.process_command):
1587         * inspector/InspectorController.cpp:
1588         (WebCore::InspectorController::connectFrontend):
1589         * inspector/WorkerInspectorController.cpp:
1590         (WebCore::WorkerInspectorController::connectFrontend):
1591
1592 2012-01-29  Zoltan Herczeg  <zherczeg@webkit.org>
1593
1594         Custom written CSS lexer
1595         https://bugs.webkit.org/show_bug.cgi?id=70107
1596
1597         Reviewed by Antti Koivisto and Oliver Hunt.
1598
1599         This patch replaces the flex based CSS lexer to a
1600         new, custom written one. The new code is more
1601         than 2 times faster according to oprofile and CPU
1602         cycle counters.
1603
1604         The code structure is quite straightforward: it choose
1605         the possible token group based on the first character
1606         and employ utility functions to parse the longer than
1607         one character long ones. Most of the utilities are inline
1608         to make the lexer fast.
1609
1610         All build systems updated. Including removing the flex support.
1611
1612         Existing tests cover this feature.
1613
1614         * CMakeLists.txt:
1615         * DerivedSources.make:
1616         * DerivedSources.pri:
1617         * GNUmakefile.am:
1618         * GNUmakefile.list.am:
1619         * WebCore.gyp/WebCore.gyp:
1620         * WebCore.gyp/scripts/action_maketokenizer.py: Removed.
1621         * WebCore.gypi:
1622         * WebCore.vcproj/WebCore.vcproj:
1623         * WebCore.xcodeproj/project.pbxproj:
1624         * css/CSSParser.cpp:
1625         (WebCore::CSSParser::CSSParser):
1626         (WebCore::CSSParser::setupParser):
1627         (WebCore::parseSimpleLengthValue):
1628         (WebCore::mightBeRGBA):
1629         (WebCore::mightBeRGB):
1630         ():
1631         (WebCore::isCSSLetter):
1632         (WebCore):
1633         (WebCore::isCSSEscape):
1634         (WebCore::isURILetter):
1635         (WebCore::isIdentifierStartAfterDash):
1636         (WebCore::isEqualToCSSIdentifier):
1637         (WebCore::checkAndSkipEscape):
1638         (WebCore::skipWhiteSpace):
1639         (WebCore::CSSParser::isIdentifierStart):
1640         (WebCore::CSSParser::checkAndSkipString):
1641         (WebCore::CSSParser::parseEscape):
1642         (WebCore::CSSParser::parseIdentifier):
1643         (WebCore::CSSParser::parseString):
1644         (WebCore::CSSParser::parseURI):
1645         (WebCore::CSSParser::parseUnicodeRange):
1646         (WebCore::CSSParser::parseNthChild):
1647         (WebCore::CSSParser::parseNthChildExtra):
1648         (WebCore::CSSParser::detectFunctionTypeToken):
1649         (WebCore::CSSParser::detectMediaQueryToken):
1650         (WebCore::CSSParser::detectNumberToken):
1651         (WebCore::CSSParser::detectDashToken):
1652         (WebCore::CSSParser::detectAtToken):
1653         (WebCore::CSSParser::lex):
1654         (WebCore::CSSParser::markSelectorListStart):
1655         (WebCore::CSSParser::markSelectorListEnd):
1656         (WebCore::CSSParser::markRuleBodyStart):
1657         (WebCore::CSSParser::markRuleBodyEnd):
1658         (WebCore::CSSParser::markPropertyStart):
1659         (WebCore::CSSParser::markPropertyEnd):
1660         * css/CSSParser.h:
1661         (WebCore::CSSParser::token):
1662         (CSSParser):
1663         ():
1664         * css/tokenizer.flex: Removed.
1665
1666 2012-01-29  Dale Curtis  <dalecurtis@chromium.org>
1667
1668         Prepare WebCore.gyp for ffmpeg source transition.
1669         https://bugs.webkit.org/show_bug.cgi?id=77254
1670
1671         We're migrating our ffmpeg repo from a set of patches living on top of
1672         a tarball to an actual git fork of upstream.  The paths have changed
1673         slightly.
1674
1675         In order to not break the current build, we'll keep both paths around
1676         until the transition is complete.  Afterward the 'patched-ffmpeg' path
1677         will be removed.
1678
1679         Reviewed by Tony Chang.
1680
1681         No new tests. GYP change, if it doesn't work, nothing will compile.
1682
1683         * WebCore.gyp/WebCore.gyp:
1684
1685 2012-01-29  Hayato Ito  <hayato@chromium.org>
1686
1687         Add a ShadowRoot constructor as 'WebKitShadowRootConstructor', enabled by SHADOW_DOM flag.
1688         https://bugs.webkit.org/show_bug.cgi?id=76354
1689
1690         Reviewed by Hajime Morita.
1691
1692         We use vendor-prefixed name, 'WebKitShadowRoot', instead of 'ShadowRoot'
1693         since this is a feature under development.
1694
1695         * dom/ShadowRoot.cpp:
1696         (WebCore::ShadowRoot::create):
1697         (WebCore):
1698         * dom/ShadowRoot.h:
1699         (WebCore):
1700         (ShadowRoot):
1701         * dom/ShadowRoot.idl:
1702         * page/DOMWindow.idl:
1703
1704 2012-01-29  Noel Gordon  <noel.gordon@gmail.com>
1705
1706         [chromium] Use decoding swizzle only on libjpeg-turbo 1.1.90+
1707         https://bugs.webkit.org/show_bug.cgi?id=74286
1708
1709         Reviewed by Kenneth Russell.
1710
1711         No new tests. Covered by many existing tests: in particular 
1712             fast/images/*, fast/canvas/*,
1713             tables/mozilla/bugs/bug29314.html
1714             tables/mozilla/bugs/bug13169.html
1715             tables/mozilla/bugs/bug10565.html
1716             tables/mozilla/bugs/bug11026.html
1717             fast/repaint/backgroundSizeRepaint.html
1718             fast/repaint/block-layout-inline-children-replaced.html
1719             fast/repaint/clipped-relative.html
1720             fast/repaint/selected-replaced.html
1721             tables/mozilla/bugs/bug12908-1.html
1722
1723         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1724         (rgbOutputColorSpace): Swizzle decode iff libjpeg-turbo is r732 or above.
1725
1726 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1727
1728         Unreviewed, rolling out r105999.
1729         http://trac.webkit.org/changeset/105999
1730         https://bugs.webkit.org/show_bug.cgi?id=77304
1731
1732         Validating that this caused a performance regression in page
1733         load tests. (Requested by leviw on #webkit).
1734
1735         * dom/NamedNodeMap.cpp:
1736         * dom/NamedNodeMap.h:
1737         (NamedNodeMap):
1738         * dom/StyledElement.cpp:
1739         (WebCore::StyledElement::updateStyleAttribute):
1740         (WebCore::StyledElement::createInlineStyleDecl):
1741         (WebCore):
1742         (WebCore::StyledElement::destroyInlineStyleDecl):
1743         (WebCore::StyledElement::ensureInlineStyleDecl):
1744         (WebCore::StyledElement::style):
1745         (WebCore::StyledElement::addSubresourceAttributeURLs):
1746         * dom/StyledElement.h:
1747         (WebCore::StyledElement::inlineStyleDecl):
1748         (StyledElement):
1749
1750 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1751
1752         Unreviewed, rolling out r106109.
1753         http://trac.webkit.org/changeset/106109
1754         https://bugs.webkit.org/show_bug.cgi?id=77302
1755
1756         It made tests crash (Requested by Ossy_weekend on #webkit).
1757
1758         * platform/graphics/qt/TextureMapperQt.cpp:
1759         (WebCore::TextureMapperQt::setGraphicsContext):
1760         * platform/graphics/qt/TextureMapperQt.h:
1761         (WebCore::TextureMapperQt::initialize):
1762
1763 2012-01-28  Alexander Færøy  <ahf@0x90.dk>
1764
1765         [Qt] Remove references to CSSBorderImageValue.h in Target.pri
1766         https://bugs.webkit.org/show_bug.cgi?id=77277
1767
1768         Reviewed by Antonio Gomes.
1769
1770         CSSBorderImageValue.h was removed in r105502.
1771
1772         * Target.pri:
1773
1774 2012-01-28  Julien Chaffraix  <jchaffraix@webkit.org>
1775
1776         REGRESSION (r94016): Element with visibility:hidden but visible descendant may not be properly repainted
1777         https://bugs.webkit.org/show_bug.cgi?id=76126
1778
1779         Reviewed by Simon Fraser.
1780
1781         Tests: fast/layers/scroll-no-visible-content-but-visible-descendant-expected.html
1782                fast/layers/scroll-no-visible-content-but-visible-descendant.html
1783
1784         The optimization missed out that if the current layer does not have some visible content
1785         (m_hasVisibleContent is false), a descendant could totally be visible and would need to
1786         have its repaint rectangles recomputed.
1787
1788         * rendering/RenderLayer.cpp:
1789         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
1790         Bail out only if the layer doesn't have visible content AND no visible descendants.
1791
1792 2012-01-27  Chris Marrin  <cmarrin@apple.com>
1793
1794         Get rid of TransformOperationList
1795         https://bugs.webkit.org/show_bug.cgi?id=77249
1796
1797         Reviewed by Dan Bernstein.
1798
1799         Changed fetchTransformOperationList to validateTransformOperations and got rid of separately generated list
1800         of transform operations. These are not needed, they are already available in the keyframe lists and they
1801         make it more difficult to add support for hardware animated filters. No behavior changes.
1802
1803
1804         * platform/graphics/GraphicsLayer.cpp:
1805         (WebCore::GraphicsLayer::validateTransformOperations):
1806         * platform/graphics/GraphicsLayer.h:
1807         (GraphicsLayer):
1808         * platform/graphics/ca/GraphicsLayerCA.cpp:
1809         (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
1810         (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
1811         * platform/graphics/ca/GraphicsLayerCA.h:
1812         ():
1813         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1814         (WebCore::GraphicsLayerTextureMapper::addAnimation):
1815         * platform/graphics/texmap/TextureMapperAnimation.cpp:
1816         (WebCore::applyTransformAnimation):
1817         (WebCore::TextureMapperAnimation::TextureMapperAnimation):
1818         (WebCore::TextureMapperAnimation::applyInternal):
1819         * platform/graphics/texmap/TextureMapperAnimation.h:
1820         (TextureMapperAnimation):
1821
1822 2012-01-27  Raymond Toy  <rtoy@google.com>
1823
1824         AudioPannerNode::setPanningModel() does not update m_panningModel properly
1825         https://bugs.webkit.org/show_bug.cgi?id=66830
1826
1827         Reviewed by Kenneth Russell.
1828
1829         Test: webaudio/panner-set-model.html
1830
1831         * webaudio/AudioPannerNode.cpp:
1832         (WebCore::AudioPannerNode::setPanningModel):  Update
1833         m_panningModel appropriately.  Also silently do nothing if the
1834         model is invalid.
1835
1836 2012-01-27  Chris Rogers  <crogers@google.com>
1837
1838         HRTFPanner could have high-quality mode for smoother transitions
1839         https://bugs.webkit.org/show_bug.cgi?id=76470
1840
1841         Reviewed by Kenneth Russell.
1842
1843         * platform/audio/HRTFPanner.cpp:
1844         (WebCore):
1845         (WebCore::HRTFPanner::HRTFPanner):
1846         (WebCore::HRTFPanner::reset):
1847         (WebCore::HRTFPanner::calculateDesiredAzimuthIndexAndBlend):
1848         (WebCore::HRTFPanner::pan):
1849         * platform/audio/HRTFPanner.h:
1850         (HRTFPanner):
1851         ():
1852
1853 2012-01-27  Mike Lawther  <mikelawther@chromium.org>
1854
1855         CSS calc parsing stage
1856         https://bugs.webkit.org/show_bug.cgi?id=57082
1857
1858         This is the parsing stage of calc. The expressions are evaluated and 
1859         expression trees are generated. CSS values are not created yet - that
1860         will happen in a subsequent commit. 
1861
1862         Reviewed by David Hyatt.
1863
1864         No functional change - covered by existing tests in LayoutTests/css3/calc.
1865
1866         * CMakeLists.txt:
1867         * GNUmakefile.list.am:
1868         * Target.pri:
1869         * WebCore.gypi:
1870         * WebCore.vcproj/WebCore.vcproj:
1871         * WebCore.xcodeproj/project.pbxproj:
1872         * css/CSSCalculationValue.cpp: Added.
1873         (WebCore):
1874         (WebCore::unitCategory):
1875         (WebCore::CSSCalcValue::customCssText):
1876         (WebCore::CSSCalcExpressionNode::~CSSCalcExpressionNode):
1877         (CSSCalcPrimitiveValue):
1878         (WebCore::CSSCalcPrimitiveValue::create):
1879         (WebCore::CSSCalcPrimitiveValue::cssText):
1880         (WebCore::CSSCalcPrimitiveValue::CSSCalcPrimitiveValue):
1881         ():
1882         (CSSCalcBinaryOperation):
1883         (WebCore::CSSCalcBinaryOperation::create):
1884         (WebCore::CSSCalcBinaryOperation::CSSCalcBinaryOperation):
1885         (WebCore::checkDepthAndIndex):
1886         (CSSCalcExpressionNodeParser):
1887         (WebCore::CSSCalcExpressionNodeParser::parseCalc):
1888         (Value):
1889         (WebCore::CSSCalcExpressionNodeParser::operatorValue):
1890         (WebCore::CSSCalcExpressionNodeParser::parseValue):
1891         (WebCore::CSSCalcExpressionNodeParser::parseValueTerm):
1892         (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
1893         (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
1894         (WebCore::CSSCalcExpressionNodeParser::parseValueExpression):
1895         (WebCore::CSSCalcValue::create):
1896         * css/CSSCalculationValue.h: Added.
1897         (WebCore):
1898         ():
1899         (CSSCalcExpressionNode):
1900         (WebCore::CSSCalcExpressionNode::category):
1901         (WebCore::CSSCalcExpressionNode::isInt):
1902         (WebCore::CSSCalcExpressionNode::isZero):
1903         (WebCore::CSSCalcExpressionNode::CSSCalcExpressionNode):
1904         (CSSCalcValue):
1905         (WebCore::CSSCalcValue::category):
1906         (WebCore::CSSCalcValue::isInt):
1907         (WebCore::CSSCalcValue::CSSCalcValue):
1908         * css/CSSParser.cpp:
1909         (WebCore::CSSParser::validCalculationUnit):
1910         (WebCore):
1911         (WebCore::CSSParser::validUnit):
1912         (WebCore::CSSParser::createPrimitiveNumericValue):
1913         (WebCore::CSSParser::parseValidPrimitive):
1914         (WebCore::CSSParser::parseValue):
1915         (WebCore::CSSParser::parseFillPositionComponent):
1916         (WebCore::CSSParser::parsedDouble):
1917         (WebCore::CSSParser::isCalculation):
1918         (WebCore::CSSParser::colorIntFromValue):
1919         (WebCore::CSSParser::parseColorParameters):
1920         (WebCore::CSSParser::parseHSLParameters):
1921         (WebCore::ShadowParseContext::ShadowParseContext):
1922         (WebCore::ShadowParseContext::commitLength):
1923         (WebCore::ShadowParseContext::commitStyle):
1924         (ShadowParseContext):
1925         (WebCore::CSSParser::parseShadow):
1926         (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
1927         (WebCore::BorderImageSliceParseContext::commitNumber):
1928         (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
1929         (BorderImageSliceParseContext):
1930         (WebCore::CSSParser::parseBorderImageSlice):
1931         (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
1932         (WebCore::BorderImageQuadParseContext::commitNumber):
1933         (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
1934         (BorderImageQuadParseContext):
1935         (WebCore::CSSParser::parseBorderImageQuad):
1936         (WebCore::CSSParser::parseCalculation):
1937         * css/CSSParser.h:
1938         ():
1939         (CSSParser):
1940         * css/CSSValue.cpp:
1941         (WebCore::CSSValue::cssText):
1942         (WebCore::CSSValue::destroy):
1943         * css/CSSValue.h:
1944         (WebCore::CSSValue::isCalculationValue):
1945         ():
1946         * css/SVGCSSParser.cpp:
1947         (WebCore::CSSParser::parseSVGValue):
1948         * platform/CalculationValue.cpp: Added.
1949         (WebCore):
1950         * platform/CalculationValue.h: Added.
1951         (WebCore):
1952         ():
1953
1954 2012-01-27  Anders Carlsson  <andersca@apple.com>
1955
1956         WebTileLayers should honor the acceleratesDrawing flag
1957         https://bugs.webkit.org/show_bug.cgi?id=77242
1958         <rdar://problem/10622128>
1959
1960         Reviewed by Dan Bernstein.
1961
1962         * platform/graphics/ca/mac/TileCache.h:
1963         (WebCore::TileCache::acceleratesDrawing):
1964         Add getter.
1965
1966         * platform/graphics/ca/mac/TileCache.mm:
1967         (WebCore::TileCache::TileCache):
1968         Initialize m_acceleratesDrawing.
1969
1970         (WebCore::TileCache::setAcceleratesDrawing):
1971         Set m_acceleratesDrawing and go through all tile layers and update the flag.
1972
1973         (WebCore::TileCache::createTileLayer):
1974         Call -[CALayer setAcceleratesDrawing:] on the newly created layer.
1975
1976         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1977         (-[WebTileCacheLayer setAcceleratesDrawing:]):
1978         (-[WebTileCacheLayer acceleratesDrawing]):
1979         Call through to the TileCache object.
1980
1981 2012-01-27  Raymond Toy  <rtoy@google.com>
1982
1983         Round time to sample frame
1984         https://bugs.webkit.org/show_bug.cgi?id=76659
1985
1986         Three major changes:
1987
1988         1. Modify timeToSampleFrame to round the time to the sample frame
1989         and add support for Visual Studio to round the time in the same
1990         way as on gcc. (The issue is that Visual Studio uses x87
1991         instructions with 80-bit floats.)  This makes Visual Studio more
1992         consistent with the results with gcc.
1993
1994         2. Change the current time variable from keeping time in seconds
1995         to keeping time in sample frames.  This minimizes rounding except
1996         when needed for the Javascript API.
1997
1998         3. Update AudioBufferSourceNode::process to use samples (instead
1999         of time) as much as possible to reduce round-off effects.
2000
2001         Reviewed by Kenneth Russell.
2002
2003         Tests: Added note-grain-on test to exercise precise
2004         timing. Existing tests (gain and audiobuffersource-playbackrate)
2005         also cover some of these changes, and the equalpower panner test is
2006         modified to enable the tests for the offset of the impulses.
2007
2008         * platform/audio/AudioUtilities.cpp:
2009         (WebCore::AudioUtilities::timeToSampleFrame): Moved from
2010         AudioParamTimeLine and slightly modified, and updated to round
2011         operations consistently.  Add special flags for Visual Studio to
2012         generate code with rounding that is consistent with gcc.
2013         * platform/audio/AudioUtilities.h: Declare new function.
2014         * webaudio/AudioBufferSourceNode.cpp:
2015         (WebCore::AudioBufferSourceNode::process): Use new functions to
2016         convert time to sample frame.  Update code to use integer
2017         arithmetic as much as possible.
2018         (WebCore::AudioBufferSourceNode::renderFromBuffer): Use
2019         timeToSampleFrame to convert time to sample frame.
2020         * webaudio/AudioContext.h: Define new currentSample method to get
2021         the current sample.
2022         * webaudio/AudioDestinationNode.cpp:
2023         (WebCore::AudioDestinationNode::provideInput): Use new function to
2024         convert sample frame to time.  Update
2025         * webaudio/AudioDestiationNode.h: Rename m_currentTime to
2026         m_currentSample, add method to return current Sample.  Update
2027         currentTime() method to compute time from the current sample.
2028         * webaudio/AudioParamTimeline.cpp:
2029         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl): Remove
2030         timeToSampleFrame and use new function in AudioUtilities to
2031         convert time to sample frame.
2032
2033 2012-01-27  Adrienne Walker  <enne@google.com>
2034
2035         [chromium] Don't ever skip drawing the non-composited content layer
2036         https://bugs.webkit.org/show_bug.cgi?id=77236
2037
2038         Reviewed by James Robinson.
2039
2040         Since the root layer has its textures potentially reserved last in a
2041         front-to-back iteration, don't ever skip drawing it if we can't
2042         reserve its textures. Instead, checkerboard and draw background color
2043         quads instead to fill the viewport. This behavior is tied to the
2044         backgroundFillsViewport setting.
2045
2046         * platform/graphics/chromium/TiledLayerChromium.cpp:
2047         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2048         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2049         (WebCore::CCLayerTilingData::reset):
2050         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2051         (WebCore::CCTiledLayerImpl::appendQuads):
2052
2053 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
2054
2055         Fix a warning in the GTK+ build.
2056
2057         Reviewed by Gustavo Noronha Silva.
2058
2059         No new tests. This should not change behavior.
2060
2061         * plugins/gtk/PluginViewGtk.cpp:
2062         (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.
2063
2064 2012-01-27  Tien-Ren Chen  <trchen@chromium.org>
2065
2066         [chromium] CCLayerTreeHostImpl minor code cleanup
2067         https://bugs.webkit.org/show_bug.cgi?id=77181
2068
2069         Fix a typo in comments and group functions properly.
2070         Replace duplicated content size code with function.
2071
2072         Reviewed by James Robinson.
2073
2074         No new tests. No change in behavior.
2075
2076         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2077         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
2078         (WebCore::CCLayerTreeHostImpl::contentSize):
2079         (WebCore):
2080         (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
2081         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2082         (CCLayerTreeHostImpl):
2083
2084 2012-01-27  Kevin Ollivier  <kevino@theolliviers.com>
2085
2086         [wx] Unreviewed. Build fix, add missing header.
2087
2088         * rendering/svg/SVGImageBufferTools.h:
2089
2090 2012-01-27  Victor Carbune  <victor@rosedu.org>
2091
2092         Added the GenericEventQueue class in order to generalize asynchronous
2093         event dispatching in HTMLMediaElement.
2094
2095         In order to support asynchronous events dispatched by HTMLTrackElement
2096         there is a need for a generalized implementation of an event queue to
2097         be used for both HTMLMediaElement and Text Tracks.
2098
2099         https://bugs.webkit.org/show_bug.cgi?id=76110
2100
2101         Reviewed by Eric Carlson.
2102
2103         No new tests. No new functionality, only refactoring.
2104
2105         * CMakeLists.txt:
2106         * GNUmakefile.list.am:
2107         * Target.pri:
2108         * WebCore.gypi:
2109         * WebCore.vcproj/WebCore.vcproj:
2110         * WebCore.xcodeproj/project.pbxproj:
2111
2112         * dom/GenericEventQueue.cpp: Added. Implements the abstract class EventQueue.
2113         (WebCore::GenericEventQueue::GenericEventQueue):
2114         (WebCore::GenericEventQueue::~GenericEventQueue):
2115         (WebCore::GenericEventQueue::enqueueEvent): Append an event to the current
2116         pending event list.
2117         (WebCore::GenericEventQueue::cancelEvent): Removes an event from the current
2118         pending event list.
2119         (WebCore::GenericEventQueue::timerFired): Callback method when the timer fires.
2120         Dispatches all events that are currently pending.
2121         (WebCore::GenericEventQueue::close): Closes the event queue such that it cannot
2122         be used anymore.
2123         (WebCore::GenericEventQueue::cancelAllEvents): Removes all pending events.
2124         (WebCore::GenericEventQueue::hasPendingEvents): True if there are pending events.
2125         * dom/GenericEventQueue.h: Added.
2126
2127         * html/HTMLMediaElement.cpp:
2128         (WebCore::HTMLMediaElement::HTMLMediaElement):
2129         (WebCore::HTMLMediaElement::scheduleEvent): Refactored method to enqueue
2130         the scheduled event on the GenericEventQueue instance.
2131         (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): Ditto.
2132         (WebCore::HTMLMediaElement::hasPendingActivity): Ditto.
2133         (WebCore::HTMLMediaElement::dispatchEvent): This method is overriden
2134         to keep an evidence when a canPlay event is fired.
2135         * html/HTMLMediaElement.h:
2136
2137 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
2138
2139         Fix a warning in the GTK+ build.
2140
2141         Reviewed by Gustavo Noronha Silva.
2142
2143         No new tests. This should not change behavior.
2144
2145         * plugins/gtk/PluginViewGtk.cpp:
2146         (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.
2147
2148 2012-01-27  Benjamin Poulain  <bpoulain@apple.com>
2149
2150         Speed up the prefix matching of cssPropertyName()
2151         https://bugs.webkit.org/show_bug.cgi?id=77158
2152
2153         Reviewed by Geoffrey Garen.
2154
2155         This patch improves the performance by:
2156         -not checking the PropertyName with all 7 prefix
2157          (now, in the worse case, 2 prefixes are checked)
2158         -avoiding the conversion 8bits->16bits by using String::operator[]
2159          instead of ::characters()
2160
2161         To avoid checking every prefix, the code branch based on the first
2162         characters of the propertyName.
2163         The remaining of the prefix is checked character by characters like before.
2164
2165         When accessing CSS property, this gives a 13% improvement when there is no prefix.
2166         There is no performance regression for the matching of prefix, including for the first one
2167         of the previous matching code ("css").
2168
2169         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2170         ():
2171         (WebCore::matchesCSSPropertyNamePrefix):
2172         (WebCore):
2173         (WebCore::getCSSPropertyNamePrefix):
2174         (WebCore::cssPropertyName):
2175
2176 2012-01-27  Ken Buchanan  <kenrb@chromium.org>
2177
2178         Crash in updateFirstLetter() from unnecessary anonymous block
2179         https://bugs.webkit.org/show_bug.cgi?id=72675
2180
2181         Reviewed by David Hyatt.
2182
2183         There was a problem with anonymous blocks not getting removed when
2184         their only block flow siblings are removed if they also have non-block
2185         flow first-letter siblings (i.e. floats). This patch modifies
2186         RenderBlock::removeChild() to look for this situation and strip out
2187         unnecessary anonymous container blocks if it occurs.
2188
2189         * rendering/RenderBlock.cpp:
2190         (WebCore::RenderBlock::removeChild):
2191         (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
2192         * rendering/RenderBlock.h:
2193         (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
2194
2195 2012-01-27  Fady Samuel  <fsamuel@chromium.org>
2196
2197         Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
2198         https://bugs.webkit.org/show_bug.cgi?id=76459
2199
2200         Reviewed by Darin Fisher.
2201
2202         This should be a setting because it is independent of a particular frame and
2203         should be preserved even if the mainframe changes.
2204
2205         Renamed (set)ShouldLayoutFixedElementsRelativeToFrame to 
2206         (set)FixedElementsLayoutRelativeToFrame due to the connotation
2207         the word "should" may have in this context: If set, 
2208         position:fixed elements will ALWAYS be laid out relative to the frame.
2209
2210
2211         * WebCore.exp.in:
2212         * page/FrameView.cpp:
2213         (WebCore::FrameView::reset):
2214         (WebCore::FrameView::scrollXForFixedPosition):
2215         (WebCore::FrameView::scrollYForFixedPosition):
2216         (WebCore::FrameView::fixedElementsLayoutRelativeToFrame):
2217         (WebCore):
2218         * page/FrameView.h:
2219         (FrameView):
2220         * page/Settings.cpp:
2221         (WebCore::Settings::Settings):
2222         (WebCore::Settings::setFixedElementsLayoutRelativeToFrame):
2223         (WebCore):
2224         * page/Settings.h:
2225         (Settings):
2226         (WebCore::Settings::fixedElementsLayoutRelativeToFrame):
2227         * rendering/RenderBox.cpp:
2228         (WebCore::RenderBox::fixedElementLaysOutRelativeToFrame):
2229         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2230         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
2231         * rendering/RenderBox.h:
2232         (RenderBox):
2233         * testing/InternalSettings.cpp:
2234         (WebCore::InternalSettings::setFixedElementsLayoutRelativeToFrame):
2235         * testing/InternalSettings.h:
2236         (InternalSettings):
2237         * testing/InternalSettings.idl:
2238
2239 2012-01-27  Kentaro Hara  <haraken@chromium.org>
2240
2241         Support the [Supplemental] IDL for constants
2242         https://bugs.webkit.org/show_bug.cgi?id=77228
2243
2244         Reviewed by Adam Barth.
2245
2246         We have supported the [Supplemental] IDL for attributes and methods.
2247         This patch supports it for constants.
2248
2249         Test: bindings/scripts/test/TestSupplemental.idl
2250
2251         * bindings/scripts/generate-bindings.pl:
2252         Supported [Supplemental] constants.
2253         Updated some comments.
2254
2255         * bindings/scripts/test/TestSupplemental.idl:
2256         Added test cases for [Supplemental] constants.
2257
2258         * bindings/scripts/test/CPP/WebDOMTestInterface.h: Updated the test results.
2259         * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
2260         (WebCore::JSTestInterfacePrototype::getOwnPropertySlot):
2261         (WebCore::JSTestInterfacePrototype::getOwnPropertyDescriptor):
2262         (WebCore):
2263         (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT1):
2264         (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT2):
2265         * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
2266         (WebCore):
2267         * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
2268         * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
2269         (WebCore::ConfigureV8TestInterfaceTemplate):
2270
2271 2012-01-27  Anders Carlsson  <andersca@apple.com>
2272
2273         When threaded scrolling is enabled for a FrameView, always put scrollbars in layers
2274         https://bugs.webkit.org/show_bug.cgi?id=77232
2275         <rdar://problem/10766708>
2276
2277         Reviewed by Beth Dakin.
2278
2279         * page/ScrollingCoordinator.cpp:
2280         (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
2281         * page/ScrollingCoordinator.h:
2282         Add a new helper function.
2283
2284         * rendering/RenderLayerCompositor.cpp:
2285         (WebCore::shouldCompositeOverflowControls):
2286         Make this take a FrameView, check with the scrolling coordinator if the overflow controls should be composited.
2287
2288         (WebCore::RenderLayerCompositor::requiresHorizontalScrollbarLayer):
2289         (WebCore::RenderLayerCompositor::requiresVerticalScrollbarLayer):
2290         (WebCore::RenderLayerCompositor::requiresScrollCornerLayer):
2291         Update for the change to make shouldCompositeOverflowControls take a FrameView.
2292
2293 2012-01-24  Vincent Scheib  <scheib@chromium.org>
2294
2295         Pointer Lock: Implement pointer interface
2296         https://bugs.webkit.org/show_bug.cgi?id=75762
2297
2298         Reviewed by Julien Chaffraix.
2299
2300         Implement the navigator.pointer interface via a new
2301         PointerLockController class, as per
2302         http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html.
2303
2304         The implementation is being made in steps, the feature is still behind
2305         compile-time and run-time flags, 'webkit' prefixed, and not yet enabled
2306         in any browser. (Chromium has a developer flag required.) Follow-up
2307         work will include handling DOM elements being removed, making all
2308         callbacks asynchronous, iframe permissions (similar to Full Screen),
2309         etc.
2310
2311         PointerLockController maintains state of which Element is the current
2312         lock target and the success and failure callbacks. ChromeClient has
2313         methods added to expose the required state change requests.
2314
2315         Tests: pointer-lock/lock-already-locked.html
2316                pointer-lock/lock-fail-responses.html
2317                pointer-lock/mouse-event-delivery.html
2318                pointer-lock/pointerlocklost-event.html
2319
2320         * WebCore.gypi:
2321         * dom/EventNames.h:
2322         * page/ChromeClient.h:
2323         (WebCore::ChromeClient::requestPointerLock):
2324         (WebCore::ChromeClient::requestPointerUnlock):
2325         (WebCore::ChromeClient::isPointerLocked):
2326         * page/Navigator.cpp:
2327         (WebCore::Navigator::webkitPointer):
2328         * page/Page.cpp:
2329         (WebCore::Page::Page):
2330         * page/Page.h:
2331         (WebCore::Page::pointerLockController):
2332         * page/PointerLock.cpp:
2333         (WebCore::PointerLock::PointerLock):
2334         (WebCore::PointerLock::create):
2335         (WebCore::PointerLock::lock):
2336         (WebCore::PointerLock::unlock):
2337         (WebCore::PointerLock::isLocked):
2338         * page/PointerLock.h:
2339         (WebCore::PointerLock::create):
2340         * page/PointerLockController.cpp: Added.
2341         (WebCore::PointerLockController::PointerLockController):
2342         (WebCore::PointerLockController::requestPointerLock):
2343         (WebCore::PointerLockController::requestPointerUnlock):
2344         (WebCore::PointerLockController::isLocked):
2345         (WebCore::PointerLockController::didAcquirePointerLock):
2346         (WebCore::PointerLockController::didNotAcquirePointerLock):
2347         (WebCore::PointerLockController::didLosePointerLock):
2348         (WebCore::PointerLockController::dispatchLockedMouseEvent):
2349         * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h.
2350
2351 2012-01-27  Abhishek Arya  <inferno@chromium.org>
2352
2353         Crash in DocumentLoader::detachFromFrame.
2354         https://bugs.webkit.org/show_bug.cgi?id=62764
2355
2356         Reviewed by Brady Eidson.
2357
2358         r105556 didn't fix the crash because canceling the
2359         main resource loader blows away both the current
2360         document loader and frame underneath. Both protectors
2361         are also used in stopLoading() when m_mainResourceLoader->cancel()
2362         is called. Also, tested the fix under ASAN.
2363
2364         * loader/DocumentLoader.cpp:
2365         (WebCore::DocumentLoader::detachFromFrame):
2366
2367 2012-01-27  Tony Chang  <tony@chromium.org>
2368
2369         flexbox scrollbars don't take flex-direction into account
2370         https://bugs.webkit.org/show_bug.cgi?id=70772
2371
2372         Reviewed by Darin Adler.
2373
2374         This fixes a bug where we always used the logicalScrollbarHeight.
2375         For column flow, this was incorrect.
2376
2377         Also fix a bug where we didn't include the trailing border+padding+scrollbar when computing the
2378         height of a column flow.
2379
2380         Tests: css3/flexbox/cross-axis-scrollbar-expected.html
2381                css3/flexbox/cross-axis-scrollbar.html
2382
2383         * rendering/RenderFlexibleBox.cpp:
2384         (WebCore::RenderFlexibleBox::crossAxisScrollbarExtent): Add a direction aware method for getting the scrollbar size.
2385         (WebCore):
2386         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Use crossAxisScrollbarExtent.
2387         * rendering/RenderFlexibleBox.h:
2388         (RenderFlexibleBox):
2389
2390 2012-01-27  Kentaro Hara  <haraken@chromium.org>
2391
2392         Unreviewed. Rebasedlined run-bindings-tests results.
2393
2394         * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
2395         (WebDOMTestInterface::supplementalMethod1):
2396         (WebDOMTestInterface::supplementalMethod2):
2397
2398 2012-01-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
2399
2400         [Qt][WK2] Child layers appear in wrong position when scrolling
2401         https://bugs.webkit.org/show_bug.cgi?id=77063
2402
2403         Reviewed by Simon Fraser.
2404
2405         When using the delegatesScrolling mode in FrameView, the compositor doesn't need
2406         to control the special clip/scroll layers. Also, when we change that mode, we need to let
2407         the compositor reset its backing-stores and rebuild them without scrolling/clipping.
2408
2409         This is tested by compositing tests, when run with Qt in touch mode.
2410
2411         * page/FrameView.cpp:
2412         (WebCore::FrameView::delegatesScrollingDidChange):
2413         (WebCore):
2414         * page/FrameView.h:
2415         (FrameView):
2416         * platform/ScrollView.cpp:
2417         (WebCore::ScrollView::setDelegatesScrolling):
2418         * platform/ScrollView.h:
2419         (WebCore::ScrollView::delegatesScrollingDidChange):
2420         * rendering/RenderLayerCompositor.cpp:
2421         (WebCore::RenderLayerCompositor::requiresScrollLayer):
2422
2423 2012-01-27  Thiago Marcos P. Santos  <tmpsantos@gmail.com>
2424
2425         Removed unused method from CSSStyleSelector
2426         https://bugs.webkit.org/show_bug.cgi?id=77190
2427
2428         Reviewed by Andreas Kling.
2429
2430         * css/CSSStyleSelector.h:
2431         (CSSStyleSelector):
2432
2433 2012-01-27  Zeno Albisser  <zeno@webkit.org>
2434
2435         [Qt][Mac] Build fails after adding ICU support (r105997).
2436         https://bugs.webkit.org/show_bug.cgi?id=77118
2437
2438         Use SmareReplaceCF.cpp code path if platform Mac.
2439
2440         Reviewed by Tor Arne Vestbø.
2441
2442         * Target.pri:
2443
2444 2012-01-27  Ilya Tikhonovsky  <loislo@chromium.org>
2445
2446         Web Inspector: detailed heap snapshot: Replace (Native objects) root element
2447         with '(Detached DOM trees)' and '(Document DOM trees)'
2448         https://bugs.webkit.org/show_bug.cgi?id=77201
2449
2450         I think it'd be nice to replace one group containing all native objects with
2451         separate groups for different types of native objects.
2452
2453         Reviewed by Yury Semikhatsky.
2454
2455         * bindings/v8/RetainedDOMInfo.cpp:
2456         (WebCore::RetainedDOMInfo::GetGroupLabel):
2457         (WebCore):
2458         * bindings/v8/RetainedDOMInfo.h:
2459         (RetainedDOMInfo):
2460
2461 2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>
2462
2463         <feImage> doesn't work with local references when using primitiveUnits="objectBoundingBox"
2464         https://bugs.webkit.org/show_bug.cgi?id=77205
2465
2466         Reviewed by Antti Koivisto.
2467
2468         Consider following testcase:
2469         <svg width="1000" height="500">
2470         <defs>
2471             <circle id="c" cx="50%" cy="50%" r="10%"/>
2472             <filter id="f" filterUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" primitiveUnits="objectBoundingBox">
2473                 <feImage xlink:href="#c"/>
2474             </filter>
2475         </defs>
2476         <rect width="100" height="100" filter="url(#f)"/>
2477         </svg>
2478
2479         The <svg> has a viewport of 1000x50. The <circle> in the <defs> element is resolved as <circle cx="500" cy="250" r="79"/>,
2480         as the context for this element (looking at it isolated!) is the viewport of the <svg>. We then setup a 0x0 - 100x100 rect
2481         in user space, which gets filtered, by a filter, also defined in user space (for simplicity), but with primitiveUnits="objectBoundingBox".
2482
2483         That means that the default subregion of the filter effect <feImage/> which has no inputs, is defined in the SVG 1.1 spec to be equal to
2484         the filter region, which is 0x0-100x100 in user space. This <feImage/> is supposed to produce a 100x100 image, containing a circle in the
2485         middle (aka. <circle cx="50" cy="50".../>), but it doesn't, as the <circle> it's trying to paint, is laid out at 500x250, and thus outside
2486         the 100x100 sized image buffer.
2487
2488         So how to resolve this?
2489         The RenderSVGShape thats owned by the <circle> generates its Path value by calling cx().value(lengthContext) and the SVGLengthContext here
2490         resolves to the <svg>. That happens on _layout_. If we would want to change the SVGLengthContext in this case (what I originally planned!)
2491         to carry a custom 100x100 viewport, we'd need to relayout. Unfortunately this is not an option, as this would mean that
2492         SVGImageBufferTools::renderSubtreeToImageBuffer, would need to relayout its children first, but we produce the filter images when painting.
2493         This is very dangerous and has just recently been fixed so that SVGImageBufferTools can ASSERT(!item->needsLayout()) when painting the
2494         subtree to an image buffer.
2495
2496         The only sane solution I see, that does not require relayouts, is to make a map between the <circle> bounding box in user space (500x250
2497         center point) to the filter primitive subregion space (here: 100x100 center point), and concat that transformation before painting the
2498         subtree to the image buffer. Of course this approach only works if all values of the <circle> are relative. If someone uses
2499         <circle id="c" cx="50%" cy="666"> the transformation that I'm looking for is undefined. We'd really need to create a new Path here, to
2500         resolve only cx against the new viewport, and not cy.
2501
2502         Though in practice it turns out this is not a problem. All use cases of feImage + primitiveUnits="objectBoundingBox" link to elements
2503         that are completely defined in percentual values, as this is really the only thing which makes sense - otherwise you can always switch
2504         back to primtiveUnits="userSpaceOnUse". Anyhow, I'm going to fix all known wild-life test cases by my approach, and say we don't support
2505         using mixed length units when referencing those elements from feImages with primitiveUnits="objectBoundingBox".
2506
2507         Adding lots of new testcases, trying all the different feImage modes.
2508
2509         Tests: svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox.svg
2510                svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse.svg
2511                svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox.svg
2512                svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse.svg
2513                svg/filters/feImage-position.svg
2514                svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox.svg
2515                svg/filters/feImage-subregions-preseveAspectRatio-none.svg
2516                svg/filters/feImage-subregions.svg
2517
2518         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
2519         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): Reverse logic, simplifying the code a bit. Remove FEImage special cases (absoluteSubregion).
2520         * svg/SVGLengthContext.h: Make determineViewport() public, for use in FEImage.
2521         * svg/graphics/filters/SVGFEImage.cpp:
2522         (WebCore::FEImage::determineAbsolutePaintRect): Don't apply preserveAspectRatio transformation for local elements, it's not defined and breaks content.
2523         (WebCore::FEImage::platformApplySoftware): Figure out the absolute subregion by utilizing filterPrimitiveSubregion() as FETurbulence does.
2524                                                    Map between filter primitive subregion and target object space for primitiveUnits="objectBoundingBox" support on SVG element references.
2525         * svg/graphics/filters/SVGFEImage.h: Remove absoluteSubregion member & setter, it's no longer needed.
2526
2527 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
2528
2529         Web Inspector: Scripts panel: fix event dispatching between FileSelector and EditorContainer.
2530         https://bugs.webkit.org/show_bug.cgi?id=77126
2531
2532         Reviewed by Pavel Feldman.
2533
2534         * inspector/front-end/ScriptsPanel.js:
2535         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
2536         (WebInspector.ScriptsPanel.prototype._reset):
2537         (WebInspector.ScriptsPanel.prototype._showSourceLine):
2538         (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
2539         (WebInspector.ScriptsPanel.prototype._editorClosed):
2540         (WebInspector.ScriptsPanel.prototype._editorSelected):
2541         (WebInspector.ScriptsPanel.FileSelector.prototype.revealUISourceCode):
2542         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.revealUISourceCode):
2543         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._innerRevealUISourceCode):
2544         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered):
2545         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect):
2546         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
2547         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
2548         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
2549         * inspector/front-end/TabbedEditorContainer.js:
2550         (WebInspector.TabbedEditorContainer):
2551         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
2552         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
2553         (WebInspector.TabbedEditorContainer.prototype.reset):
2554
2555 2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>
2556
2557         <feImage> DOM mutation problems
2558         https://bugs.webkit.org/show_bug.cgi?id=77198
2559
2560         Reviewed by Antti Koivisto.
2561
2562         Consider <feImage xlink:href="#rect"/>, where <rect> gets dynamically added to the tree.
2563         Currently <feImage> doesn't notice this, as it doesn't register itself pending on "#rect".
2564
2565         Integrate <feImage> properly within the pending resources concept, fixing the bug.
2566
2567         Tests: svg/filters/feImage-target-add-to-document.svg
2568                svg/filters/feImage-target-changes-id.svg
2569                svg/filters/feImage-target-id-change.svg
2570                svg/filters/feImage-target-reappend-to-document.svg
2571                svg/filters/feImage-target-remove-from-document.svg
2572
2573         * svg/SVGFEImageElement.cpp: Rename invalidateImageResource to clearResourceReferences.
2574         (WebCore::SVGFEImageElement::~SVGFEImageElement): Call clearResourceReferences.
2575         (WebCore::SVGFEImageElement::clearResourceReferences): Remove any occurence of m_targetImage, it's no longer used.
2576         (WebCore::SVGFEImageElement::requestImageResource): requestImageResource is now called by buildPendingResource.
2577         (WebCore::SVGFEImageElement::buildPendingResource): Called whenever any element that we depend on gets resolved - now invalidates the <filter>.
2578         (WebCore::SVGFEImageElement::parseMappedAttribute): Don't start loading from parseMappedAttribute.
2579         (WebCore::SVGFEImageElement::svgAttributeChanged): Start loading from here, for consistency with SVGImageElement.
2580         (WebCore::SVGFEImageElement::insertedIntoDocument): Invoke buildPendingResource(), if we enter the tree.
2581         (WebCore::SVGFEImageElement::removedFromDocument): Clear m_cachedImage as soon as we get removed from the tree.
2582         (WebCore::SVGFEImageElement::build): Clean up this function, m_targetImage is no longer exist.
2583         * svg/SVGFEImageElement.h: Remove OwnPtr<ImageBuffer> m_targetImage, which is no longer used.
2584
2585 2012-01-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2586
2587         [Qt] WKTR: Use a software rendering pipiline when running tests.
2588         https://bugs.webkit.org/show_bug.cgi?id=76708
2589
2590         Reviewed by Kenneth Rohde Christiansen.
2591
2592         * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
2593         (WebCore::TextureMapperQt::setGraphicsContext):
2594         * platform/graphics/qt/TextureMapperQt.h:
2595         (WebCore::TextureMapperQt::initialize):
2596
2597 2012-01-27  Branimir Lambov  <blambov@google.com>
2598
2599         SVG filters incorrectly move elements
2600         https://bugs.webkit.org/show_bug.cgi?id=73643
2601
2602         Reviewed by Nikolas Zimmermann.
2603
2604         Fixes SVG image buffer creation to use the enclosing integer rect
2605         instead of unstable rounded coordinates with scaling which was causing
2606         animated images to jump around under filters. The image buffer was not 
2607         aligned on a pixel boundary, and thus the positions and sizes of anything
2608         drawn under that filter changed by 1-2 pixels compared to the same
2609         elements drawn without an intermediate buffer, or drawn with a buffer
2610         with a different target rectangle. 
2611         
2612         The change improves the positioning of clip paths, masks and filters.
2613
2614         Tests: svg/clip-path/clip-in-clip.svg
2615                svg/clip-path/clipper-placement-issue.svg
2616                svg/filters/filter-placement-issue.svg
2617
2618         * platform/graphics/filters/FETile.cpp:
2619         (WebCore::FETile::platformApplySoftware):
2620         * rendering/svg/RenderSVGResourceClipper.cpp:
2621         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2622         * rendering/svg/RenderSVGResourceFilter.cpp:
2623         (WebCore::RenderSVGResourceFilter::applyResource):
2624         * rendering/svg/RenderSVGResourceGradient.cpp:
2625         (WebCore::createMaskAndSwapContextForTextGradient):
2626         (WebCore::clipToTextMask):
2627         * rendering/svg/RenderSVGResourceMasker.cpp:
2628         (WebCore::RenderSVGResourceMasker::applyResource):
2629         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
2630         * rendering/svg/RenderSVGResourcePattern.cpp:
2631         (WebCore::RenderSVGResourcePattern::createTileImage):
2632         * rendering/svg/SVGImageBufferTools.cpp:
2633         (WebCore::SVGImageBufferTools::createImageBuffer):
2634         (WebCore::SVGImageBufferTools::createImageBufferForPattern):
2635         (WebCore::SVGImageBufferTools::clipToImageBuffer):
2636         (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
2637         (WebCore::SVGImageBufferTools::clampedAbsoluteSize):
2638         * rendering/svg/SVGImageBufferTools.h:
2639         (WebCore::SVGImageBufferTools::calcImageBufferRect):
2640
2641 2012-01-25  Yury Semikhatsky  <yurys@chromium.org>
2642
2643         Web Inspector: should be possible to open function declaration from script popover
2644         https://bugs.webkit.org/show_bug.cgi?id=76913
2645
2646         Added inferred/display function name and source location to the popover in scripts panel.
2647         Now when a function is hovered user can navigate to its definition.
2648
2649         Reviewed by Pavel Feldman.
2650
2651         Test: inspector/debugger/function-details.html
2652
2653         * bindings/js/JSInjectedScriptHostCustom.cpp:
2654         (WebCore::JSInjectedScriptHost::functionDetails):
2655         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2656         (WebCore::V8InjectedScriptHost::functionDetailsCallback):
2657         * inspector/InjectedScript.cpp:
2658         (WebCore::InjectedScript::getFunctionDetails):
2659         * inspector/InjectedScript.h:
2660         (InjectedScript):
2661         * inspector/InjectedScriptHost.idl:
2662         * inspector/InjectedScriptSource.js:
2663         (.):
2664         * inspector/Inspector.json:
2665         * inspector/InspectorDebuggerAgent.cpp:
2666         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
2667         * inspector/InspectorDebuggerAgent.h:
2668         (InspectorDebuggerAgent):
2669         * inspector/front-end/DebuggerPresentationModel.js:
2670         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyFunctionLocation):
2671         * inspector/front-end/ObjectPopoverHelper.js:
2672         (WebInspector.ObjectPopoverHelper):
2673         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
2674         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
2675         (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
2676         * inspector/front-end/ObjectPropertiesSection.js:
2677         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
2678         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
2679         * inspector/front-end/RemoteObject.js:
2680         (WebInspector.RemoteObject):
2681         (WebInspector.RemoteObject.fromPayload):
2682         (WebInspector.RemoteObject.prototype.get functionName):
2683         * inspector/front-end/scriptsPanel.css:
2684         (.function-location-link):
2685         (.function-popover-title):
2686         (.function-popover-title .function-name):
2687
2688 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
2689
2690         Remove FIXME: ColorProfile encapsulation as a Vector<char> works well 
2691         https://bugs.webkit.org/show_bug.cgi?id=77176
2692
2693         Reviewed by Adam Barth.
2694
2695         No new tests. No change in behavior.
2696
2697         * platform/image-decoders/ImageDecoder.h:
2698
2699 2012-01-26  Matthew Delaney  <mdelaney@apple.com>
2700
2701         ImageBuffer::draw should deep copy if drawing to an accelerated context
2702         https://bugs.webkit.org/show_bug.cgi?id=77185
2703
2704         Reviewed by Simon Fraser.
2705
2706         No new tests since any test for this issue would be flaky at best.
2707
2708         * platform/graphics/cg/ImageBufferCG.cpp: Deep copy when drawing ourself into
2709             an accelerated context for both draw and drawPattern.
2710         (WebCore::ImageBuffer::draw):
2711         (WebCore::ImageBuffer::drawPattern):
2712
2713 2012-01-26  Kevin Ollivier  <kevino@theolliviers.com>
2714
2715         [wx] Unreviewed. Build fixes.
2716         - Remove some constructors not generated by CPP bindings
2717           from being added to CPP binding headers
2718         - Keyboard event fixes after modifier changes
2719         - Add stubs for Language and RunLoop platform methods
2720
2721         * bindings/scripts/CodeGeneratorCPP.pm:
2722         (GetNamespaceForClass):
2723         (GenerateImplementation):
2724         * platform/mac/WebCoreSystemInterface.h:
2725         * platform/wx/KeyboardEventWx.cpp:
2726         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2727         * platform/wx/LanguageWx.cpp: Added.
2728         (WebCore):
2729         (WebCore::platformLanguage):
2730         (WebCore::platformUserPreferredLanguages):
2731         * platform/wx/RunLoopWx.cpp: Added.
2732         (WebCore):
2733         (WebCore::RunLoop::run):
2734         (WebCore::RunLoop::stop):
2735         (WebCore::RunLoop::RunLoop):
2736         (WebCore::RunLoop::~RunLoop):
2737         (WebCore::RunLoop::wakeUp):
2738         * storage/DOMWindowSQLDatabase.idl:
2739         * webaudio/DOMWindowWebAudio.idl:
2740         * websockets/DOMWindowWebSocket.idl:
2741
2742 2012-01-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2743
2744         Unreviewed, rolling out r105486.
2745         http://trac.webkit.org/changeset/105486
2746         https://bugs.webkit.org/show_bug.cgi?id=77182
2747
2748         This patch doesn't take web workers into account. (Requested
2749         by dave_levin on #webkit).
2750
2751         * html/DOMURL.cpp:
2752         (WebCore::DOMURL::DOMURL):
2753         (WebCore::DOMURL::~DOMURL):
2754         (WebCore::DOMURL::contextDestroyed):
2755         (WebCore):
2756         (WebCore::DOMURL::createObjectURL):
2757         (WebCore::DOMURL::revokeObjectURL):
2758         * html/DOMURL.h:
2759         (WebCore::DOMURL::create):
2760         (DOMURL):
2761         * html/DOMURL.idl:
2762         * page/DOMWindow.cpp:
2763         (WebCore):
2764         (WebCore::DOMWindow::webkitURL):
2765         * page/DOMWindow.h:
2766         (DOMWindow):
2767         ():
2768         * page/DOMWindow.idl:
2769         * workers/WorkerContext.cpp:
2770         (WebCore):
2771         (WebCore::WorkerContext::webkitURL):
2772         (WebCore::WorkerContext::webkitRequestFileSystem):
2773         * workers/WorkerContext.h:
2774         (WorkerContext):
2775         ():
2776         * workers/WorkerContext.idl:
2777
2778 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
2779
2780         Cleanup JPEGImageDecoder includes
2781         https://bugs.webkit.org/show_bug.cgi?id=77171
2782
2783         Reviewed by Adam Barth.
2784
2785         No new tests. Refactoring cleanup only.
2786
2787         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
2788
2789 2012-01-26  Tim Horton  <hortont424@gmail.com>
2790
2791         3D transformed elements hide when showing the print dialog
2792         https://bugs.webkit.org/show_bug.cgi?id=45894
2793         <rdar://problem/7441593>
2794
2795         Reviewed by Andy Estes.
2796
2797         Suspend updates of the compositing layer tree while printing is taking place,
2798         preventing on-screen layers from moving to their print-mode positions.
2799
2800         No new tests, as WebKitTestRunner doesn't support putting the document
2801         into printing mode.
2802
2803         * page/FrameView.cpp:
2804         (WebCore::FrameView::syncCompositingStateForThisFrame):
2805         (WebCore::FrameView::paintContents):
2806         * platform/graphics/ca/LayerFlushScheduler.h:
2807         (WebCore::LayerFlushScheduler::isSuspended): Added.
2808
2809 2012-01-26  Pablo Flouret  <pablof@motorola.com>
2810
2811         Fix bad code generated by the JSC idl code generator for [CachedAttribute] attributes
2812         https://bugs.webkit.org/show_bug.cgi?id=77165
2813
2814         Reviewed by Oliver Hunt.
2815
2816         Missing parameter in a call to deserialize() and using 'this' in the
2817         attribute accessor functions (which are static).
2818
2819         * bindings/scripts/CodeGeneratorJS.pm:
2820         (GenerateImplementation):
2821         (NativeToJSValue):
2822         * bindings/scripts/test/JS/JSTestObj.cpp:
2823         (WebCore::jsTestObjCachedAttribute1):
2824         (WebCore::jsTestObjCachedAttribute2):
2825         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2826         (WebCore::jsTestSerializedScriptValueInterfaceValue):
2827
2828 2012-01-26  W. James MacLean  <wjmaclean@chromium.org>
2829
2830         [chromium] Allow modification of size of partially occluded quads during culling to reduce pixel overdraw.
2831         https://bugs.webkit.org/show_bug.cgi?id=76349
2832
2833         Reviewed by James Robinson.
2834
2835         Prior to this patch, draw culling either rejects a DrawQuad because it is completely
2836         occluded, or draws the entire quad (even if it is largely occluded). This patch
2837         attempts to reduce the number of pixels drawn by determining if a partially
2838         occluded DrawQuad can be resized to a smaller quad, based on what portion of the
2839         DrawQuad is actually visible, and performing that resizing where possible.
2840
2841         Added cases to existing unit tests.
2842
2843         * platform/graphics/chromium/LayerRendererChromium.cpp:
2844         (WebCore::LayerRendererChromium::drawTileQuad):
2845         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
2846         (WebCore::CCDrawQuad::CCDrawQuad):
2847         * platform/graphics/chromium/cc/CCDrawQuad.h:
2848         (WebCore::CCDrawQuad::setQuadVisibleRect):
2849         (WebCore::CCDrawQuad::quadVisibleRect):
2850         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2851         (WebCore::rectSubtractRegion):
2852         (WebCore::CCQuadCuller::cullOccludedQuads):
2853
2854 2012-01-26  Anders Carlsson  <andersca@apple.com>
2855
2856         Scrollbars disappear when switching from legacy to overlay scrollbars
2857         https://bugs.webkit.org/show_bug.cgi?id=77166
2858
2859         Reviewed by Dan Bernstein.
2860
2861         * platform/ScrollView.cpp:
2862         (WebCore::ScrollView::scrollbarStyleChanged):
2863         Call positionScrollbarLayers to make sure that the new scrollbar layers are positioned correctly.
2864
2865         * platform/mac/ScrollAnimatorMac.mm:
2866         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
2867         Call ScrollbarThemeMac::setNewPainterForScrollbar after making the call to the scrollbar painter controller
2868         to set the horizontal or vertical imp, since setting the imp will reset the knob style.
2869
2870 2012-01-26  Adam Barth  <abarth@webkit.org>
2871
2872         NULL ptr in WebCore::ContainerNode::parserAddChild
2873         https://bugs.webkit.org/show_bug.cgi?id=76258
2874
2875         Reviewed by Eric Seidel.
2876
2877         Test: fast/parser/nested-fragment-parser-crash.html
2878
2879         We always need a parent element to attach to.  In crazy cases, we can
2880         have elements in the stack of open elements that are already detached
2881         from the DOM.  In those cases, they don't have a parent, so we aren't
2882         able to enforce the maximum DOM depth.  (Fortunately, they're not
2883         attached to the DOM anymore so we don't need to enforce the maximum DOM
2884         depth!)
2885
2886         * html/parser/HTMLConstructionSite.cpp:
2887         (WebCore::HTMLConstructionSite::attachLater):
2888         (WebCore::HTMLConstructionSite::fosterParent):
2889
2890 2012-01-26  Cris Neckar  <cdn@chromium.org>
2891
2892         The registration of schemes is currently racey as they are not registered from the main thread. 
2893         Getting rid of the assert that ensures that we are registering from the main thread until we can fix this.
2894
2895         Thank you ap@webkit for helping us identify this.
2896
2897         https://bugs.webkit.org/show_bug.cgi?id=77160
2898
2899         Reviewed by Adam Barth.
2900
2901         * platform/SchemeRegistry.cpp:
2902         (WebCore::CORSEnabledSchemes):
2903
2904 2012-01-26  Anders Carlsson  <andersca@apple.com>
2905
2906         We don't need to always repaint overlay scrollbars if they're in layers
2907         https://bugs.webkit.org/show_bug.cgi?id=77159
2908
2909         Reviewed by Beth Dakin.
2910
2911         If a scrollable area has overlay scrollbars we'll always invalidate both scrollbars, regardless of
2912         whether both scroll offsets actually change since they're translucent and we want to draw the new page
2913         contents underneath.
2914         
2915         However, if the scrollbars are painted into GraphicsLayers they'll be composited by the GPU, and so we don't
2916         need to repaint them unless the corresponding scroll offset actually changes (which is handled in Scrollbar::updateThumb).
2917
2918         * platform/ScrollableArea.cpp:
2919         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
2920
2921 2012-01-26  Joshua Bell  <jsbell@chromium.org>
2922
2923         IndexedDB: WebCore::IDBKey objects are leaked
2924         https://bugs.webkit.org/show_bug.cgi?id=77114
2925
2926         Reviewed by Tony Chang.
2927
2928         Fixing memory leaks, no new tests.
2929
2930         * storage/IDBKey.h:
2931         (WebCore::IDBKey::createInvalid):
2932         (WebCore::IDBKey::createNumber):
2933         (WebCore::IDBKey::createString):
2934         (WebCore::IDBKey::createDate):
2935         (WebCore::IDBKey::createArray):
2936
2937 2012-01-25  Cris Neckar  <cdn@chromium.org>
2938
2939         Add a scheme registry for CORS requests. Allow simple CORS requests to be made to registered schemes.
2940         https://bugs.webkit.org/show_bug.cgi?id=77041
2941
2942         Reviewed by Alexey Proskuryakov.
2943
2944         * loader/DocumentThreadableLoader.cpp:
2945         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
2946         * platform/SchemeRegistry.cpp:
2947         (WebCore::CORSEnabledSchemes):
2948         (WebCore):
2949         (WebCore::SchemeRegistry::registerCORSEnabledScheme):
2950         (WebCore::SchemeRegistry::isCORSEnabledScheme):
2951         * platform/SchemeRegistry.h:
2952         (SchemeRegistry):
2953
2954 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
2955
2956         File extension for webp files is .webp
2957         https://bugs.webkit.org/show_bug.cgi?id=76982
2958
2959         Reviewed by Adam Barth.
2960
2961         No new tests. No change in behavior.
2962
2963         * platform/image-decoders/webp/WEBPImageDecoder.h:
2964         (WebCore::WEBPImageDecoder::filenameExtension):
2965
2966 2012-01-26  Alok Priyadarshi  <alokp@chromium.org>
2967
2968         [chromium] Remove dead and unnecessary code related to LayerChromium::cleanupResources
2969         https://bugs.webkit.org/show_bug.cgi?id=77137
2970
2971         Reviewed by James Robinson.
2972
2973         No new test needed. Only removing dead code.
2974
2975         * platform/graphics/chromium/LayerChromium.cpp:
2976         * platform/graphics/chromium/LayerChromium.h:
2977         (WebCore::LayerChromium::layerTreeHost):
2978         * platform/graphics/chromium/TiledLayerChromium.cpp:
2979         (WebCore::TiledLayerChromium::setLayerTreeHost):
2980
2981 2012-01-26  Anders Carlsson  <andersca@apple.com>
2982
2983         Move horizontal rubber-band checks to ScrollElasticityController::handleWheelEvent
2984         https://bugs.webkit.org/show_bug.cgi?id=77147
2985
2986         Reviewed by Adam Roben.
2987
2988         * platform/mac/ScrollAnimatorMac.h:
2989         (ScrollAnimatorMac):
2990         * platform/mac/ScrollAnimatorMac.mm:
2991         (WebCore::ScrollAnimatorMac::handleWheelEvent):
2992         Always call ScrollElasticityController::handleWheelEvent, and only call didBeginScrollGesture and
2993         didEndScrollGesture if the event was actually handled.
2994
2995         (WebCore::ScrollAnimatorMac::shouldRubberBandInDirection):
2996         Implement this.
2997
2998         * platform/mac/ScrollElasticityController.h:
2999         * platform/mac/ScrollElasticityController.mm:
3000         (WebCore::ScrollElasticityController::handleWheelEvent):
3001         Check if we should rubber-band and return false if we shouldn't.
3002
3003         (WebCore::ScrollElasticityController::shouldRubberBandInHorizontalDirection):
3004         Ask the client if we should rubber-band.
3005
3006 2012-01-19  James Robinson  <jamesr@chromium.org>
3007
3008         [chromium] Remove setLayerTreeHost nonsense on lost context
3009         https://bugs.webkit.org/show_bug.cgi?id=76675
3010
3011         Reviewed by Kenneth Russell.
3012
3013         This code isn't needed any more. On a lost context event, we drop all TextureManager-managed textures through
3014         the proxy and no layer types need special lost context handling.
3015
3016         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3017         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
3018
3019 2012-01-26  Anders Carlsson  <andersca@apple.com>
3020
3021         Simplify checking of whether we should rubberband horizontally
3022         https://bugs.webkit.org/show_bug.cgi?id=77141
3023
3024         Reviewed by Adam Roben.
3025
3026         Have a single check for horizontal rubber-banding in both directions. This is in preparation
3027         for moving this code into ScrollElasticityController.
3028
3029         * platform/mac/ScrollAnimatorMac.mm:
3030         (WebCore::shouldRubberBandInHorizontalDirection):
3031         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3032
3033 2012-01-26  Scott Graham  <scottmg@chomium.org>
3034
3035         Fix include path in gyp file for V8InternalSettings.h
3036         https://bugs.webkit.org/show_bug.cgi?id=77128
3037
3038         Reviewed by Kent Tamura.
3039
3040         * WebCore.gyp/WebCore.gyp:
3041
3042 2012-01-26  James Robinson  <jamesr@chromium.org>
3043
3044         We shouldn't synchronously update styles on all documents after running script
3045         https://bugs.webkit.org/show_bug.cgi?id=46761
3046
3047         Reviewed by Simon Fraser.
3048
3049         Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
3050         slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
3051         unnecessary as any code that depends on styles or the render tree being up to date must call
3052         updateStyleIfNeeded() on the document it is accessing.
3053
3054         The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
3055         cargo culted forward ever since.
3056
3057         * bindings/ScriptControllerBase.cpp:
3058         (WebCore::ScriptController::executeScript):
3059         * bindings/js/ScheduledAction.cpp:
3060         (WebCore::ScheduledAction::execute):
3061         * bindings/js/ScriptController.cpp:
3062         (WebCore::ScriptController::ScriptController):
3063         (WebCore::ScriptController::executeScriptInWorld):
3064         * bindings/js/ScriptController.h:
3065         * bindings/v8/ScheduledAction.cpp:
3066         (WebCore::ScheduledAction::execute):
3067         * bindings/v8/ScriptController.cpp:
3068         (WebCore::ScriptController::ScriptController):
3069         * bindings/v8/ScriptController.h:
3070         * dom/ScriptElement.cpp:
3071         (WebCore::ScriptElement::executeScript):
3072         * inspector/InspectorClient.cpp:
3073         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
3074
3075 2012-01-26  Anders Carlsson  <andersca@apple.com>
3076
3077         Get rid of ScrollElasticityController::beginScrollGesture()
3078         https://bugs.webkit.org/show_bug.cgi?id=77138
3079
3080         Reviewed by Adam Roben.
3081
3082         ScrollElasticityController::handleWheelEvent now checks if the wheel event phase is
3083         PlatformWheelEventPhaseBegan and sets up the gesture state if it is.
3084
3085         * platform/mac/ScrollAnimatorMac.mm:
3086         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3087         * platform/mac/ScrollElasticityController.h:
3088         (ScrollElasticityController):
3089         * platform/mac/ScrollElasticityController.mm:
3090         (WebCore::ScrollElasticityController::handleWheelEvent):
3091
3092 2012-01-26  Anders Carlsson  <andersca@apple.com>
3093
3094         Get rid of ScrollElasticityController::endScrollGesture()
3095         https://bugs.webkit.org/show_bug.cgi?id=77134
3096
3097         Reviewed by Adam Roben.
3098
3099         Just make ScrollElasticityController::handleWheelEvent call snapRubberBand if the wheel
3100         event phase is PlatformWheelEventPhaseEnded.
3101
3102         * platform/mac/ScrollAnimatorMac.mm:
3103         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3104         * platform/mac/ScrollElasticityController.h:
3105         (ScrollElasticityController):
3106         * platform/mac/ScrollElasticityController.mm:
3107         (WebCore::ScrollElasticityController::handleWheelEvent):
3108
3109 2012-01-26  Abhishek Arya  <inferno@chromium.org>
3110
3111         Crash in SVGSVGElement::currentViewBoxRect.
3112         https://bugs.webkit.org/show_bug.cgi?id=77121
3113
3114         Reviewed by Nikolas Zimmermann.
3115
3116         Symbols shouldn't be rendered. Revert the ASSERT
3117         from r105513 into a hard check.
3118
3119         Test: svg/custom/symbol-viewport-element-crash.svg
3120
3121         * svg/SVGLengthContext.cpp:
3122         (WebCore::SVGLengthContext::determineViewport):
3123
3124 2012-01-26  Anders Carlsson  <andersca@apple.com>
3125
3126         Inline beginScrollGesture/endScrollGesture in handleWheelEvent
3127         https://bugs.webkit.org/show_bug.cgi?id=77133
3128
3129         Reviewed by Andreas Kling.
3130
3131         * platform/mac/ScrollAnimatorMac.h:
3132         (ScrollAnimatorMac):
3133         * platform/mac/ScrollAnimatorMac.mm:
3134         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3135
3136 2012-01-26  Anders Carlsson  <andersca@apple.com>
3137
3138         No need to set m_haveScrolledSincePageLoad in beginScrollGesture
3139         https://bugs.webkit.org/show_bug.cgi?id=77132
3140
3141         Reviewed by Andreas Kling.
3142
3143         m_haveScrolledSincePageLoad is already set to true in handleWheelEvent so we don't need
3144         to set it to true again.
3145
3146         * platform/mac/ScrollAnimatorMac.mm:
3147         (WebCore::ScrollAnimatorMac::beginScrollGesture):
3148
3149 2012-01-26  Anders Carlsson  <andersca@apple.com>
3150
3151         Simplify checking for whether we should rubberband or not when at the edge
3152         https://bugs.webkit.org/show_bug.cgi?id=77131
3153
3154         Reviewed by Beth Dakin.
3155
3156         We only need to check once if we're pinned at either edge whether we should rubber-band
3157         or not. Do this when the wheel event phase is PlatformWheelEventPhaseBegan. This lets us
3158         remove a bunch of code that would keep track of the current horizontal scroll direction.
3159
3160         * platform/mac/ScrollAnimatorMac.h:
3161         (ScrollAnimatorMac):
3162         * platform/mac/ScrollAnimatorMac.mm:
3163         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
3164         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3165         (WebCore::ScrollAnimatorMac::beginScrollGesture):
3166
3167 2012-01-26  Eli Fidler  <efidler@rim.com>
3168
3169         [JSC] Inspector instrumentation for JavaScript calls.
3170         https://bugs.webkit.org/show_bug.cgi?id=40119
3171
3172         Reviewed by Geoffrey Garen.
3173
3174         Covered by existing Chromium inspector tests
3175
3176         * bindings/js/JSCallbackData.cpp:
3177         (WebCore::JSCallbackData::invokeCallback):
3178         * bindings/js/JSEventListener.cpp:
3179         (WebCore::JSEventListener::handleEvent):
3180         * bindings/js/JSMainThreadExecState.h:
3181         (WebCore::JSMainThreadExecState::instrumentedCall):
3182         * inspector/InspectorInstrumentation.cpp:
3183         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3184
3185 2012-01-26  Mike Reed  <reed@google.com>
3186
3187         Signal to skia to force A8 text from LCD output, but only when we have to disable LCD because we're in a layer
3188         https://bugs.webkit.org/show_bug.cgi?id=76547
3189
3190         Reviewed by Stephen White.
3191
3192         Existing tests should confirm nothing is broken. Antialiased text
3193         is disabled in layouttests, so they should be unaffected by the
3194         difference in antialiasing quality.
3195
3196         * platform/graphics/skia/SkiaFontWin.cpp:
3197         (WebCore::setupPaintForFont):
3198
3199
3200 2012-01-26  Anders Carlsson  <andersca@apple.com>
3201
3202         Use PlatformWheelEvent::phase() to determine if a scroll gesture begins or ends
3203         https://bugs.webkit.org/show_bug.cgi?id=77127
3204
3205         Reviewed by Beth Dakin.
3206
3207         * platform/mac/ScrollAnimatorMac.h:
3208         (ScrollAnimatorMac):
3209         Remove handleGestureEvent.
3210
3211         * platform/mac/ScrollAnimatorMac.mm:
3212         (WebCore::ScrollAnimatorMac::handleWheelEvent):
3213         Look at the event phase to determine when to call didBeginGesture and didEndGesture.
3214
3215 2012-01-26  Benjamin Poulain  <benjamin@webkit.org>
3216
3217         Using strncmp() for comparing scheme and port numbers is inefficient
3218         https://bugs.webkit.org/show_bug.cgi?id=75821
3219
3220         Reviewed by Darin Adler.
3221
3222         Replace the equal() function comparing 2 arbitrary strings by a template
3223         comparing the string to an array, character by character.
3224
3225         This is only used for small strings: the schemes and the ports.
3226
3227         * platform/KURL.cpp:
3228         (WebCore::equal):
3229         (WebCore::isDefaultPortForScheme):
3230         (WebCore::isNonFileHierarchicalScheme):
3231         (WebCore::isCanonicalHostnameLowercaseForScheme):
3232
3233 2012-01-26  Anders Carlsson  <andersca@apple.com>
3234
3235         WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
3236         https://bugs.webkit.org/show_bug.cgi?id=77123
3237
3238         Reviewed by Beth Dakin.
3239
3240         * platform/PlatformWheelEvent.h:
3241         ():
3242         * platform/mac/PlatformEventFactoryMac.mm:
3243         (WebCore::phaseForEvent):
3244
3245 2012-01-26  Daniel Cheng  <dcheng@chromium.org>
3246
3247         Revert code changes from r105800
3248         https://bugs.webkit.org/show_bug.cgi?id=77071
3249
3250         The strings are already lowercased in EventHandler.cpp:findDropZone() so there's
3251         no need to call lower() again.
3252
3253         Reviewed by Tony Chang.
3254
3255         Covered by existing tests.
3256
3257         * dom/Clipboard.cpp:
3258         (WebCore::Clipboard::hasDropZoneType):
3259
3260 2012-01-26  Stephen Chenney  <schenney@chromium.org>
3261
3262         REGRESSION (r91125): Polyline tool in google docs is broken
3263         https://bugs.webkit.org/show_bug.cgi?id=65796
3264
3265         Reviewed by Nikolas Zimmermann.
3266
3267         It turns out that the CG problem is a design decision. The bounding code
3268         returns CGRectNull for cases where a bound is ill-defined, rather than the
3269         empty bound as expected.
3270
3271         I'm also removing the workaround for isEmpty to get correct zero length paths.
3272         It is no longer necessary.
3273
3274         Tested by existing layout tests.
3275
3276         * platform/graphics/cg/PathCG.cpp: Removed path empty and path bound testing classes.
3277         (WebCore::Path::boundingRect): Added check for CGRectNull
3278         (WebCore::Path::fastBoundingRect): Added check for CGRectNull
3279         (WebCore::Path::strokeBoundingRect): Added check for CGRectNull
3280         (WebCore::Path::isEmpty): Reverted to former behavior, just using CGPathIsEmpty.
3281         (WebCore::Path::hasCurrentPoint): Reverted to former behavior, using isEmpty.
3282         (WebCore::Path::transform): Reverted to former behavior, using isEmpty.
3283
3284 2012-01-26  Andreas Kling  <awesomekling@apple.com>
3285
3286         Refactor application of additional style attributes for table elements.
3287         <http://webkit.org/b/77095>
3288
3289         Reviewed by Darin Adler.
3290
3291         The primary purpose of this change is to reduce usage of CSSMappedAttributeDeclaration.
3292         Instead of using the mapped attribute decl table for additional table style, just use
3293         regular CSSMutableStyleDeclarations. We cache them all globally, except for the style
3294         that's shared between a table's cells. That one is cached per-table since it depends
3295         on the table's border and padding.
3296
3297         * dom/CSSMappedAttributeDeclaration.cpp:
3298         (WebCore::CSSMappedAttributeDeclaration::~CSSMappedAttributeDeclaration):
3299         * dom/MappedAttributeEntry.h:
3300
3301             Remove the concept of persistent CSSMappedAttributeDeclarations. The hunk in
3302             ~CSSMappedAttributeDeclaration was wildly wrong since it would leave stale pointers
3303             in the decl table, but unreachable since we always leaked one ref to those decls.
3304
3305         * dom/StyledElement.h:
3306         (WebCore::StyledElement::additionalAttributeStyle):
3307         * html/HTMLTableCellElement.cpp:
3308         (WebCore::HTMLTableCellElement::additionalAttributeStyle):
3309         * html/HTMLTableCellElement.h:
3310         (HTMLTableCellElement):
3311         * html/HTMLTableColElement.cpp:
3312         (WebCore::HTMLTableColElement::additionalAttributeStyle):
3313         * html/HTMLTableColElement.h:
3314         (HTMLTableColElement):
3315         * html/HTMLTableElement.cpp:
3316         (WebCore::HTMLTableElement::parseMappedAttribute):
3317         (WebCore::leakBorderStyle):
3318         (WebCore::HTMLTableElement::additionalAttributeStyle):
3319         (WebCore::HTMLTableElement::createSharedCellStyle):
3320         (WebCore::HTMLTableElement::additionalCellStyle):
3321         (WebCore::leakGroupBorderStyle):
3322         (WebCore::HTMLTableElement::additionalGroupStyle):
3323         * html/HTMLTableElement.h:
3324         (HTMLTableElement):
3325         * html/HTMLTableSectionElement.cpp:
3326         (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
3327         * html/HTMLTableSectionElement.h:
3328         (HTMLTableSectionElement):
3329
3330             Instead of collecting additional style decls into a vector, switch over to a
3331             "PassRefPtr<CSSMutableStyleDeclaration> additionalAttributeStyle()".
3332             All style declarations that can be reused for all elements are cached at the return
3333             sites, leaving only the shared table cell style which we cache on HTMLTableElement.
3334             Also removed the canHaveAdditionalAttributeStyleDecls() virtual since the default
3335             additionalAttributeStyle() will just return 0.
3336
3337         * css/CSSStyleSelector.cpp:
3338         (WebCore::CSSStyleSelector::matchAllRules):
3339
3340             Updated for the new additional style conventions.
3341
3342 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
3343
3344         Web Inspector: Scripts panel editor container should be based on UISourceCode objects, not SourceFrames.
3345         https://bugs.webkit.org/show_bug.cgi?id=77098
3346
3347         Reviewed by Pavel Feldman.
3348
3349         * inspector/front-end/ScriptsNavigator.js:
3350         * inspector/front-end/ScriptsPanel.js:
3351         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsBeingEdited):
3352         (WebInspector.ScriptsPanel.prototype.get visibleView):
3353         (WebInspector.ScriptsPanel.prototype.viewForFile):
3354         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
3355         (WebInspector.EditorContainer):
3356         (WebInspector.EditorContainer.prototype.get visibleView):
3357         (WebInspector.EditorContainer.prototype.showFile):
3358         (WebInspector.EditorContainer.prototype.setFileIsDirty):
3359         (WebInspector.EditorContainer.prototype.replaceFiles):
3360         (WebInspector.EditorContainer.prototype.reset):
3361         (WebInspector.EditorContainerDelegate):
3362         (WebInspector.EditorContainerDelegate.prototype.viewForFile):
3363         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.replaceUISourceCodes):
3364         (WebInspector.ScriptsPanel.SingleFileEditorContainer):
3365         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.get visibleView):
3366         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
3367         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.setFileIsDirty):
3368         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceFiles):
3369         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
3370         * inspector/front-end/TabbedEditorContainer.js:
3371         (WebInspector.TabbedEditorContainer):
3372         (WebInspector.TabbedEditorContainer.prototype.get visibleView):
3373         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
3374         (WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
3375         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
3376         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
3377         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
3378         (WebInspector.TabbedEditorContainer.prototype.replaceFiles.get if):
3379         (WebInspector.TabbedEditorContainer.prototype.replaceFiles):
3380         (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty.get if):
3381         (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty):
3382         (WebInspector.TabbedEditorContainer.prototype.reset):
3383
3384 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3385
3386         SVG + <object> tests are flakey
3387         https://bugs.webkit.org/show_bug.cgi?id=77099
3388
3389         Reviewed by Andreas Kling.
3390
3391         Bug 76447 changed the way RenderSVGRoot figures out its size. Previously RenderSVGRoot directly called out to the
3392         ownerRenderer (RenderEmbeddedObject) to compute its replaced size when embedded through eg. <object> element,
3393         which was quite hacky. It now relies on the ownerRenderers availableLogicalWidth/Height to be correctly set,
3394         which requires that the ownerRenderer is always laid out before the RenderSVGRoot and not the other way round.
3395
3396         This is the source of current flakiness bugs.
3397
3398         In trunk FrameView contains several special hacks, to layout the ownerRenderers view, after the RenderSVGRoots view
3399         finished layout. This worked without flakiness as RenderSVGRoot used to directly call computeReplacedLogicalWidth/Height
3400         on the ownerRenderer, which is now gone. Fortunately we can keep the new design, and can remove all hacks out of
3401         RenderSVGRoot/FrameView, if we can guarantee that the ownerRenderer FrameView is laid out before the RenderSVGRoot FrameView.
3402
3403         This is a much less error-prone approach as the previous one. This lets us run nrwt --tolerance 0 -p svg -g again,
3404         without 100% reproducable failing svg/wicd tests. (There's still one unrelated error, before guard malloc mode passes fully).
3405
3406         Test: svg/wicd/sizing-flakiness.html (Adjusted version of the rightsizing test, made to fail with trunk w/o this patch.)
3407
3408         * page/FrameView.cpp: Remove m_inLayoutParentView.
3409         (WebCore::FrameView::FrameView): Remove no longer needed m_inLayoutParentView.
3410         (WebCore::FrameView::forceLayoutParentViewIfNeeded): Simplify, no need to call updateWidgetPositions anymore, nor to clear/query flags in RenderSVGRoot.
3411         (WebCore::FrameView::layout): Call forceLayoutParentViewIfNeeded() before laying out the embedded document, to guarantee the correct order.
3412         * page/FrameView.h:
3413         (FrameView): Remove m_inLayoutParentView.
3414         * rendering/svg/RenderSVGRoot.cpp:
3415         (WebCore::RenderSVGRoot::RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument.
3416         (WebCore::resolveLengthAttributeForSVG): Remove outcommented code, that went in by accident.
3417         (WebCore::RenderSVGRoot::layout): Remove m_needsSizeNegotiationWithHostDocument handling which is now incorrect and no longer needed.
3418         * rendering/svg/RenderSVGRoot.h:
3419         (RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument + accessors.
3420
3421 2012-01-23  Andreas Kling  <awesomekling@apple.com>
3422
3423         Make elements that don't have attributes smaller.
3424         <http://webkit.org/b/76876>
3425
3426         Reviewed by Antti Koivisto.
3427
3428         Move the inline style declaration from StyledElement to NamedNodeMap, since having
3429         an inline style declaration also implies having a style attribute on the element.
3430         This saves one CPU word per element that has no attributes.
3431
3432         This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
3433         HTML5 spec at <http://whatwg.org/c>.
3434
3435         * dom/NamedNodeMap.cpp:
3436         (WebCore::NamedNodeMap::ensureInlineStyleDecl):
3437         (WebCore::NamedNodeMap::destroyInlineStyleDecl):
3438         (WebCore::NamedNodeMap::createInlineStyleDecl):
3439         * dom/NamedNodeMap.h:
3440         (WebCore::NamedNodeMap::inlineStyleDecl):
3441         * dom/StyledElement.cpp:
3442         (WebCore::StyledElement::updateStyleAttribute):
3443         (WebCore::StyledElement::addSubresourceAttributeURLs):
3444         * dom/StyledElement.h:
3445         (WebCore::StyledElement::inlineStyleDecl):
3446         (WebCore::StyledElement::ensureInlineStyleDecl):
3447         (WebCore::StyledElement::destroyInlineStyleDecl):
3448
3449 2012-01-26  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
3450
3451         [Qt] Use ICU if available
3452         https://bugs.webkit.org/show_bug.cgi?id=76821
3453
3454         Reviewed by Simon Hausmann.
3455
3456         Adding correct sources to a Qt 5 based build.
3457
3458         No new tests, it's just a build dependency change.
3459
3460         * Target.pri:
3461
3462 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3463
3464         Not reviewed. Fix mac build after r105988.
3465
3466         * WebCore.exp.in:
3467
3468 2012-01-26  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
3469
3470         [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
3471         https://bugs.webkit.org/show_bug.cgi?id=42545
3472
3473         Reviewed by Zoltan Herczeg.
3474
3475         No need for new tests, there is no behavior change.
3476
3477         Added a line to file which copies the forwarding headers.
3478
3479         * WebCore.vcproj/copyForwardingHeaders.cmd:
3480
3481 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3482
3483         Not reviewed. Fix Qt build after r105978.
3484
3485         * rendering/svg/RenderSVGResourceClipper.cpp: Add missing Frame/FrameView includes.
3486         * rendering/svg/RenderSVGResourceSolidColor.cpp: Ditto.
3487         * rendering/svg/SVGInlineTextBox.cpp: Ditto.
3488         * rendering/svg/SVGRenderSupport.cpp: Ditto.
3489
3490 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3491
3492         Not reviewed. Fix non-AllInOne builds after r105978.
3493
3494         * rendering/svg/RenderSVGResource.cpp:
3495
3496 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
3497
3498         Unreviewed inspector closure compilation fix.
3499
3500         * inspector/front-end/externs.js:
3501         (WebInspector.closeDrawerView):
3502
3503 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3504
3505         Not reviewed. Fix release builds after r105978.
3506
3507         * rendering/svg/SVGInlineTextBox.cpp:
3508         (WebCore::SVGInlineTextBox::paintSelectionBackground): Remove unused variable.
3509
3510 2012-01-26  Kent Tamura  <tkent@chromium.org>
3511
3512         Unreviewed, rolling out r105968.
3513         http://trac.webkit.org/changeset/105968
3514         https://bugs.webkit.org/show_bug.cgi?id=76995
3515
3516         Incorrect behavior change
3517
3518         * html/HTMLInputElement.cpp:
3519         (WebCore::HTMLInputElement::setIndeterminate):
3520
3521 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3522
3523         crash in WebCore::RenderSVGContainer::paint
3524         https://bugs.webkit.org/show_bug.cgi?id=69714
3525
3526         Reviewed by Dirk Schulze.
3527
3528         When RenderSVGResourceClipper draws its children to a mask, it requires some special constraints:
3529         - fill-opacity/stroke-opacity/opacity forced to 1
3530         - masker/filter resources shouldn't be applied to the children
3531         - fill must be set to the initial fill paint server for all children (solid black)
3532         - stroke must be set to the initial stroke paint server for all children (none)
3533
3534         This was achieved before by mutating the style of the children, which made them need a relayout.
3535         SVGImageBufferTools:renderSubtreeToImageBuffer thus needed to layout the children, if needed, before painting.
3536
3537         This can be completly avoided, when changing RenderSVGResourceClipper to avoid style mutations.
3538         Introduce a new "PaintBehaviorRenderingSVGMask", and set the current FrameViews paintBehaviour to this
3539         state, before painting the subtree. This way we can detect that we're rendering a clip mask, without
3540         having to mutate the style of the children and without having to relayout.
3541
3542         We can now ASSERT(!item->needsLayout()) in renderSubtreeToImageBuffer.
3543
3544         Tests: svg/clip-path/clip-path-tspan-and-stroke.svg
3545                svg/custom/layout-loop.svg
3546
3547         * rendering/PaintPhase.h:
3548         * rendering/svg/RenderSVGResource.cpp:
3549         (WebCore::requestPaintingResource):
3550         * rendering/svg/RenderSVGResourceClipper.cpp:
3551         (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
3552         (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
3553         (WebCore::RenderSVGResourceClipper::removeClientFromCache):
3554         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3555         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
3556         * rendering/svg/RenderSVGResourceClipper.h:
3557         * rendering/svg/RenderSVGResourceMasker.cpp:
3558         (WebCore::RenderSVGResourceMasker::applyResource):
3559         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
3560         * rendering/svg/RenderSVGResourceMasker.h:
3561         * rendering/svg/RenderSVGResourcePattern.cpp:
3562         (WebCore::RenderSVGResourcePattern::createTileImage):
3563         * rendering/svg/RenderSVGResourceSolidColor.cpp:
3564         (WebCore::RenderSVGResourceSolidColor::applyResource):
3565         * rendering/svg/SVGImageBufferTools.cpp:
3566         (WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
3567         * rendering/svg/SVGInlineTextBox.cpp:
3568         (WebCore::SVGInlineTextBox::paintSelectionBackground):
3569         (WebCore::SVGInlineTextBox::paint):
3570         * rendering/svg/SVGRenderSupport.cpp:
3571         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
3572
3573 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
3574
3575         Not reviewed. Try to fix Gtk build - JSShadowRoot.cpp can't be found, fix by looking for it in the derived sources.
3576
3577         * GNUmakefile.list.am:
3578
3579 2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>
3580
3581         Web Inspector: Improve user experience of advanced search panel closing.
3582         https://bugs.webkit.org/show_bug.cgi?id=76983
3583
3584         Reviewed by Pavel Feldman.
3585
3586         Added close button to search panel.
3587         Esc now closes the panel even when search filed has focus.
3588
3589         * English.lproj/localizedStrings.js:
3590         * inspector/front-end/AdvancedSearchController.js:
3591         (WebInspector.AdvancedSearchController.prototype.close):
3592         (WebInspector.SearchView):
3593         (WebInspector.SearchView.prototype._onKeyDown):
3594         (WebInspector.SearchView.prototype._closeButtonPressed):
3595         * inspector/front-end/inspector.css:
3596         (.search-view .search-panel):
3597         (.search-view .search-panel button.search-close-button):
3598         * inspector/front-end/inspector.js:
3599         (WebInspector._escPressed):
3600         (WebInspector.closeDrawerView):
3601
3602 2012-01-26  Joe Thomas  <joethomas@motorola.com>
3603
3604         https://bugs.webkit.org/show_bug.cgi?id=76995.
3605         WebKit fails IETC :indeterminate and input type=radio test.
3606
3607         As per the HTML spec http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#dom-input-indeterminate,
3608         only checkbox input type should respect the indeterminate state.
3609         Removed the support for indeterminate state for radio input types.
3610
3611         Reviewed by Eric Seidel.
3612
3613         Modified the existing test cases.
3614
3615         * html/HTMLInputElement.cpp:
3616         (WebCore::HTMLInputElement::setIndeterminate): Indeterminate state is supported only for checkbox input type.
3617
3618 2012-01-25  Daniel Cheng  <dcheng@chromium.org>
3619
3620         [chromium] Fix ClipboardChromium::validateFilename to actually operate on extensions
3621         https://bugs.webkit.org/show_bug.cgi?id=76996
3622
3623         As it turns out, we were always calling validateFilename on a data object with an empty
3624         extension. Now we call it on an actual extension so that it's sanitized.
3625
3626         Reviewed by Tony Chang.
3627
3628         Unit test: webkit_unit_tests --gtest_filter=ClipboardChromium.*
3629
3630         * WebCore.gypi:
3631         * platform/chromium/ClipboardChromium.cpp:
3632         (WebCore::writeImageToDataObject):
3633         * platform/chromium/ClipboardChromium.h:
3634         (ClipboardChromium):
3635         * platform/chromium/ClipboardChromiumLinux.cpp: Removed.
3636         * platform/chromium/ClipboardChromiumPosix.cpp: Renamed from Source/WebCore/platform/chromium/ClipboardChromiumMac.cpp.
3637         (WebCore):
3638         (WebCore::isInvalidFileCharacter):
3639         (WebCore::ClipboardChromium::validateFilename):
3640         * platform/chromium/ClipboardChromiumWin.cpp:
3641         (WebCore):
3642         (WebCore::ClipboardChromium::validateFilename):
3643
3644 2012-01-25  James Robinson  <jamesr@chromium.org>
3645
3646         [chromium] Rollout r100751, this mechanism does not work and is very slow
3647         https://bugs.webkit.org/show_bug.cgi?id=77055
3648
3649         Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
3650         but it still triggers a very slow codepath and triggers races on some platforms.
3651
3652         * platform/PlatformScreen.h:
3653         (WebCore):
3654         * platform/chromium/PlatformScreenChromium.cpp:
3655         * platform/chromium/PlatformSupport.h:
3656         (PlatformSupport):
3657         ():
3658         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3659         (WebCore::CCSettings::CCSettings):
3660         (CCSettings):
3661         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3662         (WebCore::CCThreadProxy::initializeImplOnImplThread):
3663
3664 2012-01-25  Mark Rowe  <mrowe@apple.com>
3665
3666         Reapply Daniel Bates's build fix from r105847 after the exact same issue was reintroduced in r105930.
3667         
3668         Attempt to fix Mac build after changeset <http://trac.webkit.org/changeset/105930>.
3669         (https://bugs.webkit.org/show_bug.cgi?id=75049)
3670
3671         Don't include NotImplemented.h in KURL.h since NotImplemented.h includes Logging.h, which defines
3672         LOG_CHANNEL_PREFIX to be "Log". And this conflicts with the inclusion of WebKitLogging.h in
3673         WebHTMLView.mm (which would have defined LOG_CHANNEL_PREFIX to be "WebKitLog").
3674
3675         * platform/KURL.h:
3676         (WebCore::KURL::innerURL):
3677
3678 2012-01-25  Eric Seidel  <eric@webkit.org>
3679
3680         Unreviewed, rolling out r105940.
3681         http://trac.webkit.org/changeset/105940
3682         https://bugs.webkit.org/show_bug.cgi?id=76095
3683
3684         Only half this change landed
3685
3686         * DerivedSources.cpp:
3687         * DerivedSources.make:
3688         * DerivedSources.pri:
3689
3690 2012-01-25  Mark Rowe  <mrowe@apple.com>
3691
3692         Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.
3693
3694         <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH
3695
3696         Reviewed by David Kilzer.
3697
3698         * Configurations/WebCore.xcconfig: Define NORMAL_WEBCORE_FRAMEWORKS_DIR, which contains
3699         the path where WebCore is normally installed. Update WEBCORE_FRAMEWORKS_DIR to point to
3700         the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Define
3701         NORMAL_PRODUCTION_FRAMEWORKS_DIR, which contains the path where our public frameworks
3702         are normally installed. Update PRODUCTION_FRAMEWORKS_DIR to point to the staged frameworks
3703         directory when USE_STAGING_INSTALL_PATH is set. Always set the framework's install name
3704         based on the normal framework location. This prevents an incorrect install name from being
3705         used when installing in to the staged frameworks directory. Look for our other frameworks
3706         in the staged frameworks directory when USE_STAGING_INSTALL_PATH is set.
3707
3708 2012-01-25  Eric Seidel  <eric@webkit.org>
3709
3710         "text" and "URL" legacy clipboard types should not be case sensitive
3711         https://bugs.webkit.org/show_bug.cgi?id=76947
3712
3713         Reviewed by Adam Barth.
3714
3715         This matches the HTML5 spec which says the first thing to do is to lowercase
3716         the type before comparing.
3717         I also removed the stripping of whitespace since that is not part of the modern spec (and no tests failed as a result of removal).
3718         Turns out we already had a test for case sensitivity, but it was disabled on Mac
3719         so I just re-enabled it and have added failing expectations for the parts
3720         of the test we still fail.
3721
3722         * platform/mac/ClipboardMac.mm:
3723         (WebCore::cocoaTypeFromHTMLClipboardType):
3724         (WebCore::ClipboardMac::getData):
3725
3726 2012-01-25  Eric Seidel  <eric@webkit.org>
3727
3728         HTMLIsIndexElement should not expose HTMLInputElement properties
3729         https://bugs.webkit.org/show_bug.cgi?id=76095
3730
3731         Reviewed by Adam Barth.
3732
3733         document.createElement("isindex") should produce an HTMLUnknownElement
3734         per the HTML5 spec.  The parser automagically translates <isindex> into
3735         a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)
3736
3737         This patch just removes our support for HTMLIsIndexElement.  The parser
3738         support was already in.  Having support for HTMLIsIndexElement was causing
3739         one of the IE TestCenter tests to fail.
3740
3741         Test: fast/dom/HTMLIsIndexElement/prototype-chain.html
3742
3743         * DerivedSources.cpp:
3744         * DerivedSources.make:
3745         * DerivedSources.pri:
3746         * GNUmakefile.list.am:
3747         * Target.pri:
3748         * WebCore.exp.in:
3749         * WebCore.gypi:
3750         * WebCore.order:
3751         * WebCore.vcproj/WebCore.vcproj:
3752         * WebCore.xcodeproj/project.pbxproj:
3753         * bindings/gobject/GNUmakefile.am:
3754         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
3755         (WebKit::createHTMLElementWrapper):
3756         * bindings/objc/DOM.mm:
3757         (WebCore::createElementClassMap):
3758         * bindings/objc/DOMHTML.h:
3759         * bindings/objc/PublicDOMInterfaces.h:
3760         * html/HTMLElementsAllInOne.cpp:
3761         * html/HTMLIsIndexElement.cpp: Removed.
3762         * html/HTMLIsIndexElement.h: Removed.
3763         * html/HTMLIsIndexElement.idl: Removed.
3764         * html/HTMLTagNames.in:
3765         * page/DOMWindow.idl:
3766
3767 2012-01-25  Eric Seidel  <eric@webkit.org>
3768
3769         HTMLEmbedObject should match HTMLObjectElement by stopping any load when it is removed from beforeload
3770         https://bugs.webkit.org/show_bug.cgi?id=74360
3771
3772         Reviewed by Adam Barth.
3773
3774         Neither of these !renderer() checks is strictly necessary since requestObject()
3775         makes the same check.  However requestObject() asserts before it makes that
3776         check, so it makes sense to add the check to HTMLEmebedObject instead of
3777         removing the check from HTMLObjectElement.
3778         I also moved the protect RefPtr to before the beforeload dispatch since
3779         beforeload can remove the whole DOM element (as this test does) and
3780         thus I beleive the renderer() check could be checking free'd memory.
3781
3782         Updated fast/dom/beforeload/remove-flash-in-beforeload-listener.html to test
3783         <embed> as well as <object>.
3784
3785         * html/HTMLEmbedElement.cpp:
3786         (WebCore::HTMLEmbedElement::updateWidget):
3787         * html/HTMLObjectElement.cpp:
3788         (WebCore::HTMLObjectElement::updateWidget):
3789
3790 2012-01-25  Kent Tamura  <tkent@chromium.org>
3791
3792         Move focus/blur handling code of HTMLInputElement to InputType
3793         https://bugs.webkit.org/show_bug.cgi?id=76984
3794
3795         Reviewed by Dimitri Glazkov.
3796
3797         No new tests. Just a refactoring.
3798
3799         * html/HTMLInputElement.cpp:
3800         (WebCore::HTMLInputElement::handleFocusEvent):
3801         Move the code to PasswordInputType::handleFocusEvent().
3802         (WebCore::HTMLInputElement::handleBlurEvent):
3803         Move the code to TextFieldInputType::handleBlurEvent() and
3804         PasswordInputType::handleBlurEvent().
3805         * html/InputType.cpp:
3806         (WebCore::InputType::handleFocusEvent):
3807         * html/InputType.h:
3808         (InputType): Add handleFocusEvent().
3809         * html/PasswordInputType.cpp:
3810         (WebCore::PasswordInputType::handleFocusEvent):
3811         Move the code for type=password from HTMLInputElement::handleFocusEvent().
3812         (WebCore::PasswordInputType::handleBlurEvent):
3813         Move the code for tyep=password from HTMLInputElement::handleBlurEvent().
3814         * html/PasswordInputType.h:
3815         (PasswordInputType): Add handleFocusEvent() and handleBlurEvent().
3816         * html/TextFieldInputType.cpp:
3817         (WebCore::TextFieldInputType::handleBlurEvent):
3818         Move the code for text field types from HTMLInputElement::handleBlurEvent().
3819         * html/TextFieldInputType.h:
3820         (TextFieldInputType): Add handleBlurEvent().
3821
3822 2012-01-25  Adam Barth  <abarth@webkit.org>
3823
3824         Node.cpp shouldn't duplicate QualifiedName parsing logic
3825         https://bugs.webkit.org/show_bug.cgi?id=76672
3826
3827         Reviewed by Eric Seidel.
3828
3829         I added this code out of ignorance that this logic already existed in
3830         Document.cpp.  In a future patch, we should consider moving it to
3831         QualifiedName.cpp.
3832
3833         * dom/Node.cpp:
3834         (WebCore):
3835         (WebCore::Node::checkSetPrefix):
3836
3837 2012-01-25  Eric Seidel  <eric@webkit.org>
3838
3839         Share more code between updateWidget implementations in HTMLEmbedElement and HTMLObjectElement
3840         https://bugs.webkit.org/show_bug.cgi?id=74340
3841
3842         Reviewed by Adam Barth.
3843
3844         I'm preparing to unify these two methods, and starting by sharing more code between them.
3845
3846         * html/HTMLEmbedElement.cpp:
3847         (WebCore::HTMLEmbedElement::updateWidget):
3848         * html/HTMLObjectElement.cpp:
3849         (WebCore::HTMLObjectElement::updateWidget):
3850         * html/HTMLPlugInElement.cpp:
3851         (WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent):
3852         * html/HTMLPlugInElement.h:
3853
3854 2012-01-25  Eric Uhrhane  <ericu@chromium.org>
3855
3856         Add full support for filesystem URLs.
3857         https://bugs.webkit.org/show_bug.cgi?id=75049
3858
3859         Reviewed by Adam Barth.
3860
3861         No new tests; existing layout tests cover the basic functionality, and
3862         the new functionality won't be there until Chromium adds it.  This patch
3863         merely enables that, without changing behavior.
3864
3865         * fileapi/EntryBase.cpp:
3866         (WebCore::EntryBase::toURL): Add missing escaping of URL path.
3867
3868         * page/SecurityOrigin.cpp:
3869         (WebCore::extractInnerURL): Use innerURL member, if it's populated.
3870
3871         * platform/KURL.h:
3872         (WebCore::KURL::innerURL): Add innerURL member.
3873
3874         * platform/KURLGoogle.cpp:
3875         (WebCore::KURLGooglePrivate::KURLGooglePrivate):
3876         (WebCore::KURLGooglePrivate::operator=):
3877         Add copy constructor and operator=, which are now needed since
3878         m_innerURL needs special handling.
3879         (WebCore::KURLGooglePrivate::setUtf8):
3880         (WebCore::KURLGooglePrivate::setAscii):
3881         Add calls to initInnerURL.
3882         (WebCore::KURLGooglePrivate::initInnerURL):
3883         Add method to init/copy m_innerURL.
3884         (WebCore::KURLGooglePrivate::copyTo):
3885         Handle m_innerURL during copies.
3886         (WebCore::encodeWithURLEscapeSequences):
3887         Unescape %2F ['/'] in paths; it's much more readable, and it's safe.
3888
3889         * platform/KURLGooglePrivate.h:
3890         (WebCore::KURLGooglePrivate::innerURL): Add accessor for new m_innerURL.
3891
3892 2012-01-25  Daniel Cheng  <dcheng@chromium.org>
3893
3894         [chromium] Refactor Clipboard invalidate for DataTransferItem/DataTransferItemList into a wrapper
3895         https://bugs.webkit.org/show_bug.cgi?id=76993
3896
3897         We want to unify the backing data store for ClipboardChromium and DataTransferItems. For
3898         that, we want use a similar representation to DataTransferItem list inside
3899         ChromiumDataObject.  However, since ChromiumDataObject should be valid in scopes where
3900         Clipboard is not (e.g. default drag processing), we need to separate the clipboard
3901         invalidation logic into a wrapper class.
3902
3903         Reviewed by Tony Chang.
3904
3905         Covered by existing tests.
3906
3907         * platform/chromium/ClipboardChromium.cpp:
3908         ():
3909         (WebCore::ClipboardChromium::items):
3910         * platform/chromium/DataTransferItemChromium.cpp:
3911         (WebCore::DataTransferItemChromium::getAsString):
3912         * platform/chromium/DataTransferItemListChromium.cpp:
3913         (WebCore::DataTransferItemListChromium::length):
3914         (WebCore::DataTransferItemListChromium::item):
3915         (WebCore::DataTransferItemListChromium::deleteItem):
3916         (WebCore::DataTransferItemListChromium::clear):
3917         (WebCore::DataTransferItemListChromium::add):
3918
3919 2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
3920
3921         [Texmap] Divide TextureMapperNode.cpp to 3 files.
3922         https://bugs.webkit.org/show_bug.cgi?id=76660
3923
3924          Reviewed by Kenneth Rohde Christiansen.
3925
3926          Split the animation part of TextureMapperNode out to a separate file, called
3927          TextureMapperAnimation.
3928          Provide a clean interface for that class, that allows separating the internals of the scene
3929          painting from the internals of the animation interpolation.
3930
3931          No new tests. Existing animation tests cover this.
3932
3933          * GNUmakefile.list.am:
3934         * Target.pri:
3935         * WebCore.gypi:
3936         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3937         (WebCore::GraphicsLayerTextureMapper::addAnimation):
3938         (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
3939         (WebCore::GraphicsLayerTextureMapper::removeAnimation):
3940         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3941         (GraphicsLayerTextureMapper):
3942         * platform/graphics/texmap/TextureMapperNode.cpp:
3943         (WebCore::TextureMapperNode::syncCompositingStateSelf):
3944         (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
3945         (WebCore::TextureMapperNode::syncAnimations):
3946         (WebCore::TextureMapperNode::syncAnimationsRecursively):
3947         (WebCore::TextureMapperNode::syncCompositingState):
3948         * platform/graphics/texmap/TextureMapperNode.h:
3949         (TextureMapperNode):
3950
3951 2012-01-25  Hajime Morita  <morrita@google.com>
3952
3953         ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
3954         https://bugs.webkit.org/show_bug.cgi?id=76863
3955
3956         Reviewed by Dimitri Glazkov.
3957
3958         Added a feature flag.
3959
3960         No tests, it's a behid flag configuration change.
3961
3962         * CMakeLists.txt:
3963         * Configurations/FeatureDefines.xcconfig:
3964         * DerivedSources.cpp:
3965         * DerivedSources.make:
3966         * DerivedSources.pri:
3967         * GNUmakefile.am:
3968         * GNUmakefile.list.am:
3969         * WebCore.vcproj/WebCore.vcproj:
3970         * WebCore.xcodeproj/project.pbxproj:
3971
3972 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3973
3974         Unreviewed, rolling out r105906.
3975         http://trac.webkit.org/changeset/105906
3976         https://bugs.webkit.org/show_bug.cgi?id=77038
3977
3978         Breaks compositing/visibility/layer-visible-content.html and
3979         compositing/visibility/visibility-image-layers-dynamic.html
3980         (Requested by leviw|gardening on #webkit).
3981
3982         * rendering/RenderLayerBacking.cpp:
3983         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3984
3985 2012-01-25  Mike Fenton  <mifenton@rim.com>
3986
3987         Page Up and Page Down mappings are backwards on BlackBerry port.
3988         https://bugs.webkit.org/show_bug.cgi?id=77021
3989
3990         Fix Page Up and Page Down mappings as they are reversed.
3991
3992         Reviewed by Antonio Gomes.
3993
3994         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
3995         (WebCore::keyIdentifierForBlackBerryCharacter):
3996         (WebCore::windowsKeyCodeForBlackBerryCharacter):
3997
3998 2012-01-25  Hajime Morita  <morrita@google.com>
3999
4000         <content> should create HTMLContentElement object
4001         https://bugs.webkit.org/show_bug.cgi?id=76439
4002
4003         Reviewed by Dimitri Glazkov.
4004
4005         - Added HTMLContentElement.idl which has @select attribute.
4006         - Added "content" element.
4007
4008         Both are behind ENABLE_SHADOW_DOM.
4009
4010         Tests: fast/dom/shadow/content-element-api.html
4011                fast/dom/shadow/content-element-outside-shadow.html
4012
4013         * CMakeLists.txt:
4014         * DerivedSources.cpp:
4015         * DerivedSources.make:
4016         * DerivedSources.pri:
4017         * GNUmakefile.list.am:
4018         * WebCore.gypi:
4019         * WebCore.vcproj/WebCore.vcproj:
4020         * WebCore.xcodeproj/project.pbxproj:
4021         * html/HTMLTagNames.in:
4022         * html/shadow/HTMLContentElement.cpp:
4023         (WebCore::contentTagName):
4024         (WebCore):
4025         (WebCore::HTMLContentElement::create):
4026         * html/shadow/HTMLContentElement.h:
4027         (HTMLContentElement):
4028         * html/shadow/HTMLContentElement.idl: Added.
4029
4030 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
4031
4032         Unreviewed, rolling out r105828.
4033         http://trac.webkit.org/changeset/105828
4034         https://bugs.webkit.org/show_bug.cgi?id=77036
4035
4036         Caused many crashes in ClusterFuzz and PerformanceTests
4037         (Requested by inferno-sec on #webkit).
4038
4039         * rendering/RenderBlock.cpp:
4040         (WebCore::RenderBlock::removeChild):
4041         * rendering/RenderBlock.h:
4042         (RenderBlock):
4043
4044 2012-01-25  Shawn Singh  <shawnsingh@chromium.org>
4045
4046         Fix the semantics of passing contentsVisible flag to GraphicsLayers
4047         https://bugs.webkit.org/show_bug.cgi?id=76975
4048
4049         Reviewed by Simon Fraser.
4050
4051         This patch is covered by existing tests, in particular
4052         compositing/visibility/layer-visible-content.html; its
4053         expectations are rebaselined.
4054
4055         * rendering/RenderLayerBacking.cpp:
4056         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4057
4058 2012-01-25  Tony Chang  <tony@chromium.org>
4059
4060         support overflow:auto and overflow:scroll in new flexbox
4061         https://bugs.webkit.org/show_bug.cgi?id=76953
4062
4063         Reviewed by David Hyatt.
4064
4065         Tests: css3/flexbox/flexbox-overflow-auto-expected.html
4066                css3/flexbox/flexbox-overflow-auto.html
4067
4068         * rendering/RenderBox.cpp:
4069         (WebCore::RenderBox::addLayoutOverflow): In the case of reverse flexboxen, we can overflow up or to the left (like horizontal-bt or rtl content).
4070         * rendering/RenderFlexibleBox.cpp:
4071         (WebCore::RenderFlexibleBox::layoutBlock): Call updateScrollInfoAfterLayout() to add overflow scrollbars.
4072         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): In row-reverse, offset the start of the content by the scrollbar.
4073         (WebCore::RenderFlexibleBox::layoutColumnReverse): In column-reverse, offset the start of the content by the scrollbar.
4074         * rendering/RenderFlexibleBox.h:
4075         (RenderFlexibleBox): Make isHorizontalFlow public.
4076         * rendering/style/RenderStyle.h:
4077         (WebCore::RenderStyleBitfields::isReverseFlexDirection): Convenience method.
4078
4079 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
4080
4081         Unreviewed, rolling out r105885.
4082         http://trac.webkit.org/changeset/105885
4083         https://bugs.webkit.org/show_bug.cgi?id=77027
4084
4085         Causes assertions in Position. (Requested by leviw|gardening
4086         on #webkit).
4087
4088         * dom/Position.cpp:
4089         (WebCore::Position::upstream):
4