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