5f99cb325bb5e2596d262a06e4fe3289841cbd2c
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-14  Alec Flett  <alecflett@chromium.org>
2
3         IndexedDB: Creating a transaction from within a transaction callback should fail
4         https://bugs.webkit.org/show_bug.cgi?id=80547
5
6         Reviewed by Tony Chang.
7
8         Prevent creation of a transaction, via IDBDatabase.transaction()
9         or IDBDatabase.setVersion(), from inside a setVersion()
10         transaction, as per spec. Update many tests to deal with this.
11
12         Test restructuring uncovered some inconsistencies in transaction
13         mode handling. So also do some minor cleanup in the way the
14         transaction mode is passed between the frontend and backend
15         transaction objects, and add additional asserts.
16
17         * Modules/indexeddb/IDBCursor.cpp:
18         (WebCore::IDBCursor::update):
19         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
20         (WebCore::IDBCursorBackendImpl::update):
21         * Modules/indexeddb/IDBDatabase.cpp:
22         (WebCore::IDBDatabase::setVersion):
23         (WebCore::IDBDatabase::transaction):
24         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
25         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26         * Modules/indexeddb/IDBRequest.cpp:
27         (WebCore::IDBRequest::onSuccess):
28         * Modules/indexeddb/IDBTransaction.cpp:
29         (WebCore::IDBTransaction::create):
30         (WebCore::IDBTransaction::IDBTransaction):
31         (WebCore::IDBTransaction::stringToMode):
32         (WebCore::IDBTransaction::modeToString):
33         * Modules/indexeddb/IDBTransaction.h:
34         (IDBTransaction):
35
36 2012-06-14  Li Yin  <li.yin@intel.com>
37
38         [WebSocket] WebSocket object in Worker Context should fire error event when it fails connection.
39         https://bugs.webkit.org/show_bug.cgi?id=88744
40
41         Reviewed by Kent Tamura.
42
43         Spec:http://dev.w3.org/html5/websockets/#feedback-from-the-protocol
44         The behavior of firing error event in Document has been implemented in Committed r117944.
45         WebSocket in WorkerContext is also required to fire error event.
46
47         Test: http/tests/websocket/tests/hybi/workers/close.html
48
49         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
50         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
51         (WebCore):
52         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback):
53         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
54         (ThreadableWebSocketChannelClientWrapper):
55         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
56         (WebCore::workerContextDidReceiveMessageError):
57         (WebCore):
58         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
59         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
60         (Peer):
61
62 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
63
64         Unreviewed build fix attempt for r120285
65
66         * Modules/filesystem/DOMFileSystemBase.cpp:
67         (WebCore):
68
69 2012-06-13  MORITA Hajime <morrita@google.com>
70
71         Unreviewed expectation update.
72
73         * bindings/scripts/test/V8/V8Float64Array.cpp:
74         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
75         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
76         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
77         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
78         * bindings/scripts/test/V8/V8TestException.cpp:
79         * bindings/scripts/test/V8/V8TestInterface.cpp:
80         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
81         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
82         * bindings/scripts/test/V8/V8TestNode.cpp:
83         * bindings/scripts/test/V8/V8TestObj.cpp:
84         (WebCore::V8TestObj::installPerContextProperties):
85         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
86
87 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
88
89         Move isolated file system code out of chromium-specific directory
90         https://bugs.webkit.org/show_bug.cgi?id=88997
91
92         Reviewed by Adam Barth.
93
94         The code does not need to be chromium-specific.  Any platforms that
95         have file system implementation and manage mappings from file system
96         id to a set of files should share the code.
97
98         No new tests as this has no functional/behavioral changes.
99
100         * Modules/filesystem/DOMFileSystem.cpp:
101         (WebCore::DOMFileSystem::createIsolatedFileSystem):
102         (WebCore):
103         * Modules/filesystem/DOMFileSystem.h:
104         (DOMFileSystem):
105         * Modules/filesystem/DOMFileSystemBase.h:
106         (DOMFileSystemBase):
107         * Modules/filesystem/FileSystemType.h:
108         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
109         * Modules/filesystem/chromium/DOMFileSystemChromium.h: Removed.
110         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
111         (WebCore::DraggedIsolatedFileSystem::getDOMFileSystem):
112         * WebCore.gypi:
113
114 2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
115
116         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
117         https://bugs.webkit.org/show_bug.cgi?id=87826
118
119         Reviewed by Kent Tamura.
120
121         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
122
123         * fileapi/File.cpp:
124         (WebCore::File::File):
125         (WebCore::File::captureSnapshot):
126         (WebCore::File::lastModifiedDate):
127         (WebCore::File::lastModifiedDateForBinding): Removed.
128         * fileapi/File.h:
129         (File):
130         * fileapi/File.idl:
131         * platform/FileMetadata.h:
132         (WebCore::FileMetadata::FileMetadata):
133         * platform/FileSystem.h:
134         * platform/FileStream.cpp:
135         (WebCore::FileStream::getSize):
136         * platform/chromium/support/WebHTTPBody.cpp:
137         (WebKit::WebHTTPBody::elementAt):
138         * platform/network/BlobData.h:
139         (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
140         * platform/network/BlobData.cpp:
141         * platform/network/cf/FormDataStreamCFNet.cpp:
142         (WebCore::advanceCurrentStream):
143         * platform/network/soup/ResourceHandleSoup.cpp:
144         (WebCore::blobIsOutOfDate):
145
146 2012-06-13  Eli Fidler  <efidler@rim.com>
147
148         Fix CMake build with SMOOTH_SCROLLING enabled
149         https://bugs.webkit.org/show_bug.cgi?id=89032
150
151         Reviewed by Antonio Gomes.
152
153         SMOOTH_SCROLLING pulls in ScrollAnimatorNone.cpp, which has
154         dependencies on platform/ActivePlatformGestureAnimation.cpp and
155         platform/TouchpadFlingPlatformGestureCurve.cpp
156
157         * CMakeLists.txt:
158
159 2012-06-13  Mihai Balan  <mibalan@adobe.com>
160
161         Touched CSSPropertyNames.in to trigger a proper rebuild
162
163         [CSS Regions] Adding feature defines for CSS Regions & exclusions for Windows
164         https://bugs.webkit.org/show_bug.cgi?id=88645
165
166         Reviewed by Sam Weinig.
167
168         Previous work on #87442 added feature defines to allow proper disabling of CSS Regions and
169         exclusions (previously even with the feature disabled, parsing still worked). However, the
170         feature defines were enabled on Mac only - they were broken on Windows. This
171         patch adds the feature defines to (re)enable regions and exclusions on Windows.
172
173         * css/CSSPropertyNames.in: Touched to trigger a proper rebuild. Incremental builds were broken on Windows.
174
175 2012-06-13  Arnaud Renevier  <arno@renevier.net>
176
177         make sure headers are included only once per file
178         https://bugs.webkit.org/show_bug.cgi?id=88931
179
180         Reviewed by Darin Adler.
181
182         * Modules/indexeddb/IDBDatabase.cpp:
183         * WebCorePrefix.h:
184         * bindings/js/JSHTMLAllCollectionCustom.cpp:
185         * bindings/v8/V8Utilities.cpp:
186         * bindings/v8/custom/V8LocationCustom.cpp:
187         * bridge/NP_jsobject.cpp:
188         * editing/Editor.cpp:
189         * html/HTMLMediaElement.cpp:
190         * platform/graphics/cairo/PlatformContextCairo.cpp:
191         * rendering/InlineFlowBox.cpp:
192
193 2012-06-13  MORITA Hajime  <morrita@google.com>
194
195         Unreviewed typo fix.
196
197         * platform/RefCountedSupplement.h:
198
199 2012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>
200
201         Unreviewed, rolling out r120268.
202         http://trac.webkit.org/changeset/120268
203         https://bugs.webkit.org/show_bug.cgi?id=89060
204
205         WebCompositor::setPerTilePaintingEnabled hits an assertion in
206         DEBUG (Requested by dominicc|work on #webkit).
207
208         * WebCore.gypi:
209         * page/Settings.cpp:
210         (WebCore::Settings::Settings):
211         * page/Settings.h:
212         (WebCore::Settings::setPerTileDrawingEnabled):
213         (WebCore::Settings::perTileDrawingEnabled):
214         (Settings):
215         (WebCore::Settings::setPartialSwapEnabled):
216         (WebCore::Settings::partialSwapEnabled):
217         (WebCore::Settings::setThreadedAnimationEnabled):
218         (WebCore::Settings::threadedAnimationEnabled):
219         * platform/graphics/chromium/ContentLayerChromium.cpp:
220         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
221         * platform/graphics/chromium/LayerChromium.cpp:
222         (WebCore::LayerChromium::addAnimation):
223         * platform/graphics/chromium/LayerRendererChromium.cpp:
224         (WebCore::LayerRendererChromium::initialize):
225         * platform/graphics/chromium/TiledLayerChromium.cpp:
226         (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
227         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
228         (WebCore::CCDebugRectHistory::enabled):
229         (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
230         * platform/graphics/chromium/cc/CCDebugRectHistory.h:
231         (WebCore):
232         (CCDebugRectHistory):
233         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
234         (WebCore::CCHeadsUpDisplay::enabled):
235         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
236         (WebCore::CCHeadsUpDisplay::showDebugRects):
237         (WebCore::CCHeadsUpDisplay::draw):
238         (WebCore::CCHeadsUpDisplay::drawHudContents):
239         (WebCore::CCHeadsUpDisplay::drawDebugRects):
240         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
241         (WebCore):
242         (CCHeadsUpDisplay):
243         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
244         (WebCore::CCLayerTreeHost::create):
245         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
246         (WebCore::CCLayerTreeHost::animateLayers):
247         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
248         (WebCore::CCSettings::CCSettings):
249         (CCSettings):
250         (CCLayerTreeHost):
251         (WebCore::CCLayerTreeHost::settings):
252         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
253         (WebCore::CCLayerTreeHostImpl::create):
254         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
255         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
256         (WebCore::CCLayerTreeHostImpl::animateLayers):
257         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
258         (CCLayerTreeHostImpl):
259         * platform/graphics/chromium/cc/CCRenderer.h:
260         (CCRendererClient):
261         (WebCore::CCRenderer::settings):
262         * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
263         * platform/graphics/chromium/cc/CCSettings.h: Removed.
264         * testing/InternalSettings.cpp:
265         (WebCore::InternalSettings::setPerTileDrawingEnabled):
266         (WebCore):
267         * testing/InternalSettings.h:
268         (InternalSettings):
269
270 2012-06-13  Ian Vollick  <vollick@chromium.org>
271
272         [chromium] Certain settings in CCSettings could be global
273         https://bugs.webkit.org/show_bug.cgi?id=88384
274
275         Reviewed by James Robinson.
276
277         No new tests. No new functionality.
278
279         * WebCore.gypi:
280         * page/Settings.cpp:
281         (WebCore::Settings::Settings):
282         * page/Settings.h:
283         (Settings):
284         * platform/graphics/chromium/ContentLayerChromium.cpp:
285         (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
286         * platform/graphics/chromium/LayerChromium.cpp:
287         (WebCore::LayerChromium::addAnimation):
288         * platform/graphics/chromium/LayerRendererChromium.cpp:
289         (WebCore::LayerRendererChromium::initialize):
290         * platform/graphics/chromium/TiledLayerChromium.cpp:
291         (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
292         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
293         (WebCore::CCDebugRectHistory::enabled):
294         (WebCore::CCDebugRectHistory::saveDebugRectsForCurrentFrame):
295         * platform/graphics/chromium/cc/CCDebugRectHistory.h:
296         (WebCore):
297         (CCDebugRectHistory):
298         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
299         (WebCore::CCHeadsUpDisplay::enabled):
300         (WebCore::CCHeadsUpDisplay::showPlatformLayerTree):
301         (WebCore::CCHeadsUpDisplay::showDebugRects):
302         (WebCore::CCHeadsUpDisplay::draw):
303         (WebCore::CCHeadsUpDisplay::drawHudContents):
304         (WebCore::CCHeadsUpDisplay::drawDebugRects):
305         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
306         (WebCore):
307         (CCHeadsUpDisplay):
308         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
309         (WebCore::CCLayerTreeHost::create):
310         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
311         (WebCore::CCLayerTreeHost::animateLayers):
312         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
313         (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
314         (CCLayerTreeSettings):
315         (CCLayerTreeHost):
316         (WebCore::CCLayerTreeHost::settings):
317         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
318         (WebCore::CCLayerTreeHostImpl::create):
319         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
320         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
321         (WebCore::CCLayerTreeHostImpl::animateLayers):
322         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
323         (CCLayerTreeHostImpl):
324         * platform/graphics/chromium/cc/CCRenderer.h:
325         (CCRendererClient):
326         (WebCore::CCRenderer::settings):
327         * platform/graphics/chromium/cc/CCSettings.cpp: Added.
328         (WebCore):
329         (WebCore::CCSettings::perTilePaintingEnabled):
330         (WebCore::CCSettings::setPerTilePaintingEnabled):
331         (WebCore::CCSettings::partialSwapEnabled):
332         (WebCore::CCSettings::setPartialSwapEnabled):
333         (WebCore::CCSettings::acceleratedAnimationEnabled):
334         (WebCore::CCSettings::setAcceleratedAnimationEnabled):
335         (WebCore::CCSettings::reset):
336         * platform/graphics/chromium/cc/CCSettings.h: Added.
337         (WebCore):
338         (CCSettings):
339         * testing/InternalSettings.cpp:
340         * testing/InternalSettings.h:
341         (InternalSettings):
342
343 2012-06-13  Crystal Zhang  <haizhang@rim.com>
344
345         [BlackBerry] Apply New Style and JS for Select Popup
346         https://bugs.webkit.org/show_bug.cgi?id=89020
347
348         Reviewed by Rob Buis.
349
350         PR 162854
351
352         Use new python script for data generating, as the old one is too simple and problematic.
353
354         * PlatformBlackBerry.cmake:
355
356 2012-06-13  Dana Jansens  <danakj@chromium.org>
357
358         [chromium] Assert if iterating an invalid RenderSurfaceLayerList, where a layer in the list has no RenderSurface
359         https://bugs.webkit.org/show_bug.cgi?id=89004
360
361         Reviewed by Adrienne Walker.
362
363         A RenderSurfaceLayerList expects that all layers in the list own a
364         RenderSurface. If an invalid RSLL is iterated over, the
365         CCLayerIterator class will now ASSERT in debug mode, as well as
366         considering the list empty in release mode.
367
368         We will be adding code to CCLayerTreeHostImpl to save a RSLL across
369         frames, so adding a clearRenderSurfaces() method with a FIXME comment
370         to make it clear that we should clear the RSLL when we remove
371         RenderSurfaces from the layers in the saved RSLL.
372
373         * platform/graphics/chromium/cc/CCLayerIterator.h:
374         (WebCore::CCLayerIterator::CCLayerIterator):
375         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
376         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
377         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
378         (WebCore::clearRenderSurfacesOnCCLayerImplRecursive):
379         (WebCore::CCLayerTreeHostImpl::clearRenderSurfaces):
380         (WebCore):
381         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
382         (CCLayerTreeHostImpl):
383
384 2012-06-13  Yael Aharon  <yael.aharon@nokia.com>
385
386         Remove redundant code from RenderView and RenderBlock
387         https://bugs.webkit.org/show_bug.cgi?id=89019
388
389         Reviewed by Abhishek Arya.
390
391         As pointed out in https://bugs.webkit.org/show_bug.cgi?id=83981#c7 , RenderView::insertFixedPositionedObject()
392         is redundant and should be removed.
393         No new tests.
394
395         * rendering/RenderBlock.cpp:
396         (WebCore::RenderBlock::insertPositionedObject):
397         (WebCore::RenderBlock::removePositionedObject):
398         * rendering/RenderView.cpp:
399         (WebCore):
400         * rendering/RenderView.h:
401         (RenderView):
402
403 2012-06-13  Dana Jansens  <danakj@chromium.org>
404
405         [chromium] Create a CCStreamVideoDrawQuad used for StreamTexture video output
406         https://bugs.webkit.org/show_bug.cgi?id=88826
407
408         Reviewed by Adrienne Walker.
409
410         Remove the matrix from the CCVideoDrawQuad, and create a new quad
411         specifically for StreamTexture video decoder output. This quad
412         contains only the fields needed for display - textureId and the
413         matrix to be applied to texture coords.
414
415         Removes the (0, 0, 1, 1) "transform" from the shader used for these
416         quads, as it was a no-op.
417
418         No new tests, no change in behaviour.
419
420         * WebCore.gypi:
421         * platform/graphics/chromium/LayerRendererChromium.cpp:
422         (WebCore::LayerRendererChromium::drawQuad):
423         (WebCore::LayerRendererChromium::drawStreamVideoQuad):
424         (WebCore::LayerRendererChromium::drawVideoQuad):
425         * platform/graphics/chromium/LayerRendererChromium.h:
426         (WebCore):
427         (LayerRendererChromium):
428         * platform/graphics/chromium/ShaderChromium.cpp:
429         (WebCore::VertexShaderVideoTransform::VertexShaderVideoTransform):
430         (WebCore::VertexShaderVideoTransform::init):
431         (WebCore::VertexShaderVideoTransform::getShaderString):
432         * platform/graphics/chromium/ShaderChromium.h:
433         (VertexShaderVideoTransform):
434         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
435         (WebCore::CCDrawQuad::toStreamVideoDrawQuad):
436         (WebCore):
437         * platform/graphics/chromium/cc/CCDrawQuad.h:
438         (WebCore):
439         (CCDrawQuad):
440         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Added.
441         (WebCore):
442         (WebCore::CCStreamVideoDrawQuad::create):
443         (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
444         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Added.
445         (WebCore):
446         (CCStreamVideoDrawQuad):
447         (WebCore::CCStreamVideoDrawQuad::textureId):
448         (WebCore::CCStreamVideoDrawQuad::matrix):
449         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
450         (WebCore::CCVideoLayerImpl::appendQuads):
451
452 2012-06-13  Martin Robinson  <mrobinson@igalia.com>
453
454         [GTK] Add an accelerated compositing implementation for WebKit2
455         https://bugs.webkit.org/show_bug.cgi?id=86037
456
457         Reviewed by Alejandro G. Castro.
458
459         No new tests. These changes are covered by the compositing tests, which
460         we will gradually try to turn on for the bots.
461
462         Add a new GLContext method for getting to current default framebuffer size, which
463         is quite useful for preventing composited content quivering while resizing.
464
465         * platform/graphics/cairo/GLContext.h:
466         * platform/graphics/glx/GLContextGLX.cpp:
467         (WebCore::GLContextGLX::defaultFrameBufferSize): Added this implementation for X11
468         which asks the X server for the window size.
469         * platform/graphics/glx/GLContextGLX.h:
470
471 2012-06-13  Shawn Singh  <shawnsingh@chromium.org>
472
473         [chromium] Implement hit-testing for impl-side input handling in accelerated compositor
474         https://bugs.webkit.org/show_bug.cgi?id=88972
475
476         Reviewed by Adrienne Walker.
477
478         The original hit testing code by Sami Kyostila.
479
480         This patch implements a simple impl-side hit-testing helper
481         function. At this time, the main motivation for this is so that
482         composited scrollable layers can be scrolled by the impl thread --
483         and a prerequisite for that is the ability to hit-test on the impl
484         thread, to determine where the scrolling action should be applied.
485
486         To implement the actual hit test, it's possible to compute the hit
487         test in two equivalent ways: (a) inverse-project the point into
488         local space, or (b) forward-transform the rect to screen space
489         It's not obvious which one would perform better, or which one
490         would be more robust to w < 0 homogeneous clipping issues. For
491         this patch, we simply opt for the inverse-projection approach.
492
493         10 unit tests added to CCLayerTreeHostCommonTest.cpp:
494           CCLayerTreeHostCommonTest.verifyHitTestingForEmptyLayerList
495           CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayer
496           CCLayerTreeHostCommonTest.verifyHitTestingForSinglePositionedLayer
497           CCLayerTreeHostCommonTest.verifyHitTestingForSingleRotatedLayer
498           CCLayerTreeHostCommonTest.verifyHitTestingForSinglePerspectiveLayer
499           CCLayerTreeHostCommonTest.verifyHitTestingForSingleLayerWithScaledContents
500           CCLayerTreeHostCommonTest.verifyHitTestingForSimpleClippedLayer
501           CCLayerTreeHostCommonTest.verifyHitTestingForMultiClippedRotatedLayer
502           CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayers
503           CCLayerTreeHostCommonTest.verifyHitTestingForMultipleLayerLists
504         
505         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
506         (WebCore::pointHitsRect):
507         (WebCore):
508         (WebCore::pointIsClippedBySurfaceOrClipRect):
509         (WebCore::CCLayerTreeHostCommon::findLayerThatIsHitByPoint):
510         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
511         (CCLayerTreeHostCommon):
512         * platform/graphics/chromium/cc/CCMathUtil.cpp:
513         (WebCore::projectHomogeneousPoint):
514         (WebCore::mapHomogeneousPoint):
515         (WebCore::CCMathUtil::mapClippedRect):
516         (WebCore::CCMathUtil::projectClippedRect):
517         (WebCore::CCMathUtil::mapClippedQuad):
518         (WebCore::CCMathUtil::mapQuad):
519         (WebCore::CCMathUtil::projectPoint):
520         (WebCore):
521         * platform/graphics/chromium/cc/CCMathUtil.h:
522         (WebCore):
523         (CCMathUtil):
524
525 2012-06-13  Charles Wei  <charles.wei@torchmobile.com.cn>
526
527         Need customized toDOMStringList for IndexedDB JSC binding.
528         https://bugs.webkit.org/show_bug.cgi?id=87965
529
530         Reviewed by Kentaro Hara.
531
532         IndexedDB database interface uses DOMStringList as the input parameter.
533         The generated toDOMStringList() can't convert an JSArray of Strings to
534         native DOMStringList. We need a custom function to do this.
535
536         Because this patch adds one new file (JSDOMStringList.cpp), all build systems
537         are updated accordingly to pick up this file.
538
539          Tests: Corresponding bindings/scripts/test/JS files have been updated accordingly.
540
541         * GNUmakefile.list.am:
542         * Target.pri:
543         * UseJSC.cmake:
544         * WebCore.gypi:
545         * WebCore.vcproj/WebCore.vcproj:
546         * WebCore.xcodeproj/project.pbxproj:
547         * bindings/js/JSBindingsAllInOne.cpp:
548         * bindings/js/JSDOMStringListCustom.cpp: Added.
549         (WebCore):
550         (WebCore::toDOMStringList):
551         * bindings/scripts/CodeGeneratorJS.pm:
552         (IndexGetterReturnsStrings):
553         (GenerateHeader):
554         (GetNativeType):
555         (GetNativeTypeForCallbacks):
556         (JSValueToNative):
557         * bindings/scripts/test/JS/JSTestCallback.cpp:
558         (WebCore::JSTestCallback::callbackWithStringList):
559         * bindings/scripts/test/JS/JSTestCallback.h:
560         (JSTestCallback):
561         * bindings/scripts/test/JS/JSTestObj.cpp:
562         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
563         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
564         * dom/DOMStringList.idl:
565
566 2012-06-13  Jeffrey Pfau  <jpfau@apple.com>
567
568         Padding and borders can cause integer overflow in block layouts
569         https://bugs.webkit.org/show_bug.cgi?id=88820
570         <rdar://problem/11328762>
571
572         Reviewed by Tony Chang.
573
574         Tests: fast/block/block-size-integer-overflow.html
575                fast/flexbox/box-size-integer-overflow.html
576                fast/table/table-size-integer-overflow.html
577
578         * rendering/AutoTableLayout.cpp: Decreased max int.
579         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
580         * rendering/FixedTableLayout.cpp: Use shared constant.
581         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
582         * rendering/RenderBlock.cpp: Removed unused constant.
583         * rendering/TableLayout.h: Add shared constant.
584         (TableLayout):
585
586 2012-06-13  Gregg Tavares  <gman@google.com>
587
588         Refactor WebGLFramebuffer to handle texture attachments
589         https://bugs.webkit.org/show_bug.cgi?id=88697
590
591         Reviewed by Adrienne Walker.
592         
593         In order to add support for depth textures WebGLFramebuffer
594         needed to be refactored to handle textures as attachments.
595
596         No new tests as no new functionality. 
597
598         * html/canvas/WebGLFramebuffer.cpp:
599         (WebCore::WebGLFramebuffer::WebGLAttachment::WebGLAttachment):
600         (WebCore):
601         (WebCore::WebGLFramebuffer::WebGLAttachment::~WebGLAttachment):
602         (WebCore::WebGLFramebuffer::WebGLFramebuffer):
603         (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
604         (WebCore::WebGLFramebuffer::attach):
605         (WebCore::WebGLFramebuffer::getAttachmentObject):
606         (WebCore::WebGLFramebuffer::getAttachment):
607         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
608         (WebCore::WebGLFramebuffer::getColorBufferWidth):
609         (WebCore::WebGLFramebuffer::getColorBufferHeight):
610         (WebCore::WebGLFramebuffer::getColorBufferFormat):
611         (WebCore::WebGLFramebuffer::checkStatus):
612         (WebCore::WebGLFramebuffer::onAccess):
613         (WebCore::WebGLFramebuffer::hasStencilBuffer):
614         (WebCore::WebGLFramebuffer::deleteObjectImpl):
615         (WebCore::WebGLFramebuffer::initializeAttachments):
616         * html/canvas/WebGLFramebuffer.h:
617         (WebGLAttachment):
618         (WebGLFramebuffer):
619         * html/canvas/WebGLRenderingContext.cpp:
620         (WebCore):
621         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
622         (WebCore::WebGLRenderingContext::reattachDepthStencilAttachments):
623         (WebCore::WebGLRenderingContext::framebufferTexture2D):
624         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
625         * html/canvas/WebGLRenderingContext.h:
626         (WebGLRenderingContext):
627
628 2012-06-13  Konrad Piascik  <kpiascik@rim.com>
629
630         Remove return statement in void method
631         https://bugs.webkit.org/show_bug.cgi?id=88998
632
633         Reviewed by Andreas Kling
634
635         * html/HTMLInputElement.cpp:
636         (WebCore::HTMLInputElement::collectStyleForAttribute):
637
638 2012-06-13  Benjamin Poulain  <benjamin@webkit.org>
639
640         Implement the simple constructors WTFURL's KURL
641         https://bugs.webkit.org/show_bug.cgi?id=85724
642
643         Reviewed by Adam Barth.
644
645         This patch implement the correct initialization of KURL from an absolute URL.
646         The URL correctness is also relaxed in order to have KURLWTFURL works similarily to KURL.
647
648         * platform/KURLWTFURL.cpp:
649         (WebCore::KURL::KURL):
650         (WebCore::KURL::isValid):
651         (WebCore::KURL::string):
652         (WebCore::KURL::protocol):
653         (WebCore::KURL::host):
654         (WebCore::KURL::port): Fix a bug where invalidPortNumber was returned if no port was defined.
655         (WebCore::KURL::hasFragmentIdentifier):
656         (WebCore::KURL::fragmentIdentifier):
657         (WebCore::KURL::protocolIs):
658         (WebCore::KURL::removeFragmentIdentifier):
659         (WebCore):
660         (WebCore::KURL::print):
661         * platform/cf/KURLCFNet.cpp:
662         (WebCore::KURL::KURL):
663         (WebCore::KURL::createCFURL):
664         (WebCore):
665         * platform/mac/KURLMac.mm:
666         (WebCore::KURL::KURL):
667         (WebCore::KURL::createCFURL):
668         (WebCore):
669         Use the code of KURL to make the conversion from WTFURL to NSURL.
670
671 2012-06-12  Vincent Scheib  <scheib@chromium.org>
672
673         Remove duplicate webkitpointerlockchange events when unlocking.
674         https://bugs.webkit.org/show_bug.cgi?id=88917
675
676         Reviewed by Dimitri Glazkov.
677
678         Subsequent patches adding the new API for entering and exiting
679         pointer lock would be burdened by handling multiple change events
680         when the lock target is changed. This change introduces
681         temporary code to suppress duplicate change events.
682
683         Existing tests simplified by removing the duplicate change events.
684
685         * page/PointerLockController.cpp:
686         (WebCore::PointerLockController::requestPointerLock):
687         (WebCore::PointerLockController::didLosePointerLock):
688         * page/PointerLockController.h:
689         (PointerLockController):
690
691 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
692
693         Update range sliders rendering for volume and playback position of new Chrome video controls.
694         https://bugs.webkit.org/show_bug.cgi?id=88623
695
696         Reviewed by Eric Carlson.
697
698         No new tests, final patch will contain the rebaselined tests.
699
700         The Chrome video controls are receiving a visual update. This patch contains updates to the
701         rendering of the range sliders for the playback position and the volume. This includes the
702         creation of a shadowPseudoId to be able to style the range sliders via CSS, the rendering
703         of the slider background and the highlighted ranges.
704
705         * css/mediaControlsChromium.css:
706         (input[type="range"]::-webkit-media-slider-container):
707         Adjust the styling of the slider container backgrounds.
708         (input[type="range"]::-webkit-media-slider-thumb):
709         Adjust the styling of the slider thumbs.
710         * html/shadow/SliderThumbElement.cpp:
711         (WebCore::sliderThumbShadowPseudoId):
712         Add an accessor function for the slider thumb shadowPseudoId.
713         (WebCore::mediaSliderThumbShadowPseudoId):
714         Add an accessor function for the media slider thumb shadowPseudoId.
715         (WebCore::SliderThumbElement::shadowPseudoId):
716         Add a different CSS pseudo-class name to the media slider thumbs.
717         (WebCore::TrackLimiterElement::shadowPseudoId):
718         Add a different CSS pseudo-class name to the media slider thumbs.
719         (WebCore::SliderContainerElement::shadowPseudoId):
720         Add a different CSS pseudo-class name to the media slider background container.
721         * rendering/RenderMediaControlsChromium.cpp:
722         (WebCore::paintRoundedSliderBackground):
723         Add function to draw rounded background of sliders in a dark color.
724         (WebCore::paintSliderRangeHighlight):
725         Add function to draw a highlighted grey region on the sliders, which is rounded only at
726         its ends.
727         (WebCore::paintMediaSlider):
728         Update the background and buffered range renderings on the playback position slider by making
729         use of the new helper functions.
730         (WebCore::paintMediaVolumeSlider):
731         Update the background and buffered range renderings on the volume slider by making
732         use of the new helper functions.
733
734 2012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
735
736         2012-06-13  Christopher Hutten-Czapski  <chutten@rim.com>
737
738         [BlackBerry] Update Select Popup's styling
739         https://bugs.webkit.org/show_bug.cgi?id=89005
740
741         Reviewed by Rob Buis.
742
743         Add in some nicely-styled CSS and JS for the BlackBerry port's <select>
744
745         * Resources/blackberry/popupControlBlackBerry.css:
746         (body):
747         (.popup-area):
748         (.popup-area>:first-child):
749         (.popup-buttons):
750         (.popup-button-divider):
751         (.popup-button):
752         (.popup-button:active):
753         (.popup-button:first-child:active):
754         (.popup-button:last-child:active):
755         (.popup-button:only-child:active):
756         * Resources/blackberry/selectControlBlackBerry.css: Added.
757         (.select-area):
758         (.select-area:last-child):
759         (.option):
760         (.optgroup:last-child):
761         (.selected):
762         (.optgroup):
763         (.optgroup .option):
764         * Resources/blackberry/selectControlBlackBerry.js: Added.
765
766 2012-06-13  Alec Flett  <alecflett@chromium.org>
767
768         [V8] IndexedDB: Cursor value modifications should be preserved until cursor iterates
769         https://bugs.webkit.org/show_bug.cgi?id=83526
770
771         Reviewed by Kentaro Hara.
772
773         Cache the 'value' attribute of IDBCursorWithValue with policy
774         determined by IDBCursor.cpp, to follow spec behavior of keeping a
775         consistent script object until the cursor advances. See
776         http://www.w3.org/TR/IndexedDB/#widl-IDBCursorWithValueSync-value
777         for details.
778
779         Test: storage/indexeddb/cursor-value.html
780
781         * Modules/indexeddb/IDBCursor.cpp:
782         (WebCore::IDBCursor::IDBCursor):
783         (WebCore::IDBCursor::value):
784         (WebCore::IDBCursor::setValueReady):
785         * Modules/indexeddb/IDBCursor.h:
786         (IDBCursor):
787         (WebCore::IDBCursor::valueIsDirty):
788         * Modules/indexeddb/IDBCursorWithValue.idl:
789         * WebCore.gypi:
790         * bindings/v8/IDBCustomBindings.cpp: Added.
791         (WebCore):
792         (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
793
794 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
795
796         Code cleanup from bug 88881 to share the SliderVerticalPart code.
797         https://bugs.webkit.org/show_bug.cgi?id=88930
798
799         Reviewed by Eric Carlson.
800
801         No new tests - this is just code cleanup.
802
803         * html/shadow/SliderThumbElement.cpp:
804         (WebCore::hasVerticalAppearance):
805         Avoid having two ifdef-ed returns in the code depending on ENABLE(VIDEO).
806
807 2012-06-13  Mark Mentovai  <mark@chromium.org>
808
809         [chromium mac] Don't include things in subframeworks of
810         ApplicationServices.framework.
811
812         A CoreText #include (with quotes instead of brackets, even) sprung up
813         in r120506, bug 69826.
814
815         https://bugs.webkit.org/show_bug.cgi?id=88569
816
817         Reviewed by Stephen White.
818
819         No new tests.
820
821         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp:
822
823 2012-06-13  Eriq Augustine  <eaugusti@chromium.org>
824
825         Removing an extra HandleScope in V8Proxy::evaluateInIsolatedWorld
826         https://bugs.webkit.org/show_bug.cgi?id=88451
827
828         Reviewed by Adam Barth.
829
830         Any values retuned by the evaluation will get destroyed with the extra
831         HandleScope.
832
833         I was unable to cause a test failure, however this feature is tested by:
834         platform/chromium/http/tests/misc/execute-and-return-value.html
835
836         * bindings/v8/V8Proxy.cpp:
837         (WebCore::V8Proxy::evaluateInIsolatedWorld):
838
839 2012-06-13  Zan Dobersek  <zandobersek@gmail.com>
840
841         [Gtk] Enable link prefetch support in the developer builds
842         https://bugs.webkit.org/show_bug.cgi?id=89011
843
844         Reviewed by Martin Robinson.
845
846         Handle the ENABLE_LINK_PREFETCH conditional in standard way.
847
848         No new tests - covered by existing link prefetch tests.
849
850         * GNUmakefile.am:
851
852 2012-06-13  Amy Ousterhout  <aousterh@chromium.org>
853
854         Rename currentDeviceMotion to lastMotion in DeviceMotionClient
855         https://bugs.webkit.org/show_bug.cgi?id=88854
856
857         Reviewed by Adam Barth.
858
859         Rename the function currentDeviceMotion to lastMotion in DeviceMotionClient.
860         This makes it consistent with the similar function lastOrientation in DeviceOrientationClient.
861
862         Just a rename, so does not require any new tests.
863
864         * dom/DeviceMotionClient.h:
865         (DeviceMotionClient):
866         * dom/DeviceMotionController.cpp:
867         (WebCore::DeviceMotionController::timerFired):
868         (WebCore::DeviceMotionController::addListener):
869         * loader/EmptyClients.h:
870         (WebCore::EmptyDeviceMotionClient::lastMotion):
871         * platform/qt/DeviceMotionClientQt.cpp:
872         (WebCore::DeviceMotionClientQt::lastMotion):
873         * platform/qt/DeviceMotionClientQt.h:
874         (DeviceMotionClientQt):
875         * platform/qt/DeviceMotionProviderQt.h:
876         (WebCore::DeviceMotionProviderQt::lastMotion):
877
878 2012-06-13  Vsevolod Vlasov  <vsevik@chromium.org>
879
880         Web Inspector: Breakpoint's _uiLocationRemoved() method is never called.
881         https://bugs.webkit.org/show_bug.cgi?id=89003
882
883         Reviewed by Pavel Feldman.
884
885         * inspector/front-end/BreakpointManager.js:
886         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
887         (WebInspector.BreakpointManager.Breakpoint):
888         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
889         (WebInspector.BreakpointManager.Breakpoint.prototype._resetLocations):
890         (WebInspector.BreakpointManager.Breakpoint.prototype._fakeBreakpointAtPrimaryLocation):
891         * inspector/front-end/FileSystemModel.js: Drive by compilation fix.
892         (WebInspector.FileSystemModel):
893
894 2012-06-13  David Grogan  <dgrogan@chromium.org>
895
896         IndexedDB: Add tests, an assert, and some comments around open/close/setVersion call sequencing
897         https://bugs.webkit.org/show_bug.cgi?id=88829
898
899         Reviewed by Tony Chang.
900
901         Test: storage/indexeddb/three-setversion-calls.html
902
903         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
904         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
905
906 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
907
908         Web Inspector: Errors when pending console messages are attached to JavaScriptSourceFrame.
909         https://bugs.webkit.org/show_bug.cgi?id=88712
910
911         Reviewed by Pavel Feldman.
912
913         * inspector/front-end/PresentationConsoleMessageHelper.js:
914         (WebInspector.PresentationConsoleMessageHelper):
915         (WebInspector.PresentationConsoleMessageHelper.prototype._addPendingConsoleMessage):
916         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
917
918 2012-06-13  Alexander Pavlov  <apavlov@chromium.org>
919
920         Web Inspector: Support user attributes in DOMNode
921         https://bugs.webkit.org/show_bug.cgi?id=88706
922
923         Reviewed by Pavel Feldman.
924
925         This change allows clients to store arbitrary properties on DOMNodes and know if there are descendants
926         (and how many of them) having a certain property set.
927
928         Test: inspector/elements/user-attributes.html
929
930         * inspector/front-end/DOMAgent.js:
931         (WebInspector.DOMNode.prototype._removeChild):
932         (WebInspector.DOMNode.prototype._updateChildUserPropertyCountsOnRemoval):
933         (WebInspector.DOMNode.prototype._updateDescendantUserPropertyCount):
934         (WebInspector.DOMNode.prototype.setUserProperty):
935         (WebInspector.DOMNode.prototype.removeUserProperty):
936         (WebInspector.DOMNode.prototype.getUserProperty):
937         (WebInspector.DOMNode.prototype.descendantUserPropertyCount):
938
939 2012-06-13  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
940
941         REGRESSION:Bindings sequence<T> in Console.idl, Internals.idl and ScriptProfileNode.idl should be T[]
942         https://bugs.webkit.org/show_bug.cgi?id=84863
943
944         Reviewed by Kentaro Hara.
945
946         With reference to http://www.w3.org/TR/WebIDL/#idl-sequence
947         "Sequences must not be used as the type of an attribute, constant or exception field."
948         So we should use T[] instead of sequence<T>.
949
950         Tests: bindings/scripts/test/TestObj.idl
951                fast/harness/user-preferred-language.html
952                inspector/profiler/cpu-profiler-profiling-without-inspector.html
953                media/track/track-language-preference.html
954
955         * bindings/scripts/CodeGenerator.pm:
956         (GetSequenceType): Getter for getting sequence type.
957         (GetArrayType): Getter for getting array type.
958         (AssertNotSequenceType): Check sequences must not be used as the type of an attribute,
959         constant or exception field.
960         * bindings/scripts/CodeGeneratorCPP.pm:
961         (SkipFunction): Exclude bindings code for type sequence.
962         (SkipAttribute): Check for sequences must not be used as the type of an attribute,
963         constant or exception field.
964         (AddIncludesForType): Exclude header inclusion code for type array/sequence.
965         * bindings/scripts/CodeGeneratorGObject.pm:
966         (SkipAttribute): Check for sequences must not be used as the type of an attribute,
967         constant or exception field.
968         (SkipFunction): Exclude bindings code for type sequence.
969         * bindings/scripts/CodeGeneratorJS.pm:
970         (AddIncludesForType): Exclude header inclusion code for type array/sequence.
971         (GenerateImplementation):  Check for sequences must not be used as the type of an attribute,
972         constant or exception field.
973         (GetNativeType):
974         (JSValueToNative):
975         (NativeToJSValue):
976         * bindings/scripts/CodeGeneratorObjC.pm:
977         (SkipFunction): Exclude bindings code for type sequence.
978         (SkipAttribute): Exclude bindings code for type array.
979         (AddForwardDeclarationsForType):
980         (AddIncludesForType):
981         * bindings/scripts/CodeGeneratorV8.pm:
982         (GenerateNormalAttrGetter):
983         (GetNativeType):
984         (JSValueToNative):
985         (CreateCustomSignature):
986         (NativeToJSValue):
987         * bindings/scripts/test/JS/JSTestObj.cpp: Updated code from run-bindings-tests.
988         (WebCore):
989         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
990         * bindings/scripts/test/JS/JSTestObj.h: Updated code from run-bindings-tests.
991         (WebCore):
992         * bindings/scripts/test/TestObj.idl: Tests.
993         * bindings/scripts/test/V8/V8TestObj.cpp:  Updated code from run-bindings-tests.
994         (TestObjV8Internal):
995         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
996         (WebCore):
997         * inspector/ScriptProfileNode.idl: Using sequence<T> for children().
998         * page/Console.idl: Using Array[T] for profiles attribute.
999         * testing/Internals.idl: Using sequence<T> for userPreferredLanguages().
1000
1001 2012-06-13  Simon Hausmann  <simon.hausmann@nokia.com>
1002
1003         [Qt] Remove dependency to QtScript for the Qt 5 build
1004         https://bugs.webkit.org/show_bug.cgi?id=88993
1005
1006         Reviewed by Kenneth Rohde Christiansen.
1007
1008         Replace the use of QScriptEngine::ValueOwnership with an enum local
1009         to the class where it is used (QtInstance).
1010
1011         * Target.pri:
1012         * bindings/js/ScriptControllerQt.cpp:
1013         (WebCore::ScriptController::createScriptInstanceForWidget):
1014         * bridge/qt/qt_instance.cpp:
1015         (JSC::Bindings::QtInstance::QtInstance):
1016         (JSC::Bindings::QtInstance::~QtInstance):
1017         (JSC::Bindings::QtInstance::getQtInstance):
1018         * bridge/qt/qt_instance.h:
1019         (QtInstance):
1020         (JSC::Bindings::QtInstance::create):
1021         * bridge/qt/qt_runtime.cpp:
1022         (JSC::Bindings::convertQVariantToValue):
1023         * bridge/qt/qt_runtime_qt4.cpp:
1024         (JSC::Bindings::convertQVariantToValue):
1025
1026 2012-06-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1027
1028         [Qt] Save a JSGlobalContextRef instead of a JSContextRef in QtConnectionObject
1029         https://bugs.webkit.org/show_bug.cgi?id=88905
1030
1031         Make QtConnectionObject use JSContextGetGlobalContext and store the
1032         JSGlobalContextRef. Previous code was working but saving JSContextRef was wrong in terms of
1033         API.
1034
1035         There's an assumption that JSGlobalContextRef will outlive the connection objects, and
1036         because of it no JSGlobalContextRetain/Release calls were added.
1037
1038         Reviewed by Noam Rosenthal.
1039
1040         * bridge/qt/qt_runtime.cpp:
1041         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1042         (JSC::Bindings::QtConnectionObject::QtConnectionObject):
1043         * bridge/qt/qt_runtime.h:
1044         (QtConnectionObject):
1045         * bridge/qt/qt_runtime_qt4.cpp:
1046         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1047         (JSC::Bindings::QtConnectionObject::QtConnectionObject):
1048
1049 2012-06-13  David Barr  <davidbarr@chromium.org>
1050
1051         Add dpi to css3-images image-resolution
1052         https://bugs.webkit.org/show_bug.cgi?id=85439
1053
1054         Reviewed by Tony Chang.
1055
1056         No new tests; extended fast/css/image-resolution/image-resolution.html
1057
1058         * css/CSSGrammar.y:
1059         * css/CSSParser.cpp:
1060         (WebCore::CSSParser::validUnit):
1061         (WebCore::CSSParser::createPrimitiveNumericValue):
1062         (WebCore::unitFromString):
1063         (WebCore::CSSParser::parseValidPrimitive):
1064         (WebCore::CSSParser::detectNumberToken):
1065         * css/CSSPrimitiveValue.cpp:
1066         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1067         (WebCore::unitCategory):
1068         (WebCore::conversionToCanonicalUnitsScaleFactor):
1069         (WebCore::CSSPrimitiveValue::customCssText):
1070         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
1071         * css/CSSPrimitiveValue.h:
1072
1073 2012-06-13  Li Yin  <li.yin@intel.com>
1074
1075         FileAPI: type should be converted to be lower case in Blob constructor.
1076         https://bugs.webkit.org/show_bug.cgi?id=88696
1077
1078         Reviewed by Kentaro Hara.
1079
1080         Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-BlobPropertyBag
1081         Spec: http://dev.w3.org/2006/webapi/FileAPI/#attributes-blob
1082         The ASCII-encoded string in lower case representing the media type of the Blob.
1083
1084         Test: fast/files/blob-constructor.html
1085
1086         * bindings/js/JSBlobCustom.cpp:
1087         (WebCore::JSBlobConstructor::constructJSBlob):
1088         * bindings/v8/custom/V8BlobCustom.cpp:
1089         (WebCore::V8Blob::constructorCallback):
1090
1091 2012-06-13  Robin Cao  <robin.cao@torchmobile.com.cn>
1092
1093         [BlackBerry] Enable MEDIA_STREAM by default
1094         https://bugs.webkit.org/show_bug.cgi?id=88849
1095
1096         Reviewed by Antonio Gomes.
1097
1098         Covered by existing test cases.
1099
1100         * CMakeLists.txt:
1101         * PlatformBlackBerry.cmake:
1102         * platform/mediastream/blackberry/DeprecatedPeerConnectionHandler.cpp: Added.
1103         (WebCore):
1104         (WebCore::DeprecatedPeerConnectionHandler::create):
1105         (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
1106         (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
1107         (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
1108         (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
1109         (WebCore::DeprecatedPeerConnectionHandler::processSDP):
1110         (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
1111         (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
1112         (WebCore::DeprecatedPeerConnectionHandler::stop):
1113         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp: Added.
1114         (WebCore):
1115         (WebCore::MediaStreamCenter::instance):
1116         (WebCore::MediaStreamCenterBlackBerry::MediaStreamCenterBlackBerry):
1117         (WebCore::MediaStreamCenterBlackBerry::~MediaStreamCenterBlackBerry):
1118         (WebCore::MediaStreamCenterBlackBerry::queryMediaStreamSources):
1119         (WebCore::MediaStreamCenterBlackBerry::didSetMediaStreamTrackEnabled):
1120         (WebCore::MediaStreamCenterBlackBerry::didStopLocalMediaStream):
1121         (WebCore::MediaStreamCenterBlackBerry::didCreateMediaStream):
1122         (WebCore::MediaStreamCenterBlackBerry::constructSDP):
1123         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h: Added.
1124         (WebCore):
1125         (MediaStreamCenterBlackBerry):
1126
1127 2012-06-13  Pavel Feldman  <pfeldman@chromium.org>
1128
1129         Web Inspector: working copy should be committed even if domain binding returns error.
1130         https://bugs.webkit.org/show_bug.cgi?id=88884
1131
1132         Reviewed by Vsevolod Vlasov.
1133
1134         Committing working copy is about saving file. It should always succeed.
1135
1136         * inspector/front-end/UISourceCode.js:
1137         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
1138
1139 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
1140
1141         Web Inspector: show revisions of all modified files in local modifications view
1142         https://bugs.webkit.org/show_bug.cgi?id=88864
1143
1144         Reviewed by Vsevolod Vlasov.
1145
1146         This change allows all local modifications to be seen in a single view. View is now
1147         singleton, listening to all revisions being added. Revert captions were reworked
1148         (see the screenshot).
1149
1150         * English.lproj/localizedStrings.js:
1151         * inspector/front-end/Resource.js:
1152         * inspector/front-end/RevisionHistoryView.js:
1153         (WebInspector.RevisionHistoryView.populateRevisions):
1154         (WebInspector.RevisionHistoryView):
1155         (WebInspector.RevisionHistoryView.showHistory):
1156         (WebInspector.RevisionHistoryView.reset):
1157         (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
1158         (WebInspector.RevisionHistoryView.prototype._createResourceItem):
1159         (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
1160         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
1161         (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
1162         (WebInspector.RevisionHistoryView.prototype._revealResource):
1163         (WebInspector.RevisionHistoryView.prototype._reset):
1164         (WebInspector.RevisionHistoryTreeElement):
1165         (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
1166         (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
1167         * inspector/front-end/ScriptsPanel.js:
1168         (WebInspector.ScriptsPanel.prototype._reset):
1169         (WebInspector.ScriptsPanel.prototype._editorSelected):
1170         * inspector/front-end/revisionHistory.css:
1171         (.revision-history-link-row):
1172         (.revision-history-drawer li.revision-history-revision):
1173
1174 2012-06-13  Pavel Feldman  <pfeldman@chromium.org>
1175
1176         Web Inspector: Make "Go to source and line" possible with "go to file" dialog
1177         https://bugs.webkit.org/show_bug.cgi?id=88740
1178
1179         Reviewed by Vsevolod Vlasov.
1180
1181         Selection dialog now allows search query rewrite and uses line number
1182         suffix to go to a particular line.
1183
1184         * inspector/front-end/FilteredItemSelectionDialog.js:
1185         (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
1186         (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
1187         (WebInspector.SelectionDialogContentProvider.prototype.selectItem):
1188         (WebInspector.SelectionDialogContentProvider.prototype.rewriteQuery):
1189         (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
1190         (WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
1191         (WebInspector.OpenResourceDialog.prototype.selectItem):
1192         (WebInspector.OpenResourceDialog.prototype.rewriteQuery):
1193         * inspector/front-end/ScriptsPanel.js:
1194         (WebInspector.ScriptsPanel.prototype.showUISourceCode):
1195         * inspector/front-end/StylesPanel.js:
1196         (WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
1197         (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
1198
1199 2012-06-12  Hans Wennborg  <hans@chromium.org>
1200
1201         Speech JavaScript API: Add test for constructing SpeechRecognitionError events
1202         https://bugs.webkit.org/show_bug.cgi?id=88868
1203
1204         Reviewed by Adam Barth.
1205
1206         This adds a test for constructing SpeechRecognitionError events, and
1207         code to make it work.
1208
1209         Test: fast/events/constructors/speech-recognition-error-constructor.html
1210
1211         * Modules/speech/SpeechRecognitionError.cpp:
1212         (WebCore::SpeechRecognitionError::create):
1213         (WebCore):
1214         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
1215         (WebCore::SpeechRecognitionErrorInit::SpeechRecognitionErrorInit):
1216         * Modules/speech/SpeechRecognitionError.h:
1217         (SpeechRecognitionErrorInit):
1218         (WebCore):
1219         (SpeechRecognitionError):
1220         (WebCore::SpeechRecognitionError::code):
1221         * Modules/speech/SpeechRecognitionError.idl:
1222
1223 2012-06-13  Taiju Tsuiki  <tzik@chromium.org>
1224
1225         Implement InspectorFileSystemAgent::readDirectory for FileSystem support.
1226         https://bugs.webkit.org/show_bug.cgi?id=87724
1227
1228         Reviewed by Vsevolod Vlasov.
1229
1230         Test: http/tests/inspector/filesystem/read-directory.html
1231
1232         * inspector/Inspector.json:
1233         * inspector/InspectorController.cpp:
1234         (WebCore::InspectorController::InspectorController):
1235         * inspector/InspectorFileSystemAgent.cpp:
1236         (InspectorFileSystemAgent::FrontendProvider):
1237         (WebCore):
1238         (WebCore::InspectorFileSystemAgent::create):
1239         (WebCore::InspectorFileSystemAgent::readDirectory):
1240         (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
1241         * inspector/InspectorFileSystemAgent.h:
1242         (WebCore):
1243         (InspectorFileSystemAgent):
1244
1245 2012-06-13  Silvia Pfeiffer  <silviapf@chromium.org>
1246
1247         Change the styling of the Chromium video controls.
1248         https://bugs.webkit.org/show_bug.cgi?id=88297
1249
1250         Reviewed by Eric Carlson.
1251
1252         No new tests, final patch will contain the rebaselined tests.
1253
1254         The Chrome video controls are receiving a visual update. This patch includes CSS changes,
1255         the removal of the now no longer needed controls background div, and the introduction of
1256         new images for the buttons.
1257
1258         * css/mediaControlsChromium.css:
1259         (audio):
1260         Adjust height of audio controls.
1261         (::-webkit-media-controls):
1262         Use flexbox on media controls shadow DOM.
1263         (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
1264         Adjust height, max-width, text-indent and box-sizing, and reset padding to 0.
1265         (video::-webkit-media-controls-enclosure):
1266         Use 5px padding only for video controls and adjust height accordingly.
1267         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
1268         Use flexbox on panel, adjust bottom alignment, height, background color and border radius.
1269         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1270         Display buttons inline with fixed width and height, vertically centered, no padding and
1271         6px space to next controls element (this will be 15px incl the space in the image).
1272         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
1273         Display buttons inline with fixed width and height, vertically centered, no padding and
1274         9px space to next controls element (this will be 15px incl the space in the image).
1275         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
1276         Display text as block, without broder, adjusted height, font-family, font-size and 9px space
1277         to next controls element (this will be 15px incl the space in the image).
1278         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
1279         Adjust height, padding, background-color, min-wdith and 15px space to next controls element.
1280         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
1281         Adjust height, max- and min-width, background-color and 15px space to next controls element.
1282         * html/shadow/MediaControlRootElementChromium.cpp:
1283         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1284         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1285         (WebCore::MediaControlRootElementChromium::create):
1286         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1287         (WebCore::MediaControlRootElementChromium::setMediaController):
1288         Remove timeline container, which is not necessary any longer because of the use of flexbox.
1289         (WebCore::MediaControlRootElementChromium::reset):
1290         Show the timeline instead of the timeline container when resetting.
1291         (WebCore::MediaControlRootElementChromium::reportedError):
1292         Hide the timeline instead of the timeline container when running into an error.
1293         * rendering/RenderMediaControlsChromium.cpp:
1294         (WebCore::paintMediaMuteButton):
1295         Introduce new image resources for the mute button and adjust it based on volume levels.
1296         (WebCore::paintMediaPlayButton):
1297         Introduce new image resources for the play button.
1298         (WebCore::getMediaSliderThumb):
1299         Introduce new image resources for the position slider thumb.
1300         (WebCore::paintMediaVolumeSliderThumb):
1301         Introduce new image resources for the volume slider thumb.
1302         Remove timeline container rendering.
1303         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
1304         Add timeline container painting to the "not reached" elements.
1305         (WebCore):
1306         Provide size settings for the position and volume sliders.
1307         (WebCore::RenderMediaControlsChromium::adjustMediaSliderThumbSize):
1308         Calculate correct width and height settings for the new image resources of the position and volume
1309         slider thumbs.
1310         * rendering/RenderThemeChromiumMac.h:
1311         (RenderThemeChromiumMac):
1312         Remove timeline container rendering (i.e. the media controls background).
1313         * rendering/RenderThemeChromiumMac.mm:
1314         Remove timeline container rendering (i.e. the media controls background).
1315         * rendering/RenderThemeChromiumSkia.cpp:
1316         Remove timeline container rendering (i.e. the media controls background).
1317         * rendering/RenderThemeChromiumSkia.h:
1318         (RenderThemeChromiumSkia):
1319         Remove timeline container rendering (i.e. the media controls background).
1320
1321 2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>
1322
1323         Unreviewed, fixing English nits suggested by review for r120165.
1324
1325         * fileapi/Blob.cpp:
1326         (WebCore::Blob::webkitSlice):
1327         * fileapi/Blob.h:
1328         (Blob):
1329
1330 2012-06-13  MORITA Hajime  <morrita@google.com>
1331
1332         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
1333         https://bugs.webkit.org/show_bug.cgi?id=88148
1334
1335         Reviewed by Dimitri Glazkov.
1336
1337         The shadow DOM availability was decided through FrameLoaderClient.
1338         But there are documents which don't have any associated frames, in
1339         which any shadow DOM related elements cannot be constructed.  That
1340         resulsted the regression.
1341
1342         This change introduces a Page-based client called
1343         ContextFeaturesClient which takes the role from FrameLoaderClient
1344         to decide the feature availability, and ContextFeatures which is a
1345         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
1346         replaced with ContextFeatures.
1347
1348         Each ContextFeatures object is owned by a Page, and is attached to
1349         each Document in the page even if the page itself has no referenct
1350         to Frames or Pages. With ContextFeatures, each Document can decide
1351         the feature availability even if it cannot reach Page or Frame.
1352
1353         On RefCountedSupplement: Document instance can live longer than a
1354         Page where it is shwon. This means that ContextFeatures instance
1355         needs to survive after owner Page destruction because it's
1356         referenced from possibly surviving Documents. RefCountedSupplement
1357         is introduced to cover this scenario: It allows supplement classes
1358         to live after Page's destruction.
1359
1360         RefCountedSupplement::hostDestroyed() is notified when the hosting
1361         page is gone. ContextFeatures clears its reference to the client
1362         using this notification.
1363
1364         Test: fast/dom/shadow/elements-in-frameless-document.html
1365
1366         * CMakeLists.txt:
1367         * GNUmakefile.list.am:
1368         * Target.pri:
1369         * WebCore.gypi:
1370         * WebCore.vcproj/WebCore.vcproj:
1371         * WebCore.xcodeproj/project.pbxproj:
1372         * bindings/scripts/CodeGeneratorV8.pm:
1373         (GenerateImplementation):
1374         * css/StyleResolver.cpp:
1375         (WebCore::StyleResolver::determineScope):
1376         * dom/ContextFeatures.cpp: Added.
1377         (WebCore):
1378         (WebCore::ContextFeaturesClient::empty):
1379         (WebCore::ContextFeatures::supplementName):
1380         (WebCore::ContextFeatures::defaultSwitch):
1381         (WebCore::ContextFeatures::shadowDOMEnabled):
1382         (WebCore::ContextFeatures::styleScopedEnabled):
1383         (WebCore::ContextFeatures::pagePopupEnabled):
1384         (WebCore::provideContextFeaturesTo):
1385         (WebCore::provideContextFeaturesToDocumentFrom):
1386         * dom/ContextFeatures.h: Added.
1387         (WebCore):
1388         (ContextFeatures):
1389         (WebCore::ContextFeatures::ContextFeatures):
1390         (WebCore::ContextFeatures::hostDestroyed):
1391         (ContextFeaturesClient):
1392         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
1393         (WebCore::ContextFeaturesClient::isEnabled):
1394         (WebCore::ContextFeatures::create):
1395         (WebCore::ContextFeatures::isEnabled):
1396         * dom/DOMAllInOne.cpp:
1397         * dom/DOMImplementation.cpp:
1398         (WebCore::DOMImplementation::createDocument):
1399         (WebCore::DOMImplementation::createHTMLDocument):
1400         * dom/Document.h:
1401         (WebCore::Document::contextFeatures):
1402         * dom/Document.cpp:
1403         (WebCore::Document::Document):
1404         (WebCore::Document::setContextFeatures):
1405         * dom/Position.cpp:
1406         (WebCore::Position::Position):
1407         (WebCore::Position::findParent):
1408         * dom/TreeScope.cpp:
1409         (WebCore::TreeScope::getSelection):
1410         * dom/make_names.pl:
1411         (printConstructorInterior):
1412         (printFactoryCppFile):
1413         (printWrapperFunctions):
1414         (printWrapperFactoryCppFile):
1415         * editing/markup.cpp:
1416         (WebCore::createFragmentFromMarkupWithContext):
1417         * html/HTMLStyleElement.cpp:
1418         (WebCore::HTMLStyleElement::registerWithScopingNode):
1419         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
1420         * html/shadow/HTMLContentElement.cpp:
1421         (WebCore::contentTagName):
1422         * inspector/DOMPatchSupport.cpp:
1423         (WebCore::DOMPatchSupport::patchDocument):
1424         * loader/FrameLoaderClient.h:
1425         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
1426         (WebCore):
1427         (RefCountedSupplement):
1428         (WebCore::RefCountedSupplement::hostDestroyed):
1429         (Wrapper):
1430         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
1431         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
1432         (WebCore::RefCountedSupplement::Wrapper::wrapped):
1433         (WebCore::RefCountedSupplement::provideTo):
1434         (WebCore::RefCountedSupplement::from):
1435         * platform/Supplementable.h:
1436         (WebCore::Supplement::isRefCountedWrapper):
1437         * xml/XMLHttpRequest.cpp:
1438         (WebCore::XMLHttpRequest::responseXML):
1439
1440 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
1441
1442         Unprefix Blob.webkitSlice
1443         https://bugs.webkit.org/show_bug.cgi?id=78111
1444
1445         Reviewed by Adam Barth.
1446
1447         Add unprefixed Blob.slice and start showing a deprecation message when webkitSlice is called.
1448
1449         No new tests: existing tests that call webkitSlice() are converted to slice(). They should keep running.
1450
1451         * bindings/gobject/WebKitDOMCustom.cpp:
1452         (webkit_dom_blob_slice): Removed.
1453         (webkit_dom_blob_webkit_slice): Added.
1454         * fileapi/Blob.cpp:
1455         (WebCore::Blob::slice):
1456         (WebCore):
1457         (WebCore::Blob::webkitSlice):
1458         (WebCore::Blob::sliceInternal): Added.
1459         * fileapi/Blob.h:
1460         (WebCore):
1461         (Blob):
1462         * fileapi/Blob.idl:
1463
1464 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1465
1466         Unreviewed, rolling out r120036.
1467         http://trac.webkit.org/changeset/120036
1468         https://bugs.webkit.org/show_bug.cgi?id=88965
1469
1470         "assert failed in debug build" (Requested by maryw on
1471         #webkit).
1472
1473         * platform/network/blackberry/NetworkJob.cpp:
1474         (WebCore::NetworkJob::handleNotifyDataReceived):
1475
1476 2012-06-12  Wei James  <james.wei@intel.com>
1477
1478         webcore should depend on webcore_arm_neon for only arm target_arch
1479         https://bugs.webkit.org/show_bug.cgi?id=88839
1480
1481         Reviewed by Adam Barth.
1482
1483         * WebCore.gyp/WebCore.gyp:
1484
1485 2012-06-12  Edaena Salinas Jasso  <edaena@apple.com>
1486
1487         Can't set el.type on a <button> element
1488         https://bugs.webkit.org/show_bug.cgi?id=14439
1489
1490         Reviewed by Darin Adler.
1491
1492         Test: fast/dom/HTMLButtonElement/change-type.html
1493
1494         * bindings/objc/PublicDOMInterfaces.h:
1495         * html/HTMLButtonElement.cpp:
1496         (WebCore::HTMLButtonElement::setType): Added implementation of setType method.
1497         (WebCore):
1498         * html/HTMLButtonElement.h:
1499         (HTMLButtonElement): Added setType method.
1500         * html/HTMLButtonElement.idl: Removed readonly restriction to the type variable.
1501
1502 2012-06-12  Kenichi Ishibashi  <bashi@chromium.org>
1503
1504         [Chromium] Implement font shaping with font-feature-settings on Mac
1505         https://bugs.webkit.org/show_bug.cgi?id=69826
1506
1507         Reviewed by Tony Chang.
1508
1509         Add HarfBuzz-ng text shaper.
1510         Chromium mac port uses it as secondary text shaper to support OpenType features.
1511         HarfBuzz-ng is only used when -webkit-font-feature-settings is specified and
1512         corresponding font is not an AAT font.
1513
1514         No new tests. css3/font-feature-settings-rendering.html should pass on Chromium mac port.
1515
1516         * WebCore.gyp/WebCore.gyp: Added harfbuzz-ng dependencies.
1517         * WebCore.gypi: Added harfbuzz-ng files.
1518         * platform/graphics/FontPlatformData.h:
1519         (FontPlatformData): Added m_harfbuzzFace.
1520         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1521         (WebCore::FontPlatformData::platformDataInit): Copy m_harfbuzzFace.
1522         (WebCore::FontPlatformData::platformDataAssign): Ditto.
1523         (WebCore):
1524         (WebCore::isAATFont):
1525         (WebCore::FontPlatformData::harfbuzzFace):
1526         * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Added.
1527         (WebCore):
1528         (WebCore::harfbuzzFaceCache):
1529         (WebCore::HarfBuzzFace::HarfBuzzFace):
1530         (WebCore::HarfBuzzFace::~HarfBuzzFace):
1531         * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Added.
1532         (WebCore):
1533         (HarfBuzzFace):
1534         (WebCore::HarfBuzzFace::create):
1535         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Added.
1536         (WebCore):
1537         (WebCore::floatToHarfBuzzPosition):
1538         (WebCore::getGlyph):
1539         (WebCore::getGlyphHorizontalAdvance):
1540         (WebCore::getGlyphHorizontalOrigin):
1541         (WebCore::getGlyphExtents):
1542         (WebCore::harfbuzzCoreTextGetFontFuncs):
1543         (WebCore::releaseTableData):
1544         (WebCore::harfbuzzCoreTextGetTable):
1545         (WebCore::HarfBuzzFace::createFace):
1546         (WebCore::HarfBuzzFace::createFont):
1547         (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
1548         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Added.
1549         (WebCore):
1550         (WebCore::harfbuzzPositionToFloat):
1551         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
1552         (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
1553         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
1554         (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
1555         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
1556         (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
1557         (WebCore::HarfBuzzShaper::setFontFeatures):
1558         (WebCore::HarfBuzzShaper::shape):
1559         (WebCore::HarfBuzzShaper::setupHarfBuzzRun):
1560         (WebCore::HarfBuzzShaper::shapeHarfBuzzRun):
1561         (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
1562         (WebCore::HarfBuzzShaper::offsetForPosition):
1563         (WebCore::HarfBuzzShaper::selectionRect):
1564         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Added.
1565         (WebCore):
1566         (HarfBuzzShaper):
1567         (WebCore::HarfBuzzShaper::totalWidth):
1568         (HarfBuzzRun):
1569         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
1570         (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
1571         (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
1572         (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
1573         (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
1574         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
1575         * platform/graphics/mac/FontComplexTextMac.cpp:
1576         (WebCore):
1577         (WebCore::preferHarfBuzz): Added.
1578         (WebCore::Font::selectionRectForComplexText): Use HarfBuzzShaper if font-feature-settings exists.
1579         (WebCore::Font::drawComplexText): Ditto.
1580         (WebCore::Font::floatWidthForComplexText): Ditto.
1581         (WebCore::Font::offsetForPositionForComplexText): Ditto.
1582
1583 2012-06-12  Luke Macpherson  <macpherson@chromium.org>
1584
1585         WIP: Implement CSS Variables Standard.
1586         https://bugs.webkit.org/show_bug.cgi?id=85580
1587
1588         Reviewed by Ojan Vafai.
1589
1590         Implement CSS Variables Module Level 1. (See http://www.w3.org/TR/css-variables/)
1591
1592         A HashMap of properties is referenced by RenderStyle, and used to store variables as strings.
1593         That HashMap is copy-on-write, and unless new variables are defined is simply a pointer to the
1594         parent's definitions. At usage time the variable's value is parsed according to the CSS property
1595         where it is used.
1596         Variables can:
1597                Define lists of values (ie. entire shorthand values).
1598                Define individual values.
1599                Refer to other variables. (Cycle detection is implemented).
1600         Please see the supplied test cases for example usage.
1601
1602         Missing features:
1603                CSS variables cannot yet be used inside some functions such as -webkit-calc.
1604
1605         Covered by existing test suite under fast/css/variables.
1606
1607         * GNUmakefile.list.am:
1608         * Target.pri:
1609         * WebCore.gypi:
1610         * WebCore.vcproj/WebCore.vcproj:
1611         * WebCore.xcodeproj/project.pbxproj:
1612         * css/CSSComputedStyleDeclaration.cpp:
1613         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1614         * css/CSSGrammar.y:
1615         * css/CSSParser.cpp:
1616         (WebCore):
1617         (WebCore::filterProperties):
1618         (WebCore::CSSParser::createStylePropertySet):
1619         (WebCore::CSSParser::validUnit):
1620         (WebCore::CSSParser::createPrimitiveNumericValue):
1621         (WebCore::CSSParser::parseValue):
1622         (WebCore::CSSParser::storeVariableDeclaration):
1623         (WebCore::CSSParser::detectDashToken):
1624         (WebCore::CSSParser::lex):
1625         * css/CSSParser.h:
1626         (CSSParser):
1627         * css/CSSParserValues.cpp:
1628         (WebCore::CSSParserValue::createCSSValue):
1629         * css/CSSPrimitiveValue.cpp:
1630         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1631         (WebCore::CSSPrimitiveValue::getStringValue):
1632         (WebCore::CSSPrimitiveValue::customSerializeResolvingVariables):
1633         (WebCore):
1634         * css/CSSPrimitiveValue.h:
1635         (CSSPrimitiveValue):
1636         (WebCore::CSSPrimitiveValue::isVariableName):
1637         * css/CSSProperty.cpp:
1638         (WebCore::CSSProperty::isInheritedProperty):
1639         * css/CSSValue.cpp:
1640         (WebCore::CSSValue::serializeResolvingVariables):
1641         (WebCore):
1642         (WebCore::CSSValue::destroy):
1643         * css/CSSValue.h:
1644         (CSSValue):
1645         (WebCore::CSSValue::isVariableValue):
1646         * css/CSSValueList.cpp:
1647         (WebCore):
1648         (WebCore::CSSValueList::customSerializeResolvingVariables):
1649         * css/CSSValueList.h:
1650         (CSSValueList):
1651         * css/CSSVariableValue.h: Added.
1652         (WebCore):
1653         (CSSVariableValue):
1654         (WebCore::CSSVariableValue::create):
1655         (WebCore::CSSVariableValue::name):
1656         (WebCore::CSSVariableValue::value):
1657         (WebCore::CSSVariableValue::CSSVariableValue):
1658         * css/StyleResolver.cpp:
1659         (WebCore::StyleResolver::collectMatchingRulesForList):
1660         * css/StyleResolver.h:
1661         * css/WebKitCSSTransformValue.cpp:
1662         (WebCore):
1663         (WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):
1664         * css/WebKitCSSTransformValue.h:
1665         (WebKitCSSTransformValue):
1666         * css/makeprop.pl:
1667         * rendering/style/RenderStyle.h:
1668         * rendering/style/StyleVariableData.h: Added.
1669         (WebCore):
1670         (StyleVariableData):
1671         (WebCore::StyleVariableData::create):
1672         (WebCore::StyleVariableData::copy):
1673         (WebCore::StyleVariableData::operator==):
1674         (WebCore::StyleVariableData::operator!=):
1675         (WebCore::StyleVariableData::setVariable):
1676         (WebCore::StyleVariableData::StyleVariableData):
1677
1678 2012-06-12  MORITA Hajime  <morrita@google.com>
1679
1680         Shadow Pseudo ID should be able to nest to point nested shadow DOM.
1681         https://bugs.webkit.org/show_bug.cgi?id=62218
1682
1683         Reviewed by Dimitri Glazkov.
1684
1685         - updateSpecifiersWithElementName() didn't take nesting into account.
1686           tag history can contain selector entries which isn't marked as ShadowDescendant yet.
1687           such entry can be found by investigating isUnknownPseudoElement().
1688         - SelectorChecker::checkSelector() was too strict. Unknown pseudo elements are essentially a kind of class or id
1689           in implementation perspective. For such, rejecting by missing elementStyle doesn't make sense:
1690           It isn't a pseudo but a real element for WebCore after all.
1691         - Added Internals::setShadowPseudoId() to create a test harness whose DOM tree contains pseudo shadow ids.
1692
1693         Before this change, following selecdtor chain is created for "p::-shadow-child::-nested-shadow-child":
1694
1695           [both tag name and -shadow-id are set] <-(ShadowDescendant)- [-nested-shadow-id]
1696
1697         What we want, which is created by this change is:
1698
1699           [tag] <-(ShadowDescendant)- [-shadow-id is set] <-(ShadowdescenDant)- [-nested-shadow-id]
1700
1701         Test: fast/dom/shadow/shadow-nested-pseudo-id.html
1702
1703         * WebCore.exp.in:
1704         * css/CSSParser.cpp:
1705         (WebCore::CSSParser::updateSpecifiersWithElementName):
1706         * css/SelectorChecker.cpp:
1707         (WebCore::SelectorChecker::checkOneSelector):
1708         * testing/Internals.cpp:
1709         (WebCore::Internals::setShadowPseudoId):
1710         (WebCore):
1711         * testing/Internals.h:
1712         (Internals):
1713         * testing/Internals.idl:
1714
1715 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
1716
1717         [soup] Prevent setting or editing httpOnly cookies from JavaScript
1718         https://bugs.webkit.org/show_bug.cgi?id=88760
1719
1720         Reviewed by Gustavo Noronha Silva.
1721
1722         Prevent setting or overwriting httpOnly cookies from JavaScript.
1723         Fix setCookies() so that it parses all the cookies and not just
1724         the first one.
1725
1726         Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
1727
1728         * platform/network/soup/CookieJarSoup.cpp:
1729         (WebCore::httpOnlyCookieExists):
1730         (WebCore):
1731         (WebCore::setCookies):
1732
1733 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
1734
1735         [EFL] Enable SHADOW_DOM flag
1736         https://bugs.webkit.org/show_bug.cgi?id=87732
1737
1738         Reviewed by Kentaro Hara.
1739
1740         Test: fast/dom/shadow/shadow-root-innerHTML.html
1741
1742         * dom/ShadowRoot.idl: Add JSGenerateToJSObject extended attribute so
1743         that the ShadowRoot properties are accessible on JS side.
1744         * testing/Internals.idl: Fix SHADOW_DOM ifdef check.
1745
1746 2012-06-12  Leo Yang  <leo.yang@torchmobile.com.cn>
1747
1748         Dynamic hash table in DOMObjectHashTableMap is wrong in multiple threads
1749         https://bugs.webkit.org/show_bug.cgi?id=87334
1750
1751         Reviewed by Geoffrey Garen.
1752
1753         Adapt to JSC::HashTable::copy to avoid copy dynamic table member of a HashTable.
1754         The dynamic table may be allocated on other thread and contains thread specific
1755         identifiers. For example, a hash table of JSEntryArray was first initialized on a
1756         worker thread, and then the user reloaded the page, another worker thread is
1757         created due to reload, the dynamic allocated table in *staticTable* is specific
1758         to the first worker thread which has died. If the user reload the page again,
1759         the dynamic table will be freed and memory corruption will occur.
1760
1761         No functionalities changed, no new tests.
1762
1763         * bindings/js/DOMObjectHashTableMap.h:
1764         (WebCore::DOMObjectHashTableMap::get):
1765
1766 2012-06-12  James Robinson  <jamesr@chromium.org>
1767
1768         [chromium] Port Canvas2DLayerBridge over to WebExternalTextureLayer
1769         https://bugs.webkit.org/show_bug.cgi?id=88597
1770
1771         Reviewed by Adrienne Walker.
1772
1773         This converts Canvas2DLayerBridge to using public WebLayer API types instead of LayerChromium types.
1774
1775         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
1776         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
1777         (WebCore::AcceleratedDeviceContext::prepareForDraw):
1778         (AcceleratedDeviceContext):
1779         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
1780         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
1781         (WebCore::Canvas2DLayerBridge::skCanvas):
1782         (WebCore::Canvas2DLayerBridge::prepareTexture):
1783         (WebCore::Canvas2DLayerBridge::context):
1784         (WebCore::Canvas2DLayerBridge::layer):
1785         (WebCore::Canvas2DLayerBridge::contextAcquired):
1786         * platform/graphics/chromium/Canvas2DLayerBridge.h:
1787         (WebCore):
1788         (Canvas2DLayerBridge):
1789
1790 2012-06-12  Alexis Menard  <alexis.menard@openbossa.org>
1791
1792         Fix packing in StyleBoxData for Windows.
1793         https://bugs.webkit.org/show_bug.cgi?id=88858
1794
1795         Reviewed by Tony Chang.
1796
1797         MSVC doesn't pack bitfields if the types are mixed.
1798         We can safely change the bool type to an unsigned so
1799         the packing will happen. I have added a compile assert
1800         for future regressions.
1801
1802         No new tests : we should not see any regressions.
1803
1804         * rendering/style/StyleBoxData.h:
1805         * rendering/style/StyleBoxData.cpp:
1806         (StyleBoxData):
1807
1808 2012-06-12  Adrienne Walker  <enne@google.com>
1809
1810         [chromium] Paint scrollbars on WebKit thread and composite those textures
1811         https://bugs.webkit.org/show_bug.cgi?id=88145
1812
1813         Reviewed by James Robinson.
1814
1815         Scrollbars were previously painted and uploaded on the compositor
1816         thread. This isn't possible to do for many scrollbar themes. This
1817         patch changes ScrollbarLayerChromium to paint the scrollbar into two
1818         parts: the thumb, and everything else. These are uploaded into
1819         textures and synced over to the CCScrollbarImpl where they are
1820         composited and drawn.
1821
1822         Mac and overlay scrollbars are still not enabled to have compositor
1823         thread-updated scrollbars.
1824
1825         As a bonus, fix LayerRendererChromium::drawTextureQuad to draw quads
1826         that do not fill the entire layer bounds.
1827
1828         Tested by existing layout and unit tests by removing the condition
1829         that these scrollbar layers are only created when the threaded proxy
1830         exists.
1831
1832         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1833         (WebCore::scrollbarLayerDidChange):
1834         * platform/ScrollbarThemeComposite.cpp:
1835         (WebCore::ScrollbarThemeComposite::thumbRect):
1836         (WebCore):
1837         * platform/ScrollbarThemeComposite.h:
1838         (ScrollbarThemeComposite):
1839         * platform/graphics/chromium/LayerRendererChromium.cpp:
1840         (WebCore::LayerRendererChromium::drawTextureQuad):
1841         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
1842         (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
1843         (WebCore::ScrollbarLayerChromium::theme):
1844         (WebCore):
1845         (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
1846         (ScrollbarBackgroundPainter):
1847         (WebCore::ScrollbarBackgroundPainter::create):
1848         (WebCore::ScrollbarBackgroundPainter::paint):
1849         (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
1850         (ScrollbarThumbPainter):
1851         (WebCore::ScrollbarThumbPainter::create):
1852         (WebCore::ScrollbarThumbPainter::paint):
1853         (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
1854         (WebCore::ScrollbarLayerChromium::setLayerTreeHost):
1855         (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
1856         (WebCore::ScrollbarLayerChromium::updatePart):
1857         (WebCore::ScrollbarLayerChromium::update):
1858         * platform/graphics/chromium/ScrollbarLayerChromium.h:
1859         (WebCore):
1860         (ScrollbarLayerChromium):
1861         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1862         (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
1863         (WebCore::CCScrollbarLayerImpl::appendQuads):
1864         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1865         (WebCore::CCScrollbarLayerImpl::setBackgroundTextureId):
1866         (WebCore::CCScrollbarLayerImpl::setThumbTextureId):
1867         (CCScrollbarLayerImpl):
1868
1869 2012-06-12  Tony Chang  <tony@chromium.org>
1870
1871         Replaced items in a flexbox should be coerced to display:block
1872         https://bugs.webkit.org/show_bug.cgi?id=87068
1873
1874         Reviewed by Ojan Vafai.
1875
1876         The flexbox spec lists HTML tags that should automatically be converted
1877         to display:block when a flex child. It also says that atomic inline-level
1878         children should become block (e.g., inline-table should be treated as table).
1879         http://dev.w3.org/csswg/css3-flexbox/#flex-items
1880
1881         Test: css3/flexbox/flexitem.html
1882
1883         * css/StyleResolver.cpp:
1884         (WebCore::StyleResolver::collectMatchingRulesForList):
1885
1886 2012-06-12  Joshua Bell  <jsbell@chromium.org>
1887
1888         IndexedDB: ObjectStore/Index shouldn't hold reference to backing store
1889         https://bugs.webkit.org/show_bug.cgi?id=83074
1890
1891         Reviewed by Tony Chang.
1892
1893         We should be able to collect and close the leveldb backing store as soon as the database
1894         connection is closed, but the IDBObjectStoreBackendImpl and IDBIndexBackendImpl were
1895         holding RefPtrs, and those objects are kept alive by script references.
1896
1897         Replaced RefPtrs to the IDBBackingStore with pointers to the IDBDatabase. On the back end,
1898         IDBDatabaseBackendImpl maintains a RefPtr to the IDBObjectStoreBackendImpl object, so
1899         a raw pointer back is safe. On the front end, the IDBObjectStore maintains a RefPtr to
1900         the IDBDatabase so script can navigate upwards. Ditto on both ends for the ObjectStore/Index
1901         relationship. The frontend objects maintain RefPtrs to the backend objects, so the backend
1902         objects and their owners are maintained as long as there's a script reference. To ensure
1903         that all LevelDB objects are destructed in the right order, transactions indirectly track all
1904         open cursors and ensure they are closed when the transaction finishes, and database closing
1905         is explicitly prevented from occurring until transactions are complete.
1906
1907         Also made IDBDatabaseBackendImpl handle a null IDBFactoryBackendImpl pointer, for testing.
1908
1909         Tests: storage/indexeddb/database-close.html
1910                storage/indexeddb/persistence.html
1911                [Chromium] webkit_unit_tests --gtest_filter=IDBDatabaseBackendTest.BackingStoreRetention
1912
1913         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1914         (WebCore::IDBCursorBackendImpl::close): Release LevelDB resources when closed to allow backing store to close.
1915         * Modules/indexeddb/IDBCursorBackendImpl.h:
1916         (WebCore):
1917         * Modules/indexeddb/IDBDatabase.cpp: Ensure connection close deferred until all transactions are finished.
1918         (WebCore::IDBDatabase::transactionCreated): Accounting.
1919         (WebCore::IDBDatabase::transactionFinished): Accounting.
1920         (WebCore::IDBDatabase::close):
1921         (WebCore):
1922         (WebCore::IDBDatabase::closeConnection):
1923         * Modules/indexeddb/IDBDatabase.h:
1924         (IDBDatabase):
1925         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Track outstanding transactions for forced-close scenarios.
1926         (WebCore::IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl):
1927         (WebCore::IDBDatabaseBackendImpl::createObjectStore): Don't pass in backing store reference.
1928         (WebCore::IDBDatabaseBackendImpl::setVersion): Use transaction() for consistent accounting.
1929         (WebCore::IDBDatabaseBackendImpl::transactionFinished): Accounting.
1930         (WebCore::IDBDatabaseBackendImpl::transaction): Accounting.
1931         (WebCore::IDBDatabaseBackendImpl::close): Unregister from factory when last connection is closed.
1932         (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Don't pass in backing store reference.
1933         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
1934         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1935         (WebCore):
1936         (IDBDatabaseBackendImpl):
1937         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
1938         (WebCore::IDBFactoryBackendImpl::deleteDatabase): Don't hang on to deleted databases eternally.
1939         * Modules/indexeddb/IDBFactoryBackendImpl.h: Backend map controls IDBDatabaseBackend lifetimes.
1940         (IDBFactoryBackendImpl):
1941         * Modules/indexeddb/IDBIndexBackendImpl.cpp: Don't hold backing store references.
1942         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
1943         * Modules/indexeddb/IDBIndexBackendImpl.h:
1944         (WebCore::IDBIndexBackendImpl::create):
1945         (IDBIndexBackendImpl):
1946         (WebCore::IDBIndexBackendImpl::backingStore):
1947         (WebCore::IDBIndexBackendImpl::databaseId):
1948         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Don't hold backing store references.
1949         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
1950         (WebCore::IDBObjectStoreBackendImpl::createIndex):
1951         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
1952         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1953         (WebCore::IDBObjectStoreBackendImpl::create):
1954         (IDBObjectStoreBackendImpl):
1955         (WebCore::IDBObjectStoreBackendImpl::backingStore):
1956         (WebCore::IDBObjectStoreBackendImpl::databaseId):
1957         * Modules/indexeddb/IDBRequest.cpp:
1958         (WebCore::IDBRequest::onSuccess):
1959         * Modules/indexeddb/IDBTransaction.cpp:
1960         (WebCore::IDBTransaction::IDBTransaction): For IDBDatabase accounting, allow ref during ctor.
1961         (WebCore::IDBTransaction::onAbort): Accounting.
1962         (WebCore::IDBTransaction::onComplete): Accounting.
1963         * Modules/indexeddb/IDBTransaction.h:
1964         (WebCore::IDBTransaction::isVersionChange): Convenience function.
1965         (IDBTransaction):
1966         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1967         (WebCore::IDBTransactionBackendImpl::abort): Cleanup ordering to allow backing store to close.
1968         (WebCore::IDBTransactionBackendImpl::commit): Cleanup ordering to allow backing store to close.
1969
1970 2012-06-12  Adrienne Walker  <enne@google.com>
1971
1972         [chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
1973         https://bugs.webkit.org/show_bug.cgi?id=88895
1974
1975         Reviewed by James Robinson.
1976
1977         We should only set visible layer rects during the recursion in
1978         CClayerTreeHostCommon and not while we're painting. This is one last
1979         straggling piece of code that never got moved.
1980
1981         Tested by existing mask-related layout tests.
1982
1983         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1984         (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
1985         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1986         (WebCore::calculateVisibleAndScissorRectsInternal):
1987
1988 2012-06-12  Dana Jansens  <danakj@chromium.org>
1989
1990         [chromium] Return empty visibleLayerRect for layers with empty content bounds
1991         https://bugs.webkit.org/show_bug.cgi?id=88901
1992
1993         Reviewed by Adrienne Walker.
1994
1995         This change should only affect tests. Currently if you set up a
1996         CCLayerImpl with some bounds, but don't set the contentBounds, then
1997         they are empty by default. In this case the visibleLayerRect gets
1998         set inappropriately to the layer's target surface contentRect which
1999         in a completely different coordinate space.
2000
2001         Fixed up tests that were passing bogusly and failed after this change.
2002
2003         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2004         (WebCore::calculateVisibleLayerRect):
2005
2006 2012-06-12  Adrienne Walker  <enne@google.com>
2007
2008         [chromium] ScrollingCoordinator::setScrollLayer should update scroll layer ids
2009         https://bugs.webkit.org/show_bug.cgi?id=88882
2010
2011         Reviewed by James Robinson.
2012
2013         Tested manually, as scrollbar layers are currently only created when
2014         threaded compositing is enabled and none of those layout tests trigger
2015         this bug.
2016
2017         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2018         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
2019         (ScrollingCoordinatorPrivate):
2020         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
2021         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
2022         (WebCore::createScrollbarLayer):
2023         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
2024         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
2025         * platform/graphics/chromium/ScrollbarLayerChromium.h:
2026         (WebCore::ScrollbarLayerChromium::setScrollLayerId):
2027         (ScrollbarLayerChromium):
2028         * platform/graphics/chromium/TreeSynchronizer.cpp:
2029         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
2030
2031 2012-06-12  Mark Mentovai  <mark@chromium.org>
2032
2033         [chromium mac] Don't include things in subframeworks of
2034         ApplicationServices.framework.
2035
2036         Subframeworks move around from SDK to SDK and OS release to OS
2037         release, but just using the top-level umbrella framework guarantees
2038         forward compatibility. When building for Chromium Mac, just #include
2039         <ApplicationServices/ApplicationServices.h> instead of reaching in to
2040         subframeworks.
2041
2042         https://bugs.webkit.org/show_bug.cgi?id=88569
2043
2044         Reviewed by Stephen White.
2045
2046         No new tests.
2047
2048         * platform/graphics/GlyphBuffer.h:
2049         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2050         * platform/graphics/skia/GraphicsContextSkia.cpp:
2051
2052 2012-06-12  Igor Oliveira  <igor.o@sisa.samsung.com>
2053
2054         Apply animations and transitions for first-letter element
2055         https://bugs.webkit.org/show_bug.cgi?id=85253
2056
2057         Add animations and transitions support for the first-letter
2058         pseudo element.
2059         Instead of calling RenderOject::node() in the animations code,
2060         now we need to call RenderObject::styledGeneratingNode() because
2061         pseudo elements does not have a Node associated with the
2062         RenderObject.
2063
2064         Initial patch by Simon Fraser
2065
2066         Reviewed by Simon Fraser.
2067
2068         Tests: animations/first-letter-animation.html
2069                animations/first-letter-play-state.html
2070                transitions/first-letter-color-transition.html
2071                transitions/first-letter-transition.html
2072
2073         * page/animation/AnimationBase.cpp:
2074         (WebCore::AnimationBase::updateStateMachine):
2075         * page/animation/AnimationController.cpp:
2076         (WebCore::AnimationControllerPrivate::updateAnimations):
2077         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
2078         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
2079         (WebCore::AnimationController::cancelAnimations):
2080         (WebCore::AnimationController::updateAnimations):
2081         * page/animation/ImplicitAnimation.cpp:
2082         (WebCore::ImplicitAnimation::pauseAnimation):
2083         (WebCore::ImplicitAnimation::sendTransitionEvent):
2084         * page/animation/KeyframeAnimation.cpp:
2085         (WebCore::KeyframeAnimation::KeyframeAnimation):
2086         (WebCore::KeyframeAnimation::pauseAnimation):
2087         (WebCore::KeyframeAnimation::endAnimation):
2088         (WebCore::KeyframeAnimation::sendAnimationEvent):
2089         * rendering/RenderBlock.cpp:
2090         (WebCore::RenderBlock::updateFirstLetterStyle):
2091         (WebCore::RenderBlock::createFirstLetterRenderer):
2092         * rendering/RenderInline.cpp:
2093         (WebCore::RenderInline::clippedOverflowRectForRepaint):
2094         * rendering/RenderObject.cpp:
2095         (WebCore::RenderObject::setAnimatableStyle):
2096         (WebCore::RenderObject::styledGeneratingNode):
2097         (WebCore):
2098         * rendering/RenderObject.h:
2099         (RenderObject):
2100
2101 2012-06-12  Kent Tamura  <tkent@chromium.org>
2102
2103         Checking a radio button doesn't uncheck other buttons in the same group in some cases.
2104         https://bugs.webkit.org/show_bug.cgi?id=88835
2105
2106         Reviewed by Ryosuke Niwa.
2107
2108         This change fixes a bug that checking a radio button in a radio button
2109         group in a form detached from a document tree doesn't uncheck another
2110         checked radio button in the radio button group.
2111
2112         A radio button participates in a radio button group in the following
2113         conditions:
2114         - If it is owned by a form element regardless of the form is in a
2115         document tree or not, or
2116
2117         - If it is not owned by any form elements and it is in a document tree.
2118         A radio button group for the radio button is owned by the document.
2119
2120         For HTMLInputElement::removedFrom():
2121         The old code always unregistered the radio button if it was removed from
2122         the document tree. It was incorrect because we don't need to unregister
2123         it if it has an owner form and the owner form is not changed by
2124         removedFrom().
2125         If the owner form is cleared by removedFrom(), willChangeForm()
2126         unregisters the radio button. So what we should do in removedFrom() is
2127         to unregister the radio button only if the radio button group is owned
2128         by the document.
2129
2130         For HTMLInputElement::insertedInto():
2131         The old code always registered the radio button if it is inserted into
2132         the document tree. It was incorrect because we don't need to register it
2133         if it has an owner form and the owner form is not changed by
2134         insertedInto().
2135         If the owner form is changed by insertedInto(), didChangeForm()
2136         registers the radio button. So We should register the radio button only
2137         if its radio button group will be owned by the document.
2138
2139         Test: Add test cases to fast/forms/radio/radio-group.html
2140
2141         * html/HTMLInputElement.cpp:
2142         (WebCore::HTMLInputElement::insertedInto):
2143         Register this to CheckedRadioButtons only if new group owner is Document.
2144         (WebCore::HTMLInputElement::removedFrom):
2145         Unregister this from CheckedRadioButtons only if old group owner was Document.
2146
2147 2012-06-12  James Robinson  <jamesr@chromium.org>
2148
2149         [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
2150         https://bugs.webkit.org/show_bug.cgi?id=88910
2151
2152         Reviewed by Adrienne Walker.
2153
2154         Unregister the bridge as its TextureLayerChromium client when going away.
2155
2156         Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
2157
2158         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2159         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
2160
2161 2012-06-12  Alec Flett  <alecflett@chromium.org>
2162
2163         IndexedDB: Error codes, phase two
2164         https://bugs.webkit.org/show_bug.cgi?id=88690
2165
2166         Reviewed by Tony Chang.
2167
2168         Update the next phase of IndexedDB error codes to match the spec.
2169         This update is mostly focused on DATA_ERR vs CONSTRAINT_ERR.
2170
2171         Also moves some of the error checking for the transaction mode
2172         into the frontend and replaces the backend checks with asserts, so that
2173         we can consolidate error checking in one place.
2174
2175         This also removes a few FIXME's that are no longer true (about 
2176         I/O errors - the spec was updated and our implementation was
2177         already correct)
2178
2179         No new tests, existing tests cover changed behavior.
2180
2181         * Modules/indexeddb/IDBCursor.cpp:
2182         (WebCore::IDBCursor::deleteFunction):
2183         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2184         (WebCore::IDBCursorBackendImpl::deleteFunction):
2185         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2186         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
2187         * Modules/indexeddb/IDBObjectStore.cpp:
2188         (WebCore::IDBObjectStore::add):
2189         (WebCore::IDBObjectStore::put):
2190         (WebCore::IDBObjectStore::deleteFunction):
2191         (WebCore::IDBObjectStore::clear):
2192         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2193         (WebCore::IDBObjectStoreBackendImpl::put):
2194         (WebCore::IDBObjectStoreBackendImpl::putInternal):
2195         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
2196         (WebCore::IDBObjectStoreBackendImpl::clear):
2197         * Modules/indexeddb/IDBTransaction.h:
2198         (WebCore::IDBTransaction::enumMode):
2199         * Modules/indexeddb/IDBTransactionBackendImpl.h:
2200
2201 2012-06-12  Min Qin  <qinmin@google.com>
2202
2203         Disable autoplay when user gesture is required for media playback
2204         https://bugs.webkit.org/show_bug.cgi?id=88897
2205
2206         Reviewed by Adam Barth.
2207
2208         When user gesture is required for media playback, we should block autoplay.
2209         Otherwise, people will use autoplay instead of video.play() to bypass the gesture requirement.
2210         Test: media/no-autoplay-with-user-gesture-requirement.html
2211
2212         * html/HTMLMediaElement.cpp:
2213         (WebCore::HTMLMediaElement::setReadyState):
2214
2215 2012-06-12  Shrey Banga  <banga@chromium.org>
2216
2217         HTML parser should yield more to improve perceived page load time
2218         https://bugs.webkit.org/show_bug.cgi?id=86165
2219
2220         Reviewed by Tony Gentilcore.
2221
2222         Test: fast/events/event-yield-timing.html
2223
2224         We want the parser to yield at least every 500ms to keep the page somewhat responsive and allow painting.
2225         Since it would be too expensive to check the time after each token, the previous heuristic was to check every 4,096 tokens.
2226         That works fine for most tokens, but a script may spend an arbitrary amount of time executing.
2227
2228         This patch fixes the issue by causing the parser to check the elapsed time immediately after executing a script.
2229
2230         * html/parser/HTMLParserScheduler.cpp:
2231         (WebCore::HTMLParserScheduler::checkForYieldBeforeScript):
2232         * html/parser/HTMLParserScheduler.h:
2233         (WebCore::PumpSession::PumpSession):
2234         (PumpSession):
2235         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
2236
2237 2012-06-12  Sami Kyostila  <skyostil@chromium.org>
2238
2239         [chromium] Don't crash in CCLayerIterator if the root layer doesn't have a render surface
2240         https://bugs.webkit.org/show_bug.cgi?id=88886
2241
2242         Reviewed by James Robinson.
2243
2244         If we are iterating over a render render surface layer list where the
2245         root layer does not have a render surface, fail gracefully instead of
2246         crashing.
2247
2248         Tests: CCLayerIteratorTest.{emptyTree,rootLayerWithoutRenderSurface}
2249
2250         * platform/graphics/chromium/cc/CCLayerIterator.h:
2251         (WebCore::CCLayerIterator::CCLayerIterator):
2252
2253 2012-06-06  Ojan Vafai  <ojan@chromium.org>
2254
2255         Change default for flex-grow back to 0
2256         https://bugs.webkit.org/show_bug.cgi?id=88443
2257
2258         Reviewed by Tony Chang.
2259
2260         * rendering/style/RenderStyle.h:
2261
2262 2012-06-12  Brady Eidson  <beidson@apple.com>
2263
2264         <rdar://problem/11593686> and https://bugs.webkit.org/show_bug.cgi?id=88683
2265         Garbage collection of an <img> element can cause reentrant event dispatch.
2266
2267         Reviewed by Darin Adler.
2268
2269         The most straightforward solution is for ImageLoader to keep its Element alive
2270         with ref/deref any time the Image is actually loading.
2271
2272         ImageLoader should always do this for all Elements, and if those Elements want/need
2273         different behavior for when they are detached then they need to manually stop their
2274         loads.
2275
2276         Tests: http/tests/loading/embed-image-load-outlives-gc-without-crashing.html
2277                http/tests/loading/image-input-type-outlives-gc-without-crashing.html
2278                http/tests/loading/image-load-outlives-gc-without-crashing.html
2279                http/tests/loading/object-image-load-outlives-gc-without-crashing.html
2280                http/tests/loading/svg-image-load-outlives-gc-without-crashing.html
2281                http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html
2282
2283         * loader/ImageLoader.cpp:
2284         (WebCore::ImageLoader::ImageLoader):
2285         (WebCore::ImageLoader::~ImageLoader):
2286         (WebCore::ImageLoader::setImage):
2287         (WebCore::ImageLoader::updateFromElement):
2288         (WebCore::ImageLoader::notifyFinished):
2289         (WebCore::ImageLoader::updatedHasPendingLoadEvent):
2290         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
2291         (WebCore::ImageLoader::dispatchPendingLoadEvent):
2292         * loader/ImageLoader.h:
2293         (ImageLoader):
2294
2295 2012-06-12  Shawn Singh  <shawnsingh@chromium.org>
2296
2297         [chromium] Make damage tracking more robust to early exits
2298         https://bugs.webkit.org/show_bug.cgi?id=84803
2299
2300         Reviewed by James Robinson.
2301
2302         All CCDamageTrackerTest unit tests updated;
2303         One new unit test added:
2304            CCDamageTrackerTest.verifyDamageAccumulatesUntilReset
2305
2306         Damage tracking inherently needs to be aware of all changes that
2307         occur for every frame. Before this patch, anyone modifying details
2308         of CCLayerTreeHostImpl and the drawing phases of the compositor
2309         needed to be careful to avoid early exiting once draw is
2310         initiated, otherwise running the risk of damage tracking's state
2311         getting out-of-sync from actual changes. This patch makes the
2312         damage tracker API more asynchronous-like, so that damage will
2313         continue to accumulate until it is explicitly notified that
2314         damaged areas have been drawn. This will allow more freedom in
2315         designing and restructuing drawing code in the compositor, without
2316         worrying as much about damage tracking getting out-of-sync.
2317
2318         * platform/graphics/chromium/cc/CCDamageTracker.h:
2319         (WebCore::CCDamageTracker::didDrawDamagedArea):
2320         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2321         (WebCore::CCLayerTreeHostImpl::drawLayers):
2322         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2323         (CCLayerTreeHostImpl):
2324
2325 2012-06-12  Mike West  <mkwst@chromium.org>
2326
2327         Make document.documentURI readonly from JavaScript
2328         https://bugs.webkit.org/show_bug.cgi?id=65187
2329
2330         Reviewed by Alexey Proskuryakov.
2331
2332         The DOM4 working draft marks the documentURI attribute as read only
2333         (http://www.w3.org/TR/dom/#document). Firefox has shipped with this
2334         behavior since https://hg.mozilla.org/mozilla-central/rev/3bc751906409
2335         landed in October 2011, IE9 doesn't support the property, and
2336         Opera throws a NO_MODIFICATION_ALLOWED_ERR. This patch changes WebKit
2337         to silently fail (matching Firefox's behavior) by setting the property
2338         to readonly in the IDL.
2339
2340         Document::setDocumentURI and the m_documentURI property are retained
2341         for compatibility with ObjC clients, and the readonly attribute is
2342         ifdeffed out for ObjC.
2343
2344         This patch adds a single test to verify the behavior, and removes a
2345         variety of tests that depended on the writable behavior. In particular,
2346         potential security issues involving the document.baseURL property are
2347         avoided completely as long as this property can't be changed.
2348
2349         Test: fast/dom/documenturi-readonly.html
2350
2351         * dom/Document.cpp:
2352         (WebCore::Document::setDocumentURI):
2353             Adds a comment explaining that the fallback is necessary only to
2354             support ObjC, not for JS calls.
2355         * dom/Document.cpp:
2356         (WebCore::Document::updateBaseURL):
2357             Ditto.
2358         (Document):
2359         * dom/Document.idl:
2360             Add readonly to the attribute and drop null value when not in
2361             LANGUAGE_OBJECTIVE_C.
2362
2363 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
2364
2365         Support !ENABLE(VIDEO) builds with horizontally layed out video controls.
2366         https://bugs.webkit.org/show_bug.cgi?id=88881
2367
2368         Reviewed by Csaba Osztrogonác.
2369
2370         No new tests as this is a regression from WK87835.
2371
2372         * html/shadow/SliderThumbElement.cpp:
2373         (WebCore::hasVerticalAppearance):
2374         Ifdef out video related functionality, since usesVerticalVolumeSlider
2375         does not exist in that case.
2376
2377 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2378
2379         Web Inspector: show revisions of all modified files in local modifications view
2380         https://bugs.webkit.org/show_bug.cgi?id=88864
2381
2382         Reviewed by Vsevolod Vlasov.
2383
2384         This change allows all local modifications to be seen in a single view. View is now
2385         singleton, listening to all revisions being added. Revert captions were reworked
2386         (see the screenshot).
2387
2388         * English.lproj/localizedStrings.js:
2389         * inspector/front-end/Resource.js:
2390         * inspector/front-end/RevisionHistoryView.js:
2391         (WebInspector.RevisionHistoryView.populateRevisions):
2392         (WebInspector.RevisionHistoryView):
2393         (WebInspector.RevisionHistoryView.showHistory):
2394         (WebInspector.RevisionHistoryView.reset):
2395         (WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
2396         (WebInspector.RevisionHistoryView.prototype._createResourceItem):
2397         (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
2398         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
2399         (WebInspector.RevisionHistoryView.prototype._revealResource.get if):
2400         (WebInspector.RevisionHistoryView.prototype._revealResource):
2401         (WebInspector.RevisionHistoryView.prototype._reset):
2402         (WebInspector.RevisionHistoryTreeElement):
2403         (WebInspector.RevisionHistoryTreeElement.prototype.onattach):
2404         (WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
2405         * inspector/front-end/ScriptsPanel.js:
2406         (WebInspector.ScriptsPanel.prototype._reset):
2407         (WebInspector.ScriptsPanel.prototype._editorSelected):
2408         * inspector/front-end/revisionHistory.css:
2409         (.revision-history-link-row):
2410         (.revision-history-drawer li.revision-history-revision):
2411
2412 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2413
2414         Web Inspector: allow clearing revision history.
2415         https://bugs.webkit.org/show_bug.cgi?id=88847
2416
2417         Reviewed by Vsevolod Vlasov.
2418
2419         This change also renames "Revision history" to "Local modifications".
2420         I intend to list modifications to all files in that view in the subsequent change.
2421
2422         * English.lproj/localizedStrings.js:
2423         * inspector/front-end/Resource.js:
2424         (WebInspector.Resource._clearResourceHistory):
2425         * inspector/front-end/RevisionHistoryView.js:
2426         (WebInspector.RevisionHistoryView.else.clearHistory):
2427         (WebInspector.RevisionHistoryView):
2428         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
2429         (WebInspector.RevisionHistoryTreeElement):
2430         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
2431         (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
2432         * inspector/front-end/ScriptsPanel.js:
2433         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
2434
2435 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2436
2437         Web Inspector: use jsdifflib for revision diff calculation.
2438         https://bugs.webkit.org/show_bug.cgi?id=88791
2439
2440         Reviewed by Vsevolod Vlasov.
2441
2442         Present diff calculation is incomplete, it does not properly handle the following case:
2443             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
2444         We should not be implementing diff by ourselves. I imported jsdifflib from
2445         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
2446
2447         * WebCore.gypi:
2448         * WebCore.vcproj/WebCore.vcproj:
2449         * inspector/front-end/RevisionHistoryView.js:
2450         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
2451         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
2452         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
2453         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
2454         * inspector/front-end/WebKit.qrc:
2455         * inspector/front-end/externs.js:
2456         (difflib.stringAsLines):
2457         (difflib.SequenceMatcher):
2458         (difflib.SequenceMatcher.prototype.get_opcodes):
2459         * inspector/front-end/inspector.html:
2460         * inspector/front-end/jsdifflib.js: Added.
2461         (difflib.defaultJunkFunction):
2462         (difflib.stripLinebreaks):
2463         (difflib.stringAsLines):
2464         (difflib.__reduce):
2465         (difflib.__ntuplecomp):
2466         (difflib.__calculate_ratio):
2467         (difflib.__dictget):
2468         (difflib.SequenceMatcher.this.set_seqs):
2469         (difflib.SequenceMatcher.this.set_seq1):
2470         (difflib.SequenceMatcher.this.set_seq2):
2471         (difflib.SequenceMatcher.this.__chain_b):
2472         (difflib.SequenceMatcher.this.find_longest_match):
2473         (difflib.SequenceMatcher.this.get_matching_blocks):
2474         (difflib.SequenceMatcher.this.get_opcodes):
2475         (difflib.SequenceMatcher.this.get_grouped_opcodes):
2476         (difflib.SequenceMatcher.this.quick_ratio):
2477         (difflib.SequenceMatcher.this.real_quick_ratio):
2478         * inspector/front-end/revisionHistory.css:
2479         (.revision-history-line-separator .webkit-line-number):
2480
2481 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2482
2483         Web Inspector: use jsdifflib for revision diff calculation.
2484         https://bugs.webkit.org/show_bug.cgi?id=88791
2485
2486         Reviewed by Vsevolod Vlasov.
2487
2488         Present diff calculation is incomplete, it does not properly handle the following case:
2489             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
2490         We should not be implementing diff by ourselves. I imported jsdifflib from
2491         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
2492
2493         * WebCore.gypi:
2494         * WebCore.vcproj/WebCore.vcproj:
2495         * inspector/front-end/RevisionHistoryView.js:
2496         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
2497         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
2498         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
2499         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
2500         * inspector/front-end/WebKit.qrc:
2501         * inspector/front-end/externs.js:
2502         (difflib.stringAsLines):
2503         (difflib.SequenceMatcher):
2504         (difflib.SequenceMatcher.prototype.get_opcodes):
2505         * inspector/front-end/inspector.html:
2506         * inspector/front-end/jsdifflib.js: Added.
2507         (difflib.defaultJunkFunction):
2508         (difflib.stripLinebreaks):
2509         (difflib.stringAsLines):
2510         (difflib.__reduce):
2511         (difflib.__ntuplecomp):
2512         (difflib.__calculate_ratio):
2513         (difflib.__dictget):
2514         (difflib.SequenceMatcher.this.set_seqs):
2515         (difflib.SequenceMatcher.this.set_seq1):
2516         (difflib.SequenceMatcher.this.set_seq2):
2517         (difflib.SequenceMatcher.this.__chain_b):
2518         (difflib.SequenceMatcher.this.find_longest_match):
2519         (difflib.SequenceMatcher.this.get_matching_blocks):
2520         (difflib.SequenceMatcher.this.get_opcodes):
2521         (difflib.SequenceMatcher.this.get_grouped_opcodes):
2522         (difflib.SequenceMatcher.this.quick_ratio):
2523         (difflib.SequenceMatcher.this.real_quick_ratio):
2524         * inspector/front-end/revisionHistory.css:
2525         (.revision-history-line-separator .webkit-line-number):
2526
2527 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
2528
2529         [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
2530         https://bugs.webkit.org/show_bug.cgi?id=87575
2531
2532         Reviewed by Philippe Normand.
2533
2534         When EOS is reached in forward playback, the position does not necessarily
2535         match the duration. This confuses HTMLMediaElement and causes the "ended"
2536         event not to be fired. To avoid this, we synchronize position and duration
2537         values in this case.
2538
2539         Test: http/tests/media/video-buffered-range-contains-currentTime.html
2540
2541         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2542
2543 2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
2544
2545         Refactor InputType::receiveDroppedFiles to take DragData
2546         https://bugs.webkit.org/show_bug.cgi?id=88860
2547
2548         Reviewed by Kent Tamura.
2549
2550         So that we can centralize the file paths related code into FileInputType
2551         and makes it easier to extract more data from DragData for
2552         <input type=file> (like bug 88293 for directory drag-and-drop).
2553
2554         No new tests as this has no behavioral changes.
2555
2556         * html/FileInputType.cpp:
2557         (WebCore::FileInputType::receiveDroppedFiles):
2558         * html/FileInputType.h:
2559         * html/HTMLInputElement.cpp:
2560         (WebCore::HTMLInputElement::receiveDroppedFiles):
2561         * html/HTMLInputElement.h:
2562         * html/InputType.cpp:
2563         (WebCore::InputType::receiveDroppedFiles):
2564         * html/InputType.h:
2565         * page/DragController.cpp:
2566         (WebCore::DragController::concludeEditDrag):
2567
2568 2012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2569
2570         Generate -webkit-box-decoration-break property only when the feature is enabled
2571         https://bugs.webkit.org/show_bug.cgi?id=88861
2572
2573         Reviewed by Alexis Menard.
2574
2575         Otherwise it will hit an assertion if the property is present on the
2576         style but the feature disabled. Also fixes a compilation warning when
2577         the feature is disabled.
2578
2579         * css/CSSPropertyNames.in:
2580         * css/StyleResolver.cpp:
2581         (WebCore::StyleResolver::collectMatchingRulesForList):
2582
2583 2012-06-12  Darin Adler  <darin@apple.com>
2584
2585         Tweaked the Mac export file a bit more, adding more-correct iOS cases.
2586
2587         Reviewed by David Kilzer.
2588
2589         * WebCore.exp.in: Rearrangement.
2590
2591 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2592
2593         Using extrernal ICU library on case unsensitive drives will not work
2594         https://bugs.webkit.org/show_bug.cgi?id=70913
2595
2596         Reviewed by Csaba Osztrogonác.
2597
2598         * platform/graphics/surfaces/GraphicsSurface.h:
2599
2600 2012-06-11  Dana Jansens  <danakj@chromium.org>
2601
2602         [chromium] Use TextureDrawQuad for video layer output when it produces a single GL texture
2603         https://bugs.webkit.org/show_bug.cgi?id=88814
2604
2605         Reviewed by Adrienne Walker.
2606
2607         When a CCVideLayerImpl produces quads for a frame that is contained
2608         in a single GL texture, then use the TextureDrawQuad instead of the
2609         VideoDrawQuad. Moves the computation for the RGBA(software) and
2610         NativeTexture (hardware) cases from LayerRendererChromium into
2611         CCVideoLayerImpl, so it can embed these values in the TextureDrawQuad.
2612
2613         No new tests, behaviour should be the same.
2614
2615         * platform/graphics/chromium/LayerRendererChromium.cpp:
2616         (WebCore::LayerRendererChromium::drawStreamTexture):
2617         (WebCore::LayerRendererChromium::drawVideoQuad):
2618         * platform/graphics/chromium/LayerRendererChromium.h:
2619         (LayerRendererChromium):
2620         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2621         (WebCore::CCVideoLayerImpl::appendQuads):
2622
2623 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
2624
2625         Change the volume slider to horizontal rendering for Chrome video controls.
2626         https://bugs.webkit.org/show_bug.cgi?id=87835
2627
2628         Reviewed by Eric Carlson.
2629
2630         No new tests - final patch in the Chrome controls update series will contain rebaselined tests.
2631
2632         The Chrome video controls are receiving a visual update. The volume slider is moved into
2633         the controls with horizontal rendering, the volume slider container is removed. The visual
2634         update itself is in a separate patch.
2635
2636         * css/mediaControlsChromium.css:
2637         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
2638         Removed relative positioning to render all controls elements equally in DOM order.
2639         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2640         Removed absolute positioning to render all controls elements equally in DOM order.
2641         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
2642         Removed absolute positioning to render all controls elements equally in DOM order.
2643         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
2644         Removed volume slider container - it's not necessary any more.
2645         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2646         Remove flexbox and introduce inline display to always display this field.
2647         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2648         Removed absolute positioning to render all controls elements equally in DOM order.
2649         * html/shadow/MediaControlRootElementChromium.cpp:
2650         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
2651         Removed volume slider container - it's not necessary any more.
2652         (WebCore::MediaControlRootElementChromium::create):
2653         Appended the volume slider and the mute button directly to the panel, removed volume slider container.
2654         (WebCore::MediaControlRootElementChromium::setMediaController):
2655         Removed volume slider container.
2656         (WebCore::MediaControlRootElementChromium::reportedError):
2657         Removed volume slider container.
2658         (WebCore::MediaControlRootElementChromium::showVolumeSlider):
2659         Removed volume slider container.
2660         * html/shadow/MediaControlRootElementChromium.h:
2661         (WebCore):
2662         (MediaControlRootElementChromium):
2663         Removed volume slider container.
2664         * html/shadow/SliderThumbElement.cpp:
2665         (WebCore::hasVerticalAppearance):
2666         Allow use of horizontal media volume slider.
2667         (WebCore::RenderSliderThumb::layout):
2668         Reuse hasVerticalAppearance function.
2669         * rendering/RenderMediaControlsChromium.cpp:
2670         (WebCore::RenderMediaControlsChromium::paintMediaVolumeSlider):
2671         Change line drawing from vertical to horizontal.
2672         * rendering/RenderTheme.h:
2673         (WebCore::RenderTheme::usesVerticalVolumeSlider):
2674         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
2675         * rendering/RenderThemeChromiumMac.h:
2676         (WebCore::RenderThemeChromiumMac::usesVerticalVolumeSlider):
2677         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
2678         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
2679         * rendering/RenderThemeChromiumSkia.h:
2680         (WebCore::RenderThemeChromiumSkia::usesVerticalVolumeSlider):
2681         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
2682
2683 2012-06-12  Andrei Bucur  <abucur@adobe.com>
2684
2685         [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
2686         https://bugs.webkit.org/show_bug.cgi?id=88515
2687
2688         The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
2689         or if the NamedFlow is in the NULL state:
2690         http://www.w3.org/TR/css3-regions/#dom-named-flow-overset
2691
2692         This patch updates WebKit's behavior in the last two situations to match the one in the spec.
2693
2694         Reviewed by Andreas Kling.
2695
2696         Test: fast/regions/webkit-named-flow-overset.html was updated
2697
2698         * rendering/RenderFlowThread.cpp:
2699         (WebCore::RenderFlowThread::RenderFlowThread):
2700         (WebCore::RenderFlowThread::computeOverflowStateForRegions): If the last valid region is null, the flow has not region chain attached or it's in the NULL state.
2701
2702 2012-06-12  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
2703
2704         Web Inspector: Provide context menu for deleting recorded profile on Profiles Panel
2705         https://bugs.webkit.org/show_bug.cgi?id=88286
2706
2707         Added the context menu to delete the selected profile.
2708
2709         Reviewed by Pavel Feldman.
2710
2711         No new tests required as UI related change
2712
2713         * English.lproj/localizedStrings.js: Removed property svn:mime-type.
2714         * inspector/front-end/ProfilesPanel.js:
2715         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
2716
2717 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
2718
2719         Not reviewed: removed svn:mime-type property from English.lproj/localizedStrings.js
2720
2721         * English.lproj/localizedStrings.js
2722
2723 2012-06-12  Dan Bernstein  <mitz@apple.com>
2724
2725         Tried to fix the notification-enabled build after r120044.
2726
2727         * notifications/NotificationController.cpp:
2728         (WebCore::NotificationController::NotificationController):
2729         (WebCore::NotificationController::create):
2730         (WebCore::provideNotification):
2731         * notifications/NotificationController.h:
2732         (NotificationController):
2733
2734 2012-06-12  Huang Dongsung  <luxtella@company100.net>
2735
2736         [Qt][Texmap] Falling leaves demo missing clipping.
2737         https://bugs.webkit.org/show_bug.cgi?id=88704
2738
2739         The bug originated from begining native painting mode of QPainter after enabling
2740         scissor test, because begining native painting mode disables scissor test.
2741
2742         Covered by existing compositing tests.
2743
2744         Reviewed by Noam Rosenthal.
2745
2746         * platform/graphics/texmap/TextureMapperGL.cpp:
2747         (WebCore::TextureMapperGL::beginPainting):
2748
2749 2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>
2750
2751         [Qt][Win] Buildfix related to fromWinHBITMAP
2752         https://bugs.webkit.org/show_bug.cgi?id=88863
2753
2754         Reviewed by Jocelyn Turcotte.
2755
2756         * platform/graphics/qt/GraphicsContextQt.cpp: Add qt_pixmapFromWinHBITMAP and HBitmapFormat enum.
2757         (WebCore):
2758         (WebCore::GraphicsContext::releaseWindowsContext):
2759         * platform/graphics/qt/ImageQt.cpp:
2760         (WebCore): Move qt_pixmapFromWinHBITMAP to outside of WebCore namespace. (Fix after r119924.)
2761
2762 2012-06-12  Takashi Sakamoto  <tasak@google.com>
2763
2764         [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
2765         https://bugs.webkit.org/show_bug.cgi?id=87805
2766
2767         Modified HTMLStyleElement to be treated as a scoped style independent
2768         of its "scoped" attribute's value if HTMLStyleElement is in shadow
2769         subtree. HTMLStyleElement has the following four cases talking about
2770         "scoped" attribute and whether is in shadow subtree or not:
2771         1, HTMLStyleElement is "scoped" and is in document tree,
2772         2, HTMLStyleElement is "scoped" and is in shadow subtree,
2773         3, HTMLStyleElement is not "scoped" and is in document tree, and
2774         4, HTMLStyleElement is not "scoped" and is in shadow subtree.
2775         The case 1 and 2 are not changed. This patch affected the case 4.
2776         At the case 4, the HTMLStyleElement's scoping node is the shadow root.
2777         This change is the first step for fixing style scope bug,
2778         i.e. HTMLStyleElements in shadow subtree are applied to any element
2779         in document tree.
2780
2781         Reviewed by Dimitri Glazkov.
2782
2783         Test: fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html
2784
2785         * css/StyleResolver.cpp:
2786         (WebCore::StyleResolver::determineScope):
2787         Modified to return a shadow root if a targeted stylesheet owner node is
2788         not scoped but in some shadow DOM subtree.
2789         * html/HTMLStyleElement.cpp:
2790         (WebCore::HTMLStyleElement::HTMLStyleElement):
2791         (WebCore::HTMLStyleElement::parseAttribute):
2792         Modified to use the below scopedAttributeChanged when a changed
2793         attribute's name is "scoped".
2794         (WebCore::HTMLStyleElement::scopedAttributeChanged):
2795         Newly added. According to new scoped value and isInShadowTree,
2796         add or remove style rules to/from scopedAuthorRules via
2797         registerWithScopingNode or unregisterWithScopingNode.
2798         (WebCore::HTMLStyleElement::registerWithScopingNode):
2799         Added one boolean argument to determine whether HTMLStyleElement is
2800         scoped or not. The reason why not using scoped() is the comment:
2801         "We cannot rely on the scoped element already being present when this
2802         method is invoked. Therefore we cannot rely on scoped()"
2803         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
2804         Changed the code for updating m_isRegisteredWithScopingNode. Now
2805         set m_scopedStyleRegistrationState to be NotRegistered.
2806         (WebCore::HTMLStyleElement::insertedInto):
2807         Modified to invoke registerWithScopingNode when an element is not
2808         scoped but in some shadow subtree.
2809         (WebCore::HTMLStyleElement::removedFrom):
2810         Modified to invoke unregisterWithScopingNode when an element is not
2811         scoped but in some shadow subtree.
2812         * html/HTMLStyleElement.h:
2813         (HTMLStyleElement):
2814         Modified the type of m_isRegisteredWithScopingNode from bool to
2815         enum and renamed to m_scopedStyleRegistrationState. Now the member
2816         variable keeps what HTMLStyleElement's scoping node is, i.e.
2817         none (this means, not in shadow subtree and not scoped), shadow root or
2818         parent node.
2819         Added one new method scopedAttributeChanged's declaration and
2820         modified the declaration of registerWithScopingNode.
2821
2822 2012-06-12  Amy Ousterhout  <aousterh@chromium.org>
2823
2824         Removing unused parameter Page
2825         https://bugs.webkit.org/show_bug.cgi?id=88848
2826
2827         Reviewed by Kentaro Hara.
2828
2829         Removed the unused parameter Page* supplied to the create function
2830         and constructor in DeviceOrientationController.
2831
2832         The parameter Page* was previously stored in an instance variable
2833         m_page, but this was removed (see https://bugs.webkit.org/show_bug.cgi?id=88812).
2834
2835         No new tests because the removed parameter was unused and untested.
2836
2837         * dom/DeviceOrientationController.cpp:
2838         (WebCore::DeviceOrientationController::DeviceOrientationController):
2839         (WebCore::DeviceOrientationController::create):
2840         (WebCore::provideDeviceOrientationTo):
2841         * dom/DeviceOrientationController.h:
2842         (DeviceOrientationController):
2843
2844 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2845
2846         Unreviewed, rolling out r120051.
2847         http://trac.webkit.org/changeset/120051
2848         https://bugs.webkit.org/show_bug.cgi?id=88852
2849
2850         some tests are crashing (Requested by morrita on #webkit).
2851
2852         * CMakeLists.txt:
2853         * GNUmakefile.list.am:
2854         * Target.pri:
2855         * WebCore.gypi:
2856         * WebCore.vcproj/WebCore.vcproj:
2857         * WebCore.xcodeproj/project.pbxproj:
2858         * bindings/generic/ContextEnabledFeatures.cpp: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp.
2859         (WebCore):
2860         (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
2861         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
2862         (WebCore::ContextEnabledFeatures::pagePopupEnabled):
2863         * bindings/generic/ContextEnabledFeatures.h: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.h.
2864         (WebCore):
2865         (ContextEnabledFeatures):
2866         * bindings/scripts/CodeGeneratorV8.pm:
2867         (GenerateImplementation):
2868         * css/StyleResolver.cpp:
2869         (WebCore::StyleResolver::determineScope):
2870         * dom/ContextFeatures.cpp: Removed.
2871         * dom/ContextFeatures.h: Removed.
2872         * dom/DOMAllInOne.cpp:
2873         * dom/DOMImplementation.cpp:
2874         (WebCore::DOMImplementation::createDocument):
2875         (WebCore::DOMImplementation::createHTMLDocument):
2876         * dom/Document.cpp:
2877         (WebCore::Document::Document):
2878         * dom/Document.h:
2879         (WebCore):
2880         (Document):
2881         * dom/Position.cpp:
2882         (WebCore::Position::Position):
2883         (WebCore::Position::findParent):
2884         * dom/TreeScope.cpp:
2885         (WebCore::TreeScope::getSelection):
2886         * dom/make_names.pl:
2887         (printConstructorInterior):
2888         (printFactoryCppFile):
2889         (printWrapperFunctions):
2890         (printWrapperFactoryCppFile):
2891         * editing/markup.cpp:
2892         (WebCore::createFragmentFromMarkupWithContext):
2893         * html/HTMLStyleElement.cpp:
2894         (WebCore::HTMLStyleElement::registerWithScopingNode):
2895         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
2896         * html/shadow/HTMLContentElement.cpp:
2897         (WebCore::contentTagName):
2898         * inspector/DOMPatchSupport.cpp:
2899         (WebCore::DOMPatchSupport::patchDocument):
2900         * loader/FrameLoaderClient.h:
2901         (WebCore::FrameLoaderClient::allowShadowDOM):
2902         (WebCore::FrameLoaderClient::allowStyleScoped):
2903         (FrameLoaderClient):
2904         (WebCore::FrameLoaderClient::allowPagePopup):
2905         * platform/RefCountedSupplement.h: Removed.
2906         * platform/Supplementable.h:
2907         * xml/XMLHttpRequest.cpp:
2908         (WebCore::XMLHttpRequest::responseXML):
2909
2910 2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
2911
2912         [DRT] LTC:: counterValueForElementById() could be moved to Internals.
2913         https://bugs.webkit.org/show_bug.cgi?id=84406
2914
2915         Reviewed by Hajime Morita.
2916
2917         Move the counterValueForElementById from LayoutTestCotroller to Internals and
2918         remove the old platform specific implementations as it exclusively tests WebCore functionality.
2919
2920         Covered by existing test cases.
2921
2922         * testing/Internals.cpp:
2923         (WebCore::Internals::counterValue):
2924         (WebCore):
2925         * testing/Internals.h:
2926         (Internals):
2927         * testing/Internals.idl:
2928
2929 2012-06-11  Hans Wennborg  <hans@chromium.org>
2930
2931         Speech JavaScript API: Make SpeechRecognitionError an Event
2932         https://bugs.webkit.org/show_bug.cgi?id=88784
2933
2934         Reviewed by Adam Barth.
2935
2936         Make SpeechRecognitionError an Event. The spec was updated to make it
2937         an event in its own right, rather than an attribute of
2938         SpeechRecognitionEvent.
2939
2940         Test: fast/speech/scripted/speechrecognition-errors.html
2941
2942         * Modules/speech/SpeechRecognition.cpp:
2943         (WebCore::SpeechRecognition::didReceiveError):
2944         * Modules/speech/SpeechRecognitionError.cpp:
2945         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
2946         (WebCore::SpeechRecognitionError::interfaceName):
2947         (WebCore):
2948         * Modules/speech/SpeechRecognitionError.h:
2949         (WebCore::SpeechRecognitionError::create):
2950         (SpeechRecognitionError):
2951         * Modules/speech/SpeechRecognitionError.idl:
2952         * Modules/speech/SpeechRecognitionEvent.cpp:
2953         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
2954         * Modules/speech/SpeechRecognitionEvent.h:
2955         (SpeechRecognitionEventInit):
2956         (SpeechRecognitionEvent):
2957         * Modules/speech/SpeechRecognitionEvent.idl:
2958         * dom/EventNames.in:
2959
2960 2012-06-12  MORITA Hajime  <morrita@google.com>
2961
2962         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
2963         https://bugs.webkit.org/show_bug.cgi?id=88148
2964
2965         Reviewed by Dimitri Glazkov.
2966
2967         The shadow DOM availability was decided through FrameLoaderClient.
2968         But there are documents which don't have any associated frames, in
2969         which any shadow DOM related elements cannot be constructed.  That
2970         resulsted the regression.
2971
2972         This change introduces a Page-based client called
2973         ContextFeaturesClient which takes the role from FrameLoaderClient
2974         to decide the feature availability, and ContextFeatures which is a
2975         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
2976         replaced with ContextFeatures.
2977
2978         Each ContextFeatures object is owned by a Page, and is attached to
2979         each Document in the page even if the page itself has no referenct
2980         to Frames or Pages. With ContextFeatures, each Document can decide
2981         the feature availability even if it cannot reach Page or Frame.
2982
2983         On RefCountedSupplement: Document instance can live longer than a
2984         Page where it is shwon. This means that ContextFeatures instance
2985         needs to survive after owner Page destruction because it's
2986         referenced from possibly surviving Documents. RefCountedSupplement
2987         is introduced to cover this scenario: It allows supplement classes
2988         to live after Page's destruction.
2989
2990         RefCountedSupplement::hostDestroyed() is notified when the hosting
2991         page is gone. ContextFeatures clears its reference to the client
2992         using this notification.
2993
2994         Test: fast/dom/shadow/elements-in-frameless-document.html
2995
2996         * CMakeLists.txt:
2997         * GNUmakefile.list.am:
2998         * Target.pri:
2999         * WebCore.gypi:
3000         * WebCore.vcproj/WebCore.vcproj:
3001         * WebCore.xcodeproj/project.pbxproj:
3002         * bindings/scripts/CodeGeneratorV8.pm:
3003         (GenerateImplementation):
3004         * css/StyleResolver.cpp:
3005         (WebCore::StyleResolver::determineScope):
3006         * dom/ContextFeatures.cpp: Added.
3007         (WebCore):
3008         (WebCore::ContextFeaturesClient::empty):
3009         (WebCore::ContextFeatures::supplementName):
3010         (WebCore::ContextFeatures::defaultSwitch):
3011         (WebCore::ContextFeatures::shadowDOMEnabled):
3012         (WebCore::ContextFeatures::styleScopedEnabled):
3013         (WebCore::ContextFeatures::pagePopupEnabled):
3014         (WebCore::provideContextFeaturesTo):
3015         (WebCore::provideContextFeaturesToDocumentFrom):
3016         * dom/ContextFeatures.h: Added.
3017         (WebCore):
3018         (ContextFeatures):
3019         (WebCore::ContextFeatures::ContextFeatures):
3020         (WebCore::ContextFeatures::hostDestroyed):
3021         (ContextFeaturesClient):
3022         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
3023         (WebCore::ContextFeaturesClient::isEnabled):
3024         (WebCore::ContextFeatures::create):
3025         (WebCore::ContextFeatures::isEnabled):
3026         * dom/DOMAllInOne.cpp:
3027         * dom/DOMImplementation.cpp:
3028         (WebCore::DOMImplementation::createDocument):
3029         (WebCore::DOMImplementation::createHTMLDocument):
3030         * dom/Document.h:
3031         (WebCore::Document::contextFeatures):
3032         * dom/Document.cpp:
3033         (WebCore::Document::Document):
3034         (WebCore::Document::setContextFeatures):
3035         * dom/Position.cpp:
3036         (WebCore::Position::Position):
3037         (WebCore::Position::findParent):
3038         * dom/TreeScope.cpp:
3039         (WebCore::TreeScope::getSelection):
3040         * dom/make_names.pl:
3041         (printConstructorInterior):
3042         (printFactoryCppFile):
3043         (printWrapperFunctions):
3044         (printWrapperFactoryCppFile):
3045         * editing/markup.cpp:
3046         (WebCore::createFragmentFromMarkupWithContext):
3047         * html/HTMLStyleElement.cpp:
3048         (WebCore::HTMLStyleElement::registerWithScopingNode):
3049         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
3050         * html/shadow/HTMLContentElement.cpp:
3051         (WebCore::contentTagName):
3052         * inspector/DOMPatchSupport.cpp:
3053         (WebCore::DOMPatchSupport::patchDocument):
3054         * loader/FrameLoaderClient.h:
3055         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
3056         (WebCore):
3057         (RefCountedSupplement):
3058         (WebCore::RefCountedSupplement::hostDestroyed):
3059         (Wrapper):
3060         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
3061         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
3062         (WebCore::RefCountedSupplement::Wrapper::wrapped):
3063         (WebCore::RefCountedSupplement::provideTo):
3064         (WebCore::RefCountedSupplement::from):
3065         * platform/Supplementable.h:
3066         (WebCore::Supplement::isRefCountedWrapper):
3067         * xml/XMLHttpRequest.cpp:
3068         (WebCore::XMLHttpRequest::responseXML):
3069
3070 2012-06-12  Kent Tamura  <tkent@chromium.org>
3071
3072         Remove unnecessary functions: setName() and formControlName()
3073         https://bugs.webkit.org/show_bug.cgi?id=88392
3074
3075         Reviewed by Kentaro Hara.
3076
3077         'name' IDL attributes of form-related elements should be [Reflected],
3078         and we don't need to have setName(). We used formControlName() for
3079         name() implementation, and formControlName() is not needed because it
3080         just converts a null attribute to an empty string. Our binding code does it.
3081
3082         We don't remove FormAssociatedElement::name() because many C++ code use it.
3083
3084         FormAssociatedElement::name() is virtual, and HTMLInputElement overrides
3085         it so that it returns a cache of the name attribtue value because
3086         CheckedRadioButtons class needs to know an old name attribute value when
3087         the name attribtue is changed.
3088
3089         References:
3090         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-object-name
3091         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-name
3092         http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-fe-name
3093
3094         Test: fast/forms/name-attribute.html
3095
3096         * dom/Element.h: Remove formControlName().
3097         * html/FormAssociatedElement.cpp:
3098         (WebCore::FormAssociatedElement::name):
3099         Copied from formControlName() implementation of HTMLFormControlElement.
3100         * html/FormAssociatedElement.h:
3101         (FormAssociatedElement): Make name() virtual, remove formControlName().
3102         * html/FormController.cpp:
3103         (WebCore::FormController::formElementsState):
3104         Use name() instead of formControlName().
3105         * html/HTMLFormControlElement.cpp:
3106         Remove formControlName() and setName().
3107         * html/HTMLFormControlElement.h: ditto.
3108         * html/HTMLInputElement.cpp:
3109         (WebCore::HTMLInputElement::name): Renamed from formControlName().
3110         * html/HTMLInputElement.h:
3111         (HTMLInputElement): Renamed formControlName() to name(), and make it public.
3112         * html/HTMLKeygenElement.idl: Make 'name' [Reflected].
3113         * html/HTMLObjectElement.cpp: Remove formControlName().
3114         * html/HTMLObjectElement.h: ditto.
3115         * html/HTMLSelectElement.cpp:
3116         (WebCore::HTMLSelectElement::appendFormData):
3117         Use name() instead of formControlName().
3118         * html/HTMLSelectElement.idl: Make 'name' [Reflected].
3119         * html/HTMLTextAreaElement.idl: Make 'name' [Reflected].
3120
3121 2012-06-11  Nico Weber  <thakis@chromium.org>
3122
3123         Remove unused member variables found by clang's -Wunused-private-field
3124         https://bugs.webkit.org/show_bug.cgi?id=88812
3125
3126         Reviewed by Anders Carlsson.
3127
3128         Change a few |class|s that were used only to pin down the size of
3129         existing classes to |struct|, so that clang doesn't warn about these
3130         memvars.
3131
3132         No intended behavior change.
3133
3134         * Modules/geolocation/GeolocationController.cpp:
3135         (WebCore::GeolocationController::GeolocationController):
3136         * Modules/geolocation/GeolocationController.h:
3137         (GeolocationController):
3138         * Modules/webaudio/AudioContext.h:
3139         (AudioContext):
3140         * Modules/webaudio/AudioParamTimeline.h:
3141         (AudioParamTimeline):
3142         * accessibility/AccessibilityScrollbar.h:
3143         (AccessibilityScrollbar):
3144         * bindings/v8/ScriptScope.cpp:
3145         (WebCore::ScriptScope::ScriptScope):
3146         * bindings/v8/ScriptScope.h:
3147         (ScriptScope):
3148         * css/CSSValue.cpp:
3149         * css/StylePropertySet.cpp:
3150         * dom/DeviceOrientationController.cpp:
3151         (WebCore::DeviceOrientationController::DeviceOrientationController):
3152         * dom/DeviceOrientationController.h:
3153         (DeviceOrientationController):
3154         * editing/ReplaceSelectionCommand.cpp:
3155         (ReplacementFragment):
3156         (WebCore::ReplacementFragment::ReplacementFragment):
3157         * editing/TextIterator.cpp:
3158         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
3159         * editing/TextIterator.h:
3160         (SimplifiedBackwardsTextIterator):
3161         (BackwardsCharacterIterator):
3162         * html/HTMLFormCollection.cpp:
3163         (WebCore::HTMLFormCollection::HTMLFormCollection):
3164         * html/HTMLFormCollection.h:
3165         (HTMLFormCollection):
3166         * html/shadow/MediaControlElements.cpp:
3167         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
3168         * html/shadow/MediaControlElements.h:
3169         (MediaControlFullscreenButtonElement):
3170         * html/shadow/MediaControlRootElementChromium.cpp:
3171         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3172         * html/shadow/MediaControlRootElementChromium.h:
3173         (MediaControlRootElementChromium):
3174         * html/track/LoadableTextTrack.cpp:
3175         (WebCore::LoadableTextTrack::LoadableTextTrack):
3176         * html/track/LoadableTextTrack.h:
3177         (LoadableTextTrack):
3178         * inspector/CodeGeneratorInspector.py:
3179         (Generator.go):
3180         * inspector/InspectorCSSAgent.cpp:
3181         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3182         * inspector/InspectorCSSAgent.h:
3183         (InspectorCSSAgent):
3184         * inspector/InspectorDOMDebuggerAgent.cpp:
3185         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
3186         * inspector/InspectorDOMDebuggerAgent.h:
3187         (InspectorDOMDebuggerAgent):
3188         * inspector/InspectorMemoryAgent.cpp:
3189         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
3190         * inspector/InspectorMemoryAgent.h:
3191         (InspectorMemoryAgent):
3192         * notifications/NotificationController.cpp:
3193         (WebCore::NotificationController::NotificationController):
3194         * notifications/NotificationController.h:
3195         (NotificationController):
3196         * page/animation/CompositeAnimation.h:
3197         (WebCore::CompositeAnimation::CompositeAnimation):
3198         (CompositeAnimation):
3199         * platform/Length.cpp:
3200         * platform/audio/ReverbConvolver.cpp:
3201         (WebCore::ReverbConvolver::ReverbConvolver):
3202         * platform/audio/ReverbConvolver.h:
3203         (ReverbConvolver):
3204         * platform/audio/ReverbConvolverStage.cpp:
3205         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3206         * platform/audio/ReverbConvolverStage.h:
3207         (ReverbConvolverStage):
3208         * platform/graphics/TextRun.cpp:
3209         (ExpectedTextRunSize):
3210         * platform/graphics/chromium/cc/CCThreadProxy.h:
3211         (CCThreadProxy):
3212         * platform/graphics/filters/FECustomFilter.cpp:
3213         (WebCore::FECustomFilter::FECustomFilter):
3214         * platform/graphics/filters/FECustomFilter.h:
3215         (FECustomFilter):
3216         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3217         (JPEGImageReader):
3218         * platform/leveldb/LevelDBTransaction.cpp:
3219         (WebCore::LevelDBTransaction::TreeIterator::next):
3220         * platform/text/TextCodecICU.cpp:
3221         (WebCore::TextCodecICU::TextCodecICU):
3222         * platform/text/TextCodecICU.h:
3223         (TextCodecICU):
3224         * rendering/InlineBox.cpp:
3225         * rendering/InlineFlowBox.cpp:
3226         * rendering/RenderText.cpp:
3227         * rendering/style/KeyframeList.h:
3228         (WebCore::KeyframeList::KeyframeList):
3229         (KeyframeList):
3230         * rendering/svg/RenderSVGTextPath.cpp:
3231         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3232         * rendering/svg/RenderSVGTextPath.h:
3233         * rendering/svg/SVGInlineTextBox.cpp:
3234         * svg/SVGPathByteStreamSource.cpp:
3235         * svg/SVGPathByteStreamSource.h:
3236         * svg/SVGPathTraversalStateBuilder.cpp:
3237         (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
3238         * svg/SVGPathTraversalStateBuilder.h:
3239         (SVGPathTraversalStateBuilder):
3240         * xml/XSLStyleSheet.h:
3241
3242 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
3243
3244         XHR returns size==0 Blob
3245         https://bugs.webkit.org/show_bug.cgi?id=88750
3246
3247         Reviewed by Alexey Proskuryakov.
3248
3249         Response Blob's .size field must have the correct response size.
3250
3251         Test: http/tests/xmlhttprequest/response-blob-size.html
3252
3253         * xml/XMLHttpRequest.cpp:
3254         (WebCore::XMLHttpRequest::responseBlob):
3255
3256 2012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>
3257
3258         Introduce an Enclosure Element for Chromium video controls.
3259         https://bugs.webkit.org/show_bug.cgi?id=87683
3260
3261         Reviewed by Eric Carlson.
3262
3263         Updated tests.
3264
3265         The Chrome video controls are receiving a visual update. A new enclosure div is required
3266         to provide for a offset space from the video's boundaries. The visual update itself is in
3267         a separate patch.
3268
3269         * css/mediaControlsChromium.css:
3270         (video::-webkit-media-controls-enclosure):
3271         Introduce CSS for enclosure div so it doesn't show yet.
3272         * html/shadow/MediaControlRootElementChromium.cpp:
3273         (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
3274         Definition of the new enclosure element.
3275         (WebCore::MediaControlChromiumEnclosureElement::create):
3276         Definition of a create operator for the new enclosure element.
3277         (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
3278         Definition of the shadowPseudoId of -webkit-media-controls-enclosure for the enclosure div.
3279         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3280         Initialize member element for enclosure div.
3281         (WebCore::MediaControlRootElementChromium::create):
3282         Instantiate enclosure div and add into DOM between controls and panel elements.
3283         (WebCore::MediaControlRootElementChromium::setMediaController):
3284         Set media controller for enclosure div.
3285         (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
3286         Insert text track display container to enclosure rather than panel.
3287         * html/shadow/MediaControlRootElementChromium.h:
3288         (WebCore):
3289         (MediaControlChromiumEnclosureElement):
3290         (WebCore::MediaControlChromiumEnclosureElement::setMediaController):
3291         (WebCore::MediaControlChromiumEnclosureElement::mediaController):
3292         (WebCore::MediaControlChromiumEnclosureElement::isMediaControlElement):
3293         Add declaration of the new enclosure element and its member functions.
3294         (MediaControlRootElementChromium):
3295         Add member variable to controls root element to hold the enclosure element.
3296
3297 2012-06-11  Elliott Sprehn  <esprehn@gmail.com>
3298
3299         WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
3300         https://bugs.webkit.org/show_bug.cgi?id=88681
3301
3302         Reviewed by Ojan Vafai.
3303
3304         Fix bug where replacing an immediate child of a Document with a DocumentFragment
3305         would throw a HIERARCHY_REQUEST_ERR instead of replacing the node as required by DOM4.
3306         http://www.w3.org/TR/domcore/#mutation-algorithms
3307
3308         * dom/Document.cpp:
3309         (WebCore::Document::canReplaceChild):
3310             When the newChild was a DocumentFragment we incorrectly
3311             iterated over the document's children twice instead of the
3312             fragment when counting the total number of elements and
3313             doctypes to enfoce that there's only one of each.
3314
3315 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
3316
3317         [BlackBerry] Add handling of notifyDataReceived in NetworkJob even there's no data inside
3318         https://bugs.webkit.org/show_bug.cgi?id=88773
3319
3320         Reviewed by Rob Buis.
3321
3322         Handling notifyDataReceived event even if there is no data inside.
3323         This event was critical because it gives downloadFilterStream a chance
3324         to follow up NetworkStream close event, and it also make pluginView in
3325         FrameLoaderBlackBerry return normal logic.
3326
3327         RIM PR# 164563
3328
3329         Reviewed internally by Leo Yang.
3330
3331         * platform/network/blackberry/NetworkJob.cpp:
3332         (WebCore::NetworkJob::handleNotifyDataReceived):
3333
3334 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
3335
3336         [BlackBerry] Wrong mimetype for empty file link
3337         https://bugs.webkit.org/show_bug.cgi?id=88642
3338
3339         Reviewed by Rob Buis.
3340
3341         RIM PR# 164164
3342
3343         For empty file link, we shouldn't give "application/octet-stream"
3344         which will lead to download.
3345
3346         Reviewed internally by Charles Wei.
3347
3348         * platform/network/blackberry/NetworkJob.cpp:
3349         (WebCore::NetworkJob::sendResponseIfNeeded):
3350
3351 2012-06-11  Jin Yang  <jin.a.yang@intel.com>
3352
3353         GeneratorGeneratedImage should cache images for the non-tiled case
3354         https://bugs.webkit.org/show_bug.cgi?id=87094
3355
3356         Reviewed by Simon Fraser.
3357
3358         We cache the generated image if generator is not changed. By compared
3359         with generating image on the fly, it will lose a little pixel precision
3360         and several layout tests should be rebaselined. With this patch, the IE test
3361         drive benchmark "Bayou" can gain about 50%.
3362
3363         No new tests. Performance optimization.
3364
3365         * platform/graphics/GeneratorGeneratedImage.cpp:
3366         (WebCore::GeneratorGeneratedImage::draw):
3367
3368 2012-06-11  Vincent Scheib  <scheib@chromium.org>
3369
3370         Add new Pointer Lock spec attribute webkitPointerLockElement.
3371         https://bugs.webkit.org/show_bug.cgi?id=88799
3372
3373         Reviewed by Dimitri Glazkov.
3374
3375         Part of a series of refactoring changes to update pointer lock API to
3376         the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
3377
3378         New attribute webkitPointerLockElement added. Follow up patches
3379         will remove the previous isLocked attribute. Tests updated to use
3380         the new attribute.
3381
3382         * bindings/generic/RuntimeEnabledFeatures.h:
3383         (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled):
3384         * dom/Document.cpp:
3385         (WebCore):
3386         (WebCore::Document::webkitPointerLockElement):
3387         * dom/Document.h:
3388         (Document):
3389         * dom/Document.idl:
3390         * page/PointerLockController.h:
3391         (WebCore::PointerLockController::element):
3392
3393 2012-06-11  Vincent Scheib  <scheib@chromium.org>
3394
3395         Consolidate Pointer Lock runtime enabled flags to just one.
3396         https://bugs.webkit.org/show_bug.cgi?id=88810
3397
3398         Reviewed by Dimitri Glazkov.
3399
3400         No new tests.
3401
3402         * bindings/generic/RuntimeEnabledFeatures.h:
3403         (WebCore::RuntimeEnabledFeatures::pointerLockEnabled):
3404         (WebCore::RuntimeEnabledFeatures::setPointerLockEnabled):
3405         * dom/MouseEvent.idl:
3406         * page/Navigator.idl:
3407
3408 2012-06-11  Alexis Menard  <alexis.menard@openbossa.org>
3409
3410         [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
3411         https://bugs.webkit.org/show_bug.cgi?id=88804
3412
3413         Reviewed by Tony Chang.
3414
3415         Protect box-decoration-break behind a feature flag enabled by default.
3416
3417         No new tests : no behavior change here.
3418
3419         * Configurations/FeatureDefines.xcconfig:
3420         * GNUmakefile.am:
3421         * css/CSSComputedStyleDeclaration.cpp:
3422         (WebCore):
3423         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3424         * css/CSSParser.cpp:
3425         (WebCore::isValidKeywordPropertyAndValue):
3426         (WebCore::isKeywordPropertyID):
3427         (WebCore::CSSParser::parseValue):
3428         * css/CSSPrimitiveValueMappings.h:
3429         (WebCore):
3430         * css/CSSProperty.cpp:
3431         (WebCore::CSSProperty::isInheritedProperty):
3432         * css/CSSValueKeywords.in:
3433         * css/StyleBuilder.cpp:
3434         (WebCore::StyleBuilder::StyleBuilder):
3435         * rendering/style/RenderStyle.h:
3436         * rendering/style/StyleBoxData.cpp:
3437         (WebCore::StyleBoxData::StyleBoxData):
3438         (WebCore::StyleBoxData::operator==):
3439         * rendering/style/StyleBoxData.h:
3440         (StyleBoxData):
3441
3442 2012-06-11  James Robinson  <jamesr@chromium.org>
3443
3444         [chromium] Port DrawingBufferChromium from TextureLayerChromium over to WebExternalTextureLayer
3445         https://bugs.webkit.org/show_bug.cgi?id=86273
3446
3447         Reviewed by Adrienne Walker.
3448
3449         This converts more WebCore code over to using public APIs instead of internal compositor layer types.
3450
3451         Refactor only, no change in behavior thus no new tests.
3452
3453         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3454         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
3455         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
3456         (WebCore::DrawingBufferPrivate::layer):
3457         (DrawingBufferPrivate):
3458         * platform/graphics/chromium/TextureLayerChromium.cpp:
3459         (WebCore::TextureLayerChromium::~TextureLayerChromium):
3460         (WebCore::TextureLayerChromium::setRateLimitContext):
3461         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
3462         (WebCore::TextureLayerChromium::update):
3463         * platform/graphics/chromium/TextureLayerChromium.h:
3464         (WebKit):
3465         (TextureLayerChromiumClient):
3466
3467 2012-06-11  Max Feil  <mfeil@rim.com>
3468
3469         [BlackBerry] Seek calls are being unnecessarily delayed
3470         https://bugs.webkit.org/show_bug.cgi?id=88732
3471
3472         Reviewed by Antonio Gomes.
3473
3474         There is a problem with the way the m_userDrivenSeekTimer is
3475         implemented. When MediaPlayerPrivate::seek() is called, there
3476         is always a 100ms delay even if the timer is not running. The
3477         timer is supposed to space out (i.e. throttle) repeated seeks
3478         that come in too soon after a previous seek, but currently it
3479         is slowing down even single seeks and seeks that come in with
3480         adequate delay after a previous seek. I fixed this in my patch
3481         by improving the way the timer fired function is called.
3482         
3483         A note on the new m_lastSeekTimePending flag: This flag is
3484         needed so that userDrivenSeekTimerFired() knows whether or not
3485         to perform the seek. The only case where this flag will not be
3486         set is if no MediaPlayerPrivate::seek() call came in while the
3487         timer was active, in which case it's important to do nothing.
3488         I could encode this flag's information into the m_lastSeekTime
3489         float, for example by initializing it and resetting it to NAN
3490         and using isnan(). But I feel that using a separate bool is a
3491         more portable approach.
3492
3493         No new tests. I would like to propose not including a layout test
3494         with this fix. Doing timing tests for 100ms delays is tricky
3495         from Javascript, and I don't think the benefit of such a test
3496         outweighs the extra time it would take to develop one. The test
3497         would also be a problem to maintain as it may give different
3498         results over different runs and across different target hardware.
3499
3500         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3501         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3502         (WebCore::MediaPlayerPrivate::seek):
3503         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
3504         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
3505         (MediaPlayerPrivate):
3506
3507 2012-06-11  Max Feil  <mfeil@rim.com>
3508
3509         [BlackBerry] Unexpected repeats of short media
3510         https://bugs.webkit.org/show_bug.cgi?id=88733
3511
3512         Reviewed by Antonio Gomes.
3513
3514         The m_userDrivenSeekTimer is causing unwanted repeats of short
3515         media such as sound effects because it is causing the current
3516         time to not reflect that the media has finished playing.
3517         This problem only affects media whose duration is close to
3518         or less than the SeekSubmissionDelay, which is currently
3519         set to 100ms. My fix is to ignore the userDrivenSeekTimer in
3520         MediaPlayerPrivate::currentTime() if the duration of the media
3521         is within twice the SeekSubmissionDelay. Seek drag smoothness
3522         is a non-issue for such short media.
3523
3524         Test: platform/blackberry/media/short-media-repeats-correctly.html
3525
3526         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3527         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3528         (WebCore):
3529         (WebCore::MediaPlayerPrivate::currentTime):
3530         (WebCore::MediaPlayerPrivate::seek):
3531         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
3532         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
3533         (MediaPlayerPrivate):
3534
3535 2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>
3536
3537         Account for margin after when laying out <legend> element
3538         https://bugs.webkit.org/show_bug.cgi?id=35981
3539
3540         Reviewed by Abhishek Arya.
3541
3542         Tests: fast/forms/legend-after-margin-horizontal-writing-mode.html
3543                fast/forms/legend-after-margin-vertical-writing-mode.html
3544                fast/forms/legend-after-margin-with-before-border-horizontal-mode.html
3545                fast/forms/legend-small-after-margin-before-border-horizontal-mode.html
3546
3547         The existing code would ignore margin after when layouting out the <legend>. This
3548         change only adds the code to handle the margin after, the margin before is still
3549         ignored as it's not obvious how it should be working.
3550
3551         * rendering/RenderFieldset.cpp:
3552         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
3553         Split the code in 2 code paths to reflect how we position and size. Those are covered by the
3554         tests above.
3555
3556 2012-06-11  James Robinson  <jamesr@chromium.org>
3557
3558         [chromium] Use WebGraphicsContext3D in rate limiting logic inside compositor
3559         https://bugs.webkit.org/show_bug.cgi?id=86259
3560
3561         Reviewed by Adrienne Walker.
3562
3563         This refactors the compositor's rate limiting implementation to use the Platform API's WebGraphicsContext3D
3564         directly instead of WebCore::GraphicsContext3D to cut down on the number of spurious WebCore dependencies in the
3565         compositor.  The one change in contract is that the caller to CCLayerTreeHost::startRateLimit() now has to call
3566         CCLayerTreeHost::stopRateLimit() before allowing the referenced context to go away since CCLayerTreeHost no
3567         longer retains a reference, but this was always happening already.
3568
3569         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3570         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
3571         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
3572         * platform/graphics/chromium/RateLimiter.cpp:
3573         (WebCore::RateLimiter::create):
3574         (WebCore::RateLimiter::RateLimiter):
3575         (WebCore::RateLimiter::start):
3576         (WebCore::RateLimiter::rateLimitContext):
3577         * platform/graphics/chromium/RateLimiter.h:
3578         (WebKit):
3579         (RateLimiter):
3580         * platform/graphics/chromium/TextureLayerChromium.cpp:
3581         (WebCore::TextureLayerChromium::~TextureLayerChromium):
3582         (WebCore::TextureLayerChromium::setRateLimitContext):
3583         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
3584         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3585         (WebCore::CCLayerTreeHost::startRateLimiter):
3586         (WebCore::CCLayerTreeHost::stopRateLimiter):
3587         (WebCore::CCLayerTreeHost::rateLimit):
3588         (WebCore):
3589         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3590         (CCLayerTreeHost):
3591
3592 2012-06-11  Dana Jansens  <danakj@chromium.org>
3593
3594         [chromium] Separate CCVideoDrawQuad and from the layer tree and video provider by removing ManagedTexture and WebVideoFrame pointers from the quad
3595         https://bugs.webkit.org/show_bug.cgi?id=88363
3596
3597         Reviewed by Adrienne Walker.
3598
3599         CCVideoDrawQuad should not contain any pointers to data in the layer
3600         tree so we are able to serialize it across process boundaries. This
3601         patch removes the ManagedTexture pointers from the quad class,
3602         replacing them with texture ids. It removes the WebVideoFrame* from
3603         the quad, replacing it with the frame provider's texture id included
3604         in the WebVideoFrame structure. And it uses a WebTransformationMatrix
3605         instead of a pointer to an array of floats.
3606
3607         Texture allocation is done in CCVideoLayerImpl via the
3608         contentsTextureAllocator, so that the memory usage can be tracked.
3609
3610         We move the copyPlaneToTextures() method back from LayerRendererChromium
3611         to CCVideoLayerImpl, as this method uses the texture data pointer in the
3612         WebVideoFrame, and we do not want to give this pointer to the quad
3613         class. Instead, this method makes use of the LayerTextureSubImage class
3614         to copy the pixel data into the texture.
3615
3616         LayerTextureSubImage is updated to allow non-4byte texture formats.
3617
3618         * platform/graphics/chromium/LayerRendererChromium.cpp:
3619         (WebCore::LayerRendererChromium::drawYUV):
3620         (WebCore::LayerRendererChromium::drawRGBA):
3621         (WebCore::LayerRendererChromium::drawNativeTexture2D):
3622         (WebCore::LayerRendererChromium::drawStreamTexture):
3623         (WebCore::LayerRendererChromium::drawVideoQuad):
3624         * platform/graphics/chromium/LayerTextureSubImage.cpp:
3625         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
3626         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
3627         * platform/graphics/chromium/TextureCopier.cpp:
3628         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
3629         (WebCore::CCVideoDrawQuad::create):
3630         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
3631         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
3632         (CCVideoDrawQuad):
3633         (WebCore::CCVideoDrawQuad::planes):
3634         (WebCore::CCVideoDrawQuad::frameProviderTextureId):
3635         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3636         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
3637         (WebCore::CCVideoLayerImpl::willDraw):
3638         (WebCore::CCVideoLayerImpl::willDrawInternal):
3639         (WebCore::CCVideoLayerImpl::appendQuads):
3640         (WebCore::CCVideoLayerImpl::didDraw):
3641         (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
3642         (WebCore):
3643         (WebCore::CCVideoLayerImpl::FramePlane::freeData):
3644         (WebCore::CCVideoLayerImpl::allocatePlaneData):
3645         (WebCore::CCVideoLayerImpl::copyPlaneData):
3646         (WebCore::CCVideoLayerImpl::freePlaneData):
3647         (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
3648         (WebCore::CCVideoLayerImpl::didLoseContext):
3649         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3650         (FramePlane):
3651         (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
3652
3653 2012-06-11  Joshua Bell  <jsbell@chromium.org>
3654
3655         IndexedDB: Object stores are not successfully deleted
3656         https://bugs.webkit.org/show_bug.cgi?id=88788
3657
3658         Reviewed by Tony Chang.
3659
3660         Discovered while working on http://webkit.org/b/83074 - object stores are not
3661         being deleted from the backing store. Deletion would succeed in the in-memory
3662         data structures, but after closing/re-opening the backing store the object store
3663         (but not its indexes/data) would reappear. Due to 83074, this isn't detectable
3664         by DRT without a full restart.
3665
3666         Test: [chromium] webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
3667
3668         * Modules/indexeddb/IDBLevelDBCoding.cpp:
3669         (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
3670
3671 2012-06-05  Eric Uhrhane <ericu@chromium.org>
3672
3673         Crash in fast/files/read tests during Garbage Collection
3674         https://bugs.webkit.org/show_bug.cgi?id=87165
3675
3676         Reviewed by Michael Saboff
3677
3678         Fix previous fix for hasPendingActivity, and fix a bug in a complex
3679         abort case as well--abort during the final progress event of a write
3680         would hang the writer.
3681
3682         * Modules/filesystem/FileWriter.cpp:
3683         (WebCore::FileWriter::stop):
3684         (WebCore::FileWriter::write):
3685         (WebCore::FileWriter::truncate):
3686         (WebCore::FileWriter::didWrite):
3687         (WebCore::FileWriter::didTruncate):
3688         (WebCore::FileWriter::didFail):
3689         (WebCore::FileWriter::completeAbort):
3690         (WebCore::FileWriter::doOperation):
3691         (WebCore::FileWriter::signalCompletion):
3692
3693 2012-06-11  Shawn Singh  <shawnsingh@chromium.org>
3694
3695         [chromium] Implement position:fixed in compositor thread
3696         https://bugs.webkit.org/show_bug.cgi?id=70103
3697
3698         Reviewed by Adrienne Walker.
3699
3700         Significant contributions to this patch by Alpha Lam and Sami Kyostila.
3701
3702         This patch is the compositor-side change that adds support for
3703         fixed-position layers to be composited layers. Before this patch,
3704         fixed-position elements were positioned only by WebCore (i.e. main
3705         thread when painting), and the compositor did not have enough
3706         knowledge on its own to position it properly. This patch adds the
3707         necessary math and plumbs the necessary layer information so that
3708         the impl thread can properly position fixed-position elements on
3709         its own. This support is necessary for correctness of composited
3710         fixed-position elements, which can greatly help to avoid
3711         repainting container layers when scrolling with a fixed-position
3712         layer.
3713
3714         There also needs to be WebCore-side support for this, which is
3715         addressed in https://bugs.webkit.org/show_bug.cgi?id=78864
3716
3717         Unit tests added to CCLayerTreeHostCommonTest:
3718           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDirectContainer
3719           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithTransformedDirectContainer
3720           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainer
3721           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainerAndTransforms
3722           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleScrollDeltas
3723           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithIntermediateSurfaceAndTransforms
3724           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleIntermediateSurfaces
3725           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface
3726           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatIsAlsoFixedPositionContainer
3727           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatHasNoContainer
3728
3729         * platform/graphics/chromium/LayerChromium.cpp:
3730         (WebCore::LayerChromium::LayerChromium):
3731         (WebCore::LayerChromium::pushPropertiesTo):
3732         * platform/graphics/chromium/LayerChromium.h:
3733         (WebCore::LayerChromium::setIsContainerForFixedPositionLayers):
3734         (WebCore::LayerChromium::isContainerForFixedPositionLayers):
3735         (LayerChromium):
3736         (WebCore::LayerChromium::setFixedToContainerLayerVisibleRect):
3737         (WebCore::LayerChromium::fixedToContainerLayerVisibleRect):
3738         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3739         (WebCore::CCLayerImpl::CCLayerImpl):
3740         * platform/graphics/chromium/cc/CCLayerImpl.h:
3741         (WebCore::CCLayerImpl::setIsContainerForFixedPositionLayers):
3742         (WebCore::CCLayerImpl::isContainerForFixedPositionLayers):
3743         (CCLayerImpl):
3744         (WebCore::CCLayerImpl::setFixedToContainerLayerVisibleRect):
3745         (WebCore::CCLayerImpl::fixedToContainerLayerVisibleRect):
3746         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3747         (WebCore::computeScrollCompensationForThisLayer):
3748         (WebCore):
3749         (WebCore::computeScrollCompensationMatrixForChildren):
3750         (WebCore::calculateDrawTransformsInternal):
3751         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
3752
3753 2012-06-11  Sam Weinig  <sam@webkit.org>
3754
3755         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
3756         https://bugs.webkit.org/show_bug.cgi?id=88723
3757
3758         Reviewed by Dan Bernstein.
3759
3760         * WebCore.exp.in:
3761         Update export.
3762         * editing/Editor.cpp:
3763         (WebCore::Editor::rangeOfString):
3764         (WebCore::Editor::countMatchesForText):
3765         * editing/Editor.h:
3766         (Editor):
3767         * loader/FrameLoader.cpp:
3768         (WebCore::FrameLoader::findFrameForNavigation):
3769         * page/DOMWindow.cpp:
3770         (WebCore::DOMWindow::parent):
3771         (WebCore::DOMWindow::top):
3772         * page/EventHandler.cpp:
3773         (WebCore::EventHandler::hitTestResultAtPoint):
3774         * page/Frame.cpp:
3775         (WebCore::Frame::Frame):
3776         * page/Frame.h:
3777         (Frame):
3778         * page/FrameTree.cpp:
3779         (WebCore::FrameTree::parent):
3780         (WebCore::FrameTree::top):
3781         * page/FrameTree.h:
3782         (FrameTree):
3783         * page/Location.cpp:
3784         (WebCore::Location::ancestorOrigins):
3785         * xml/XMLTreeViewer.cpp:
3786         (WebCore::XMLTreeViewer::hasNoStyleInformation):
3787         Update for the removal of disconnected frames and text search exclusions concepts.
3788
3789 2012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>
3790
3791         SVGImageCache leaks image data
3792         https://bugs.webkit.org/show_bug.cgi?id=87792
3793
3794         There are two functions to remove a client from a CachedImage:
3795         - CachedResource::removeClient()
3796         - CachedImage::removeClientForRenderer().
3797         It's easy to make error to call the former which will leak the cached
3798         image buffers in SVGImageCache.
3799
3800         This change combined the two by adding the virtual 
3801         CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
3802         cleanup in the function.
3803
3804         Reviewed by Nikolas Zimmermann.
3805
3806         Test: svg/as-image/svg-image-leak-cached-data.html
3807
3808         * loader/cache/CachedFont.h:
3809         (WebCore::CachedFontClient::resourceClientType): Added 'const'.
3810         * loader/cache/CachedImage.cpp:
3811         (WebCore):
3812         (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
3813         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
3814         * loader/cache/CachedImage.h:
3815         (CachedImage):
3816         (WebCore::CachedImageClient::resourceClientType): Added 'const'.
3817         * loader/cache/CachedRawResource.h:
3818         (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
3819         * loader/cache/CachedResource.cpp:
3820         (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
3821         * loader/cache/CachedResource.h:
3822         (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
3823         * loader/cache/CachedResourceClient.h:
3824         (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
3825         * loader/cache/CachedSVGDocument.h:
3826         (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
3827         * loader/cache/CachedStyleSheetClient.h:
3828         (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
3829         * rendering/style/StyleCachedImage.cpp:
3830         (WebCore::StyleCachedImage::removeClient):
3831         * rendering/style/StyleCachedImageSet.cpp:
3832         (WebCore::StyleCachedImageSet::removeClient):
3833         * svg/graphics/SVGImageCache.cpp:
3834         (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
3835         (WebCore::SVGImageCache::removeClientFromCache):
3836         (WebCore::SVGImageCache::setRequestedSizeAndScales): 
3837         (WebCore::SVGImageCache::requestedSizeAndScales):
3838         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
3839         * svg/graphics/SVGImageCache.h:
3840         (WebCore):
3841         (SVGImageCache):
3842
3843 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
3844
3845         [Chromium] Call shared timer functions directly
3846         https://bugs.webkit.org/show_bug.cgi?id=88781
3847
3848         Reviewed by Adam Barth.
3849
3850         Part of a refactoring series. See tracking bug 82948.
3851
3852         * platform/chromium/PlatformSupport.h:
3853         (PlatformSupport):
3854         * platform/chromium/SharedTimerChromium.cpp:
3855         (WebCore::setSharedTimerFiredFunction):
3856         (WebCore::setSharedTimerFireInterval):
3857
3858 2012-06-11  Pravin D  <pravind.2k4@gmail.com>
3859
3860         Relative pos. input fields in columns vanish when you start typing in them
3861         https://bugs.webkit.org/show_bug.cgi?id=76834
3862
3863         Reviewed by Julien Chaffraix.
3864
3865         Test: fast/multicol/multicol-with-child-renderLayer-for-input.html
3866
3867         * page/FrameView.cpp:
3868         (WebCore::updateLayerPositionFlags):
3869         Helper function to prepare the UpdateLayerPositionsFlags based on the input parameters.
3870         If didFullRepaint flag is set, then CheckForRepaints flag is removed from the default flags.
3871         Also during a relayout of a subtree, if the RenderLayer of the subtree root is paginated then updatePagination flag is
3872         included in the flags. 
3873
3874         (WebCore):
3875         (WebCore::FrameView::layout):
3876         Now uses the helper function updateLayerPositionFlags() to get the final set of UpdateLayerPositionsFlags.
3877
3878         * rendering/RenderLayer.h:
3879         (WebCore::RenderLayer::isPaginated):
3880         (RenderLayer):
3881         isPaginated function is made public so that FrameView class can use it prepare UpdateLayerPositionsFlags.
3882
3883 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
3884
3885         [Chromium] Remove some dead code in PasteboardChromium
3886         https://bugs.webkit.org/show_bug.cgi?id=88782
3887
3888         Reviewed by Adam Barth.
3889
3890         Part of a refactoring series. See tracking bug 82948.
3891         Leftover detritus from bug 88038.
3892
3893         * platform/chromium/PasteboardChromium.cpp:
3894         (WebCore::Pasteboard::documentFragment):
3895
3896 2012-06-11  Peter Beverloo  <peter@chromium.org>
3897
3898         [Chromium] Theme updates for Android in menu list rendering and selection backgrounds
3899         https://bugs.webkit.org/show_bug.cgi?id=88775
3900
3901         Reviewed by Adam Barth.
3902
3903         For Chrome on Android, use the width of the scrollbar down arrow instead
3904         of the scrollbar's width for determining the arrow padding to apply for
3905         menu list rendering, as WebKit isn't drawing a scrollbar (thus width=0).
3906
3907         Furthermore, change the default active selection background color to be
3908         equal to the tap highlighting color.
3909
3910         These changes should be covered by existing layout tests.
3911
3912         * rendering/RenderThemeChromiumAndroid.cpp:
3913         (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
3914         (WebCore): Retrieve the scrollbar down arrow's size via PlatformSupport.
3915         * rendering/RenderThemeChromiumAndroid.h: Override the menuListArrowPadding
3916             and platformActiveSelectionBackgroundColor methods, and add a static
3917             static RGBA32 color for the default active selection bg color.
3918         * rendering/RenderThemeChromiumSkia.cpp:
3919         (WebCore::RenderThemeChromiumSkia::menuListArrowPadding): Default to
3920             the scrollbar thickness, not changing behavior for non-Android.
3921         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding): Instead
3922             of polling the scrollbar thickness, call menuListArrowPadding().
3923         * rendering/RenderThemeChromiumSkia.h: 
3924         (RenderThemeChromiumSkia): Add the menuListArrowPadding() as a protected method.
3925
3926 2012-06-11  David Barr  <davidbarr@chromium.org>
3927
3928         Add css3-images image-resolution (dppx only)
3929         https://bugs.webkit.org/show_bug.cgi?id=85332
3930
3931         Reviewed by Tony Chang.
3932
3933         The css3-images module is at candidate recommendation.
3934         http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution
3935
3936         Test: fast/css/image-resolution.html
3937
3938         * css/CSSComputedStyleDeclaration.cpp:
3939         (WebCore):
3940         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3941         * css/CSSGrammar.y:
3942         * css/CSSParser.cpp:
3943         (WebCore::CSSParser::validUnit):
3944         (WebCore::CSSParser::createPrimitiveNumericValue):
3945         (WebCore::unitFromString):
3946         (WebCore::CSSParser::parseValidPrimitive):
3947         (WebCore::CSSParser::parseValue):
3948         (WebCore):
3949         (WebCore::CSSParser::parseImageResolution):
3950         (WebCore::CSSParser::detectNumberToken):
3951         * css/CSSParser.h:
3952         * css/CSSPrimitiveValue.cpp:
3953         (WebCore::isValidCSSUnitTypeForDoubleConversion):
3954         (WebCore::unitCategory):
3955         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
3956         (WebCore::CSSPrimitiveValue::customCssText):
3957         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
3958         * css/CSSPrimitiveValue.h:
3959         * css/CSSProperty.cpp:
3960         (WebCore::CSSProperty::isInheritedProperty):
3961         * css/CSSPropertyNames.in:
3962         * css/StyleBuilder.cpp:
3963         (WebCore):
3964         (ApplyPropertyImageResolution):
3965         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
3966         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
3967         (WebCore::ApplyPropertyImageResolution::applyValue):
3968         (WebCore::ApplyPropertyImageResolution::createHandler):
3969         (WebCore::StyleBuilder::StyleBuilder):
3970         * css/StyleResolver.cpp:
3971         (WebCore::StyleResolver::collectMatchingRulesForList):
3972         * rendering/RenderImage.cpp:
3973         (WebCore::RenderImage::styleDidChange):
3974         (WebCore::RenderImage::imageDimensionsChanged):
3975         * rendering/style/RenderStyle.cpp:
3976         (WebCore::RenderStyle::diff):
3977         * rendering/style/RenderStyle.h:
3978         * rendering/style/StyleRareInheritedData.cpp:
3979         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
3980         (WebCore::StyleRareInheritedData::operator==):
3981         * rendering/style/StyleRareInheritedData.h:
3982         (StyleRareInheritedData):
3983
3984 2012-06-05  Dana Jansens  <danakj@chromium.org>
3985
3986         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
3987         https://bugs.webkit.org/show_bug.cgi?id=88371
3988
3989         Reviewed by James Robinson.
3990
3991         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
3992
3993         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
3994         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
3995         (WebCore::CCIOSurfaceLayerImpl::willDraw):
3996
3997 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
3998
3999         Unreviewed. Fix make distcheck issues.
4000
4001         * GNUmakefile.am: Add idl files in editing dir to EXTRA_DIST.
4002         * GNUmakefile.list.am: Add missing header file.
4003
4004 2012-06-11  Dan Bernstein  <mitz@apple.com>
4005
4006         Reverted r119940 because it caused multiple media tests to fail on Lion.
4007
4008         * html/HTMLMediaElement.cpp:
4009         (WebCore::HTMLMediaElement::prepareForLoad):
4010         (WebCore):
4011         (WebCore::HTMLMediaElement::userCancelledLoad):
4012         * html/HTMLMediaElement.h:
4013         (HTMLMediaElement):
4014         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
4015         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
4016
4017 2012-06-11  Zoltan Horvath  <zoltan@webkit.org>
4018
4019         [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...)$
4020         https://bugs.webkit.org/show_bug.cgi?id=87841
4021
4022         Reviewed by Simon Hausmann.
4023
4024         No new tests were needed.
4025
4026         * Target.pri:
4027         * WebCore.pri:
4028         * platform/image-decoders/ImageDecoder.cpp:
4029         (WebCore::ImageDecoder::create):
4030
4031 2012-06-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
4032
4033         Add QML api for setting device width and height
4034         https://bugs.webkit.org/show_bug.cgi?id=88777
4035
4036        &n