Not correctly recalculating layout for elements within nested SVG elements
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-02-22  Bear Travis  <betravis@adobe.com>
2
3         Not correctly recalculating layout for elements within nested SVG elements
4         https://bugs.webkit.org/show_bug.cgi?id=77535
5
6         Reviewed by Dirk Schulze.
7
8         Relatively positioned text is not correctly updating its position when the
9         size of its nearest viewport changes. Updating to mark text for layout when
10         viewPort size changes.
11         
12         Test: svg/repaint/inner-svg-change-viewPort-relative.svg
13
14         * rendering/svg/SVGRenderSupport.cpp:
15         (WebCore::SVGRenderSupport::layoutChildren):
16
17 2012-02-22  Alexei Svitkine  <asvitkine@chromium.org>
18
19         [chromium] Fix remaining compositing/rubberbanding test failures
20         https://bugs.webkit.org/show_bug.cgi?id=78008
21
22         These were happening due to the fact that ScrollView wasn't updating
23         the overhang layer when the contentsSize was updated. This is necessary
24         because calculateOverhangAreasForPainting() takes the contentsSize into
25         account when determining whether the overhang areas are visible.
26
27         Reviewed by James Robinson.
28
29         Re-enabled the following tests with updated baselines:
30         * platform/chromium/compositing/rubberbanding/transform-overhang-e-expected.png:
31         * platform/chromium/compositing/rubberbanding/transform-overhang-s-expected.png:
32         * platform/chromium/compositing/rubberbanding/transform-overhang-se-expected.png:
33         * platform/chromium/test_expectations.txt:
34
35         * platform/ScrollView.cpp:
36         (WebCore::ScrollView::setContentsSize):
37         (WebCore::ScrollView::scrollContents):
38         (WebCore::ScrollView::updateOverhangAreas):
39         (WebCore):
40         * platform/ScrollView.h:
41         (ScrollView):
42
43 2012-02-22  Vsevolod Vlasov  <vsevik@chromium.org>
44
45         Web Inspector: [Regression] network worker tests crash on qt.
46         https://bugs.webkit.org/show_bug.cgi?id=79263
47
48         Reviewed by Pavel Feldman.
49
50         * inspector/InspectorPageAgent.cpp:
51         (WebCore::InspectorPageAgent::createDecoder):
52         (WebCore::InspectorPageAgent::cachedResourceContent):
53
54 2012-02-22  Adrienne Walker  <enne@google.com>
55
56         Unreviewed, rolling out r108518.
57         http://trac.webkit.org/changeset/108518
58         https://bugs.webkit.org/show_bug.cgi?id=75864
59
60         Breaks surfaceOcclusionWithOverlappingSiblingSurfaces unit test.
61
62         * WebCore.gypi:
63         * platform/graphics/chromium/cc/CCLayerIterator.cpp:
64         (WebCore):
65         (WebCore::CCLayerIteratorActions::BackToFront::begin):
66         (WebCore::CCLayerIteratorActions::BackToFront::end):
67         (WebCore::CCLayerIteratorActions::BackToFront::next):
68         (WebCore::CCLayerIteratorActions::FrontToBack::begin):
69         (WebCore::CCLayerIteratorActions::FrontToBack::end):
70         (WebCore::CCLayerIteratorActions::FrontToBack::next):
71         (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree):
72         * platform/graphics/chromium/cc/CCLayerIterator.h:
73         (WebCore):
74         (WebCore::CCLayerIterator::CCLayerIterator):
75         (WebCore::CCLayerIterator::operator++):
76         (WebCore::CCLayerIterator::operator==):
77         (WebCore::CCLayerIterator::operator->):
78         (WebCore::CCLayerIterator::operator*):
79         (WebCore::CCLayerIterator::representsTargetRenderSurface):
80         (WebCore::CCLayerIterator::representsContributingRenderSurface):
81         (WebCore::CCLayerIterator::targetRenderSurfaceLayer):
82         (CCLayerIterator):
83         (BackToFront):
84         (FrontToBack):
85         * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Added.
86         (WebCore):
87         (CCLayerIteratorPositionValue):
88         (WebCore::CCLayerIteratorPosition::CCLayerIteratorPosition):
89         (CCLayerIteratorPosition):
90         (WebCore::CCLayerIteratorPosition::currentLayer):
91         (WebCore::CCLayerIteratorPosition::currentLayerRepresentsContributingRenderSurface):
92         (WebCore::CCLayerIteratorPosition::currentLayerRepresentsTargetRenderSurface):
93         (WebCore::CCLayerIteratorPosition::targetRenderSurfaceLayer):
94         (WebCore::CCLayerIteratorPosition::targetRenderSurface):
95         (WebCore::CCLayerIteratorPosition::targetRenderSurfaceChildren):
96         (WebCore::CCLayerIteratorPosition::operator==):
97
98 2012-02-22  Dan Bernstein  <mitz@apple.com>
99
100         REGRESSION (r62632): page-break-inside: avoid is ignored
101         https://bugs.webkit.org/show_bug.cgi?id=79262
102
103         Reviewed by Adele Peterson.
104
105         This was disabled in r62632 because of <http://webkit.org/b/41532>. Changes to the
106         pagination code since then have invalidated that bug, so enabling the feature again does not
107         re-introduce the bug.
108
109         Updated expected results for printing/page-break-inside-avoid.html.
110
111         * rendering/RenderBlock.cpp:
112         (WebCore::RenderBlock::adjustForUnsplittableChild):
113
114 2012-02-22  Philippe Normand  <pnormand@igalia.com>
115
116         [GStreamer] webkitwebsrc: use HTTP referer provided by MediaPlayer
117         https://bugs.webkit.org/show_bug.cgi?id=79236
118
119         Reviewed by Martin Robinson.
120
121         Store a pointer to the MediaPlayer object in the private structure
122         of the WebKitWebSrc element so we can call its public methods,
123         like ::referrer().
124
125         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
126         (WebCore::MediaPlayerPrivateGStreamer::sourceChanged):
127         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
128         (_WebKitWebSrcPrivate):
129         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
130
131 2012-02-22  Martin Robinson  <mrobinson@igalia.com>
132
133         [GTK] Clean build is broken when using make -j
134         https://bugs.webkit.org/show_bug.cgi?id=76388
135
136         No new tests. This is just a build fix.
137
138         Use order-only dependencies to ensure that built sources are built before
139         files that depend on them.
140
141         * GNUmakefile.am: Establish an order-only dependency on some built sources before starting
142         to build non-generated sources. Rename some temporary files and variables to be more consistent.
143         * bindings/gobject/GNUmakefile.am: Updated to reflect new variable names.
144
145 2012-02-22  Dana Jansens  <danakj@chromium.org>
146
147         [Chromium] New CCOcclusionTracker class with tests
148         https://bugs.webkit.org/show_bug.cgi?id=78549
149
150         Reviewed by James Robinson.
151
152         Adds a CCOcclusionTrackerBase template class that is able to track occlusion
153         of layers while traversing the layer tree from front-to-back, with typedefed
154         versions for the main and impl threads.
155
156         At each step of the front-to-back traversal, the class should be notified of
157         changes to the current render target, and when done working with a layer, the
158         layer is added the tracked occlusion.
159
160         The class provides tests for checking if a rect in content space
161         for a layer/surface is occluded by others in front of it.
162
163         Unit tests: CCOcclusionTrackerTest.cpp
164
165         * WebCore.gypi:
166         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Added.
167         (WebCore):
168         (WebCore::::enterTargetRenderSurface):
169         (WebCore::::finishedTargetRenderSurface):
170         (WebCore::transformSurfaceOpaqueRegion):
171         (WebCore::::leaveToTargetRenderSurface):
172         (WebCore::contentToScreenSpaceTransform):
173         (WebCore::contentToTargetSurfaceTransform):
174         (WebCore::computeOcclusionBehindLayer):
175         (WebCore::::markOccludedBehindLayer):
176         (WebCore::testContentRectOccluded):
177         (WebCore::::occluded):
178         (WebCore::::surfaceOccluded):
179         (WebCore::rectSubtractRegion):
180         (WebCore::computeUnoccludedContentRect):
181         (WebCore::::unoccludedContentRect):
182         (WebCore::::surfaceUnoccludedContentRect):
183         (WebCore::::currentOcclusionInScreenSpace):
184         (WebCore::::currentOcclusionInTargetSurface):
185         * platform/graphics/chromium/cc/CCOcclusionTracker.h: Added.
186         (WebCore):
187         (CCOcclusionTrackerBase):
188         (WebCore::CCOcclusionTrackerBase::CCOcclusionTrackerBase):
189         (StackObject):
190
191 2012-02-22  Joshua Bell  <jsbell@chromium.org>
192
193         [Chromium] IndexedDB: Integrate with about:tracing
194         https://bugs.webkit.org/show_bug.cgi?id=78831
195
196         Annotate interesting IDB functions so they show up in the
197         tracing utility included in the Chromium port.
198
199         Reviewed by Tony Chang.
200
201         * WebCore.gypi:
202         * WebCore.xcodeproj/project.pbxproj:
203         * bindings/v8/IDBBindingUtilities.cpp:
204         (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
205         (WebCore::injectIDBKeyIntoSerializedValue):
206         * storage/IDBCursor.cpp:
207         (WebCore::IDBCursor::direction):
208         (WebCore::IDBCursor::key):
209         (WebCore::IDBCursor::primaryKey):
210         (WebCore::IDBCursor::value):
211         (WebCore::IDBCursor::update):
212         (WebCore::IDBCursor::continueFunction):
213         (WebCore::IDBCursor::deleteFunction):
214         * storage/IDBCursorBackendImpl.cpp:
215         (WebCore::IDBCursorBackendImpl::direction):
216         (WebCore::IDBCursorBackendImpl::key):
217         (WebCore::IDBCursorBackendImpl::primaryKey):
218         (WebCore::IDBCursorBackendImpl::value):
219         (WebCore::IDBCursorBackendImpl::update):
220         (WebCore::IDBCursorBackendImpl::continueFunction):
221         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
222         (WebCore::IDBCursorBackendImpl::deleteFunction):
223         (WebCore::IDBCursorBackendImpl::prefetchContinue):
224         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
225         (WebCore::IDBCursorBackendImpl::prefetchReset):
226         (WebCore::IDBCursorBackendImpl::close):
227         * storage/IDBDatabase.cpp:
228         (WebCore::IDBDatabase::dispatchEvent):
229         * storage/IDBIndex.cpp:
230         (WebCore::IDBIndex::openCursor):
231         (WebCore::IDBIndex::count):
232         (WebCore::IDBIndex::openKeyCursor):
233         (WebCore::IDBIndex::get):
234         (WebCore::IDBIndex::getKey):
235         * storage/IDBIndexBackendImpl.cpp:
236         (WebCore::IDBIndexBackendImpl::openCursorInternal):
237         (WebCore::IDBIndexBackendImpl::openCursor):
238         (WebCore::IDBIndexBackendImpl::openKeyCursor):
239         (WebCore::IDBIndexBackendImpl::countInternal):
240         (WebCore::IDBIndexBackendImpl::count):
241         (WebCore::IDBIndexBackendImpl::getInternal):
242         (WebCore::IDBIndexBackendImpl::get):
243         (WebCore::IDBIndexBackendImpl::getKey):
244         * storage/IDBObjectStore.cpp:
245         (WebCore::IDBObjectStore::name):
246         (WebCore::IDBObjectStore::keyPath):
247         (WebCore::IDBObjectStore::indexNames):
248         (WebCore::IDBObjectStore::transaction):
249         (WebCore::IDBObjectStore::get):
250         (WebCore::IDBObjectStore::add):
251         (WebCore::IDBObjectStore::put):
252         (WebCore::IDBObjectStore::deleteFunction):
253         (WebCore::IDBObjectStore::clear):
254         (WebCore::IDBObjectStore::createIndex):
255         (WebCore::IDBObjectStore::index):
256         (WebCore::IDBObjectStore::openCursor):
257         (WebCore::IDBObjectStore::count):
258         * storage/IDBObjectStoreBackendImpl.cpp:
259         (WebCore::IDBObjectStoreBackendImpl::get):
260         (WebCore::IDBObjectStoreBackendImpl::getInternal):
261         (WebCore::fetchKeyFromKeyPath):
262         (WebCore::injectKeyIntoKeyPath):
263         (WebCore::IDBObjectStoreBackendImpl::put):
264         (WebCore::IDBObjectStoreBackendImpl::putInternal):
265         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
266         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
267         (WebCore::IDBObjectStoreBackendImpl::clear):
268         (WebCore::IDBObjectStoreBackendImpl::openCursor):
269         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
270         (WebCore::IDBObjectStoreBackendImpl::count):
271         (WebCore::IDBObjectStoreBackendImpl::countInternal):
272         * storage/IDBRequest.cpp:
273         (WebCore::IDBRequest::onSuccess):
274         (WebCore::IDBRequest::onSuccessWithContinuation):
275         (WebCore::IDBRequest::dispatchEvent):
276         * storage/IDBTracing.h: Added.
277         * storage/IDBTransaction.cpp:
278         (WebCore::IDBTransaction::dispatchEvent):
279         * storage/IDBTransactionBackendImpl.cpp:
280         (WebCore::IDBTransactionBackendImpl::abort):
281         (WebCore::IDBTransactionBackendImpl::commit):
282         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
283         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
284
285 2012-02-22  Dana Jansens  <danakj@chromium.org>
286
287         [chromium] Push CCLayerIteratorPosition struct into CCLayerIterator class.
288         https://bugs.webkit.org/show_bug.cgi?id=75864
289
290         Reviewed by James Robinson.
291
292         * platform/graphics/chromium/cc/CCLayerIterator.cpp:
293         (WebCore::CCLayerIteratorActions::BackToFront::begin):
294         (WebCore::CCLayerIteratorActions::BackToFront::end):
295         (WebCore::CCLayerIteratorActions::BackToFront::next):
296         (WebCore::CCLayerIteratorActions::FrontToBack::begin):
297         (WebCore::CCLayerIteratorActions::FrontToBack::end):
298         (WebCore::CCLayerIteratorActions::FrontToBack::next):
299         (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree):
300         * platform/graphics/chromium/cc/CCLayerIterator.h:
301         (WebCore::CCLayerIterator::CCLayerIterator):
302         (WebCore::CCLayerIterator::operator++):
303         (WebCore::CCLayerIterator::operator==):
304         (WebCore::CCLayerIterator::operator->):
305         (WebCore::CCLayerIterator::operator*):
306         (WebCore::CCLayerIterator::representsTargetRenderSurface):
307         (WebCore::CCLayerIterator::representsContributingRenderSurface):
308         (WebCore::CCLayerIterator::currentLayer):
309         (WebCore::CCLayerIterator::currentLayerRepresentsContributingRenderSurface):
310         (WebCore::CCLayerIterator::currentLayerRepresentsTargetRenderSurface):
311         (WebCore::CCLayerIterator::targetRenderSurfaceLayer):
312         (WebCore::CCLayerIterator::targetRenderSurface):
313         (WebCore::CCLayerIterator::targetRenderSurfaceChildren):
314         * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Removed.
315
316 2012-02-22  Pavel Feldman  <pfeldman@google.com>
317
318         Web Inspector: console doesn't show properly arrays from which tail values have been deleted
319         https://bugs.webkit.org/show_bug.cgi?id=79242
320
321         Reviewed by Yury Semikhatsky.
322
323         * English.lproj/localizedStrings.js:
324         * inspector/front-end/ConsoleMessage.js:
325         (WebInspector.ConsoleMessageImpl.prototype._printArray.appendUndefined):
326         (WebInspector.ConsoleMessageImpl.prototype._printArray):
327
328 2012-02-22  Pavel Feldman  <pfeldman@google.com>
329
330         Web Inspector: warning external font mime (font/font/woff).
331         https://bugs.webkit.org/show_bug.cgi?id=79244
332
333         Reviewed by Yury Semikhatsky.
334
335         * inspector/front-end/Resource.js:
336
337 2012-02-22  Yury Semikhatsky  <yurys@chromium.org>
338
339         Web Inspector: use dots as markers on the counter graphs
340         https://bugs.webkit.org/show_bug.cgi?id=79243
341
342         Changed counter graphs marker and counter text styles.
343
344         Reviewed by Pavel Feldman.
345
346         * English.lproj/localizedStrings.js:
347         * inspector/front-end/MemoryStatistics.js:
348         (WebInspector.MemoryStatistics):
349         (WebInspector.MemoryStatistics.prototype._createCounterSidebarElement):
350         (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
351         (WebInspector.MemoryStatistics.prototype._draw):
352         (WebInspector.MemoryStatistics.prototype._onMouseOut):
353         (WebInspector.MemoryStatistics.prototype._onMouseOver):
354         (WebInspector.MemoryStatistics.prototype._onMouseMove):
355         (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
356         (WebInspector.MemoryStatistics.prototype._recordIndexAt):
357         (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
358         (WebInspector.MemoryStatistics.prototype._clearMarkers):
359         (WebInspector.MemoryStatistics.prototype._saveImageUnderMarker):
360         (WebInspector.MemoryStatistics.prototype.refresh):
361         (WebInspector.MemoryStatistics.prototype._drawPolyline):
362         (WebInspector.MemoryStatistics.prototype._clear):
363         * inspector/front-end/timelinePanel.css:
364         (.memory-counter-sidebar-info):
365         (.memory-counter-sidebar-info .title):
366         (.memory-counter-sidebar-info .counter-value):
367
368 2012-02-22  Pavel Feldman  <pfeldman@google.com>
369
370         Web Inspector: make 'glue asynchronous events' optional.
371         https://bugs.webkit.org/show_bug.cgi?id=79240
372
373         Reviewed by Yury Semikhatsky.
374
375         * English.lproj/localizedStrings.js:
376         * inspector/front-end/Images/statusbarButtonGlyphs.png:
377         * inspector/front-end/TimelinePanel.js:
378         (WebInspector.TimelinePanel.prototype.get statusBarItems):
379         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
380         (WebInspector.TimelinePanel.prototype._glueParentButtonClicked):
381         (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked):
382         (WebInspector.TimelinePanel.prototype._repopulateRecords):
383         (WebInspector.TimelinePanel.prototype._findParentRecord):
384         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
385         (WebInspector.TimelinePanel.prototype.sidebarResized):
386         (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
387         (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
388         (WebInspector.TimelineRecordGraphRow):
389         (WebInspector.TimelineRecordGraphRow.prototype.update):
390         (WebInspector.TimelinePanel.FormattedRecord.prototype._calculateAggregatedStats):
391         * inspector/front-end/timelinePanel.css:
392         (.glue-async-status-bar-item .glyph):
393         (.timeline-start-at-zero-status-bar-item .glyph):
394
395 2012-02-22  Vsevolod Vlasov  <vsevik@chromium.org>
396
397         Web Inspector: [REGRESSION] Console xhr logging is broken for async xhrs since r107672.
398         https://bugs.webkit.org/show_bug.cgi?id=79229
399
400         Reviewed by Pavel Feldman.
401
402         Test: http/tests/inspector/console-xhr-logging-async.html
403
404         * inspector/InspectorResourceAgent.cpp:
405         (WebCore::InspectorResourceAgent::setInitialScriptContent):
406         * xml/XMLHttpRequest.cpp:
407         (WebCore::XMLHttpRequest::didFinishLoading):
408
409 2012-02-22  Andrey Kosyakov  <caseq@chromium.org>
410
411         Web Inspector: fix memory counters and start-at-zero modes of timeline panels to co-exist nicely
412         https://bugs.webkit.org/show_bug.cgi?id=79241
413
414         Reviewed by Yury Semikhatsky.
415
416         * inspector/front-end/MemoryStatistics.js:
417         (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
418         * inspector/front-end/TimelineOverviewPane.js:
419         (WebInspector.TimelineOverviewPane):
420         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
421         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
422         (WebInspector.TimelineOverviewPane.prototype.setStartAtZero):
423         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
424         * inspector/front-end/TimelinePanel.js:
425         (WebInspector.TimelinePanel.prototype._timelinesOverviewModeChanged):
426
427 2012-02-22  Andrey Kosyakov  <caseq@chromium.org>
428
429         Web Inspector: [experimental] add a mode to display timeline events aligned by the start time
430         https://bugs.webkit.org/show_bug.cgi?id=79123
431
432         Reviewed by Pavel Feldman.
433
434         * inspector/front-end/Images/statusbarButtonGlyphs.png:
435         * inspector/front-end/Settings.js:
436         (WebInspector.ExperimentsSettings):
437         * inspector/front-end/TimelineOverviewPane.js:
438         (WebInspector.TimelineOverviewPane):
439         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
440         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
441         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
442         (WebInspector.TimelineOverviewPane.prototype.setStartAtZero):
443         (WebInspector.TimelineOverviewPane.prototype.update):
444         (WebInspector.TimelineOverviewPane.prototype.reset):
445         (WebInspector.TimelineOverviewWindow):
446         (WebInspector.TimelineOverviewWindow.prototype.reset):
447         (WebInspector.TimelineOverviewWindow.prototype._setWindowPosition):
448         (WebInspector.TimelineOverviewWindow.prototype.scrollWindow):
449         (WebInspector.TimelineStartAtZeroOverview):
450         (WebInspector.TimelineStartAtZeroOverview.prototype.reset):
451         (WebInspector.TimelineStartAtZeroOverview.prototype.update):
452         (WebInspector.TimelineStartAtZeroOverview.prototype._filterRecords):
453         (WebInspector.TimelineStartAtZeroOverview.prototype._buildBar):
454         (WebInspector.TimelineStartAtZeroOverview.prototype._onWindowChanged):
455         * inspector/front-end/TimelinePanel.js:
456         (WebInspector.TimelinePanel.prototype.get statusBarItems):
457         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
458         (WebInspector.TimelinePanel.prototype._toggleStartAtZeroButtonClicked):
459         (WebInspector.TimelinePanel.prototype.get _startAtZero):
460         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
461         (WebInspector.TimelinePanel.prototype.sidebarResized):
462         (WebInspector.TimelinePanel.prototype._onRecordsCleared):
463         (WebInspector.TimelinePanel.prototype._resetPanel):
464         (WebInspector.TimelinePanel.prototype._scheduleRefresh):
465         (WebInspector.TimelinePanel.prototype._refresh):
466         (WebInspector.TimelinePanel.prototype._filterRecords):
467         (WebInspector.TimelinePanel.prototype._refreshRecords):
468         (WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
469         (WebInspector.TimelineStartAtZeroCalculator):
470         (WebInspector.TimelineStartAtZeroCalculator.prototype.computeBarGraphPercentages):
471         (WebInspector.TimelineStartAtZeroCalculator.prototype.computeBarGraphWindowPosition):
472         (WebInspector.TimelineStartAtZeroCalculator.prototype.calculateWindow):
473         (WebInspector.TimelineStartAtZeroCalculator.prototype.reset):
474         (WebInspector.TimelineStartAtZeroCalculator.prototype.updateBoundaries):
475         (WebInspector.TimelineStartAtZeroCalculator.prototype.formatValue):
476         (WebInspector.TimelinePanel.FormattedRecord):
477         (WebInspector.TimelinePanel.FormattedRecord.prototype._generateAggregatedInfo):
478         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
479         (WebInspector.TimelinePanel.FormattedRecord.prototype._calculateAggregatedStats):
480         (WebInspector.TimelinePanel.FormattedRecord.prototype.get aggregatedStats):
481         (WebInspector.TimelineModel.prototype.get records):
482         (WebInspector.TimelinePresentationModel):
483         (WebInspector.TimelinePresentationModel.prototype.reset):
484         (WebInspector.TimelinePresentationModel.prototype.setWindowIndices):
485         (WebInspector.TimelineRecordFilter):
486         (WebInspector.TimelineRecordFilter.prototype.accept):
487         (WebInspector.TimelineStartAtZeroRecordFilter):
488         (WebInspector.TimelineStartAtZeroRecordFilter.prototype.accept):
489         * inspector/front-end/timelinePanel.css:
490         (.timeline-start-at-zero #timeline-overview-sidebar):
491         (.timeline-start-at-zero #timeline-overview-grid):
492         (.timeline-overview-window):
493         (.timeline-start-at-zero .timeline-overview-window):
494         (.timeline-start-at-zero .timeline-overview-dividers-background):
495         (.timeline-overview-window-rulers):
496         (.timeline-start-at-zero #timeline-overview-memory):
497         (.popover .timeline-loading):
498         (.popover .timeline-scripting):
499         (.popover .timeline-rendering):
500         (.timeline-start-at-zero-status-bar-item .glyph):
501         (.timeline-start-at-zero-status-bar-item.toggled-on .glyph):
502         (.timeline-overview-start-at-zero):
503         (.timeline-overview-start-at-zero-bars):
504         (.timeline-overview-start-at-zero-bars .padding):
505         (.timeline-overview-start-at-zero-bars .timeline-bar-vertical):
506         (.timeline-bar-vertical div:first-child):
507         (.timeline-bar-vertical .timeline-loading):
508         (.timeline-bar-vertical .timeline-scripting):
509         (.timeline-bar-vertical .timeline-rendering):
510
511 2012-02-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
512
513         [Qt] Disregard previous backing store as soon as possible
514         https://bugs.webkit.org/show_bug.cgi?id=79232
515
516         Reviewed by Simon Hausmann and No'am Rosenthal.
517
518         Make it possible to drop non-visible tiles and to test
519         if the current visible rect is fully covered.
520
521         * platform/graphics/TiledBackingStore.cpp:
522         (WebCore::TiledBackingStore::visibleContentsRect):
523         (WebCore::TiledBackingStore::coverageRatio):
524         (WebCore::TiledBackingStore::visibleAreaIsCovered):
525         (WebCore):
526         (WebCore::TiledBackingStore::createTiles):
527         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
528         * platform/graphics/TiledBackingStore.h:
529         (TiledBackingStore):
530
531 2012-02-22  Simon Hausmann  <simon.hausmann@nokia.com>
532
533         [Qt] Move QMenu dependant scrollbar context menu handling out of WebCore
534         https://bugs.webkit.org/show_bug.cgi?id=79233
535
536         Reviewed by Kenneth Rohde Christiansen.
537
538         Move the code into WebKit/qt/Api/qwebpage.cpp, the only place where it is called from.
539
540         * Target.pri: Remove ScrollbarQt.cpp from build.
541         * platform/Scrollbar.h: Remove Qt-only context menu handling but make moveThum
542         accessible from the outside.
543         * platform/qt/ScrollbarQt.cpp: Removed. Not needed anymore.
544
545 2012-02-22  Vsevolod Vlasov  <vsevik@chromium.org>
546
547         Web Inspector: retrieving content for some XHR requests crashes inspected page renderer
548         https://bugs.webkit.org/show_bug.cgi?id=79026
549
550         Reviewed by Pavel Feldman.
551
552         Fixed loading empty xhr content and xhr content decoding that was
553         broken in r107672.
554
555         Tests: http/tests/inspector/network/network-cyrillic-xhr.html
556                http/tests/inspector/network/network-empty-xhr.html
557
558         * inspector/InspectorPageAgent.cpp:
559         (WebCore):
560         (WebCore::InspectorPageAgent::createDecoder):
561         (WebCore::InspectorPageAgent::cachedResourceContent):
562         * inspector/InspectorPageAgent.h:
563         (WebCore):
564         * inspector/NetworkResourcesData.cpp:
565         (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
566         (WebCore::NetworkResourcesData::responseReceived):
567         * inspector/NetworkResourcesData.h:
568         (WebCore::NetworkResourcesData::ResourceData::decoder):
569         (WebCore::NetworkResourcesData::ResourceData::setDecoder):
570
571 2012-02-22  Peter Rybin  <peter.rybin@gmail.com>
572
573         Web Inspector: CodeGeneratorInspector.py: remove neural-net-style constructions
574         https://bugs.webkit.org/show_bug.cgi?id=79153
575
576         Reviewed by Yury Semikhatsky.
577
578         CParamType class removed completely, some ("virtual") methods are
579         removed. TypeModel notion is added instead with some minor helper
580         classes and methods.
581
582         * inspector/CodeGeneratorInspector.py:
583         (DomainNameFixes):
584         (RawTypes.BaseType):
585         (RawTypes.String):
586         (RawTypes.String.get_raw_type_model):
587         (RawTypes.Int):
588         (RawTypes.Int.get_raw_type_model):
589         (RawTypes.Number):
590         (RawTypes.Number.get_raw_type_model):
591         (RawTypes.Bool):
592         (RawTypes.Bool.get_raw_type_model):
593         (RawTypes.Object):
594         (RawTypes.Object.get_raw_type_model):
595         (RawTypes.Any):
596         (RawTypes.Any.get_raw_type_model):
597         (RawTypes.Array):
598         (RawTypes.Array.get_raw_type_model):
599         (replace_right_shift):
600         (CommandReturnPassModel):
601         (CommandReturnPassModel.ByReference):
602         (CommandReturnPassModel.ByReference.__init__):
603         (CommandReturnPassModel.ByReference.get_return_var_type):
604         (CommandReturnPassModel.get_output_argument_prefix):
605         (CommandReturnPassModel.get_output_to_raw_expression):
606         (CommandReturnPassModel.get_output_parameter_type):
607         (CommandReturnPassModel.get_set_return_condition):
608         (CommandReturnPassModel.ByPointer):
609         (CommandReturnPassModel.ByPointer.__init__):
610         (CommandReturnPassModel.ByPointer.get_return_var_type):
611         (TypeModel):
612         (TypeModel.RefPtrBased):
613         (TypeModel.RefPtrBased.__init__):
614         (TypeModel.RefPtrBased.get_optional):
615         (TypeModel.RefPtrBased.get_command_return_pass_model):
616         (TypeModel.RefPtrBased.get_input_param_type_text):
617         (TypeModel.RefPtrBased.get_event_setter_expression_pattern):
618         (TypeModel.Enum):
619         (TypeModel.Enum.__init__):
620         (TypeModel.Enum.get_optional):
621         (TypeModel.Enum.get_optional.EnumOptional):
622         (TypeModel.Enum.get_optional.EnumOptional.get_optional):
623         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
624         (TypeModel.Enum.get_input_param_type_text):
625         (TypeModel.Enum.get_event_setter_expression_pattern):
626         (TypeModel.Enum.get_command_return_pass_model):
627         (TypeModel.ValueType):
628         (TypeModel.ValueType.__init__):
629         (TypeModel.ValueType.get_optional):
630         (TypeModel.ValueType.get_command_return_pass_model):
631         (TypeModel.ValueType.get_input_param_type_text):
632         (TypeModel.ValueType.get_event_setter_expression_pattern):
633         (TypeModel.ValueType.ValueOptional):
634         (TypeModel.ValueType.ValueOptional.__init__):
635         (TypeModel.ValueType.ValueOptional.get_optional):
636         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
637         (TypeModel.ValueType.ValueOptional.get_input_param_type_text):
638         (TypeModel.ValueType.ValueOptional.get_event_setter_expression_pattern):
639         (TypeModel.init_class):
640         (TypeBindings.create_ad_hoc_type_declaration.Helper):
641         (TypeBindings.create_type_declaration_.EnumBinding.get_array_item_c_type_text):
642         (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
643         (TypeBindings.create_type_declaration_.EnumBinding):
644         (TypeBindings.create_type_declaration_.EnumBinding.get_type_model):
645         (TypeBindings.create_type_declaration_):
646         (TypeBindings.create_type_declaration_.get_type_model):
647         (TypeBindings.create_type_declaration_.get_array_item_c_type_text):
648         (get_type_model):
649         (AdHocTypeContextImpl.__init__):
650         (PlainObjectBinding):
651         (PlainObjectBinding.get_type_model):
652         (AdHocTypeContext):
653         (ArrayBinding.get_array_item_c_type_text):
654         (ArrayBinding):
655         (ArrayBinding.get_type_model):
656         (RawTypeBinding.get_validator_call_text):
657         (RawTypeBinding.reduce_to_raw_type):
658         (RawTypeBinding):
659         (RawTypeBinding.get_type_model):
660         (MethodGenerateModes.StrictParameterMode.get_c_param_type_text):
661         (MethodGenerateModes.RawParameterMode.get_c_param_type_text):
662         (MethodGenerateModes.CombinedMode.get_c_param_type_text):
663         (Generator.go):
664         (Generator.process_event):
665         (Generator.process_command):
666         (Generator.resolve_type_and_generate_ad_hoc):
667         (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext):
668         * inspector/InspectorDebuggerAgent.cpp:
669         (WebCore::InspectorDebuggerAgent::didParseSource):
670
671 2012-02-21  Vsevolod Vlasov  <vsevik@chromium.org>
672
673         Web Inspector: [InspectorIndexedDB] Show IndexedDB views on selection IndexedDB elements in resources panel.
674         https://bugs.webkit.org/show_bug.cgi?id=79098
675
676         Reviewed by Pavel Feldman.
677
678         * English.lproj/localizedStrings.js:
679         * WebCore.gypi:
680         * WebCore.vcproj/WebCore.vcproj:
681         * inspector/InspectorIndexedDBAgent.cpp:
682         (WebCore):
683         * inspector/compile-front-end.sh:
684         * inspector/front-end/IndexedDBModel.js:
685         (WebInspector.IndexedDBModel.prototype._assertFrameId):
686         (WebInspector.IndexedDBModel.prototype.loadObjectStoreData):
687         (WebInspector.IndexedDBModel.prototype.loadIndexData):
688         * inspector/front-end/IndexedDBViews.js: Added.
689         * inspector/front-end/ObjectPropertiesSection.js:
690         (WebInspector.ObjectPropertiesSection):
691         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
692         * inspector/front-end/ResourcesPanel.js:
693         (WebInspector.ResourcesPanel.prototype.showIndexedDB):
694         (WebInspector.IndexedDBTreeElement.prototype.refreshIndexedDB):
695         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
696         (WebInspector.IDBDatabaseTreeElement):
697         (WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
698         (WebInspector.IDBDatabaseTreeElement.prototype.update):
699         (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
700         (WebInspector.IDBObjectStoreTreeElement):
701         (WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
702         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
703         (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
704         (WebInspector.IDBIndexTreeElement):
705         (WebInspector.IDBIndexTreeElement.prototype.get itemURL):
706         (WebInspector.IDBIndexTreeElement.prototype.update):
707         (WebInspector.IDBIndexTreeElement.prototype.onselect):
708         * inspector/front-end/WebKit.qrc:
709         * inspector/front-end/externs.js:
710         * inspector/front-end/indexedDBViews.css: Added.
711         * inspector/front-end/inspector.html:
712
713 2012-02-22  Nikolas Zimmermann  <nzimmermann@rim.com>
714
715         REGRESSION(58212): html foreignObjects with positions other than static not hidden correctly when parent has display:none
716         https://bugs.webkit.org/show_bug.cgi?id=41386
717
718         Reviewed by Zoltan Herczeg.
719
720         r58212 gave SVGGElements a renderer, regardless if "display: none" was set or not, for various reasons (see change set).
721         The <g> renderer for such cases is a RenderSVGHiddenContainer. We make sure in SVG that such subtrees are never used
722         for painting & hittesting - they only exist for the purpose of SVG DOM (query getCTM, etc..) and to create renderers
723         for child resources, like <g display="none"><linearGradient>.
724
725         This concept still works fine for: <g display="none"><foreignObject><body>Foobar</body></foreignObject></g>, as
726         RenderSVGForeignObject::paint is never called thus we never paint the subtree of the <fO>. If the <body> elements
727         contains "position: relative" a new layer is created for the <body>. When the document paints we have two seperated
728         layers, and the <body> layer doesn't know that it's actually inside a "SVG hidden subtree", and gets painted, where it
729         shouldn't. HTML doesn't have this problems, as a display: none object, never creates a renderer.
730
731         The fix is to disallow layer creation in hidden SVG subtrees, to mimic what would happen if we'd follow HTML rules
732         to not create renderers for display: none objects. This avoids any indirections - as no layers are created anymore.
733
734         Tests: svg/foreignObject/fO-display-none-with-relative-pos-content.svg
735                svg/foreignObject/fO-display-none.svg
736                svg/foreignObject/fO-parent-display-changes.svg
737                svg/foreignObject/fO-parent-display-none-with-relative-pos-content.svg
738                svg/foreignObject/fO-parent-display-none.svg
739                svg/foreignObject/fO-parent-of-parent-display-none-with-relative-pos-content.svg
740                svg/foreignObject/fO-parent-of-parent-display-none.svg
741
742         * rendering/RenderBoxModelObject.cpp:
743         (WebCore::RenderBoxModelObject::styleDidChange): Only create layers, if its allowed -- layerCreationAllowedForSubtree() will always return true for HTML, and only false for layers inside a hidden SVG subtree.
744         * rendering/RenderObject.cpp:
745         (WebCore::RenderObject::addChild): Only create layers, if its allowed.
746         * rendering/RenderObject.h: Add inline layerCreationAllowedForSubtree() helper, that craws the tree to find a RenderSVGHiddenContainer ancestor, if not present, return true.
747
748 2012-02-22  Zoltan Herczeg  <zherczeg@webkit.org>
749
750         Drop clipToImageBuffer from RenderBoxModelObject
751         https://bugs.webkit.org/show_bug.cgi?id=79225
752
753         Reviewed by Nikolas Zimmermann.
754
755         -webkit-background-clip: text is a rarely used non-standard
756         feature uses clipToImageBuffer. It is replaced by
757         CompositeDestinationIn on a transparent layer. The new
758         approach has the same speed as the old one.
759
760         Existing tests cover this issue.
761
762         * rendering/RenderBoxModelObject.cpp:
763         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
764
765 2012-02-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
766
767         Merge setVisibleRectTrajectoryVector and adjustVisibleRect to
768         the more descriptive coverWithTilesIfNeeded
769         https://bugs.webkit.org/show_bug.cgi?id=79230
770
771         Reviewed by Simon Hausmann.
772
773         Both setVisibleRectTrajectoryVector and the adjustVisibleRect are
774         used for initiating re-tiling, so make that more obvious and merge
775         the two.
776
777         * platform/graphics/TiledBackingStore.cpp:
778         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
779         * platform/graphics/TiledBackingStore.h:
780         (TiledBackingStore):
781
782 2012-02-17  Nikolas Zimmermann  <nzimmermann@rim.com>
783
784         REGRESSION: unbalanced transparency layers for clipPath
785         https://bugs.webkit.org/show_bug.cgi?id=78074
786
787         Reviewed by Zoltan Herczeg.
788
789         If we're rendering to a mask image buffer, all children are rendered with opacity=1, regardless what their RenderStyles specify.
790         SVGRenderSupport::finishRenderSVGContent() did not take this into account and always called endTransparencyLayer(). Fix that
791         by checking if we're rendering to a mask image buffer, if so don't call endTransparencyLayer().
792
793         Add new reftest covering both the visual & logical correctness (no assertion).
794
795         Tests: svg/clip-path/opacity-assertion-expected.svg
796                svg/clip-path/opacity-assertion.svg
797
798         * rendering/svg/SVGRenderSupport.cpp:
799         (WebCore::isRenderingMaskImage): Extraced as sharable helper function.
800         (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Factor out isRenderingMaskImage() function.
801         (WebCore::SVGRenderSupport::finishRenderSVGContent): Only call endTransparencyLayer(), if we actually called beginTL() first. 
802
803 2012-02-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
804
805         Improve comments in tiling code.
806
807         Rubberstamped by Simon Hausmann.
808
809         * platform/graphics/TiledBackingStore.cpp:
810         (WebCore::TiledBackingStore::createTiles):
811
812 2012-02-22  'Pavel Feldman'  <pfeldman@google.com>
813
814         Not reviewed: build fix.
815
816         * inspector/InspectorController.cpp:
817         * inspector/InspectorController.h:
818         (InspectorController):
819
820 2012-02-21  Pavel Feldman  <pfeldman@google.com>
821
822         Web Inspector: do not filter out requestAnimationFrame from timeline, implement stop on animation events.
823         https://bugs.webkit.org/show_bug.cgi?id=79116
824
825         Reviewed by Yury Semikhatsky.
826
827         * English.lproj/localizedStrings.js:
828         * dom/ScriptedAnimationController.cpp:
829         (WebCore::ScriptedAnimationController::registerCallback):
830         * inspector/InspectorInstrumentation.cpp:
831         (WebCore):
832         (WebCore::InspectorInstrumentation::didRequestAnimationFrameCallbackImpl):
833         (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallbackImpl):
834         (WebCore::InspectorInstrumentation::willFireAnimationFrameEventImpl):
835         * inspector/InspectorInstrumentation.h:
836         (InspectorInstrumentation):
837         (WebCore::InspectorInstrumentation::didRequestAnimationFrameCallback):
838         * inspector/InspectorTimelineAgent.cpp:
839         (TimelineRecordType):
840         (WebCore::InspectorTimelineAgent::didRequestAnimationFrameCallback):
841         (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback):
842         (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent):
843         (WebCore::InspectorTimelineAgent::didFireAnimationFrameEvent):
844         * inspector/InspectorTimelineAgent.h:
845         (InspectorTimelineAgent):
846         * inspector/front-end/BreakpointsSidebarPane.js:
847         (WebInspector.EventListenerBreakpointsSidebarPane):
848         (WebInspector.EventListenerBreakpointsSidebarPane.eventNameForUI):
849         * inspector/front-end/TimelineAgent.js:
850         * inspector/front-end/TimelinePanel.js:
851         (WebInspector.TimelinePanel):
852         (WebInspector.TimelinePanel.prototype.get _recordStyles):
853         (WebInspector.TimelinePanel.prototype._findParentRecord):
854         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
855         (WebInspector.TimelinePanel.prototype._onRecordsCleared):
856         (WebInspector.TimelinePanel.FormattedRecord):
857         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
858         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
859
860 2012-02-22  Changhun Kang  <temoochin@company100.net>
861
862         Remove unused class declaration in WebCore/page/scrolling/ScrollingCoordinator.h
863         https://bugs.webkit.org/show_bug.cgi?id=79175
864
865         Reviewed by Kentaro Hara.
866
867         * page/scrolling/ScrollingCoordinator.h:
868         Remove PlatformGestureEvent class declaration.
869         (WebCore):
870
871 2012-02-22  Andras Becsi  <andras.becsi@nokia.com>
872
873         [Qt][WK2] Fix the N9 build
874         https://bugs.webkit.org/show_bug.cgi?id=79101
875
876         Reviewed by Simon Hausmann.
877
878         Fixed the include order of the rolled out r108359 not to break
879         the build with CONFIG+=force_static_libs_as_shared.
880
881         * platform/graphics/OpenGLShims.h: Add missing include.
882
883 2012-02-22  Shinya Kawanaka  <shinyak@chromium.org>
884
885         firstRendererOf() should also return a fallback element renderer in NodeRenderingContext.
886         https://bugs.webkit.org/show_bug.cgi?id=79180
887
888         Reviewed by Hajime Morita.
889
890         Currently we have handled AttachingFallback in some special mannger, however if firstRendererOf
891         and lastRendererOf return a fallback element renderer, we don't need to handle it in such a manner.
892
893         We have introduced new attaching phase: AttachingFallbacked, and AttachingNotFallbacked.
894         They are used for fallback elements.
895
896         Added new test cases in:
897           fast/dom/shadow/shadow-contents-fallback.html
898           fast/dom/shadow/shadow-contents-fallback-dynamic.html
899
900         * dom/NodeRenderingContext.cpp:
901         (WebCore::NodeRenderingContext::NodeRenderingContext):
902         (WebCore::firstRendererOf):
903         (WebCore::lastRendererOf):
904         (WebCore::NodeRenderingContext::nextRenderer):
905         (WebCore::NodeRenderingContext::previousRenderer):
906         (WebCore::NodeRenderingContext::shouldCreateRenderer):
907         * dom/NodeRenderingContext.h:
908         * html/shadow/InsertionPoint.h:
909         (WebCore::isInsertionPoint):
910         (WebCore):
911         (WebCore::toInsertionPoint):
912
913 2012-02-22  Csaba Osztrogonác  <ossy@webkit.org>
914
915         [Qt] Unreviewed gardening after r108464.
916
917         * Target.pri:
918
919 2012-02-22  Sheriff Bot  <webkit.review.bot@gmail.com>
920
921         Unreviewed, rolling out r108468.
922         http://trac.webkit.org/changeset/108468
923         https://bugs.webkit.org/show_bug.cgi?id=79219
924
925         Broke Chromium Win release build (Requested by bashi on
926         #webkit).
927
928         * CMakeLists.txt:
929         * GNUmakefile.list.am:
930         * Target.pri:
931         * WebCore.gypi:
932         * WebCore.vcproj/WebCore.vcproj:
933         * WebCore.xcodeproj/project.pbxproj:
934         * websockets/WebSocket.cpp:
935         (WebCore::WebSocket::didConnect):
936         * websockets/WebSocketChannel.cpp:
937         (WebCore::WebSocketChannel::connect):
938         (WebCore::WebSocketChannel::fail):
939         (WebCore::WebSocketChannel::processFrame):
940         (WebCore::WebSocketChannel::sendFrame):
941         * websockets/WebSocketChannel.h:
942         * websockets/WebSocketDeflateFramer.cpp: Removed.
943         * websockets/WebSocketDeflateFramer.h: Removed.
944
945 2012-02-20  Roland Steiner  <rolandsteiner@chromium.org>
946
947         <style scoped>: Add runtime-flag
948         https://bugs.webkit.org/show_bug.cgi?id=79074
949
950         Added runtime-flag.
951         Query runtime flag when (un)registering a <style scoped> element, and when determineing a style sheet's scope.
952
953         Reviewed by Dimitri Glazkov.
954
955         No new tests. (no change in functionality)
956
957         * bindings/generic/RuntimeEnabledFeatures.cpp:
958         (WebCore):
959         * bindings/generic/RuntimeEnabledFeatures.h:
960         (RuntimeEnabledFeatures):
961         (WebCore::RuntimeEnabledFeatures::styleScopedEnabled):
962         (WebCore::RuntimeEnabledFeatures::setStyleScopedEnabled):
963         * css/CSSStyleSelector.cpp:
964         (WebCore::CSSStyleSelector::determineScopingElement):
965         * html/HTMLStyleElement.cpp:
966         (WebCore::HTMLStyleElement::registerWithScopingNode):
967         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
968         * html/HTMLStyleElement.idl:
969
970 2012-02-21  Alexander Pavlov  <apavlov@chromium.org>
971
972         Web Inspector: Audit rules to recommend unprefixing supported CSS properties
973         https://bugs.webkit.org/show_bug.cgi?id=78985
974
975         Reviewed by Pavel Feldman.
976
977         * inspector/front-end/AuditCategories.js:
978         (WebInspector.AuditCategories.PagePerformance.prototype.initialize):
979         * inspector/front-end/AuditRules.js:
980         (WebInspector.AuditRules.CSSRuleBase):
981         (WebInspector.AuditRules.CSSRuleBase.prototype.doRun.sheetsCallback):
982         (WebInspector.AuditRules.CSSRuleBase.prototype.doRun):
983         (WebInspector.AuditRules.CSSRuleBase.prototype._visitStyleSheet.sheetCallback):
984         (WebInspector.AuditRules.CSSRuleBase.prototype._visitStyleSheet):
985         (WebInspector.AuditRules.CSSRuleBase.prototype._visitRule):
986         (WebInspector.AuditRules.CSSRuleBase.prototype.visitStyleSheet):
987         (WebInspector.AuditRules.CSSRuleBase.prototype.didVisitStyleSheet):
988         (WebInspector.AuditRules.CSSRuleBase.prototype.visitRule):
989         (WebInspector.AuditRules.CSSRuleBase.prototype.didVisitRule):
990         (WebInspector.AuditRules.CSSRuleBase.prototype.visitProperty):
991         (WebInspector.AuditRules.VendorPrefixedCSSProperties):
992         (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.didVisitStyleSheet):
993         (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.visitRule):
994         (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.didVisitRule):
995         (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.visitProperty):
996         * inspector/front-end/ResourceUtils.js:
997
998 2012-02-22  Shinya Kawanaka  <shinyak@chromium.org>
999
1000         Node::attach() should be after attaching children in Element::attach().
1001         https://bugs.webkit.org/show_bug.cgi?id=79201
1002
1003         Reviewed by Hajime Morita.
1004
1005         In Element::attach(), Node::attach() is called before attaching children if a shaodw root exists.
1006         This may cause O(N^2) problem in NodeRenderingContext.
1007
1008         No new tests. Existing tests should cover this.
1009
1010         * dom/Element.cpp:
1011         (WebCore::Element::attach):
1012
1013 2012-02-22  Kenichi Ishibashi  <bashi@chromium.org>
1014
1015         Adding WebSocket per-frame DEFLATE extension
1016         https://bugs.webkit.org/show_bug.cgi?id=77522
1017
1018         Add WebSocketDeflateFramer class which handles deflate-frame extension.
1019         This class encapsulates WebSocketDeflater and WebSocketInflater classes,
1020         which depend on zlib, so that WebSocketChannel is not necessary to aware
1021         zlib dependency.
1022
1023         Reviewed by Kent Tamura.
1024
1025         Tests: http/tests/websocket/tests/hybi/compressed-control-frame.html
1026                http/tests/websocket/tests/hybi/deflate-frame-comp-bit-onoff.html
1027                http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter.html
1028                http/tests/websocket/tests/hybi/deflate-frame-parameter.html
1029
1030         * CMakeLists.txt: Added WebSocketDeflateFramer.(cpp|h)
1031         * GNUmakefile.list.am: Ditto.
1032         * Target.pri: Ditto.
1033         * WebCore.gypi: Ditto.
1034         * WebCore.vcproj/WebCore.vcproj: Ditto.
1035         * WebCore.xcodeproj/project.pbxproj: Ditto.
1036         * websockets/WebSocket.cpp:
1037         (WebCore::WebSocket::didConnect): Set m_extensions.
1038         * websockets/WebSocketChannel.cpp:
1039         (WebCore::WebSocketChannel::connect): Add deflate-frame extension processor to WebSocketHanshake if deflate can use.
1040         (WebCore::WebSocketChannel::fail): Call m_deflateFramer.didFail().
1041         (WebCore::WebSocketChannel::processFrame): Decompress frames if needed.
1042         (WebCore::WebSocketChannel::sendFrame): Compress frames if possible.
1043         * websockets/WebSocketChannel.h:
1044         * websockets/WebSocketDeflateFramer.cpp: Added.
1045         (WebCore):
1046         (WebSocketExtensionDeflateFrame):
1047         (WebCore::WebSocketExtensionDeflateFrame::create):
1048         (WebCore::WebSocketExtensionDeflateFrame::~WebSocketExtensionDeflateFrame):
1049         (WebCore::WebSocketExtensionDeflateFrame::WebSocketExtensionDeflateFrame):
1050         (WebCore::WebSocketExtensionDeflateFrame::handshakeString):
1051         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
1052         (WebCore::DeflateResultHolder::DeflateResultHolder):
1053         (WebCore::DeflateResultHolder::~DeflateResultHolder):
1054         (WebCore::DeflateResultHolder::fail):
1055         (WebCore::InflateResultHolder::InflateResultHolder):
1056         (WebCore::InflateResultHolder::~InflateResultHolder):
1057         (WebCore::InflateResultHolder::fail):
1058         (WebCore::WebSocketDeflateFramer::WebSocketDeflateFramer):
1059         (WebCore::WebSocketDeflateFramer::createExtensionProcessor):
1060         (WebCore::WebSocketDeflateFramer::canDeflate):
1061         (WebCore::WebSocketDeflateFramer::enableDeflate):
1062         (WebCore::WebSocketDeflateFramer::deflate):
1063         (WebCore::WebSocketDeflateFramer::resetDeflateContext):
1064         (WebCore::WebSocketDeflateFramer::inflate):
1065         (WebCore::WebSocketDeflateFramer::resetInflateContext):
1066         (WebCore::WebSocketDeflateFramer::didFail):
1067         * websockets/WebSocketDeflateFramer.h: Added.
1068         (WebCore):
1069         (DeflateResultHolder):
1070         (WebCore::DeflateResultHolder::succeeded):
1071         (WebCore::DeflateResultHolder::failureReason):
1072         (InflateResultHolder):
1073         (WebCore::InflateResultHolder::succeeded):
1074         (WebCore::InflateResultHolder::failureReason):
1075         (WebSocketDeflateFramer):
1076         (WebCore::WebSocketDeflateFramer::enabled):
1077
1078 2012-02-22  Yuta Kitamura  <yutak@chromium.org>
1079
1080         Unreviewed, rolling out r108453.
1081         http://trac.webkit.org/changeset/108453
1082         https://bugs.webkit.org/show_bug.cgi?id=78549
1083
1084         Broke Chromium's webkit_unit_tests.
1085
1086         * WebCore.gypi:
1087         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Removed.
1088         * platform/graphics/chromium/cc/CCOcclusionTracker.h: Removed.
1089
1090 2012-02-22  Zoltan Herczeg  <zherczeg@webkit.org>
1091
1092         [Qt] clipToImageBuffer assertion fix in debug mode on Qt.
1093
1094         Rubber stamped by Csaba Osztrogonác.
1095
1096         * platform/graphics/qt/GraphicsContextQt.cpp:
1097         (WebCore::GraphicsContext::restorePlatformState):
1098
1099 2012-02-22  Adam Barth  <abarth@webkit.org>
1100
1101         [GTK] fast/frames/frame-dead-region.html crash
1102         https://bugs.webkit.org/show_bug.cgi?id=79205
1103
1104         Unreviewed.
1105
1106         Apparently we're not supposed to call willDetachPage from
1107         CachedFrame::destroy.  This call got added in
1108         http://trac.webkit.org/changeset/108428, but it seems to cause a crash.
1109
1110         * loader/FrameLoader.cpp:
1111         (WebCore::FrameLoader::closeAndRemoveChild):
1112         (WebCore::FrameLoader::detachFromParent):
1113         * page/Frame.h:
1114         (WebCore::Frame::detachFromPage):
1115         * page/Page.cpp:
1116         (WebCore::Page::~Page):
1117
1118 2012-02-22  Adam Barth  <abarth@webkit.org>
1119
1120         Move Geolocation code into Modules/geolocation
1121         https://bugs.webkit.org/show_bug.cgi?id=79204
1122
1123         Reviewed by Hajime Morita.
1124
1125         There are still some dangling references into the Geolocation module,
1126         which I will clean up in a followup patch.
1127
1128         * CMakeLists.txt:
1129         * DerivedSources.make:
1130         * DerivedSources.pri:
1131         * GNUmakefile.list.am:
1132         * Modules/geolocation/Geolocation.cpp: Copied from Source/WebCore/page/Geolocation.cpp.
1133         * Modules/geolocation/Geolocation.h: Copied from Source/WebCore/page/Geolocation.h.
1134         * Modules/geolocation/Geolocation.idl: Copied from Source/WebCore/page/Geolocation.idl.
1135         * Modules/geolocation/GeolocationController.cpp: Copied from Source/WebCore/page/GeolocationController.cpp.
1136         * Modules/geolocation/GeolocationController.h: Copied from Source/WebCore/page/GeolocationController.h.
1137         * Modules/geolocation/GeolocationError.h: Copied from Source/WebCore/page/GeolocationError.h.
1138         * Modules/geolocation/GeolocationPosition.h: Copied from Source/WebCore/page/GeolocationPosition.h.
1139         * Modules/geolocation/Geoposition.h: Copied from Source/WebCore/page/Geoposition.h.
1140         * Modules/geolocation/Geoposition.idl: Copied from Source/WebCore/page/Geoposition.idl.
1141         * Modules/geolocation/PositionCallback.h: Copied from Source/WebCore/page/PositionCallback.h.
1142         * Modules/geolocation/PositionCallback.idl: Copied from Source/WebCore/page/PositionCallback.idl.
1143         * Modules/geolocation/PositionError.h: Copied from Source/WebCore/page/PositionError.h.
1144         * Modules/geolocation/PositionError.idl: Copied from Source/WebCore/page/PositionError.idl.
1145         * Modules/geolocation/PositionErrorCallback.h: Copied from Source/WebCore/page/PositionErrorCallback.h.
1146         * Modules/geolocation/PositionErrorCallback.idl: Copied from Source/WebCore/page/PositionErrorCallback.idl.
1147         * Modules/geolocation/PositionOptions.h: Copied from Source/WebCore/page/PositionOptions.h.
1148         * Target.pri:
1149         * WebCore.gypi:
1150         * WebCore.vcproj/WebCore.vcproj:
1151         * WebCore.xcodeproj/project.pbxproj:
1152         * page/Geolocation.cpp: Removed.
1153         * page/Geolocation.h: Removed.
1154         * page/Geolocation.idl: Removed.
1155         * page/GeolocationController.cpp: Removed.
1156         * page/GeolocationController.h: Removed.
1157         * page/GeolocationError.h: Removed.
1158         * page/GeolocationPosition.h: Removed.
1159         * page/Geoposition.h: Removed.
1160         * page/Geoposition.idl: Removed.
1161         * page/PositionCallback.h: Removed.
1162         * page/PositionCallback.idl: Removed.
1163         * page/PositionError.h: Removed.
1164         * page/PositionError.idl: Removed.
1165         * page/PositionErrorCallback.h: Removed.
1166         * page/PositionErrorCallback.idl: Removed.
1167         * page/PositionOptions.h: Removed.
1168
1169 2012-02-22  Frederik Gladhorn  <frederik.gladhorn@nokia.com>
1170
1171         [gtk] Accessibility: use find funtion in vector instead of for.
1172         https://bugs.webkit.org/show_bug.cgi?id=77878
1173
1174         Reviewed by Hajime Morita.
1175
1176         Minor cleanup, use the find function from vector.
1177
1178         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
1179         (webkitAccessibleGetIndexInParent):
1180
1181 2012-02-22  Ryosuke Niwa  <rniwa@webkit.org>
1182
1183         Remove the remaining uses of CSSStyleDeclaration in Editor
1184         https://bugs.webkit.org/show_bug.cgi?id=78939
1185
1186         Reviewed by Enrica Casucci.
1187
1188         Changed the argument types of shouldApplyStyle, applyParagraphStyle, applyStyleToSelection,
1189         applyParagraphStyleToSelection, and computeAndSetTypingStyle in Editor from CSSStyleDeclaration
1190         to StylePropertySet.
1191
1192         * WebCore.exp.in:
1193         * WebCore.xcodeproj/project.pbxproj:
1194         * editing/Editor.cpp:
1195         (WebCore::Editor::applyStyle):
1196         (WebCore::Editor::shouldApplyStyle):
1197         (WebCore::Editor::applyParagraphStyle):
1198         (WebCore::Editor::applyStyleToSelection):
1199         (WebCore::Editor::applyParagraphStyleToSelection):
1200         (WebCore::Editor::setBaseWritingDirection):
1201         (WebCore::Editor::computeAndSetTypingStyle):
1202         * editing/Editor.h:
1203         (WebCore):
1204         (Editor):
1205         * editing/EditorCommand.cpp:
1206         (WebCore::applyCommandToFrame):
1207         (WebCore::executeApplyParagraphStyle):
1208         (WebCore::executeMakeTextWritingDirectionLeftToRight):
1209         (WebCore::executeMakeTextWritingDirectionNatural):
1210         (WebCore::executeMakeTextWritingDirectionRightToLeft):
1211         * loader/EmptyClients.h:
1212         (WebCore::EmptyEditorClient::shouldApplyStyle):
1213         * page/DragController.cpp:
1214         (WebCore::DragController::concludeEditDrag):
1215         * page/EditorClient.h:
1216         (WebCore):
1217         (EditorClient):
1218
1219 2012-02-22  Dana Jansens  <danakj@chromium.org>
1220
1221         [chromium] Cull quads outside of the scissoring damage rect
1222         https://bugs.webkit.org/show_bug.cgi?id=79181
1223
1224         Reviewed by James Robinson.
1225
1226         Quads outside of the partial swap cause us to execute GL operations
1227         that actually use a fair amount of CPU time (enough to affect power
1228         usage). Here we cull quads by only keeping their intersection
1229         with the damage rect used for partial swap.
1230
1231         Unit test: CCQuadCuller.cpp
1232
1233         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1234         (WebCore::CCLayerTreeHostImpl::optimizeRenderPasses):
1235         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1236         (WebCore::CCQuadCuller::cullOccludedQuads):
1237         * platform/graphics/chromium/cc/CCQuadCuller.h:
1238         (CCQuadCuller):
1239         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1240         (WebCore::CCRenderPass::optimizeQuads):
1241         * platform/graphics/chromium/cc/CCRenderPass.h:
1242         (CCRenderPass):
1243
1244 2012-02-21  Dana Jansens  <danakj@chromium.org>
1245
1246         [Chromium] New CCOcclusionTracker class with tests
1247         https://bugs.webkit.org/show_bug.cgi?id=78549
1248
1249         Reviewed by James Robinson.
1250
1251         Adds a CCOcclusionTrackerBase template class that is able to track occlusion
1252         of layers while traversing the layer tree from front-to-back, with typedefed
1253         versions for the main and impl threads.
1254
1255         At each step of the front-to-back traversal, the class should be notified of
1256         changes to the current render target, and when done working with a layer, the
1257         layer is added the tracked occlusion.
1258
1259         The class provides tests for checking if a rect in content space
1260         for a layer/surface is occluded by others in front of it.
1261
1262         Unit tests: CCOcclusionTrackerTest.cpp
1263
1264         * WebCore.gypi:
1265         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Added.
1266         (WebCore):
1267         (WebCore::::enterTargetRenderSurface):
1268         (WebCore::::finishedTargetRenderSurface):
1269         (WebCore::transformSurfaceOpaqueRegion):
1270         (WebCore::::leaveToTargetRenderSurface):
1271         (WebCore::contentToScreenSpaceTransform):
1272         (WebCore::contentToTargetSurfaceTransform):
1273         (WebCore::computeOcclusionBehindLayer):
1274         (WebCore::::markOccludedBehindLayer):
1275         (WebCore::testContentRectOccluded):
1276         (WebCore::::occluded):
1277         (WebCore::::surfaceOccluded):
1278         (WebCore::rectSubtractRegion):
1279         (WebCore::computeUnoccludedContentRect):
1280         (WebCore::::unoccludedContentRect):
1281         (WebCore::::surfaceUnoccludedContentRect):
1282         (WebCore::::currentOcclusionInScreenSpace):
1283         (WebCore::::currentOcclusionInTargetSurface):
1284         * platform/graphics/chromium/cc/CCOcclusionTracker.h: Added.
1285         (WebCore):
1286         (CCOcclusionTrackerBase):
1287         (WebCore::CCOcclusionTrackerBase::CCOcclusionTrackerBase):
1288         (StackObject):
1289
1290 2012-02-21  Andreas Kling  <awesomekling@apple.com>
1291
1292         Cache <font face> family lists in CSSValuePool.
1293         <http://webkit.org/b/79195>
1294
1295         Reviewed by Antti Koivisto.
1296
1297         HTMLFontElements with "face" attributes are very common in legacy web content.
1298         Add a String->CSSValue cache for these in CSSValuePool and use it to avoid
1299         reparsing and recreating duplicate font face values.
1300
1301         This knocks 20ms (~1.5%) worth of samples off of the Moz page cycler on my system.
1302
1303         * css/CSSParser.cpp:
1304         (WebCore::CSSParser::parseFontFaceValue):
1305         * css/CSSParser.h:
1306         * css/CSSValuePool.cpp:
1307         (WebCore::CSSValuePool::createFontFaceValue):
1308         * css/CSSValuePool.h:
1309         * html/HTMLFontElement.cpp:
1310         (WebCore::HTMLFontElement::collectStyleForAttribute):
1311
1312 2012-02-21  Adam Barth  <abarth@webkit.org>
1313
1314         Separate the implementation of registerProtocolHandler from Navigator.cpp
1315         https://bugs.webkit.org/show_bug.cgi?id=78945
1316
1317         Reviewed by Eric Seidel.
1318
1319         The implementation of registerProtocolHandler needlessly complicates
1320         the implementation of Navigator.cpp.  In principle,
1321         registerProtocolHandler (and possibly registerContentHandler, when we
1322         implement that feature) could be its own module, but that seems like
1323         overkill for one or two files.
1324
1325         * CMakeLists.txt:
1326         * GNUmakefile.list.am:
1327         * Target.pri:
1328         * WebCore.gypi:
1329         * WebCore.vcproj/WebCore.vcproj:
1330         * WebCore.xcodeproj/project.pbxproj:
1331         * page/Navigator.cpp:
1332         (WebCore):
1333         * page/Navigator.h:
1334         (Navigator):
1335         * page/Navigator.idl:
1336
1337 2012-02-21  MORITA Hajime  <morrita@google.com>
1338
1339         HasIDFlag and HasClassFlag can be removed.
1340         https://bugs.webkit.org/show_bug.cgi?id=77861
1341
1342         Reviewed by Andreas Kling.
1343
1344         Replaced HasIDFlag and HasClassFlag with a check against
1345         ElementAttributeData. It looks these flags (originally bitfields)
1346         were legacy of ancient era, where we didn't cache @id and @class
1347         values and needed a hash lookup for each check.
1348
1349         No new tests. No behavioral change.
1350
1351         * dom/Element.cpp:
1352         (WebCore::Element::idAttributeChanged):
1353         * dom/Element.h:
1354         (WebCore::Element::hasID):
1355         (WebCore):
1356         (WebCore::Element::hasClass):
1357         (WebCore::Node::hasID):
1358         (WebCore::Node::hasClass):
1359         * dom/ElementAttributeData.h:
1360         (WebCore::ElementAttributeData::hasID):
1361         (WebCore::ElementAttributeData::hasClass):
1362         (ElementAttributeData):
1363         * dom/Node.h:
1364         (Node):
1365         (WebCore::nodeStyleChangeShift):
1366         * dom/StyledElement.cpp:
1367         (WebCore::StyledElement::classAttributeChanged):
1368
1369 2012-02-21  Matthew Delaney  <mdelaney@apple.com>
1370
1371         2D Canvas setTransform makes unnecessary matrix mults
1372         https://bugs.webkit.org/show_bug.cgi?id=79190
1373
1374         Reviewed by Dan Bernstein.
1375
1376         No new tests - plenty of current tests using setTransform.
1377
1378         * html/canvas/CanvasRenderingContext2D.cpp:
1379         (WebCore::CanvasRenderingContext2D::setTransform):
1380
1381 2012-02-21  MORITA Hajime <morrita@google.com>
1382
1383         INPUT_SPEECH should be implemented as a PageSupplement.
1384         https://bugs.webkit.org/show_bug.cgi?id=79051
1385
1386         Turned SpeechInput to a PageSupplement.
1387
1388         Reviewed by Adam Barth.
1389
1390         No new tests. No behavior change.
1391
1392         * html/shadow/TextControlInnerElements.cpp:
1393         (WebCore::InputFieldSpeechButtonElement::speechInput):
1394         (WebCore::InputFieldSpeechButtonElement::attach):
1395         * page/Page.cpp:
1396         (WebCore::Page::Page):
1397         (WebCore::Page::PageClients::PageClients):
1398         * page/Page.h:
1399         (WebCore):
1400         (PageClients):
1401         (Page):
1402         * page/SpeechInput.cpp:
1403         (WebCore::SpeechInput::supplementName):
1404         (WebCore):
1405         (WebCore::provideSpeechInputTo):
1406         * page/SpeechInput.h:
1407         (SpeechInput):
1408         (WebCore::SpeechInput::from):
1409         * page/SpeechInputClient.h:
1410         (WebCore):
1411
1412 2012-02-21  Alexandre Elias  <aelias@google.com>
1413
1414         [chromium] Add three small zoom gesture features
1415         https://bugs.webkit.org/show_bug.cgi?id=74216
1416
1417         Reviewed by James Robinson.
1418
1419         1. Support panning around with two fingers.
1420         2. When double-tap zooming, issue the commit at final/scroll scale as
1421         early as possible.
1422         3. When pinch zooming out, issue a commit at minimum scale to avoid
1423         showing checkerboard.
1424
1425         Added test for panning to CCLayerTreeHostImplTest::pinchGesture.
1426         (The other features are heuristics whose exact behavior we don't need
1427         to lock in with a test.)
1428
1429         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1430         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
1431         (WebCore::CCLayerTreeHostImpl::pinchGestureBegin):
1432         (WebCore::CCLayerTreeHostImpl::pinchGestureUpdate):
1433         (WebCore::CCLayerTreeHostImpl::computeDoubleTapZoomDeltas):
1434         (WebCore::CCLayerTreeHostImpl::computePinchZoomDeltas):
1435         (WebCore::CCLayerTreeHostImpl::makeScrollAndScaleSet):
1436         (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
1437         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1438
1439 2012-02-21  Filip Pizlo  <fpizlo@apple.com>
1440
1441         JSC should be a triple-tier VM
1442         https://bugs.webkit.org/show_bug.cgi?id=75812
1443         <rdar://problem/10079694>
1444
1445         Reviewed by Gavin Barraclough.
1446         
1447         No new tests, because there is no change in behavior.
1448
1449         * CMakeLists.txt:
1450
1451 2012-02-21  Kentaro Hara  <haraken@chromium.org>
1452
1453         NavigatorMediaStream.idl defines an interface for NavigatorGamepad
1454         https://bugs.webkit.org/show_bug.cgi?id=79152
1455
1456         Reviewed by Adam Barth.
1457
1458         Fixed a typo: NavigatorGamepad => NavigatorMediaStream
1459
1460         This typo fix just changes the name of generated files:
1461
1462         - V8NavigatorGamepad.h => V8NavigatorMediaStream.h
1463         - V8NavigatorGamepad.cpp => V8NavigatorMediaStream.cpp
1464
1465         The reason why the typo has not caused any serious build issues is that
1466         the generate files for supplemental interfaces are "empty" and not important.
1467         They just exist to control makefile dependencies.
1468
1469         No tests. No change in behavior.
1470
1471         * mediastream/NavigatorMediaStream.idl:
1472
1473 2012-02-21  Daniel Sievers  <sievers@chromium.org>
1474
1475         [Chromium] Fix compositor setting color uniforms incorrectly for solid color quads.
1476         https://bugs.webkit.org/show_bug.cgi?id=76017
1477
1478         Reviewed by James Robinson.
1479
1480         * platform/graphics/chromium/LayerRendererChromium.cpp:
1481         (WebCore::LayerRendererChromium::drawSolidColorQuad):
1482
1483 2012-02-21  Max Vujovic  <mvujovic@adobe.com>
1484
1485         getCTM() on SVG root element with borders, paddings, and viewbox returns incorrect values
1486         https://bugs.webkit.org/show_bug.cgi?id=78631
1487
1488         Reviewed by Eric Seidel.
1489
1490         SVGSVGElement::currentViewportSize was returning the size of the SVG viewport plus CSS
1491         borders and paddings, causing the CTM calculation to be off.
1492
1493         Test: svg/dom/SVGLocatable-getCTM-svg-root.html
1494
1495         * svg/SVGSVGElement.cpp:
1496         (WebCore::SVGSVGElement::currentViewportSize):
1497
1498             SVGSVGElement::currentViewportSize now uses the contentBoxRect instead of the frameRect.
1499             The contentBoxRect corresponds to the SVG viewport and does not include borders and
1500             paddings.
1501
1502 2012-02-21  Robin Cao  <robin.cao@torchmobile.com.cn>
1503
1504         [BlackBerry] Upstream Icon class in platform/graphics/blackberry
1505         https://bugs.webkit.org/show_bug.cgi?id=79088
1506
1507         Reviewed by Antonio Gomes.
1508
1509         Initial upstreaming, no new tests.
1510
1511         * platform/graphics/blackberry/IconBlackBerry.cpp: Added.
1512         (WebCore):
1513         (WebCore::Icon::~Icon):
1514         (WebCore::Icon::paint):
1515         (WebCore::Icon::createIconForFiles):
1516
1517 2012-02-21  Kenichi Ishibashi  <bashi@chromium.org>
1518
1519         Rename "reserved1" flag of WebSocketFrame to compress
1520         https://bugs.webkit.org/show_bug.cgi?id=79187
1521
1522         WebSocket deflate-frame extension draft specification defines COMP bit.
1523         http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-05#page-11
1524
1525         Reviewed by Kent Tamura.
1526
1527         No new tests. http/tests/websocket/tests/hybi/reserved-bits.html is revised to follow the change.
1528
1529         * websockets/WebSocketChannel.cpp:
1530         (WebCore):
1531         (WebCore::WebSocketChannel::parseFrame): "reserved1" renamed "compress".
1532         (WebCore::WebSocketChannel::processFrame): Removed reserved1 flag check.
1533         (WebCore::makeFrameData):
1534         (WebCore::WebSocketChannel::sendFrame):
1535         * websockets/WebSocketFrame.h: "reserved1" flag renamed "compress".
1536         (WebCore::WebSocketFrame::WebSocketFrame):
1537         (WebSocketFrame):
1538
1539 2012-02-21  Yael Aharon  <yael.aharon@nokia.com>
1540
1541         [Texmap] Move all TextureMapper related files to graphics/texmap
1542         https://bugs.webkit.org/show_bug.cgi?id=79141
1543
1544         Reviewed by Martin Robinson.
1545
1546         Move TextureMaooerGL and TextureMapperShaderManager files to graphics/texmap.
1547         No new tests. 
1548
1549         * GNUmakefile.list.am:
1550         * Target.pri:
1551         * WebCore.gypi:
1552         * platform/graphics/qt/GraphicsContext3DQt.cpp
1553         * platform/graphics/opengl/TextureMapperGL.cpp: Removed.
1554         * platform/graphics/opengl/TextureMapperGL.h: Removed.
1555         * platform/graphics/opengl/TextureMapperShaderManager.cpp: Removed.
1556         * platform/graphics/opengl/TextureMapperShaderManager.h: Removed.
1557         * platform/graphics/texmap/TextureMapperGL.cpp: Copied from Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp.
1558         * platform/graphics/texmap/TextureMapperGL.h: Copied from Source/WebCore/platform/graphics/opengl/TextureMapperGL.h.
1559         * platform/graphics/texmap/TextureMapperShaderManager.cpp: Copied from Source/WebCore/platform/graphics/opengl/TextureMapperShaderManager.cpp.
1560         * platform/graphics/texmap/TextureMapperShaderManager.h: Copied from Source/WebCore/platform/graphics/opengl/TextureMapperShaderManager.h.
1561
1562 2012-02-20  MORITA Hajime  <morrita@google.com>
1563
1564         MEDIA_STREAM should be implemented as a PageSupplement.
1565         https://bugs.webkit.org/show_bug.cgi?id=79050
1566
1567         Reviewed by Adam Barth.
1568
1569         Added UserMediaController which implements PageSupplement. This
1570         controller mediates WebCore-to-client communication and lifecycle
1571         management. Then pushed UserMediaController out as a
1572         PageSupplement module.
1573
1574         No new tests. No behavior change.
1575
1576         * WebCore.gypi:
1577         * GNUmakefile.list.am:
1578         * mediastream/NavigatorMediaStream.cpp:
1579         (WebCore::NavigatorMediaStream::webkitGetUserMedia):
1580         * mediastream/UserMediaClient.h:
1581         (WebCore):
1582         * mediastream/UserMediaController.cpp: Added.
1583         (WebCore):
1584         (WebCore::UserMediaController::supplementName):
1585         (WebCore::UserMediaController::UserMediaController):
1586         (WebCore::UserMediaController::~UserMediaController):
1587         (WebCore::UserMediaController::create):
1588         (WebCore::provideUserMediaTo):
1589         * mediastream/UserMediaController.h: Added.
1590         (WebCore):
1591         (UserMediaController):
1592         (WebCore::UserMediaController::client):
1593         (WebCore::UserMediaController::from):
1594         (WebCore::UserMediaController::requestUserMedia):
1595         (WebCore::UserMediaController::cancelUserMediaRequest):
1596         * mediastream/UserMediaRequest.cpp:
1597         (WebCore::UserMediaRequest::create):
1598         (WebCore::UserMediaRequest::UserMediaRequest):
1599         (WebCore::UserMediaRequest::didCompleteQuery):
1600         (WebCore::UserMediaRequest::contextDestroyed):
1601         * mediastream/UserMediaRequest.h:
1602         (WebCore):
1603         (UserMediaRequest):
1604         * page/Page.cpp:
1605         (WebCore::Page::Page):
1606         (WebCore::Page::~Page):
1607         (WebCore::Page::PageClients::PageClients):
1608         * page/Page.h:
1609         (WebCore):
1610         (PageClients):
1611         (Page):
1612
1613 2012-02-21  James Robinson  <jamesr@chromium.org>
1614
1615         Node::isContentEditable should only update styles, not layout
1616         https://bugs.webkit.org/show_bug.cgi?id=78637
1617
1618         Reviewed by Ryosuke Niwa.
1619
1620         isContentEditable depends on knowing the node's current computed style, so it has to update styles if they are
1621         out of date.  It does not depend on knowing any layout-derived properties, however, so updating layout is just a
1622         waste of time.
1623
1624         Behavior is covered by existing layout tests, primarily in editing/
1625
1626         * dom/Node.cpp:
1627         (WebCore::Node::isContentEditable):
1628         (WebCore::Node::isContentRichlyEditable):
1629
1630 2012-02-21  James Robinson  <jamesr@chromium.org>
1631
1632         Partially revert r108418 - move allowEventDispatch() call back to where it used to be.
1633
1634         Rubber-stamped by Ryosuke Niwa.
1635
1636         Tested by fast/text/find-layout-crash.html
1637
1638         * dom/ContainerNode.cpp:
1639         (WebCore::ContainerNode::removeChildren):
1640
1641 2012-02-21  Anders Carlsson  <andersca@apple.com>
1642
1643         Background jitters on pages with background-attachment: fixed
1644         https://bugs.webkit.org/show_bug.cgi?id=79182
1645
1646         Reviewed by Dan Bernstein.
1647
1648         Make sure to update the main frame scroll position before updating the scrolling layer.
1649         This also fixes a (purely theoretical) bug where we wouldn't be updating the main frame
1650         position if the main frame didn't have a scroll layer.
1651
1652         * page/scrolling/ScrollingCoordinator.cpp:
1653         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
1654
1655 2012-02-21  Dana Jansens  <danakj@chromium.org>
1656
1657         Early-out in Region::unite() for adding an empty region.
1658         https://bugs.webkit.org/show_bug.cgi?id=79174
1659
1660         Reviewed by Anders Carlsson.
1661
1662         * platform/graphics/Region.cpp:
1663         (WebCore::Region::unite):
1664
1665 2012-02-21  Dana Jansens  <danakj@chromium.org>
1666
1667         [chromium] Painting a layer clears opaque rect in untouched tiles
1668         https://bugs.webkit.org/show_bug.cgi?id=79157
1669
1670         Reviewed by James Robinson.
1671
1672         When painting a tiled layer, we would throw away the saved opaque rect
1673         for any tiles that were not part of the paint. So now we check
1674         if we are able to save the existing saved opaque rect in a more
1675         proper way:
1676         1. If any pixels of the saved rect are painted non-opaque, we replace
1677         the saved rect.
1678         2. If an opaque rect is drawn outside of the saved rect, we replace
1679         the saved rect.
1680
1681         Unit test: TiledLayerChromiumTest.cpp
1682
1683         * platform/graphics/chromium/TiledLayerChromium.cpp:
1684         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1685         (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
1686
1687 2012-02-21  Raymond Toy  <rtoy@google.com>
1688
1689         Small typo in AudioPannerNode.cpp
1690         https://bugs.webkit.org/show_bug.cgi?id=75890
1691
1692         Change to check elevation as intended instead of azimuth.
1693         
1694         Reviewed by Chris Rogers.
1695
1696         No new tests for correction of typo.
1697
1698         * webaudio/AudioPannerNode.cpp:
1699         (WebCore::AudioPannerNode::getAzimuthElevation):
1700
1701 2012-02-21  Adam Barth  <abarth@webkit.org>
1702
1703         Frame and Navigator shouldn't need to worry about Geolocation
1704         https://bugs.webkit.org/show_bug.cgi?id=78860
1705
1706         Reviewed by Eric Seidel.
1707
1708         This patch removes some Geolocation-specific code from Frame and
1709         Navigator in favor of our new supplemental module mechanism.  We're
1710         still refining the module system, but we seem to be converging on a
1711         simple Observer/Supplement design.
1712
1713         In a future patch, I'll move the remaining Geolocation-related files in
1714         WebCore into Modules/geolocation.  This patch appears to be the first
1715         patch that introduces a module used by all the various build systems,
1716         which is why there's a bit more build system overhead than usual.
1717
1718         * Modules/geolocation: Added.
1719         * Modules/geolocation/NavigatorGeolocation.cpp: Added.
1720         (WebCore):
1721         (WebCore::NavigatorGeolocation::NavigatorGeolocation):
1722         (WebCore::NavigatorGeolocation::~NavigatorGeolocation):
1723         (WebCore::NavigatorGeolocation::pageDestroyed):
1724         (WebCore::NavigatorGeolocation::from):
1725         (WebCore::NavigatorGeolocation::geolocation):
1726         * Modules/geolocation/NavigatorGeolocation.h: Added.
1727         (WebCore):
1728         (NavigatorGeolocation):
1729         * Modules/geolocation/NavigatorGeolocation.idl: Added.
1730             - I've temporarily disabled this API for GObject because it generates
1731               a strange compile error.  Once I land this patch, I'll spend some
1732               more time fixing the compile error.
1733         * page/DOMWindow.cpp:
1734         (WebCore):
1735         * page/DOMWindow.h:
1736         (DOMWindow):
1737         * page/Frame.cpp:
1738         (WebCore::Frame::pageDestroyed):
1739         (WebCore::Frame::transferChildFrameToNewDocument):
1740         * page/FrameDestructionObserver.cpp:
1741         (WebCore::FrameDestructionObserver::pageDestroyed):
1742         (WebCore):
1743         * page/FrameDestructionObserver.h:
1744         (FrameDestructionObserver):
1745         * page/Navigator.cpp:
1746         (WebCore):
1747         * page/Navigator.h:
1748         (WebCore):
1749         (Navigator):
1750         * page/Navigator.idl:
1751
1752 2012-02-21  Shawn Singh  <shawnsingh@chromium.org>
1753
1754         [chromium] Refactor CCLayerTreeHostCommon: merge scattered setTargetRenderSurface logic
1755         https://bugs.webkit.org/show_bug.cgi?id=78936
1756
1757         Reviewed by James Robinson.
1758
1759         No change in behavior, the code moved around already covered by existing tests.
1760
1761         In calculateDrawTransformsAndVisibility(), there are two separate
1762         if-else statements where setTargetRenderSurface logic is
1763         performed, and this makes the code less readable and more error
1764         prone. This patch merges the logic, removing the redundant if-else
1765         statements.
1766
1767         This code also merges one other set of if-statements that are
1768         equivalent, if (layer->parent()) and if (layer!=rootLayer).
1769
1770         * platform/graphics/chromium/LayerChromium.cpp:
1771         (WebCore::LayerChromium::createRenderSurface):
1772         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1773         (WebCore::CCLayerImpl::createRenderSurface):
1774         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1775         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1776
1777 2012-02-21  Kentaro Hara  <haraken@chromium.org>
1778
1779         Remove FIXME from resolve-supplemental.pl
1780         https://bugs.webkit.org/show_bug.cgi?id=79160
1781
1782         Reviewed by Adam Barth.
1783
1784         The IDL attribute checker has been enabled in all build systems.
1785         This patch removes FIXME in resolve-supplemental.pl.
1786         Also, this patch improves a comment in IDLAttributes.txt.
1787
1788         No tests. No change in behavior.
1789
1790         * bindings/scripts/IDLAttributes.txt:
1791         * bindings/scripts/resolve-supplemental.pl:
1792
1793 2012-02-21  Emil A Eklund  <eae@chromium.org>
1794
1795         Add FractionalLayoutRect for sub-pixel layout
1796         https://bugs.webkit.org/show_bug.cgi?id=78924
1797
1798         Reviewed by Eric Seidel.
1799
1800         Add FractionalLayoutUnit version of Rect class. Uses FractionalLayoutPoint
1801         and FractionalLayoutSize internally.
1802
1803         Also add conversions to int/float versions of same.
1804
1805         No new tests.
1806
1807         * GNUmakefile.list.am:
1808         * WebCore.vcproj/WebCore.vcproj:
1809         * WebCore.xcodeproj/project.pbxproj:
1810         * platform/graphics/FloatRect.cpp:
1811         (WebCore::FloatRect::FloatRect):
1812         (WebCore):
1813         * platform/graphics/FloatRect.h:
1814         (WebCore):
1815         (FloatRect):
1816         * platform/graphics/FractionalLayoutRect.cpp: Added.
1817         (WebCore):
1818         (WebCore::FractionalLayoutRect::FractionalLayoutRect):
1819         (WebCore::FractionalLayoutRect::intersects):
1820         (WebCore::FractionalLayoutRect::contains):
1821         (WebCore::FractionalLayoutRect::intersect):
1822         (WebCore::FractionalLayoutRect::unite):
1823         (WebCore::FractionalLayoutRect::uniteIfNonZero):
1824         (WebCore::FractionalLayoutRect::scale):
1825         (WebCore::unionRect):
1826         (WebCore::enclosingIntRect):
1827         (WebCore::enclosingFractionalLayoutRect):
1828         (WebCore::pixelSnappedIntRect):
1829         * platform/graphics/FractionalLayoutRect.h: Added.
1830         (WebCore):
1831         (FractionalLayoutRect):
1832         (WebCore::FractionalLayoutRect::FractionalLayoutRect):
1833         (WebCore::FractionalLayoutRect::location):
1834         (WebCore::FractionalLayoutRect::size):
1835         (WebCore::FractionalLayoutRect::setLocation):
1836         (WebCore::FractionalLayoutRect::setSize):
1837         (WebCore::FractionalLayoutRect::x):
1838         (WebCore::FractionalLayoutRect::y):
1839         (WebCore::FractionalLayoutRect::maxX):
1840         (WebCore::FractionalLayoutRect::maxY):
1841         (WebCore::FractionalLayoutRect::width):
1842         (WebCore::FractionalLayoutRect::height):
1843         (WebCore::FractionalLayoutRect::setX):
1844         (WebCore::FractionalLayoutRect::setY):
1845         (WebCore::FractionalLayoutRect::setWidth):
1846         (WebCore::FractionalLayoutRect::setHeight):
1847         (WebCore::FractionalLayoutRect::isEmpty):
1848         (WebCore::FractionalLayoutRect::center):
1849         (WebCore::FractionalLayoutRect::move):
1850         (WebCore::FractionalLayoutRect::moveBy):
1851         (WebCore::FractionalLayoutRect::expand):
1852         (WebCore::FractionalLayoutRect::contract):
1853         (WebCore::FractionalLayoutRect::shiftXEdgeTo):
1854         (WebCore::FractionalLayoutRect::shiftMaxXEdgeTo):
1855         (WebCore::FractionalLayoutRect::shiftYEdgeTo):
1856         (WebCore::FractionalLayoutRect::shiftMaxYEdgeTo):
1857         (WebCore::FractionalLayoutRect::minXMinYCorner):
1858         (WebCore::FractionalLayoutRect::maxXMinYCorner):
1859         (WebCore::FractionalLayoutRect::minXMaxYCorner):
1860         (WebCore::FractionalLayoutRect::maxXMaxYCorner):
1861         (WebCore::FractionalLayoutRect::contains):
1862         (WebCore::FractionalLayoutRect::inflateX):
1863         (WebCore::FractionalLayoutRect::inflateY):
1864         (WebCore::FractionalLayoutRect::inflate):
1865         (WebCore::FractionalLayoutRect::transposedRect):
1866         (WebCore::FractionalLayoutRect::infiniteRect):
1867         (WebCore::intersection):
1868         (WebCore::unionRect):
1869         (WebCore::operator==):
1870         (WebCore::operator!=):
1871         * platform/graphics/IntRect.cpp:
1872         (WebCore::IntRect::IntRect):
1873         (WebCore):
1874         * platform/graphics/IntRect.h:
1875         (WebCore):
1876         (IntRect):
1877
1878 2012-02-21  James Robinson  <jamesr@chromium.org>
1879
1880         Enable ScrollingCoordinator in chromium whenever compositing is enabled
1881         https://bugs.webkit.org/show_bug.cgi?id=79165
1882
1883         Reviewed by Adam Barth.
1884
1885         As the title says.
1886
1887         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1888         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
1889         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
1890         (WebCore::ScrollingCoordinator::setScrollLayer):
1891         (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
1892         (WebCore::ScrollingCoordinator::setScrollParameters):
1893         (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
1894         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1895             Remove ASSERT_NOT_REACHED()ed from these functions, they are now expected to be called but do nothing.
1896         * rendering/RenderLayerBacking.cpp:
1897         (WebCore::RenderLayerBacking::RenderLayerBacking):
1898             Guard a mac-specific piece of code in #if PLATFORM(MAC). This code already has a FIXME.
1899         * rendering/RenderLayerCompositor.cpp:
1900         (WebCore::shouldCompositeOverflowControls):
1901             Make coordinatesScroll..() sufficient but not necessary for compositing overflow controls. In chromium, we
1902             want to composite overflow controls even for FrameViews that we aren't coordinating via the
1903             ScrollingCoordinator.
1904
1905 2012-02-21  Adam Klein  <adamk@chromium.org>
1906
1907         Setting innerText causes DOMSubtreeModified to be dispatched too early
1908         https://bugs.webkit.org/show_bug.cgi?id=79140
1909
1910         Reviewed by Ryosuke Niwa.
1911
1912         Followup to r108152: move children change notifications later in
1913         ContainerNode::removeChildren(), thus making sure Node::inDocument()
1914         is in the correct state when we call into script.
1915
1916         Tests: fast/dom/getElementById-consistency3.html
1917                fast/dom/getElementById-consistency4.html
1918                fast/dom/getElementById-consistency5.html
1919
1920         * dom/ContainerNode.cpp:
1921         (WebCore::ContainerNode::removeChildren):
1922
1923 2012-02-15  Ryosuke Niwa  <rniwa@webkit.org>
1924
1925         Assertion failure in TextIterator::handleTextBox
1926         https://bugs.webkit.org/show_bug.cgi?id=78530
1927
1928         Reviewed by Eric Seidel.
1929
1930         The assertion failure was caused by handleTextNodeFirstLetter's updating m_text without clearing
1931         m_sortedTextBoxesPosition. Re-structured handleTextNode so that we always reset m_sortedTextBoxesPosition
1932         when we have a first-letter.
1933
1934         Test: editing/text-iterator/rtl-first-letter-text-iterator-crash.html
1935
1936         * editing/TextIterator.cpp:
1937         (WebCore::TextIterator::handleTextNode):
1938         (WebCore::TextIterator::handleTextBox):
1939         (WebCore::TextIterator::handleTextNodeFirstLetter):
1940
1941 2012-02-21  Yael Aharon  <yael.aharon@nokia.com>
1942
1943         Unreviewed build fix.
1944
1945         No new tests.
1946
1947         * platform/graphics/opengl/TextureMapperGL.cpp:
1948
1949 2012-02-21  Adam Klein  <adamk@chromium.org>
1950
1951         ContainerNode::childrenChanged must be called immediately after removing children
1952         https://bugs.webkit.org/show_bug.cgi?id=79162
1953
1954         Reviewed by Ryosuke Niwa.
1955
1956         In r108152, a call to childrenChanged() was erroneously moved
1957         below the call to child->removedFromDocument(). This breaks, at the
1958         least, the behavior of the <title> element. This patch corrects the
1959         mistake and adds a test.
1960
1961         Test: fast/dom/title-directionality-removeChild.html
1962
1963         * dom/ContainerNode.cpp:
1964         (WebCore::ContainerNode::removeChild):
1965
1966 2012-02-21  Luke Macpherson   <macpherson@chromium.org>
1967
1968         Implement many instances of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE in CSSStyleApplyProperty.
1969         https://bugs.webkit.org/show_bug.cgi?id=79067
1970
1971         Reviewed by Andreas Kling.
1972
1973         No new tests / refactoring only.
1974
1975         * css/CSSStyleApplyProperty.cpp:
1976         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1977         * css/CSSStyleSelector.cpp:
1978         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1979         * rendering/style/RenderStyle.h:
1980
1981 2012-02-21  Jon Lee  <jonlee@apple.com>
1982
1983         Bring notifications support to WK1 mac
1984         https://bugs.webkit.org/show_bug.cgi?id=78783
1985         <rdar://problem/10610578>
1986
1987         Reviewed by Anders Carlsson.
1988
1989         * WebCore.exp.in: Expose dispatchErrorEvent on Notification.
1990
1991 2012-02-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1992
1993         [Qt] Previous web page appears outside content rect
1994         https://bugs.webkit.org/show_bug.cgi?id=78816
1995
1996         Adjust the scissor clipping by -1, as the glScissor() function requires coordinates and
1997         not sizes.
1998
1999         Reviewed by Kenneth Rohde Christiansen.
2000
2001         No new functionality.
2002
2003         * platform/graphics/opengl/TextureMapperGL.cpp:
2004         (WebCore::scissorClip):
2005
2006 2012-02-21  Victor Carbune  <vcarbune@adobe.com>
2007
2008         Added support for pause-on-exit flag on a TextTrackCue.
2009         https://bugs.webkit.org/show_bug.cgi?id=72173
2010
2011         Reviewed by Eric Carlson.
2012
2013         Test: media/track/track-cues-pause-on-exit.html
2014
2015         * html/HTMLMediaElement.cpp:
2016         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Implemented
2017         support for pausing the video if the pause-on-exit flag is set on
2018         a cue that is currently exiting.
2019
2020 2012-02-21  Kentaro Hara  <haraken@chromium.org>
2021
2022         Enable the IDL attribute checker in all build systems
2023         https://bugs.webkit.org/show_bug.cgi?id=79090
2024
2025         Reviewed by Adam Barth.
2026
2027         We have enabled the IDL attribute checker in Chromium in r108322.
2028         This patch enables the IDL attribute checker in all other
2029         build systems.
2030
2031         No tests. I manually checked that [Custommm], [CallWith=],
2032         [CallWith=ScriptExecutionContext|Foo] cause build failures.
2033
2034         * CMakeLists.txt:
2035         * DerivedSources.make:
2036         * DerivedSources.pri:
2037         * GNUmakefile.am:
2038         * UseJSC.cmake:
2039         * UseV8.cmake:
2040         * WebCore.vcproj/WebCore.vcproj:
2041         * WebCore.xcodeproj/project.pbxproj:
2042         * bindings/scripts/IDLAttributes.txt: Added [ObjCCustomImplementation]
2043         since I forgot to add it in r108322.
2044
2045 2012-02-21  Yael Aharon  <yael.aharon@nokia.com>
2046
2047         [Texmap] Better management of shaders in TextureMapperGL
2048         https://bugs.webkit.org/show_bug.cgi?id=78674
2049  
2050         Reviewed by Noam Rosenthal.
2051  
2052         Split TextureMapperGL.cpp into two files.
2053         Get rid of the enums that we were using to identify shaders and to identify variables.
2054         Switch flip and opaque from using bool to using enums.
2055  
2056         No new tests. This is refactoring only.
2057  
2058         * GNUmakefile.list.am:
2059         * Target.pri:
2060         * WebCore.gypi:
2061         * platform/graphics/OpenGLShims.h:
2062         * platform/graphics/opengl/TextureMapperGL.cpp:
2063         (WebCore):
2064         (SharedGLData):
2065         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
2066         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
2067         (WebCore::TextureMapperGLData::TextureMapperGLData):
2068         (TextureMapperGLData):
2069         (WebCore::TextureMapperGL::drawTexture):
2070         (WebCore::TextureMapperGL::drawTextureWithMaskAndOpacity):
2071         (WebCore::TextureMapperGL::drawTextureSimple):
2072         (WebCore::TextureMapperGL::beginClip):
2073         * platform/graphics/opengl/TextureMapperGL.h:
2074         * platform/graphics/opengl/TextureMapperShaderManager.cpp: Added.
2075         (WebCore):
2076         (WebCore::FRAGMENT_SHADER):
2077         (WebCore::TextureMapperShaderProgram::initializeProgram):
2078         (WebCore::TextureMapperShaderProgram::getUniformLocation):
2079         (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
2080         (WebCore::TextureMapperShaderProgramSimple::create):
2081         (WebCore::TextureMapperShaderProgramSimple::TextureMapperShaderProgramSimple):
2082         (WebCore::TextureMapperShaderProgramSimple::vertexShaderSource):
2083         (WebCore::TextureMapperShaderProgramSimple::fragmentShaderSource):
2084         (WebCore::TextureMapperShaderProgramOpacityAndMask::create):
2085         (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
2086         (WebCore::TextureMapperShaderProgramOpacityAndMask::vertexShaderSource):
2087         (WebCore::TextureMapperShaderProgramOpacityAndMask::fragmentShaderSource):
2088         (WebCore::TextureMapperShaderProgramClip::create):
2089         (WebCore::TextureMapperShaderProgramClip::TextureMapperShaderProgramClip):
2090         (WebCore::TextureMapperShaderProgramClip::vertexShaderSource):
2091         (WebCore::TextureMapperShaderProgramClip::fragmentShaderSource):
2092         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
2093         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
2094         * platform/graphics/opengl/TextureMapperShaderManager.h: Added.
2095         (WebCore):
2096         (WebCore::debugGLCommand):
2097         (TextureMapperShaderProgram):
2098         (WebCore::TextureMapperShaderProgram::id):
2099         (WebCore::TextureMapperShaderProgram::vertexAttrib):
2100         (WebCore::TextureMapperShaderProgram::shaderType):
2101         (TextureMapperShaderProgramSimple):
2102         (WebCore::TextureMapperShaderProgramSimple::matrixVariable):
2103         (WebCore::TextureMapperShaderProgramSimple::sourceMatrixVariable):
2104         (WebCore::TextureMapperShaderProgramSimple::sourceTextureVariable):
2105         (WebCore::TextureMapperShaderProgramSimple::opacityVariable):
2106         (TextureMapperShaderProgramOpacityAndMask):
2107         (WebCore::TextureMapperShaderProgramOpacityAndMask::sourceMatrixVariable):
2108         (WebCore::TextureMapperShaderProgramOpacityAndMask::matrixVariable):
2109         (WebCore::TextureMapperShaderProgramOpacityAndMask::maskMatrixVariable):
2110         (WebCore::TextureMapperShaderProgramOpacityAndMask::sourceTextureVariable):
2111         (WebCore::TextureMapperShaderProgramOpacityAndMask::maskTextureVariable):
2112         (WebCore::TextureMapperShaderProgramOpacityAndMask::opacityVariable):
2113         (TextureMapperShaderProgramClip):
2114         (WebCore::TextureMapperShaderProgramClip::matrixVariable):
2115         (TextureMapperShaderManager):
2116         (WebCore::TextureMapperShaderManager::getShaderProgram):
2117         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2118         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2119         * platform/graphics/texmap/TextureMapper.h:
2120         (WebCore::BitmapTexture::reset):
2121         (WebCore::BitmapTexture::isOpaque):
2122         (BitmapTexture):
2123
2124 2012-02-21  Anders Carlsson  <andersca@apple.com>
2125
2126         The tile cache should keep track of the tile coverage rect
2127         https://bugs.webkit.org/show_bug.cgi?id=79149
2128         <rdar://problem/10877338>
2129
2130         Reviewed by Andreas Kling.
2131
2132         Keep track of the tile coverage rect and use it to avoid trying to iterate over non-existent tiles on large pages.
2133
2134         * platform/graphics/ca/mac/TileCache.h:
2135         (TileCache):
2136         * platform/graphics/ca/mac/TileCache.mm:
2137         (WebCore::TileCache::setNeedsDisplayInRect):
2138         (WebCore::TileCache::revalidateTiles):
2139
2140 2012-02-21  Andreas Kling  <awesomekling@apple.com>
2141
2142         Make WebKitCSSShaderValue inherit directly from CSSValue.
2143         <http://webkit.org/b/79144>
2144
2145         Reviewed by Antti Koivisto.
2146
2147         WebKitCSSShaderValue was inheriting from CSSPrimitiveValue but only used
2148         it for storing the shader URL. Moved that to a String member instead.
2149
2150         WebKitCSSShaderValues didn't even return true for isPrimitiveValue() so
2151         there should be no behavior change whatsoever here.
2152
2153         * css/WebKitCSSShaderValue.cpp:
2154         (WebCore::WebKitCSSShaderValue::WebKitCSSShaderValue):
2155         (WebCore::WebKitCSSShaderValue::cachedShader):
2156         (WebCore::WebKitCSSShaderValue::customCssText):
2157         * css/WebKitCSSShaderValue.h:
2158         (WebKitCSSShaderValue):
2159
2160 2012-02-21  James Robinson  <jamesr@chromium.org>
2161
2162         Unreviewed windows build fix - avoid return statement after return if USE(ACCELERATED_COMPOSITING) is set.
2163
2164         * page/scrolling/ScrollingCoordinator.cpp:
2165         (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
2166
2167 2012-02-21  James Robinson  <jamesr@chromium.org>
2168
2169         ScrollingCoordinator::coordinatesScrollingForFrameView should be conditional on compositing being active
2170         https://bugs.webkit.org/show_bug.cgi?id=79126
2171
2172         Reviewed by Anders Carlsson.
2173
2174         The ScrollingCoordinator should only attempt to coordinate scrolling when compositing is active, since it's all
2175         about manipulating GraphicsLayers. Adds a runtime check.
2176
2177         Also removes some stray #if ENABLE(THREADED_SCROLLING) guards that snuck into FrameView.
2178
2179         * page/FrameView.cpp:
2180         (WebCore::FrameView::addFixedObject):
2181         (WebCore::FrameView::removeFixedObject):
2182         * page/scrolling/ScrollingCoordinator.cpp:
2183         (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
2184         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
2185
2186 2012-02-21  James Robinson  <jamesr@chromium.org>
2187
2188         Chromium build fix. Unreviwed but rubber-stamped by Antti.
2189
2190         * dom/Document.cpp:
2191         * editing/ReplaceSelectionCommand.cpp:
2192         * inspector/InspectorStyleSheet.h:
2193
2194 2012-02-21  Eric Carlson  <eric.carlson@apple.com>
2195
2196         Set Referrer header for media downloads
2197         https://bugs.webkit.org/show_bug.cgi?id=78614
2198
2199         Reviewed by Alexey Proskuryakov.
2200
2201         Test: http/tests/media/video-referer.html was modified to test this change.
2202
2203         * html/HTMLMediaElement.cpp:
2204         (WebCore::HTMLMediaElement::mediaPlayerReferrer): New, return the document's referer.
2205         * html/HTMLMediaElement.h:
2206
2207         * platform/graphics/MediaPlayer.cpp:
2208         (WebCore::MediaPlayer::referrer): New, return the client's mediaPlayerReferrer.
2209         * platform/graphics/MediaPlayer.h:
2210         (WebCore::MediaPlayerClient::mediaPlayerReferrer):
2211
2212         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2213         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2214         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation to add
2215             a referer header.
2216
2217 2012-02-21  Antti Koivisto  <antti@apple.com>
2218
2219         Not reviewed.
2220
2221         Remove some obsolete comments, use consistent name for propertyID.
2222
2223         * css/StylePropertySet.h:
2224         (StylePropertySet):
2225
2226 2012-02-21  Antti Koivisto  <antti@apple.com>
2227
2228         Clean up StylePropertySet included headers
2229         https://bugs.webkit.org/show_bug.cgi?id=79134
2230
2231         Reviewed by Andreas Kling.
2232
2233         Remove unneccesary includes.
2234
2235         * bindings/js/JSDOMBinding.h:
2236         * css/StylePropertySet.cpp:
2237         * css/StylePropertySet.h:
2238         (WebCore):
2239         (StylePropertySet):
2240         * editing/RemoveCSSPropertyCommand.cpp:
2241
2242 2012-02-21  Lin Wei  <wei.a.lin@intel.com>
2243
2244         Fix bug from r107672.
2245         https://bugs.webkit.org/show_bug.cgi?id=78773
2246
2247         Before set MediaStreamTrack disable/enable operation,
2248         checking the status of MediaStream that contains this MediaStreamTrack.
2249         if MediaStream is finished, then skipping operation of 
2250         didSetMediaStreamTrackEnabled().
2251
2252         Reviewed by Adam Barth.
2253         * mediastream/MediaStreamTrack.cpp:
2254         (WebCore::MediaStreamTrack::setEnabled):
2255
2256 2012-02-21  Julien Chaffraix  <jchaffraix@webkit.org>
2257
2258         Move RenderLayer::scrolledContentOffset calls to a common function
2259         https://bugs.webkit.org/show_bug.cgi?id=76971
2260
2261         Reviewed by David Hyatt.
2262
2263         Refactoring without any change in behavior.
2264
2265         This change adds a RenderBox::scrolledContentOffset function to handle all
2266         the calls that goes through the layer(). This indirection will enable us to
2267         add layer() checks without patching a lot of call sites as part of bug 75568.
2268
2269         We also moved down the concept of scroll offset down to RenderBox where it belongs!
2270
2271         * rendering/RenderLayer.h:
2272         (RenderLayer):
2273         (WebCore::RenderLayer::scrolledContentOffset):
2274         Moved scrolledContent to the private section of the class to prevent misuse.
2275
2276         * rendering/RenderBox.cpp:
2277         (WebCore::RenderBox::scrolledContentOffset):
2278         New function to add an indirection with RenderLayer.
2279
2280         * editing/visible_units.cpp:
2281         (WebCore::absoluteLineDirectionPointToLocalPointInBlock):
2282         * rendering/LayoutState.cpp:
2283         (WebCore::LayoutState::LayoutState):
2284         * rendering/RenderBlock.cpp:
2285         (WebCore::RenderBlock::layoutBlock):
2286         (WebCore::RenderBlock::paintObject):
2287         (WebCore::RenderBlock::selectionGapRectsForRepaint):
2288         (WebCore::RenderBlock::paintSelection):
2289         (WebCore::RenderBlock::nodeAtPoint):
2290         (WebCore::RenderBlock::offsetForContents):
2291         * rendering/RenderBox.cpp:
2292         (WebCore::RenderBox::offsetFromContainer):
2293         (WebCore::RenderBox::computeRectForRepaint):
2294         * rendering/RenderBox.h:
2295         (RenderBox):
2296         * rendering/RenderBoxModelObject.cpp:
2297         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2298         * rendering/RenderInline.cpp:
2299         (WebCore::RenderInline::clippedOverflowRectForRepaint):
2300         (WebCore::RenderInline::computeRectForRepaint):
2301         (WebCore::RenderInline::offsetFromContainer):
2302         * rendering/RenderObject.cpp:
2303         (WebCore::RenderObject::computeRectForRepaint):
2304         (WebCore::RenderObject::mapLocalToContainer):
2305         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
2306         (WebCore::RenderObject::offsetFromContainer):
2307         * rendering/RenderTextControlSingleLine.cpp:
2308         (WebCore::RenderTextControlInnerBlock::positionForPoint):
2309         Patched all those call sites to use the new function.
2310
2311 2012-02-21  Emil A Eklund  <eae@chromium.org>
2312
2313         Remove obsolete float comparison FIXMEs
2314         https://bugs.webkit.org/show_bug.cgi?id=79127
2315
2316         Reviewed by Eric Seidel.
2317
2318         Remove obsolete FIXME comments added back when we were planning to use
2319         floating point units for layout.
2320
2321         No new tests, no code changes.
2322
2323         * page/FrameView.cpp:
2324         (WebCore::FrameView::init):
2325         * rendering/RenderBlock.cpp:
2326         (WebCore::RenderBlock::layoutBlock):
2327         (WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
2328         (WebCore::RenderBlock::getClearDelta):
2329         * rendering/RenderBox.cpp:
2330         (WebCore::RenderBox::computeLogicalHeight):
2331         (WebCore::RenderBox::computeLogicalHeightUsing):
2332         (WebCore::RenderBox::computePercentageLogicalHeight):
2333         * rendering/RenderBoxModelObject.cpp:
2334         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
2335
2336 2012-02-21  Alexander Pavlov  <apavlov@chromium.org>
2337
2338         Web Inspector: it is nearly impossible to select and copy text on the Elements panel.
2339         https://bugs.webkit.org/show_bug.cgi?id=60814
2340
2341         Reviewed by Pavel Feldman.
2342
2343         * inspector/front-end/inspector.js:
2344         (WebInspector.documentClick.followLink):
2345         (WebInspector.documentClick):
2346
2347 2012-02-21  Abhishek Arya  <inferno@chromium.org>
2348
2349         Crash in RenderTableSection::nodeAtPoint.
2350         https://bugs.webkit.org/show_bug.cgi?id=78922
2351
2352         Reviewed by Julien Chaffraix.
2353
2354         Test: fast/table/table-section-node-at-point-crash.html
2355
2356         * rendering/RenderTableSection.cpp:
2357         (WebCore::RenderTableSection::nodeAtPoint): recalc cells if the
2358         m_needsCellRecalc is set. Otherwise, we will end up accessing
2359         removed table cells.
2360
2361 2012-02-21  Antti Koivisto  <antti@apple.com>
2362
2363         Move PropertySetCSSStyleDeclaration to a file of its own
2364         https://bugs.webkit.org/show_bug.cgi?id=79121
2365
2366         Rubber-stamped by Andreas Kling.
2367
2368         This makes StylePropertySet.cpp more readable.
2369
2370         * CMakeLists.txt:
2371         * GNUmakefile.list.am:
2372         * Target.pri:
2373         * WebCore.gypi:
2374         * WebCore.vcproj/WebCore.vcproj:
2375         * WebCore.xcodeproj/project.pbxproj:
2376         * css/PropertySetCSSStyleDeclaration.cpp: Copied from Source/WebCore/css/StylePropertySet.cpp.
2377         (WebCore::PropertySetCSSStyleDeclaration::ref):
2378         (WebCore::PropertySetCSSStyleDeclaration::deref):
2379         (WebCore):
2380         * css/PropertySetCSSStyleDeclaration.h: Added.
2381         (WebCore):
2382         (PropertySetCSSStyleDeclaration):
2383         (WebCore::PropertySetCSSStyleDeclaration::PropertySetCSSStyleDeclaration):
2384         (WebCore::PropertySetCSSStyleDeclaration::parentElement):
2385         (WebCore::PropertySetCSSStyleDeclaration::clearParentRule):
2386         (WebCore::PropertySetCSSStyleDeclaration::clearParentElement):
2387         (WebCore::PropertySetCSSStyleDeclaration::contextStyleSheet):
2388         (WebCore::PropertySetCSSStyleDeclaration::setNeedsStyleRecalc):
2389         (RuleCSSStyleDeclaration):
2390         (WebCore::RuleCSSStyleDeclaration::RuleCSSStyleDeclaration):
2391         (WebCore::RuleCSSStyleDeclaration::parentRule):
2392         (WebCore::RuleCSSStyleDeclaration::clearParentRule):
2393         (InlineCSSStyleDeclaration):
2394         (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
2395         (WebCore::InlineCSSStyleDeclaration::parentElement):
2396         (WebCore::InlineCSSStyleDeclaration::clearParentElement):
2397         * css/StylePropertySet.cpp:
2398         (WebCore):
2399
2400 2012-02-21  Philippe Normand  <pnormand@igalia.com>
2401
2402         [GTK] WebAudio build is broken
2403         https://bugs.webkit.org/show_bug.cgi?id=79113
2404
2405         Reviewed by Martin Robinson.
2406
2407         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2408         (webKitWebAudioGStreamerChannelPosition): Set a default value for
2409         the position variable.
2410         * platform/audio/gtk/AudioBusGtk.cpp: Include CString.h, needed
2411         for sharedResourcesPath().
2412
2413 2012-02-21  Andreas Kling  <awesomekling@apple.com>
2414
2415         Kill FontFamilyValue.
2416         <http://webkit.org/b/79103>
2417
2418         Reviewed by Antti Koivisto.
2419
2420         Remove FontFamilyValue and replace all usage by CSSPrimitiveValue.
2421         The class was only used to filter font family names, removing bracketed
2422         suffixes, e.g "[Xft]".
2423
2424         This was added to KHTML in 2002 to support the use of specific X11 font
2425         families inside KMail: <https://bugs.kde.org/show_bug.cgi?id=38808>
2426
2427         Test: fast/css/font-family-trailing-bracket-gunk.html
2428
2429         * CMakeLists.txt:
2430         * GNUmakefile.list.am:
2431         * Target.pri:
2432         * WebCore.gypi:
2433         * WebCore.order:
2434         * WebCore.vcproj/WebCore.vcproj:
2435         * WebCore.xcodeproj/project.pbxproj:
2436         * css/CSSFontSelector.cpp:
2437         (WebCore::CSSFontSelector::addFontFaceRule):
2438         * css/CSSParser.cpp:
2439         * css/CSSStyleSelector.cpp:
2440         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2441         * css/CSSValue.cpp:
2442         (WebCore::CSSValue::cssText):
2443         (WebCore::CSSValue::destroy):
2444         * css/CSSValue.h:
2445         * css/CSSValuePool.cpp:
2446         (WebCore::CSSValuePool::createFontFamilyValue):
2447         * css/CSSValuePool.h:
2448         (CSSValuePool):
2449         * css/FontFamilyValue.cpp: Removed.
2450         * css/FontFamilyValue.h: Removed.
2451
2452 2012-02-21  Alexis Menard  <alexis.menard@openbossa.org>
2453
2454         Little optimization for CSSParser::parseFillShorthand.
2455         https://bugs.webkit.org/show_bug.cgi?id=79042
2456
2457         Reviewed by Hajime Morita.
2458
2459         Remove one extra loop that we can combine with the following one
2460         which adds the properties to the parser's list of properties. I also
2461         removed a useless check.
2462         Instruments shows on the css-parser-yui benchmark an improvement
2463         of 13ms (from 77ms spent in the function to 64ms).
2464
2465         No new tests : refactoring, existings tests should cover.
2466
2467         * css/CSSParser.cpp:
2468         (WebCore::CSSParser::parseFillShorthand):
2469
2470 2012-02-20  David Hyatt  <hyatt@apple.com>
2471
2472         https://bugs.webkit.org/show_bug.cgi?id=79046
2473         
2474         width of overflow:hidden blocks is wrong when their margins overlap floats.
2475         
2476         Relevant discussion is here: http://lists.w3.org/Archives/Public/www-style/2012Feb/0954.html
2477         
2478         This patch makes the following changes to how objects shrink when avoiding floats:
2479         (1) The containing block width used for percentage calculations is now constant. This means that
2480         an overflow:hidden block with a margin-left of 10% will no longer change what 10% means depending
2481         on the available line width. From a code perspective, containingBlockLogicalWidthForContent and
2482         containingBlockLogicalWidthForContentInRegion no longer contain any special-case code for
2483         shrinkToAvoidFloats() objects.
2484
2485         (2) Now the computation of the logical width for the shrinking object itself handles the adjustments.
2486         Two kinds of adjustments are made for both the start and end margins. Conceptually what we do is shrink
2487         the object to the available line width minus our margins, and then expand the width back out to the content edge
2488         or to the float edge as necessary. If the float fully fits in the margin, then we expand back out to the
2489         content edge. Otherwise if the float doesn't fit, then we expand only to the float edge, making sure our
2490         margin overlaps with the float. This expansion is not performed for negative margins, since our result is already
2491         correct in that case.
2492         
2493         Reviewed by Dan Bernstein.
2494
2495         Added the new tests from the thread on www-style about this issue (from Alan Gresley and George Talbot)
2496         in fast/block/float.
2497
2498         * rendering/RenderBlock.cpp:
2499         (WebCore::RenderBlock::containsFloat):
2500         * rendering/RenderBlock.h:
2501         (WebCore::RenderBlock::containsFloats):
2502         Changed to be const.
2503
2504         (WebCore::RenderBlock::endOffsetForLine):
2505         (WebCore::RenderBlock::endOffsetForContent):
2506         Added endOffsetForXXX methods to mirror their startOffset counterparts. Used by the width adjustment code.
2507
2508         * rendering/RenderBox.cpp:
2509         (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
2510         New method that handles shrinking the logical width to the line width (and then re-expanding back out to the
2511         float and/or content edges as needed).
2512
2513         (WebCore::RenderBox::containingBlockLogicalWidthForContent):
2514         (WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
2515         Patched to no longer do the shrinking of objects to avoid floats.
2516
2517         (WebCore::RenderBox::computeLogicalWidthInRegion):
2518         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
2519         Patched to handle calling the new shrinking code to adjust our logical width.
2520
2521         * rendering/RenderBox.h:
2522         (RenderBox):
2523         The signature of computeLogicalWithUsing changed to be region-specific and to carry along enough information
2524         to efficiently perform the shrinking.
2525
2526         * rendering/RenderTable.cpp:
2527         (WebCore::RenderTable::computeLogicalWidth):
2528         Patched to handle calling the new shrinking code to adjust our logical width.
2529
2530 2012-02-21  Sam Weinig  <sam@webkit.org>
2531
2532         Attempt to fix the Snow Leopard build.
2533
2534         * Configurations/Base.xcconfig:
2535
2536 2012-02-21  Sam Weinig  <sam@webkit.org>
2537
2538         Use libc++ when building with Clang on Mac
2539         https://bugs.webkit.org/show_bug.cgi?id=78981
2540
2541         Reviewed by Dan Bernstein.
2542
2543         * Configurations/Base.xcconfig:
2544
2545 2012-02-21  Adam Roben  <aroben@apple.com>
2546
2547         Mac build fix
2548
2549         * WebCore.xcodeproj/project.pbxproj: Mark TextTrack.h and TextTrackCue.h private so that
2550         WebKit can include them.
2551
2552 2012-02-21  Andras Becsi  <andras.becsi@nokia.com>
2553
2554         [Qt][WK2] Fix the N9 build
2555         https://bugs.webkit.org/show_bug.cgi?id=79101
2556
2557         Reviewed by Noam Rosenthal.
2558
2559         No new tests needed.
2560
2561         * platform/graphics/opengl/TextureMapperGL.cpp: Add missing include.
2562
2563 2012-02-21  Adam Roben  <aroben@apple.com>
2564
2565         Roll out r108309, r108323, and r108326
2566
2567         They broke the 32-bit Lion build.
2568
2569         Original bugs is <http://webkit.org/b/75812> <rdar://problem/10079694>.
2570
2571         * CMakeLists.txt:
2572
2573 2012-02-21  Alexander Pavlov  <apavlov@chromium.org>
2574
2575         Web Inspector: [SuggestBox] textPrompt.css disablement displays garbled suggest box
2576         https://bugs.webkit.org/show_bug.cgi?id=79107
2577
2578         Reviewed by Pavel Feldman.
2579
2580         * inspector/front-end/TextPrompt.js:
2581         (WebInspector.TextPrompt.SuggestBox):
2582         (WebInspector.TextPrompt.SuggestBox.prototype.get visible):
2583         (WebInspector.TextPrompt.SuggestBox.prototype.hide):
2584         (WebInspector.TextPrompt.SuggestBox.prototype.removeFromElement):
2585         (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady):
2586         * inspector/front-end/textPrompt.css:
2587         (.suggest-box):
2588
2589 2012-02-21  Yury Semikhatsky  <yurys@chromium.org>
2590
2591         Web Inspector: timeline hangs on a page with deep chain of nested events.
2592         https://bugs.webkit.org/show_bug.cgi?id=79106
2593
2594         Use stack of states instead of recursive calls when traversing records tree to
2595         avoid stack overflow.
2596
2597         Reviewed by Pavel Feldman.
2598
2599         * inspector/front-end/TimelineOverviewPane.js:
2600         (WebInspector.TimelineOverviewPane.prototype._forAllRecords):
2601         * inspector/front-end/TimelinePanel.js:
2602         (WebInspector.TimelinePanel.prototype._filterRecords):
2603
2604 2012-02-21  Pavel Feldman  <pfeldman@google.com>
2605
2606         Web Inspector: [crash] upon style modification after navigation
2607         https://bugs.webkit.org/show_bug.cgi?id=79108
2608
2609         Reviewed by Yury Semikhatsky.
2610
2611         * inspector/InspectorHistory.cpp:
2612         (WebCore::InspectorHistory::undo):
2613         (WebCore::InspectorHistory::redo):
2614         (WebCore::InspectorHistory::reset):
2615
2616 2012-02-21  Patrick Gansterer  <paroga@webkit.org>
2617
2618         Use WTF::cryptographicallyRandomValues in FileSystemWin.cpp
2619         https://bugs.webkit.org/show_bug.cgi?id=79089
2620
2621         Reviewed by Adam Roben.
2622
2623         Avoid loading and unloading of the crypto library during every
2624         call to openTemporaryFile() and make the code easier.
2625
2626         * platform/win/FileSystemWin.cpp:
2627         (WebCore::openTemporaryFile):
2628
2629 2012-02-21  Alexander Færøy  <alexander.faeroy@nokia.com>
2630
2631         Remove stylesheet pointer from StylePropertySet
2632         https://bugs.webkit.org/show_bug.cgi?id=79092
2633
2634         Reviewed by Csaba Osztrogonác.
2635
2636         Qt buildfix after r108345.
2637
2638         * css/CSSParser.cpp:
2639         (WebCore::parseColorValue):
2640
2641 2012-02-21  Csaba Osztrogonác  <ossy@webkit.org>
2642
2643         Remove stylesheet pointer from StylePropertySet
2644         https://bugs.webkit.org/show_bug.cgi?id=79092
2645
2646         Reviewed by Antti Koivisto.
2647
2648         Qt buildfix after r108345. We need this workaround because of buggy gcc (4.4.5), which
2649         reported a false warning: 'value$m_ptr' may be used uninitialized in this function
2650
2651         * css/CSSParser.cpp:
2652         (WebCore::parseSimpleLengthValue):
2653
2654 2012-02-21  Andreas Kling  <awesomekling@apple.com>
2655
2656         Shrink attribute style property sets after populating them.
2657         <http://webkit.org/b/78972>
2658
2659         Reviewed by Antti Koivisto.
2660
2661         Add a StylePropertySet::shrinkToFit() and call it at the end of updateStyleAttribute()
2662         to minimize the amount of wasted space.
2663
2664         * css/StylePropertySet.h:
2665         (WebCore::StylePropertySet::shrinkToFit):
2666         * dom/StyledElement.cpp:
2667         (WebCore::StyledElement::updateAttributeStyle):
2668
2669 2012-02-21  Antti Koivisto  <antti@apple.com>
2670
2671         Remove stylesheet pointer from StylePropertySet
2672         https://bugs.webkit.org/show_bug.cgi?id=79092
2673
2674         Reviewed by Andreas Kling.
2675
2676         The context should be passed as an argument for CSS parser invoking setters that actually need it.
2677         
2678         - Remove the context stylesheet pointer.
2679         - Add context stylesheet argument to setters.
2680         - Drop an unnecessary StylePropertySet constructor, pass strict parsing flag directly.
2681         - Adapt to changes by passing in the context stylesheet where needed.
2682         - Add StyledElement::applyPresentationAttributeToStyle helpers for building up the attribute style.
2683
2684         * css/CSSFontFaceRule.cpp:
2685         (WebCore::CSSFontFaceRule::addSubresourceStyleURLs):
2686         * css/CSSParser.cpp:
2687         (WebCore::parseColorValue):
2688         (WebCore::parseSimpleLengthValue):
2689         (WebCore::CSSParser::parseValue):
2690         (WebCore::CSSParser::parseDeclaration):
2691         (WebCore::CSSParser::createStyleRule):
2692         (WebCore::CSSParser::createFontFaceRule):
2693         (WebCore::CSSParser::createPageRule):
2694         (WebCore::CSSParser::createKeyframeRule):
2695         * css/CSSParser.h:
2696         (CSSParser):
2697         * css/CSSStyleRule.cpp:
2698         (WebCore::CSSStyleRule::addSubresourceStyleURLs):
2699         * css/StylePropertySet.cpp:
2700         (WebCore::PropertySetCSSStyleDeclaration::contextStyleSheet):
2701         (WebCore::PropertySetCSSStyleDeclaration::setNeedsStyleRecalc):
2702         (RuleCSSStyleDeclaration):
2703         (InlineCSSStyleDeclaration):
2704         (WebCore):
2705         (WebCore::StylePropertySet::StylePropertySet):
2706         (WebCore::StylePropertySet::setProperty):
2707         (WebCore::StylePropertySet::parseDeclaration):
2708         (WebCore::StylePropertySet::addSubresourceStyleURLs):
2709         (WebCore::StylePropertySet::clearParentRule):
2710         (WebCore::StylePropertySet::clearParentElement):
2711         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
2712         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
2713         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
2714         (WebCore::PropertySetCSSStyleDeclaration::parentStyleSheet):
2715         (WebCore::RuleCSSStyleDeclaration::setNeedsStyleRecalc):
2716         (WebCore::RuleCSSStyleDeclaration::contextStyleSheet):
2717         (WebCore::InlineCSSStyleDeclaration::contextStyleSheet):
2718         (SameSizeAsStylePropertySet):
2719         * css/StylePropertySet.h:
2720         (WebCore::StylePropertySet::create):
2721         (StylePropertySet):
2722         * css/WebKitCSSMatrix.cpp:
2723         (WebCore::WebKitCSSMatrix::setMatrixValue):
2724         * dom/ElementAttributeData.cpp:
2725         (WebCore::ElementAttributeData::ensureInlineStyleDecl):
2726         * dom/StyledElement.cpp:
2727         (WebCore):
2728         (WebCore::StyledElement::parseAttribute):
2729         (WebCore::StyledElement::setInlineStyleProperty):
2730         (WebCore::StyledElement::addSubresourceAttributeURLs):
2731         (WebCore::StyledElement::updateAttributeStyle):
2732         * dom/StyledElement.h:
2733         (StyledElement):
2734         (WebCore::StyledElement::applyPresentationAttributeToStyle):
2735         (WebCore):
2736         * html/HTMLBRElement.cpp:
2737         (WebCore::HTMLBRElement::collectStyleForAttribute):
2738         * html/HTMLBodyElement.cpp:
2739         (WebCore::HTMLBodyElement::collectStyleForAttribute):
2740         * html/HTMLDivElement.cpp:
2741         (WebCore::HTMLDivElement::collectStyleForAttribute):
2742         * html/HTMLElement.cpp:
2743         (WebCore::HTMLElement::applyBorderAttributeToStyle):
2744         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
2745         (WebCore::HTMLElement::collectStyleForAttribute):
2746         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
2747         (WebCore::HTMLElement::addHTMLLengthToStyle):
2748         (WebCore::HTMLElement::addHTMLColorToStyle):
2749         * html/HTMLElement.h:
2750         (HTMLElement):
2751         * html/HTMLFontElement.cpp:
2752         (WebCore::HTMLFontElement::collectStyleForAttribute):
2753         * html/HTMLHRElement.cpp:
2754         (WebCore::HTMLHRElement::collectStyleForAttribute):
2755         * html/HTMLImageElement.cpp:
2756         (WebCore::HTMLImageElement::collectStyleForAttribute):
2757         * html/HTMLLIElement.cpp:
2758         (WebCore::HTMLLIElement::collectStyleForAttribute):
2759         * html/HTMLMarqueeElement.cpp:
2760         (WebCore::HTMLMarqueeElement::collectStyleForAttribute):
2761         * html/HTMLOListElement.cpp:
2762         (WebCore::HTMLOListElement::collectStyleForAttribute):
2763         * html/HTMLParagraphElement.cpp:
2764         (WebCore::HTMLParagraphElement::collectStyleForAttribute):
2765         * html/HTMLTableCaptionElement.cpp:
2766         (WebCore::HTMLTableCaptionElement::collectStyleForAttribute):
2767         * html/HTMLTableCellElement.cpp:
2768         (WebCore::HTMLTableCellElement::collectStyleForAttribute):
2769         * html/HTMLTableElement.cpp:
2770         (WebCore::HTMLTableElement::collectStyleForAttribute):
2771         * html/HTMLTablePartElement.cpp:
2772         (WebCore::HTMLTablePartElement::collectStyleForAttribute):
2773         * html/HTMLTextAreaElement.cpp:
2774         (WebCore::HTMLTextAreaElement::collectStyleForAttribute):
2775         * html/HTMLUListElement.cpp:
2776         (WebCore::HTMLUListElement::collectStyleForAttribute):
2777         * html/canvas/CanvasRenderingContext2D.cpp:
2778         (WebCore::CanvasRenderingContext2D::setFont):
2779         * mathml/MathMLElement.cpp:
2780         (WebCore::MathMLElement::collectStyleForAttribute):
2781         * svg/SVGFontFaceElement.cpp:
2782         (WebCore::SVGFontFaceElement::insertedIntoDocument):
2783         (WebCore::SVGFontFaceElement::removedFromDocument):
2784         (WebCore::SVGFontFaceElement::removeFromMappedElementSheet):
2785         * svg/SVGImageElement.cpp:
2786         (WebCore::SVGImageElement::collectStyleForAttribute):
2787         * svg/SVGStyledElement.cpp:
2788         (WebCore::SVGStyledElement::collectStyleForAttribute):
2789         * svg/SVGTextContentElement.cpp:
2790         (WebCore::SVGTextContentElement::collectStyleForAttribute):
2791
2792 2012-02-21  Yury Semikhatsky  <yurys@chromium.org>
2793
2794         [V8] Web Inspector: set breakpoint/pause doesn't work when worker is in a tight loop
2795         https://bugs.webkit.org/show_bug.cgi?id=79097
2796
2797         Worker script will be interrupted to dispatch all arriving inspector commands.
2798         This way debugger will be operable even if worker is in a tight loop.
2799
2800         Reviewed by Pavel Feldman.
2801
2802         * bindings/js/ScriptDebugServer.h:
2803         (Task):
2804         (WebCore::ScriptDebugServer::Task::~Task):
2805         (ScriptDebugServer):
2806         * bindings/js/WorkerScriptDebugServer.cpp:
2807         (WebCore::WorkerScriptDebugServer::interruptAndRunTask):
2808         (WebCore):
2809         * bindings/js/WorkerScriptDebugServer.h:
2810         (WorkerScriptDebugServer):
2811         * bindings/v8/ScriptDebugServer.cpp:
2812         (WebCore::ScriptDebugServer::interruptAndRun):
2813         * bindings/v8/ScriptDebugServer.h:
2814         (ScriptDebugServer):
2815         * bindings/v8/WorkerScriptDebugServer.cpp:
2816         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
2817         (WebCore::WorkerScriptDebugServer::interruptAndRunTask):
2818         (WebCore):
2819         * bindings/v8/WorkerScriptDebugServer.h:
2820         (v8):
2821         (WebCore):
2822         (WorkerScriptDebugServer):
2823         * inspector/WorkerDebuggerAgent.cpp:
2824         (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
2825         (WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
2826         (WebCore):
2827         (WebCore::WorkerDebuggerAgent::interruptAndDispatchInspectorCommands):
2828         * inspector/WorkerDebuggerAgent.h:
2829         (WebCore):
2830         (WorkerDebuggerAgent):
2831         * workers/WorkerMessagingProxy.cpp:
2832         (WebCore):
2833         (WebCore::WorkerMessagingProxy::sendMessageToInspector):
2834         * workers/WorkerRunLoop.cpp:
2835         (WebCore::WorkerRunLoop::run):
2836         (WebCore::WorkerRunLoop::runInMode):
2837         * workers/WorkerRunLoop.h:
2838         (WorkerRunLoop):
2839
2840 2012-02-21  'Pavel Feldman'  <pfeldman@google.com>
2841
2842         Not reviewed: fixing Mac build (take 2).
2843
2844         * inspector/InspectorPageAgent.cpp:
2845         (WebCore::InspectorPageAgent::setShowPaintRects):
2846
2847 2012-02-21  'Pavel Feldman'  <pfeldman@google.com>
2848
2849         Not reviewed: fixing Mac build.
2850
2851         * inspector/DOMNodeHighlighter.cpp:
2852         (WebCore::DOMNodeHighlighter::drawOutline):
2853         * inspector/DOMNodeHighlighter.h:
2854         (DOMNodeHighlighter):
2855         * inspector/InspectorInstrumentation.cpp:
2856         (WebCore::InspectorInstrumentation::willPaintImpl):
2857         * inspector/InspectorInstrumentation.h:
2858         (InspectorInstrumentation):
2859         (WebCore::InspectorInstrumentation::willPaint):
2860         * inspector/InspectorPageAgent.cpp:
2861         (WebCore::InspectorPageAgent::InspectorPageAgent):
2862         (WebCore::InspectorPageAgent::willPaint):
2863         (WebCore::InspectorPageAgent::didPaint):
2864         * inspector/InspectorPageAgent.h:
2865
2866 2012-02-21  Peter Rybin  <peter.rybin@gmail.com>
2867
2868         Web Inspector: Switch Debugger agent to TypeBuilder
2869         https://bugs.webkit.org/show_bug.cgi?id=78390
2870
2871         Reviewed by Vsevolod Vlasov.
2872
2873         Client code is switched to TypeBuilder.
2874
2875         * inspector/CodeGeneratorInspector.py:
2876         * inspector/InjectedScript.cpp:
2877         (WebCore::InjectedScript::evaluateOnCallFrame):
2878         (WebCore::InjectedScript::getFunctionDetails):
2879         (WebCore::InjectedScript::getProperties):
2880         (WebCore::InjectedScript::wrapCallFrames):
2881         * inspector/InjectedScript.h:
2882         (InjectedScript):
2883         * inspector/InspectorDebuggerAgent.cpp:
2884         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
2885         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
2886         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
2887         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2888         (WebCore::InspectorDebuggerAgent::currentCallFrames):
2889         (WebCore::InspectorDebuggerAgent::didParseSource):
2890         * inspector/InspectorDebuggerAgent.h:
2891         (InspectorDebuggerAgent):
2892
2893 2012-02-21  'Pavel Feldman'  <pfeldman@google.com>
2894
2895         Not reviewed: fixing poor merge in r108332.
2896
2897         * inspector/front-end/StylesSidebarPane.js:
2898         (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
2899         * inspector/front-end/externs.js:
2900
2901 2012-02-21  Alexander Pavlov  <apavlov@chromium.org>
2902
2903         Web Inspector: [Styles] Rule source URL tooltip should show line number
2904         https://bugs.webkit.org/show_bug.cgi?id=79087
2905
2906         Reviewed by Pavel Feldman.
2907
2908         * inspector/front-end/StylesSidebarPane.js:
2909         (WebInspector.StylePropertiesSection):
2910         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
2911
2912 2012-02-21  Pavel Feldman  <pfeldman@chomium.org>
2913
2914         Web Inspector: clicking empty space should not re-enter edit mode
2915         https://bugs.webkit.org/show_bug.cgi?id=79024
2916
2917         Reviewed by Vsevolod Vlasov.
2918
2919         * inspector/front-end/StylesSidebarPane.js:
2920         (WebInspector.StylePropertiesSection):
2921         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceMouseDown):
2922         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
2923
2924 2012-02-21  Pavel Feldman  <pfeldman@chomium.org>
2925
2926         Web Inspector: evaluate on hover does not work for large files.
2927         https://bugs.webkit.org/show_bug.cgi?id=79015
2928
2929         Reviewed by Yury Semikhatsky.
2930
2931         * inspector/front-end/JavaScriptSourceFrame.js:
2932         (WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
2933         (WebInspector.JavaScriptSourceFrame.prototype._highlightExpression):
2934         * inspector/front-end/Popover.js:
2935         (WebInspector.PopoverHelper.prototype._handleMouseAction):
2936         * inspector/front-end/SourceJavaScriptTokenizer.js:
2937         (WebInspector.SourceJavaScriptTokenizer):
2938         (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
2939         * inspector/front-end/SourceJavaScriptTokenizer.re2js:
2940
2941 2012-02-21  Pavel Feldman  <pfeldman@google.com>
2942
2943         Web Inspector: add "show paint rectangles" setting.
2944         https://bugs.webkit.org/show_bug.cgi?id=79030
2945
2946         Reviewed by Yury Semikhatsky.
2947
2948         * English.lproj/localizedStrings.js:
2949         * inspector/DOMNodeHighlighter.cpp:
2950         (WebCore::DOMNodeHighlighter::drawOutline):
2951         (DOMNodeHighlighter):
2952         * inspector/DOMNodeHighlighter.h:
2953         (WebCore):
2954         (DOMNodeHighlighter):
2955         * inspector/Inspector.json:
2956         * inspector/InspectorController.cpp:
2957         (WebCore::InspectorController::InspectorController):
2958         * inspector/InspectorInstrumentation.cpp:
2959         (WebCore::InspectorInstrumentation::willPaintImpl):
2960         (WebCore::InspectorInstrumentation::didPaintImpl):
2961         * inspector/InspectorInstrumentation.h:
2962         (WebCore):
2963         (InspectorInstrumentation):
2964         (WebCore::InspectorInstrumentation::willPaint):
2965         * inspector/InspectorPageAgent.cpp:
2966         (PageAgentState):
2967         (WebCore::InspectorPageAgent::create):
2968         (WebCore::InspectorPageAgent::InspectorPageAgent):
2969         (WebCore::InspectorPageAgent::setShowPaintRects):
2970         (WebCore):
2971         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
2972         (WebCore::InspectorPageAgent::willPaint):
2973         (WebCore::InspectorPageAgent::didPaint):
2974         (WebCore::InspectorPageAgent::buildObjectForFrame):
2975         * inspector/InspectorPageAgent.h:
2976         (WebCore):
2977         * inspector/front-end/Settings.js:
2978         (WebInspector.Settings):
2979         * inspector/front-end/SettingsScreen.js:
2980         (WebInspector.SettingsScreen):
2981         (WebInspector.SettingsScreen.prototype._showPaintRectsChanged):
2982         * inspector/front-end/inspector.js:
2983         * page/FrameView.cpp:
2984         (WebCore::FrameView::paintContents):
2985         * rendering/RenderLayerBacking.cpp:
2986         (WebCore::RenderLayerBacking::paintContents):
2987
2988 2012-02-21  Andras Becsi  <andras.becsi@nokia.com>
2989
2990         [Qt] Clean-up project file after r108310
2991
2992         Reviewed by Csaba Osztrogonác.
2993
2994         No new tests needed.
2995
2996         * Target.pri: Fix path for TextTrack headers.
2997
2998 2012-02-17  Philippe Normand  <pnormand@igalia.com>
2999
3000         [GStreamer] media/W3C failures
3001         https://bugs.webkit.org/show_bug.cgi?id=75078
3002
3003         Reviewed by Martin Robinson.
3004
3005         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3006         (WebCore::MediaPlayerPrivateGStreamer::load): Clean out everything
3007         after file:// url path to cope with media/W3C tests loading
3008         file:///path/to/media.ext?some parameters.
3009
3010 2012-02-21  Matt Lilek  <mrl@apple.com>
3011
3012         Not reviewed, build fix for non-client-based Geolocation builds after r107982.
3013
3014         * page/Geolocation.cpp:
3015
3016 2012-02-21  Yury Semikhatsky  <yurys@chromium.org>
3017
3018         [V8] Web Inspector: simplify worker debugger implementation
3019         https://bugs.webkit.org/show_bug.cgi?id=79085
3020
3021         There is one instance of WorkerScriptDebugServer per worker thread. We don't
3022         need to resolve WorkerContext from V8::Context anymore.
3023
3024         Reviewed by Pavel Feldman.
3025
3026         * bindings/v8/WorkerScriptDebugServer.cpp:
3027         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
3028         (WebCore::WorkerScriptDebugServer::addListener):
3029         (WebCore::WorkerScriptDebugServer::removeListener):
3030         (WebCore::WorkerScriptDebugServer::getDebugListenerForContext):
3031         (WebCore::WorkerScriptDebugServer::runMessageLoopOnPause):
3032         * bindings/v8/WorkerScriptDebugServer.h:
3033         (WorkerScriptDebugServer):
3034         * inspector/WorkerDebuggerAgent.cpp:
3035         (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
3036         (WebCore::WorkerDebuggerAgent::startListeningScriptDebugServer):
3037         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
3038
3039 2012-02-21  Kentaro Hara  <haraken@chromium.org>
3040
3041         Enable the IDL attribute checker in Chromium
3042         https://bugs.webkit.org/show_bug.cgi?id=79082
3043
3044         Reviewed by Adam Barth.
3045
3046         We have fixed 10~ bugs caused by typos of IDL attributes.
3047         This patch adds an IDL attribute checker, which checks if all IDL attributes
3048         used in IDL files are implemented by code generators.
3049
3050             - The IDL attribute checker uses IDLAttributes.txt, which lists all
3051               IDL attributes implemented in code generators. If we want to add
3052               a new IDL attribute, we need to add it to IDLAttributes.txt manually.
3053             - The IDL attribute checker checks if all IDL attributes used in IDL files
3054               are listed in IDLAttributes.txt.
3055             - If the IDL attribute checker fails, the build fails with a verbose error message.
3056
3057         No tests. I manually checked that [Custommm], [CallWith=],
3058         [CallWith=ScriptExecutionContext|Foo] cause build failures.
3059
3060         * WebCore.gyp/WebCore.gyp: Modified to enable the IDL attribute checker.
3061
3062         * bindings/scripts/resolve-supplemental.pl:
3063         (loadIDLAttributes): This method loads a list of IDL attributes from IDLAttributes.txt.
3064         (checkIDLAttributes): This method implementes the IDL attribute checker as described above.
3065         (checkIfIDLAttributesExists):
3066
3067         * bindings/scripts/IDLParser.pm: "1" is not good to represent that
3068         the IDL attribute does not have any value. This patch changed it to "VALUE_IS_MISSING".
3069         (parseExtendedAttributes):
3070         (ParseInterface):
3071         * bindings/scripts/CodeGenerator.pm: Ditto.
3072         (ContentAttributeName):
3073         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
3074         (GenerateNormalAttrGetter):
3075         (GenerateNormalAttrSetter):
3076         (GenerateSingleBatchedAttribute):
3077         (GetRuntimeEnableFunctionName):
3078         * bindings/scripts/IDLAttributes.txt: Added. This file lists all IDL attributes implemented
3079         in code generators.
3080
3081 2012-02-21  Patrick Gansterer  <paroga@webkit.org>
3082
3083         Use Win32 API to get file information
3084         https://bugs.webkit.org/show_bug.cgi?id=55336
3085
3086         Reviewed by Adam Roben.
3087
3088         Use FindFirstFile() in favour over _wstat64() to share the code with WinCE.
3089
3090         * platform/win/FileSystemWin.cpp:
3091         (WebCore):
3092         (WebCore::getFindData):
3093         (WebCore::getFileSize):
3094         (WebCore::getFileModificationTime):
3095         (WebCore::fileExists):
3096
3097 2012-02-20  Adam Barth  <abarth@webkit.org>
3098
3099         Invalid cast in WebCore::toElement / WebCore::HTMLElementStack::ElementRecord::element
3100         https://bugs.webkit.org/show_bug.cgi?id=78975
3101
3102         Reviewed by Eric Seidel.
3103
3104         We're supposed to set the action attribute on the form element we just
3105         created.  Previously, we assumed the newly created form element would
3106         be on the top of the stack of open elements, but if we're in the table
3107         body insertion mode, the form element gets treated as self closing and
3108         is therefore popped off the stack of open elements.
3109
3110         Fortunately, we already cache a pointer to the most recently inserted
3111         form element on the HTMLConstructionSite, so we can just grab the
3112         element from there.
3113
3114         Test: html5lib/runner.html
3115
3116         * html/parser/HTMLTreeBuilder.cpp:
3117         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
3118         (WebCore):
3119
3120 2012-02-20  Adam Barth  <abarth@webkit.org>
3121
3122         Unite TextTrack-related files with their friends in WebCore/html/track
3123         https://bugs.webkit.org/show_bug.cgi?id=78941
3124
3125         Reviewed by Eric Seidel.
3126
3127         The code that supports <track> seems to be split between the
3128         WebCore/html directory and the WebCore/html/track directory.  This
3129         patch unites this code in the WebCore/html/track directory.
3130
3131         * CMakeLists.txt:
3132         * DerivedSources.make:
3133         * DerivedSources.pri:
3134         * GNUmakefile.list.am:
3135         * WebCore.gypi:
3136         * WebCore.xcodeproj/project.pbxproj:
3137         * html/LoadableTextTrack.cpp: Removed.
3138         * html/LoadableTextTrack.h: Removed.
3139         * html/TextTrack.cpp: Removed.
3140         * html/TextTrack.h: Removed.
3141         * html/TextTrack.idl: Removed.
3142         * html/TextTrackCue.cpp: Removed.
3143         * html/TextTrackCue.h: Removed.
3144         * html/TextTrackCue.idl: Removed.
3145         * html/TextTrackCueList.cpp: Removed.
3146         * html/TextTrackCueList.h: Removed.
3147         * html/TextTrackCueList.idl: Removed.
3148         * html/track/LoadableTextTrack.cpp: Copied from Source/WebCore/html/LoadableTextTrack.cpp.
3149         * html/track/LoadableTextTrack.h: Copied from Source/WebCore/html/LoadableTextTrack.h.
3150         * html/track/TextTrack.cpp: Copied from Source/WebCore/html/TextTrack.cpp.
3151         * html/track/TextTrack.h: Copied from Source/WebCore/html/TextTrack.h.
3152         * html/track/TextTrack.idl: Copied from Source/WebCore/html/TextTrack.idl.
3153         * html/track/TextTrackCue.cpp: Copied from Source/WebCore/html/TextTrackCue.cpp.
3154         * html/track/TextTrackCue.h: Copied from Source/WebCore/html/TextTrackCue.h.
3155         * html/track/TextTrackCue.idl: Copied from Source/WebCore/html/TextTrackCue.idl.
3156         * html/track/TextTrackCueList.cpp: Copied from Source/WebCore/html/TextTrackCueList.cpp.
3157         * html/track/TextTrackCueList.h: Copied from Source/WebCore/html/TextTrackCueList.h.
3158         * html/track/TextTrackCueList.idl: Copied from Source/WebCore/html/TextTrackCueList.idl.
3159
3160 2012-02-20  Filip Pizlo  <fpizlo@apple.com>
3161
3162         JSC should be a triple-tier VM
3163         https://bugs.webkit.org/show_bug.cgi?id=75812
3164         <rdar://problem/10079694>
3165
3166         Reviewed by Gavin Barraclough.
3167         
3168         No new tests, because there is no change in behavior.
3169
3170         * CMakeLists.txt:
3171
3172 2012-02-20  Benjamin Poulain  <benjamin@webkit.org>
3173
3174         Get rid of the LocalizationStrategy
3175         https://bugs.webkit.org/show_bug.cgi?id=78324
3176
3177         Reviewed by Sam Weinig.
3178
3179         Remove LocalizationStrategy and unify the localization behind
3180         LocalizedStrings.h and LocalizedStrings.cpp.
3181
3182         * CMakeLists.txt:
3183         * GNUmakefile.list.am:
3184         * Target.pri:
3185         * WebCore.exp.in:
3186         * WebCore.gypi:
3187         * WebCore.order:
3188         * WebCore.vcproj/WebCore.vcproj:
3189         * WebCore.xcodeproj/project.pbxproj:
3190         * platform/DefaultLocalizationStrategy.cpp: Removed.
3191         * platform/DefaultLocalizationStrategy.h: Removed.
3192         * platform/LocalizationStrategy.h: Removed.
3193         * platform/LocalizedStrings.cpp:
3194         * platform/LocalizedStrings.h:
3195         (WebCore):
3196         * platform/PlatformStrategies.cpp:
3197         * platform/PlatformStrategies.h:
3198         (WebCore):
3199         (WebCore::PlatformStrategies::PlatformStrategies):
3200         (PlatformStrategies):
3201         * platform/qt/LocalizedStringsQt.cpp: Copied from Source/WebKit/qt/WebCoreSupport/PlatformStrategiesQt.cpp.
3202
3203 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3204
3205         Remove [TreatReturnedNullStringAsNull] from HTMLMediaElement.mediaGroup
3206         https://bugs.webkit.org/show_bug.cgi?id=79064
3207
3208         Reviewed by Hajime Morita.
3209
3210         [TreatReturnedNullStringAsNull] is a typo of [TreatReturnedNullStringAs=Null].
3211         But as far as I read the spec
3212         (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#attr-media-mediagroup),
3213         there is no statement about what value should be returned when HTMLMediaElement.mediaGroup
3214         is not yet initialized. In particular, there is no statement that says "null should
3215         be returned when HTMLMediaElement.mediaGroup is not initialized". Thus, instead of
3216         fixing the typo, just removing [TreatReturnedNullStringAsNull] would make sense.
3217         Removing [TreatReturnedNullStringAsNull] does not change the current behavior.
3218
3219         Test: media/media-controller.html (No change in the test results.)
3220
3221         * html/HTMLMediaElement.idl:
3222
3223 2012-02-20  Hayato Ito  <hayato@chromium.org>
3224
3225         Use InsertinonPoint instead of HTMLContentElement.
3226         https://bugs.webkit.org/show_bug.cgi?id=78778
3227
3228         Reviewed by Hajime Morita.
3229
3230         Replace HTMLContentElement with InsertionPoint in NodeRenderingContext and HTMLContentSelection.
3231         This is one of followup patches for r108207.
3232
3233         No new tests, no change in behavior.
3234
3235         * dom/NodeRenderingContext.cpp:
3236         (WebCore::nextRendererOf):
3237         (WebCore::previousRendererOf):
3238         (WebCore::firstRendererOf):
3239         (WebCore::lastRendererOf):
3240         * dom/NodeRenderingContext.h:
3241         (WebCore):
3242         (NodeRenderingContext):
3243         (WebCore::NodeRenderingContext::insertionPoint):
3244         * dom/ShadowRoot.cpp:
3245         (WebCore::ShadowRoot::insertionPointFor):
3246         * dom/ShadowRoot.h:
3247         (WebCore):
3248         * html/shadow/HTMLContentElement.cpp:
3249         (WebCore::HTMLContentElement::HTMLContentElement):
3250         (WebCore::HTMLContentElement::attach):
3251         (WebCore::HTMLContentElement::detach):
3252         * html/shadow/HTMLContentElement.h:
3253         (HTMLContentElement):
3254         * html/shadow/HTMLContentSelector.cpp:
3255         (WebCore::HTMLContentSelector::select):
3256         * html/shadow/HTMLContentSelector.h:
3257         (WebCore):
3258         (HTMLContentSelection):
3259         (WebCore::HTMLContentSelection::insertionPoint):
3260         (WebCore::HTMLContentSelection::HTMLContentSelection):
3261         (WebCore::HTMLContentSelection::create):
3262         * html/shadow/InsertionPoint.cpp:
3263         (WebCore::InsertionPoint::InsertionPoint):
3264         * html/shadow/InsertionPoint.h:
3265         (WebCore::InsertionPoint::selections):
3266         (WebCore::InsertionPoint::hasSelection):
3267         (InsertionPoint):
3268
3269 2012-02-20  David Barton  <dbarton@mathscribe.com>
3270
3271         MathML internals - code clean-up for RenderMathMLSubSup
3272         https://bugs.webkit.org/show_bug.cgi?id=79063
3273
3274         Reviewed by Eric Seidel.
3275
3276         In the next patch, I will shrink and revise the <msubsup> formatting code. To make this
3277         easier to follow, I am first doing some simple code clean-up.
3278
3279         No new tests.
3280
3281         * rendering/mathml/RenderMathMLRow.cpp:
3282         (WebCore::RenderMathMLRow::layout):
3283         * rendering/mathml/RenderMathMLRow.h:
3284         (WebCore::RenderMathMLRow::isRenderMathMLRow):
3285         * rendering/mathml/RenderMathMLSubSup.cpp:
3286         (WebCore::RenderMathMLSubSup::stretchToHeight):
3287         (WebCore::RenderMathMLSubSup::layout):
3288             - There is no need to iterate over baseWrapper's children since it should have only
3289               one child, the base of the <msubsup>.
3290
3291 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3292
3293         Replace [V8Custom=DOMWindowNOP] with [V8Custom]
3294         https://bugs.webkit.org/show_bug.cgi?id=79062
3295
3296         Reviewed by Adam Barth.
3297
3298         [V8Custom=DOMWindowNOP] is not implemented by CodeGeneratorV8.pm.
3299         This patch replaces it with [V8Custom].
3300
3301         No new tests. No change in behavior.
3302
3303         * page/DOMWindow.idl:
3304
3305 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3306
3307         [JSGenerateIsReachable=ImplRoot] is not implemented, it should be [JSGenerateIsReachable]
3308         https://bugs.webkit.org/show_bug.cgi?id=79061
3309
3310         Reviewed by Adam Barth.
3311
3312         CSSStyleDeclaration.idl uses [JSGenerateIsReachable=ImplRoot],
3313         but "ImplRoot" is not implemented in CodeGeneratorJS.pm.
3314         This patch replaces [JSGenerateIsReachable=ImplRoot] with [JSGenerateIsReachable].
3315
3316         No tests. No change in behavior.
3317
3318         * css/CSSStyleDeclaration.idl:
3319
3320 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3321
3322         [EnabledAtRuntime] in HTMLShadowElement.idl should be [V8EnabledAtRuntime]
3323         https://bugs.webkit.org/show_bug.cgi?id=79058
3324
3325         Reviewed by Adam Barth.
3326
3327         [EnabledAtRuntime] does not exist any longer. It should be [V8EnabledAtRuntime].
3328
3329         No tests.
3330
3331         * html/shadow/HTMLShadowElement.idl:
3332
3333 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3334
3335         Replace [Callback=FunctionOnly] with [Callback]
3336         https://bugs.webkit.org/show_bug.cgi?id=79060
3337
3338         Reviewed by Adam Barth.
3339
3340         [Callback=FunctionOnly] is not implemented by any code generator.
3341         This patch replaces it with [Callback].
3342
3343         No tests. No change in behavior.
3344
3345         * Modules/intents/IntentResultCallback.idl:
3346         * Modules/intents/NavigatorIntents.idl:
3347         * dom/RequestAnimationFrameCallback.idl:
3348         * mediastream/NavigatorMediaStream.idl:
3349         * mediastream/NavigatorUserMediaErrorCallback.idl:
3350         * mediastream/NavigatorUserMediaSuccessCallback.idl:
3351         * mediastream/PeerConnection.idl:
3352         * mediastream/SignalingCallback.idl:
3353         * page/PositionCallback.idl:
3354         * page/PositionErrorCallback.idl:
3355
3356 2012-02-20  Andy Chen  <andchen@rim.com>
3357
3358         2012-02-17  Andy Chen  <andchen@rim.com>
3359
3360         [BlackBerry] Need to override active/inactive text search highlight color for RenderThemeBlackBerry
3361         https://bugs.webkit.org/show_bug.cgi?id=78920
3362
3363         Override two functions for text search highlight colors so that we can
3364         provide platform specified colors.
3365
3366         Reviewed by Antonio Gomes.
3367
3368         No function change so no new tests.
3369
3370         * platform/blackberry/RenderThemeBlackBerry.cpp:
3371         (WebCore::RenderThemeBlackBerry::platformActiveTextSearchHighlightColor):
3372         (WebCore::RenderThemeBlackBerry::platformInactiveTextSearchHighlightColor):
3373         * platform/blackberry/RenderThemeBlackBerry.h:
3374
3375 2012-02-20  John Knottenbelt  <jknotten@chromium.org>
3376
3377         Default canvas backing store to be 1:1 with specified dimensions.
3378         https://bugs.webkit.org/show_bug.cgi?id=78971
3379
3380         Reviewed by Adam Barth.
3381
3382         Although the canvas specification states that the backing image may
3383         be larger than the user-specified dimensions, there are a number of
3384         philip canvas tests that fail when the backing image data is not
3385         1:1 with the specified canvas dimensions. These failures are
3386         tracked in https://bugs.webkit.org/show_bug.cgi?id=73645
3387
3388         This change defaults the canvas backing store to be 1:1 with the
3389         user-specified dimensions, while also providing an
3390         ENABLE(HIGH_DPI_CANVAS) build option to reinstate the original
3391         behaviour, so that the above bug may be more easily fixed.
3392
3393         * html/HTMLCanvasElement.cpp:
3394         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
3395
3396 2012-02-20  Mary Wu  <mary.wu@torchmobile.com.cn>
3397
3398         Upstream RenderThemeBlackberry.h/.cpp into WebCore/platform/blackberry
3399         https://bugs.webkit.org/show_bug.cgi?id=78785
3400
3401         Main Contributors:
3402         Daniel Bates <dbates@rim.com>
3403         Bryan Gislason <bgislason@rim.com>
3404         Akash Vaswani <akvaswani@rim.com>
3405         Dave Battista <dbattista@rim.com>
3406         Robin Cao  <robin.cao@torchmobile.com.cn>
3407         Genevieve Mak <gmak@rim.com>
3408         Mike Fenton  <mifenton@rim.com>
3409
3410         Reviewed by Antonio Gomes.
3411
3412         Initial upstream, no new tests.
3413
3414         * platform/blackberry/RenderThemeBlackBerry.cpp: Added.
3415         * platform/blackberry/RenderThemeBlackBerry.h: Added.
3416
3417 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
3418
3419         [GTK] [EFL] Collapse duplicate WebGL support code
3420         https://bugs.webkit.org/show_bug.cgi?id=78970
3421
3422         Reviewed by Gustavo Noronha Silva.
3423
3424         No new tests. This just cleans up duplicated code.
3425
3426         Centralize duplicated WebGL code for EFL and GTK+ in the Cairo
3427         directory. This is in preparation for the changes necessary to
3428         connect WebGL to the TextureMapper AC.
3429
3430         * GNUmakefile.list.am: Update source list.
3431         * PlatformEfl.cmake: Update source list.
3432         * platform/graphics/cairo/DrawingBufferCairo.cpp: Renamed from Source/WebCore/platform/graphics/gtk/DrawingBufferGtk.cpp.
3433         * platform/graphics/cairo/GraphicsContext3DCairo.cpp: Integrated the code From GraphicsContext3DGtk.cpp.
3434         * platform/graphics/efl/DrawingBufferEfl.cpp: Removed.
3435         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Removed.
3436         * platform/graphics/gtk/GraphicsContext3DGtk.cpp: Removed.
3437
3438 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
3439
3440         [UNIX] Plugin information fields are not interpreted as UTF-8
3441         https://bugs.webkit.org/show_bug.cgi?id=78635
3442
3443         Reviewed by Gustavo Noronha Silva.
3444
3445         Interpret plugin metadata as UTF8 aways. This matches the behavior
3446         of Chromium and the Totem plugin.
3447
3448         This is tested by a change to TestNetscapePlugin and expectations updates.
3449
3450         * plugins/efl/PluginPackageEfl.cpp:
3451         (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.
3452         * plugins/gtk/PluginPackageGtk.cpp:
3453         (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.
3454         * plugins/qt/PluginPackageQt.cpp:
3455         (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.
3456
3457 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
3458
3459         [GTK] Web content oftens steals focus from other widgets
3460         https://bugs.webkit.org/show_bug.cgi?id=77791
3461
3462         Reviewed by Gustavo Noronha Silva.
3463
3464         * platform/gtk/WidgetGtk.cpp:
3465         (WebCore::Widget::setFocus): No longer do anything special to try
3466         to grab "real" widget focus. This matches the behavior on Qt.
3467         * plugins/gtk/PluginViewGtk.cpp:
3468         (WebCore::PluginView::setFocus): Moved the focus handling to here.
3469         This ensures that behavior for plugins does not change.
3470
3471 2012-02-20  Yael Aharon  <yael.aharon@nokia.com>
3472
3473         Regression (108135) isOpaque() returns uninitialized variable.
3474         https://bugs.webkit.org/show_bug.cgi?id=79049
3475
3476         Reviewed by Noam Rosenthal.
3477
3478         isOpaque() should use the new m_flags instead of the old m_isOpaque.
3479         No new tests. No new functionality.
3480
3481         * platform/graphics/texmap/TextureMapper.h:
3482         (WebCore::BitmapTexture::reset):
3483         (WebCore::BitmapTexture::isOpaque):
3484         (BitmapTexture):
3485
3486 2012-02-20  Kentaro Hara  <haraken@chromium.org>
3487
3488         Unreviewed. Rebaselined run-bindings-tests results.
3489
3490         * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
3491         * bindings/scripts/test/CPP/WebDOMTestInterface.h:
3492         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
3493         * bindings/scripts/test/CPP/WebDOMTestObj.h:
3494
3495 2012-02-20  No'am Rosenthal  <noam.rosenthal@nokia.com>
3496
3497         [Qt][WK2] Clipping is broken
3498         https://bugs.webkit.org/show_bug.cgi?id=78677
3499
3500         It's not necessary to add a full-viewport rect to the scissor clip stack.
3501         It creates a situation where if there's a clip in the page, we return to
3502         the viewport clip instead of applying the WebView's clip we got from the
3503         scenegraph.
3504
3505         Also, it's unnecessary to clip before we paint the layer's content, we should
3506         only clip afterwards, before painting the children. 
3507
3508         Reviewed by Kenneth Rohde Christiansen.
3509
3510         No new functionality.