9098cfa2da6ba0e1007158c15540b42c0511a96d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-21  Tony Chang  <tony@chromium.org>
2
3         compute the sign of flexibility for new flexbox
4         https://bugs.webkit.org/show_bug.cgi?id=81722
5
6         Reviewed by Ojan Vafai.
7
8         This implements the computation of the sign of flexibility used by the
9         new flexing algorithm.
10         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
11
12         No new tests, we don't use the sign of flexibility yet.
13
14         * rendering/RenderFlexibleBox.cpp:
15         (WebCore::RenderFlexibleBox::layoutFlexItems):
16         (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
17         adjusted for min/max as well as not adjusted.
18         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
19         spec text better.
20         * rendering/RenderFlexibleBox.h: Added enum for flex sign.
21
22 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
23
24         Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
25         https://bugs.webkit.org/show_bug.cgi?id=81669
26
27         Reviewed by Pavel Feldman.
28
29         * inspector/front-end/BreakpointManager.js:
30         (WebInspector.BreakpointManager.get for):
31         (WebInspector.BreakpointManager):
32         (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
33         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
34         (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
35         (WebInspector.BreakpointManager.prototype.setBreakpoint):
36         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
37         (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
38         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
39         (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
40         (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
41         (WebInspector.BreakpointManager.prototype._uiBreakpoints):
42         (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
43         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
44         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
45         (WebInspector.BreakpointManager.prototype._breakpoints):
46         (WebInspector.BreakpointManager.prototype._breakpoint):
47         (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
48         (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
49         (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
50         (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
51         (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
52         (WebInspector.BreakpointManager.prototype.debuggerReset):
53         (WebInspector.Breakpoint.prototype.serialize):
54         (WebInspector.Breakpoint.prototype.get uiBreakpoint):
55         (WebInspector.Breakpoint.prototype.createUIBreakpoint):
56         (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
57         (WebInspector.UIBreakpoint):
58         * inspector/front-end/DebuggerPresentationModel.js:
59         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
60         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
61         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
62         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
63         * inspector/front-end/ScriptsPanel.js:
64
65 2012-03-21  Anders Carlsson  <andersca@apple.com>
66
67         TileCache needs to know if its containing page is in a window
68         https://bugs.webkit.org/show_bug.cgi?id=81821
69
70         Reviewed by Andreas Kling.
71
72         This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
73
74         * page/FrameView.cpp:
75         (WebCore::FrameView::didMoveOnscreen):
76         (WebCore::FrameView::willMoveOffscreen):
77         * page/Page.cpp:
78         (WebCore::Page::Page):
79         (WebCore::Page::didMoveOnscreen):
80         (WebCore::Page::willMoveOffscreen):
81         * page/Page.h:
82         (WebCore::Page::isOnscreen):
83         (Page):
84         * platform/graphics/TiledBacking.h:
85         (TiledBacking):
86         * platform/graphics/ca/mac/TileCache.h:
87         (TileCache):
88         * platform/graphics/ca/mac/TileCache.mm:
89         (WebCore::TileCache::TileCache):
90         (WebCore::TileCache::setIsInWindow):
91         (WebCore):
92         * rendering/RenderLayerBacking.cpp:
93         (WebCore::RenderLayerBacking::RenderLayerBacking):
94
95 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
96
97         Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
98         https://bugs.webkit.org/show_bug.cgi?id=81744
99
100         Reviewed by Chris Rogers.
101
102         * platform/audio/ReverbConvolverStage.cpp:
103         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
104
105 2012-03-21  Xiaomei Ji  <xji@chromium.org>
106
107         [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
108         https://bugs.webkit.org/show_bug.cgi?id=79961
109
110         Reviewed by Adam Barth.
111
112         Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
113
114         * platform/graphics/Font.h:
115         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
116         * platform/graphics/mac/ComplexTextController.cpp:
117         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
118         * platform/graphics/win/UniscribeController.cpp:
119         (WebCore::UniscribeController::shapeAndPlaceItem):
120
121 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
122
123         Build fix for !ENABLE(INSPECTOR) after r111005.
124
125         * inspector/ContentSearchUtils.h:
126
127 2012-03-21  Ulan Degenbaev  <ulan@chromium.org>
128
129         [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
130         https://bugs.webkit.org/show_bug.cgi?id=81200
131
132         Reviewed by Adam Barth.
133
134         Pass a hint to V8::IdleNotification that requests more aggressive GC
135         when a main frame context is disposed and requests incremental GC otherwise.
136
137         * bindings/v8/V8DOMWindowShell.cpp:
138         (WebCore::V8DOMWindowShell::disposeContextHandles):
139         * bindings/v8/V8GCForContextDispose.cpp:
140         (WebCore::V8GCForContextDispose::V8GCForContextDispose):
141         (WebCore::V8GCForContextDispose::notifyContextDisposed):
142         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
143         * bindings/v8/V8GCForContextDispose.h:
144         (V8GCForContextDispose):
145
146 2012-03-21  Nat Duca  <nduca@chromium.org>
147
148         [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
149         https://bugs.webkit.org/show_bug.cgi?id=81790
150
151         Reviewed by James Robinson.
152
153         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
154         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
155
156 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
157
158         Add multichannel support in RealtimeAnalyser
159         https://bugs.webkit.org/show_bug.cgi?id=81745
160
161         Reviewed by Chris Rogers.
162
163         * Modules/webaudio/RealtimeAnalyser.cpp:
164         (WebCore::RealtimeAnalyser::writeInput):
165         (WebCore):
166
167 2012-03-21  Eric Carlson  <eric.carlson@apple.com>
168
169         Removing HTMLTrackElement does not delete TextTrack
170         https://bugs.webkit.org/show_bug.cgi?id=80873
171
172         Reviewed by Antti Koivisto.
173
174         No new tests, but media/track/track-language-preference.html has been updated
175         to test this fix.
176
177         * html/HTMLMediaElement.cpp:
178         (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
179         (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
180         called before the track is removed, to allow the TextTrack to be removed.
181         * html/HTMLMediaElement.h:
182
183         * html/HTMLTrackElement.cpp:
184         (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
185         (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
186         * html/HTMLTrackElement.h:
187
188         * html/track/LoadableTextTrack.cpp:
189         (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
190         document in the calcualtion.
191
192 2012-03-21  Zeno Albisser  <zeno@webkit.org>
193
194         [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
195         https://bugs.webkit.org/show_bug.cgi?id=81750
196
197         Building WebCore on mac currently creates an archive that is bigger than
198         4GB. But ranlib fails to create a symbol table for such a big archive,
199         even on 64bit machines.
200         Therefore we start using SVGAllInOne.cpp when building debug
201         on mac. This reduces the size of the archive by about 300MB.
202
203         Reviewed by Tor Arne Vestbø.
204
205         * Target.pri:
206
207 2012-03-21  Tommy Widenflycht  <tommyw@google.com>
208
209         [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
210         https://bugs.webkit.org/show_bug.cgi?id=81339
211
212         Reviewed by Adam Barth.
213
214         Not possible to test until the entire JSEP feature is commited.
215
216         * Modules/mediastream/IceCandidate.cpp:
217         (WebCore::IceCandidate::toSdp):
218         * Modules/mediastream/SessionDescription.cpp:
219         (WebCore::SessionDescription::toSdp):
220         * platform/mediastream/IceCandidateDescriptor.cpp:
221         (WebCore::IceCandidateDescriptor::toSDP):
222         * platform/mediastream/IceCandidateDescriptor.h:
223         (IceCandidateDescriptor):
224         * platform/mediastream/MediaStreamCenter.cpp:
225         (WebCore::MediaStreamCenter::constructSDP):
226         * platform/mediastream/MediaStreamCenter.h:
227         (MediaStreamCenter):
228         * platform/mediastream/SessionDescriptionDescriptor.cpp:
229         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
230         (WebCore::SessionDescriptionDescriptor::toSDP):
231         (WebCore::SessionDescriptionDescriptor::initialSDP):
232         * platform/mediastream/SessionDescriptionDescriptor.h:
233         (SessionDescriptionDescriptor):
234
235 2012-03-21  Yuta Kitamura  <yutak@chromium.org>
236
237         Use RFC version of WebSocket protocol by default
238         https://bugs.webkit.org/show_bug.cgi?id=81718
239
240         Reviewed by Kent Tamura.
241
242         Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
243         RFC version of WebSocket protocol by default.
244
245         All the existing ports already use the RFC protocol as of now, so this change will not make
246         any impact (hopefully).
247
248         No new tests. No change in functionality.
249
250         * page/Settings.cpp:
251         (WebCore::Settings::Settings):
252
253 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
254
255         Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
256         https://bugs.webkit.org/show_bug.cgi?id=81798
257
258         Reviewed by Pavel Feldman.
259
260         * bindings/js/JSInjectedScriptHostCustom.cpp:
261         (WebCore::getJSListenerFunctions):
262         * bindings/js/ScriptEventListener.cpp:
263         (WebCore::eventListenerHandlerBody):
264         (WebCore::eventListenerHandlerLocation):
265         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
266         (WebCore::getJSListenerFunctions):
267         * inspector/InspectorDOMAgent.cpp:
268         (WebCore::InspectorDOMAgent::getEventListeners):
269
270 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
271
272         EventListener::Type enum has unused member InspectorDOMAgentType
273         https://bugs.webkit.org/show_bug.cgi?id=81794
274
275         Reviewed by Pavel Feldman.
276
277         * dom/EventListener.h:
278
279 2012-03-21  Tom Hudson  <tomhudson@google.com>
280
281         Incremental cleanup of BitmapImage: inlined virtual functions
282         https://bugs.webkit.org/show_bug.cgi?id=81688
283
284         Reviewed by James Robinson.
285
286         No change in functionality, so no new tests.
287
288         Move virtual functions defined in headers into .cpp files.
289
290         * WebCore.gypi:
291         * platform/graphics/BitmapImage.cpp:
292         (WebCore::BitmapImage::isBitmapImage):
293         (WebCore):
294         (WebCore::BitmapImage::hasSingleSecurityOrigin):
295         (WebCore::BitmapImage::nativeImageForCurrentFrame):
296         (WebCore::BitmapImage::currentFrameHasAlpha):
297         (WebCore::BitmapImage::notSolidColor):
298         (WebCore::BitmapImage::decodedSize):
299         (WebCore::BitmapImage::mayFillWithSolidColor):
300         (WebCore::BitmapImage::solidColor):
301         * platform/graphics/BitmapImage.h:
302         (BitmapImage):
303         * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
304         (WebCore):
305         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
306         (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
307         (WebCore::BitmapImageSingleFrameSkia::size):
308         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
309         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
310         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
311         (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
312         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
313         (BitmapImageSingleFrameSkia):
314
315 2012-03-21  Alexey Proskuryakov  <ap@apple.com>
316
317         Remove obsolete File attributes
318         https://bugs.webkit.org/show_bug.cgi?id=79383
319
320         Reviewed by Hajime Morita.
321
322         * bindings/objc/PublicDOMInterfaces.h:
323         * fileapi/File.h:
324         * fileapi/File.idl:
325         Removed fileName and fileSize, they have different names now.
326
327         * html/FileInputType.cpp:
328         (WebCore::FileInputType::appendFormData):
329         (WebCore::FileInputType::getTypeSpecificValue):
330         (WebCore::FileInputType::defaultToolTip):
331         Updated to use new function names.
332
333 2012-03-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
334
335         TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
336         https://bugs.webkit.org/show_bug.cgi?id=81762
337
338         Reviewed by Kenneth Rohde Christiansen.
339
340         The first round of tiles should cover completely the visible rect.
341         Creating the tiles synchronously allows us to get the new tiles immediately
342         and prevents an extra AC layers sync to be able to remove the old tiles.
343
344         At some point it might also make sense to remove the tile creation timer
345         completely.
346
347         * platform/graphics/TiledBackingStore.cpp:
348         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
349
350 2012-03-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
351
352         TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
353         https://bugs.webkit.org/show_bug.cgi?id=81519
354
355         Reviewed by Kenneth Rohde Christiansen.
356
357         Both visibleRect and coverageRatio call mapFromContents on the input rect,
358         this woulc cause the coverageRatio to never reach 1.0 when the contents is
359         scaled up.
360
361         * platform/graphics/TiledBackingStore.cpp:
362         (WebCore::TiledBackingStore::visibleAreaIsCovered):
363
364 2012-03-21  Mao Yujie  <yujie.mao@intel.com>
365
366         MediaStream API: Need to support MediaStream constructor for JSC
367         https://bugs.webkit.org/show_bug.cgi?id=78781
368
369         Reviewed by Adam Barth.
370
371         No new tests.
372
373         * Modules/mediastream/DOMWindowMediaStream.idl:
374         * bindings/generic/RuntimeEnabledFeatures.h:
375         (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
376
377 2012-03-21  Philip Rogers  <pdr@google.com>
378
379         Skip building resources if SVGTRef is not in a document
380         https://bugs.webkit.org/show_bug.cgi?id=81473
381
382         Reviewed by Nikolas Zimmermann.
383
384         We can skip the building of pending resources in SVGTRef if we're not
385         yet in a document. This mirrors the nearly identical logic in
386         SVGUseElement::buildPendingResource() and
387         SVGFEImageElement::buildPendingResource().
388
389         Test: http/tests/svg/tref-adoptNode-crash.html
390
391         * svg/SVGTRefElement.cpp:
392         (WebCore::SVGTRefElement::buildPendingResource):
393
394 2012-03-21  Sami Kyostila  <skyostil@chromium.org>
395
396         [chromium] Use floating point scroll deltas for layers
397         https://bugs.webkit.org/show_bug.cgi?id=81546
398
399         Reviewed by James Robinson.
400
401         Use floating point scroll deltas for layers instead of integral scroll
402         deltas. This is because due to page scaling it may be necessary to
403         scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the
404         floating point scroll offset is committed to the main thread, it is
405         truncated to integer, but the fractional part is kept on the CC side to
406         make sure fractional scroll offsets are accumulated correctly over
407         multiple commits.
408
409         Test: CCLayerTreeHostTestFractionalScroll
410
411         * platform/graphics/FloatPoint.h:
412         (WebCore::toSize):
413         (WebCore):
414         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
415         (WebCore::CCLayerImpl::scrollBy):
416         (WebCore::CCLayerImpl::setScrollDelta):
417         * platform/graphics/chromium/cc/CCLayerImpl.h:
418         (WebCore::CCLayerImpl::scrollDelta):
419         (CCLayerImpl):
420         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
421         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
422         (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
423         (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
424         (WebCore::CCLayerTreeHostImpl::animatePageScale):
425
426 2012-03-21  Li Yin  <li.yin@intel.com>
427
428         [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response
429         https://bugs.webkit.org/show_bug.cgi?id=81655
430
431         Reviewed by Adam Barth.
432
433         Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html
434
435         * Modules/websockets/WebSocketHandshake.cpp:
436         (WebCore::WebSocketHandshake::readHTTPHeaders):
437
438 2012-03-21  Alexei Filippov  <alexeif@chromium.org>
439
440         Web Inspector: Speedup heap snapshot loading.
441         https://bugs.webkit.org/show_bug.cgi?id=81788
442
443         Reviewed by Yury Semikhatsky.
444
445         * inspector/front-end/HeapSnapshot.js:
446         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
447
448 2012-03-21  Pavel Feldman  <pfeldman@chromium.org>
449
450         Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.
451         https://bugs.webkit.org/show_bug.cgi?id=81766
452
453         Reviewed by Yury Semikhatsky.
454
455         We should check event target and its ancestors for being edited, not use some
456         global property. This change also introduces Event.prototype.consume so that we
457         were consistently consuming events.
458
459         * inspector/front-end/AdvancedSearchController.js:
460         (WebInspector.SearchView.prototype._onKeyDown):
461         * inspector/front-end/BreakpointsSidebarPane.js:
462         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
463         * inspector/front-end/CSSSelectorProfileView.js:
464         * inspector/front-end/Checkbox.js:
465         (WebInspector.Checkbox.prototype.addEventListener):
466         * inspector/front-end/ConsoleView.js:
467         (WebInspector.ConsoleView.prototype._enterKeyPressed):
468         (WebInspector.ConsoleGroup.prototype._titleClicked):
469         * inspector/front-end/ContextMenu.js:
470         (WebInspector.ContextMenu.prototype.show):
471         * inspector/front-end/DataGrid.js:
472         (WebInspector.DataGrid.prototype._keyDown):
473         * inspector/front-end/DatabaseQueryView.js:
474         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
475         * inspector/front-end/DetailedHeapshotView.js:
476         (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
477         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
478         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
479         (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
480         * inspector/front-end/Dialog.js:
481         (WebInspector.Dialog.prototype._onKeyDown):
482         * inspector/front-end/Drawer.js:
483         (WebInspector.Drawer.prototype._startStatusBarDragging):
484         (WebInspector.Drawer.prototype._statusBarDragging):
485         (WebInspector.Drawer.prototype._endStatusBarDragging):
486         * inspector/front-end/EventListenersSidebarPane.js:
487         (WebInspector.EventListenersSidebarPane.get if):
488         * inspector/front-end/HelpScreen.js:
489         (WebInspector.HelpScreen.prototype._onKeyDown):
490         * inspector/front-end/InspectorView.js:
491         (WebInspector.InspectorView.prototype._keyDown):
492         * inspector/front-end/MetricsSidebarPane.js:
493         (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode):
494         * inspector/front-end/NetworkPanel.js:
495         * inspector/front-end/Object.js:
496         (WebInspector.Event.prototype.preventDefault):
497         (WebInspector.Event.prototype.consume):
498         * inspector/front-end/ObjectPropertiesSection.js:
499         (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
500         * inspector/front-end/ProfileView.js:
501         * inspector/front-end/SearchController.js:
502         (WebInspector.SearchController.prototype._onKeyDown):
503         * inspector/front-end/Section.js:
504         (WebInspector.Section.prototype.handleClick):
505         * inspector/front-end/Settings.js:
506         (WebInspector.ExperimentsSettings):
507         * inspector/front-end/SoftContextMenu.js:
508         (.WebInspector.SoftContextMenu.prototype.show):
509         (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
510         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
511         (.WebInspector.SoftContextMenu.prototype._discardMenu):
512         * inspector/front-end/Spectrum.js:
513         (WebInspector.Spectrum.draggable.consume):
514         (WebInspector.Spectrum.draggable.start):
515         (WebInspector.Spectrum.draggable.stop):
516         (WebInspector.Spectrum.draggable):
517         (WebInspector.Spectrum.prototype._onKeyDown):
518         * inspector/front-end/StylesSidebarPane.js:
519         (WebInspector.StylesSidebarPane.muteEventListener):
520         (WebInspector.StylesSidebarPane):
521         (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
522         (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
523         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
524         (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
525         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
526         (WebInspector.StylePropertyTreeElement.prototype):
527         * inspector/front-end/TextPrompt.js:
528         (WebInspector.TextPrompt.prototype.onKeyDown):
529         (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
530         (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
531         * inspector/front-end/TextViewer.js:
532         (WebInspector.TextViewer.prototype._handleKeyDown):
533         * inspector/front-end/Toolbar.js:
534         (WebInspector.ToolbarDropdown.prototype._onKeyDown):
535         * inspector/front-end/UIUtils.js:
536         (WebInspector.isBeingEdited):
537         (WebInspector.startEditing):
538         * inspector/front-end/View.js:
539         (WebInspector.View.prototype._doLoadCSS):
540         * inspector/front-end/WatchExpressionsSidebarPane.js:
541         (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
542         (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
543         * inspector/front-end/inspector.js:
544         (WebInspector.documentClick.followLink):
545         (WebInspector.documentClick):
546         (WebInspector.documentKeyDown):
547         (WebInspector.postDocumentKeyDown):
548         (WebInspector.addMainEventListeners):
549         * inspector/front-end/treeoutline.js:
550         (TreeOutline.prototype._treeKeyPress):
551         (TreeOutline.prototype._treeKeyDown):
552         (TreeOutline.prototype._searchInputKeyDown):
553         (TreeElement.treeElementToggled):
554         (TreeElement.prototype.selectOnMouseDown):
555         * inspector/front-end/utilities.js:
556         (Event.prototype.consume):
557
558 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
559
560         Web Inspector: event listener section doesn't show all event listeners of the element ancestors
561         https://bugs.webkit.org/show_bug.cgi?id=81782
562
563         Event listeners section now contains all event listeners for the selected
564         element ancestors chain (in case option "All Nodes" is selected).
565
566         Reviewed by Pavel Feldman.
567
568         * inspector/InspectorDOMAgent.cpp:
569         (WebCore::InspectorDOMAgent::getEventListenersForNode):
570         * inspector/front-end/EventListenersSidebarPane.js:
571         (WebInspector.EventListenersSidebarPane.prototype.update.callback):
572         (WebInspector.EventListenersSidebarPane.prototype.update):
573         (WebInspector.EventListenersSidebarPane.prototype):
574
575 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
576
577         Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function.
578         https://bugs.webkit.org/show_bug.cgi?id=81784
579
580         Reviewed by Yury Semikhatsky.
581
582         * inspector/front-end/HeapSnapshot.js:
583         (WebInspector.HeapSnapshot.prototype._init):
584         (WebInspector.HeapSnapshot.prototype.dispose):
585         (WebInspector.HeapSnapshot.prototype._retainersForNode):
586         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
587         (WebInspector.HeapSnapshot.prototype._flagsOfNode):
588         (WebInspector.HeapSnapshot.prototype.aggregates):
589         (WebInspector.HeapSnapshot.prototype._buildRetainers):
590         (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
591
592 2012-03-21  Jessie Berlin  <jberlin@apple.com>
593
594         WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not
595         $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf.
596         https://bugs.webkit.org/show_bug.cgi?id=81739
597
598         Reviewed by Dan Bernstein.
599
600         * WebCore.vcproj/WebCore.vcproj:
601         Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf
602         subdirectory of the build output, not the JavaScriptCore/wtf subdirectory.
603
604 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
605
606         [BlackBerry] Credential save and autofill implemetation
607         https://bugs.webkit.org/show_bug.cgi?id=80401
608
609         Reviewed by Rob Buis.
610
611         Added interface function authenticationChallenge() and
612         notifyShouldSaveCredential() into PageClientBlackBerry.
613         As this class is our platform specific interface,
614         by doing this we don't need to add an interface function
615         in class FrameLoaderClient which is a platform
616         independent interface.
617
618         No new tests.
619
620         * platform/blackberry/PageClientBlackBerry.h:
621         (WebCore):
622         * platform/network/blackberry/NetworkJob.cpp:
623         (WebCore::NetworkJob::sendRequestWithCredentials):
624
625 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
626
627         Web Inspector: HeapProfiler: DOM node id can overflow Int32.
628         https://bugs.webkit.org/show_bug.cgi?id=81776
629
630         Reviewed by Pavel Feldman.
631
632         * inspector/front-end/HeapSnapshot.js:
633         (WebInspector.Uint32Array):
634         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
635         (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var):
636         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
637         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
638
639 2012-03-21  Tim Dresser  <tdresser@chromium.org>
640
641         [chromium] Increase size of Combo Box Options for touch and high DPI devices
642         https://bugs.webkit.org/show_bug.cgi?id=80027
643
644         Reviewed by Darin Fisher.
645
646         Scale Combo box popups by defaultDeviceScaleFactor, and add padding to
647         <option> elements when touch is enabled.
648
649         Manually tested with --default-device-scale-factor=1,2 and unset.
650         Each of these were tested with RuntimeEnabledFeatures::touchEnabled
651         set to true and false.
652
653         * platform/chromium/PopupListBox.cpp:
654         (WebCore::PopupListBox::paint):
655         (WebCore::PopupListBox::paintRow):
656         (WebCore::PopupListBox::getRowHeight):
657         * platform/chromium/PopupListBox.h:
658         (PopupContainerSettings):
659         * platform/chromium/PopupMenuChromium.cpp:
660         (WebCore):
661         (WebCore::PopupMenuChromium::show):
662         * platform/chromium/PopupMenuChromium.h:
663         (WebCore::PopupMenuChromium::optionPaddingForTouch):
664         (WebCore::PopupMenuChromium::setOptionPaddingForTouch):
665         (PopupMenuChromium):
666         * rendering/RenderMenuList.cpp:
667         (WebCore::RenderMenuList::showPopup):
668
669 2012-03-21  Takashi Toyoshima  <toyoshim@chromium.org>
670
671         [Chromium] [WebSocket] provide WebFrameClient with a chance of
672         accessing to opening WebSocketStreamHandle.
673         https://bugs.webkit.org/show_bug.cgi?id=78459
674
675         Reviewed by Kent Tamura and Darin Fisher.
676
677         Add willOpenSocketStream client function to WebFrameClient with an
678         argument representing an opening SocketStreamHandle.
679         These mechanisms provide embedders with a chance to bind arbitrary
680         data to a WebSocketStreamHandle from WebFrameClient to which the
681         WebSocket object having the WebSocketStreamHandle belongs.
682
683         No new tests because this change just provide mechanisms to embedders.
684
685         * Modules/websockets/WebSocketChannel.cpp: Implement willOpenSocketStream to call a client function in WebFrameClient.
686         (WebCore::WebSocketChannel::willOpenSocketStream):
687         (WebCore):
688         * Modules/websockets/WebSocketChannel.h: Add willOpenSocketStream declaration.
689         (WebSocketChannel):
690         * loader/FrameLoaderClient.h: Add dispatchWillOpenSocketStream declaration.
691         (WebCore):
692         (FrameLoaderClient):
693         (WebCore::FrameLoaderClient::dispatchWillOpenSocketStream):
694         * platform/network/SocketStreamHandleClient.h: Add willOpenSocketStream declaration.
695         (WebCore::SocketStreamHandleClient::willOpenSocketStream):
696
697 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
698
699         https://bugs.webkit.org/show_bug.cgi?id=81761
700         Fix Gobject binding for sequence<T> for function return type.
701
702         Reviewed by Kentaro Hara.
703
704         No new tests.
705
706         * bindings/scripts/CodeGeneratorGObject.pm:
707         (SkipFunction): Skip function with sequence<T> return type.
708         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
709         (webkit_dom_test_obj_method_with_sequence_arg):
710         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
711
712 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
713
714         Unreviewed build fix for r111529.
715
716         * inspector/InjectedScriptHost.h:
717         (WebCore):
718
719 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
720
721         Unreviewed, rolling out r111497, r111506, r111508, and
722         r111513.
723         http://trac.webkit.org/changeset/111497
724         http://trac.webkit.org/changeset/111506
725         http://trac.webkit.org/changeset/111508
726         http://trac.webkit.org/changeset/111513
727         https://bugs.webkit.org/show_bug.cgi?id=81774
728
729         It broke 2 tests on all platform (Requested by Ossy on
730         #webkit).
731
732         * css/CSSStyleSelector.cpp:
733         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
734         * css/SelectorChecker.cpp:
735         (WebCore::SelectorChecker::checkOneSelector):
736         * html/HTMLKeygenElement.cpp:
737         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
738         * html/HTMLOptionElement.cpp:
739         (WebCore::HTMLOptionElement::HTMLOptionElement):
740         (WebCore::HTMLOptionElement::create):
741         (WebCore::HTMLOptionElement::attach):
742         (WebCore::HTMLOptionElement::detach):
743         (WebCore::HTMLOptionElement::formControlType):
744         (WebCore):
745         (WebCore::HTMLOptionElement::parseAttribute):
746         (WebCore::HTMLOptionElement::childrenChanged):
747         (WebCore::HTMLOptionElement::insertedIntoTree):
748         * html/HTMLOptionElement.h:
749         (HTMLOptionElement):
750         (WebCore::HTMLOptionElement::ownElementDisabled):
751         * html/HTMLTagNames.in:
752
753 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
754
755         Web Inspector: expose getEventListeners() to console command line API
756         https://bugs.webkit.org/show_bug.cgi?id=81658
757
758         Reviewed by Yury Semikhatsky.
759
760         Test: inspector/console/command-line-api-getEventListeners.html
761
762         * bindings/js/JSInjectedScriptHostCustom.cpp:
763         (WebCore::JSInjectedScriptHost::functionDetails):
764         (WebCore):
765         (WebCore::getJSListenerFunctions):
766         (WebCore::JSInjectedScriptHost::getEventListeners):
767         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
768         (WebCore::getJSListenerFunctions):
769         (WebCore):
770         (WebCore::V8InjectedScriptHost::getEventListenersCallback):
771         * inspector/InjectedScriptHost.cpp:
772         (WebCore::InjectedScriptHost::InjectedScriptHost):
773         (WebCore::InjectedScriptHost::disconnect):
774         (WebCore::InjectedScriptHost::getEventListenersImpl):
775         (WebCore):
776         * inspector/InjectedScriptHost.h:
777         (WebCore):
778         (WebCore::InjectedScriptHost::init):
779         (InjectedScriptHost):
780         * inspector/InjectedScriptHost.idl:
781         * inspector/InjectedScriptSource.js:
782         (.):
783         * inspector/InspectorController.cpp:
784         (WebCore::InspectorController::InspectorController):
785         * inspector/InspectorDOMAgent.cpp:
786         (WebCore::InspectorDOMAgent::getEventListenersForNode):
787         (WebCore::InspectorDOMAgent::getEventListeners):
788         (WebCore):
789         * inspector/InspectorDOMAgent.h:
790         (InspectorDOMAgent):
791         * inspector/WorkerInspectorController.cpp:
792         (WebCore::WorkerInspectorController::WorkerInspectorController):
793
794 2012-03-21  Kentaro Hara  <haraken@chromium.org>
795
796         Unreviewed, rebaselined run-bindings-tests results.
797
798         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
799         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
800         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
801         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
802
803 2012-03-21  Ian Vollick  <vollick@chromium.org>
804
805         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
806         https://bugs.webkit.org/show_bug.cgi?id=81692
807
808         Reviewed by Adrienne Walker.
809
810         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
811
812         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
813
814 2012-03-21  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
815
816         [Qt] Cookie Jar blocks on fsync in SQLITE
817         https://bugs.webkit.org/show_bug.cgi?id=81755
818
819         Reviewed by Simon Hausmann.
820
821         Set PRAGMA synchronous to OFF, which tells SQLITE to never fsync.
822
823         * platform/qt/CookieJarQt.cpp:
824         (WebCore::SharedCookieJarQt::ensureDatabaseTable):
825
826 2012-03-21  Ian Vollick  <vollick@chromium.org>
827
828         [chromium] Animation events should only be used for synchronizing animation start times
829         https://bugs.webkit.org/show_bug.cgi?id=81484
830
831         Reviewed by Adrienne Walker.
832
833         Tested in CCLayerTreeHostTestSynchronizeAnimationStartTimes
834
835         Eliminated animation finished events. Animations will finish naturally on the
836         main thread and the final values will be set.
837
838         Animation started events are now also used to synchronize the main thread
839         animations' start times with their impl thread equivalents, preventing skew.
840         Until main thread animations receive their synchronized start times, they will
841         apply their initial values (i.e., they will be paused at time zero). This
842         guarantees that we will not jump to the animation's final value on the main
843         thread while we wait for the synchronized start time.
844
845         * WebCore.gypi:
846         * platform/graphics/chromium/LayerChromium.cpp:
847         (WebCore::LayerChromium::notifyAnimationStarted):
848         * platform/graphics/chromium/LayerChromium.h:
849         (WebCore):
850         (LayerChromium):
851         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
852         (WebCore::CCActiveAnimation::CCActiveAnimation):
853         * platform/graphics/chromium/cc/CCActiveAnimation.h:
854         (CCActiveAnimation):
855         (WebCore::CCActiveAnimation::needsSynchronizedStartTime):
856         (WebCore::CCActiveAnimation::setNeedsSynchronizedStartTime):
857         * platform/graphics/chromium/cc/CCAnimationEvents.cpp: Removed.
858         * platform/graphics/chromium/cc/CCAnimationEvents.h:
859         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
860         (CCAnimationStartedEvent):
861         (WebCore):
862         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
863         (WebCore::CCLayerAnimationController::animate):
864         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
865         (WebCore):
866         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
867         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
868         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
869         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
870         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
871         (WebCore::CCLayerAnimationController::tickAnimations):
872         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
873         (CCLayerAnimationController):
874         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
875         (WebCore::CCLayerTreeHost::updateAnimations):
876         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
877         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
878         (CCLayerTreeHost):
879
880 2012-03-21  Zeno Albisser  <zeno@webkit.org>
881
882         [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
883         https://bugs.webkit.org/show_bug.cgi?id=81113
884
885         The GLContext is created by QWindow/QSurface using
886         QOpenGLContext which is implemented using NSOpenGL functions
887         on mac. Therefore we should use QOpenGLContext as well when
888         querying for the current context. AGL is not supposed
889         to be paired with NSOpenGL.
890         Altering the typedef for GLContext is fine, since
891         the GLContext type is only used as a key in a map.
892
893         Reviewed by Kenneth Rohde Christiansen.
894
895         * platform/graphics/texmap/TextureMapperGL.cpp:
896         (SharedGLData):
897         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
898
899 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
900
901         Web Inspector: HeapSnapshot: make _bfs twice as fast as the old version.
902         https://bugs.webkit.org/show_bug.cgi?id=81756
903
904         Reviewed by Yury Semikhatsky.
905
906         * inspector/front-end/HeapSnapshot.js:
907         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
908         (WebInspector.HeapSnapshot.prototype._bfs):
909
910 2012-03-21  Vineet Chaudhary  <rgf748@motorola.com>
911
912         https://bugs.webkit.org/show_bug.cgi?id=81705
913         REGRESSION (r111416): fast/dom/prototype-inheritance-2.html is failing.
914
915         Reviewed by Csaba Osztrogonác.
916
917         No new tests.
918
919         * bindings/js/JSDOMBinding.h: Needs passing globalObject to constructArray().
920         (WebCore::jsArray):
921
922 2012-03-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
923
924         [BlackBerry] Upstreaming blackberry specific css file
925         https://bugs.webkit.org/show_bug.cgi?id=81650
926
927         Ustream BlackBerry specific css files, including:
928         css/themeBlackBerry.css
929         css/mediaControlsBlackBerry.css
930
931         Reviewed by Nikolas Zimmermann.
932
933         No new tests, this is the initial upstream patch
934         for BlackBerry specific css files.
935
936         * css/mediaControlsBlackBerry.css: Added.
937         (audio):
938         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
939         (video:-webkit-full-page-media::-webkit-media-controls-panel):
940         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
941         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
942         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
943         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
944         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
945         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
946         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
947         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
948         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
949         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
950         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
951         * css/themeBlackBerry.css: Added.
952         (textarea):
953         (input, textarea):
954         (input[type="color"]):
955         (select:focus):
956         (select[size][multiple]):
957         (select[size][multiple]:focus):
958
959 2012-03-21  Levi Weintraub  <leviw@chromium.org>
960
961         Update LayoutUnit usage in descendants of RenderReplaced
962         https://bugs.webkit.org/show_bug.cgi?id=80918
963
964         Reviewed by Eric Seidel.
965
966         Replaced elements have to flow in the new sub-pixel Render Tree, but since the rendering of these
967         often takes place outside of WebCore (or in cases such as foreign objects, in WebCore after
968         passing through platform code), care must be taken to determine the final rendered size and
969         location before render time. This patch brings these classes up to the latest and greatest in the
970         subpixellayout branch.
971
972         See https://trac.webkit.org/wiki/LayoutUnit for more information.
973
974         No new tests. No change in behavior.
975
976         * rendering/RenderFrameBase.cpp:
977         (WebCore::RenderFrameBase::layoutWithFlattening): Build Fix.
978         * rendering/RenderFullScreen.cpp:
979         (RenderFullScreen::createPlaceholder): Ditto.
980         * rendering/RenderFullScreen.h:
981         (RenderFullScreen): Ditto.
982         * rendering/RenderHTMLCanvas.cpp:
983         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Ditto.
984         * rendering/RenderIFrame.cpp:
985         (WebCore::RenderIFrame::computeLogicalHeight): Ditto.
986         (WebCore::RenderIFrame::computeLogicalWidth): Ditto.
987         * rendering/RenderImage.cpp:
988         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): Intrinsic sizes are always integers, since they
989         originate outside of WebCore.
990         (WebCore::RenderImage::paintIntoRect): Use pixel snapping to paint into an arbitrary rect.
991         (WebCore::RenderImage::computeReplacedLogicalWidth): Intrinsic size is always integral -- rounding
992         values to integers.
993         * rendering/RenderImage.h:
994         (RenderImage):
995         * rendering/RenderVideo.cpp:
996         (WebCore::RenderVideo::videoBox):
997         (WebCore::RenderVideo::paintReplaced): Painting at integer boundaries.
998         * rendering/RenderWidget.cpp:
999         (WebCore):
1000         (WebCore::roundedIntRect): Widgets are rendered outside of WebCore, so we always align them to
1001         integer boundaries. This means we can actually round the size of our ultimate content box. This
1002         function is implemented here specifically to prevent its misuse if we put it elsewhere.
1003         (WebCore::RenderWidget::setWidgetGeometry): We simplify layout by taking a LayoutRect and rounding
1004         it to its final location within this function.
1005         (WebCore::RenderWidget::updateWidgetGeometry): We keep things in LayoutUnits until handing off to
1006         setWidgetGeometry.
1007         (WebCore::RenderWidget::paint): Rounding the paint location before handing painting off to the
1008         widget itself.
1009         * rendering/RenderWidget.h:
1010         (RenderWidget):
1011
1012 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1013
1014         Web Inspector: HeapProfiler: support distance column in Summary View.
1015         https://bugs.webkit.org/show_bug.cgi?id=81675
1016
1017         In many cases when a page leaked an object we see not only this object
1018         but the all objects it retains. It is quite difficult to find out which
1019         the object is the root of leak. It'd be simpler to sort the leaked
1020         objects by Distance column and track down the first one.
1021
1022         Reviewed by Yury Semikhatsky.
1023
1024         * inspector/front-end/DetailedHeapshotGridNodes.js:
1025         (WebInspector.HeapSnapshotGenericObjectNode):
1026         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1027         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
1028         (WebInspector.HeapSnapshotConstructorNode):
1029         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
1030         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
1031         * inspector/front-end/DetailedHeapshotView.js:
1032         (WebInspector.HeapSnapshotConstructorsDataGrid):
1033         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
1034         * inspector/front-end/HeapSnapshot.js:
1035         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
1036
1037 2012-03-21  Charles Wei  <charles.wei@torchmobile.com.cn>
1038
1039         [BlackBerry] Remove redundant code in SocketStreamHandler
1040         https://bugs.webkit.org/show_bug.cgi?id=81726
1041
1042         Reviewed by George Staikos.
1043
1044         No new tests needed. Just remove redundant code.
1045
1046         * platform/network/blackberry/SocketStreamHandle.h:
1047         (SocketStreamHandle):
1048         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
1049
1050 2012-03-20  Eric Seidel  <eric@webkit.org>
1051
1052         Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
1053         https://bugs.webkit.org/show_bug.cgi?id=80911
1054
1055         Reviewed by Adam Barth.
1056
1057         * CMakeLists.txt:
1058          - Look for headers in Source/WTF as well.
1059
1060 2012-03-20  Dana Jansens  <danakj@chromium.org>
1061
1062         [chromium] Use origin transform to transform occlusion from surface content space to its target content space
1063         https://bugs.webkit.org/show_bug.cgi?id=81730
1064
1065         Reviewed by Adrienne Walker.
1066
1067         Unit test: CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent
1068
1069         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1070         (WebCore::transformSurfaceOpaqueRegion):
1071         (WebCore::::leaveToTargetRenderSurface):
1072
1073 2012-03-19  Shinya Kawanaka  <shinyak@chromium.org>
1074
1075         [Crash] RenderMenuList::addChild() in Shadow DOM.
1076         https://bugs.webkit.org/show_bug.cgi?id=81201
1077
1078         Reviewed by Dimitri Glazkov.
1079
1080         <audio>, <video>, <meter>, <progress>, and <select> are implemented using
1081         Shadow DOM having HTMLContentElement. Their renderer children basically should not
1082         create a renderer unless they are on the upper shadow encapsulation boundary,
1083         which means they are the direct children of the shadow root.
1084
1085         However, current implementation allows their renderer children to create a renderer
1086         even if they are on a lower shadow encapsulation boundary, which means
1087         they are distributed elements of HTMLContentElement.
1088
1089         This patch makes there renderer children not to create a renderer if they are on a lower shadow
1090         encapsulation boudary.
1091
1092         Tests: fast/dom/shadow/content-element-in-media-element.html
1093                fast/dom/shadow/content-element-in-meter-element.html
1094                fast/dom/shadow/content-element-in-progress-element.html
1095                fast/dom/shadow/content-element-in-select-element.html
1096
1097         * dom/NodeRenderingContext.h:
1098         (NodeRenderingContext):
1099         (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
1100         (WebCore):
1101         * html/HTMLMediaElement.cpp:
1102         (WebCore::HTMLMediaElement::childShouldCreateRenderer):
1103         * html/HTMLMeterElement.cpp:
1104         (WebCore::HTMLMeterElement::childShouldCreateRenderer):
1105         * html/HTMLProgressElement.cpp:
1106         (WebCore::HTMLProgressElement::childShouldCreateRenderer):
1107         * html/HTMLSelectElement.cpp:
1108         (WebCore::HTMLSelectElement::childShouldCreateRenderer):
1109
1110 2012-03-20  Dana Jansens  <danakj@chromium.org>
1111
1112         [chromium] Store origin/screen space transforms for surface and replica in the surface
1113         https://bugs.webkit.org/show_bug.cgi?id=81296
1114
1115         Reviewed by Adrienne Walker.
1116
1117         Compute and save a number of transforms for render surfaces. The origin
1118         tranform for the replica into its target surface. The origin transform
1119         for the replica into the screen. And the origin transform for the surface
1120         into the screen.
1121
1122         These transforms will allow us to detect occlusion of render surfaces,
1123         allowing us to cull (or partially-cull) the render surface quad during
1124         drawing.
1125
1126         This also fixes a subtle bug in the transforms used by the damage
1127         tracking code.
1128
1129         Unit test: CCLayerTreeHostCommonTest.verifyTransformsForSingleRenderSurface
1130                    CCLayerTreeHostCommonTest.verifyTransformsForReplica
1131                    CCLayerTreeHostCommonTest.verifyTransformsForRenderSurfaceHierarchy
1132
1133         * platform/graphics/chromium/RenderSurfaceChromium.h:
1134         (WebCore::RenderSurfaceChromium::screenSpaceTransform):
1135         (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
1136         (RenderSurfaceChromium):
1137         (WebCore::RenderSurfaceChromium::replicaOriginTransform):
1138         (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
1139         (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
1140         (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
1141         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1142         (WebCore::CCDamageTracker::extendDamageForRenderSurface):
1143         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1144         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1145         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1146         (WebCore::damageInSurfaceSpace):
1147         * platform/graphics/chromium/cc/CCRenderSurface.h:
1148         (WebCore::CCRenderSurface::setDrawTransform):
1149         (WebCore::CCRenderSurface::drawTransform):
1150         (WebCore::CCRenderSurface::setScreenSpaceTransform):
1151         (WebCore::CCRenderSurface::screenSpaceTransform):
1152         (CCRenderSurface):
1153         (WebCore::CCRenderSurface::setReplicaDrawTransform):
1154         (WebCore::CCRenderSurface::replicaDrawTransform):
1155         (WebCore::CCRenderSurface::setReplicaOriginTransform):
1156         (WebCore::CCRenderSurface::replicaOriginTransform):
1157         (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
1158         (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
1159
1160 2012-03-20  Yoshifumi Inoue  <yosin@chromium.org>
1161
1162         [Forms] The option element should not be form associated element.
1163         https://bugs.webkit.org/show_bug.cgi?id=79764
1164
1165         Reviewed by Kent Tamura.
1166
1167         This patch changes base class of HTMLOptionELement to HTMLElement
1168         from HTMLFormControlElement for saving memory space and iteration
1169         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
1170         and matching the HTML5 specification for ease of maintenance.
1171
1172         This patch changes behavior of handling of CSS pseudo classes "invalid"
1173         and "valid". The "option" elements no longer use these CSS pseudo classes
1174         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
1175
1176         Changes of TextIterator is lead by usage of isFormControlElement. This
1177         changes will be replaced with more meaningful predicate as part of
1178         https://bugs.webkit.org/show_bug.cgi?id=80381
1179
1180         No new tests but updated select-live-pseudo-selectors.html test.
1181
1182         * css/CSSStyleSelector.cpp:
1183         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
1184         * css/SelectorChecker.cpp:
1185         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
1186         * html/HTMLKeygenElement.cpp:
1187         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
1188         * html/HTMLOptionElement.cpp:
1189         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
1190         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
1191         (WebCore::HTMLOptionElement::attach): Changeid base class.
1192         (WebCore::HTMLOptionElement::detach): Changed base class.
1193         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
1194         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
1195         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
1196         * html/HTMLOptionElement.h:
1197         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
1198         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
1199         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
1200
1201 2012-03-20  Xiaomei Ji  <xji@chromium.org>
1202
1203         Crash introduced in r110965.
1204         https://bugs.webkit.org/show_bug.cgi?id=81720
1205
1206         Reviewed by Ryosuke Niwa.
1207
1208         Since word break iterator just keeps a pointer to the UChar array given to the constructor,
1209         we need to allocate the UChar array deeper in the stack than the iterator.
1210
1211         Test: editing/selection/move-by-word-visually-crash-test-5.html
1212
1213         * editing/visible_units.cpp:
1214         (WebCore::wordBreakIteratorForMinOffsetBoundary):
1215         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
1216         (WebCore::visualWordPosition):
1217
1218 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
1219
1220         [chromium] Convert TouchFlingPlatformGestureCurve to a 2-D Bezier for better control of curve shape.
1221         https://bugs.webkit.org/show_bug.cgi?id=81713
1222
1223         Reviewed by Dirk Pranke.
1224
1225         Exisiting unit test revised to cover this change.
1226
1227         Change the fling gesture animation curve to use a 2-D Bezier to obtain greater control
1228         over the shape of the curve. Also, change time scaling code to be logarithmic for more
1229         natural feel.
1230
1231         * platform/TouchFlingPlatformGestureCurve.cpp:
1232         (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
1233         (WebCore::TouchFlingPlatformGestureCurve::apply):
1234
1235 2012-03-18  Tim Horton  <timothy_horton@apple.com>
1236
1237         Infinite repaint loop with SVGImageCache and deferred repaint timers
1238         https://bugs.webkit.org/show_bug.cgi?id=78315
1239         <rdar://problem/10651634>
1240
1241         Reviewed by Nikolas Zimmermann.
1242
1243         Only defer image redraw on a timer if we're in layout. This breaks
1244         the repaint loop while still preventing us from drawing inside layout.
1245
1246         Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
1247         preventing deferred repaint timers from being started during that process.
1248
1249         No new tests, as the problem only occurs in a nonstandard configuration.
1250
1251         * page/FrameView.cpp:
1252         (WebCore::FrameView::FrameView):
1253         (WebCore::FrameView::reset):
1254         (WebCore::FrameView::repaintContentRectangle):
1255         (WebCore::FrameView::endDeferredRepaints):
1256         (WebCore::FrameView::startDeferredRepaintTimer):
1257         (WebCore):
1258         (WebCore::FrameView::doDeferredRepaints):
1259         (WebCore::FrameView::deferredRepaintTimerFired):
1260         (WebCore::FrameView::beginDisableRepaints):
1261         (WebCore::FrameView::endDisableRepaints):
1262         * page/FrameView.h:
1263         (FrameView):
1264         (WebCore::FrameView::repaintsDisabled):
1265         * rendering/RenderView.cpp:
1266         (WebCore::RenderView::shouldRepaint):
1267         * svg/graphics/SVGImage.cpp:
1268         (WebCore::SVGImage::drawSVGToImageBuffer):
1269         (WebCore::SVGImage::draw):
1270         (WebCore::SVGImage::frameView):
1271         (WebCore):
1272         * svg/graphics/SVGImage.h:
1273         (WebCore):
1274         * svg/graphics/SVGImageCache.cpp:
1275         (WebCore::SVGImageCache::imageContentChanged):
1276         (WebCore::SVGImageCache::redraw):
1277         (WebCore::SVGImageCache::redrawTimerFired):
1278         (WebCore):
1279         * svg/graphics/SVGImageCache.h:
1280         (SVGImageCache):
1281
1282 2012-03-20  Adam Klein  <adamk@chromium.org>
1283
1284         Include fix for dom/xhtml test promised in r111449.
1285
1286         * dom/ContainerNode.cpp:
1287         (WebCore::ContainerNode::replaceChild): Check against next instead of
1288         prev when deciding there's no work to do.
1289
1290 2012-03-20  Jon Lee  <jonlee@apple.com>
1291
1292         Restrict access to notifications for unique origins and file URLs with no local file access
1293         https://bugs.webkit.org/show_bug.cgi?id=79704
1294         <rdar://problem/10912430>
1295
1296         Reviewed by Adam Barth.
1297
1298         Before checking or requesting permissions, we look at whether we can show notifications based on
1299         the security context. If not, we short circuit and do not forward the request to the client.
1300
1301         * notifications/Notification.cpp:
1302         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
1303         different logic for checking permissions than when checking permissions through the
1304         notification center.
1305         * notifications/NotificationCenter.cpp:
1306         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
1307         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
1308         we asynchronously call the callback with that decision. Otherwise we ask the client.
1309
1310         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
1311         requestPermission().
1312         * notifications/NotificationCenter.h:
1313         (NotificationRequestCallback): Add new private class encapsulating the callback.
1314         * notifications/NotificationCenter.cpp:
1315         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
1316         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
1317         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
1318         to invoke the callback.
1319         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
1320         (WebCore::NotificationCenter::NotificationRequest::startTimer):
1321         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
1322         center.
1323         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
1324         regardless of any restrictions that might otherwise cause toString() to return "null".
1325         * page/SecurityOrigin.cpp:
1326         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
1327         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
1328         universal access, we always let it show. Otherwise the client should be asked.
1329         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
1330         (WebCore::SecurityOrigin::toRawString):
1331
1332         Added FIXME's regarding the naming of enforceFilePathSeparation().
1333         * dom/Document.cpp:
1334         (WebCore::Document::initSecurityContext): Also, tab reformatting.
1335
1336         * WebCore.exp.in: Export toRawString().
1337
1338 2012-03-20  Mark Pilgrim  <pilgrim@chromium.org>
1339
1340         Move webaudio to Modules/webaudio/
1341         https://bugs.webkit.org/show_bug.cgi?id=81541
1342
1343         Reviewed by Kentaro Hara.
1344
1345         No new tests, all existing tests pass.
1346
1347         * CMakeLists.txt:
1348         * DerivedSources.make:
1349         * DerivedSources.pri:
1350         * GNUmakefile.am:
1351         * GNUmakefile.list.am:
1352         * Modules/webaudio: Added.
1353         * Modules/webaudio/AsyncAudioDecoder.cpp: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.cpp.
1354         * Modules/webaudio/AsyncAudioDecoder.h: Copied from Source/WebCore/webaudio/AsyncAudioDecoder.h.
1355         * Modules/webaudio/AudioBasicProcessorNode.cpp: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.cpp.
1356         * Modules/webaudio/AudioBasicProcessorNode.h: Copied from Source/WebCore/webaudio/AudioBasicProcessorNode.h.
1357         * Modules/webaudio/AudioBuffer.cpp: Copied from Source/WebCore/webaudio/AudioBuffer.cpp.
1358         * Modules/webaudio/AudioBuffer.h: Copied from Source/WebCore/webaudio/AudioBuffer.h.
1359         * Modules/webaudio/AudioBuffer.idl: Copied from Source/WebCore/webaudio/AudioBuffer.idl.
1360         * Modules/webaudio/AudioBufferCallback.h: Copied from Source/WebCore/webaudio/AudioBufferCallback.h.
1361         * Modules/webaudio/AudioBufferCallback.idl: Copied from Source/WebCore/webaudio/AudioBufferCallback.idl.
1362         * Modules/webaudio/AudioBufferSourceNode.cpp: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.cpp.
1363         * Modules/webaudio/AudioBufferSourceNode.h: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.h.
1364         * Modules/webaudio/AudioBufferSourceNode.idl: Copied from Source/WebCore/webaudio/AudioBufferSourceNode.idl.
1365         * Modules/webaudio/AudioChannelMerger.cpp: Copied from Source/WebCore/webaudio/AudioChannelMerger.cpp.
1366         * Modules/webaudio/AudioChannelMerger.h: Copied from Source/WebCore/webaudio/AudioChannelMerger.h.
1367         * Modules/webaudio/AudioChannelMerger.idl: Copied from Source/WebCore/webaudio/AudioChannelMerger.idl.
1368         * Modules/webaudio/AudioChannelSplitter.cpp: Copied from Source/WebCore/webaudio/AudioChannelSplitter.cpp.
1369         * Modules/webaudio/AudioChannelSplitter.h: Copied from Source/WebCore/webaudio/AudioChannelSplitter.h.
1370         * Modules/webaudio/AudioChannelSplitter.idl: Copied from Source/WebCore/webaudio/AudioChannelSplitter.idl.
1371         * Modules/webaudio/AudioContext.cpp: Copied from Source/WebCore/webaudio/AudioContext.cpp.
1372         * Modules/webaudio/AudioContext.h: Copied from Source/WebCore/webaudio/AudioContext.h.
1373         * Modules/webaudio/AudioContext.idl: Copied from Source/WebCore/webaudio/AudioContext.idl.
1374         * Modules/webaudio/AudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/AudioDestinationNode.cpp.
1375         * Modules/webaudio/AudioDestinationNode.h: Copied from Source/WebCore/webaudio/AudioDestinationNode.h.
1376         * Modules/webaudio/AudioDestinationNode.idl: Copied from Source/WebCore/webaudio/AudioDestinationNode.idl.
1377         * Modules/webaudio/AudioGain.h: Copied from Source/WebCore/webaudio/AudioGain.h.
1378         * Modules/webaudio/AudioGain.idl: Copied from Source/WebCore/webaudio/AudioGain.idl.
1379         * Modules/webaudio/AudioGainNode.cpp: Copied from Source/WebCore/webaudio/AudioGainNode.cpp.
1380         * Modules/webaudio/AudioGainNode.h: Copied from Source/WebCore/webaudio/AudioGainNode.h.
1381         * Modules/webaudio/AudioGainNode.idl: Copied from Source/WebCore/webaudio/AudioGainNode.idl.
1382         * Modules/webaudio/AudioListener.cpp: Copied from Source/WebCore/webaudio/AudioListener.cpp.
1383         * Modules/webaudio/AudioListener.h: Copied from Source/WebCore/webaudio/AudioListener.h.
1384         * Modules/webaudio/AudioListener.idl: Copied from Source/WebCore/webaudio/AudioListener.idl.
1385         * Modules/webaudio/AudioNode.cpp: Copied from Source/WebCore/webaudio/AudioNode.cpp.
1386         * Modules/webaudio/AudioNode.h: Copied from Source/WebCore/webaudio/AudioNode.h.
1387         * Modules/webaudio/AudioNode.idl: Copied from Source/WebCore/webaudio/AudioNode.idl.
1388         * Modules/webaudio/AudioNodeInput.cpp: Copied from Source/WebCore/webaudio/AudioNodeInput.cpp.
1389         * Modules/webaudio/AudioNodeInput.h: Copied from Source/WebCore/webaudio/AudioNodeInput.h.
1390         * Modules/webaudio/AudioNodeOutput.cpp: Copied from Source/WebCore/webaudio/AudioNodeOutput.cpp.
1391         * Modules/webaudio/AudioNodeOutput.h: Copied from Source/WebCore/webaudio/AudioNodeOutput.h.
1392         * Modules/webaudio/AudioPannerNode.cpp: Copied from Source/WebCore/webaudio/AudioPannerNode.cpp.
1393         * Modules/webaudio/AudioPannerNode.h: Copied from Source/WebCore/webaudio/AudioPannerNode.h.
1394         * Modules/webaudio/AudioPannerNode.idl: Copied from Source/WebCore/webaudio/AudioPannerNode.idl.
1395         * Modules/webaudio/AudioParam.cpp: Copied from Source/WebCore/webaudio/AudioParam.cpp.
1396         * Modules/webaudio/AudioParam.h: Copied from Source/WebCore/webaudio/AudioParam.h.
1397         * Modules/webaudio/AudioParam.idl: Copied from Source/WebCore/webaudio/AudioParam.idl.
1398         * Modules/webaudio/AudioParamTimeline.cpp: Copied from Source/WebCore/webaudio/AudioParamTimeline.cpp.
1399         * Modules/webaudio/AudioParamTimeline.h: Copied from Source/WebCore/webaudio/AudioParamTimeline.h.
1400         * Modules/webaudio/AudioProcessingEvent.cpp: Copied from Source/WebCore/webaudio/AudioProcessingEvent.cpp.
1401         * Modules/webaudio/AudioProcessingEvent.h: Copied from Source/WebCore/webaudio/AudioProcessingEvent.h.
1402         * Modules/webaudio/AudioProcessingEvent.idl: Copied from Source/WebCore/webaudio/AudioProcessingEvent.idl.
1403         * Modules/webaudio/AudioSourceNode.h: Copied from Source/WebCore/webaudio/AudioSourceNode.h.
1404         * Modules/webaudio/AudioSourceNode.idl: Copied from Source/WebCore/webaudio/AudioSourceNode.idl.
1405         * Modules/webaudio/BiquadDSPKernel.cpp: Copied from Source/WebCore/webaudio/BiquadDSPKernel.cpp.
1406         * Modules/webaudio/BiquadDSPKernel.h: Copied from Source/WebCore/webaudio/BiquadDSPKernel.h.
1407         * Modules/webaudio/BiquadFilterNode.cpp: Copied from Source/WebCore/webaudio/BiquadFilterNode.cpp.
1408         * Modules/webaudio/BiquadFilterNode.h: Copied from Source/WebCore/webaudio/BiquadFilterNode.h.
1409         * Modules/webaudio/BiquadFilterNode.idl: Copied from Source/WebCore/webaudio/BiquadFilterNode.idl.
1410         * Modules/webaudio/BiquadProcessor.cpp: Copied from Source/WebCore/webaudio/BiquadProcessor.cpp.
1411         * Modules/webaudio/BiquadProcessor.h: Copied from Source/WebCore/webaudio/BiquadProcessor.h.
1412         * Modules/webaudio/ConvolverNode.cpp: Copied from Source/WebCore/webaudio/ConvolverNode.cpp.
1413         * Modules/webaudio/ConvolverNode.h: Copied from Source/WebCore/webaudio/ConvolverNode.h.
1414         * Modules/webaudio/ConvolverNode.idl: Copied from Source/WebCore/webaudio/ConvolverNode.idl.
1415         * Modules/webaudio/DOMWindowWebAudio.idl: Copied from Source/WebCore/webaudio/DOMWindowWebAudio.idl.
1416         * Modules/webaudio/DefaultAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp.
1417         * Modules/webaudio/DefaultAudioDestinationNode.h: Copied from Source/WebCore/webaudio/DefaultAudioDestinationNode.h.
1418         * Modules/webaudio/DelayDSPKernel.cpp: Copied from Source/WebCore/webaudio/DelayDSPKernel.cpp.
1419         * Modules/webaudio/DelayDSPKernel.h: Copied from Source/WebCore/webaudio/DelayDSPKernel.h.
1420         * Modules/webaudio/DelayNode.cpp: Copied from Source/WebCore/webaudio/DelayNode.cpp.
1421         * Modules/webaudio/DelayNode.h: Copied from Source/WebCore/webaudio/DelayNode.h.
1422         * Modules/webaudio/DelayNode.idl: Copied from Source/WebCore/webaudio/DelayNode.idl.
1423         * Modules/webaudio/DelayProcessor.cpp: Copied from Source/WebCore/webaudio/DelayProcessor.cpp.
1424         * Modules/webaudio/DelayProcessor.h: Copied from Source/WebCore/webaudio/DelayProcessor.h.
1425         * Modules/webaudio/DynamicsCompressorNode.cpp: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.cpp.
1426         * Modules/webaudio/DynamicsCompressorNode.h: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.h.
1427         * Modules/webaudio/DynamicsCompressorNode.idl: Copied from Source/WebCore/webaudio/DynamicsCompressorNode.idl.
1428         * Modules/webaudio/HighPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/HighPass2FilterNode.cpp.
1429         * Modules/webaudio/HighPass2FilterNode.h: Copied from Source/WebCore/webaudio/HighPass2FilterNode.h.
1430         * Modules/webaudio/HighPass2FilterNode.idl: Copied from Source/WebCore/webaudio/HighPass2FilterNode.idl.
1431         * Modules/webaudio/JavaScriptAudioNode.cpp: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.cpp.
1432         * Modules/webaudio/JavaScriptAudioNode.h: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.h.
1433         * Modules/webaudio/JavaScriptAudioNode.idl: Copied from Source/WebCore/webaudio/JavaScriptAudioNode.idl.
1434         * Modules/webaudio/LowPass2FilterNode.cpp: Copied from Source/WebCore/webaudio/LowPass2FilterNode.cpp.
1435         * Modules/webaudio/LowPass2FilterNode.h: Copied from Source/WebCore/webaudio/LowPass2FilterNode.h.
1436         * Modules/webaudio/LowPass2FilterNode.idl: Copied from Source/WebCore/webaudio/LowPass2FilterNode.idl.
1437         * Modules/webaudio/MediaElementAudioSourceNode.cpp: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.cpp.
1438         * Modules/webaudio/MediaElementAudioSourceNode.h: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.h.
1439         * Modules/webaudio/MediaElementAudioSourceNode.idl: Copied from Source/WebCore/webaudio/MediaElementAudioSourceNode.idl.
1440         * Modules/webaudio/OfflineAudioCompletionEvent.cpp: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.cpp.
1441         * Modules/webaudio/OfflineAudioCompletionEvent.h: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.h.
1442         * Modules/webaudio/OfflineAudioCompletionEvent.idl: Copied from Source/WebCore/webaudio/OfflineAudioCompletionEvent.idl.
1443         * Modules/webaudio/OfflineAudioDestinationNode.cpp: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp.
1444         * Modules/webaudio/OfflineAudioDestinationNode.h: Copied from Source/WebCore/webaudio/OfflineAudioDestinationNode.h.
1445         * Modules/webaudio/RealtimeAnalyser.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyser.cpp.
1446         * Modules/webaudio/RealtimeAnalyser.h: Copied from Source/WebCore/webaudio/RealtimeAnalyser.h.
1447         * Modules/webaudio/RealtimeAnalyserNode.cpp: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.cpp.
1448         * Modules/webaudio/RealtimeAnalyserNode.h: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.h.
1449         * Modules/webaudio/RealtimeAnalyserNode.idl: Copied from Source/WebCore/webaudio/RealtimeAnalyserNode.idl.
1450         * Modules/webaudio/WaveShaperDSPKernel.cpp: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.cpp.
1451         * Modules/webaudio/WaveShaperDSPKernel.h: Copied from Source/WebCore/webaudio/WaveShaperDSPKernel.h.
1452         * Modules/webaudio/WaveShaperNode.cpp: Copied from Source/WebCore/webaudio/WaveShaperNode.cpp.
1453         * Modules/webaudio/WaveShaperNode.h: Copied from Source/WebCore/webaudio/WaveShaperNode.h.
1454         * Modules/webaudio/WaveShaperNode.idl: Copied from Source/WebCore/webaudio/WaveShaperNode.idl.
1455         * Modules/webaudio/WaveShaperProcessor.cpp: Copied from Source/WebCore/webaudio/WaveShaperProcessor.cpp.
1456         * Modules/webaudio/WaveShaperProcessor.h: Copied from Source/WebCore/webaudio/WaveShaperProcessor.h.
1457         * WebCore.gyp/WebCore.gyp:
1458         * WebCore.gypi:
1459         * WebCore.pri:
1460         * WebCore.xcodeproj/project.pbxproj:
1461         * webaudio/AsyncAudioDecoder.cpp: Removed.
1462         * webaudio/AsyncAudioDecoder.h: Removed.
1463         * webaudio/AudioBasicProcessorNode.cpp: Removed.
1464         * webaudio/AudioBasicProcessorNode.h: Removed.
1465         * webaudio/AudioBuffer.cpp: Removed.
1466         * webaudio/AudioBuffer.h: Removed.
1467         * webaudio/AudioBuffer.idl: Removed.
1468         * webaudio/AudioBufferCallback.h: Removed.
1469         * webaudio/AudioBufferCallback.idl: Removed.
1470         * webaudio/AudioBufferSourceNode.cpp: Removed.
1471         * webaudio/AudioBufferSourceNode.h: Removed.
1472         * webaudio/AudioBufferSourceNode.idl: Removed.
1473         * webaudio/AudioChannelMerger.cpp: Removed.
1474         * webaudio/AudioChannelMerger.h: Removed.
1475         * webaudio/AudioChannelMerger.idl: Removed.
1476         * webaudio/AudioChannelSplitter.cpp: Removed.
1477         * webaudio/AudioChannelSplitter.h: Removed.
1478         * webaudio/AudioChannelSplitter.idl: Removed.
1479         * webaudio/AudioContext.cpp: Removed.
1480         * webaudio/AudioContext.h: Removed.
1481         * webaudio/AudioContext.idl: Removed.
1482         * webaudio/AudioDestinationNode.cpp: Removed.
1483         * webaudio/AudioDestinationNode.h: Removed.
1484         * webaudio/AudioDestinationNode.idl: Removed.
1485         * webaudio/AudioGain.h: Removed.
1486         * webaudio/AudioGain.idl: Removed.
1487         * webaudio/AudioGainNode.cpp: Removed.
1488         * webaudio/AudioGainNode.h: Removed.
1489         * webaudio/AudioGainNode.idl: Removed.
1490         * webaudio/AudioListener.cpp: Removed.
1491         * webaudio/AudioListener.h: Removed.
1492         * webaudio/AudioListener.idl: Removed.
1493         * webaudio/AudioNode.cpp: Removed.
1494         * webaudio/AudioNode.h: Removed.
1495         * webaudio/AudioNode.idl: Removed.
1496         * webaudio/AudioNodeInput.cpp: Removed.
1497         * webaudio/AudioNodeInput.h: Removed.
1498         * webaudio/AudioNodeOutput.cpp: Removed.
1499         * webaudio/AudioNodeOutput.h: Removed.
1500         * webaudio/AudioPannerNode.cpp: Removed.
1501         * webaudio/AudioPannerNode.h: Removed.
1502         * webaudio/AudioPannerNode.idl: Removed.
1503         * webaudio/AudioParam.cpp: Removed.
1504         * webaudio/AudioParam.h: Removed.
1505         * webaudio/AudioParam.idl: Removed.
1506         * webaudio/AudioParamTimeline.cpp: Removed.
1507         * webaudio/AudioParamTimeline.h: Removed.
1508         * webaudio/AudioProcessingEvent.cpp: Removed.
1509         * webaudio/AudioProcessingEvent.h: Removed.
1510         * webaudio/AudioProcessingEvent.idl: Removed.
1511         * webaudio/AudioSourceNode.h: Removed.
1512         * webaudio/AudioSourceNode.idl: Removed.
1513         * webaudio/BiquadDSPKernel.cpp: Removed.
1514         * webaudio/BiquadDSPKernel.h: Removed.
1515         * webaudio/BiquadFilterNode.cpp: Removed.
1516         * webaudio/BiquadFilterNode.h: Removed.
1517         * webaudio/BiquadFilterNode.idl: Removed.
1518         * webaudio/BiquadProcessor.cpp: Removed.
1519         * webaudio/BiquadProcessor.h: Removed.
1520         * webaudio/ConvolverNode.cpp: Removed.
1521         * webaudio/ConvolverNode.h: Removed.
1522         * webaudio/ConvolverNode.idl: Removed.
1523         * webaudio/DOMWindowWebAudio.idl: Removed.
1524         * webaudio/DefaultAudioDestinationNode.cpp: Removed.
1525         * webaudio/DefaultAudioDestinationNode.h: Removed.
1526         * webaudio/DelayDSPKernel.cpp: Removed.
1527         * webaudio/DelayDSPKernel.h: Removed.
1528         * webaudio/DelayNode.cpp: Removed.
1529         * webaudio/DelayNode.h: Removed.
1530         * webaudio/DelayNode.idl: Removed.
1531         * webaudio/DelayProcessor.cpp: Removed.
1532         * webaudio/DelayProcessor.h: Removed.
1533         * webaudio/DynamicsCompressorNode.cpp: Removed.
1534         * webaudio/DynamicsCompressorNode.h: Removed.
1535         * webaudio/DynamicsCompressorNode.idl: Removed.
1536         * webaudio/HighPass2FilterNode.cpp: Removed.
1537         * webaudio/HighPass2FilterNode.h: Removed.
1538         * webaudio/HighPass2FilterNode.idl: Removed.
1539         * webaudio/JavaScriptAudioNode.cpp: Removed.
1540         * webaudio/JavaScriptAudioNode.h: Removed.
1541         * webaudio/JavaScriptAudioNode.idl: Removed.
1542         * webaudio/LowPass2FilterNode.cpp: Removed.
1543         * webaudio/LowPass2FilterNode.h: Removed.
1544         * webaudio/LowPass2FilterNode.idl: Removed.
1545         * webaudio/MediaElementAudioSourceNode.cpp: Removed.
1546         * webaudio/MediaElementAudioSourceNode.h: Removed.
1547         * webaudio/MediaElementAudioSourceNode.idl: Removed.
1548         * webaudio/OfflineAudioCompletionEvent.cpp: Removed.
1549         * webaudio/OfflineAudioCompletionEvent.h: Removed.
1550         * webaudio/OfflineAudioCompletionEvent.idl: Removed.
1551         * webaudio/OfflineAudioDestinationNode.cpp: Removed.
1552         * webaudio/OfflineAudioDestinationNode.h: Removed.
1553         * webaudio/RealtimeAnalyser.cpp: Removed.
1554         * webaudio/RealtimeAnalyser.h: Removed.
1555         * webaudio/RealtimeAnalyserNode.cpp: Removed.
1556         * webaudio/RealtimeAnalyserNode.h: Removed.
1557         * webaudio/RealtimeAnalyserNode.idl: Removed.
1558         * webaudio/WaveShaperDSPKernel.cpp: Removed.
1559         * webaudio/WaveShaperDSPKernel.h: Removed.
1560         * webaudio/WaveShaperNode.cpp: Removed.
1561         * webaudio/WaveShaperNode.h: Removed.
1562         * webaudio/WaveShaperNode.idl: Removed.
1563         * webaudio/WaveShaperProcessor.cpp: Removed.
1564         * webaudio/WaveShaperProcessor.h: Removed.
1565
1566 2012-03-20  Anders Carlsson  <andersca@apple.com>
1567
1568         Add a per-ScrollableArea tile cache base class
1569         https://bugs.webkit.org/show_bug.cgi?id=81694
1570
1571         Reviewed by Sam Weinig.
1572
1573         Add an abstract base class, TiledBacking, that can be used to inform tile caches about changed
1574         state in scrollable areas (such as the currently visible rect, whether the page is active or not, etc).
1575
1576         Make TileCache inherit from TiledBacking and port updating the visible rect over to this new mechanism.
1577
1578         * WebCore.xcodeproj/project.pbxproj:
1579         * page/FrameView.cpp:
1580         (WebCore::FrameView::tiledBacking):
1581         (WebCore):
1582         * page/FrameView.h:
1583         (FrameView):
1584         * platform/ScrollableArea.h:
1585         (WebCore):
1586         (ScrollableArea):
1587         (WebCore::ScrollableArea::tiledBacking):
1588         * platform/graphics/GraphicsLayer.h:
1589         (WebCore):
1590         (WebCore::GraphicsLayer::tiledBacking):
1591         * platform/graphics/TiledBacking.h: Added.
1592         (WebCore):
1593         (TiledBacking):
1594         (WebCore::TiledBacking::~TiledBacking):
1595         * platform/graphics/ca/GraphicsLayerCA.cpp:
1596         (WebCore::GraphicsLayerCA::tiledBacking):
1597         * platform/graphics/ca/GraphicsLayerCA.h:
1598         (GraphicsLayerCA):
1599         * platform/graphics/ca/PlatformCALayer.h:
1600         (PlatformCALayer):
1601         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1602         (PlatformCALayer::tiledBacking):
1603         * platform/graphics/ca/mac/TileCache.h:
1604         (TileCache):
1605         * platform/graphics/ca/mac/WebTileCacheLayer.h:
1606         (WebCore):
1607         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1608         (-[WebTileCacheLayer WebCore::]):
1609         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1610         (PlatformCALayer::tiledBacking):
1611         * rendering/RenderLayerCompositor.cpp:
1612         (WebCore::RenderLayerCompositor::frameViewDidScroll):
1613
1614 2012-03-20  Xiaomei Ji  <xji@chromium.org>
1615
1616         visual word movement: crashes on CSS generated content.
1617         https://bugs.webkit.org/show_bug.cgi?id=81581
1618
1619         Reviewed by Ryosuke Niwa.
1620
1621         Check for null pointer when referencing box->renderer()->node() in previousRootInlineBox and nextRootInlineBox.
1622
1623         Test: editing/selection/move-by-word-visually-crash-test-css-generated-content.html
1624
1625         * editing/visible_units.cpp:
1626         (WebCore::previousRootInlineBox):
1627         (WebCore::nextRootInlineBox):
1628
1629 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
1630
1631         Use CSSPrimitiveValue::convertToLength() to handle CSSPropertyWebkitBoxReflect and in createGridTrackBreadth.
1632         https://bugs.webkit.org/show_bug.cgi?id=81633
1633
1634         Reviewed by Andreas Kling.
1635
1636         No new tests / refactoring only.
1637
1638         * css/CSSStyleSelector.cpp:
1639         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1640
1641 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1642
1643         Unreviewed, rolling out r111442.
1644         http://trac.webkit.org/changeset/111442
1645         https://bugs.webkit.org/show_bug.cgi?id=81711
1646
1647         Causes crashes and image mismatches in canvas tests (Requested
1648         by leviw on #webkit).
1649
1650         * html/HTMLCanvasElement.cpp:
1651         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
1652         (WebCore::HTMLCanvasElement::reset):
1653         (WebCore::HTMLCanvasElement::createImageBuffer):
1654         (WebCore::HTMLCanvasElement::clearCopiedImage):
1655         * html/HTMLCanvasElement.h:
1656         (HTMLCanvasElement):
1657         * html/canvas/CanvasRenderingContext2D.cpp:
1658         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
1659         (WebCore::CanvasRenderingContext2D::unwindStateStack):
1660         (WebCore::CanvasRenderingContext2D::reset):
1661
1662 2012-03-20  Adrienne Walker  <enne@google.com>
1663
1664         RenderLayerCompositor doesn't properly clip graphics layer sizes
1665         https://bugs.webkit.org/show_bug.cgi?id=80372
1666
1667         Reviewed by Simon Fraser.
1668
1669         To find the bounds for a composited layer, calculateCompositedBounds
1670         iterates through all non-composited child layers using z-order and
1671         normal flow lists. This does not preserve clipping from ancestor
1672         layers, because a clipping ancestor layer can end up as a sibling to
1673         its clipped descendent because it is not a stacking context.
1674
1675         Fix by explicitly checking cached clip roots.
1676
1677         Test: compositing/clip-child-by-non-stacking-ancestor.html
1678
1679         * rendering/RenderLayer.cpp:
1680         (WebCore::RenderLayer::localClipRect):
1681         (WebCore):
1682         * rendering/RenderLayer.h:
1683         (RenderLayer):
1684         * rendering/RenderLayerCompositor.cpp:
1685         (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
1686         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1687
1688 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1689
1690         Unreviewed, rolling out r111445 and r111446.
1691         http://trac.webkit.org/changeset/111445
1692         http://trac.webkit.org/changeset/111446
1693         https://bugs.webkit.org/show_bug.cgi?id=81708
1694
1695         It broke Qt and GTK build intentionally (Requested by Ossy on
1696         #webkit).
1697
1698         * WebCore.exp.in:
1699         * dom/Document.cpp:
1700         (WebCore::Document::initSecurityContext):
1701         * notifications/Notification.cpp:
1702         (WebCore::Notification::Notification):
1703         * notifications/NotificationCenter.cpp:
1704         (WebCore::NotificationCenter::checkPermission):
1705         (WebCore::NotificationCenter::requestPermission):
1706         * notifications/NotificationCenter.h:
1707         (NotificationCenter):
1708         * page/SecurityOrigin.cpp:
1709         (WebCore::SecurityOrigin::toString):
1710         * page/SecurityOrigin.h:
1711         (SecurityOrigin):
1712
1713 2012-03-20  Adam Klein  <adamk@chromium.org>
1714
1715         Refactor ContainerNode::replaceChild to match other mutation methods and share code
1716         https://bugs.webkit.org/show_bug.cgi?id=81579
1717
1718         Reviewed by Ojan Vafai.
1719
1720         Originally landed as r111310, this fixes a bug in replaceChild
1721         introduced when switching to the insert-before logic.
1722
1723         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
1724         to handle insertion of DocumentFragments more cleanly.
1725
1726         No new tests, no change in behavior.
1727
1728         * dom/ContainerNode.cpp:
1729         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
1730         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
1731         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
1732         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
1733
1734 2012-03-20  Jon Lee  <jonlee@apple.com>
1735
1736         Restrict access to notifications for unique origins and file URLs with no local file access
1737         https://bugs.webkit.org/show_bug.cgi?id=79704
1738         <rdar://problem/10912430>
1739
1740         Reviewed by Adam Barth.
1741
1742         Before checking or requesting permissions, we look at whether we can show notifications based on
1743         the security context. If not, we short circuit and do not forward the request to the client.
1744
1745         * notifications/Notification.cpp:
1746         (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly
1747         different logic for checking permissions than when checking permissions through the
1748         notification center.
1749         * notifications/NotificationCenter.cpp:
1750         (WebCore::NotificationCenter::checkPermission): Check to see if the origin can show notifications.
1751         (WebCore::NotificationCenter::requestPermission): If we know whether an origin can show notifications,
1752         we asynchronously call the callback with that decision. Otherwise we ask the client.
1753
1754         Add new variable in the notification center to keep track of pending callbacks when we short-circuit
1755         requestPermission().
1756         * notifications/NotificationCenter.h:
1757         (NotificationRequestCallback): Add new private class encapsulating the callback.
1758         * notifications/NotificationCenter.cpp:
1759         (WebCore::NotificationCenter::requestTimedOut): Remove the request from the set of pending callbacks.
1760         (WebCore::NotificationCenter::NotificationRequest::createAndStartTimer): Because this is used when we already
1761         know the decision, and are not asking the client to decide, we can immediately trigger a one-shot timer
1762         to invoke the callback.
1763         (WebCore::NotificationCenter::NotificationRequest::NotificationRequest):
1764         (WebCore::NotificationCenter::NotificationRequest::startTimer):
1765         (WebCore::NotificationCenter::NotificationRequest::timerFired): Invoke the callback and tell the notification
1766         center.
1767         * page/SecurityOrigin.h: Add new toRawString() method to return the string representation of the origin,
1768         regardless of any restrictions that might otherwise cause toString() to return "null".
1769         * page/SecurityOrigin.cpp:
1770         (WebCore::SecurityOrigin::canShowNotifications): Added to return a tri-state regarding whether we know
1771         the origin can show notifications. If the origin is unique, we never let it show. If the origin has
1772         universal access, we always let it show. Otherwise the client should be asked.
1773         (WebCore::SecurityOrigin::toString): Refactor to use toRawString().
1774         (WebCore::SecurityOrigin::toRawString):
1775
1776         Added FIXME's regarding the naming of enforceFilePathSeparation().
1777         * dom/Document.cpp:
1778         (WebCore::Document::initSecurityContext): Also, tab reformatting.
1779
1780         * WebCore.exp.in: Export toRawString().
1781
1782 2012-03-20  Andreas Kling  <kling@webkit.org>
1783
1784         Remove unused CSSPrimitiveValue constructors.
1785         <http://webkit.org/b/81695>
1786
1787         Reviewed by Antti Koivisto.
1788
1789         Kill off CSSPrimitiveValue constructors that aren't used anywhere.
1790
1791         * css/CSSPrimitiveValue.cpp:
1792         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1793         * css/CSSPrimitiveValue.h:
1794         (CSSPrimitiveValueBase):
1795         (WebCore::CSSPrimitiveValueBase::CSSPrimitiveValueBase):
1796         (CSSPrimitiveValue):
1797         * css/CSSPrimitiveValueMappings.h:
1798
1799 2012-03-20  Sami Kyostila  <skyostil@chromium.org>
1800
1801         Reuse buffer allocation if canvas size does not change
1802         https://bugs.webkit.org/show_bug.cgi?id=80871
1803
1804         Reviewed by Stephen White.
1805
1806         If the user changes the width or height attributes of a canvas element,
1807         the contents of the canvas should be cleared and the context state
1808         should be reset. This has become a common idiom to clear the canvas
1809         "efficiently" at the start of a frame.
1810
1811         Previously, this code path triggered a full reallocation of the image
1812         buffer backing the canvas, leading to reduced performance. This patch
1813         implements an optimization where we reuse the previous image buffer
1814         allocation if the size of the canvas did not change. Also, instead of
1815         clearing the canvas every time its dimensions are touched, we only clear
1816         if anything has been drawn into the canvas since it was previously
1817         cleared.
1818
1819         Note that for now this optimization only applies for 2D canvases,
1820         since it is not entirely clear how touching the dimensions of a WebGL
1821         canvas should work.
1822
1823         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
1824               existing layout tests for canvas resetting.
1825
1826         * html/HTMLCanvasElement.cpp:
1827         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
1828         (WebCore::HTMLCanvasElement::reset):
1829         (WebCore::HTMLCanvasElement::createImageBuffer):
1830         (WebCore::HTMLCanvasElement::clearImageBuffer):
1831         (WebCore):
1832         (WebCore::HTMLCanvasElement::clearCopiedImage):
1833         * html/HTMLCanvasElement.h:
1834         (HTMLCanvasElement):
1835         * html/canvas/CanvasRenderingContext2D.cpp:
1836         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Save the
1837         initial graphics context state so we can restore it without creating a
1838         new context.
1839         (WebCore::CanvasRenderingContext2D::unwindStateStack):
1840         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
1841         compositor when the context is reset, because clearing the image buffer
1842         does the same thing. We can also skip the notification if we did not
1843         have an image buffer at the time of the reset, because the reset will
1844         not have any visual impact in this case. Finally, if the canvas size
1845         did change, the notification is also unnecessary because of the call
1846         to RenderObject::repaint() from HTMLCanvasElement::reset().
1847
1848 2012-03-20  Dana Jansens  <danakj@chromium.org>
1849
1850         [chromium] Allow us to disable overdraw metrics when tracing is off
1851         https://bugs.webkit.org/show_bug.cgi?id=81431
1852
1853         Reviewed by Adrienne Walker.
1854
1855         This change allows us to disable overdraw metrics conditionally in the
1856         future with a one-line change in each LayerTreeHost class.
1857
1858         Unit test: CCQuadCullerTest.verifyWithoutMetrics
1859
1860         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1861         (WebCore::CCLayerTreeHost::paintLayerContents):
1862         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1863         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1864         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1865         (WebCore::::CCOcclusionTrackerBase):
1866         (WebCore):
1867         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1868         (CCOcclusionTrackerBase):
1869         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
1870         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
1871         (WebCore::CCOverdrawMetrics::didCull):
1872         (WebCore::CCOverdrawMetrics::didDraw):
1873         (WebCore::CCOverdrawMetrics::recordMetrics):
1874         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
1875         (WebCore::CCOverdrawMetrics::create):
1876         (CCOverdrawMetrics):
1877
1878 2012-03-20  Robert Hogan  <robert@webkit.org>
1879
1880         Use-after-free of continuation in RenderBlock::paintContinuationOutlines()
1881         https://bugs.webkit.org/show_bug.cgi?id=81276
1882
1883         Reviewed by David Hyatt.
1884
1885         Test: fast/css/relative-positioned-block-crash.html
1886
1887         https://trac.webkit.org/changeset/108185/ allowed anonymous blocks to get their own layer (when they're
1888         relatively positioned). This broke the dependency in addContinuationWithOutline() on the owner of the continuation
1889         table and the renderer getting added to it always being in the same layer. When they're not in the same layer
1890         there's no guarantee that the owner of the continuation table will get painted again and so avoid any stale pointers
1891         in its continuation table should any of the renderers in there get destroyed.
1892
1893         Fix this for now by only adding renderers to the containing block's continuation table if we don't have our own layer.
1894         This fix causes fast/inline/continuation-outlines-with-layers.html to regress as it uses blocks inside relatively positioned
1895         inlines, so skip it on all platforms pending a medium-term fix.
1896
1897         * rendering/RenderBlock.cpp:
1898         (WebCore::RenderBlock::paintObject):
1899
1900 2012-03-20  Adele Peterson  <adele@apple.com>
1901
1902         "Attempt to insert nil value " exception when calling attributed string APIs on content with a custom font
1903         https://bugs.webkit.org/show_bug.cgi?id=81630
1904         <rdar://problem/10650660> 
1905
1906         Reviewed by Alexey Proskuryakov. 
1907
1908         Test: TestWebKitAPI/Tests/mac/AttributedString.mm 
1909
1910         If content is using a custom font, then the platform font will be nil and needs to be nil checked.
1911
1912         * platform/mac/HTMLConverter.mm: (+[WebHTMLConverter editingAttributedStringFromRange:]):
1913
1914 2012-03-20  Julien Chaffraix  <jchaffraix@webkit.org>
1915
1916         Make distributeExtraLogicalHeightToRows return the consumed logical height
1917         https://bugs.webkit.org/show_bug.cgi?id=81678
1918
1919         Reviewed by Tony Chang.
1920
1921         Small refactoring, no change in behavior.
1922
1923         * rendering/RenderTable.cpp:
1924         (WebCore::RenderTable::distributeExtraLogicalHeight):
1925         Remove the consumed logical height from the available height.
1926
1927         * rendering/RenderTableSection.cpp:
1928         (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
1929         (WebCore::RenderTableSection::distributeExtraLogicalHeightToAutoRows):
1930         (WebCore::RenderTableSection::distributeRemainingExtraLogicalHeight):
1931         Changed those method to not return anything but remove from the available width.
1932
1933         (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows):
1934         Return the consumed logical height.
1935
1936         * rendering/RenderTableSection.h:
1937         Updated the previous distribute functions signature and the comment about
1938         the returned value from distributeExtraLogicalHeightToRows.
1939
1940 2012-03-20  Jacky Jiang  <zhajiang@rim.com>
1941
1942         [BlackBerry] Dijit crash WebCore::CookieManager::getRawCookies
1943         https://bugs.webkit.org/show_bug.cgi?id=81686
1944
1945         Reviewed by Rob Buis.
1946
1947         HTML plugin element with an empty src caused an ASSERT failure on debug
1948         build and a crash on release build.
1949         When getting cookie, url can be null, so we need to check for it to
1950         avoid the crash.
1951
1952         No new tests as this is covered by
1953         LayoutTests/fast/loader/empty-embed-src-attribute.html.
1954
1955         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1956         (WebCore::ResourceRequest::initializePlatformRequest):
1957
1958 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
1959
1960         Web Inspector: Tabbed pane drop down should be sorted.
1961         https://bugs.webkit.org/show_bug.cgi?id=81680
1962
1963         Reviewed by Pavel Feldman.
1964
1965         * inspector/front-end/TabbedPane.js:
1966         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex.compareFunction):
1967         (WebInspector.TabbedPane.prototype._populateDropDownFromIndex):
1968
1969 2012-03-20  Vsevolod Vlasov  <vsevik@chromium.org>
1970
1971         Web Inspector: Open resource dialog scripts list should be sorted.
1972         https://bugs.webkit.org/show_bug.cgi?id=81682
1973
1974         Reviewed by Pavel Feldman.
1975
1976         * inspector/front-end/FilteredItemSelectionDialog.js:
1977         (WebInspector.OpenResourceDialog.compareFunction):
1978         (WebInspector.OpenResourceDialog):
1979
1980 2012-03-20  Dana Jansens  <danakj@chromium.org>
1981
1982         [chromium] Use opaque contents for paint culling
1983         https://bugs.webkit.org/show_bug.cgi?id=81676
1984
1985         Reviewed by Adrienne Walker.
1986
1987         UnitTest: CCLayerTreeHostTestContentLayerOcclusion
1988
1989         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1990         (WebCore::CCLayerTreeHost::paintLayerContents):
1991
1992 2012-03-20  Dan Bernstein  <mitz@apple.com>
1993
1994         Build fix after r111419.
1995
1996         * dom/WebKitNamedFlow.cpp:
1997         * dom/WebKitNamedFlow.h:
1998
1999 2012-03-20  Dan Bernstein  <mitz@apple.com>
2000
2001         REGRESSION (r111229): css1/basic/inheritance.html is failing
2002         https://bugs.webkit.org/show_bug.cgi?id=81684
2003
2004         Reverted r111229.
2005
2006         Rubber-stamped by Dave Hyatt.
2007
2008         * dom/Document.cpp:
2009         (WebCore::Document::webkitGetFlowByName):
2010         * dom/Document.h:
2011         (Document):
2012         * dom/Element.cpp:
2013         (WebCore::Element::detach):
2014         * dom/NodeRenderingContext.cpp:
2015         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2016         * dom/WebKitNamedFlow.cpp:
2017         (WebCore):
2018         * dom/WebKitNamedFlow.h:
2019         (WebCore):
2020         (WebKitNamedFlow):
2021         * dom/WebKitNamedFlow.idl:
2022
2023 2012-03-20  Vineet Chaudhary  <rgf748@motorola.com>
2024
2025         https://bugs.webkit.org/show_bug.cgi?id=80696
2026         Remove custom bindings for attribute type Array.
2027
2028         Reviewed by Kentaro Hara.
2029
2030         No new tests.
2031
2032         * bindings/js/JSConsoleCustom.cpp: Removed custom function.
2033         (WebCore):
2034         * bindings/js/JSDOMBinding.h: Added template jsArray and toNativeArray.
2035         (WebCore):
2036         (WebCore::jsArray):
2037         (WebCore::toNativeArray):
2038         * bindings/scripts/CodeGenerator.pm: Modified codegenerators to generate appropriate code.
2039         (GetArrayType): Added GetArrayType to get return type of attribute interface.
2040         * bindings/scripts/CodeGeneratorGObject.pm: Modified codegenerators to generate appropriate code.
2041         (SkipAttribute):
2042         * bindings/scripts/CodeGeneratorJS.pm: Modified codegenerators to generate appropriate code.
2043         (AddIncludesForType):
2044         (JSValueToNative):
2045         (NativeToJSValue):
2046         * bindings/scripts/CodeGeneratorV8.pm: Modified codegenerators to generate appropriate code.
2047         (GenerateNormalAttrGetter):
2048         (GenerateNormalAttrSetter):
2049         (JSValueToNative):
2050         (NativeToJSValue):
2051         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated results from running binding tests.
2052         (webkit_dom_test_obj_get_property):
2053         (webkit_dom_test_obj_class_init):
2054         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
2055         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
2056         (WebCore::jsTestObjSequenceAttr):
2057         (WebCore::setJSTestObjSequenceAttr):
2058         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2059         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
2060         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
2061         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
2062         (WebCore::TestObjInternal::methodReturningSequenceCallback):
2063         * bindings/v8/V8Binding.h: Added template v8Array and toNativeArray.
2064         (WebCore):
2065         (WebCore::v8Array):
2066         (WebCore::toNativeArray):
2067         * bindings/v8/custom/V8ConsoleCustom.cpp: Removed custom function.
2068         (WebCore):
2069         * page/Console.idl: Replaced attribute type Array to sequence<SriptProfile> to remove
2070           custom bindings.
2071
2072 2012-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2073
2074         Unreviewed, rolling out r111310.
2075         http://trac.webkit.org/changeset/111310
2076         https://bugs.webkit.org/show_bug.cgi?id=81683
2077
2078         Broke layout test
2079         dom/xhtml/level3/core/nodereplacechild30.xhtml (Requested by
2080         aklein on #webkit).
2081
2082         * dom/ContainerNode.cpp:
2083         (WebCore::ContainerNode::replaceChild):
2084         (WebCore::ContainerNode::appendChild):
2085         (WebCore::ContainerNode::parserAddChild):
2086
2087 2012-03-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2088
2089         Convert hasSpellingMarker to use Internals interface.
2090         https://bugs.webkit.org/show_bug.cgi?id=81300
2091
2092         Reviewed by Ryosuke Niwa.
2093
2094         Remove hasSpellingMarker functions, because it is able to work in the
2095         cross-port way through the Internals interface.
2096
2097         No new tests, since we are improving here the infra-structure
2098         for testing a specific method.
2099
2100         * testing/Internals.cpp:
2101         (WebCore::Internals::hasSpellingMarker):
2102         (WebCore):
2103         * testing/Internals.h:
2104         (Internals):
2105         * testing/Internals.idl:
2106
2107 2012-03-20  Dan Bernstein  <mitz@apple.com>
2108
2109         Build fix.
2110
2111         * history/PageCache.cpp: Fixed an unused function warning introduced in r111391.
2112
2113 2012-03-20  Konrad Piascik  <kpiascik@rim.com>
2114
2115         (r110063) m_mouseDownMayStartDrag is used without being behind the ENABLE(DRAG_SUPPORT) macro
2116         https://bugs.webkit.org/show_bug.cgi?id=81666
2117
2118         Reviewed by Rob Buis.
2119
2120         Compiled with feature disabled and built.
2121
2122         * page/EventHandler.cpp:
2123         (WebCore::EventHandler::selectCursor):
2124
2125 2012-03-20  W. James MacLean  <wjmaclean@chromium.org>
2126
2127         [chromium] Tune fling physics curve. [Not for review yet]
2128         https://bugs.webkit.org/show_bug.cgi?id=81398
2129
2130         Reviewed by James Robinson.
2131
2132         Existing tests updated.
2133
2134         Tune physics of curve for better feel.
2135
2136         * platform/TouchFlingPlatformGestureCurve.cpp:
2137         (WebCore::TouchFlingPlatformGestureCurve::apply):
2138
2139 2012-03-20  Alexis Menard  <alexis.menard@openbossa.org>
2140
2141         Implement a fast path when setting CSS properties with keywords from JS.
2142         https://bugs.webkit.org/show_bug.cgi?id=80874
2143
2144         Reviewed by Antti Koivisto.
2145
2146         The idea is to avoid the creation of the CSSParser instance and to run the parser on
2147         a string we know it should be a keyword. When JS calls parseValue we try to check if we can
2148         use the fast path and if the keyword is accepted then we just add it to the declaration directly.
2149         For the sake of maintenance the parseValue function used by CSSGrammar.y is sharing some code with
2150         the fast path (keyword matching mostly).
2151
2152         This patch improves this use case by 20%. Setting keyword properties from JS is used a lot in
2153         Google Maps for example (when zooming or panning).
2154
2155         No new tests : it's a performance improvement, there shouldn't be any behavior change.
2156
2157         * css/CSSParser.cpp:
2158         (WebCore):
2159         (WebCore::isValidKeywordPropertyAndValue):
2160         (WebCore::isKeywordPropertyID):
2161         (WebCore::parseKeywordValue):
2162         (WebCore::CSSParser::parseValue):
2163
2164 2012-03-20  Ian Vollick  <vollick@chromium.org>
2165
2166         [chromium] Infrastructure to allow animating layers to be only partially updated
2167         https://bugs.webkit.org/show_bug.cgi?id=81106
2168
2169         Reviewed by James Robinson
2170
2171         Merged the controller tests in CCLayerAnimationControllerTest
2172
2173         * WebCore.gypi:
2174         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2175         * platform/graphics/chromium/GraphicsLayerChromium.h:
2176         (GraphicsLayerChromium):
2177         * platform/graphics/chromium/LayerChromium.cpp:
2178         (WebCore::LayerChromium::LayerChromium):
2179         (WebCore::LayerChromium::pushPropertiesTo):
2180         (WebCore::LayerChromium::setOpacityFromAnimation):
2181         (WebCore):
2182         (WebCore::LayerChromium::setTransformFromAnimation):
2183         (WebCore::LayerChromium::addAnimation):
2184         (WebCore::LayerChromium::pauseAnimation):
2185         (WebCore::LayerChromium::removeAnimation):
2186         (WebCore::LayerChromium::suspendAnimations):
2187         (WebCore::LayerChromium::resumeAnimations):
2188         (WebCore::LayerChromium::setLayerAnimationController):
2189         (WebCore::LayerChromium::hasActiveAnimation):
2190         (WebCore::LayerChromium::setAnimationEvent):
2191         * platform/graphics/chromium/LayerChromium.h:
2192         (WebCore):
2193         (LayerChromium):
2194         (WebCore::LayerChromium::id):
2195         (WebCore::LayerChromium::opacity):
2196         (WebCore::LayerChromium::transform):
2197         (WebCore::LayerChromium::bounds):
2198         * platform/graphics/chromium/cc/CCActiveAnimation.h:
2199         (CCActiveAnimation):
2200         * platform/graphics/chromium/cc/CCAnimationEvents.cpp:
2201         (WebCore::CCAnimationEvent::CCAnimationEvent):
2202         (WebCore::CCAnimationEvent::toFloatAnimationFinishedEvent):
2203         (WebCore::CCAnimationEvent::toTransformAnimationFinishedEvent):
2204         (WebCore::CCAnimationStartedEvent::create):
2205         (WebCore):
2206         (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
2207         (WebCore::CCFloatAnimationFinishedEvent::create):
2208         (WebCore::CCFloatAnimationFinishedEvent::CCFloatAnimationFinishedEvent):
2209         (WebCore::CCFloatAnimationFinishedEvent::~CCFloatAnimationFinishedEvent):
2210         (WebCore::CCFloatAnimationFinishedEvent::type):
2211         (WebCore::CCTransformAnimationFinishedEvent::create):
2212         (WebCore::CCTransformAnimationFinishedEvent::CCTransformAnimationFinishedEvent):
2213         (WebCore::CCTransformAnimationFinishedEvent::~CCTransformAnimationFinishedEvent):
2214         (WebCore::CCTransformAnimationFinishedEvent::type):
2215         * platform/graphics/chromium/cc/CCAnimationEvents.h:
2216         (WebCore):
2217         (WebCore::CCAnimationEvent::targetProperty):
2218         (CCAnimationEvent):
2219         (CCAnimationStartedEvent):
2220         (CCFloatAnimationFinishedEvent):
2221         (WebCore::CCFloatAnimationFinishedEvent::finalValue):
2222         (CCTransformAnimationFinishedEvent):
2223         (WebCore::CCTransformAnimationFinishedEvent::finalValue):
2224         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2225         (WebCore::CCLayerAnimationController::CCLayerAnimationController):
2226         (WebCore::CCLayerAnimationController::create):
2227         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
2228         (WebCore::CCLayerAnimationController::animate):
2229         (WebCore):
2230         (WebCore::CCLayerAnimationController::add):
2231         (WebCore::CCLayerAnimationController::getActiveAnimation):
2232         (WebCore::CCLayerAnimationController::hasActiveAnimation):
2233         (WebCore::CCLayerAnimationController::isAnimatingProperty):
2234         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2235         (WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
2236         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
2237         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
2238         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
2239         (WebCore::CCLayerAnimationController::resolveConflicts):
2240         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
2241         (WebCore::CCLayerAnimationController::tickAnimations):
2242         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2243         (WebCore):
2244         (CCLayerAnimationControllerClient):
2245         (WebCore::CCLayerAnimationControllerClient::~CCLayerAnimationControllerClient):
2246         (CCLayerAnimationController):
2247         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: Removed.
2248         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: Removed.
2249         * platform/graphics/chromium/cc/CCLayerAnimationDelegate.h:
2250         (CCLayerAnimationDelegate):
2251         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2252         (WebCore::CCLayerImpl::CCLayerImpl):
2253         (WebCore::CCLayerImpl::setOpacityFromAnimation):
2254         (WebCore):
2255         (WebCore::CCLayerImpl::setTransformFromAnimation):
2256         * platform/graphics/chromium/cc/CCLayerImpl.h:
2257         (CCLayerImpl):
2258         (WebCore::CCLayerImpl::id):
2259         (WebCore::CCLayerImpl::layerAnimationController):
2260         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2261         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2262         (WebCore::CCLayerTreeHost::updateAnimations):
2263         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
2264         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2265         (WebCore::CCLayerTreeHost::animateLayers):
2266         (WebCore):
2267         (WebCore::CCLayerTreeHost::animateLayersRecursive):
2268         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2269         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2270         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2271         (WebCore::CCLayerTreeHostImpl::animateLayersRecursive):
2272         (WebCore::CCLayerTreeHostImpl::animateLayers):
2273         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2274         (CCLayerTreeHostImpl):
2275         * platform/graphics/chromium/cc/CCThreadProxy.h:
2276         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
2277
2278 2012-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
2279
2280         Web Inspector: REGRESSION Detached DOM Nodes are not highlighted
2281         https://bugs.webkit.org/show_bug.cgi?id=81662
2282
2283         Reviewed by Yury Semikhatsky.
2284
2285         * inspector/front-end/HeapSnapshot.js:
2286         (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
2287
2288 2012-03-20  Gavin Peters  <gavinp@chromium.org>
2289
2290         New PageCache histogram for tracking the highest leverage frame reject reasons.
2291         https://bugs.webkit.org/show_bug.cgi?id=81358
2292
2293         Reviewed by Adam Barth.
2294
2295         The current chromium FrameClientImpl always denies page cache; but
2296         that's easily fixable.  This histogram tracks which rejection
2297         causes occur alone with that cause.  I'm particularly interested
2298         in knowing how many more pages would work in the page cache if we
2299         could get plugins in.
2300
2301         * history/PageCache.cpp:
2302         (WebCore::logCanCachePageDecision):
2303
2304 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
2305
2306         Web Inspector: support inline source maps.
2307         https://bugs.webkit.org/show_bug.cgi?id=81248
2308
2309         - support optional map.sourcesContent array with sources content
2310         - support data: url as script sourceMapURL, e.g. "//@ sourceMappingURL=data:application/json;base64,<base64-encoded map>"
2311
2312         Reviewed by Pavel Feldman.
2313
2314         * inspector/front-end/CompilerSourceMapping.js:
2315         (WebInspector.ClosureCompilerSourceMapping):
2316         (WebInspector.ClosureCompilerSourceMapping.prototype.loadSourceCode):
2317         (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
2318         (WebInspector.ClosureCompilerSourceMapping.prototype._canonicalizeURL):
2319
2320 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
2321
2322         Web Inspector: treat Uint* external arrays as arrays in console.
2323         https://bugs.webkit.org/show_bug.cgi?id=81653
2324
2325         Reviewed by Yury Semikhatsky.
2326
2327         * bindings/js/JSInjectedScriptHostCustom.cpp:
2328         (WebCore::JSInjectedScriptHost::type):
2329         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2330         (WebCore::V8InjectedScriptHost::typeCallback):
2331
2332 2012-03-20  Andreas Kling  <kling@webkit.org>
2333
2334         Let CSSImageValue inherit directly from CSSValue.
2335         <http://webkit.org/b/81635>
2336
2337         Reviewed by Antti Koivisto.
2338
2339         This removes the last of the CSSPrimitiveValue subclasses, which will
2340         open up the class to heavier refactoring.
2341
2342         Those CSSImageValues that used to represent the 'none' value are now
2343         simply created as CSSPrimitiveValue identifiers by the parser.
2344
2345         Test: fast/css/image-value-type.html
2346
2347         * css/CSSCursorImageValue.cpp:
2348         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
2349         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2350         (WebCore::CSSCursorImageValue::cachedImage):
2351         * css/CSSImageValue.cpp:
2352         (WebCore::CSSImageValue::CSSImageValue):
2353         (WebCore::CSSImageValue::cachedOrPendingImage):
2354         (WebCore::CSSImageValue::cachedImage):
2355         (WebCore::CSSImageValue::customCssText):
2356         * css/CSSImageValue.h:
2357         (WebCore::CSSImageValue::url):
2358         * css/CSSParser.cpp:
2359         (WebCore::CSSParser::parseValue):
2360         (WebCore::CSSParser::parseFillImage):
2361         (WebCore::CSSParser::parseBorderImage):
2362         * css/CSSStyleApplyProperty.cpp:
2363         (WebCore::ApplyPropertyCursor::applyValue):
2364         * css/CSSStyleSelector.cpp:
2365         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2366         * css/CSSValue.h:
2367         (WebCore::CSSValue::isPrimitiveValue):
2368
2369 2012-03-20  Pavel Feldman  <pfeldman@chromium.org>
2370
2371         Web Inspector: call .length as the last check when detecting arrays.
2372         https://bugs.webkit.org/show_bug.cgi?id=81335
2373
2374         Reviewed by Yury Semikhatsky.
2375
2376         * inspector/InjectedScriptSource.js:
2377
2378 2012-03-20  Alexander Pavlov  <apavlov@chromium.org>
2379
2380         Web Inspector: newly added CSS rules shouldn't rewrite HTML content in the resources panel
2381         https://bugs.webkit.org/show_bug.cgi?id=81414
2382
2383         Reviewed by Vsevolod Vlasov.
2384
2385         * inspector/front-end/CSSStyleModel.js:
2386         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent):
2387         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
2388
2389 2012-03-20  Yury Semikhatsky  <yurys@chromium.org>
2390
2391         Web Inspector: provide class name filter for "comparison" view in heap profiler
2392         https://bugs.webkit.org/show_bug.cgi?id=81641
2393
2394         Class name filtering now works for both Summary and Comparison views.
2395
2396         Reviewed by Pavel Feldman.
2397
2398         * inspector/front-end/DetailedHeapshotView.js:
2399         (WebInspector.DetailedHeapshotView.prototype._createToolbarWithClassNameFilter):
2400         (WebInspector.DetailedHeapshotView.prototype._changeNameFilter):
2401         * inspector/front-end/heapProfiler.css:
2402         (.detailed-heapshot-view .class-view-grid):
2403         (.detailed-heapshot-view .class-view-toolbar):
2404         (.detailed-heapshot-view .class-view-toolbar input.class-name-filter):
2405
2406 2012-03-20  Nikolas Zimmermann  <nzimmermann@rim.com>
2407
2408         Make animVal support type-safe
2409         https://bugs.webkit.org/show_bug.cgi?id=81640
2410
2411         Reviewed by Antti Koivisto.
2412
2413         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
2414
2415         Redesign animVal support in a type-safe fashion, avoiding the SVGGenericAnimatedType
2416         and associated reinterpret_casts, which require all call-sites to assure that the
2417         types are safe to cast, before actually calling the method.
2418
2419         Remove pure virtual animationStarted/Ended/ValueWillChange/ValueDidChange & currentBaseValueVariant methods from SVGAnimatedProperty,
2420         and de-virtualize them in classes that inherit from SVGAnimatedProperty, like SVGAnimatedPropertyTearOff, etc.
2421
2422         Add startAnimValAnimation/stopAnimValAnimation/resetAnimValToBaseVal/animValWillChange/animVallDidChange methods to all
2423         SVGAnimatedXXXAnimator classes that currently support animVal (SVGAnimatedLength/LengthList/Number(OptionalNumber)/NumberList/TransformList).
2424         Those SVGAnimatedLengthAnimator can cast the generic SVGAnimatedProperty* associated with a certain SVG DOM property, to the real type
2425         eg. SVGAnimatedLength (which is a SVGAnimatedPropertyTearOff<SVGLength>). This way we can call those methods, without relying on virtual
2426         function calls. Also it makes the "SVGGenericAnimatedType* currentBaseValueVariant()" accessor needless, as we can just call the method
2427         right on eg. the SVGAnimatedLength, which gives us the "const SVGLength&" object, instead of a generic pointer type, that we have to
2428         reinterpret_cast to some hopefully-matching expected type. The new approach is truly type-safey, but needs a bit more boilerplate code.
2429
2430         To reduce the amount of copy&paste across the SVGAnimatedXXXAnimator classes, all code is placed in template functions in
2431         SVGAnimatedTypeAnimator.h, which can be shared across all SVGAnimatedXXXAnimator classes, that inherit from SVGAnimatedTypeAnimator.
2432
2433         Test: svg/animations/force-use-shadow-tree-recreation-while-animating.html
2434
2435         * svg/SVGAnimateElement.cpp:
2436         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2437         (WebCore::SVGAnimateElement::resetToBaseValue):
2438         (WebCore::SVGAnimateElement::applyResultsToTarget):
2439         (WebCore):
2440         (WebCore::SVGAnimateElement::targetElementWillChange):
2441         * svg/SVGAnimatedLength.cpp:
2442         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
2443         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
2444         (WebCore):
2445         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
2446         (WebCore::SVGAnimatedLengthAnimator::animValWillChange):
2447         (WebCore::SVGAnimatedLengthAnimator::animValDidChange):
2448         * svg/SVGAnimatedLength.h:
2449         (WebCore):
2450         (SVGAnimatedLengthAnimator):
2451         * svg/SVGAnimatedLengthList.cpp:
2452         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
2453         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
2454         (WebCore):
2455         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
2456         (WebCore::SVGAnimatedLengthListAnimator::animValWillChange):
2457         (WebCore::SVGAnimatedLengthListAnimator::animValDidChange):
2458         * svg/SVGAnimatedLengthList.h:
2459         (WebCore):
2460         (SVGAnimatedLengthListAnimator):
2461         * svg/SVGAnimatedNumber.cpp:
2462         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
2463         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
2464         (WebCore):
2465         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
2466         (WebCore::SVGAnimatedNumberAnimator::animValWillChange):
2467         (WebCore::SVGAnimatedNumberAnimator::animValDidChange):
2468         * svg/SVGAnimatedNumber.h:
2469         (WebCore):
2470         (SVGAnimatedNumberAnimator):
2471         * svg/SVGAnimatedNumberList.cpp:
2472         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
2473         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
2474         (WebCore):
2475         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
2476         (WebCore::SVGAnimatedNumberListAnimator::animValWillChange):
2477         (WebCore::SVGAnimatedNumberListAnimator::animValDidChange):
2478         * svg/SVGAnimatedNumberList.h:
2479         (WebCore):
2480         (SVGAnimatedNumberListAnimator):
2481         * svg/SVGAnimatedNumberOptionalNumber.cpp:
2482         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
2483         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
2484         (WebCore):
2485         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
2486         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
2487         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
2488         * svg/SVGAnimatedNumberOptionalNumber.h:
2489         (WebCore):
2490         (SVGAnimatedNumberOptionalNumberAnimator):
2491         * svg/SVGAnimatedTransformList.cpp:
2492         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
2493         (WebCore):
2494         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
2495         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
2496         (WebCore::SVGAnimatedTransformListAnimator::animValWillChange):
2497         (WebCore::SVGAnimatedTransformListAnimator::animValDidChange):
2498         * svg/SVGAnimatedTransformList.h:
2499         (WebCore):
2500         (SVGAnimatedTransformListAnimator):
2501         * svg/SVGAnimatedType.h:
2502         (WebCore):
2503         * svg/SVGAnimatedTypeAnimator.h:
2504         (WebCore):
2505         (SVGAnimatedTypeAnimator):
2506         (WebCore::SVGAnimatedTypeAnimator::startAnimValAnimation):
2507         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimation):
2508         (WebCore::SVGAnimatedTypeAnimator::resetAnimValToBaseVal):
2509         (WebCore::SVGAnimatedTypeAnimator::animValWillChange):
2510         (WebCore::SVGAnimatedTypeAnimator::animValDidChange):
2511         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
2512         (WebCore::SVGAnimatedTypeAnimator::startAnimation):
2513         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
2514         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
2515         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
2516         (WebCore::SVGAnimatedTypeAnimator::constructFromOneBaseValue):
2517         (WebCore::SVGAnimatedTypeAnimator::resetFromOneBaseValue):
2518         (WebCore::SVGAnimatedTypeAnimator::constructFromTwoBaseValues):
2519         (WebCore::SVGAnimatedTypeAnimator::resetFromTwoBaseValues):
2520         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
2521         (WebCore::SVGAnimatedTypeAnimator::collectAnimatedPropertiesFromInstances):
2522         * svg/SVGAnimationElement.cpp:
2523         (WebCore::SVGAnimationElement::applyAnimatedValue):
2524         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2525         * svg/SVGAnimationElement.h:
2526         (SVGAnimationElement):
2527         * svg/SVGElementInstance.cpp:
2528         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
2529         (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
2530         (WebCore):
2531         (WebCore::SVGElementInstance::InstanceUpdateBlocker::~InstanceUpdateBlocker):
2532         * svg/SVGElementInstance.h:
2533         (WebCore):
2534         (InstanceUpdateBlocker):
2535         (SVGElementInstance):
2536         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2537         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
2538         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
2539         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
2540         (WebCore::SVGAnimatedListPropertyTearOff::animValWillChange):
2541         (WebCore::SVGAnimatedListPropertyTearOff::animValDidChange):
2542         * svg/properties/SVGAnimatedProperty.h:
2543         (WebCore):
2544         * svg/properties/SVGAnimatedPropertyTearOff.h:
2545         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue):
2546         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
2547         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
2548         (WebCore::SVGAnimatedPropertyTearOff::animValWillChange):
2549         (WebCore::SVGAnimatedPropertyTearOff::animValDidChange):
2550         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2551         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
2552         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
2553         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
2554         (WebCore::SVGAnimatedStaticPropertyTearOff::animValWillChange):
2555         (WebCore::SVGAnimatedStaticPropertyTearOff::animValDidChange):
2556
2557 2012-03-20  Mihnea Ovidenie  <mihnea@adobe.com>
2558
2559         [CSSRegions]Implement NamedFlow::getRegionsByContentNode
2560         https://bugs.webkit.org/show_bug.cgi?id=77746
2561
2562         Reviewed by David Hyatt.
2563
2564         The list of regions returned is a static node list.
2565
2566         Tests: fast/regions/get-regions-by-content-node-horiz-bt.html
2567                fast/regions/get-regions-by-content-node-horiz-tb.html
2568                fast/regions/get-regions-by-content-node-vert-lr.html
2569                fast/regions/get-regions-by-content-node-vert-rl.html
2570                fast/regions/get-regions-by-content-node.html
2571                fast/regions/get-regions-by-content-node2.html
2572
2573         * dom/WebKitNamedFlow.cpp:
2574         (WebCore::WebKitNamedFlow::getRegionsByContentNode):
2575         (WebCore):
2576         * dom/WebKitNamedFlow.h:
2577         (WebKitNamedFlow):
2578         * dom/WebKitNamedFlow.idl:
2579         * rendering/RenderFlowThread.cpp:
2580         (WebCore::RenderFlowThread::regionInRange):
2581         (WebCore):
2582         (WebCore::RenderFlowThread::objectInFlowRegion):
2583         * rendering/RenderFlowThread.h:
2584         * rendering/RenderRegion.h:
2585         (WebCore::RenderRegion::flowThread):
2586
2587 2012-03-20  Luke Macpherson  <macpherson@chromium.org>
2588
2589         Remove min and max parameters from CSSPrimitiveValue's roundForImpreciseConversion function.
2590         https://bugs.webkit.org/show_bug.cgi?id=81629
2591
2592         Reviewed by Andreas Kling.
2593
2594         No new tests / refactoring only.
2595
2596         * css/CSSPrimitiveValue.cpp:
2597         (WebCore::CSSPrimitiveValue::computeLength):
2598         * css/CSSPrimitiveValue.h:
2599         (WebCore::roundForImpreciseConversion):
2600         * rendering/style/RenderStyle.h:
2601         (WebCore::adjustForAbsoluteZoom):
2602
2603 2012-03-20  Jason Liu  <jason.liu@torchmobile.com.cn>
2604
2605         [BlackBerry]Cookies shouldn't be set into each of webcore's request and platform's request. And this makes a regression.
2606         https://bugs.webkit.org/show_bug.cgi?id=80800
2607
2608         FrameLoaderClientBlackBerry::dispatchWillSendRequest sets cookies to resourceRequest's header
2609         list to show cookies in inspector. And NetworkManager::startJob will set cookies to platformRequest's
2610         m_cookieData again. So cookies are set two times. This causes performance issue.
2611
2612         Moreover, platformRequest will copy cookies from the resourceRequest. And then platformRequest has
2613         the same cookies in its header list and m_cookieData. Network will use header list's cookies which
2614         are output as latin1 only. This causes the regression of https://bugs.webkit.org/show_bug.cgi?id=80307.
2615
2616         Now, set cookies in initializePlatformRequest to ensure setting cookies only once.
2617
2618         Reviewed by George Staikos.
2619
2620         Test: http/tests/cookies/resources/setUtf8Cookies.php
2621
2622         * platform/network/blackberry/NetworkManager.cpp:
2623         (WebCore::NetworkManager::startJob):
2624         * platform/network/blackberry/ResourceRequest.h:
2625         (ResourceRequest):
2626         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2627         (WebCore::ResourceRequest::initializePlatformRequest):
2628
2629 2012-03-19  Benjamin Poulain  <bpoulain@apple.com>
2630
2631         Build fix for Debug build after r111358
2632
2633         Unreviewed.
2634
2635         * bindings/js/CachedScriptSourceProvider.h:
2636         * bindings/js/StringSourceProvider.h:
2637
2638 2012-03-19  Emil A Eklund  <eae@chromium.org>
2639
2640         Add FractionalLayoutUnit version of blend to AnimationUtilities
2641         https://bugs.webkit.org/show_bug.cgi?id=81572
2642
2643         Reviewed by Eric Seidel.
2644         
2645         Add version of blend method that operates on FractionalLayoutUnits. This
2646         will be used in place of the integer version in many places once we
2647         enable support for subpixel layout.
2648
2649         No new tests.
2650
2651         * platform/FractionalLayoutUnit.h:
2652         Include math.h to make GTK build happy.
2653
2654         * platform/animation/AnimationUtilities.h:
2655         (WebCore::blend):
2656
2657 2012-03-19  Adam Barth  <abarth@webkit.org>
2658
2659         Remove support for "magic" iframe
2660         https://bugs.webkit.org/show_bug.cgi?id=81590
2661
2662         Reviewed by Eric Seidel.
2663
2664         This patch removes support for "magic" iframe, which previously allowed
2665         an iframe to be transfered from one document to another without
2666         reloading the iframe.  The idea behind this feature was to let sites
2667         create "pop out" windows that could outlive their parents by
2668         transfering state to these windows via these magic iframes.
2669
2670         Unforuntately, this feature was never implemented by other browsers and
2671         has been the source of a series of security vulnerabilities.  Although
2672         we have fixed each vulnerability as it has been discovered, the feature
2673         is still a complex corner case that isn't widely exercised on the web.
2674         For that reason, it's likely to have more vulnerabilities in the
2675         future.
2676
2677         I'm not aware of any web sites that use this feature anymore.  There
2678         were a handful of them, but we appear to have been successful in
2679         evangalizing them to move away from "magic" iframe.
2680
2681         * dom/Document.cpp:
2682         (WebCore::Document::adoptNode):
2683         * html/HTMLFrameElementBase.cpp:
2684         (WebCore):
2685         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
2686         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
2687         * html/HTMLFrameElementBase.h:
2688         (HTMLFrameElementBase):
2689         * loader/DocumentLoader.cpp:
2690         (WebCore):
2691         * loader/DocumentLoader.h:
2692         (DocumentLoader):
2693         * loader/EmptyClients.h:
2694         (WebCore::EmptyFrameLoaderClient::createFrame):
2695         * loader/FrameLoader.cpp:
2696         (WebCore):
2697         * loader/FrameLoader.h:
2698         (FrameLoader):
2699         * loader/FrameLoaderClient.h:
2700         (FrameLoaderClient):
2701         * loader/ResourceLoadNotifier.cpp:
2702         (WebCore):
2703         * loader/ResourceLoadNotifier.h:
2704         (ResourceLoadNotifier):
2705         * page/Frame.cpp:
2706         (WebCore):
2707         * page/Frame.h:
2708         (Frame):
2709
2710 2012-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
2711
2712         REGRESSION(r110072): Improper repainting on table with overflow: hidden
2713         https://bugs.webkit.org/show_bug.cgi?id=81460
2714
2715         Reviewed by Simon Fraser.
2716
2717         Test: fast/repaint/table-hover-on-link.html
2718
2719         * rendering/RenderTable.cpp:
2720         (WebCore::RenderTable::layout): Add a call to RenderBlock::updateCachedSizeForOverflowClip
2721         so that we properly keep our cached size up to date. This fixes the problem for now but the
2722         real solution is to make sure it is called on all classes that needs to. This is tracked by
2723         bug 81461.
2724
2725 2012-03-19  Pablo Flouret  <pablof@motorola.com>
2726
2727         Add support for crossorigin attribute in script elements
2728         https://bugs.webkit.org/show_bug.cgi?id=81438
2729
2730         Reviewed by Adam Barth.
2731
2732         Works similarly to img and its crossorigin attribute. In the future it
2733         could allow for things like showing full error messages in error
2734         handlers, etc.
2735
2736         Tests: http/tests/security/script-crossorigin-loads-correctly.html
2737                http/tests/security/script-crossorigin-loads-same-origin.html
2738                http/tests/security/script-with-failed-cors-check-fails-to-load.html
2739
2740         * dom/ScriptElement.cpp:
2741         (WebCore::ScriptElement::ScriptElement):
2742         (WebCore::ScriptElement::requestScript):
2743         (WebCore::ScriptElement::notifyFinished):
2744         * dom/ScriptElement.h:
2745         (ScriptElement):
2746         * html/HTMLScriptElement.idl:
2747
2748 2012-03-19  Benjamin Poulain  <benjamin@webkit.org>
2749
2750         Do not copy the script source in the SourceProvider, just reference the existing string
2751         https://bugs.webkit.org/show_bug.cgi?id=81466
2752
2753         Reviewed by Geoffrey Garen.
2754
2755         Instead of creating a copy of the string with 16bits characters, we just return
2756         a shared StringImpl.
2757
2758         * bindings/js/CachedScriptSourceProvider.h:
2759         * bindings/js/StringSourceProvider.h:
2760
2761 2012-03-19  Dana Jansens  <danakj@chromium.org>
2762
2763         A quick early-out for Region::contains() test
2764         https://bugs.webkit.org/show_bug.cgi?id=81625
2765
2766         Reviewed by Anders Carlsson.
2767
2768         If the bounds of region B include a row/column that is outside the bounds of
2769         region A, then region B contains a pixel within that row/column that is
2770         outside of region A.
2771
2772         * platform/graphics/Region.cpp:
2773         (WebCore::Region::contains):
2774
2775 2012-03-19  Eric Seidel  <eric@webkit.org>
2776
2777         Unreviewed attempt to fix the EFL build.
2778
2779         * platform/graphics/efl/IconEfl.cpp:
2780
2781 2012-03-19  Eric Seidel  <eric@webkit.org>
2782
2783         Fix more WTF header include paths in WebCore
2784         https://bugs.webkit.org/show_bug.cgi?id=81602
2785
2786         Reviewed by Martin Robinson.
2787
2788         Chromium, Mac and Win already build w/o including wtf subdirectories
2789         in their include paths for WebCore/WebKit.  Gtk, Qt, and other ports
2790         should eventually do the same.  This patch fixes up a few loose
2791         wtf includes in these ports using some search/replace across WebCore.
2792         If the EWS bots pass this patch doesn't really need any other review.
2793
2794         * accessibility/gtk/AXObjectCacheAtk.cpp:
2795         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
2796         * platform/KURL.cpp:
2797         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2798         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2799         * platform/audio/gtk/AudioBusGtk.cpp:
2800         * platform/clutter/GRefPtrClutter.h:
2801         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
2802         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
2803         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
2804         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2805         * platform/graphics/gtk/ImageBufferGtk.cpp:
2806         * platform/graphics/pango/FontPango.cpp:
2807         * platform/graphics/qt/ImageBufferDataQt.h:
2808         * platform/graphics/wx/ImageBufferDataWx.h:
2809         * platform/gtk/ContextMenuGtk.cpp:
2810         * platform/gtk/ContextMenuItemGtk.cpp:
2811         * platform/gtk/FileSystemGtk.cpp:
2812         * platform/gtk/GOwnPtrGtk.h:
2813         * platform/gtk/GtkAuthenticationDialog.h:
2814         * platform/gtk/GtkPopupMenu.cpp:
2815         * platform/gtk/LanguageGtk.cpp:
2816         * platform/gtk/LocalizedStringsGtk.cpp:
2817         * platform/gtk/PopupMenuGtk.cpp:
2818         * platform/gtk/RenderThemeGtk.cpp:
2819         * platform/gtk/RenderThemeGtk.h:
2820         * platform/network/soup/GOwnPtrSoup.h:
2821         * platform/network/soup/ResourceRequestSoup.cpp:
2822         * platform/network/soup/ResourceResponseSoup.cpp:
2823         * platform/network/soup/SocketStreamHandle.h:
2824         * platform/network/soup/SoupURIUtils.cpp:
2825         * platform/text/TextEncoding.cpp:
2826         * platform/text/gtk/TextBreakIteratorGtk.cpp:
2827         * platform/text/gtk/TextCodecGtk.cpp:
2828         * platform/text/gtk/TextCodecGtk.h:
2829
2830 2012-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
2831
2832         Move the extra logical height distribution into RenderTable as a new step in our layout algorithm
2833         https://bugs.webkit.org/show_bug.cgi?id=81548
2834
2835         Reviewed by Tony Chang.
2836
2837         Refactoring, no expected change in behavior.
2838
2839         Moving the distribution step into RenderTable is needed to implement a better distribution algorithm that would
2840         span several RenderTableSection (which is what IE and FF are doing right now).
2841
2842         * rendering/RenderTable.cpp:
2843         (WebCore::RenderTable::distributeExtraLogicalHeight):
2844         (WebCore::RenderTable::layout):
2845         Moved the distribution step into distributeExtraLogicalHeight. While at it, changed the code to make use of the helper
2846         methods to iterate over the sections and explicitly floor the LayoutUnit before calling distributeExtraLogicalHeight.
2847
2848         * rendering/RenderTable.h:
2849         Added distributeExtraLogicalHeight.
2850
2851         * rendering/RenderTableSection.cpp:
2852         (WebCore::RenderTableSection::layoutRows):
2853         Changed the method signature as it doesn't handle the distribution step anymore.
2854
2855         * rendering/RenderTableSection.h:
2856         Updated layoutRows signature and exposed distributeExtraLogicalHeightToRows for RenderTable use.
2857
2858 2012-03-19  Anders Carlsson  <andersca@apple.com>
2859
2860         Another attempt at fixing the Windows build.
2861
2862         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2863         (WebCore::LayerClient::platformCALayerDeviceScaleFactor):
2864
2865 2012-03-19  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2866
2867         [EFL] Fix build break because of PlatformString.h
2868         https://bugs.webkit.org/show_bug.cgi?id=81619
2869
2870         Unreviewed. Fix build break because of PlatformString.h.
2871
2872         * platform/graphics/efl/IconEfl.cpp: Include PlatformString.h from text directory.
2873
2874 2012-03-19  Eric Seidel  <eric@webkit.org>
2875
2876         Fix CrWin build after r111258.
2877         https://bugs.webkit.org/show_bug.cgi?id=81281
2878
2879         Unreviewed build fix.
2880         I also fixed similarly incorrect wtf/ includes for other ports
2881         (which aren't yet as strict as Chromium about wtf includes).
2882
2883         * platform/blackberry/CookieManager.cpp:
2884         * platform/blackberry/CookieParser.cpp:
2885         * platform/blackberry/ParsedCookie.cpp:
2886         * platform/blackberry/SharedTimerBlackBerry.cpp:
2887         * platform/graphics/qt/GraphicsLayerQt.cpp:
2888         * platform/graphics/texmap/TextureMapperAnimation.cpp:
2889         * rendering/RenderThemeChromiumWin.cpp:
2890         (WebCore):
2891
2892 2012-03-19  Eric Seidel  <eric@webkit.org>
2893
2894         Fix CrWin build after r111258.
2895         https://bugs.webkit.org/show_bug.cgi?id=81281
2896
2897         Unreviewed build fix.
2898
2899         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2900         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2901         * platform/graphics/texmap/TextureMapperAnimation.h:
2902
2903 2012-03-19  Tony Chang  <tony@chromium.org>
2904
2905         add css parsing of flex-line-pack
2906         https://bugs.webkit.org/show_bug.cgi?id=81427
2907
2908         Reviewed by Ojan Vafai.
2909
2910         Spec: http://dev.w3.org/csswg/css3-flexbox/#flex-line-pack
2911
2912         Updated tests in css3/flexbox/css-properties.html
2913
2914         * css/CSSComputedStyleDeclaration.cpp:
2915         (WebCore):
2916         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2917         * css/CSSParser.cpp:
2918         (WebCore::CSSParser::parseValue):
2919         * css/CSSPrimitiveValueMappings.h:
2920         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2921         (WebCore):
2922         (WebCore::CSSPrimitiveValue::operator EFlexLinePack):
2923         * css/CSSProperty.cpp:
2924         (WebCore::CSSProperty::isInheritedProperty):
2925         * css/CSSPropertyNames.in:
2926         * css/CSSStyleApplyProperty.cpp:
2927         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2928         * css/CSSStyleSelector.cpp:
2929         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2930         * css/CSSValueKeywords.in:
2931         * rendering/style/RenderStyle.h:
2932         * rendering/style/RenderStyleConstants.h:
2933         * rendering/style/StyleFlexibleBoxData.cpp:
2934         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
2935         (WebCore::StyleFlexibleBoxData::operator==):
2936         * rendering/style/StyleFlexibleBoxData.h:
2937         (StyleFlexibleBoxData):
2938
2939 2012-03-19  Gustavo Noronha Silva  <gns@gnome.org>
2940
2941         [GTK] libWebCore.la has become too big for make
2942         https://bugs.webkit.org/show_bug.cgi?id=81582
2943
2944         Unreviewed build fix.
2945
2946         * GNUmakefile.am: build an intermediate library for modules, so that the list
2947         of source files used to build WebCore can be split and not reach make's limits;
2948         also try to force relinking libWebCore.la and libWebCoreModules.la when the
2949         GNUmakefile.am or GNUmakefile.list.am change
2950
2951 2012-03-19  Dana Jansens  <danakj@chromium.org>
2952
2953         [chromium] Push culled tiles that are prepainted
2954         https://bugs.webkit.org/show_bug.cgi?id=81552
2955
2956         Reviewed by Adrienne Walker.
2957
2958         If a tile was culled during paint, but then prepainted in the following
2959         idle paint pass, it was still marked as culled (and thus dirty) and not
2960         pushed to the impl side.
2961
2962         Renames tile->m_updateCulled to tile->m_updated. This value is true if
2963         the tile is updated any time during a commit, and remains false if it
2964         is culled every time the layer is painted.
2965
2966         Unit test: TiledLayerChromiumTest.pushIdlePaintedOccludedTiles
2967
2968         * platform/graphics/chromium/TiledLayerChromium.cpp:
2969         (WebCore::UpdatableTile::isDirtyForCurrentFrame):
2970         (UpdatableTile):
2971         (WebCore::UpdatableTile::UpdatableTile):
2972         (WebCore::TiledLayerChromium::updateCompositorResources):
2973         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
2974         (WebCore::TiledLayerChromium::resetUpdateState):
2975
2976 2012-03-19  Anders Carlsson  <andersca@apple.com>
2977
2978         Fix Snow Leopard build.
2979
2980         * platform/graphics/ca/mac/TileCache.mm:
2981         (WebCore::TileCache::createTileLayer):
2982
2983 2012-03-19  Michal Mocny  <mmocny@google.com>
2984
2985         [chromium] Adding support for GL_EXT_discard_framebuffer.
2986         https://bugs.webkit.org/show_bug.cgi?id=81383
2987
2988         Reviewed by James Robinson.
2989
2990         * platform/graphics/chromium/Extensions3DChromium.h:
2991
2992 2012-03-19  Adam Klein  <adamk@chromium.org>
2993
2994         Refactor ContainerNode::replaceChild to match other mutation methods and share code
2995         https://bugs.webkit.org/show_bug.cgi?id=81579
2996
2997         Reviewed by Ojan Vafai.
2998
2999         A future change will make use of the consistency among insertBefore/appendChild/replaceChild
3000         to handle insertion of DocumentFragments more cleanly.
3001
3002         No new tests, no change in behavior.
3003
3004         * dom/ContainerNode.cpp:
3005         (WebCore::ContainerNode::replaceChild): Use collectTargetNodes rather than walking through DocumentFragment children.
3006         Insert before rather than inserting after. Dispatch to other methods to update parent/sibling pointers.
3007         (WebCore::ContainerNode::appendChild): Call appendChildToContainer to update parent/sibling pointers.
3008         (WebCore::ContainerNode::parserAddChild): Use type inference in call to appendChildToContainer.
3009
3010 2012-03-19  Ian Vollick  <vollick@chromium.org>
3011
3012         [chromium] Times in the cc should be expressed in seconds.
3013         https://bugs.webkit.org/show_bug.cgi?id=80514
3014
3015         Reviewed by James Robinson.
3016
3017         Updated timer tests to use seconds.
3018
3019         * platform/TouchFlingPlatformGestureCurve.h:
3020         (TouchFlingPlatformGestureCurve):
3021         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
3022         (WebCore::CCActiveGestureAnimation::animate):
3023         * platform/graphics/chromium/cc/CCActiveGestureAnimation.h:
3024         (CCActiveGestureAnimation):
3025         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
3026         (WebCore::CCDelayBasedTimeSource::create):
3027         (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
3028         (WebCore::CCDelayBasedTimeSource::setActive):
3029         (WebCore::CCDelayBasedTimeSource::onTimerFired):
3030         (WebCore::CCDelayBasedTimeSource::monotonicallyIncreasingTime):
3031         (WebCore):
3032         (WebCore::CCDelayBasedTimeSource::postNextTickTask):
3033         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
3034         (CCDelayBasedTimeSource):
3035         * platform/graphics/chromium/cc/CCGestureCurve.h:
3036         (CCGestureCurve):
3037         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3038         (WTF):
3039         (WebCore::CCThreadProxy::beginContextRecreation):
3040         (WebCore::CCThreadProxy::tryToRecreateContext):
3041         (WebCore::CCThreadProxy::initializeImplOnImplThread):
3042         * platform/graphics/chromium/cc/CCTimer.cpp:
3043         (WebCore::CCTimer::startOneShot):
3044         * platform/graphics/chromium/cc/CCTimer.h:
3045         (CCTimer):
3046
3047 2012-03-19  Florin Malita  <fmalita@google.com>
3048
3049         Relative-height block SVG root not layed out on container height change
3050         https://bugs.webkit.org/show_bug.cgi?id=81513
3051
3052         Reviewed by Dirk Schulze.
3053
3054         Tests: svg/custom/svg-percent-scale-block-expected.html
3055                svg/custom/svg-percent-scale-block.html
3056
3057         A couple of places still have style()->logical{Min,Max,}Height percent checks,
3058         which do not work for SVG elements. This patch adds a virtual hasRelativeLogicalHeight()
3059         RenderBox method to replace the explicit style checks.
3060
3061         * rendering/RenderBlock.cpp:
3062         (WebCore::RenderBlock::layoutBlockChildren):
3063         Use virtual hasRelativeLogicalHeight() instead of logical height style checks.
3064
3065         * rendering/RenderBox.cpp:
3066         (WebCore::RenderBox::hasRelativeLogicalHeight):
3067         (WebCore):
3068         * rendering/RenderBox.h:
3069         (RenderBox):
3070         Add virtual hasRelativeLogicalHeight().
3071
3072         * rendering/RenderView.cpp:
3073         (WebCore::RenderView::layout):
3074         Use virtual hasRelativeLogicalHeight() instead of logical height style checks, if possible.
3075
3076         * rendering/svg/RenderSVGRoot.cpp:
3077         (WebCore::RenderSVGRoot::hasRelativeLogicalHeight):
3078         (WebCore):
3079         * rendering/svg/RenderSVGRoot.h:
3080         (RenderSVGRoot):
3081         Add hasRelativeLogicalHeight() override.
3082
3083 2012-03-19  Jer Noble  <jer.noble@apple.com>
3084
3085         Assertion failure in RenderBlock::addChildIgnoringAnonymousColumnBlocks when running fullscreen/full-screen-twice-crash.html 
3086         causing "crashes" on the Lion Intel Debug WebKit2 test bots.
3087         https://bugs.webkit.org/show_bug.cgi?id=81171
3088
3089         Reviewed by Dan Bernstein.
3090
3091         No new tests; fixes fullscreen/* tests when running in WebKitTestRunner (WebKit2).
3092
3093         Add a special-case check if the parent anonymous container is a full screen renderer or placeholder.
3094
3095         * rendering/RenderBlock.cpp:
3096         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
3097
3098 2012-03-19  Enrica Casucci  <enrica@apple.com>
3099
3100         WebKit2: create sandbox extensions for files that are dropped in an input control.
3101         https://bugs.webkit.org/show_bug.cgi?id=81153
3102         <rdar://problem/11031207>
3103
3104         Reviewed by Alexey Proskuryakov.
3105
3106         Now the pasteboard access is performed only in the UI process, it is
3107         necessary to create sandbox extensions for each file that is dropped into
3108         an input type=file element. The extensions are created at the time the files
3109         are dropped and consumed immediately.
3110
3111         * page/DragActions.h: Added new drag action to be used by the WebDragClient.
3112         * page/DragController.cpp:
3113         (WebCore::DragController::concludeEditDrag): Added call to the drag client with the new action.
3114
3115 2012-03-19  Eric Seidel  <eric@webkit.org>
3116
3117         Fix Chromium Win
3118         https://bugs.webkit.org/show_bug.cgi?id=81281
3119
3120         Unreviewed build fix.
3121
3122         * platform/graphics/chromium/TransparencyWin.h:
3123
3124 2012-03-19  Eric Seidel  <eric@webkit.org>
3125
3126         Fix the chromium world.
3127         https://bugs.webkit.org/show_bug.cgi?id=81281
3128
3129         Unreviewed build fix.
3130
3131         * rendering/RenderThemeChromiumSkia.cpp:
3132
3133 2012-03-19  Brady Eidson  <beidson@apple.com>
3134
3135         <rdar://problem/10917120> and https://bugs.webkit.org/show_bug.cgi?id=81066
3136         Crash in 3rd party WebKit apps under XHR/Cache code
3137
3138         Reviewed by Antti Koivisto.
3139
3140         No new layout tests.
3141         TestWebKitAPI test MemoryCachePruneWithinResourceLoadDelegate included
3142
3143         A CachedResource representing an XHR was being deleted by cache pruning during a delegate callback.
3144         This worked until http://trac.webkit.org/changeset/98380
3145
3146         * history/PageCache.cpp:
3147         (WebCore::PageCache::releaseAutoreleasedPagesNow): Only trigger pruning after the page cache
3148           autorelease if it was enabled before.
3149
3150         * loader/cache/CachedResourceLoader.cpp:
3151         (WebCore::CachedResourceLoader::loadResource): Disable pruning before loading the resource and
3152           re-enable it afterwards if necessary.
3153
3154         * loader/cache/MemoryCache.h:
3155         (WebCore::MemoryCache::pruneEnabled):
3156
3157 2012-03-19  Anders Carlsson  <andersca@apple.com>
3158
3159         Fix Windows build.
3160
3161         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
3162         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDeviceScaleFactor):
3163
3164 2012-03-18  James Robinson  <jamesr@chromium.org>
3165
3166         [chromium] Implement fling-by-wheel on compositor thread
3167         https://bugs.webkit.org/show_bug.cgi?id=81462
3168
3169         Reviewed by Adrienne Walker.
3170
3171         Adds compositor thread support for a fling type implemented as a sequence of wheel scrolls. Covered by new tests
3172         in WebCompositorInputHandlerImplTests.
3173
3174         * platform/graphics/chromium/cc/CCInputHandler.h:
3175         (CCInputHandler):
3176         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3177         (WebCore::CCLayerTreeHostImpl::scheduleAnimation):
3178         (WebCore):
3179         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3180         (CCLayerTreeHostImpl):
3181         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3182         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
3183
3184 2012-03-19  Emil A Eklund  <eae@chromium.org>
3185
3186         [mac/chromium] Change platform code to use pixelSnappedRect methods
3187         https://bugs.webkit.org/show_bug.cgi?id=81016
3188
3189         Reviewed by Eric Seidel.
3190
3191         Change platform code to use Node::getPixelSnappedRect,
3192         pixelSnappedBoundingBoxRect and pixelSnappedAbsoluteClippedOverflowRect
3193         to avoid exposing subpixel types to the platform layer.
3194
3195         No new tests.
3196
3197         * WebCore.exp.in:
3198         * rendering/RenderObject.cpp:
3199         (WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect):
3200         Add pixelSnapped version of absoluteClippedOverflowRect
3201         
3202         (WebCore):
3203         * rendering/RenderObject.h:
3204         (RenderObject):
3205
3206 2012-03-19  Brady Eidson  <beidson@apple.com>
3207
3208         <rdar://problem/10848575> and https://bugs.webkit.org/show_bug.cgi?id=81516
3209         REGRESSION (r107435) URLs copied from WebKit apps aren't in the right pasteboard format
3210
3211         Reviewed by Enrica Casucci.
3212
3213         r107435 started saving/restoring URLs as strings.
3214         We need to go back to setting the URL on the pasteboard using AppKit URL pasteboard APIs.
3215
3216         WebKit API test: ContextMenuCanCopyURL
3217         No WebKit2 API test possible at this time.
3218
3219         * platform/mac/PlatformPasteboardMac.mm:
3220         (WebCore::PlatformPasteboard::setURL):
3221
3222 2012-03-19  Anders Carlsson  <andersca@apple.com>
3223
3224         Make the TileCache work with HiDPI again
3225         https://bugs.webkit.org/show_bug.cgi?id=81569
3226         <rdar://problem/11031542>
3227
3228         Reviewed by Sam Weinig.
3229
3230         Set the contentsScale of the individual tile layers to be the same as the device scale factor.
3231         Also, take into account the fact that the value passed to TileCache::setScale is the product of the
3232         page scale factor and the device scale factor, so divide it by the device scale factor before storing
3233         it in m_scale.
3234
3235         * platform/graphics/ca/GraphicsLayerCA.cpp:
3236         (WebCore::GraphicsLayerCA::platformCALayerDeviceScaleFactor):
3237         (WebCore):
3238         * platform/graphics/ca/GraphicsLayerCA.h:
3239         (GraphicsLayerCA):
3240         * platform/graphics/ca/PlatformCALayerClient.h:
3241         (PlatformCALayerClient):
3242         * platform/graphics/ca/mac/TileCache.h:
3243         (TileCache):
3244         * platform/graphics/ca/mac/TileCache.mm:
3245         (WebCore::TileCache::TileCache):
3246         (WebCore::TileCache::setScale):
3247         (WebCore::TileCache::createTileLayer):
3248
3249 2012-03-19  Abhishek Arya  <inferno@chromium.org>
3250
3251         Crash due to layer tree information not updated when moving run-in children.
3252         https://bugs.webkit.org/show_bug.cgi?id=81265
3253
3254         Reviewed by Julien Chaffraix.
3255
3256         We need to do a full removal as the run-in child is getting inserted into
3257         the neighbouring block and |blockRunIn| is going to be destroyed later
3258         in the function.
3259
3260         Test: fast/runin/run-in-layer-not-removed-crash.html
3261
3262         * rendering/RenderBlock.cpp:
3263         (WebCore::RenderBlock::handleRunInChild):
3264
3265 2012-03-19  Dana Jansens  <danakj@chromium.org>
3266
3267         [chromium] Remove misleading double-if
3268         https://bugs.webkit.org/show_bug.cgi?id=81557
3269
3270         Reviewed by Adrienne Walker.
3271
3272         Simple code cleanup, no functionality change.
3273
3274         * platform/graphics/chromium/TiledLayerChromium.cpp:
3275         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3276
3277 2012-03-19  Eric Seidel  <eric@webkit.org>
3278
3279         Fix WTF header include discipline in Chromium WebKit
3280         https://bugs.webkit.org/show_bug.cgi?id=81281
3281
3282         Reviewed by James Robinson.
3283
3284         I also fixed some bad include dicipline for other ports
3285         as well.  Those changes are not yet necessary for those ports
3286         to keep building, but soon should be as those authors
3287         remove all the extra WTF includes from WebCore and other non-WTF projects.
3288
3289         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3290         * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
3291         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3292         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
3293         * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
3294         * bindings/v8/NPV8Object.cpp:
3295         * bindings/v8/SerializedScriptValue.cpp:
3296         * bindings/v8/SerializedScriptValue.h:
3297         * bindings/v8/V8Binding.cpp:
3298         * bindings/v8/V8Binding.h:
3299         * bindings/v8/V8DOMWrapper.cpp:
3300         * bindings/v8/V8Utilities.cpp:
3301         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
3302         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
3303         * bindings/v8/custom/V8AudioContextCustom.cpp:
3304         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3305         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
3306         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
3307         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
3308         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
3309         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
3310         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
3311         * bindings/v8/custom/V8MessagePortCustom.cpp:
3312         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
3313         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
3314         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
3315         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
3316         * bindings/v8/custom/V8WorkerCustom.cpp:
3317         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3318         * bridge/qt/qt_runtime.cpp:
3319         * editing/gtk/FrameSelectionGtk.cpp:
3320         * loader/archive/mhtml/MHTMLArchive.cpp:
3321         * platform/ScrollAnimatorNone.cpp:
3322         * platform/blackberry/CookieMap.h:
3323         * platform/blackberry/CookieParser.h:
3324         * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp:
3325         * platform/chromium/DragImageChromiumSkia.cpp:
3326         * platform/chromium/PlatformCursor.h:
3327         * platform/chromium/PlatformSupport.h:
3328         * platform/chromium/PopupMenuPrivate.h:
3329         * platform/chromium/TraceEvent.h:
3330         * platform/chromium/WidgetChromium.cpp:
3331         * platform/efl/RefPtrEfl.h:
3332         * platform/graphics/cairo/RefPtrCairo.h:
3333         * platform/graphics/chromium/RateLimiter.h:
3334         * platform/graphics/chromium/TiledLayerChromium.cpp:
3335         * platform/graphics/efl/IconEfl.cpp:
3336         * platform/graphics/gstreamer/GStreamerGWorld.h:
3337         * platform/graphics/gtk/IconGtk.cpp:
3338         * platform/graphics/skia/PlatformContextSkia.h:
3339         * platform/graphics/texmap/TextureMapperBackingStore.h:
3340         * platform/graphics/texmap/TextureMapperLayer.cpp:
3341         * platform/graphics/wx/TransformationMatrixWx.cpp:
3342         * platform/gtk/PlatformMouseEventGtk.cpp:
3343         * platform/leveldb/LevelDBSlice.h:
3344         * platform/mediastream/MediaStreamCenter.cpp:
3345         * platform/network/soup/SocketStreamHandleSoup.cpp:
3346         * platform/network/win/ResourceHandleWin.cpp:
3347         * platform/qt/RenderThemeQtMobile.cpp:
3348         * platform/wx/MouseEventWx.cpp:
3349         * platform/wx/wxcode/win/fontprops.cpp:
3350
3351 2012-03-19  Dana Jansens  <danakj@chromium.org>
3352
3353         [chromium] Invalidate/update evicted tiles during commit
3354         https://bugs.webkit.org/show_bug.cgi?id=81529
3355
3356         Reviewed by Adrienne Walker.
3357
3358         A previous change caused a regression where evicted (invalid) tiles
3359         were no longer marked as dirty and updated. The regress was caused
3360         in https://bugs.webkit.org/show_bug.cgi?id=81175 and is fixed here.
3361
3362         Unit test: TiledLayerChromiumTest.pushDeletedTiles
3363
3364         * platform/graphics/chromium/TiledLayerChromium.cpp:
3365         (WebCore::UpdatableTile::copyAndClearDirty):
3366         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3367
3368 2012-03-19  Adam Barth  <abarth@webkit.org>
3369
3370         Remove PLATFORM(TORCHMOBILE) ifdef from MainResourceLoader.cpp
3371         https://bugs.webkit.org/show_bug.cgi?id=81549
3372
3373         Reviewed by Eric Seidel.
3374
3375         This appears to be the only PLATFORM(TORCHMOBILE) ifdef in WebCore.  I
3376         don't believe this ifdef is needed anymore.
3377
3378         * loader/MainResourceLoader.cpp:
3379         (WebCore::shouldLoadAsEmptyDocument):
3380         (WebCore):
3381
3382 2012-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3383
3384         Unreviewed, rolling out r111207.
3385         http://trac.webkit.org/changeset/111207
3386         https://bugs.webkit.org/show_bug.cgi?id=81561
3387
3388         Causing chromium unit test failure (Requested by reveman on
3389         #webkit).
3390
3391         * platform/graphics/chromium/Extensions3DChromium.h:
3392         (Extensions3DChromium):
3393
3394 2012-03-19  Anders Carlsson  <andersca@apple.com>
3395
3396         Remove unnecessary CALayer overrides from WebTileCacheLayer
3397         https://bugs.webkit.org/show_bug.cgi?id=81562
3398
3399         Reviewed by Dan Bernstein.
3400
3401         * platform/graphics/ca/mac/TileCache.h:
3402         (TileCache):
3403         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
3404
3405 2012-03-19  Emil A Eklund  <eae@chromium.org>
3406
3407         Correct usage of LayoutUnits in page code in preparation for turning on subpixel layout
3408         https://bugs.webkit.org/show_bug.cgi?id=81538
3409
3410         Reviewed by Eric Seidel.
3411
3412         Fix usage of LayoutUnits and conversions between types in page code.
3413
3414         No new tests.
3415
3416         * page/DOMWindow.cpp:
3417         (WebCore::DOMWindow::innerHeight):
3418         (WebCore::DOMWindow::innerWidth):
3419         Explicitly cast long to int. InspectorInstrumentation requires a long and
3420         FractionalLayoutUnit has no constructor that takes long.
3421         
3422         * page/EventHandler.cpp:
3423         (WebCore::EventHandler::sendContextMenuEventForKey):
3424         Pixel snap overflow rect as selection rects are integer based.
3425         
3426         * page/FrameView.cpp:
3427         (WebCore::FrameView::scrollContentsFastPath):
3428         Pixel snap repaint rects when computing update rect as all scrolling is
3429         done on integer bounds.
3430         
3431         * page/GestureTapHighlighter.cpp:
3432         Change rects vector to IntRect as addFocusRingRects operates on IntRects.
3433         
3434         * page/Page.cpp:
3435         (WebCore::Page::addRelevantRepaintedObject):
3436         (WebCore::Page::addRelevantUnpaintedObject):
3437         Change paint methods to take a LayoutRect paint rect.
3438         
3439         * page/SpatialNavigation.cpp:
3440         (WebCore::distanceDataForNode):
3441         Change distance calculation to use floats instead of converting to float
3442         at the end.
3443
3444 2012-03-19  David Hyatt  <hyatt@apple.com>
3445
3446         https://bugs.webkit.org/show_bug.cgi?id=81553
3447         
3448         [New Multicolumn] Stub out classes to represent sets of column region boxes.
3449
3450         RenderRegionSet is an abstract class representing a set of contiguous anonymous
3451         same-size regions.
3452         
3453         RenderMultiColumnSet derives from RenderRegionSet and represents a set of contiguous
3454         columns. It will also handle unique column behavior like column rule painting.
3455         
3456         Eventually there will be a RenderPageSet derived class for printing/pages, but
3457         that will come later after I finish rebuilding multi-column layout.
3458
3459         Reviewed by Dan Bernstein.
3460
3461         * GNUmakefile.list.am:
3462         * Target.pri:
3463         * WebCore.gypi:
3464         * WebCore.vcproj/WebCore.vcproj:
3465         * WebCore.xcodeproj/project.pbxproj:
3466         * rendering/RenderMultiColumnSet.cpp: Added.
3467         (WebCore):
3468         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
3469         (WebCore::RenderMultiColumnSet::renderName):
3470         * rendering/RenderMultiColumnSet.h: Added.
3471         (WebCore):
3472         (RenderMultiColumnSet):
3473         * rendering/RenderRegionSet.cpp: Added.
3474         (WebCore):
3475         (WebCore::RenderRegionSet::RenderRegionSet):
3476         * rendering/RenderRegionSet.h: Added.
3477         (WebCore):
3478         (RenderRegionSet):
3479
3480 2012-03-19  Raymond Toy  <rtoy@google.com>
3481
3482         Add playback state for AudioBufferSourceNode and add number of active nodes
3483         https://bugs.webkit.org/show_bug.cgi?id=79701
3484
3485         Add a playback state to AudioBufferSourceNode so that the user can
3486         tell if the node is scheduled, playing, or finished.
3487
3488         For an AudioContext, add a count of the number of
3489         AudioBufferSourceNode's that are active (playing audio).
3490
3491         Deleted m_isPlaying and m_hasFinished. For the record, m_isPlaying
3492         is the same as a playbackState of SCHEDULED_STATE or PLAYING_STATE.
3493         m_hasFinished is equivalent to a playbackState of FINISHED_STATE.
3494         
3495         Reviewed by Chris Rogers.
3496
3497         Test: webaudio/audiobuffersource-playbackState.html
3498
3499         * webaudio/AudioBufferSourceNode.cpp:
3500         (WebCore):
3501         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
3502         initialize playbackState, remove m_isPlaying, m_hasFinished.
3503         (WebCore::AudioBufferSourceNode::process): Update playbackState
3504         (WebCore::AudioBufferSourceNode::finish): Update playbackState
3505         (WebCore::AudioBufferSourceNode::noteOn): Update playbackState
3506         (WebCore::AudioBufferSourceNode::noteGrainOn): Update playbackState
3507         (WebCore::AudioBufferSourceNode::noteOff): Use playbackState 
3508         * webaudio/AudioBufferSourceNode.h:
3509         (AudioBufferSourceNode): Define states, remove m_isPlaying, m_hasFinished.
3510         (WebCore::AudioBufferSourceNode::playbackState): Added.
3511         * webaudio/AudioBufferSourceNode.idl: Define constants for the
3512         playback state, add attribute playbackState.
3513         * webaudio/AudioContext.cpp:
3514         (WebCore::AudioContext::activeSourceCount): Added.
3515         (WebCore::AudioContext::incrementActiveSourceCount): Added.
3516         (WebCore::AudioContext::decrementActiveSourceCount): Added.
3517         * webaudio/AudioContext.h:
3518         (AudioContext):
3519         * webaudio/AudioContext.idl: Add attribute activeSourceCount.
3520
3521 2012-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3522
3523         Unreviewed, rolling out r109014.
3524         http://trac.webkit.org/changeset/109014
3525         https://bugs.webkit.org/show_bug.cgi?id=81551
3526
3527         Causing crashes (Requested by inferno-sec on #webkit).
3528
3529         * rendering/style/RenderStyle.h:
3530
3531 2012-03-19  Tony Chang  <tony@chromium.org>
3532
3533         Unreviewed, remove headers that no longer exist or moved in WebCore.gypi.
3534
3535         * WebCore.gypi:
3536
3537 2012-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
3538
3539         [CSSRegions]Implement NamedFlow::contentNodes attribute
3540         https://bugs.webkit.org/show_bug.cgi?id=80134
3541
3542         Reviewed by David Hyatt.
3543
3544         The named flow content nodes collection contains those nodes with webkitFlowInto property set to 'flow'.
3545         In the list, the nodes are placed in document order. Nodes with display:none are also part of the list.
3546         The list of nodes is returned as a static node list.
3547
3548         Test: fast/regions/webkit-named-flow-content-nodes.html
3549
3550         * dom/Document.cpp:
3551         (WebCore::Document::webkitGetFlowByName):
3552         * dom/Document.h:
3553         * dom/Element.cpp:
3554         (WebCore::Element::detach):
3555         * dom/NodeRenderingContext.cpp:
3556         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
3557         * dom/WebKitNamedFlow.cpp:
3558         (WebCore::WebKitNamedFlow::contentNodes):
3559         (WebCore):
3560         (WebCore::WebKitNamedFlow::registerContentNode):
3561         * dom/WebKitNamedFlow.h:
3562         (WebCore):
3563         (WebKitNamedFlow):
3564         (WebCore::WebKitNamedFlow::unregisterContentNode):
3565         * dom/WebKitNamedFlow.idl:
3566
3567 2012-03-19  Xingnan Wang  <xingnan.wang@intel.com>
3568
3569         ConvolverNode should not incur processing latency
3570         https://bugs.webkit.org/show_bug.cgi?id=75564
3571
3572         Reviewed by Chris Rogers.
3573
3574         Add the DirectConvolver instead of FFTConvolver for the processing of the leading portion of impulse response.
3575
3576         * WebCore.gypi:
3577         * platform/audio/DirectConvolver.cpp: Added.
3578         (WebCore):
3579         (WebCore::DirectConvolver::DirectConvolver):
3580         (WebCore::DirectConvolver::process):
3581         (WebCore::DirectConvolver::reset):
3582         * platform/audio/DirectConvolver.h: Added.
3583         (WebCore):
3584         (DirectConvolver):
3585         (WebCore::DirectConvolver::convolveSize):
3586         * platform/audio/ReverbConvolver.cpp:
3587         (WebCore::ReverbConvolver::ReverbConvolver):
3588         * platform/audio/ReverbConvolver.h:
3589         * platform/audio/ReverbConvolverStage.cpp:
3590         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3591         (WebCore::ReverbConvolverStage::process):
3592         (WebCore::ReverbConvolverStage::reset):
3593         * platform/audio/ReverbConvolverStage.h:
3594         (WebCore):
3595         (ReverbConvolverStage):
3596
3597 2012-03-19  Anders Carlsson  <andersca@apple.com>
3598
3599         Find in page highlights get out of place when scrolling
3600         https://bugs.webkit.org/show_bug.cgi?id=81543
3601
3602         Reviewed by Sam Weinig.
3603
3604         Remove a now unused function from GraphicsLayer.
3605
3606         * platform/graphics/GraphicsLayer.h:
3607         (GraphicsLayer):
3608         * platform/graphics/ca/GraphicsLayerCA.h:
3609         (GraphicsLayerCA):
3610
3611 2012-03-19  David Hyatt  <hyatt@apple.com>
3612
3613         https://bugs.webkit.org/show_bug.cgi?id=81534
3614
3615         [New Multicolumn] Make the multi-column block re-layout its children when the column width/count change.
3616         Cache the count/width on the multi-column block for easy access.
3617
3618         Reviewed by Antti Koivisto.
3619
3620         * rendering/RenderBlock.cpp:
3621         (WebCore::RenderBlock::recomputeLogicalWidth):
3622         (WebCore::RenderBlock::layoutBlock):
3623         * rendering/RenderBlock.h:
3624         Virtualize the code that recomputes the logical width for a block and sets relayoutChildren to true,
3625         so that column code can subclass the method to also check for changes in the column width/count.
3626
3627         * rendering/RenderMultiColumnBlock.cpp:
3628         (WebCore::RenderMultiColumnBlock::computeColumnCountAndWidth):
3629         The column count/width determination algorithm in one method on the RenderMultiColumnBlock. It's a copy
3630         of the code from RenderBlock (which will be going away eventually).
3631
3632         (WebCore::RenderMultiColumnBlock::recomputeLogicalWidth):
3633         * rendering/RenderMultiColumnBlock.h:
3634         (RenderMultiColumnBlock):
3635         Subclassed method to also check for changes in the column width to set relayoutChildren to true.
3636
3637 2012-03-19  Michal Mocny  <mmocny@google.com>
3638
3639         [chromium] Updating WebGraphicsContext3D MemoryAllocation callback to accept a struct with have backbuffer suggestion.
3640         https://bugs.webkit.org/show_bug.cgi?id=81279
3641
3642         Reviewed by James Robinson.
3643
3644         * platform/graphics/chromium/Extensions3DChromium.h:
3645         (GpuMemoryAllocationCHROMIUM):
3646         (WebCore::Extensions3DChromium::GpuMemoryAllocationCHROMIUM::GpuMemoryAllocationCHROMIUM):
3647         (GpuMemoryAllocationChangedCallbackCHROMIUM):
3648
3649 2012-03-19  Tony Chang  <tony@chromium.org>
3650
3651         flex-item-align: stretch should only grow, never shrink
3652         https://bugs.webkit.org/show_bug.cgi?id=80882
3653
3654         Reviewed by Ojan Vafai.
3655
3656         New test cases in css3/flexbox/flex-align-stretch.html.
3657
3658         * rendering/RenderFlexibleBox.cpp:
3659         (WebCore::RenderFlexibleBox::alignChildren): Move stretch code into a separate function.
3660         (WebCore::RenderFlexibleBox::alignChildStretch): Add an early return if our height is shrinking.
3661         (WebCore):
3662         * rendering/RenderFlexibleBox.h:
3663         (RenderFlexibleBox):
3664
3665 2012-03-19  Vsevolod Vlasov  <vsevik@chromium.org>
3666
3667         Web Inspector: Implement snippets evaluation.
3668         https://bugs.webkit.org/show_bug.cgi?id=81334
3669
3670         Reviewed by Pavel Feldman.
3671
3672         * inspector/front-end/ConsoleView.js:
3673         (WebInspector.ConsoleView.prototype.evaluateUsingTextPrompt):
3674         (WebInspector.ConsoleView.prototype._enterKeyPressed):
3675         * inspector/front-end/ScriptMapping.js:
3676         (WebInspector.MainScriptMapping):
3677         * inspector/front-end/SnippetsModel.js:
3678         * inspector/front-end/externs.js:
3679         (WebInspector.evaluateInConsole):
3680         * inspector/front-end/inspector.js:
3681         (WebInspector.evaluateInConsole):
3682
3683 2012-03-19  Tommy Widenflycht  <tommyw@google.com>
3684
3685         MediaStream API (JSEP): Introducing PeerConnection00Handler
3686         https://bugs.webkit.org/show_bug.cgi?id=81333
3687
3688         Reviewed by Adam Barth.
3689
3690         In preparation of the last WebCore patch that will introduce PeerConnection00 here's its platform representation.
3691
3692         Not possible to test until the entire JSEP feature is commited.
3693
3694         * GNUmakefile.list.am:
3695         * WebCore.gypi:
3696         * platform/mediastream/PeerConnection00Handler.cpp: Added.
3697         (WebCore):
3698         (WebCore::PeerConnection00Handler::create):
3699         (WebCore::PeerConnection00Handler::PeerConnection00Handler):
3700         (WebCore::PeerConnection00Handler::~PeerConnection00Handler):
3701         (WebCore::PeerConnection00Handler::createOffer):
3702         (WebCore::PeerConnection00Handler::createAnswer):
3703         (WebCore::PeerConnection00Handler::setLocalDescription):
3704         (WebCore::PeerConnection00Handler::setRemoteDescription):
3705         (WebCore::PeerConnection00Handler::localDescription):
3706         (WebCore::PeerConnection00Handler::remoteDescription):
3707         (WebCore::PeerConnection00Handler::startIce):
3708         (WebCore::PeerConnection00Handler::processIceMessage):
3709         (WebCore::PeerConnection00Handler::addStream):
3710         (WebCore::PeerConnection00Handler::removeStream):
3711         (WebCore::PeerConnection00Handler::stop):
3712         * platform/mediastream/PeerConnection00Handler.h: Added.
3713         (WebCore):
3714         (PeerConnection00Handler):
3715         * platform/mediastream/PeerConnection00HandlerClient.h: Added.
3716         (WebCore):
3717         (PeerConnection00HandlerClient):
3718         (WebCore::PeerConnection00HandlerClient::~PeerConnection00HandlerClient):
3719
3720 2012-03-19  David Reveman  <reveman@chromium.org>
3721
3722         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
3723         https://bugs.webkit.org/show_bug.cgi?id=80988
3724
3725         Reviewed by Adrienne Walker.
3726
3727         Expose EXT_occlusion_query API to WebKit compositor. Add
3728         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
3729         enums.
3730
3731         * platform/graphics/chromium/Extensions3DChromium.h:
3732         (Extensions3DChromium):
3733
3734 2012-03-19  Mike Lawther  <mikelawther@chromium.org>
3735
3736         CSS3 calc: make mask images work with mixed percent/absolute
3737         https://bugs.webkit.org/show_bug.cgi?id=81477
3738
3739         Reviewed by Ojan Vafai.
3740
3741         Test: css3/calc/simple-composited-mask-expected.html
3742
3743         * css/CSSStyleSelector.cpp:
3744         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3745
3746 2012-03-19  Mark Pilgrim  <pilgrim@chromium.org>
3747
3748         Style cleanup in Modules/filesystem/
3749         https://bugs.webkit.org/show_bug.cgi?id=81520
3750
3751         Reviewed by Adam Barth.
3752
3753         No new tests, all existing tests pass.
3754
3755         * Modules/filesystem/AsyncFileWriter.h:
3756         (WebCore::AsyncFileWriter::~AsyncFileWriter):
3757         * Modules/filesystem/AsyncFileWriterClient.h:
3758         (WebCore::AsyncFileWriterClient::~AsyncFileWriterClient):
3759         * Modules/filesystem/DOMFilePath.cpp:
3760         (WebCore::DOMFilePath::getDirectory):
3761         * Modules/filesystem/DOMFilePath.h:
3762         (DOMFilePath):
3763         * Modules/filesystem/DOMFileSystemBase.h:
3764         (DOMFileSystemBase):
3765         * Modules/filesystem/DirectoryEntry.h:
3766         * Modules/filesystem/DirectoryEntrySync.h:
3767         * Modules/filesystem/EntryArray.h:
3768         (EntryArray):
3769         * Modules/filesystem/FileEntry.h:
3770         (FileEntry):
3771         * Modules/filesystem/FileSystemCallbacks.h:
3772         (FileSystemCallbacksBase):
3773         * Modules/filesystem/FileWriter.cpp:
3774         (WebCore::FileWriter::abort):
3775
3776 2012-03-19  Mike Lawther  <mikelawther@chromium.org>
3777
3778         CSS3 calc: background positioning works with mixed percent/absolute expressions
3779         https://bugs.webkit.org/show_bug.cgi?id=81478
3780
3781         Reviewed by Ojan Vafai.
3782
3783         Test: css3/calc/background-position-parsing-expected.html
3784
3785         * css/CSSStyleSelector.cpp:
3786         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3787
3788 2012-03-19  Alexander Færøy  <alexander.faeroy@nokia.com>
3789
3790         Add NodeRenderStyle.h to TouchAdjustment.cpp
3791
3792         Unreviewed build fix after r111185.
3793
3794         * page/TouchAdjustment.cpp:
3795
3796 2012-03-19  Leo Yang  <leo.yang@torchmobile.com.cn>
3797
3798         [BlackBerry] Add PlatformMediaEngineClassName for blackberry in platform/graphics/MediaPlayer.cpp
3799         https://bugs.webkit.org/show_bug.cgi?id=81489
3800
3801         Reviewed by Rob Buis.
3802
3803         * platform/graphics/MediaPlayer.cpp:
3804
3805 2012-03-19  Leo Yang  <leo.yang@torchmobile.com.cn>
3806
3807         [BlackBerry] Upstream the BlackBerry change to platform/PlatformKeyboardEvent.h
3808         https://bugs.webkit.org/show_bug.cgi?id=81312
3809
3810         Reviewed by Rob Buis.
3811
3812         * platform/PlatformKeyboardEvent.h:
3813         (Platform):
3814         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3815         (PlatformKeyboardEvent):
3816         (WebCore::PlatformKeyboardEvent::unmodifiedCharacter):
3817         Add BlackBerry specific constructor and member fields.
3818         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
3819         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3820         Change the parameter type to const reference type to adapt to the declaration.
3821
3822 2012-03-19  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3823
3824         Select best target for tap gesture.
3825         https://bugs.webkit.org/show_bug.cgi?id=78801
3826
3827         Reviewed by Kenneth Rohde Christiansen.
3828         IntRect changes reviewed by Dave Hyatt.
3829
3830         The new API is available through EventHandler::bestClickableNodeForTouchPoint, but
3831         implementation details have been placed in page/TouchAdjustment.
3832
3833         The default hit detection is performed by measuring the distance to the center
3834         lines of the absolute rects of the hit nodes. Absolute rects are used instead
3835         of bounding rects to make hit-detecting against links over line breaks. Distance
3836         to center line is used to make it easier to hit small links next to large links.
3837         For line-rects the distance to the center-line is a better expression of the distance
3838         to a rectangles center than the distance to the center-point.
3839
3840         Tests: touchadjustment/event-triggered-widgets.html
3841                touchadjustment/html-label.html
3842                touchadjustment/nested-touch.html
3843                touchadjustment/touch-inlines.html
3844
3845         * Target.pri:
3846         * page/EventHandler.cpp:
3847         (WebCore::EventHandler::handleGestureTap):
3848         (WebCore::EventHandler::bestClickableNodeForTouchPoint):
3849         * page/EventHandler.h:
3850         * page/TouchAdjustment.cpp: Added.
3851         (WebCore::TouchAdjustment::QuadForHitTest::QuadForHitTest):
3852         (WebCore::TouchAdjustment::QuadForHitTest::node):
3853         (WebCore::TouchAdjustment::QuadForHitTest::quad):
3854         (WebCore::TouchAdjustment::QuadForHitTest::boundingBox):
3855         (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
3856         (WebCore::TouchAdjustment::appendAbsoluteQuadsForNodeToHitTestList):
3857         (WebCore::TouchAdjustment::compileQuadsForHitTesting):
3858         (WebCore::TouchAdjustment::distanceSquaredToQuadCenterLine):
3859         (WebCore::TouchAdjustment::findNodeWithLowestMetric):
3860         (WebCore::findBestClickableCandidate):
3861         * page/TouchAdjustment.h: Added.
3862         * platform/graphics/FloatQuad.h:
3863         (WebCore::FloatQuad::center):
3864         * platform/graphics/IntPoint.h:
3865         (WebCore::IntPoint::distanceSquaredToPoint):
3866         * platform/graphics/IntRect.cpp:
3867         (WebCore::distanceToInterval):
3868         (WebCore::IntRect::differenceToPoint):
3869         (WebCore::IntRect::differenceFromCenterLineToPoint):
3870         * platform/graphics/IntRect.h:
3871         (WebCore::IntRect::distanceSquaredToPoint):
3872         (WebCore::IntRect::distanceSquaredFromCenterLineToPoint):
3873         * platform/graphics/IntSize.h:
3874         (WebCore::IntSize::diagonalLengthSquared):
3875         * testing/Internals.cpp:
3876         (WebCore::Internals::touchPositionAdjustedToBestClickableNode):
3877         (WebCore::Internals::touchNodeAdjustedToBestClickableNode):
3878         * testing/Internals.h:
3879         * testing/Internals.idl:
3880
3881 2012-03-19  Mark Pilgrim  <pilgrim@chromium.org>
3882
3883         Add ENABLED(FILE_SYSTEM) to DOMFilePath.h
3884         https://bugs.webkit.org/show_bug.cgi?id=81393
3885
3886         Reviewed by Kentaro Hara.
3887
3888         No new tests, all existing tests pass.
3889
3890         * Modules/filesystem/DOMFilePath.h:
3891
3892 2012-03-19  Max Vujovic  <mvujovic@adobe.com>
3893
3894         inspector highlight of SVG root element with viewbox does not match dimensions of element
3895         https://bugs.webkit.org/show_bug.cgi?id=78037
3896
3897         Reviewed by Nikolas Zimmermann.
3898
3899         Functions such as RenderBox::absoluteQuads and DOMNodeHighlighter::getOrDrawNodeHighlight
3900         eventually call RenderSVGRoot::mapLocalToContainer, passing along local CSS box coordinates.
3901
3902         However, before this patch, RenderSVGRoot::mapLocalToContainer expected local SVG viewport
3903         coordinates. This caused the inspector highlight to be incorrectly sized and positioned.
3904
3905         Now, RenderSVGRoot::mapLocalToContainer expects local CSS box coordinates, like other HTML
3906         renderers.
3907
3908         Test: inspector/elements/highlight-svg-root.html
3909
3910         * dom/Element.cpp:
3911         (WebCore::Element::getBoundingClientRect):
3912             Now, the SVG root element can use the code path for elements with CSS boxes to calculate
3913             its bounding client rect.
3914
3915         * rendering/svg/RenderSVGRoot.cpp:
3916         (WebCore::RenderSVGRoot::mapLocalToContainer):
3917             RenderSVGRoot::mapLocalToContainer no longer needs to apply the
3918             localToBorderBoxTransform to convert from local SVG viewport coordinates to local CSS
3919             box coordinates. Now, it receives local CSS box coordinates.
3920
3921         * rendering/svg/RenderSVGRoot.h:
3922         (WebCore::RenderSVGRoot::localToBorderBoxTransform):
3923             RenderSVGRoot::localToBorderBoxTransform has been exposed for child elements in the SVG
3924             namespace to use when mapping from local SVG viewport coordinates to local CSS box
3925             coordinates.
3926
3927         (RenderSVGRoot):
3928         * rendering/svg/SVGRenderSupport.cpp:
3929         (WebCore::SVGRenderSupport::mapLocalToContainer):
3930             Elements in the SVG namespace should now apply the localToBorderBoxTransform at the
3931             SVG/HTML boundary (aka RenderSVGRoot) when mapping their coordinates up the render tree.
3932
3933         * svg/SVGSVGElement.cpp:
3934         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
3935             Same as above. This method is eventually used in the SVGLocatable::getScreenCTM
3936             calculation.
3937
3938 2012-03-19  Hironori Bono  <hbono@chromium.org>
3939
3940         Add a copy constructor to CollapsedBorderValue
3941         https://bugs.webkit.org/show_bug.cgi?id=81502
3942
3943         Reviewed by Hajime Morita.
3944
3945         Due to the lack of this copy constructor, GCC (x86) creates a broken copy
3946         constructor and it causes a build break on Google Chrome.
3947
3948         * rendering/style/CollapsedBorderValue.h:
3949         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
3950         (CollapsedBorderValue):
3951
3952 2012-03-18  Matt Falkenhagen  <falken@chromium.org>
3953
3954         Fallback to common script when per-script font setting is the empty string
3955         https://bugs.webkit.org/show_bug.cgi?id=81329
3956
3957         Reviewed by Kent Tamura.
3958
3959         Tests: fast/text/international/font-fallback-to-common-script.html
3960
3961         * page/Settings.cpp:
3962         (WebCore::setGenericFontFamilyForScript): Remove the setting when the per-script font family is the empty string.
3963
3964 2012-03-18  Luke Macpherson   <macpherson@chromium.org>
3965
3966         Remove remnants of code that assume Lengths are 28 bit integers.
3967         https://bugs.webkit.org/show_bug.cgi?id=67976
3968
3969         Reviewed by Eric Seidel.
3970
3971         Test: LayoutTests/fast/table/max-width-integer-overflow-expected.html
3972
3973         * css/CSSPrimitiveValue.cpp:
3974         (WebCore::CSSPrimitiveValue::computeLength):
3975         Bound by INT_MAX and INT_MIN instead of 28 bit bounds.
3976         * css/CSSStyleApplyProperty.cpp:
3977         (WebCore::ApplyPropertyBorderRadius::applyValue):
3978         Use PrimitiveValue::computeLength function directly.
3979         * platform/Length.h:
3980         Remove 28 bit integer limit constants.
3981         * rendering/AutoTableLayout.cpp:
3982         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
3983         Use std::numeric_limits.
3984
3985 2012-03-16  Shinya Kawanaka  <shinyak@chromium.org>
3986
3987         Should remove RuntimeEnabledFeatures::multipleShadowSubtreesEnabled
3988         https://bugs.webkit.org/show_bug.cgi?id=79307
3989
3990         Reviewed by Dimitri Glazkov.
3991
3992         Since RuntimeEnabledFeatures::multipleShadowSubtreesEnabled was introduced for
3993         temporal unstability of multiple shadow roots. We should remove it now, and
3994         enable it by default.
3995
3996         Test: fast/dom/shadow/shadow-root-js-api.html should cover this change.
3997         The other shadow related tests should also covers this change.
3998
3999         * WebCore.exp.in:
4000         * bindings/generic/RuntimeEnabledFeatures.cpp:
4001         (WebCore):
4002         * bindings/generic/RuntimeEnabledFeatures.h:
4003         (RuntimeEnabledFeatures):
4004         * dom/ShadowRoot.cpp:
4005         (WebCore::ShadowRoot::create):
4006         * dom/ShadowTree.cpp:
4007         (WebCore::ShadowTree::addShadowRoot):
4008         * testing/Internals.cpp:
4009         * testing/Internals.h:
4010         (Internals):
4011         * testing/Internals.idl:
4012
4013 2012-03-18  Dana Jansens  <danakj@chromium.org>
4014
4015         [chromium] Don't occlude on main-thread behind layers/surfaces with impl-thread animations
4016         https://bugs.webkit.org/show_bug.cgi?id=81354
4017
4018         Reviewed by Adrienne Walker.
4019
4020         Layers and surfaces can have an animating opacity or translation on the
4021         impl thread. In this case, the main thread does not know their actual
4022         values, and treats these values as "unknowns". This means we can't use
4023         them for marking areas of the screen as occluded, and we can't consider
4024         a part of a layer occluded in a space that we can not reliably transform
4025         to.
4026
4027         Unit test: CCOcclusionTrackerTestAnimationOpacity0OnMainThread
4028                    CCOcclusionTrackerTestAnimationOpacity1OnMainThread
4029                    CCOcclusionTrackerTestAnimationTranslateOnMainThread
4030
4031         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
4032         (WebCore::layerOpacityKnown):
4033         (WebCore::layerTransformsToTargetKnown):
4034         (WebCore::layerTransformsToScreenKnown):
4035         (WebCore):
4036         (WebCore::surfaceOpacityUnknown):
4037         (WebCore::surfaceTransformsToTargetUnknown):
4038         (WebCore::surfaceTransformsToScreenUnknown):
4039         (WebCore::::finishedTargetRenderSurface):
4040         (WebCore::contentToScreenSpaceTransform):
4041         (WebCore::contentToTargetSurfaceTransform):
4042         (WebCore::::markOccludedBehindLayer):
4043         (WebCore::::occluded):
4044         (WebCore::::unoccludedContentRect):
4045
4046 2012-03-18  Dana Jansens  <danakj@chromium.org>
4047
4048         [chromium] Animating opacity is not opaque and should create a render surface on main thread
4049         https://bugs.webkit.org/show_bug.cgi?id=81401
4050
4051         Reviewed by James Robinson.
4052
4053         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy