<rdar://problem/10912680> Pixel access canvas APIs do not operate at backing store...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-13  Dan Bernstein  <mitz@apple.com>
2
3         <rdar://problem/10912680> Pixel access canvas APIs do not operate at backing store resolution
4         https://bugs.webkit.org/show_bug.cgi?id=83836
5
6         Reviewed by Darin Adler.
7
8         Test: fast/canvas/2d.imageDataHD.html
9
10         Added getImageDataHD and putImageDataHD functions to CanvasRenderingContext2D, as proposed in
11         <http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035112.html>. The functions
12         are prefixed with “webkit” for now.
13
14         * html/canvas/CanvasRenderingContext2D.cpp:
15         (WebCore::CanvasRenderingContext2D::getImageData): Added this cover function that calls
16         through to getImageData with LogicalCoordinateSystem.
17         (WebCore::CanvasRenderingContext2D::webkitGetImageDataHD): Added. Calls through to
18         getImageData with BackingStoreCoordinateSystem.
19         (WebCore::CanvasRenderingContext2D::getImageData): Added a CoordinateSystem parameter to this
20         now-private function. It is passed through to ImageBuffer::getUnmultipliedImageData().
21         (WebCore::CanvasRenderingContext2D::putImageData): Added this cover function that calls
22         through to putImageData with LogicalCoordinateSystem.
23         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD): Added. Calls through to
24         putImageData with BackingStoreCoordinateSystem.
25         (WebCore::CanvasRenderingContext2D::putImageData): Added a CoordinateSystem parameter to this
26         function. It is passed through to ImageBuffer::putByteArray, and used to compute the rect to
27         invalidate after the drawing operation.
28         * html/canvas/CanvasRenderingContext2D.h:
29         * html/canvas/CanvasRenderingContext2D.idl: Added webkitPutImageDataHD() and
30         webkitGetImageDataHD().
31         * platform/graphics/ImageBuffer.h: Added a CoordinateSystem enum with the values
32         LogicalCoordinateSystem and BackingStoreCoordinateSystem. Added a CoordinateSystem parameter,
33         which defaults to LogicalCoordinateSystem, to getUnmultipliedImageData,
34         getPremultipliedImageData, and putByteArray.
35         * platform/graphics/cairo/ImageBufferCairo.cpp:
36         (WebCore::ImageBuffer::getUnmultipliedImageData):
37         (WebCore::ImageBuffer::getPremultipliedImageData):
38         (WebCore::ImageBuffer::putByteArray):
39         (WebCore::ImageBuffer::toDataURL):
40         * platform/graphics/cg/ImageBufferCG.cpp:
41         (WebCore::ImageBuffer::getUnmultipliedImageData): Now uses the CoordinateSystem parameter to
42         decide whether to ask ImageBufferDaya::getData() to apply the resolution scale or not.
43         (WebCore::ImageBuffer::getPremultipliedImageData): Ditto.
44         (WebCore::ImageBuffer::putByteArray): Now uses the CoordinateSystem parameter to decide
45         whether to maintain the resolution scale while drawing or not.
46         (WebCore::ImageBuffer::toDataURL):
47         * platform/graphics/gtk/ImageBufferGtk.cpp:
48         (WebCore::ImageBuffer::toDataURL):
49         * platform/graphics/qt/ImageBufferQt.cpp:
50         (WebCore::ImageBuffer::getUnmultipliedImageData):
51         (WebCore::ImageBuffer::getPremultipliedImageData):
52         (WebCore::ImageBuffer::putByteArray):
53         (WebCore::ImageBuffer::toDataURL):
54         * platform/graphics/skia/ImageBufferSkia.cpp:
55         (WebCore::ImageBuffer::getUnmultipliedImageData):
56         (WebCore::ImageBuffer::getPremultipliedImageData):
57         (WebCore::ImageBuffer::putByteArray):
58         (WebCore::ImageBuffer::toDataURL):
59         * platform/graphics/wince/ImageBufferWinCE.cpp:
60         (WebCore::ImageBuffer::getUnmultipliedImageData):
61         (WebCore::ImageBuffer::getPremultipliedImageData):
62         (WebCore::ImageBuffer::putByteArray):
63         (WebCore::ImageBuffer::toDataURL):
64         * platform/graphics/wx/ImageBufferWx.cpp:
65         (WebCore::ImageBuffer::getUnmultipliedImageData):
66         (WebCore::ImageBuffer::getPremultipliedImageData):
67         (WebCore::ImageBuffer::putByteArray):
68         (WebCore::ImageBuffer::toDataURL):
69
70 2012-04-12  Shawn Singh  <shawnsingh@chromium.org>
71
72         [chromium] Support CCHeadsUpDisplay in threaded compositing mode
73         https://bugs.webkit.org/show_bug.cgi?id=67499
74
75         Reviewed by James Robinson.
76
77         No new tests because this code is debugging code itself.
78
79         The last item that was needed to make the CCHeadsUpDisplay work in
80         threaded compositing mode was to remove the font rendering code
81         used on the impl-side thread. To solve this, this patch adds a
82         CCFontAtlas that is initialized on the main thread (where the font
83         rendering takes place). Then, when the HUD draws text on the impl
84         thread, it uses the font atlas directly.
85
86         * WebCore.gypi:
87         * platform/graphics/chromium/LayerRendererChromium.cpp:
88         (WebCore::LayerRendererChromium::create):
89         (WebCore::LayerRendererChromium::initialize):
90         * platform/graphics/chromium/LayerRendererChromium.h:
91         (WebCore):
92         (LayerRendererChromium):
93         * platform/graphics/chromium/cc/CCFontAtlas.cpp: Added.
94         (WebCore):
95         (WebCore::CCFontAtlas::CCFontAtlas):
96         (WebCore::wrapPositionIfNeeded):
97         (WebCore::CCFontAtlas::generateAtlasForFont):
98         (WebCore::CCFontAtlas::initialize):
99         (WebCore::CCFontAtlas::drawText):
100         (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
101         (WebCore::CCFontAtlas::drawDebugAtlas):
102         * platform/graphics/chromium/cc/CCFontAtlas.h: Added.
103         (WebCore):
104         (CCFontAtlas):
105         (WebCore::CCFontAtlas::create):
106         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
107         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
108         (WebCore):
109         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
110         (WebCore::CCHeadsUpDisplay::drawHudContents):
111         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
112         (WebCore::CCHeadsUpDisplay::drawFPSCounterText):
113         (WebCore::CCHeadsUpDisplay::drawPlatformLayerTree):
114         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
115         (WebCore::CCHeadsUpDisplay::create):
116         (CCHeadsUpDisplay):
117         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
118         (WebCore::CCLayerTreeHost::initialize):
119         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
120         (WebCore):
121         (WebCore::CCLayerTreeHost::headsUpDisplayFontAtlas):
122         (CCLayerTreeHost):
123         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
124         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
125         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
126         (WebCore):
127         (CCLayerTreeHostImpl):
128         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
129         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
130         (WebCore::CCSingleThreadProxy::recreateContext):
131         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
132         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
133         (WebCore::CCThreadProxy::recreateContextOnImplThread):
134
135 2012-04-13  Rob Flack  <flackr@chromium.org>
136
137         Chromium: Should enable -webkit-image-set
138         https://bugs.webkit.org/show_bug.cgi?id=81859
139
140         Reviewed by Adam Barth.
141
142         Test: fast/css/image-set-parsing.html
143
144         * WebCore.gypi:
145
146 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
147
148         Web Inspector: do not attempt to load content from resource until request finished loading.
149         https://bugs.webkit.org/show_bug.cgi?id=83896
150
151         Reviewed by Yury Semikhatsky.
152
153         When we stop in the inline script on reload, we should only show concatenated script content.
154         When we resume, we should replace UI source code with the actual HTML content. We should not attempt to
155         fetch resource content until request finished loading. I regressed it in the Request extraction
156         and now am bringing it back.
157
158         * inspector/front-end/RawSourceCode.js:
159         (WebInspector.RawSourceCode):
160         (WebInspector.RawSourceCode.prototype._finishedLoading):
161         * inspector/front-end/ResourceScriptMapping.js:
162         (WebInspector.ResourceScriptMapping.prototype.addScript):
163
164 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
165
166         Web Inspector: follow up to r114116 - fixing QT test
167         https://bugs.webkit.org/show_bug.cgi?id=83892
168
169         Reviewed by Yury Semikhatsky.
170
171         Requesting content for the scripts exclusively via the page agent now.
172
173         * inspector/front-end/Resource.js:
174         (WebInspector.Resource.prototype.get content):
175         (WebInspector.Resource.prototype.get contentEncoded):
176         (WebInspector.Resource.prototype.requestContent):
177         (WebInspector.ResourceRevision.prototype.requestContent):
178
179 2012-04-13  Yi Shen  <yi.4.shen@nokia.com>
180
181         InsertHTML fails to insert h6 if the insertion point is before some text.
182         https://bugs.webkit.org/show_bug.cgi?id=82689
183
184         Reviewed by Ryosuke Niwa.
185
186         Added the missing h6 tag for the isHeaderElement.
187
188         No new tests: updated existing test (editing/execCommand/4128080-1.html)
189
190         * editing/ReplaceSelectionCommand.cpp:
191         (WebCore::isHeaderElement):
192
193 2012-04-13  Yury Semikhatsky  <yurys@chromium.org>
194
195         Web Inspector: exception in heap profiler when expanding a class in summary view
196         https://bugs.webkit.org/show_bug.cgi?id=83883
197
198         Moved all DOM-specific inspector utilities into DOMExtension.js
199
200         Merged BinarySearch.js and PartialQuickSort.js into utilities.js, HeapSnapshotWorker.js now
201         imports utilities.js which contains all required routines.
202
203         Reviewed by Pavel Feldman.
204
205         * WebCore.gypi:
206         * WebCore.vcproj/WebCore.vcproj:
207         * inspector/compile-front-end.py:
208         * inspector/front-end/BinarySearch.js: Removed.
209         * inspector/front-end/DOMExtension.js: Copied from Source/WebCore/inspector/front-end/utilities.js.
210         (Node.prototype.rangeOfWord):
211         (Node.prototype.traverseNextTextNode):
212         (Node.prototype.rangeBoundaryForOffset):
213         (Element.prototype.removeStyleClass):
214         (Element.prototype.removeMatchingStyleClasses):
215         (Element.prototype.addStyleClass):
216         (Element.prototype.hasStyleClass):
217         (Element.prototype.positionAt):
218         (Element.prototype.pruneEmptyTextNodes):
219         (Element.prototype.isScrolledToBottom):
220         (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray):
221         (Node.prototype.enclosingNodeOrSelfWithNodeName):
222         (Node.prototype.enclosingNodeOrSelfWithClass):
223         (Node.prototype.enclosingNodeWithClass):
224         (Element.prototype.query):
225         (Element.prototype.removeChildren):
226         (Element.prototype.isInsertionCaretInside):
227         (Element.prototype.createChild):
228         (Element.prototype.totalOffsetLeft):
229         (Element.prototype.totalOffsetTop):
230         (Element.prototype.totalOffset):
231         (Element.prototype.scrollOffset):
232         (AnchorBox):
233         (Element.prototype.offsetRelativeToWindow):
234         (Element.prototype.boxInWindow):
235         (Element.prototype.setTextAndTitle):
236         (Event.prototype.consume):
237         (Text.prototype.select):
238         (Element.prototype.selectionLeftOffset):
239         (Node.prototype.isAncestor):
240         (Node.prototype.isDescendant):
241         (Node.prototype.isSelfOrAncestor):
242         (Node.prototype.isSelfOrDescendant):
243         (Node.prototype.traverseNextNode):
244         (Node.prototype.traversePreviousNode):
245         (HTMLTextAreaElement.prototype.moveCursorToEnd):
246         (isEnterKey):
247         (consumeEvent):
248         (highlightSearchResult):
249         (highlightSearchResults):
250         (highlightRangesWithStyleClass):
251         (applyDomChanges):
252         (revertDomChanges):
253         * inspector/front-end/HeapSnapshot.js: Fixed a couple of js compiler warnings
254         by describing structure of heap snapshot header in the protocol.
255         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
256         * inspector/front-end/HeapSnapshotWorker.js:
257         * inspector/front-end/PartialQuickSort.js: Removed.
258         * inspector/front-end/WebKit.qrc:
259         * inspector/front-end/inspector.html:
260         * inspector/front-end/utilities.js:
261         (.):
262
263 2012-04-13  Sheriff Bot  <webkit.review.bot@gmail.com>
264
265         Unreviewed, rolling out r114103.
266         http://trac.webkit.org/changeset/114103
267         https://bugs.webkit.org/show_bug.cgi?id=83884
268
269         New breakpoint UI looks bad / needs polish. (Requested by
270         pfeldman_ on #webkit).
271
272         * inspector/front-end/Images/breakpointConditionalCounterBorder.png:
273         * inspector/front-end/Images/breakpointCounterBorder.png:
274         * inspector/front-end/Images/programCounterBorder.png:
275         * inspector/front-end/textViewer.css:
276         (.webkit-execution-line .webkit-line-number-outer):
277         (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer):
278         (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer):
279
280 2012-04-13  Jason Liu  <jason.liu@torchmobile.com.cn>
281
282         [BlackBerry] Sign in cookie for ESPN.com does not retain login account (for fantasy sports).
283         https://bugs.webkit.org/show_bug.cgi?id=83760
284
285         Reviewed by George Staikos.
286
287         When we update cookies' database, protocol shouldn't be checked since it is not a cookie's key.
288         ESPN.com's https cookies should replace old http cookies if they have the same keys(name, path, domain).
289
290         We must restart the browser to test, so have to write a manual test case.
291
292         Test: ManualTests/blackberry/http-cookie-database-set.php
293
294         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
295         (WebCore::CookieDatabaseBackingStore::invokeOpen):
296
297 2012-04-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
298
299         [Qt] Use QQuickFlickable::setPixelAligned instead of doing pixel-alignment when rendering.
300         https://bugs.webkit.org/show_bug.cgi?id=83770
301
302         Reviewed by Kenneth Rohde Christiansen.
303
304         Revert the previous way of dealing with things. The problem is that different layers
305         would end up rounding in different directions, and would cause jittering between
306         layers or with the QQuickWebPage's background.
307
308         * platform/graphics/texmap/TextureMapperGL.cpp:
309         (WebCore::TextureMapperGL::drawTexture):
310
311 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
312
313         Web Inspector: introduce ParsedURL type, clean up url and displayName mess in Resource and NetworkRequest.
314         https://bugs.webkit.org/show_bug.cgi?id=83871
315
316         Reviewed by Yury Semikhatsky.
317
318         There is a number of random properties created on Resource and NetworkRequest that represent various url
319         fragments. Display name is being based on them and sometimes requires fake Resource instance to be created.
320         This change (officially) introduces WebInspector.ParsedURL as a type that encapsulates this complexity.
321
322         This change also moves documentURL property into the Resource and NetworkRequest constructors and brushes up
323         factory methods used to create the objects.
324
325         * inspector/front-end/AuditRules.js:
326         (WebInspector.AuditRules.GzipRule.prototype._shouldCompress):
327         (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies):
328         * inspector/front-end/Database.js:
329         (WebInspector.Database.prototype.get displayDomain):
330         * inspector/front-end/JavaScriptContextManager.js:
331         (WebInspector.FrameEvaluationContext.prototype.get displayName):
332         * inspector/front-end/NetworkManager.js:
333         (WebInspector.NetworkDispatcher.prototype.webSocketCreated):
334         (WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
335         (get WebInspector):
336         * inspector/front-end/NetworkPanel.js:
337         (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequest):
338         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
339         * inspector/front-end/NetworkRequest.js:
340         (WebInspector.NetworkRequest):
341         (WebInspector.NetworkRequest.prototype.set url):
342         (WebInspector.NetworkRequest.prototype.get documentURL):
343         (WebInspector.NetworkRequest.prototype.get parsedURL):
344         (WebInspector.NetworkRequest.prototype.get displayName):
345         (WebInspector.NetworkRequest.prototype.get folder):
346         * inspector/front-end/RequestHeadersView.js:
347         (WebInspector.RequestHeadersView.prototype._refreshUrlFragment):
348         * inspector/front-end/Resource.js:
349         (WebInspector.Resource):
350         (WebInspector.Resource.prototype.set url):
351         (WebInspector.Resource.prototype.get parsedURL):
352         (WebInspector.Resource.prototype.get frameId):
353         (WebInspector.Resource.prototype.get loaderId):
354         (WebInspector.Resource.prototype.get displayName):
355         * inspector/front-end/ResourceTreeModel.js:
356         (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped):
357         (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
358         (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload):
359         (WebInspector.ResourceTreeFrame.prototype._addRequest):
360         * inspector/front-end/ResourceUtils.js:
361         (WebInspector.ParsedURL):
362         (WebInspector.ParsedURL.prototype.get displayName):
363         (String.prototype.asParsedURL):
364         (WebInspector.displayDomain):
365         (WebInspector.resourceURLForRelatedNode.callback):
366         (WebInspector.resourceURLForRelatedNode):
367         * inspector/front-end/ResourcesPanel.js:
368         (WebInspector.FrameTreeElement.prototype.frameNavigated):
369         (WebInspector.ApplicationCacheManifestTreeElement):
370         (WebInspector.ApplicationCacheFrameTreeElement.prototype._refreshTitles):
371         * inspector/front-end/utilities.js:
372
373 2012-04-13  Pavel Feldman  <pfeldman@chromium.org>
374
375         Web Inspector: extracting NetworkRequest from Resource (step 3)
376         https://bugs.webkit.org/show_bug.cgi?id=83802
377
378         Reviewed by Yury Semikhatsky.
379
380         This change extracts NetworkRequest from the Resource. It is now clear that these two
381         should have super class that would be responsible for parsing URL and would define the
382         requestContent signature. Corresponding patch will follow.
383
384         * inspector/front-end/NetworkManager.js:
385         * inspector/front-end/NetworkRequest.js:
386         (WebInspector.NetworkRequest):
387         (WebInspector.NetworkRequest.prototype.get requestId):
388         (WebInspector.NetworkRequest.prototype.set requestId):
389         (WebInspector.NetworkRequest.prototype.get url):
390         (WebInspector.NetworkRequest.prototype.get frameId):
391         (WebInspector.NetworkRequest.prototype.get loaderId):
392         (WebInspector.NetworkRequest.prototype.get startTime):
393         (WebInspector.NetworkRequest.prototype.set startTime):
394         (WebInspector.NetworkRequest.prototype.get responseReceivedTime):
395         (WebInspector.NetworkRequest.prototype.set responseReceivedTime):
396         (WebInspector.NetworkRequest.prototype.get endTime):
397         (WebInspector.NetworkRequest.prototype.set endTime):
398         (WebInspector.NetworkRequest.prototype.get duration):
399         (WebInspector.NetworkRequest.prototype.get latency):
400         (WebInspector.NetworkRequest.prototype.get receiveDuration):
401         (WebInspector.NetworkRequest.prototype.get resourceSize):
402         (WebInspector.NetworkRequest.prototype.set resourceSize):
403         (WebInspector.NetworkRequest.prototype.get transferSize):
404         (WebInspector.NetworkRequest.prototype.increaseTransferSize):
405         (WebInspector.NetworkRequest.prototype.get finished):
406         (WebInspector.NetworkRequest.prototype.set finished):
407         (WebInspector.NetworkRequest.prototype.get failed):
408         (WebInspector.NetworkRequest.prototype.set failed):
409         (WebInspector.NetworkRequest.prototype.get canceled):
410         (WebInspector.NetworkRequest.prototype.set canceled):
411         (WebInspector.NetworkRequest.prototype.get cached):
412         (WebInspector.NetworkRequest.prototype.set cached):
413         (WebInspector.NetworkRequest.prototype.get timing):
414         (WebInspector.NetworkRequest.prototype.set timing):
415         (WebInspector.NetworkRequest.prototype.get mimeType):
416         (WebInspector.NetworkRequest.prototype.set mimeType):
417         (WebInspector.NetworkRequest.prototype.get displayName):
418         (WebInspector.NetworkRequest.prototype.get folder):
419         (WebInspector.NetworkRequest.prototype.get displayDomain):
420         (WebInspector.NetworkRequest.prototype.get type):
421         (WebInspector.NetworkRequest.prototype.set type):
422         (WebInspector.NetworkRequest.prototype.get redirectSource):
423         (WebInspector.NetworkRequest.prototype.set redirectSource):
424         (WebInspector.NetworkRequest.prototype.get requestHeaders):
425         (WebInspector.NetworkRequest.prototype.set requestHeaders):
426         (WebInspector.NetworkRequest.prototype.get requestHeadersText):
427         (WebInspector.NetworkRequest.prototype.set requestHeadersText):
428         (WebInspector.NetworkRequest.prototype.get requestHeadersSize):
429         (WebInspector.NetworkRequest.prototype.requestHeaderValue):
430         (WebInspector.NetworkRequest.prototype.get requestCookies):
431         (WebInspector.NetworkRequest.prototype.get requestFormData):
432         (WebInspector.NetworkRequest.prototype.set requestFormData):
433         (WebInspector.NetworkRequest.prototype.get requestHttpVersion):
434         (WebInspector.NetworkRequest.prototype.get responseHeaders):
435         (WebInspector.NetworkRequest.prototype.set responseHeaders):
436         (WebInspector.NetworkRequest.prototype.get responseHeadersText):
437         (WebInspector.NetworkRequest.prototype.set responseHeadersText):
438         (WebInspector.NetworkRequest.prototype.get responseHeadersSize):
439         (WebInspector.NetworkRequest.prototype.responseHeaderValue):
440         (WebInspector.NetworkRequest.prototype.get responseCookies):
441         (WebInspector.NetworkRequest.prototype.get queryParameters):
442         (WebInspector.NetworkRequest.prototype.get formParameters):
443         (WebInspector.NetworkRequest.prototype.get responseHttpVersion):
444         (WebInspector.NetworkRequest.prototype._parseParameters):
445         (WebInspector.NetworkRequest.prototype._headerValue):
446         (WebInspector.NetworkRequest.prototype.get content):
447         (WebInspector.NetworkRequest.prototype.get contentEncoded):
448         (WebInspector.NetworkRequest.prototype.requestContent):
449         (WebInspector.NetworkRequest.prototype.isHttpFamily):
450         (WebInspector.NetworkRequest.prototype.requestContentType):
451         (WebInspector.NetworkRequest.prototype.isPingRequest):
452         (WebInspector.NetworkRequest.prototype.hasErrorStatusCode):
453         (WebInspector.NetworkRequest.prototype.populateImageSource):
454         (WebInspector.NetworkRequest.prototype._contentURL):
455         (WebInspector.NetworkRequest.prototype._innerRequestContent.onResourceContent):
456         (WebInspector.NetworkRequest.prototype._innerRequestContent):
457         (WebInspector.NetworkRequest.prototype.setResource):
458         (WebInspector.NetworkRequest.prototype.resource):
459         * inspector/front-end/RawSourceCode.js:
460         (WebInspector.RawSourceCode):
461         (WebInspector.RawSourceCode.prototype._resourceAdded):
462         (WebInspector.RawSourceCode.prototype.forceUpdateSourceMapping):
463         (WebInspector.RawSourceCode.prototype._createContentProvider):
464         * inspector/front-end/Resource.js:
465         (WebInspector.Resource):
466         (WebInspector.Resource.displayName):
467         (WebInspector.Resource.prototype.get request):
468         (WebInspector.Resource.prototype.set url):
469         (WebInspector.Resource.prototype.get type):
470         (WebInspector.Resource.prototype.get mimeType):
471         (WebInspector.Resource.prototype.set mimeType):
472         (WebInspector.Resource.prototype.get content):
473         (WebInspector.Resource.prototype.get contentEncoded):
474         (WebInspector.Resource.prototype.requestContent):
475         (WebInspector.Resource.prototype._innerRequestContent.callback):
476         (WebInspector.Resource.prototype._innerRequestContent):
477         (WebInspector.ResourceRevision.prototype.requestContent.callbackWrapper):
478         (WebInspector.ResourceRevision.prototype.requestContent):
479         * inspector/front-end/ResourceScriptMapping.js:
480         (WebInspector.ResourceScriptMapping.prototype.addScript):
481
482 2012-04-13  Mike Reed  <reed@google.com>
483
484         use getClipDeviceBounds, rather than (deprecated) getTotalClip
485         https://bugs.webkit.org/show_bug.cgi?id=83808
486
487         Reviewed by Stephen White.
488
489         Equivalent functionality, existing tests apply.
490
491         * platform/graphics/skia/OpaqueRegionSkia.cpp:
492         (WebCore::OpaqueRegionSkia::didDraw):
493
494 2012-04-13  Thiago Marcos P. Santos  <thiago.santos@intel.com>
495
496         [EFL] Add API for color chooser
497         https://bugs.webkit.org/show_bug.cgi?id=83692
498
499         Added new API to enable browsers to display a custom color picker
500         when an input field of type "color" is activated.
501
502         Reviewed by Kenneth Rohde Christiansen.
503
504         * PlatformEfl.cmake:
505         * platform/efl/ColorChooserEfl.cpp: Added.
506         (WebCore):
507         (WebCore::ColorChooserEfl::ColorChooserEfl):
508         (WebCore::ColorChooserEfl::~ColorChooserEfl):
509         (WebCore::ColorChooserEfl::setSelectedColor):
510         (WebCore::ColorChooserEfl::endChooser):
511         * platform/efl/ColorChooserEfl.h: Added.
512         (WebCore):
513         (ColorChooserEfl):
514
515 2012-04-13  Zalan Bujtas  <zbujtas@gmail.com>
516
517         Enabling/disabling delegates scrolling when page has no composited content asserts on WK1.
518         https://bugs.webkit.org/show_bug.cgi?id=83860
519
520         Reviewed by Kenneth Rohde Christiansen.
521
522         WK2 has compositing mode on all the time, while Wk1 turns it on only when
523         the page has composited content. This patch ensures that, when delegates scrolling behavior
524         is changed, backing stores are cleared only when there's an actual composition,
525         similarly to what CachedFrame does.
526
527         Test: fast/viewport/scroll-delegates-switch-on-page-with-no-composition-mode-asserts.html
528
529         * page/FrameView.cpp:
530         (WebCore::FrameView::delegatesScrollingDidChange):
531
532 2012-04-13  Vivek Galatage  <vivekgalatage@gmail.com>
533
534         Web Inspector: Line number is not displayed while debugging javascript
535         https://bugs.webkit.org/show_bug.cgi?id=83786
536
537         Reviewed by Pavel Feldman.
538
539         Changed the textViewer.css to start displaying the line number with
540         appropriate color property. Added outline property for enhanced view
541
542         No additional test cases required for the above fix.
543
544         * inspector/front-end/Images/breakpointConditionalCounterBorder.png:
545         * inspector/front-end/Images/breakpointCounterBorder.png:
546         * inspector/front-end/Images/programCounterBorder.png:
547         * inspector/front-end/textViewer.css:
548         (.webkit-execution-line .webkit-line-number-outer):
549         (.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer):
550         (.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer):
551
552 2012-04-13  Kent Tamura  <tkent@chromium.org>
553
554         Add a runtime flag for <input type=date>
555         https://bugs.webkit.org/show_bug.cgi?id=83853
556
557         Reviewed by Adam Barth.
558
559         * bindings/generic/RuntimeEnabledFeatures.cpp:
560         * bindings/generic/RuntimeEnabledFeatures.h:
561         (WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled): Added.
562         (WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Added.
563         * html/InputType.cpp:
564         (WebCore::createInputTypeFactoryMap):
565         Don't register type=date if !RuntimeEnabledFeatures::inputTypeDateEnabled()
566
567 2012-04-13  Adam Barth  <abarth@webkit.org>
568
569         JSDocument::setLocation does too much bare-handed lifting
570         https://bugs.webkit.org/show_bug.cgi?id=83850
571
572         Reviewed by Sam Weinig.
573
574         As part of auditing all the ways of kicking off a navigation, I
575         happened to read JSDocument::setLocation, which uses very old patterns.
576         This patch updates it to do things the "modern" way.  There shouldn't
577         be any behavior change.
578
579         * bindings/js/JSDocumentCustom.cpp:
580         (WebCore::JSDocument::setLocation):
581
582 2012-04-13  Shinya Kawanaka  <shinyak@chromium.org>
583
584         Background width (or height) is wrong if width (or height) * zoom < 1.
585         https://bugs.webkit.org/show_bug.cgi?id=83350
586
587         Reviewed by Nikolas Zimmermann.
588
589         calculateImageIntrinsicDimension will return wrong size if the calculated size is 0.
590         0 is used for expressing unspecfied, so the method returns the box width(height) instead.
591
592         Since CachedImage has already similar code, we moved it to IntSize and shared it.
593
594         Tests: fast/css/zoom-background-repeat-x-expected.html
595                fast/css/zoom-background-repeat-x.html
596                fast/css/zoom-background-repeat-y-expected.html
597                fast/css/zoom-background-repeat-y.html
598
599         * loader/cache/CachedImage.cpp:
600         (WebCore::CachedImage::imageSizeForRenderer):
601         * platform/graphics/IntSize.h:
602         (IntSize):
603         (WebCore::IntSize::scale):
604         (WebCore::IntSize::clampToMinimumSize):
605         * rendering/RenderBoxModelObject.cpp:
606         (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
607
608 2012-04-13  Adam Barth  <abarth@webkit.org>
609
610         Prepare submitForm for seamless navigation
611         https://bugs.webkit.org/show_bug.cgi?id=83838
612
613         Reviewed by Ryosuke Niwa.
614
615         Previously, FrameLoader::submitForm called FrameTree::find and
616         Document::canNavigate separately.  This patch refactors this function
617         to call findFrameForNavigation, which does both checks.
618
619         This doesn't change any behavior today, but it prepares us to implement
620         seamless navigation.  Once the seamless branch lands, this change will
621         be tested by seamless-form-* in https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless
622
623         For context, see:
624         https://github.com/eseidel/webkit/commit/3f27340577ac91b2cc0a834dd2c6fdfcac296c32
625
626         * loader/FrameLoader.cpp:
627         (WebCore::FrameLoader::submitForm):
628
629 2012-04-13  Kent Tamura  <tkent@chromium.org>
630
631         Should clear an invalid string in a date field on blur
632         https://bugs.webkit.org/show_bug.cgi?id=83863
633
634         Reviewed by Kentaro Hara.
635
636         Test: fast/forms/date/input-date-commit-valid-only.html
637
638         * html/DateInputType.cpp:
639         (WebCore::DateInputType::handleBlurEvent):
640         Reset the visible value. The code is same as NumberInputType::handleBlurEvent().
641
642 2012-04-12  Kent Tamura  <tkent@chromium.org>
643
644         Calendar Picker: remove unnecessary code from calendarPicker.{css,js}
645         https://bugs.webkit.org/show_bug.cgi?id=83685
646
647         Reviewed by Kentaro Hara.
648
649         Remove the followings from input files:
650          - multi line comments /*...*/ (.js and .css)
651          - single line comment //... (.js)
652          - repeating whitespace (.js and .css)
653          - leading and trailing whitespace (.js and .css)
654          - empty lines (.js and .css)
655
656         This doesn't work for arbitrary JavaScript or CSS inputs, but
657         works well for expected input files like
658         css/make-css-file-arrays.pl
659
660         * make-file-arrays.py:
661         (strip_whitespace_and_comments):
662         (main):
663
664 2012-04-12  Sailesh Agrawal  <sail@chromium.org>
665
666         Chromium: Fix scrollbar tickmark drawing on Mountain Lion
667         https://bugs.webkit.org/show_bug.cgi?id=83844
668
669         Reviewed by James Robinson.
670
671         On Mountain Lion overlay scrollbars have a new expanded mode. In expanded mode the scrolllbar is slightly wider which causes the tickmarks to look incorrect. Fix was to explicitly enter expanded mode to get the correct look.
672         Screenshots:
673         broken: http://i.imgur.com/PDKYH.png
674         fixed: http://i.imgur.com/utp0Y.png
675
676         * platform/chromium/ScrollbarThemeChromiumMac.mm:
677         (WebCore::ScrollbarThemeChromiumMac::paint): Called setExpanded if API is available.
678         * platform/mac/NSScrollerImpDetails.h: Exposed the isExpanded: API.
679
680 2012-04-12  Kent Tamura  <tkent@chromium.org>
681
682         LocalizedDateICU should ignore timezones
683         https://bugs.webkit.org/show_bug.cgi?id=83859
684
685         Reviewed by Hajime Morita.
686
687         udat_parse() and udat_format() shift the input date by the offset of the
688         default timezone. We don't need this behavior for type=date. So we
689         specify "GMT" to udat_open().
690
691         No new tests. This behavior depends on the timezone setting of the local machine.
692
693         * platform/text/LocalizedDateICU.cpp:
694         (WebCore::createShortDateFormatter):
695         Added. Common factory functio for UDateFormat. Use "GMT" instead of the
696         default timezone.
697         (WebCore::parseLocalizedDate): Use createShortDateFormatter().
698         (WebCore::formatLocalizedDate): ditto.
699
700 2012-04-12  Adam Barth  <abarth@webkit.org>
701
702         Prepare window.location for seamless navigation
703         https://bugs.webkit.org/show_bug.cgi?id=83843
704
705         Reviewed by Eric Seidel.
706
707         This patch refactors window.location to flow through
708         FrameLoader::findFrameForNavigation, which is where we're going to
709         implement the seamless navigation redirect.  This patch shouldn't cause
710         any observable changes in behavior today, but it will make all the
711         seamless-window-location* tests in
712         https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless
713         pass once we merge the seamlesss branch.  See
714         https://github.com/eseidel/webkit/commit/a6e708fa6c643b156397e9a287b40a0868c7959c
715         for context.
716
717         * bindings/js/JSDOMWindowCustom.cpp:
718         (WebCore::JSDOMWindow::setLocation):
719         * bindings/v8/custom/V8DOMWindowCustom.cpp:
720         (WebCore::V8DOMWindow::locationAccessorSetter):
721         * page/Location.cpp:
722         (WebCore::Location::setHref):
723         (WebCore::Location::setProtocol):
724         (WebCore::Location::setHost):
725         (WebCore::Location::setHostname):
726         (WebCore::Location::setPort):
727         (WebCore::Location::setPathname):
728         (WebCore::Location::setSearch):
729         (WebCore::Location::setHash):
730         (WebCore::Location::assign):
731         (WebCore::Location::replace):
732         (WebCore::Location::setLocation):
733         (WebCore):
734         * page/Location.h:
735         (Location):
736
737 2012-04-12  Dana Jansens  <danakj@chromium.org>
738
739         [chromium] Background filters for composited layers
740         https://bugs.webkit.org/show_bug.cgi?id=80046
741
742         Reviewed by Adrienne Walker.
743
744         Adds background filters to LayerChromium/CCLayerImpl. These filters are
745         applied to any pixels in the contents behind the layer and seen through
746         it.
747
748         This is done by adding a backgroundTexture() to the render surface, which
749         holds the read-back contents of the target framebuffer, background filter
750         applied, in the surface's own coordinate space. Then this is drawn back
751         into the frame buffer before the contents of the surface itself is drawn.
752
753         Tests: platform/chromium/compositing/filters/background-filter-blur-off-axis.html
754                platform/chromium/compositing/filters/background-filter-blur-outsets.html
755                platform/chromium/compositing/filters/background-filter-blur.html
756
757         * platform/graphics/chromium/LayerChromium.cpp:
758         (WebCore::LayerChromium::setBackgroundFilters):
759         (WebCore):
760         (WebCore::LayerChromium::pushPropertiesTo):
761         * platform/graphics/chromium/LayerChromium.h:
762         (LayerChromium):
763         (WebCore::LayerChromium::backgroundFilters):
764         * platform/graphics/chromium/LayerRendererChromium.cpp:
765         (WebCore::LayerRendererChromium::drawBackgroundFilters):
766         (WebCore):
767         (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
768         (WebCore::LayerRendererChromium::getFramebufferTexture):
769         (WebCore::LayerRendererChromium::isCurrentRenderSurface):
770         (WebCore::LayerRendererChromium::useRenderSurface):
771         (WebCore::LayerRendererChromium::useManagedTexture):
772         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
773         (WebCore::LayerRendererChromium::setScissorToRect):
774         * platform/graphics/chromium/LayerRendererChromium.h:
775         (LayerRendererChromium):
776         * platform/graphics/chromium/RenderSurfaceChromium.h:
777         (WebCore::RenderSurfaceChromium::setBackgroundFilters):
778         (WebCore::RenderSurfaceChromium::backgroundFilters):
779         (RenderSurfaceChromium):
780         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
781         (WebCore::CCLayerImpl::setBackgroundFilters):
782         (WebCore):
783         * platform/graphics/chromium/cc/CCLayerImpl.h:
784         (CCLayerImpl):
785         (WebCore::CCLayerImpl::backgroundFilters):
786         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
787         (WebCore::subtreeShouldRenderToSeparateSurface):
788         (WebCore::calculateDrawTransformsAndVisibilityInternal):
789         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
790         (WebCore::CCRenderSurface::drawableContentRect):
791         (WebCore::CCRenderSurface::prepareBackgroundTexture):
792         (WebCore):
793         (WebCore::CCRenderSurface::releaseBackgroundTexture):
794         (WebCore::CCRenderSurface::computeDeviceTransform):
795         (WebCore::CCRenderSurface::computeDeviceBoundingBox):
796         (WebCore::CCRenderSurface::computeReadbackDeviceBoundingBox):
797         (WebCore::CCRenderSurface::readbackDeviceContentRect):
798         (WebCore::copyTextureToFramebuffer):
799         (WebCore::CCRenderSurface::copyDeviceToBackgroundTexture):
800         (WebCore::getSkBitmapTextureId):
801         (WebCore::CCRenderSurface::drawContents):
802         (WebCore::CCRenderSurface::drawReplica):
803         (WebCore::CCRenderSurface::drawLayer):
804         (WebCore::CCRenderSurface::drawSurface):
805         (WebCore::CCRenderSurface::applyFilters):
806         * platform/graphics/chromium/cc/CCRenderSurface.h:
807         (CCRenderSurface):
808         (WebCore::CCRenderSurface::setBackgroundFilters):
809         (WebCore::CCRenderSurface::backgroundFilters):
810         (WebCore::CCRenderSurface::backgroundTexture):
811         * testing/Internals.cpp:
812         (WebCore):
813         (WebCore::Internals::setBackgroundBlurOnNode):
814         * testing/Internals.h:
815         (Internals):
816         * testing/Internals.idl:
817
818 2012-04-12  Adam Barth  <abarth@webkit.org>
819
820         Remove V8DOMWindowShell::setLocation
821         https://bugs.webkit.org/show_bug.cgi?id=83833
822
823         Reviewed by Eric Seidel.
824
825         V8DOMWindowShell::setLocation is only used by document.location.  It's
826         more direct for document.location to call Location::setHref directly.
827         This integrates correctly with the navigation rules for
828         <iframe seamless>.
829
830         (See https://github.com/eseidel/webkit/compare/master...seamless for
831         more context about the connection with seamless.)
832
833         Reviewed on GitHub:
834         https://github.com/abarth/webkit/commit/48601729d53a6ac39df5a43b22218c91330c3f61
835
836         * bindings/v8/V8DOMWindowShell.cpp:
837         (WebCore):
838         * bindings/v8/V8DOMWindowShell.h:
839         (V8DOMWindowShell):
840         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
841         (WebCore::V8Document::locationAccessorSetter):
842
843 2012-04-12  Levi Weintraub  <leviw@chromium.org>
844
845         Prepare functions in LengthFunctions.h for LayoutUnits
846         https://bugs.webkit.org/show_bug.cgi?id=83726
847
848         Reviewed by Eric Seidel.
849
850         Preparing the functions that live in LengthFunctions for sub-pixel layout, which entails
851         using and returning LayoutUnits instead of integers. There are a number of rendering
852         classes that are laid out using integers -- see https://trac.webkit.org/wiki/LayoutUnit
853         for details -- so this also adds integer-specific versions of the length functions for
854         explicit use in those classes.
855
856         No new tests. No change in behavior.
857
858         * css/LengthFunctions.h:
859         (WebCore): Using LayoutUnits for sub-pixel precision and adding integer-specific versions
860         of minimumValueForLength and valueForLength that truncate.
861         * css/LengthFunctions.cpp:
862         (WebCore):
863         * dom/Document.cpp:
864         (WebCore::Document::pageSizeAndMarginsInPixels): Document sizes are integral.
865         * rendering/RenderFrameSet.cpp:
866         (WebCore::RenderFrameSet::layOutAxis): The frame tree continues to be integral.
867         * rendering/RenderMarquee.cpp:
868         (WebCore::RenderMarquee::timerFired): RenderMarquee scrolling uses integral values.
869         * rendering/RenderTableSection.cpp:
870         (WebCore::RenderTableSection::calcRowLogicalHeight): Table layout is integral.
871
872 2012-04-12  Sheriff Bot  <webkit.review.bot@gmail.com>
873
874         Unreviewed, rolling out r114075.
875         http://trac.webkit.org/changeset/114075
876         https://bugs.webkit.org/show_bug.cgi?id=83857
877
878         Breaks compile (Requested by jamesr on #webkit).
879
880         * WebCore.gypi:
881         * platform/graphics/chromium/LayerRendererChromium.cpp:
882         (WebCore::LayerRendererChromium::drawYUV):
883         (WebCore::LayerRendererChromium::drawRGBA):
884         (WebCore::LayerRendererChromium::copyFrameToTextures):
885         * platform/graphics/chromium/LayerRendererChromium.h:
886         * platform/graphics/chromium/VideoFrameChromium.cpp: Renamed from Source/Platform/chromium/src/WebVideoFrame.cpp.
887         (WebCore):
888         (WebCore::VideoFrameChromium::~VideoFrameChromium):
889         * platform/graphics/chromium/VideoFrameChromium.h: Copied from Source/Platform/chromium/public/WebVideoFrame.h.
890         (WebCore):
891         (VideoFrameChromium):
892         * platform/graphics/chromium/VideoFrameProvider.h:
893         (VideoFrameProvider):
894         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
895         (WebCore::CCVideoDrawQuad::create):
896         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
897         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
898         (CCVideoDrawQuad):
899         (WebCore::CCVideoDrawQuad::frame):
900         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
901         (WebCore):
902         (WebCore::convertVFCFormatToGC3DFormat):
903         (WebCore::CCVideoLayerImpl::willDraw):
904         (WebCore::CCVideoLayerImpl::computeVisibleSize):
905         (WebCore::CCVideoLayerImpl::reserveTextures):
906         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
907
908 2012-04-12  Adam Barth  <abarth@webkit.org>
909
910         Use _self to represnet self-navigation, like in the HTML5 spec
911         https://bugs.webkit.org/show_bug.cgi?id=83834
912
913         Reviewed by Eric Seidel.
914
915         This patch aligns the internal state representation of the FrameLoader
916         more closely with the HTML5 spec.  Both the null string and "_self"
917         represent self-navigation, but the HTML5 spec distinguishes them when
918         navigating seamless iframes.  In that case, "_self" is explicit
919         self-navigation, whereas a null string will get redirected to the
920         "master" frame (the closest enclosing non-seamless frame).
921
922         This patch shouldn't have any observable behavior changes, but it will
923         be useful when we merge in the seamless branch from GitHub.
924         (See https://github.com/eseidel/webkit/commit/df0e71fcacdb0e7e45fe669afe1314cec5b76523
925         which contains this change.)
926
927         Once the seamless branch lands, this change will be tested by a number
928         of tests in
929         https://github.com/eseidel/webkit/tree/seamless/LayoutTests/fast/frames/seamless
930         including seamless-hyperlink.html.
931
932         * loader/FrameLoader.cpp:
933         (WebCore::FrameLoader::loadURLIntoChildFrame):
934         (WebCore::FrameLoader::loadURL):
935
936 2012-04-12  James Robinson  <jamesr@chromium.org>
937
938         [chromium] Move WebVideoFrame into Platform and remove WebCore::VideoFrameChromium wrapper API
939         https://bugs.webkit.org/show_bug.cgi?id=83851
940
941         Reviewed by Adam Barth.
942
943         Remove VideoFrameChromium wrapper and converts WebCore code to using the Platform WebVideoFrame API directly.
944         Some utility code that previously existed on VideoFrameChromium and only had one caller, such as doing
945         width/height adjustements for YV12 frames, is moved into the calling code (CCVideoLayerImpl).
946
947         Covered by existing media/ and compositing/ layout tests.
948
949         * WebCore.gypi:
950         * platform/graphics/chromium/LayerRendererChromium.cpp:
951         (WebCore::LayerRendererChromium::drawYUV):
952         (WebCore::LayerRendererChromium::drawRGBA):
953         (WebCore::LayerRendererChromium::copyFrameToTextures):
954         * platform/graphics/chromium/LayerRendererChromium.h:
955         * platform/graphics/chromium/VideoFrameProvider.h:
956         (VideoFrameProvider):
957         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
958         (WebCore::CCVideoDrawQuad::create):
959         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
960         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
961         (WebKit):
962         (CCVideoDrawQuad):
963         (WebCore::CCVideoDrawQuad::frame):
964         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
965         (WebCore):
966         (WebCore::convertVFCFormatToGC3DFormat):
967         (WebCore::CCVideoLayerImpl::willDraw):
968         (WebCore::videoFrameDimension):
969         (WebCore::hasPaddingBytes):
970         (WebCore::CCVideoLayerImpl::computeVisibleSize):
971         (WebCore::CCVideoLayerImpl::reserveTextures):
972         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
973         (WebKit):
974
975 2012-04-12  Alexey Proskuryakov  <ap@apple.com>
976
977         REGRESSION (r113900): Text tests started failing
978         https://bugs.webkit.org/show_bug.cgi?id=83724
979
980         Reviewed by Dan Bernstein.
981
982         * Resources/DefaultFonts.plist.in: Use serif fonts for standard family again,
983         and updated the list with better fonts for Japanese.
984
985 2012-04-12  Alexey Proskuryakov  <ap@apple.com>
986
987         Preprocessing text files with modern clang treats double slashes in comments
988         https://bugs.webkit.org/show_bug.cgi?id=83827
989
990         Reviewed by Mark Rowe.
991
992         * DerivedSources.make: Pass appropriate flags to both llvm and gcc.
993
994 2012-04-12  David Dorwin  <ddorwin@chromium.org>
995
996         Add Encrypted Media Extensions events and errors to HTMLMediaElement
997         https://bugs.webkit.org/show_bug.cgi?id=82974
998
999         Reviewed by Adam Barth.
1000
1001         The new events and errors are behind the ENABLE(ENCRYPTED_MEDIA) feature define.
1002         Implementation is based on v0.1 of the draft proposal at
1003         http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#events.
1004
1005         Tests: fast/events/constructors/media-key-event-constructor.html
1006                media/encrypted-media/encrypted-media-constants.html
1007                media/encrypted-media/encrypted-media-events.html
1008
1009         * WebCore.gypi:
1010         * bindings/v8/Dictionary.cpp:
1011         (WebCore::Dictionary::get):
1012         (WebCore):
1013         * bindings/v8/Dictionary.h:
1014         (WebCore):
1015         (Dictionary):
1016         * dom/EventNames.h:
1017         (WebCore):
1018         * dom/EventNames.in:
1019         * html/HTMLAttributeNames.in:
1020         * html/HTMLMediaElement.cpp:
1021         (WebCore):
1022         (WebCore::HTMLMediaElement::mediaPlayerKeyAdded):
1023         (WebCore::HTMLMediaElement::mediaPlayerKeyError):
1024         (WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
1025         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
1026         * html/HTMLMediaElement.h:
1027         (HTMLMediaElement):
1028         * html/HTMLMediaElement.idl:
1029         * html/MediaError.h:
1030         * html/MediaError.idl:
1031         * html/MediaKeyError.h: Added.
1032         (WebCore):
1033         (MediaKeyError):
1034         (WebCore::MediaKeyError::create):
1035         (WebCore::MediaKeyError::code):
1036         (WebCore::MediaKeyError::MediaKeyError):
1037         * html/MediaKeyError.idl: Added.
1038         * html/MediaKeyEvent.cpp: Added.
1039         (WebCore):
1040         (WebCore::MediaKeyEventInit::MediaKeyEventInit):
1041         (WebCore::MediaKeyEvent::MediaKeyEvent):
1042         (WebCore::MediaKeyEvent::~MediaKeyEvent):
1043         (WebCore::MediaKeyEvent::interfaceName):
1044         * html/MediaKeyEvent.h: Added.
1045         (WebCore):
1046         (MediaKeyEventInit):
1047         (MediaKeyEvent):
1048         (WebCore::MediaKeyEvent::create):
1049         (WebCore::MediaKeyEvent::keySystem):
1050         (WebCore::MediaKeyEvent::sessionId):
1051         (WebCore::MediaKeyEvent::initData):
1052         (WebCore::MediaKeyEvent::message):
1053         (WebCore::MediaKeyEvent::defaultURL):
1054         (WebCore::MediaKeyEvent::errorCode):
1055         (WebCore::MediaKeyEvent::systemCode):
1056         * html/MediaKeyEvent.idl: Added.
1057         * page/DOMWindow.idl:
1058         * platform/graphics/MediaPlayer.cpp:
1059         (WebCore):
1060         (WebCore::MediaPlayer::keyAdded):
1061         (WebCore::MediaPlayer::keyError):
1062         (WebCore::MediaPlayer::keyMessage):
1063         (WebCore::MediaPlayer::keyNeeded):
1064         * platform/graphics/MediaPlayer.h:
1065         (MediaPlayerClient):
1066         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
1067         (WebCore::MediaPlayerClient::mediaPlayerKeyError):
1068         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
1069         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
1070         (MediaPlayer):
1071
1072 2012-04-12  Anders Carlsson  <andersca@apple.com>
1073
1074         Reset the user preferred language overrides in Internals::reset
1075         https://bugs.webkit.org/show_bug.cgi?id=83845
1076
1077         Reviewed by Ryosuke Niwa.
1078
1079         We don't want setting the language override in one test to affect subsequent tests,
1080         so make sure to reset it in Internals::reset.
1081
1082         * testing/Internals.cpp:
1083         (WebCore::Internals::reset):
1084
1085 2012-04-12  Andrey Kosyakov  <caseq@chromium.org>
1086
1087         [chromium][refactoring] merge CCSingleThreadProxy::{commitIfNeeded,doComposite} into commitAndComposite()
1088         https://bugs.webkit.org/show_bug.cgi?id=83837
1089
1090         Reviewed by James Robinson.
1091
1092         - merge CCSingleThreadProxy::commitIfNeeded() and CCSingleThreadProxy::doComposite() into commitAndComposite()
1093
1094         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1095         (WebCore::CCSingleThreadProxy::compositeAndReadback): call site updated.
1096         (WebCore::CCSingleThreadProxy::compositeImmediately): ditto.
1097         (WebCore::CCSingleThreadProxy::commitAndComposite):
1098         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1099
1100 2012-04-12  Nate Chapin  <japhet@chromium.org>
1101
1102         Remove FrameLoader:m_isLoadingMainResource, since it is always
1103         false at the only point it is checked.
1104         https://bugs.webkit.org/show_bug.cgi?id=83819
1105
1106         Reviewed by Adam Barth.
1107
1108         No new tests, no functionality change intended.
1109
1110         * loader/DocumentWriter.cpp:
1111         (WebCore::DocumentWriter::end): Merge with endIfNotLoadingMainResource(), always end, assert that we're still attached.
1112         * loader/DocumentWriter.h:
1113         * loader/FrameLoader.cpp:
1114         * loader/FrameLoader.h: Remove isLoadingMainResource(), didEndDocument(), and m_isLoadingMainResource.
1115
1116 2012-04-12  Rob Buis  <rbuis@rim.com>
1117
1118         XMLSerializer().serializeToString() doesn't generate the XML declaration markup like Opera and Firefox
1119         https://bugs.webkit.org/show_bug.cgi?id=83432
1120
1121         Reviewed by Ryosuke Niwa.
1122
1123         Serialize the xml declaration exactly as parsed, if present in the document.
1124
1125         Test: fast/dom/dom-parse-serialize-xmldecl.html
1126
1127         * dom/Document.cpp:
1128         (WebCore::Document::Document):
1129         (WebCore::Document::setXMLStandalone): update xmlStandalone to either yes or no.
1130         * dom/Document.h:
1131         (WebCore::Document::xmlStandalone):
1132         (WebCore::Document::xmlStandaloneStatus): xmlStandalone can be unspecified, yes or no.
1133         (WebCore::Document::hasXMLDeclaration):  test if xml declaration is present.
1134         (WebCore::Document::setHasXMLDeclaration):
1135         (Document):
1136         * editing/MarkupAccumulator.cpp:
1137         (WebCore::MarkupAccumulator::appendXMLDeclaration): write xml declaration if present.
1138         (WebCore):
1139         (WebCore::MarkupAccumulator::appendStartMarkup):
1140         * editing/MarkupAccumulator.h:
1141         (MarkupAccumulator):
1142         * xml/parser/XMLDocumentParserLibxml2.cpp:
1143         (WebCore::XMLDocumentParser::startDocument): call setHasXmlDeclaration and any declaration strings parsed.
1144         * xml/parser/XMLDocumentParserQt.cpp:
1145         (WebCore::XMLDocumentParser::startDocument): call setHasXmlDeclaration and any declaration strings parsed.
1146
1147 2012-04-12  Adam Barth  <abarth@webkit.org>
1148
1149         window.open should prepare for seamless navigation by using findFrameForNavigation
1150         https://bugs.webkit.org/show_bug.cgi?id=83835
1151
1152         Reviewed by Ryosuke Niwa.
1153
1154         Before this patch, window.open called FrameTree::find and
1155         Document::canNavigate separately.  This patch refactors the code to
1156         call FrameLoader::findFrameForNavigation, which does both.  This
1157         refactoring prepares window.open to understand seamless navigation,
1158         which will happen in findFrameForNavigation.
1159
1160         This patch should have no behavior change today, but once we merge the
1161         seamless branch, this change will be tested by
1162         https://github.com/eseidel/webkit/blob/seamless/LayoutTests/fast/frames/seamless/seamless-window-open.html
1163
1164         See https://github.com/eseidel/webkit/commit/a0d8b7defbb63047912aefbc8e22bca4f0638c37 for context.
1165
1166         * WebCore.exp.in:
1167         * loader/FrameLoader.cpp:
1168         (WebCore::FrameLoader::findFrameForNavigation):
1169         (WebCore::createWindow):
1170         * loader/FrameLoader.h:
1171         (FrameLoader):
1172
1173 2012-04-12  Andy Estes  <aestes@apple.com>
1174
1175         REGRESSION (r102262): iAd Producer relies on CSSStyleDeclaration property setters respecting '!important'
1176         https://bugs.webkit.org/show_bug.cgi?id=83832
1177
1178         Reviewed by Alexey Proskuryakov.
1179
1180         Shipping versions of iAd Producer rely on the pre-r102262 behavior of
1181         respecting '!important' when specified in a CSSStyleDeclaration
1182         property setter. Restore this quirky behavior for versions of the app
1183         that expect it.
1184
1185         * WebCore.exp.in: Export
1186         Settings::setShouldRespectPriorityInCSSAttributeSetters().
1187         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1188         (WebCore::JSCSSStyleDeclaration::putDelegate): If
1189         setShouldRespectPriorityInCSSAttributeSetters() is true, restore the
1190         pre-r102262 behavior wherein we attempt to parse '!important' out of
1191         the property value.
1192         * page/Settings.cpp:
1193         (WebCore::Settings::setShouldRespectPriorityInCSSAttributeSetters):
1194         (WebCore::Settings::shouldRespectPriorityInCSSAttributeSetters):
1195         * page/Settings.h:
1196
1197 2012-04-12  Alexandru Chiculita  <achicu@adobe.com>
1198
1199         REGRESSION(112745) [CSS Filters] Memory use explosion for offscreen filtered elements
1200         https://bugs.webkit.org/show_bug.cgi?id=83815
1201
1202         Reviewed by Simon Fraser.
1203
1204         The filtered area used to be the dirty rect intersected by the bounding box of the
1205         layer. During a previous change that behavior was lost, so adding it back now.
1206
1207         Also, removing the memory buffers used to compute filters after the filter is computed.
1208         They are deleted next time the filter is applied anyway, so there's no need to keep the
1209         memory for them.
1210
1211         Test: css3/filters/offscreen-filters-memory-usage.html
1212
1213         * rendering/FilterEffectRenderer.cpp:
1214         (WebCore::FilterEffectRenderer::prepare):
1215         (WebCore):
1216         (WebCore::FilterEffectRenderer::clearIntermediateResults):
1217         (WebCore::FilterEffectRendererHelper::prepareFilterEffect):
1218         (WebCore::FilterEffectRendererHelper::applyFilterEffect):
1219         * rendering/FilterEffectRenderer.h:
1220         (FilterEffectRenderer):
1221
1222 2012-04-12  Brent Fulgham  <bfulgham@webkit.org>
1223
1224         [WinCairo] Build fix after addition of openTypeTable.
1225
1226         * platform/graphics/FontPlatformData.h:
1227         (FontPlatformData): The openTypeTable declaration is needed
1228         for WinCairo as well.
1229         * platform/graphics/win/FontPlatformDataWin.cpp:
1230         (WebCore):
1231         (WebCore::FontPlatformData::openTypeTable): The implementation
1232         of openTypeTable is needed for non-CG builds.
1233
1234 2012-04-12  Balazs Kelemen  <kbalazs@webkit.org>
1235
1236         [Qt] Fix WebKit1 build with V8
1237         https://bugs.webkit.org/show_bug.cgi?id=83322
1238
1239         Reviewed by Adam Barth.
1240
1241         Make it possible to build WebKit1 with v8.
1242         WebKit2 is not covered yet so it need to be disabled.
1243         To build webkit with --v8 one need a qtjsbackend with
1244         an up-to-date copy of v8. Thanks to Peter Varga such
1245         a public repository is available on gitorious:
1246         https://qt.gitorious.org/~stampho/qt/stamphos-qtjsbackend.
1247
1248         This patch contains some build fix with !ENABLE(INSPECTOR)
1249         from it's previous version. These are not necessary now
1250         but I kept them because they makes sense.
1251
1252         No change in behaviour so no new tests.
1253
1254         * DerivedSources.pri:
1255         * Target.pri:
1256         * WebCore.pri:
1257         * bindings/v8/ScriptController.cpp:
1258         * bindings/v8/ScriptControllerQt.cpp:
1259         * bindings/v8/ScriptProfiler.cpp:
1260         (WebCore::retainedDOMInfo):
1261         (WebCore::ScriptProfiler::initialize):
1262         * bindings/v8/ScriptState.cpp:
1263         (WebCore::evalEnabled):
1264         (WebCore::setEvalEnabled):
1265         * bindings/v8/V8Binding.cpp:
1266         (WebCore):
1267         * bindings/v8/V8Binding.h:
1268         (V8BindingPerIsolateData):
1269         * bindings/v8/V8DOMWindowShell.cpp:
1270         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1271         * bindings/v8/V8GCForContextDispose.cpp:
1272         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
1273         * bindings/v8/custom/V8InjectedScriptManager.cpp:
1274         * config.h:
1275         * editing/TextIterator.cpp:
1276         * html/MediaFragmentURIParser.cpp:
1277         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1278         * platform/qt/PlatformSupportQt.cpp:
1279         (WebCore::PlatformSupport::popupsAllowed):
1280
1281 2012-04-12  Alec Flett  <alecflett@chromium.org>
1282
1283         IndexedDB: Refactor cursor iteration to remove duplicate code
1284         https://bugs.webkit.org/show_bug.cgi?id=83302
1285
1286         Reviewed by Ojan Vafai.
1287
1288         No new tests, no behavior changes.
1289
1290         * Modules/indexeddb/IDBBackingStore.h:
1291         (Cursor):
1292         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1293         (WebCore):
1294
1295 2012-04-12  Erik Arvidsson  <arv@chromium.org>
1296
1297         Add support for [ArrayClass] and use that on NodeList
1298         https://bugs.webkit.org/show_bug.cgi?id=
1299
1300         Reviewed by Adam Barth.
1301
1302         Attempt to reland r113931. Now with more updated test expectations.
1303
1304         With this patch NodeLists now have Array.prototype on their prototype chain which allows
1305         methods such as forEach and map to work on NodeLists.
1306
1307         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-nodelist
1308
1309         For V8 we need to set a flag on the WrapperTypeInfo since V8 uses FunctionTemplates which
1310         does not allow setting the prototype to a non FunctionTemplate so the prototype is therefore
1311         set when the constructor is created.
1312
1313         For JSC we just pass the right prototype object when creating the NodeList prototype. JSC has
1314         a bug (81588) that prevents toString to work as specced on Array.prototype.toString. This
1315         causes test failures in the tests until that has been fixed.
1316
1317         Test: fast/dom/NodeList/node-list-array-class.html
1318
1319         * bindings/scripts/CodeGeneratorJS.pm:
1320         (GenerateHeader): Include ArrayPrototype.h if an ArrayClass.
1321         (GenerateImplementation): If ArrayClass use arrayPrototype as prototype.
1322         * bindings/scripts/CodeGeneratorV8.pm:
1323         (GenerateNamedConstructorCallback):
1324         (GenerateImplementation): Adds a flag to the WrapperTypeInfo.
1325         * bindings/scripts/IDLAttributes.txt:: Adds new attribute: ArrayClass.
1326         * bindings/scripts/test/JS/JSTestObj.cpp:
1327         (WebCore::JSTestObj::createPrototype):
1328         * bindings/scripts/test/JS/JSTestObj.h:
1329         * bindings/scripts/test/TestObj.idl:
1330         * bindings/scripts/test/V8/V8Float64Array.cpp:
1331         (WebCore):
1332         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1333         (WebCore):
1334         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1335         (WebCore):
1336         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1337         (WebCore):
1338         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1339         (WebCore):
1340         * bindings/scripts/test/V8/V8TestInterface.cpp:
1341         (WebCore):
1342         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1343         (WebCore):
1344         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1345         (WebCore):
1346         * bindings/scripts/test/V8/V8TestNode.cpp:
1347         (WebCore):
1348         * bindings/scripts/test/V8/V8TestObj.cpp:
1349         (WebCore):
1350         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1351         (WebCore):
1352         * bindings/v8/NPV8Object.cpp:
1353         (WebCore::npObjectTypeInfo):
1354         * bindings/v8/V8BindingPerContextData.cpp:
1355         (WebCore::V8BindingPerContextData::init): Get the array prototype too.
1356         (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
1357         (WebCore::V8BindingPerContextData::constructorForTypeSlowCase): If this is an ArrayClass we need to
1358         set the `[[Prototype]]`.
1359         * bindings/v8/V8BindingPerContextData.h:
1360         (V8BindingPerContextData):
1361         * bindings/v8/V8HiddenPropertyName.h:
1362         (WebCore):
1363         * bindings/v8/WrapperTypeInfo.h:
1364         (WrapperTypeInfo):
1365         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1366         (WebCore):
1367         * dom/NodeList.idl:
1368
1369 2012-04-12  Konrad Piascik  <kpiascik@rim.com>
1370
1371         [BlackBerry] Web Inspector cookie expiry is showing the wrong date.
1372         https://bugs.webkit.org/show_bug.cgi?id=83814
1373
1374         Reviewed by Rob Buis.
1375
1376         The internal representation for expiry is seconds, we need to convert it
1377         to milliseconds by multiplying by 1000.
1378
1379         The value from this method doesn't get used anywhere except Web Inspector.
1380         Manually tested with Web Inspector by examining the CookieItemView in the Resources Panel.
1381
1382         * platform/blackberry/ParsedCookie.cpp:
1383         (WebCore::ParsedCookie::appendWebCoreCookie):
1384
1385 2012-04-12  Adam Klein  <adamk@chromium.org>
1386
1387         Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
1388         https://bugs.webkit.org/show_bug.cgi?id=82256
1389
1390         Reviewed by Kentaro Hara.
1391
1392         This is an attempt to reland r112318, which was rolled out due to suspicion of OOM issues.
1393
1394         I've landed the refactoring bits of r112318 as separate changes,
1395         so that this patch contains only the change in which map setter is called.
1396
1397         Binding tests have been updated with new output.
1398
1399         * bindings/scripts/CodeGeneratorV8.pm:
1400         (GenerateToV8Converters): Call appropriate V8DOMWrapper::setJSWrapperFor*
1401         to set up wrapper mapping and remove call to leakRef() which is handled
1402         in V8DOMWrapper.
1403         * bindings/scripts/test/V8/V8Float64Array.cpp:
1404         (WebCore::V8Float64Array::wrapSlow):
1405         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1406         (WebCore::V8TestActiveDOMObject::wrapSlow):
1407         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1408         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1409         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1410         (WebCore::V8TestEventConstructor::wrapSlow):
1411         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1412         (WebCore::V8TestEventTarget::wrapSlow):
1413         * bindings/scripts/test/V8/V8TestInterface.cpp:
1414         (WebCore::V8TestInterface::wrapSlow):
1415         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1416         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1417         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1418         (WebCore::V8TestNamedConstructor::wrapSlow):
1419         * bindings/scripts/test/V8/V8TestNode.cpp:
1420         (WebCore::V8TestNode::wrapSlow):
1421         * bindings/scripts/test/V8/V8TestObj.cpp:
1422         (WebCore::V8TestObj::wrapSlow):
1423         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1424         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1425
1426 2012-04-12  David Hyatt  <hyatt@apple.com>
1427
1428         https://bugs.webkit.org/show_bug.cgi?id=83817
1429         
1430         This patch modifies RenderText so that it scans all of its characters up front to
1431         determine whether or not the simple code path can be used for measurement/rendering
1432         of the text for the whole run.
1433         
1434         TextRun now has an additional field that indicates that the character scan is not
1435         required, since the entire RenderText is known to be simple. This boolean is set
1436         when constructing the TextRun from the places that make TextRuns from RenderTexts.
1437         
1438         The character scan has been refactored into a static Font method so that it can be
1439         called by RenderText. The scan of individual TextRuns is also done using the same method
1440         so that the code is shared.
1441
1442         Reviewed by Dan Bernstein.
1443
1444         * platform/graphics/Font.cpp:
1445         (WebCore::Font::codePath):
1446         (WebCore::Font::characterRangeCodePath):
1447         * platform/graphics/Font.h:
1448         * platform/graphics/TextRun.h:
1449         (WebCore::TextRun::TextRun):
1450         (WebCore::TextRun::characterScanForCodePath):
1451         (WebCore::TextRun::setCharacterScanForCodePath):
1452         (TextRun):
1453         * rendering/InlineTextBox.cpp:
1454         (WebCore::InlineTextBox::constructTextRun):
1455         * rendering/RenderBlockLineLayout.cpp:
1456         (WebCore::textWidth):
1457         * rendering/RenderText.cpp:
1458         (WebCore::RenderText::RenderText):
1459         (WebCore::RenderText::widthFromCache):
1460         (WebCore::RenderText::setTextInternal):
1461         (WebCore::RenderText::width):
1462         (WebCore::RenderText::computeCanUseSimpleFontCodePath):
1463         (WebCore):
1464         * rendering/RenderText.h:
1465         (RenderText):
1466         (WebCore::RenderText::canUseSimpleFontCodePath):
1467
1468 2012-04-12  Levi Weintraub  <leviw@chromium.org>
1469
1470         Make AccessibilityObject::size non-virtual and fix platform accessibility code's LayoutUnit usage
1471         https://bugs.webkit.org/show_bug.cgi?id=83803
1472
1473         Reviewed by Eric Seidel.
1474
1475         AccessibilityObject::size was virtual with a number of overloads, but all the implementations were
1476         redundant. Avoiding the virtual thunk and code duplication by declaring it non-virtual and only
1477         implementing it in AccessibilityObject.
1478
1479         Also adding a pixelSnappedSize method that returns an IntSize, and using it in platform
1480         accessibility code.
1481
1482         No new tests. No change in behavior.
1483
1484         * accessibility/AccessibilityMenuListOption.h:
1485         (WebCore::AccessibilityMenuListOption::canHaveChildren):
1486         * accessibility/AccessibilityMenuListPopup.h:
1487         (WebCore::AccessibilityMenuListPopup::elementRect):
1488         * accessibility/AccessibilityObject.h:
1489         (WebCore::AccessibilityObject::size):
1490         (WebCore::AccessibilityObject::pixelSnappedSize):
1491         * accessibility/AccessibilityRenderObject.cpp:
1492         (WebCore):
1493         * accessibility/AccessibilityRenderObject.h:
1494         (AccessibilityRenderObject):
1495         * accessibility/AccessibilitySlider.cpp:
1496         (WebCore):
1497         * accessibility/AccessibilitySlider.h:
1498         (AccessibilitySliderThumb):
1499         * accessibility/AccessibilityTableColumn.cpp:
1500         (WebCore):
1501         * accessibility/AccessibilityTableColumn.h:
1502         (AccessibilityTableColumn):
1503         * accessibility/AccessibilityTableHeaderContainer.cpp:
1504         (WebCore):
1505         * accessibility/AccessibilityTableHeaderContainer.h:
1506         (AccessibilityTableHeaderContainer):
1507         * accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp:
1508         (webkitAccessibleComponentGetExtents):
1509         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
1510         (webkitAccessibleImageGetImagePosition):
1511         (webkitAccessibleImageGetImageSize):
1512         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1513         (-[WebAccessibilityObjectWrapper position]):
1514         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1515
1516 2012-04-12  Anna Cavender  <annacc@chromium.org>
1517
1518         Update HTMLMediaElement's index of cues when TextTrack.mode changes to
1519         and from TextTrack::DISABLED.
1520         https://bugs.webkit.org/show_bug.cgi?id=83377
1521
1522         Reviewed by Eric Carlson.
1523
1524         No new tests. Instead updated media/track/track-mode.html
1525
1526         * html/HTMLMediaElement.cpp:
1527         (WebCore::HTMLMediaElement::textTrackModeChanged):
1528             Add the track's cues to the index when the mode changes to HIDDEN or SHOWING.
1529
1530         * html/HTMLTrackElement.cpp:
1531         (WebCore::HTMLTrackElement::textTrackRemoveCues):
1532             Fix a copy pasta error.
1533
1534         * html/track/TextTrack.cpp:
1535         (WebCore::TextTrack::setMode):
1536             Remove the track's cues from the index when the mode changes to DISABLED.
1537
1538 2012-04-12  Cem Kocagil  <cem.kocagil@gmail.com>
1539
1540         Allow certain Char events in fullscreen
1541         https://bugs.webkit.org/show_bug.cgi?id=83330
1542
1543         Reviewed by Alexey Proskuryakov.
1544
1545         * page/EventHandler.cpp:
1546         (WebCore::EventHandler::isKeyEventAllowedInFullScreen):
1547
1548 2012-04-12  Alec Flett  <alecflett@chromium.org>
1549
1550         IndexedDB: Attributes for a cursor "run past the end" should be undefined.
1551         https://bugs.webkit.org/show_bug.cgi?id=83492
1552
1553         Reviewed by Ojan Vafai.
1554
1555         This brings us up to spec with respect to when it's ok to call
1556         cursor.continue() and the various behaviors around it:
1557
1558         If you call it more than once, continue() throws an exception.
1559
1560         The values of key/primaryKey/value are consistent, whether or not
1561         continue has been called, meaning that if continue() results in
1562         data being loaded from the backing store, that data does not
1563         affect the cursor until the success callback has completed.
1564
1565         Calls to update() and delete() can happen before continue(), but
1566         not afterwards.
1567
1568         Test: storage/indexeddb/cursor-continue-validity.html
1569
1570         * Modules/indexeddb/IDBCursor.cpp:
1571         (WebCore::IDBCursor::IDBCursor):
1572         (WebCore::IDBCursor::key):
1573         (WebCore::IDBCursor::primaryKey):
1574         (WebCore::IDBCursor::value):
1575         (WebCore::IDBCursor::update):
1576         (WebCore::IDBCursor::continueFunction):
1577         (WebCore::IDBCursor::deleteFunction):
1578         (WebCore::IDBCursor::setGotValue):
1579         (WebCore):
1580         * Modules/indexeddb/IDBCursor.h:
1581         (IDBCursor):
1582         * Modules/indexeddb/IDBRequest.cpp:
1583         (WebCore::IDBRequest::onSuccess):
1584         (WebCore::IDBRequest::dispatchEvent):
1585
1586 2012-04-12  Eric Carlson  <eric.carlson@apple.com>
1587
1588         Media engine should not be told to prepare for playback if media loading is not allowed
1589         https://bugs.webkit.org/show_bug.cgi?id=83620
1590
1591         Reviewed by Dan Bernstein.
1592
1593         Test: media/video-load-require-user-gesture.html
1594
1595         * html/HTMLMediaElement.cpp:
1596         (WebCore::HTMLMediaElement::load): Early return if user gesture requirement is not met.
1597
1598         * testing/InternalSettings.cpp:
1599         (WebCore::InternalSettings::setMediaPlaybackRequiresUserGesture): Moved the method here from
1600             Internals to be with the rest of the Internals methods that expose preferences.
1601         * testing/InternalSettings.h:
1602         * testing/InternalSettings.idl:
1603
1604         * testing/Internals.cpp: Moved setMediaPlaybackRequiresUserGesture to InternalSettings.
1605         * testing/Internals.h:
1606         * testing/Internals.idl:
1607
1608 2012-04-12  Bear Travis  <betravis@adobe.com>
1609
1610         [CSS Exclusions] Add flag to enable / disable exclusions at runtime
1611         https://bugs.webkit.org/show_bug.cgi?id=83313
1612
1613         Reviewed by Ryosuke Niwa.
1614
1615         Adding setCSSExclusionsEnabled/cssExclusionsEnabled that is true by default.
1616         The CSS parser will not accept values for the exclusions properties when
1617         cssExclusionsEnabled is false. However, you will still get the default value
1618         in the computed style.
1619
1620         Test: fast/exclusions/css-exclusions-disabled.html
1621
1622         * WebCore.exp.in:
1623         * bindings/generic/RuntimeEnabledFeatures.cpp:
1624         (WebCore):
1625         * bindings/generic/RuntimeEnabledFeatures.h:
1626         (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled):
1627         (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled):
1628         (RuntimeEnabledFeatures):
1629         * css/CSSParser.cpp:
1630         (WebCore::isSimpleLengthValue):
1631         (WebCore::isValidKeywordPropertyAndValue):
1632         (WebCore::CSSParser::parseValue):
1633         * testing/InternalSettings.cpp:
1634         (WebCore::InternalSettings::InternalSettings):
1635         (WebCore::InternalSettings::restoreTo):
1636         (WebCore::InternalSettings::setCSSExclusionsEnabled):
1637         (WebCore):
1638         * testing/InternalSettings.h:
1639         (InternalSettings):
1640         * testing/InternalSettings.idl:
1641
1642 2012-04-12  Nate Chapin  <japhet@chromium.org>
1643
1644         Move Archive processing to DocumentLoader, instead of FrameLoader.
1645         https://bugs.webkit.org/show_bug.cgi?id=83055
1646
1647         Reviewed by Adam Barth.
1648
1649         No new tests, no functionality change intended.
1650
1651         * loader/DocumentLoader.cpp:
1652         (WebCore::DocumentLoader::finishedLoading):
1653         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
1654         (WebCore::DocumentLoader::maybeCreateArchive): Renamed from
1655             FrameLoader::finishedLoadingDocument(). Returns true if an archive
1656             was created.
1657         (WebCore::DocumentLoader::setArchive):
1658         (WebCore::DocumentLoader::scheduleArchiveLoad):
1659         (WebCore::DocumentLoader::documentURL): Add a check for whether an archive url
1660             should be returned, so that we don't need special handling in Document and
1661             FrameLoader for overriding the document url later.
1662         * loader/DocumentLoader.h:
1663         * loader/FrameLoader.cpp:
1664         (WebCore::FrameLoader::receivedFirstData): Remove archive special cases, since
1665             DocumentLoader::documentURL() will return the right thing for legacy archives
1666             and maybeCreateArchive() will override the base url for mhtml.
1667         (WebCore::FrameLoader::loadArchive):
1668         * loader/FrameLoader.h:
1669
1670 2012-04-12  Dmitry Lomov  <dslomov@google.com>
1671
1672         REGRESSION (r113233): fast/canvas/webgl/array-message-passing.html crashing on Lion and Snow Leopard bots.
1673         https://bugs.webkit.org/show_bug.cgi?id=83427.
1674         Due to incorrect merge by me when landing r113233, call to find got replaces with call to add in 
1675         checking for duplicates in ObjectPool when serializing.
1676
1677         Reviewed by Dean Jackson.
1678
1679         Covered by existing tests.
1680
1681         * bindings/js/SerializedScriptValue.cpp:
1682         (WebCore::CloneSerializer::checkForDuplicate):
1683
1684 2012-04-12  David Barton  <dbarton@mathscribe.com>
1685
1686         Don't modify shared style objects in RenderMathMLRoot.cpp
1687         https://bugs.webkit.org/show_bug.cgi?id=83736
1688
1689         Reviewed by Julien Chaffraix.
1690
1691         To leave room for the radical sign and absolutely positioned "index", we switch to using
1692         intrinsic padding. RenderMathMLRoot.cpp is also cleaned up and prepared for merging with
1693         RenderMathMLSquareRoot.cpp. The base and index are no longer wrapped in extra renderers,
1694         and the child renderers are now in the same order as in the DOM. Some padding/placement
1695         terms are unified and debugged.
1696
1697         Tested by existing tests in roots.xhtml.
1698
1699         * css/mathml.css:
1700         (mroot):
1701         (mroot > * + *):
1702         (mroot > * + mrow, mroot > * + mfenced):
1703         * rendering/mathml/RenderMathMLRoot.cpp:
1704         (WebCore):
1705         (WebCore::RenderMathMLRoot::index):
1706         (WebCore::RenderMathMLRoot::paint):
1707         (WebCore::RenderMathMLRoot::layout):
1708         * rendering/mathml/RenderMathMLRoot.h:
1709         (RenderMathMLRoot):
1710         * rendering/mathml/RenderMathMLSquareRoot.cpp:
1711         (WebCore):
1712         (WebCore::RenderMathMLSquareRoot::paint):
1713
1714 2012-04-12  Anders Carlsson  <andersca@apple.com>
1715
1716         Build fix.
1717
1718         * page/mac/SettingsMac.mm:
1719         (WebCore::defaultFontFamilyDictionary):
1720
1721 2012-04-12  Antti Koivisto  <antti@apple.com>
1722
1723         Remove style sheet argument from StyleRuleImport constructor 
1724         https://bugs.webkit.org/show_bug.cgi?id=83740
1725
1726         Reviewed by Andreas Kling.
1727
1728         The style sheet is set when the rule is added to one. The parser does not need to know about it.
1729
1730         * css/CSSImportRule.cpp:
1731         (WebCore::StyleRuleImport::StyleRuleImport):
1732         * css/CSSImportRule.h:
1733         (StyleRuleImport):
1734         (WebCore::StyleRuleImport::setParentStyleSheet):
1735         * css/CSSParser.cpp:
1736         (WebCore::CSSParser::createImportRule):
1737         * css/CSSStyleSheet.cpp:
1738         (WebCore::StyleSheetInternal::parserAppendRule):
1739         (WebCore::StyleSheetInternal::wrapperInsertRule):
1740
1741 2012-04-12  Alexey Proskuryakov  <ap@apple.com>
1742
1743         REGRESSION (r113900): In nightly builds, Safari Webpage Preview Fetcher crashes in Settings::initializeDefaultFontFamilies() due to uncaught exception (sandbox preventing access to fonts plist)
1744         https://bugs.webkit.org/show_bug.cgi?id=83792
1745         <rdar://problem/11234002>
1746
1747         Reviewed by Dan Bernstein.
1748
1749         * page/mac/SettingsMac.mm: (WebCore::defaultFontFamilyDictionary): Bail out without setting
1750         font preferences if the process doesn't have read access to WebCore.framework.
1751
1752 2012-04-12  Eli Fidler  <efidler@rim.com>
1753
1754         [BlackBerry] Set up default fonts for BlackBerry
1755         https://bugs.webkit.org/show_bug.cgi?id=83775
1756
1757         Reviewed by Antonio Gomes.
1758
1759         * PlatformBlackBerry.cmake:
1760         * page/Settings.cpp:
1761         (WebCore):
1762         * page/blackberry/SettingsBlackBerry.cpp: Added.
1763         (WebCore):
1764         (WebCore::Settings::initializeDefaultFontFamilies):
1765
1766 2012-04-12  Jon Lee  <jonlee@apple.com>
1767
1768         Implement Dictionary.h on mac (83472)
1769         https://bugs.webkit.org/show_bug.cgi?id=83472
1770         <rdar://problem/11209766>
1771
1772         Reviewed by Kentaro Hara.
1773
1774         A difference between Dictionary and JSDictionary makes it difficult to merge the two together and avoid
1775         creating a confusing API. The boolean returned by Dictionary::get() represents whether the
1776         property was found. The boolean returned by JSDictionary::tryGetProperty() represents whether an
1777         exception was thrown.
1778
1779         * WebCore.xcodeproj/project.pbxproj: Add Dictionary.h and Dictionary.cpp.
1780
1781         * bindings/js/Dictionary.cpp: Added.
1782         (WebCore::Dictionary::Dictionary):
1783         (WebCore::Dictionary::get):
1784         * bindings/js/Dictionary.h: Leverage JSDictionary's functionality to obtain the data.
1785         (WebCore::Dictionary::isObject): Mark an unimplemented.
1786         (WebCore::Dictionary::isUndefinedOrNull): Mark an unimplemented.
1787         (WebCore::Dictionary::getWithUndefinedOrNullCheck): Mark an unimplemented.
1788
1789         * bindings/js/JSDictionary.cpp:
1790         (WebCore::JSDictionary::tryGetProperty): Convert to a const function.
1791         * bindings/js/JSDictionary.h:
1792         (WebCore::JSDictionary::isValid):
1793         (WebCore::JSDictionary::tryGetProperty): Convert to a const function.
1794         (WebCore::JSDictionary::get): Similar to tryGetProperty(), but returns true if the
1795         property was found, converting the value succeeded and the out parameter "result" was set.
1796         (WebCore::JSDictionary::tryGetPropertyAndResult): Refactor tryGetProperty() to return the enum directly.
1797
1798         Change bindings scripts to use Dictionary constructor.
1799         * bindings/js/IDBBindingUtilities.cpp: Remove createDictionaryFromValue().
1800         * bindings/js/IDBBindingUtilities.h: Remove createDictionaryFromValue().
1801         * bindings/scripts/CodeGeneratorJS.pm:
1802         (JSValueToNative): Update to remove IDBBindingUtilities.h dependency, and use Dictionary constructor.
1803         * bindings/scripts/test/JS/JSTestObj.cpp:
1804         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Update expected generated output.
1805
1806 2012-04-12  Sami Kyostila  <skyostil@chromium.org>
1807
1808         [chromium] Fix threaded compositor HUD crash
1809         https://bugs.webkit.org/show_bug.cgi?id=83778
1810
1811         Reviewed by James Robinson.
1812
1813         Don't try to read font metrics in threaded compositing mode, since we
1814         currently can't render HUD text with the threaded compositor.
1815
1816         HUD is not testable in WebKit.
1817
1818         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1819         (WebCore::CCHeadsUpDisplay::drawHudContents):
1820
1821 2012-04-11  Andrey Kosyakov  <caseq@chromium.org>
1822
1823         Web Inspector: zoom timeline frame on dblclick on the frame bar
1824         https://bugs.webkit.org/show_bug.cgi?id=83741
1825
1826         Reviewed by Pavel Feldman.
1827
1828        - put timeline frame bars into a container, so we can have one listener;
1829        - upon dblclick, find the frame, get its window coordinates and set overview selection window accordingly.
1830
1831         * inspector/front-end/TimelineOverviewPane.js:
1832         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame): Get frame coordinates, set overview window.
1833         (WebInspector.TimelineVerticalOverview.prototype.update): Maintain framesPerBar as a member for reuse in getFramePosition()
1834         (WebInspector.TimelineVerticalOverview.prototype.framePosition): Map frame to screen positions.
1835         (WebInspector.TimelineVerticalOverview.prototype._renderBars): Factored out barNumberToScreenPosition()
1836         (WebInspector.TimelineVerticalOverview.prototype._barNumberToScreenPosition):
1837         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes): Drive-by style fix.
1838         * inspector/front-end/TimelinePanel.js:
1839         (WebInspector.TimelinePanel.prototype._updateFrames): Put frames into a containing div.
1840         (WebInspector.TimelinePanel.prototype._onFrameDoubleClicked): Zoom to frame upon double click.
1841         * inspector/front-end/timelinePanel.css:
1842         (.timeline-frame-container):
1843
1844 2012-04-11  Andrey Kosyakov  <caseq@chromium.org>
1845
1846         Web Inspector: show wall time frame duration on the vertical overview
1847         https://bugs.webkit.org/show_bug.cgi?id=83718
1848
1849         Reviewed by Pavel Feldman.
1850
1851         - show frame duration as a contour of the frame bar in vertical overview;
1852         - when scaling, normalize bar to a max of 3 * median frame duration, so too long frames do not dwarf the majority;
1853         - add Array.prototype.qselect() for the above;
1854         - factor our partition algorithm onto Array.prototype for better reuse;
1855
1856         * inspector/front-end/PartialQuickSort.js: factor out partition()
1857         (Object.defineProperty.):
1858         (Object.defineProperty):
1859         * inspector/front-end/TimelineFrameController.js:
1860         (WebInspector.TimelineFrameController.prototype._flushFrame): add frame.duration.
1861         (WebInspector.TimelineFrameController.prototype._createSyntheticFrame): ditto.
1862         * inspector/front-end/TimelineOverviewPane.js:
1863         (WebInspector.TimelineVerticalOverview):
1864         (WebInspector.TimelineVerticalOverview.prototype.reset): this._longestFrameTime is gone.
1865         (WebInspector.TimelineVerticalOverview.prototype.update): ditto.
1866         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames): return frames to display, not just their timeByCatogory.
1867         (WebInspector.TimelineVerticalOverview.prototype._renderBars): use entire frames, not timeByCategory.
1868         (WebInspector.TimelineVerticalOverview.prototype._renderBar): ditto.
1869         * inspector/front-end/externs.js: Added annotations for partition() and qselect()
1870         (Array.prototype.partition):
1871         (Array.prototype.qselect):
1872         * inspector/front-end/utilities.js:
1873         (.):
1874
1875 2012-04-12  David Barr  <davidbarr@chromium.org>
1876
1877         Optimize non-rounded double border rendering to avoid transparency layers
1878         https://bugs.webkit.org/show_bug.cgi?id=83745
1879
1880         Reviewed by Simon Fraser.
1881
1882         No functional change, painting optimization only.
1883
1884         * rendering/RenderBoxModelObject.cpp:
1885         (WebCore::RenderBoxModelObject::paintBorder):
1886
1887 2012-04-12  Julien Chaffraix  <jchaffraix@webkit.org>
1888
1889         Reduce the use of RenderLayer outside of the rendering code
1890         https://bugs.webkit.org/show_bug.cgi?id=83728
1891
1892         Reviewed by Simon Fraser.
1893
1894         Test: fast/layers/scrollByLines-overflow-no-layer.html
1895
1896         This is mostly a layering violation change. This changes reduces the number of
1897         RenderLayer use outside rendering/ by a third but there are still numerous uses.
1898
1899         While auditing the different uses of RenderLayer, I found a potential crasher
1900         and fixed it which is why we have a test case.
1901
1902         * accessibility/AccessibilityRenderObject.cpp:
1903         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
1904         * dom/Document.cpp:
1905         (WebCore::Document::nodesFromRect):
1906         (WebCore::Document::handleZeroPadding):
1907         (WebCore::nodeFromPoint):
1908         (WebCore::Document::prepareMouseEvent):
1909         * editing/FrameSelection.cpp:
1910         (WebCore::FrameSelection::contains):
1911         * page/DragController.cpp:
1912         (WebCore::elementUnderMouse):
1913         * page/EventHandler.cpp:
1914         (WebCore::EventHandler::handleMouseDraggedEvent):
1915         (WebCore::EventHandler::eventMayStartDrag):
1916         (WebCore::EventHandler::updateSelectionForMouseDrag):
1917         (WebCore::EventHandler::hitTestResultAtPoint):
1918         (WebCore::EventHandler::handleWheelEvent):
1919         (WebCore::EventHandler::hoverTimerFired):
1920         (WebCore::EventHandler::handleDrag):
1921         Updated these call sites to use RenderView::hitTest.
1922
1923         * css/CSSComputedStyleDeclaration.cpp:
1924         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1925         * page/FrameView.cpp:
1926         (WebCore::FrameView::contentsInCompositedLayer):
1927         (WebCore::FrameView::scrollContentsFastPath):
1928         Updated these call sites to use RenderObject::isComposited().
1929
1930         * dom/Element.cpp:
1931         (WebCore::Element::scrollByUnits):
1932         Call directly RenderBox::scroll instead of calling the layer.
1933         This actually fixes a crasher that slipped through the cracks.
1934
1935         * editing/visible_units.cpp:
1936         * html/shadow/TextControlInnerElements.cpp:
1937         * page/ContextMenuController.cpp:
1938         * page/FocusController.cpp:
1939         * page/Frame.cpp:
1940         * page/GestureTapHighlighter.cpp:
1941         * page/PrintContext.cpp:
1942         * plugins/mac/PluginViewMac.mm:
1943         Removed unneeded #include.
1944
1945         * plugins/gtk/PluginViewGtk.cpp:
1946         * plugins/qt/PluginViewQt.cpp:
1947         Replaced RenderLayer.h #include with RenderObject.h as
1948         we use RenderObject::absoluteToLocal.
1949
1950         * rendering/RenderObject.cpp:
1951         (WebCore::RenderObject::isComposited):
1952         * rendering/RenderObject.h:
1953         * rendering/RenderView.cpp:
1954         (WebCore::RenderView::hitTest):
1955         * rendering/RenderView.h:
1956         Added 2 new functions that pipe through the RenderLayer.
1957
1958 2012-04-12  Pravinin D  <pravind.2k4@gmail.com>
1959
1960         font-size:0 text runs has non zero width in case of Windows Safari.
1961         https://bugs.webkit.org/show_bug.cgi?id=83559
1962
1963         Reviewed by Dan Bernstein.
1964
1965         Test case already exits.
1966         LayoutTest/fast/text/font-size-zero.html
1967
1968         * platform/graphics/win/SimpleFontDataCGWin.cpp:
1969         (WebCore):
1970         (WebCore::SimpleFontData::platformBoundsForGlyph):
1971         (WebCore::SimpleFontData::platformWidthForGlyph):
1972
1973 2012-04-12  Alexei Filippov  <alexeif@chromium.org>
1974
1975         Web Inspector: Move meta node out of nodes in snapshot serialization.
1976         https://bugs.webkit.org/show_bug.cgi?id=83701
1977
1978         Reviewed by Yury Semikhatsky.
1979
1980         * inspector/front-end/HeapSnapshot.js:
1981         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
1982         (WebInspector.HeapSnapshot):
1983
1984 2012-04-12  Yael Aharon  <yael.aharon@nokia.com>
1985
1986         [Qt][WK2] Nested fixed elements scroll too fast
1987         https://bugs.webkit.org/show_bug.cgi?id=83720
1988
1989         Reviewed by Noam Rosenthal.
1990
1991         Before setting the scrollPositionDelta to a fixed layer, check if it has an ancestor which also has fixed position.
1992         If it does, do not set scrollPositionDelta.
1993         Added a flag to TextureMapperLayer and GraphicsLayerTextureMapper indicating if it is a fixed position layer.
1994
1995         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1996         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
1997         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1998         (WebCore::GraphicsLayerTextureMapper::setFixedToViewport):
1999         (WebCore::GraphicsLayerTextureMapper::fixedToViewport):
2000         (GraphicsLayerTextureMapper):
2001         * platform/graphics/texmap/TextureMapperLayer.cpp:
2002         (WebCore::TextureMapperLayer::syncCompositingStateSelf):
2003         (WebCore::TextureMapperLayer::isAncestorFixedToViewport):
2004         (WebCore):
2005         (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2006         * platform/graphics/texmap/TextureMapperLayer.h:
2007         (TextureMapperLayer):
2008         (WebCore::TextureMapperLayer::setFixedToViewport):
2009
2010 2012-04-12  Charles Wei  <charles.wei@torchmobile.com.cn>
2011
2012         [BlackBerry] Revert the patch for 82764
2013         https://bugs.webkit.org/show_bug.cgi?id=83767
2014
2015         Reviewed by Rob Buis.
2016
2017         Revert the patch for 82764, which is causing misfunction.
2018         The internal commit is: 800213f5
2019
2020         * plugins/blackberry/PluginViewBlackBerry.cpp:
2021         (WebCore::PluginView::setNPWindowIfNeeded):
2022         (WebCore::PluginView::platformGetValue):
2023         (WebCore::PluginView::platformDestroy):
2024         * plugins/blackberry/PluginViewPrivateBlackBerry.h:
2025         (PluginViewPrivate):
2026
2027 2012-04-12  Kent Tamura  <tkent@chromium.org>
2028
2029         [Chromium] Enable INPUT_TYPE_DATE
2030         https://bugs.webkit.org/show_bug.cgi?id=83761
2031
2032         Reviewed by Kentaro Hara.
2033
2034         * html/DateInputType.cpp:
2035         Touch it to avoid build issues. No code changes.
2036         * html/DateInputType.h: ditto.
2037         * html/InputType.cpp: ditto.
2038
2039 2012-04-12  Yury Semikhatsky  <yurys@chromium.org>
2040
2041         Web Inspector: annotate the rest of profiler front-end for closure compiler
2042         https://bugs.webkit.org/show_bug.cgi?id=83781
2043
2044         All remaining Profiler front-end files are annotated for closure compiler.
2045
2046         Reviewed by Pavel Feldman.
2047
2048         * inspector/compile-front-end.py:
2049         * inspector/front-end/CSSSelectorProfileView.js:
2050         * inspector/front-end/HeapSnapshotProxy.js:
2051         (WebInspector.HeapSnapshotWorkerWrapper):
2052         (WebInspector.HeapSnapshotWorkerWrapper.prototype.postMessag):
2053         (WebInspector.HeapSnapshotWorkerWrapper.prototype.terminate):
2054         (WebInspector.HeapSnapshotWorker):
2055         (WebInspector.HeapSnapshotProxyObject.prototype.callFactoryMethod):
2056         (WebInspector.HeapSnapshotProxyObject.prototype.callMethod):
2057         * inspector/front-end/HeapSnapshotWorkerDispatcher.js:
2058         * inspector/front-end/TopDownProfileDataGridTree.js:
2059         (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
2060         * inspector/front-end/externs.js:
2061         (addEventListener):
2062
2063 2012-04-12  Sam D  <dsam2912@gmail.com>
2064
2065         Web Inspector: Node Value should not get corrupt while jump over different matches in search.
2066         https://bugs.webkit.org/show_bug.cgi?id=83758
2067         
2068         The order in which updateEntryHide is called for cached
2069         highlightResults is changed in "last changed first corrected" order to preserve the semantic of node.
2070
2071         Reviewed by Pavel Feldman.
2072
2073         No new tests required.
2074
2075         * inspector/front-end/ElementsTreeOutline.js:
2076         (WebInspector.ElementsTreeElement.prototype._updateSearchHighlight):
2077
2078 2012-03-05  Pierre Rossi  <pierre.rossi@gmail.com>
2079
2080         [Qt] Use QRawFont when building with Qt 5
2081         https://bugs.webkit.org/show_bug.cgi?id=78001
2082
2083         Up until now, fonts in the Qt port have been handled via
2084         the QFont API. QRawFont offers a lower-level API enabling
2085         us to be more in line with what other WebKit ports do.
2086         This patch proceeds to switching over to QRawFont, and
2087         effectively use an earlier change by Andreas Kling
2088         that remained guarded up until now.
2089
2090         Reviewed by Simon Hausmann.
2091
2092         No new tests since this is refactoring of existing
2093         functionality.
2094
2095         * Target.pri:
2096         * platform/graphics/Font.cpp:
2097         (WebCore::Font::drawText):
2098         * platform/graphics/Font.h:
2099         (Font):
2100         (WebCore):
2101         (WebCore::Font::syntheticFont): Added.
2102         * platform/graphics/SimpleFontData.h:
2103         (SimpleFontData):
2104         (WebCore::SimpleFontData::getQtRawFont):
2105         (WebCore):
2106         * platform/graphics/qt/FontCacheQt.cpp:
2107         (WebCore::rawFontForCharacters):
2108         (WebCore):
2109         (WebCore::FontCache::getFontDataForCharacters):
2110         (WebCore::FontCache::createFontPlatformData):
2111         * platform/graphics/qt/FontCustomPlatformData.h:
2112         (FontCustomPlatformData):
2113         * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
2114         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
2115         (WebCore::FontCustomPlatformData::fontPlatformData):
2116         (WebCore::createFontCustomPlatformData):
2117         * platform/graphics/qt/FontPlatformData.h:
2118         (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
2119         (FontPlatformDataPrivate):
2120         (FontPlatformData):
2121         * platform/graphics/qt/FontPlatformDataQt.cpp:
2122         (WebCore::FontPlatformData::FontPlatformData):
2123         (WebCore):
2124         (WebCore::FontPlatformData::operator==):
2125         * platform/graphics/qt/FontQt.cpp:
2126         (WebCore::fillPenForContext):
2127         (WebCore::pathForGlyphs):
2128         (WebCore::drawQtGlyphRun):
2129         (WebCore::Font::drawComplexText):
2130         (WebCore::Font::floatWidthForComplexText):
2131         (WebCore::Font::offsetForPositionForComplexText):
2132         (WebCore::Font::selectionRectForComplexText):
2133         (WebCore::Font::initFormatForTextLayout):
2134         (WebCore):
2135         (WebCore::Font::drawGlyphs):
2136         (WebCore::Font::syntheticFont):
2137         (WebCore::Font::rawFont):
2138         * platform/graphics/qt/FontQt4.cpp: Copied from Source/WebCore/platform/graphics/qt/FontQt.cpp.
2139         (WebCore):
2140         (WebCore::fromRawDataWithoutRef):
2141         (WebCore::setupLayout):
2142         (WebCore::fillPenForContext):
2143         (WebCore::strokePenForContext):
2144         (WebCore::drawTextCommon):
2145         (WebCore::Font::drawComplexText):
2146         (WebCore::Font::floatWidthForComplexText):
2147         (WebCore::Font::offsetForPositionForComplexText):
2148         (WebCore::Font::selectionRectForComplexText):
2149         (WebCore::Font::canReturnFallbackFontsForComplexText):
2150         (WebCore::Font::drawEmphasisMarksForComplexText):
2151         (WebCore::Font::drawSimpleText):
2152         (WebCore::Font::offsetForPositionForSimpleText):
2153         (WebCore::Font::floatWidthForSimpleText):
2154         (WebCore::Font::selectionRectForSimpleText):
2155         (WebCore::Font::canExpandAroundIdeographsInComplexText):
2156         (WebCore::Font::primaryFontHasGlyphForCharacter):
2157         (WebCore::Font::emphasisMarkAscent):
2158         (WebCore::Font::emphasisMarkDescent):
2159         (WebCore::Font::emphasisMarkHeight):
2160         (WebCore::Font::drawEmphasisMarksForSimpleText):
2161         (WebCore::Font::font):
2162         * platform/graphics/qt/SimpleFontDataQt.cpp:
2163         (WebCore::SimpleFontData::platformInit):
2164         * platform/qt/RenderThemeQt.cpp:
2165         (WebCore::RenderThemeQt::fileListNameForWidth):
2166         * platform/qt/RenderThemeQtMobile.cpp:
2167         (WebCore::RenderThemeQtMobile::computeSizeBasedOnStyle):
2168
2169 2012-04-12  JungJik Lee  <jungjik.lee@samsung.com>
2170
2171         Calculate the cover rect of tiled backing store with the trajectory vector.
2172         https://bugs.webkit.org/show_bug.cgi?id=83462
2173
2174         Reviewed by Kenneth Rohde Christiansen.
2175
2176         When trajectory vector is not zero, it is able to calculate the proper cover area.
2177         No new tests - no new functionality.
2178
2179         * platform/graphics/TiledBackingStore.cpp:
2180         (WebCore::TiledBackingStore::computeCoverAndKeepRect):
2181
2182 2012-04-12  Pavel Feldman  <pfeldman@chromium.org>
2183
2184         Web Inspector: extracting NetworkRequest from Resource (step 2)
2185         https://bugs.webkit.org/show_bug.cgi?id=83773
2186
2187         Reviewed by Yury Semikhatsky.
2188
2189         This step moves request-related views from being resource-based to request-based.
2190         See https://bugs.webkit.org/show_bug.cgi?id=61363 for the meta bug.
2191
2192         * WebCore.gypi:
2193         * WebCore.vcproj/WebCore.vcproj:
2194         * inspector/compile-front-end.py:
2195         * inspector/front-end/ContentProviders.js:
2196         (WebInspector.ResourceContentProvider):
2197         (WebInspector.ResourceContentProvider.prototype.requestContent):
2198         (WebInspector.ResourceContentProvider.prototype.searchInContent):
2199         * inspector/front-end/NetworkItemView.js:
2200         (WebInspector.NetworkItemView):
2201         (WebInspector.RequestContentView):
2202         (WebInspector.RequestContentView.prototype._ensureInnerViewShown):
2203         * inspector/front-end/NetworkPanel.js:
2204         (WebInspector.NetworkLogView.prototype._showPopover):
2205         * inspector/front-end/NetworkRequest.js:
2206         (WebInspector.NetworkRequest.prototype.resource):
2207         * inspector/front-end/RawSourceCode.js:
2208         (WebInspector.RawSourceCode.prototype._createContentProvider):
2209         * inspector/front-end/RequestCookiesView.js: Renamed from Source/WebCore/inspector/front-end/ResourceCookiesView.js.
2210         (WebInspector.RequestCookiesView):
2211         * inspector/front-end/RequestHTMLView.js: Renamed from Source/WebCore/inspector/front-end/ResourceHTMLView.js.
2212         (WebInspector.RequestHTMLView):
2213         (WebInspector.RequestHTMLView.prototype._createIFrame):
2214         * inspector/front-end/RequestHeadersView.js: Renamed from Source/WebCore/inspector/front-end/ResourceHeadersView.js.
2215         (WebInspector.RequestHeadersView):
2216         * inspector/front-end/RequestJSONView.js: Renamed from Source/WebCore/inspector/front-end/ResourceJSONView.js.
2217         (WebInspector.RequestJSONView):
2218         (WebInspector.RequestJSONView.parseJSON.WebInspector.RequestJSONView.parseJSONP):
2219         * inspector/front-end/RequestPreviewView.js: Renamed from Source/WebCore/inspector/front-end/ResourcePreviewView.js.
2220         (WebInspector.RequestPreviewView):
2221         (WebInspector.RequestPreviewView.prototype.contentLoaded):
2222         (WebInspector.RequestPreviewView.prototype._createPreviewView):
2223         * inspector/front-end/RequestResponseView.js: Renamed from Source/WebCore/inspector/front-end/ResourceResponseView.js.
2224         (WebInspector.RequestResponseView):
2225         (WebInspector.RequestResponseView.prototype.get sourceView):
2226         (WebInspector.RequestResponseView.prototype.contentLoaded):
2227         * inspector/front-end/RequestTimingView.js: Renamed from Source/WebCore/inspector/front-end/ResourceTimingView.js.
2228         (WebInspector.RequestTimingView):
2229         (WebInspector.RequestTimingView.prototype._refresh):
2230         * inspector/front-end/RequestView.js: Copied from Source/WebCore/inspector/front-end/NetworkRequest.js.
2231         (WebInspector.RequestView):
2232         (WebInspector.RequestView.prototype.hasContent):
2233         (WebInspector.RequestView.hasTextContent):
2234         (WebInspector.RequestView.nonSourceViewForRequest):
2235         * inspector/front-end/ResourceView.js:
2236         (WebInspector.ResourceSourceFrame._canonicalMIMEType):
2237         (WebInspector.ResourceSourceFrame._mimeTypeForResource):
2238         (WebInspector.ResourceSourceFrame.prototype.requestContent):
2239         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
2240         (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent):
2241         * inspector/front-end/WebKit.qrc:
2242         * inspector/front-end/inspector.html:
2243
2244 2012-04-12  Yury Semikhatsky  <yurys@chromium.org>
2245
2246         Unreviewed. Fix a couple of compiler annotations after r113963.
2247
2248         * inspector/front-end/TopDownProfileDataGridTree.js:
2249         (WebInspector.TopDownProfileDataGridTree):
2250         (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
2251
2252 2012-04-11  Yury Semikhatsky  <yurys@chromium.org>
2253
2254         Web Inspector: add closure compiler annotations for profiler code
2255         https://bugs.webkit.org/show_bug.cgi?id=83700
2256
2257         Basic type annotations are added to most of the profiler front-end. Some
2258         dead code removed.
2259
2260         Reviewed by Pavel Feldman.
2261
2262         * inspector/compile-front-end.py:
2263         * inspector/front-end/BinarySearch.js:
2264         (Object.defineProperty):
2265         * inspector/front-end/BottomUpProfileDataGridTree.js:
2266         (WebInspector.BottomUpProfileDataGridNode.prototype._restore):
2267         (WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate):
2268         (WebInspector.BottomUpProfileDataGridNode.prototype._willHaveChildren):
2269         (WebInspector.BottomUpProfileDataGridTree):
2270         * inspector/front-end/DataGrid.js:
2271         * inspector/front-end/DetailedHeapshotGridNodes.js:
2272         (WebInspector.HeapSnapshotInstanceNode.prototype._createChildNode):
2273         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.firstProviderPopulated):
2274         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren.else.firstProviderPopulated):
2275         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren):
2276         * inspector/front-end/DetailedHeapshotView.js:
2277         (WebInspector.DetailedHeapshotView.prototype._changeBase):
2278         (WebInspector.DetailedHeapshotView.prototype._setRetainmentDataGridSource):
2279         (WebInspector.DetailedHeapshotView.prototype._helpClicked.appendHelp):
2280         (WebInspector.DetailedHeapshotView.prototype._helpClicked):
2281         * inspector/front-end/HeapSnapshot.js:
2282         (WebInspector.HeapSnapshot):
2283         (HeapSnapshotMetainfo):
2284         (WebInspector.HeapSnapshot.prototype._buildRetainers):
2285         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
2286         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
2287         * inspector/front-end/ProfileDataGridTree.js:
2288         (WebInspector.ProfileDataGridNode.prototype.insertChild):
2289         (WebInspector.ProfileDataGridNode.prototype.removeChild):
2290         (WebInspector.ProfileDataGridNode.prototype.removeChildren):
2291         (WebInspector.ProfileDataGridNode.prototype._populate):
2292         (WebInspector.ProfileDataGridTree.propertyComparator):
2293         * inspector/front-end/ProfileView.js:
2294         * inspector/front-end/ProfilesPanel.js:
2295         (WebInspector.ProfileHeader):
2296         (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot.parsed):
2297         (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot):
2298         (WebInspector.ProfilesPanel.prototype.performSearch.finishedCallback):
2299         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
2300         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
2301         (WebInspector.ProfilerDispatcher.prototype.addProfileHeader):
2302         * inspector/front-end/TopDownProfileDataGridTree.js:
2303         (WebInspector.TopDownProfileDataGridTree):
2304         (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
2305         * inspector/front-end/externs.js:
2306         (Array.prototype.binaryIndexOf):
2307         (Array.prototype.sortRange):
2308         (WebInspector.CSSSelectorProfileType):
2309         (WebInspector.HeapSnapshotWorker):
2310         (WebInspector.HeapSnapshotWorker.prototype.createObject):
2311         (WebInspector.HeapSnapshotWorker.prototype.startCheckingForLongRunningCalls):
2312         * inspector/front-end/heapProfiler.css:
2313
2314 2012-04-12  Zalan Bujtas  <zbujtas@gmail.com>
2315
2316         [Qt][WK2] Zoom gesture with double tap crashes on iframe when main frame has scroll offset.
2317         https://bugs.webkit.org/show_bug.cgi?id=83428
2318
2319         Reviewed by Kenneth Rohde Christiansen.
2320
2321         When delegate scrolling is on, the frame view needs to ignore scrolling offset when converting
2322         coordinates. It is already done at ScrollView base class and this patch copies the logic to the
2323         FrameView subclass.
2324         Also make sure that TouchAdjustment's findBest*() functions' return value are not ignored by the caller.
2325
2326         Test: touchadjustment/iframe-with-mainframe-scroll-offset.html
2327
2328         * page/EventHandler.cpp:
2329         (WebCore::EventHandler::bestClickableNodeForTouchPoint):
2330         (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
2331         * page/EventHandler.h:
2332         (EventHandler):
2333         * page/FrameView.cpp:
2334         (WebCore::FrameView::convertFromRenderer):
2335         (WebCore::FrameView::convertToRenderer):
2336         * page/GestureTapHighlighter.cpp:
2337         * testing/Internals.cpp:
2338         (WebCore::Internals::setDelegatesScrolling):
2339         (WebCore::Internals::touchPositionAdjustedToBestClickableNode):
2340         (WebCore::Internals::bestZoomableAreaForTouchPoint):
2341         * testing/Internals.h:
2342         (Internals):
2343         * testing/Internals.idl:
2344
2345 2012-04-12  Zoltan Horvath  <zoltan@webkit.org>
2346
2347         [Qt] Two canvas tests fail with QT_IMAGE_DECODER=0 setup
2348         https://bugs.webkit.org/show_bug.cgi?id=83764
2349
2350         The following tests were failed after r108792:
2351         - canvas-toDataURL-case-insensitive-mimetype.html
2352         - toDataURL-supportedTypes.html 
2353         because supportedImageMIMETypesForEncoding wasn't filled
2354         with MIME types in case of QT_IMAGE_DECODER=0 build setup.
2355
2356         Reviewed by Csaba Osztrogonác.
2357
2358         Fixes existing tests.
2359
2360         * platform/MIMETypeRegistry.cpp:
2361         (WebCore::initializeSupportedImageMIMETypesForEncoding):
2362
2363 2012-04-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2364
2365         Unreviewed, rolling out r113931.
2366         http://trac.webkit.org/changeset/113931
2367         https://bugs.webkit.org/show_bug.cgi?id=83766
2368
2369         broke 4 tests on JSC platforms (Requested by philn-tp on
2370         #webkit).
2371
2372         * bindings/scripts/CodeGeneratorJS.pm:
2373         (GenerateHeader):
2374         (GenerateImplementation):
2375         * bindings/scripts/CodeGeneratorV8.pm:
2376         (GenerateNamedConstructorCallback):
2377         (GenerateImplementation):
2378         * bindings/scripts/IDLAttributes.txt:
2379         * bindings/scripts/test/JS/JSTestObj.cpp:
2380         (WebCore::JSTestObj::createPrototype):
2381         * bindings/scripts/test/JS/JSTestObj.h:
2382         * bindings/scripts/test/TestObj.idl:
2383         * bindings/scripts/test/V8/V8Float64Array.cpp:
2384         (WebCore):
2385         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2386         (WebCore):
2387         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2388         (WebCore):
2389         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2390         (WebCore):
2391         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2392         (WebCore):
2393         * bindings/scripts/test/V8/V8TestInterface.cpp:
2394         (WebCore):
2395         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2396         (WebCore):
2397         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2398         (WebCore):
2399         * bindings/scripts/test/V8/V8TestObj.cpp:
2400         (WebCore):
2401         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2402         (WebCore):
2403         * bindings/v8/NPV8Object.cpp:
2404         (WebCore::npObjectTypeInfo):
2405         * bindings/v8/V8BindingPerContextData.cpp:
2406         (WebCore::V8BindingPerContextData::init):
2407         (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
2408         (WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
2409         * bindings/v8/V8BindingPerContextData.h:
2410         (V8BindingPerContextData):
2411         * bindings/v8/V8HiddenPropertyName.h:
2412         (WebCore):
2413         * bindings/v8/WrapperTypeInfo.h:
2414         (WrapperTypeInfo):
2415         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2416         (WebCore):
2417         * dom/NodeList.idl:
2418
2419 2012-04-12  Charles Wei  <charles.wei@torchmobile.com.cn>
2420
2421         [BlackBerry] Upstreaming BlackBerry-specific changes to PluginView -- remove unused functions
2422         https://bugs.webkit.org/show_bug.cgi?id=83756
2423
2424         Reviewed by George Staikos.
2425
2426         PluginView::halt(), PluginView::restart() have been removed from
2427         upstreaming code, should remove them from BlackBerry porting also.
2428
2429         * plugins/blackberry/PluginViewBlackBerry.cpp:
2430
2431 2012-04-12  Kenichi Ishibashi  <bashi@chromium.org>
2432
2433         [Chromium] The size of glyphStorage should be passed to substituteWithVerticalGlyphs()
2434         https://bugs.webkit.org/show_bug.cgi?id=83751
2435
2436         Reviewed by Kent Tamura.
2437
2438         The last argument of substituteWithVerticalGlyphs() should be
2439         the size of |glyphStorage|.
2440
2441         No new tests because we can't test the fix by layout tests.
2442         I confirmed the fix with ASAN.
2443
2444         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:
2445         (WebCore::GlyphPage::fill):
2446
2447 2012-04-12  Jason Liu  <jason.liu@torchmobile.com.cn>
2448
2449         [BlackBerry] We shouldn't set empty Content-Length & Content-Type to a request's headers.
2450         https://bugs.webkit.org/show_bug.cgi?id=83349
2451
2452         When there is a redirection for a POST request, we change POST to GET and set
2453         Content-Length/Content-Type to empty strings.
2454         We should remove these headers instead of adding empty strings.
2455
2456         Reviewed by George Staikos.
2457
2458         No new tests. Refactor.
2459
2460         * platform/network/blackberry/NetworkJob.cpp:
2461         (WebCore::NetworkJob::handleRedirect):
2462         * platform/network/blackberry/ResourceRequest.h:
2463         (ResourceRequest):
2464         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2465         (WebCore::ResourceRequest::clearHTTPContentLength):
2466         (WebCore):
2467         (WebCore::ResourceRequest::clearHTTPContentType):
2468
2469 2012-04-12  Noel Gordon  <noel.gordon@gmail.com>
2470
2471         [Qt] ImageBuffer: Canonical mimeType for encoding implies startsWith('image/')
2472         https://bugs.webkit.org/show_bug.cgi?id=83746
2473
2474         Reviewed by Simon Hausmann.
2475
2476         Canonical image mimeTypes begin with "image/", and this is tested by an ASSERT
2477         guard in toDataURL(): that checks the WebCore mimeType registry for image-for-
2478         encoding mimeType. There is no need to also test mimeType.startsWith("image/")
2479         since that is a given.
2480
2481         No new tests. Covered by existing fast/canvas/*toDataURL* tests.
2482
2483         * platform/graphics/qt/ImageBufferQt.cpp:
2484         (WebCore::ImageBuffer::toDataURL):
2485
2486 2012-04-11  Adam Barth  <abarth@webkit.org>
2487
2488         Implement Location.ancestorOrigins
2489         https://bugs.webkit.org/show_bug.cgi?id=83493
2490
2491         Reviewed by David Levin.
2492
2493         Test: fast/dom/Window/Location/ancestor-origins.html
2494
2495         This patch implements Location.ancestorOrigins(), which returns a list
2496         of the origins of the enclosing frames.  This API has been discussed
2497         both on webkit-dev (see discussion following
2498         https://lists.webkit.org/pipermail/webkit-dev/2012-March/020090.html)
2499         and on the whatwg list (see discussion following
2500         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035188.html).
2501
2502         * page/Location.cpp:
2503         (WebCore::Location::ancestorOrigins):
2504         (WebCore):
2505         * page/Location.h:
2506         (Location):
2507         * page/Location.idl:
2508
2509 2012-04-11  Raymond Liu  <raymond.liu@intel.com>
2510
2511         AudioContext createChannelSplitter() method should have optional argument for number of outputs
2512         https://bugs.webkit.org/show_bug.cgi?id=83648
2513
2514         Reviewed by Chris Rogers.
2515
2516         Check https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html for the optional argument.
2517
2518         Test: webaudio/audiochannelsplitter.html
2519
2520         * Modules/webaudio/AudioChannelSplitter.cpp:
2521         (WebCore::AudioChannelSplitter::create):
2522         (WebCore::AudioChannelSplitter::AudioChannelSplitter):
2523         (WebCore::AudioChannelSplitter::process):
2524         * Modules/webaudio/AudioChannelSplitter.h:
2525         (AudioChannelSplitter):
2526         * Modules/webaudio/AudioContext.cpp:
2527         (WebCore::AudioContext::createChannelSplitter):
2528         (WebCore):
2529         * Modules/webaudio/AudioContext.h:
2530         (AudioContext):
2531         * Modules/webaudio/AudioContext.idl:
2532
2533 2012-04-11  Charles Wei  <charles.wei@torchmobile.com.cn>
2534
2535         [BlackBerry] Revert the changes that depend on Event changes, which is reverted already internally.
2536         https://bugs.webkit.org/show_bug.cgi?id=83456
2537
2538         Reviewed by George Staikos.
2539
2540         No new tests, just to make BlackBerry-porting to build.
2541
2542         * plugins/blackberry/PluginViewBlackBerry.cpp:
2543         (WebCore::PluginView::handleWheelEvent):
2544         (WebCore::PluginView::handleTouchEvent):
2545         (WebCore::PluginView::handleMouseEvent):
2546
2547 2012-04-11  Jason Liu  <jason.liu@torchmobile.com.cn>
2548
2549         [BlackBerry] There shouldn't be two or more Accept-Language in platformRequest's headerList.
2550         https://bugs.webkit.org/show_bug.cgi?id=83670
2551
2552         FrameLoaderClientBlackBerry::dispatchWillSendRequest and NetworkManager::startJob will call
2553         ResourceRequest::initializePlatformRequest. Accept-Language is added two times.
2554         We should avoid the second adding to improve performance.
2555
2556         Reviewed by Rob Buis.
2557
2558         No new tests. Refactor.
2559
2560         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2561         (WebCore::ResourceRequest::initializePlatformRequest):
2562
2563 2012-04-11  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2564
2565         [BlackBerry] MMRPlayer will hang webkit thread when retrieving media metadata
2566         https://bugs.webkit.org/show_bug.cgi?id=80978
2567
2568         Reviewed by Rob Buis.
2569
2570         RIM PR: 143471
2571         Implemented the interface function onWaitMetadataNotified()
2572         which starts a timer to wait for the metadata retrieving to
2573         finish, and pops up a dialog to notify the user what to do
2574         if there still is no metadata when the timer fires.
2575
2576         This patch also contributed by Max Feil <mfeil@rim.com>.
2577         Internally reviewed by Max Feil.
2578
2579         Test: http/tests/media/video-throttled-load-metadata.html
2580
2581         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2582         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2583         (WebCore):
2584         (WebCore::MediaPlayerPrivate::onWaitMetadataNotified):
2585         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
2586         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
2587         (MediaPlayerPrivate):
2588
2589 2012-04-11  Jer Noble  <jer.noble@apple.com>
2590
2591         Layout Test webaudio/* is flaky
2592         https://bugs.webkit.org/show_bug.cgi?id=83624
2593
2594         Reviewed by Chris Rogers.
2595
2596         No new tests; fixes webaudio/ layout tests.
2597
2598         A merge error led to an Mutex overunlock situation, which caused all future mutex trylock
2599         attempts to fail, but only on Windows. Remove the extraneous mutex unlock().
2600
2601         * Modules/webaudio/AudioBufferSourceNode.cpp:
2602         (WebCore::AudioBufferSourceNode::process):
2603
2604 2012-04-11  Levi Weintraub  <leviw@chromium.org>
2605
2606         Correct pixel snapping error in RenderBox::pixelSnappedClientWidth/Height
2607         https://bugs.webkit.org/show_bug.cgi?id=83621
2608
2609         Reviewed by Eric Seidel.
2610
2611         Though the problem wouldn't yet manifest itself since we haven't flipped the switch on sub-pixel
2612         layout, clientWidth and clientHeight, when pixel snapped, need to take the RenderBox's location
2613         into account. Previously, ClientLeft/Top were used, but these are simply the width of the borders,
2614         and don't include the box's sub-pixel location, which is needed to properly snap the width/height.
2615
2616         No new tests. Untestable until we switch to FractionalLayoutUnits. A test case that covers this
2617         is in the subpixellayout branch and will land with the switch.
2618
2619         * rendering/RenderBox.cpp:
2620         (WebCore::RenderBox::pixelSnappedClientWidth):
2621         (WebCore::RenderBox::pixelSnappedClientHeight):
2622         (WebCore::RenderBox::scrollWidth): Replacing a raw zero with ZERO_LAYOUT_UNIT.
2623
2624 2012-04-11  Erik Arvidsson  <arv@chromium.org>
2625
2626         Add support for [ArrayClass] and use that on NodeList
2627         https://bugs.webkit.org/show_bug.cgi?id=81573
2628
2629         Reviewed by Adam Barth.
2630
2631         With this patch NodeLists now have Array.prototype on their prototype chain which allows
2632         methods such as forEach and map to work on NodeLists.
2633
2634         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-nodelist
2635
2636         For V8 we need to set a flag on the WrapperTypeInfo since V8 uses FunctionTemplates which
2637         does not allow setting the prototype to a non FunctionTemplate so the prototype is therefore
2638         set when the constructor is created.
2639
2640         For JSC we just pass the right prototype object when creating the NodeList prototype. JSC has
2641         a bug (81588) that prevents toString to work as specced on Array.prototype.toString. This
2642         causes test failures in the tests until that has been fixed.
2643
2644         Test: fast/dom/NodeList/node-list-array-class.html
2645
2646         * bindings/scripts/CodeGeneratorJS.pm:
2647         (GenerateHeader): Include ArrayPrototype.h if an ArrayClass.
2648         (GenerateImplementation): If ArrayClass use arrayPrototype as prototype.
2649         * bindings/scripts/CodeGeneratorV8.pm:
2650         (GenerateNamedConstructorCallback):
2651         (GenerateImplementation): Adds a flag to the WrapperTypeInfo.
2652         * bindings/scripts/IDLAttributes.txt: Adds new attribute: ArrayClass.
2653         * bindings/scripts/test/JS/JSTestObj.cpp:
2654         (WebCore::JSTestObj::createPrototype):
2655         * bindings/scripts/test/JS/JSTestObj.h:
2656         * bindings/scripts/test/TestObj.idl:
2657         * bindings/scripts/test/V8/V8Float64Array.cpp:
2658         (WebCore):
2659         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2660         (WebCore):
2661         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2662         (WebCore):
2663         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2664         (WebCore):
2665         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2666         (WebCore):
2667         * bindings/scripts/test/V8/V8TestInterface.cpp:
2668         (WebCore):
2669         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2670         (WebCore):
2671         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2672         (WebCore):
2673         * bindings/scripts/test/V8/V8TestObj.cpp:
2674         (WebCore):
2675         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2676         (WebCore):
2677         * bindings/v8/V8BindingPerContextData.cpp:
2678         (WebCore::V8BindingPerContextData::init): Get the array prototype too.
2679         (WebCore::V8BindingPerContextData::createWrapperFromCacheSlowCase):
2680         (WebCore::V8BindingPerContextData::constructorForTypeSlowCase): If this is an ArrayClass we need to
2681         set the [[Prototype]].
2682         * bindings/v8/V8BindingPerContextData.h:
2683         (V8BindingPerContextData):
2684         * bindings/v8/V8HiddenPropertyName.h:
2685         (WebCore):
2686         * bindings/v8/WrapperTypeInfo.h:
2687         (WrapperTypeInfo):
2688         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2689         (WebCore):
2690         * dom/NodeList.idl:
2691
2692 2012-04-11  Antti Koivisto  <antti@apple.com>
2693
2694         Try to fix build with XSLT disabled.
2695
2696         Not reviewed.
2697
2698         * dom/ProcessingInstruction.cpp:
2699         (WebCore::ProcessingInstruction::parseStyleSheet):
2700
2701 2012-04-11  Erik Arvidsson  <arv@chromium.org>
2702
2703         File API does not support DOM events (like addEventListener)
2704         https://bugs.webkit.org/show_bug.cgi?id=83688
2705
2706         Reviewed by Adam Barth.
2707
2708         The IDL files where missing addEventListener, removeEventListener and dispatchEvent.
2709
2710         Tests: fast/filesystem/file-writer-events.html
2711                fast/speech/scripted/basics.html
2712
2713         * Modules/filesystem/FileWriter.idl: Add missing methods.
2714         * Modules/mediastream/LocalMediaStream.idl: This one gets its EventTarget from MediaStream.
2715         * Modules/speech/SpeechRecognition.idl: Add missing methods.
2716
2717 2012-04-11  Andy Estes  <aestes@apple.com>
2718
2719         LayerFlushScheduler's run loop observer should have an autorelease pool.
2720         https://bugs.webkit.org/show_bug.cgi?id=83729
2721
2722         Reviewed by Dan Bernstein.
2723
2724         LayerFlushScheduler's run loop observer needs an autorelease pool.
2725         NSApplication creates one, but it is only drained after processing user
2726         input. In the case where a WebView is displaying composited content but
2727         not receiving user input, NSApplication's pool will accumulate a large
2728         number of objects autoreleased by the run loop observer. Have
2729         LayerFlushScheduler create an autorelease pool that is drained after
2730         each run loop observer callback.
2731
2732         * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
2733         (WebCore::LayerFlushScheduler::runLoopObserverCallback):
2734
2735 2012-04-11  Antti Koivisto  <antti@apple.com>
2736
2737         Split CSSStyleSheet into internal and CSSOM type
2738         https://bugs.webkit.org/show_bug.cgi?id=83612
2739         
2740         Reviewed by Andreas Kling.
2741
2742         This will complete the separation of our style sheet data structures from CSSOM.
2743         
2744         The internal parts of CSSStyleSheet move to StyleSheetInternal. CSS parser
2745         and style selector will now operate on internal types. Unlike other CSSOM types
2746         CSSStyleSheets are still always instantiated to hold the top level author stylesheets
2747         (by Nodes).
2748
2749         * css/CSSFontFaceSrcValue.cpp:
2750         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
2751         * css/CSSFontFaceSrcValue.h:
2752         (CSSFontFaceSrcValue):
2753         * css/CSSImportRule.cpp:
2754         (WebCore::StyleRuleImport::create):
2755         (WebCore::StyleRuleImport::StyleRuleImport):
2756         (WebCore::StyleRuleImport::setCSSStyleSheet):
2757         (WebCore::StyleRuleImport::requestStyleSheet):
2758         (WebCore::CSSImportRule::~CSSImportRule):
2759         (WebCore):
2760         (WebCore::CSSImportRule::styleSheet):
2761         * css/CSSImportRule.h:
2762         (WebCore):
2763         (StyleRuleImport):
2764         (WebCore::StyleRuleImport::parentStyleSheet):
2765         (WebCore::StyleRuleImport::styleSheet):
2766         (CSSImportRule):
2767         * css/CSSMediaRule.cpp:
2768         (WebCore::CSSMediaRule::insertRule):
2769         * css/CSSParser.cpp:
2770         (WebCore::CSSParser::parseSheet):
2771         (WebCore::CSSParser::parseRule):
2772         (WebCore::CSSParser::parseKeyframeRule):
2773         (WebCore::CSSParser::parseFontFaceValue):
2774         (WebCore::CSSParser::parseValue):
2775         (WebCore::CSSParser::parseSelector):
2776         (WebCore::CSSParser::parseDeclaration):
2777         (WebCore::CSSParser::setStyleSheet):
2778         (WebCore::CSSParser::parseFlowThread):
2779         * css/CSSParser.h:
2780         (WebCore):
2781         (CSSParser):
2782         * css/CSSPrimitiveValue.cpp:
2783         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
2784         * css/CSSPrimitiveValue.h:
2785         (CSSPrimitiveValue):
2786         * css/CSSReflectValue.cpp:
2787         (WebCore::CSSReflectValue::addSubresourceStyleURLs):
2788         * css/CSSReflectValue.h:
2789         (CSSReflectValue):
2790         * css/CSSRule.h:
2791         (CSSRule):
2792         * css/CSSStyleSelector.cpp:
2793         (RuleSet):
2794         (WebCore):
2795         (WebCore::CSSStyleSelector::CSSStyleSelector):
2796         (WebCore::CSSStyleSelector::addAuthorRulesAndCollectUserRulesFromSheets):
2797         (WebCore::CSSStyleSelector::determineScope):
2798         (WebCore::CSSStyleSelector::appendAuthorStylesheets):
2799         (WebCore::parseUASheet):
2800         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2801         * css/CSSStyleSelector.h:
2802         (CSSStyleSelector):
2803         
2804             Add a set for root CSSStyleSheet objects so that the wrappers created in ensureFullCSSOMWrapperForInspector
2805             stay valid.
2806         
2807         * css/CSSStyleSheet.cpp:
2808         (WebCore::StyleSheetInternal::StyleSheetInternal):
2809         (WebCore::StyleSheetInternal::~StyleSheetInternal):
2810         (WebCore::StyleSheetInternal::parserAppendRule):
2811         (WebCore::StyleSheetInternal::createChildRuleCSSOMWrapper):
2812         (WebCore::StyleSheetInternal::ruleCount):
2813         (WebCore::StyleSheetInternal::clearCharsetRule):
2814         (WebCore::StyleSheetInternal::clearRules):
2815         (WebCore::StyleSheetInternal::parserSetEncodingFromCharsetRule):
2816         (WebCore::StyleSheetInternal::wrapperInsertRule):
2817         (WebCore::StyleSheetInternal::wrapperDeleteRule):
2818         (WebCore::StyleSheetInternal::addNamespace):
2819         (WebCore::StyleSheetInternal::determineNamespace):
2820         (WebCore::StyleSheetInternal::parseString):
2821         (WebCore::StyleSheetInternal::parseStringAtLine):
2822         (WebCore::StyleSheetInternal::isLoading):
2823         (WebCore::StyleSheetInternal::checkLoaded):
2824         (WebCore::StyleSheetInternal::notifyLoadedSheet):
2825         (WebCore::StyleSheetInternal::startLoadingDynamicSheet):
2826         (WebCore::StyleSheetInternal::findStyleSheetOwnerNode):
2827         (WebCore::StyleSheetInternal::findDocument):
2828         (WebCore::StyleSheetInternal::setMediaQueries):
2829         (WebCore::StyleSheetInternal::styleSheetChanged):
2830         (WebCore):
2831         (WebCore::StyleSheetInternal::baseURL):
2832         (WebCore::StyleSheetInternal::completeURL):
2833         (WebCore::StyleSheetInternal::addSubresourceStyleURLs):
2834         (WebCore::StyleSheetInternal::parentStyleSheet):
2835         (WebCore::CSSStyleSheet::CSSStyleSheet):
2836         (WebCore::CSSStyleSheet::~CSSStyleSheet):
2837         (WebCore::CSSStyleSheet::setDisabled):
2838         (WebCore::CSSStyleSheet::length):
2839         (WebCore::CSSStyleSheet::item):
2840         (WebCore::CSSStyleSheet::rules):
2841         (WebCore::CSSStyleSheet::insertRule):
2842         (WebCore::CSSStyleSheet::addRule):
2843         (WebCore::CSSStyleSheet::cssRules):
2844         (WebCore::CSSStyleSheet::deleteRule):
2845         (WebCore::CSSStyleSheet::media):
2846         (WebCore::CSSStyleSheet::parentStyleSheet):
2847         * css/CSSStyleSheet.h:
2848         (WebCore):
2849         (WebCore::StyleSheetInternal::create):
2850         (WebCore::StyleSheetInternal::createInline):
2851         (StyleSheetInternal):
2852         (WebCore::StyleSheetInternal::ownerNode):
2853         (WebCore::StyleSheetInternal::clearOwnerNode):
2854         (WebCore::StyleSheetInternal::ownerRule):
2855         (WebCore::StyleSheetInternal::originalURL):
2856         (WebCore::StyleSheetInternal::title):
2857         (WebCore::StyleSheetInternal::setTitle):
2858         (WebCore::StyleSheetInternal::setFinalURL):
2859         (WebCore::StyleSheetInternal::finalURL):
2860         (CSSStyleSheet):
2861         (WebCore::CSSStyleSheet::create):
2862         (WebCore::CSSStyleSheet::removeRule):
2863         (WebCore::CSSStyleSheet::clearOwnerRule):
2864         (WebCore::CSSStyleSheet::styleSheetChanged):
2865         (WebCore::CSSStyleSheet::findDocument):
2866         (WebCore::CSSStyleSheet::internal):
2867         (WebCore::CSSStyleSheet::isCSSStyleSheet):
2868         (WebCore::CSSStyleSheet::type):
2869         * css/CSSValue.cpp:
2870         (WebCore::CSSValue::addSubresourceStyleURLs):
2871         * css/CSSValue.h:
2872         (WebCore):
2873         (CSSValue):
2874         * css/CSSValueList.cpp:
2875         (WebCore::CSSValueList::addSubresourceStyleURLs):
2876         * css/CSSValueList.h:
2877         (CSSValueList):
2878         * css/CSSValuePool.cpp:
2879         (WebCore::CSSValuePool::createFontFaceValue):
2880         * css/CSSValuePool.h:
2881         (WebCore):
2882         (CSSValuePool):
2883         * css/PropertySetCSSStyleDeclaration.cpp:
2884         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
2885         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
2886         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
2887         * css/PropertySetCSSStyleDeclaration.h:
2888         (WebCore):
2889         * css/StylePropertySet.cpp:
2890         (WebCore::StylePropertySet::setProperty):
2891         (WebCore::StylePropertySet::parseDeclaration):
2892         (WebCore::StylePropertySet::addSubresourceStyleURLs):
2893         * css/StylePropertySet.h:
2894         (WebCore):
2895         (StylePropertySet):
2896         * css/StyleSheet.cpp:
2897         (WebCore):
2898         * css/StyleSheet.h:
2899         (StyleSheet):
2900         (WebCore::StyleSheet::media):
2901         (WebCore::StyleSheet::ownerRule):
2902         (WebCore::StyleSheet::isXSLStyleSheet):
2903         * css/WebKitCSSKeyframesRule.cpp:
2904         (WebCore::WebKitCSSKeyframesRule::insertRule):
2905         * dom/DOMImplementation.cpp:
2906         (WebCore::DOMImplementation::createCSSStyleSheet):
2907         * dom/Document.cpp:
2908         (WebCore::Document::updateBaseURL):
2909         (WebCore::Document::pageUserSheet):
2910         (WebCore::Document::pageGroupUserSheets):
2911         (WebCore::Document::addUserSheet):
2912         (WebCore::Document::elementSheet):
2913         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
2914         (WebCore::Document::analyzeStylesheetChange):
2915         * dom/Document.h:
2916         (WebCore):
2917         (Document):
2918         (WebCore::Document::documentUserSheets):
2919         * dom/ElementAttributeData.cpp:
2920         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
2921         * dom/ProcessingInstruction.cpp:
2922         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2923         (WebCore::ProcessingInstruction::parseStyleSheet):
2924         * dom/StyleElement.cpp:
2925         (WebCore::StyleElement::createSheet):
2926         * dom/StyledElement.cpp:
2927         (WebCore::StyledElement::setInlineStyleProperty):
2928         (WebCore::StyledElement::addSubresourceAttributeURLs):
2929         (WebCore):
2930         (WebCore::StyledElement::addPropertyToAttributeStyle):
2931         * dom/StyledElement.h:
2932         (WebCore):
2933         * html/HTMLFontElement.cpp:
2934         (WebCore::HTMLFontElement::collectStyleForAttribute):
2935         * html/HTMLLinkElement.cpp:
2936         (WebCore::HTMLLinkElement::parseAttribute):
2937         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2938         (WebCore::HTMLLinkElement::styleSheetIsLoading):
2939         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
2940         * html/HTMLStyleElement.cpp:
2941         (WebCore::HTMLStyleElement::parseAttribute):
2942         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs):
2943         * inspector/InspectorStyleSheet.cpp:
2944         (WebCore::fillMediaListChain):
2945         (WebCore::InspectorStyle::setPropertyText):
2946         (WebCore::InspectorStyleSheet::styleSheetURL):
2947         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2948         (WebCore::InspectorStyleSheet::ensureSourceData):
2949         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
2950         * page/PageSerializer.cpp:
2951         (WebCore::PageSerializer::serializeCSSStyleSheet):
2952         * svg/SVGStyleElement.cpp:
2953         (WebCore::SVGStyleElement::parseAttribute):
2954         * xml/XSLStyleSheet.h:
2955         (XSLStyleSheet):
2956         (WebCore::XSLStyleSheet::finalURL):
2957         * xml/XSLStyleSheetLibxslt.cpp:
2958         (WebCore::XSLStyleSheet::XSLStyleSheet):
2959         (WebCore::XSLStyleSheet::isLoading):
2960
2961 2012-04-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2962
2963         Unreviewed, rolling out r113912.
2964         http://trac.webkit.org/changeset/113912
2965         https://bugs.webkit.org/show_bug.cgi?id=83727
2966
2967         broke atsui-spacing-features.html on windows (Requested by
2968         simonjam on #webkit).
2969
2970         * platform/graphics/chromium/UniscribeHelper.cpp:
2971         (WebCore::UniscribeHelper::justify):
2972
2973 2012-04-11  Alex Nicolaou  <anicolao@chromium.org>
2974
2975         [chromium] When rendering goes idle, do not count that time against frame rate
2976         https://bugs.webkit.org/show_bug.cgi?id=73454
2977
2978         The FPS counter had a few issues with its reporting. The first
2979         3 swapbuffers are non-blocking and create FPS rates that are
2980         unrealistically high, throwing off the moving averages and
2981         introducing false spikes into the FPS graph. There was also no
2982         way to monitor the smoothness of the animation, or to focus in
2983         on a particular animation or transition.
2984
2985         This patch updates the FPS counter code so that bad data points
2986         are trimmed and not graphed; so that the graph itself is taller
2987         and more legible; so that there is a clear boundary between 40FPS
2988         and better; and to keep statistics on frame rate between
2989         pauses in the activity in the UI so that you can trigger a
2990         transition and read off the average and standard deviation for
2991         that transition to judge it smooth enough or not.
2992
2993
2994         Reviewed by James Robinson.
2995
2996         HUD is not testable in webkit.
2997
2998         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2999         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
3000         (WebCore::CCHeadsUpDisplay::onFrameBegin):
3001         (WebCore::CCHeadsUpDisplay::drawHudContents):
3002         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
3003         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
3004
3005 2012-04-10  Zhenyao Mo  <zmo@google.com>
3006
3007         WebGLRenderingContext should defer caching program info
3008         https://bugs.webkit.org/show_bug.cgi?id=83513
3009
3010         Reviewed by Kenneth Russell.
3011
3012         * html/canvas/WebGLProgram.cpp:
3013         (WebCore::WebGLProgram::WebGLProgram):
3014         (WebCore::WebGLProgram::numActiveAttribLocations): call cacheInfoIfNeeded();
3015         (WebCore::WebGLProgram::getActiveAttribLocation): Ditto.
3016         (WebCore::WebGLProgram::isUsingVertexAttrib0): Ditto.
3017         (WebCore::WebGLProgram::getLinkStatus): Ditto.
3018         (WebCore):
3019         (WebCore::WebGLProgram::cacheActiveAttribLocations):
3020         (WebCore::WebGLProgram::cacheInfoIfNeeded): Cache link status, active attire locations, etc if needed.
3021         (WebCore::WebGLProgram::increaseLinkCount): also invalidate cached info.
3022         * html/canvas/WebGLProgram.h:
3023         (WebGLProgram):
3024         * html/canvas/WebGLRenderingContext.cpp:
3025         (WebCore):
3026         (WebCore::WebGLRenderingContext::linkProgram): Do not cache program info immediately.
3027
3028 2012-04-11  David Dorwin  <ddorwin@chromium.org>
3029
3030         Add keySystem attribute to canPlayType() for Encrypted Media Extensions
3031         https://bugs.webkit.org/show_bug.cgi?id=82973
3032
3033         Reviewed by Adam Barth.
3034
3035         The new attribute is behind the ENABLE(ENCRYPTED_MEDIA) feature define.
3036         Implementation is based on v0.1 of the draft proposal at
3037         http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#extensions.
3038
3039         Tests: media/encrypted-media/encrypted-media-can-play-type-webm.html
3040                media/encrypted-media/encrypted-media-can-play-type.html
3041
3042         * dom/DOMImplementation.cpp:
3043         (WebCore::DOMImplementation::createDocument):
3044         * html/HTMLMediaElement.cpp:
3045         (WebCore::HTMLMediaElement::canPlayType):
3046         (WebCore::HTMLMediaElement::selectMediaResource):
3047         (WebCore::HTMLMediaElement::loadNextSourceChild):
3048         (WebCore::HTMLMediaElement::loadResource):
3049         (WebCore::HTMLMediaElement::havePotentialSourceChild):
3050         (WebCore::HTMLMediaElement::selectNextSourceChild):
3051         (WebCore::HTMLMediaElement::getPluginProxyParams):
3052         * html/HTMLMediaElement.h:
3053         (HTMLMediaElement):
3054         * html/HTMLMediaElement.idl:
3055         * platform/graphics/MediaPlayer.cpp:
3056         (WebCore):
3057         (WebCore::bestMediaEngineForTypeAndCodecs):
3058         (WebCore::MediaPlayer::load):
3059         (WebCore::MediaPlayer::loadWithNextMediaEngine):
3060         (WebCore::MediaPlayer::supportsType):
3061         (WebCore::MediaPlayer::networkStateChanged):
3062         * platform/graphics/MediaPlayer.h:
3063         (MediaPlayer):
3064         (WebCore):
3065
3066 2012-04-11  Xiaomei Ji  <xji@chromium.org>
3067
3068         [chromium] wrong justification for arabic/persian page in cr-win.
3069         https://bugs.webkit.org/show_bug.cgi?id=83227
3070
3071         Reviewed by Kent Tamura.
3072
3073         GDI used to do Kashida justification.
3074         After switch to Skia, we need to use space padding to justify the text
3075         (assume Skia can not do Kashida justification -- stretching words).
3076
3077         Test: fast/text/international/arabic-justify.html
3078
3079         * platform/graphics/chromium/UniscribeHelper.cpp:
3080         (WebCore::UniscribeHelper::justify):
3081
3082 2012-03-15  Martin Robinson  <mrobinson@igalia.com>
3083
3084         [CAIRO] Make GLContextGLX a subclass of GLContext
3085         https://bugs.webkit.org/show_bug.cgi?id=81285
3086
3087         Reviewed by Gustavo Noronha Silva.
3088
3089         No new tests. This should not change behavior.
3090
3091         * GNUmakefile.list.am: Add new GLContextGLX files.
3092         * platform/graphics/cairo/GLContext.cpp: Added. Composed of the
3093         EGL/GLX independent portions of GLContext. Made the current context
3094         a static variable so we can keep getting the current context platform-
3095         -independent.
3096         * platform/graphics/cairo/GLContext.h: Make this class an abstract
3097         class. GLContextGLX is a concrete implementation.
3098         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp: Updated to reflect
3099         slightly different calling conventions to create a sharing context.
3100         * platform/graphics/glx/GLContextGLX.cpp: Updated to reflect
3101         that this code is in a subclass now.
3102         * platform/graphics/glx/GLContextGLX.h: Copied from Source/WebCore/platform/graphics/cairo/GLContext.h.
3103         * platform/graphics/gtk/GLContextGtk.cpp:
3104         (WebCore::GLContext::getContextForWidget): Updated to respect the new
3105         USE(GLX) flag.
3106
3107 2012-04-11  Rob Buis  <rbuis@rim.com>
3108
3109         [BlackBerry] Upstream BlackBerry change to PatternSkia.cpp
3110         https://bugs.webkit.org/show_bug.cgi?id=83361
3111
3112         Reviewed by Antonio Gomes.
3113
3114         Upstream a cleaned up version.
3115
3116         * platform/graphics/skia/PatternSkia.cpp:
3117         (WebCore::Pattern::platformDestroy):
3118         (WebCore::Pattern::platformPattern):
3119
3120 2012-04-10  James Robinson  <jamesr@chromium.org>
3121
3122         [chromium] Add OVERRIDE annotations for cc layer types
3123         https://bugs.webkit.org/show_bug.cgi?id=83658
3124
3125         Reviewed by Daniel Bates.
3126
3127         This adds OVERRIDE annotations to overrides of functions on these classes:
3128         - CCLayerImpl
3129         - LayerChromium
3130         - TiledLayerChromium
3131
3132         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3133         (Canvas2DLayerChromium):
3134         * platform/graphics/chromium/CanvasLayerChromium.h:
3135         (CanvasLayerChromium):
3136         * platform/graphics/chromium/ContentLayerChromium.h:
3137         (ContentLayerChromium):
3138         * platform/graphics/chromium/ImageLayerChromium.h:
3139         (ImageLayerChromium):
3140         * platform/graphics/chromium/PluginLayerChromium.h:
3141         (PluginLayerChromium):
3142         * platform/graphics/chromium/TiledLayerChromium.h:
3143         (TiledLayerChromium):
3144         * platform/graphics/chromium/VideoLayerChromium.h:
3145         (VideoLayerChromium):
3146         * platform/graphics/chromium/WebGLLayerChromium.h:
3147         (WebGLLayerChromium):
3148         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
3149         (CCScrollbarLayerImpl):
3150         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
3151         (CCSolidColorLayerImpl):
3152         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
3153         (CCTextureLayerImpl):
3154         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3155         (CCTiledLayerImpl):
3156         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3157         (CCVideoLayerImpl):
3158
3159 2012-04-11  Alexey Proskuryakov  <ap@apple.com>
3160
3161         [Mac] lang, xml:lang, content-language ignored when choosing fonts
3162         https://bugs.webkit.org/show_bug.cgi?id=10874
3163         <rdar://problem/3220202>
3164
3165         Reviewed by Dan Bernstein.
3166
3167         Adding a default font table for Mac port. Clients can still override these if they want to,
3168         but knowing which fonts to use is more about the platform than about the client.
3169
3170         Tests: platform/mac/fonts/han-disunification.html
3171
3172         * DerivedSources.make:
3173         * WebCore.xcodeproj/project.pbxproj:
3174         * Resources/DefaultFonts.plist.in: Added.
3175         Added SettingsMac.mm. Added preprocessed property list with default fonts.
3176
3177         * page/Settings.cpp:
3178         (WebCore::setGenericFontFamilyMap): Don't notify the page if we don't have one yet.
3179         (WebCore::Settings::Settings): Assign to m_page after calling initializeDefaultFontFamilies,
3180         so that we won't try to call page->setNeedsRecalcStyleInAllFrames() in a half-initialized
3181         Page that's creating settings.
3182         (WebCore::Settings::initializeDefaultFontFamilies): Dummy imlplementation for ports that
3183         rely on client to set defaults.
3184
3185         * page/Settings.h: Added initializeDefaultFontFamilies().
3186
3187         * page/mac/SettingsMac.mm: Added.
3188         (WebCore::defaultFontFamilyDictionary):
3189         (WebCore::Settings::initializeDefaultFontFamilies):
3190         Load defaults from a plist file inside WebCore framework.
3191
3192 2012-04-11  Antti Koivisto  <antti@apple.com>
3193
3194         Crash in CSSStyleSheet::deleteRule
3195         https://bugs.webkit.org/show_bug.cgi?id=83708
3196
3197         Reviewed by Andreas Kling.
3198         
3199         Andreas spotted that the wrapper needs to be null checked before calling setParentStyleSheet(0).
3200
3201         Test: fast/css/delete-rule-crash.html
3202
3203         * css/CSSStyleSheet.cpp:
3204         (WebCore::CSSStyleSheet::deleteRule):
3205
3206 2012-04-11  Adam Klein  <adamk@chromium.org>
3207
3208         [MutationObservers] Setting an attributeFilter should filter out all namespaced attribute mutations
3209         https://bugs.webkit.org/show_bug.cgi?id=83706
3210
3211         Reviewed by Ryosuke Niwa.
3212
3213         The patch amounts to plumbing QualifiedName all the way down to shouldReceiveMutationFrom
3214         as it now needs to know about namespaceURI as well as localName.
3215
3216         This change is coming soon to the DOM4 spec, see
3217         https://www.w3.org/Bugs/Public/show_bug.cgi?id=16563 for more discussion.
3218
3219         * dom/MutationObserverInterestGroup.cpp:
3220         (WebCore::MutationObserverInterestGroup::createIfNeeded):
3221         * dom/MutationObserverInterestGroup.h:
3222         (WebCore::MutationObserverInterestGroup::createForChildListMutation):
3223         (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
3224         (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
3225         (MutationObserverInterestGroup):
3226         * dom/MutationObserverRegistration.cpp:
3227         (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom):
3228         * dom/MutationObserverRegistration.h:
3229         (WebCore):
3230         (MutationObserverRegistration):
3231         * dom/Node.cpp:
3232         (WebCore::Node::collectMatchingObserversForMutation):
3233         (WebCore::Node::getRegisteredMutationObserversOfType):
3234         * dom/Node.h:
3235         (Node):
3236
3237 2012-04-11  Wei James  <james.wei@intel.com>
3238
3239         add stereo source support in EqualPowerPanner
3240         https://bugs.webkit.org/show_bug.cgi?id=81092
3241
3242         Reviewed by Chris Rogers.
3243
3244         Test: webaudio/panner-equalpower-stereo.html
3245
3246         * platform/audio/EqualPowerPanner.cpp:
3247         (WebCore::EqualPowerPanner::pan):
3248
3249 2012-04-11  Erik Arvidsson  <arv@chromium.org>
3250
3251         StyleElement ownerNode is not cleared correctly
3252         https://bugs.webkit.org/show_bug.cgi?id=83696
3253
3254         Reviewed by Antti Koivisto.
3255
3256         When the css text changes in such a way that we remove the sheet of a style element or a link[rel=stylesheet]
3257         element we need to ensure that the ownerNode of the sheet is cleared. If we don't do this and there is a
3258         wrapper for the sheet the sheet is kept alive but the ownerNode of the sheet may point to a deleted node.
3259
3260         Tests: fast/dom/StyleSheet/detached-sheet-owner-node-link.html
3261                fast/dom/StyleSheet/detached-sheet-owner-node.html
3262
3263         * dom/StyleElement.cpp:
3264         (WebCore::StyleElement::removedFromDocument):
3265         (WebCore::StyleElement::clearSheet):
3266         (WebCore):
3267         (WebCore::StyleElement::createSheet):
3268         * dom/StyleElement.h:
3269         (StyleElement):
3270         * html/HTMLLinkElement.cpp:
3271         (WebCore::HTMLLinkElement::process):
3272         (WebCore::HTMLLinkElement::clearSheet):
3273         (WebCore):
3274         * html/HTMLLinkElement.h:
3275         (HTMLLinkElement):
3276
3277 2012-04-11  David Hyatt  <hyatt@apple.com>
3278
3279         https://bugs.webkit.org/show_bug.cgi?id=83614
3280         <rdar://problem/11177351>
3281         
3282         REGRESSION: Table on wikipedia overlaps float on right hand side.
3283         
3284         Revise how auto margins are resolved so that for objects that avoid floats, the available line
3285         width is always used instead of the overall containing block width. computeLogicalWidth now
3286         always properly computes inline margins (based off the object's current logicalTop() position)
3287         and so the code in computeStartPositionDeltaForChildAvoidingFloats that recomputes inline
3288         direction margins can now be removed.
3289         
3290         Reviewed by Dan Bernstein.
3291
3292         Added new test in fast/block/float.
3293
3294         * rendering/RenderBlock.cpp:
3295         (WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
3296         (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
3297         * rendering/RenderBlock.h:
3298         (RenderBlock):
3299         * rendering/RenderBox.cpp:
3300         (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
3301         (WebCore):
3302         (WebCore::RenderBox::computeLogicalWidthInRegion):
3303         (WebCore::RenderBox::renderBoxRegionInfo):
3304         (WebCore::RenderBox::shrinkToAvoidFloats):
3305         * rendering/RenderBox.h:
3306         (RenderBox):
3307         * rendering/RenderTable.cpp:
3308         (WebCore::RenderTable::computeLogicalWidth):
3309
3310 2012-04-11  Adrienne Walker  <enne@google.com>
3311
3312         Fix regression where a clip style change did not update layer sizes
3313         https://bugs.webkit.org/show_bug.cgi?id=82990
3314
3315         Reviewed by Simon Fraser.
3316
3317         After r111456, the size of composited layers also used clip, whereas
3318         it previously had only used overflow. Because of this, when clip
3319         changes on a render layer, it needs to recalculate its layer tree.
3320
3321         Test: compositing/clip-change.html
3322
3323         * rendering/RenderLayer.cpp:
3324         (WebCore::RenderLayer::styleChanged):
3325
3326 2012-04-11  Antti Koivisto  <antti@apple.com>
3327
3328         V8 bindings are polluting WebCore namespace with overly generic FooInternal namespaces
3329         https://bugs.webkit.org/show_bug.cgi?id=83699
3330
3331         Reviewed by Adam Barth.
3332
3333         Call them FooV8Internal instead.
3334
3335         * bindings/scripts/CodeGeneratorV8.pm:
3336         (GetFunctionTemplateCallbackName):
3337         (GenerateSingleBatchedAttribute):
3338         (GenerateImplementation):
3339
3340 2012-04-11  James Robinson  <jamesr@chromium.org>
3341
3342         [chromium] Add OVERRIDE annotations for cc animation-related interfaces
3343         https://bugs.webkit.org/show_bug.cgi?id=83650
3344
3345         Reviewed by Daniel Bates.
3346
3347         This adds OVERRIDE annotations to the implementations of the following interfaces:
3348         - CCAnimationCurve
3349         - CCFloatAnimationCurve
3350         - CCLayerAnimationControllerClient
3351         - CCTransformAnimationCurve
3352
3353         * platform/graphics/chromium/LayerChromium.h:
3354         * platform/graphics/chromium/cc/CCTimingFunction.h:
3355         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
3356         (CCKeyframedFloatAnimationCurve):
3357         (CCKeyframedTransformAnimationCurve):
3358         * platform/graphics/chromium/cc/CCLayerImpl.h:
3359
3360 2012-04-11  Philip Rogers  <pdr@google.com>
3361
3362         Fix bug where stroke's bounding box was clipped
3363         https://bugs.webkit.org/show_bug.cgi?id=83651
3364
3365         Reviewed by Dirk Schulze.
3366
3367         This change contains two fixes for one bug:
3368         1) FloatRect::contains contained a nasty mistake where
3369            maxy() < y() was compared instead of maxy() < point.y().
3370         2) RenderSVGShape::strokeContains was depending on its internal
3371            m_strokeAndMarkerBoundingBox instead of calling the virtual
3372            method strokeBoundingBox(). This change switches to using
3373            strokeBoundingBox().
3374
3375         Test: svg/hittest/svg-ellipse-rect-stroke.xhtml
3376
3377         * platform/graphics/FloatRect.cpp:
3378         (WebCore::FloatRect::contains):
3379         * rendering/svg/RenderSVGShape.cpp:
3380         (WebCore::RenderSVGShape::strokeContains):
3381
3382 2012-04-11  Kentaro Hara  <haraken@chromium.org>
3383
3384         Enable the [Supplemental] IDL on BlackBerry
3385         https://bugs.webkit.org/show_bug.cgi?id=75413
3386
3387         Reviewed by Rob Buis.
3388
3389         This patch enables the [Supplemental] IDL on BlackBerry by changing the build
3390         flow of BlackBerry as follows.
3391
3392         - Previous build flow:
3393             foreach $idl (all IDL files) {
3394                 generate-bindings.pl depends on $idl;
3395                 generate-bindings.pl reads $idl;
3396                 generate-bindings.pl generates .h and .cpp files for $idl;
3397             }
3398
3399         - New build flow (See the discussions in bug 72138 for more details):
3400             preprocess-idls.pl depends on all IDL files;
3401             preprocess-idls.pl reads all IDL files;
3402             preprocess-idls.pl resolves the dependency of [Supplemental=XXXX];
3403             preprocess-idls.pl outputs supplemental_dependency.tmp;
3404             foreach $idl (all IDL files) {
3405                 generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
3406                 generate-bindings.pl reads $idl;
3407                 generate-bindings.pl reads supplemental_dependency.tmp;
3408                 generate-bindings.pl generates .h and .cpp files for $idl,
3409                     including all attributes in the IDL files that are implementing $idl;
3410             }
3411
3412         Tests: Confirm that build succeeds.
3413                http/tests/websocket/tests/*
3414
3415         * PlatformBlackBerry.cmake: This change is similar to the change we have done for
3416         UseJSC.cmake and UseV8.cmake (bug 75345).
3417
3418 2012-04-11  Sheriff Bot  <webkit.review.bot@gmail.com>
3419
3420         Unreviewed, rolling out r113872.
3421         http://trac.webkit.org/changeset/113872
3422         https://bugs.webkit.org/show_bug.cgi?id=83703
3423
3424         broke chromium win/mac builds (Requested by simonjam on
3425         #webkit).
3426
3427         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3428         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
3429         (WebCore::CCHeadsUpDisplay::initializeFonts):
3430         (WebCore::CCHeadsUpDisplay::onFrameBegin):
3431         (WebCore::CCHeadsUpDisplay::drawHudContents):
3432         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
3433         (WebCore::CCHeadsUpDisplay::drawFPSCounterText):
3434         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
3435         (CCHeadsUpDisplay):
3436
3437 2012-04-11  Aaron Colwell  <acolwell@chromium.org>
3438
3439         Remove webkit prefix from Media Source runtime feature name.
3440         https://bugs.webkit.org/show_bug.cgi?id=83633
3441
3442         Reviewed by Adam Barth.
3443
3444         * bindings/generic/RuntimeEnabledFeatures.h:
3445         (WebCore::RuntimeEnabledFeatures::mediaSourceEnabled):
3446         (WebCore::RuntimeEnabledFeatures::setMediaSourceEnabled):
3447         * html/HTMLMediaElement.idl:
3448
3449 2012-04-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
3450
3451         Single ShareableBitmap revision blacks out WebView on Harmattan
3452         https://bugs.webkit.org/show_bug.cgi?id=83631
3453
3454         When swizzling is not supported in the driver, we need to initialize the texture as RGBA,
3455         and make sure that the manual swizzling only modifies the sub-image.
3456
3457         Rubber stamped by Kenneth Rohde Christiansen.
3458
3459         Covered by existing tests.
3460
3461         * platform/graphics/texmap/TextureMapperGL.cpp:
3462         (WebCore::swizzleBGRAToRGBA):
3463         (WebCore::BitmapTextureGL::didReset):
3464         (WebCore):
3465         (WebCore::BitmapTextureGL::updateContents):
3466
3467 2012-04-11  Alex Nicolaou  <anicolao@chromium.org>
3468
3469         [chromium] When rendering goes idle, do not count that time against frame rate
3470         htt