4996ec5ced9f7401bb24d3c18cbaac37b2814933
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-12  Adrienne Walker  <enne@google.com>
2
3         [chromium] Paint scrollbars on WebKit thread and composite those textures
4         https://bugs.webkit.org/show_bug.cgi?id=88145
5
6         Reviewed by James Robinson.
7
8         Scrollbars were previously painted and uploaded on the compositor
9         thread. This isn't possible to do for many scrollbar themes. This
10         patch changes ScrollbarLayerChromium to paint the scrollbar into two
11         parts: the thumb, and everything else. These are uploaded into
12         textures and synced over to the CCScrollbarImpl where they are
13         composited and drawn.
14
15         Mac and overlay scrollbars are still not enabled to have compositor
16         thread-updated scrollbars.
17
18         As a bonus, fix LayerRendererChromium::drawTextureQuad to draw quads
19         that do not fill the entire layer bounds.
20
21         Tested by existing layout and unit tests by removing the condition
22         that these scrollbar layers are only created when the threaded proxy
23         exists.
24
25         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
26         (WebCore::scrollbarLayerDidChange):
27         * platform/ScrollbarThemeComposite.cpp:
28         (WebCore::ScrollbarThemeComposite::thumbRect):
29         (WebCore):
30         * platform/ScrollbarThemeComposite.h:
31         (ScrollbarThemeComposite):
32         * platform/graphics/chromium/LayerRendererChromium.cpp:
33         (WebCore::LayerRendererChromium::drawTextureQuad):
34         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
35         (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
36         (WebCore::ScrollbarLayerChromium::theme):
37         (WebCore):
38         (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
39         (ScrollbarBackgroundPainter):
40         (WebCore::ScrollbarBackgroundPainter::create):
41         (WebCore::ScrollbarBackgroundPainter::paint):
42         (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
43         (ScrollbarThumbPainter):
44         (WebCore::ScrollbarThumbPainter::create):
45         (WebCore::ScrollbarThumbPainter::paint):
46         (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
47         (WebCore::ScrollbarLayerChromium::setLayerTreeHost):
48         (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
49         (WebCore::ScrollbarLayerChromium::updatePart):
50         (WebCore::ScrollbarLayerChromium::update):
51         * platform/graphics/chromium/ScrollbarLayerChromium.h:
52         (WebCore):
53         (ScrollbarLayerChromium):
54         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
55         (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
56         (WebCore::CCScrollbarLayerImpl::appendQuads):
57         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
58         (WebCore::CCScrollbarLayerImpl::setBackgroundTextureId):
59         (WebCore::CCScrollbarLayerImpl::setThumbTextureId):
60         (CCScrollbarLayerImpl):
61
62 2012-06-12  Tony Chang  <tony@chromium.org>
63
64         Replaced items in a flexbox should be coerced to display:block
65         https://bugs.webkit.org/show_bug.cgi?id=87068
66
67         Reviewed by Ojan Vafai.
68
69         The flexbox spec lists HTML tags that should automatically be converted
70         to display:block when a flex child. It also says that atomic inline-level
71         children should become block (e.g., inline-table should be treated as table).
72         http://dev.w3.org/csswg/css3-flexbox/#flex-items
73
74         Test: css3/flexbox/flexitem.html
75
76         * css/StyleResolver.cpp:
77         (WebCore::StyleResolver::collectMatchingRulesForList):
78
79 2012-06-12  Joshua Bell  <jsbell@chromium.org>
80
81         IndexedDB: ObjectStore/Index shouldn't hold reference to backing store
82         https://bugs.webkit.org/show_bug.cgi?id=83074
83
84         Reviewed by Tony Chang.
85
86         We should be able to collect and close the leveldb backing store as soon as the database
87         connection is closed, but the IDBObjectStoreBackendImpl and IDBIndexBackendImpl were
88         holding RefPtrs, and those objects are kept alive by script references.
89
90         Replaced RefPtrs to the IDBBackingStore with pointers to the IDBDatabase. On the back end,
91         IDBDatabaseBackendImpl maintains a RefPtr to the IDBObjectStoreBackendImpl object, so
92         a raw pointer back is safe. On the front end, the IDBObjectStore maintains a RefPtr to
93         the IDBDatabase so script can navigate upwards. Ditto on both ends for the ObjectStore/Index
94         relationship. The frontend objects maintain RefPtrs to the backend objects, so the backend
95         objects and their owners are maintained as long as there's a script reference. To ensure
96         that all LevelDB objects are destructed in the right order, transactions indirectly track all
97         open cursors and ensure they are closed when the transaction finishes, and database closing
98         is explicitly prevented from occurring until transactions are complete.
99
100         Also made IDBDatabaseBackendImpl handle a null IDBFactoryBackendImpl pointer, for testing.
101
102         Tests: storage/indexeddb/database-close.html
103                storage/indexeddb/persistence.html
104                [Chromium] webkit_unit_tests --gtest_filter=IDBDatabaseBackendTest.BackingStoreRetention
105
106         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
107         (WebCore::IDBCursorBackendImpl::close): Release LevelDB resources when closed to allow backing store to close.
108         * Modules/indexeddb/IDBCursorBackendImpl.h:
109         (WebCore):
110         * Modules/indexeddb/IDBDatabase.cpp: Ensure connection close deferred until all transactions are finished.
111         (WebCore::IDBDatabase::transactionCreated): Accounting.
112         (WebCore::IDBDatabase::transactionFinished): Accounting.
113         (WebCore::IDBDatabase::close):
114         (WebCore):
115         (WebCore::IDBDatabase::closeConnection):
116         * Modules/indexeddb/IDBDatabase.h:
117         (IDBDatabase):
118         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Track outstanding transactions for forced-close scenarios.
119         (WebCore::IDBDatabaseBackendImpl::~IDBDatabaseBackendImpl):
120         (WebCore::IDBDatabaseBackendImpl::createObjectStore): Don't pass in backing store reference.
121         (WebCore::IDBDatabaseBackendImpl::setVersion): Use transaction() for consistent accounting.
122         (WebCore::IDBDatabaseBackendImpl::transactionFinished): Accounting.
123         (WebCore::IDBDatabaseBackendImpl::transaction): Accounting.
124         (WebCore::IDBDatabaseBackendImpl::close): Unregister from factory when last connection is closed.
125         (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Don't pass in backing store reference.
126         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
127         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
128         (WebCore):
129         (IDBDatabaseBackendImpl):
130         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
131         (WebCore::IDBFactoryBackendImpl::deleteDatabase): Don't hang on to deleted databases eternally.
132         * Modules/indexeddb/IDBFactoryBackendImpl.h: Backend map controls IDBDatabaseBackend lifetimes.
133         (IDBFactoryBackendImpl):
134         * Modules/indexeddb/IDBIndexBackendImpl.cpp: Don't hold backing store references.
135         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
136         * Modules/indexeddb/IDBIndexBackendImpl.h:
137         (WebCore::IDBIndexBackendImpl::create):
138         (IDBIndexBackendImpl):
139         (WebCore::IDBIndexBackendImpl::backingStore):
140         (WebCore::IDBIndexBackendImpl::databaseId):
141         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Don't hold backing store references.
142         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
143         (WebCore::IDBObjectStoreBackendImpl::createIndex):
144         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
145         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
146         (WebCore::IDBObjectStoreBackendImpl::create):
147         (IDBObjectStoreBackendImpl):
148         (WebCore::IDBObjectStoreBackendImpl::backingStore):
149         (WebCore::IDBObjectStoreBackendImpl::databaseId):
150         * Modules/indexeddb/IDBRequest.cpp:
151         (WebCore::IDBRequest::onSuccess):
152         * Modules/indexeddb/IDBTransaction.cpp:
153         (WebCore::IDBTransaction::IDBTransaction): For IDBDatabase accounting, allow ref during ctor.
154         (WebCore::IDBTransaction::onAbort): Accounting.
155         (WebCore::IDBTransaction::onComplete): Accounting.
156         * Modules/indexeddb/IDBTransaction.h:
157         (WebCore::IDBTransaction::isVersionChange): Convenience function.
158         (IDBTransaction):
159         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
160         (WebCore::IDBTransactionBackendImpl::abort): Cleanup ordering to allow backing store to close.
161         (WebCore::IDBTransactionBackendImpl::commit): Cleanup ordering to allow backing store to close.
162
163 2012-06-12  Adrienne Walker  <enne@google.com>
164
165         [chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
166         https://bugs.webkit.org/show_bug.cgi?id=88895
167
168         Reviewed by James Robinson.
169
170         We should only set visible layer rects during the recursion in
171         CClayerTreeHostCommon and not while we're painting. This is one last
172         straggling piece of code that never got moved.
173
174         Tested by existing mask-related layout tests.
175
176         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
177         (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
178         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
179         (WebCore::calculateVisibleAndScissorRectsInternal):
180
181 2012-06-12  Dana Jansens  <danakj@chromium.org>
182
183         [chromium] Return empty visibleLayerRect for layers with empty content bounds
184         https://bugs.webkit.org/show_bug.cgi?id=88901
185
186         Reviewed by Adrienne Walker.
187
188         This change should only affect tests. Currently if you set up a
189         CCLayerImpl with some bounds, but don't set the contentBounds, then
190         they are empty by default. In this case the visibleLayerRect gets
191         set inappropriately to the layer's target surface contentRect which
192         in a completely different coordinate space.
193
194         Fixed up tests that were passing bogusly and failed after this change.
195
196         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
197         (WebCore::calculateVisibleLayerRect):
198
199 2012-06-12  Adrienne Walker  <enne@google.com>
200
201         [chromium] ScrollingCoordinator::setScrollLayer should update scroll layer ids
202         https://bugs.webkit.org/show_bug.cgi?id=88882
203
204         Reviewed by James Robinson.
205
206         Tested manually, as scrollbar layers are currently only created when
207         threaded compositing is enabled and none of those layout tests trigger
208         this bug.
209
210         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
211         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
212         (ScrollingCoordinatorPrivate):
213         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
214         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
215         (WebCore::createScrollbarLayer):
216         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
217         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
218         * platform/graphics/chromium/ScrollbarLayerChromium.h:
219         (WebCore::ScrollbarLayerChromium::setScrollLayerId):
220         (ScrollbarLayerChromium):
221         * platform/graphics/chromium/TreeSynchronizer.cpp:
222         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
223
224 2012-06-12  Mark Mentovai  <mark@chromium.org>
225
226         [chromium mac] Don't include things in subframeworks of
227         ApplicationServices.framework.
228
229         Subframeworks move around from SDK to SDK and OS release to OS
230         release, but just using the top-level umbrella framework guarantees
231         forward compatibility. When building for Chromium Mac, just #include
232         <ApplicationServices/ApplicationServices.h> instead of reaching in to
233         subframeworks.
234
235         https://bugs.webkit.org/show_bug.cgi?id=88569
236
237         Reviewed by Stephen White.
238
239         No new tests.
240
241         * platform/graphics/GlyphBuffer.h:
242         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
243         * platform/graphics/skia/GraphicsContextSkia.cpp:
244
245 2012-06-12  Igor Oliveira  <igor.o@sisa.samsung.com>
246
247         Apply animations and transitions for first-letter element
248         https://bugs.webkit.org/show_bug.cgi?id=85253
249
250         Add animations and transitions support for the first-letter
251         pseudo element.
252         Instead of calling RenderOject::node() in the animations code,
253         now we need to call RenderObject::styledGeneratingNode() because
254         pseudo elements does not have a Node associated with the
255         RenderObject.
256
257         Initial patch by Simon Fraser
258
259         Reviewed by Simon Fraser.
260
261         Tests: animations/first-letter-animation.html
262                animations/first-letter-play-state.html
263                transitions/first-letter-color-transition.html
264                transitions/first-letter-transition.html
265
266         * page/animation/AnimationBase.cpp:
267         (WebCore::AnimationBase::updateStateMachine):
268         * page/animation/AnimationController.cpp:
269         (WebCore::AnimationControllerPrivate::updateAnimations):
270         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
271         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
272         (WebCore::AnimationController::cancelAnimations):
273         (WebCore::AnimationController::updateAnimations):
274         * page/animation/ImplicitAnimation.cpp:
275         (WebCore::ImplicitAnimation::pauseAnimation):
276         (WebCore::ImplicitAnimation::sendTransitionEvent):
277         * page/animation/KeyframeAnimation.cpp:
278         (WebCore::KeyframeAnimation::KeyframeAnimation):
279         (WebCore::KeyframeAnimation::pauseAnimation):
280         (WebCore::KeyframeAnimation::endAnimation):
281         (WebCore::KeyframeAnimation::sendAnimationEvent):
282         * rendering/RenderBlock.cpp:
283         (WebCore::RenderBlock::updateFirstLetterStyle):
284         (WebCore::RenderBlock::createFirstLetterRenderer):
285         * rendering/RenderInline.cpp:
286         (WebCore::RenderInline::clippedOverflowRectForRepaint):
287         * rendering/RenderObject.cpp:
288         (WebCore::RenderObject::setAnimatableStyle):
289         (WebCore::RenderObject::styledGeneratingNode):
290         (WebCore):
291         * rendering/RenderObject.h:
292         (RenderObject):
293
294 2012-06-12  Kent Tamura  <tkent@chromium.org>
295
296         Checking a radio button doesn't uncheck other buttons in the same group in some cases.
297         https://bugs.webkit.org/show_bug.cgi?id=88835
298
299         Reviewed by Ryosuke Niwa.
300
301         This change fixes a bug that checking a radio button in a radio button
302         group in a form detached from a document tree doesn't uncheck another
303         checked radio button in the radio button group.
304
305         A radio button participates in a radio button group in the following
306         conditions:
307         - If it is owned by a form element regardless of the form is in a
308         document tree or not, or
309
310         - If it is not owned by any form elements and it is in a document tree.
311         A radio button group for the radio button is owned by the document.
312
313         For HTMLInputElement::removedFrom():
314         The old code always unregistered the radio button if it was removed from
315         the document tree. It was incorrect because we don't need to unregister
316         it if it has an owner form and the owner form is not changed by
317         removedFrom().
318         If the owner form is cleared by removedFrom(), willChangeForm()
319         unregisters the radio button. So what we should do in removedFrom() is
320         to unregister the radio button only if the radio button group is owned
321         by the document.
322
323         For HTMLInputElement::insertedInto():
324         The old code always registered the radio button if it is inserted into
325         the document tree. It was incorrect because we don't need to register it
326         if it has an owner form and the owner form is not changed by
327         insertedInto().
328         If the owner form is changed by insertedInto(), didChangeForm()
329         registers the radio button. So We should register the radio button only
330         if its radio button group will be owned by the document.
331
332         Test: Add test cases to fast/forms/radio/radio-group.html
333
334         * html/HTMLInputElement.cpp:
335         (WebCore::HTMLInputElement::insertedInto):
336         Register this to CheckedRadioButtons only if new group owner is Document.
337         (WebCore::HTMLInputElement::removedFrom):
338         Unregister this from CheckedRadioButtons only if old group owner was Document.
339
340 2012-06-12  James Robinson  <jamesr@chromium.org>
341
342         [chromium] REGRESSION(119769): Canvas2DLayerBridge may go away before its TextureLayerChromium
343         https://bugs.webkit.org/show_bug.cgi?id=88910
344
345         Reviewed by Adrienne Walker.
346
347         Unregister the bridge as its TextureLayerChromium client when going away.
348
349         Covered by new unit test in Canvas2DLayerBridgeTest.cpp.
350
351         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
352         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
353
354 2012-06-12  Alec Flett  <alecflett@chromium.org>
355
356         IndexedDB: Error codes, phase two
357         https://bugs.webkit.org/show_bug.cgi?id=88690
358
359         Reviewed by Tony Chang.
360
361         Update the next phase of IndexedDB error codes to match the spec.
362         This update is mostly focused on DATA_ERR vs CONSTRAINT_ERR.
363
364         Also moves some of the error checking for the transaction mode
365         into the frontend and replaces the backend checks with asserts, so that
366         we can consolidate error checking in one place.
367
368         This also removes a few FIXME's that are no longer true (about 
369         I/O errors - the spec was updated and our implementation was
370         already correct)
371
372         No new tests, existing tests cover changed behavior.
373
374         * Modules/indexeddb/IDBCursor.cpp:
375         (WebCore::IDBCursor::deleteFunction):
376         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
377         (WebCore::IDBCursorBackendImpl::deleteFunction):
378         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
379         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
380         * Modules/indexeddb/IDBObjectStore.cpp:
381         (WebCore::IDBObjectStore::add):
382         (WebCore::IDBObjectStore::put):
383         (WebCore::IDBObjectStore::deleteFunction):
384         (WebCore::IDBObjectStore::clear):
385         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
386         (WebCore::IDBObjectStoreBackendImpl::put):
387         (WebCore::IDBObjectStoreBackendImpl::putInternal):
388         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
389         (WebCore::IDBObjectStoreBackendImpl::clear):
390         * Modules/indexeddb/IDBTransaction.h:
391         (WebCore::IDBTransaction::enumMode):
392         * Modules/indexeddb/IDBTransactionBackendImpl.h:
393
394 2012-06-12  Min Qin  <qinmin@google.com>
395
396         Disable autoplay when user gesture is required for media playback
397         https://bugs.webkit.org/show_bug.cgi?id=88897
398
399         Reviewed by Adam Barth.
400
401         When user gesture is required for media playback, we should block autoplay.
402         Otherwise, people will use autoplay instead of video.play() to bypass the gesture requirement.
403         Test: media/no-autoplay-with-user-gesture-requirement.html
404
405         * html/HTMLMediaElement.cpp:
406         (WebCore::HTMLMediaElement::setReadyState):
407
408 2012-06-12  Shrey Banga  <banga@chromium.org>
409
410         HTML parser should yield more to improve perceived page load time
411         https://bugs.webkit.org/show_bug.cgi?id=86165
412
413         Reviewed by Tony Gentilcore.
414
415         Test: fast/events/event-yield-timing.html
416
417         We want the parser to yield at least every 500ms to keep the page somewhat responsive and allow painting.
418         Since it would be too expensive to check the time after each token, the previous heuristic was to check every 4,096 tokens.
419         That works fine for most tokens, but a script may spend an arbitrary amount of time executing.
420
421         This patch fixes the issue by causing the parser to check the elapsed time immediately after executing a script.
422
423         * html/parser/HTMLParserScheduler.cpp:
424         (WebCore::HTMLParserScheduler::checkForYieldBeforeScript):
425         * html/parser/HTMLParserScheduler.h:
426         (WebCore::PumpSession::PumpSession):
427         (PumpSession):
428         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
429
430 2012-06-12  Sami Kyostila  <skyostil@chromium.org>
431
432         [chromium] Don't crash in CCLayerIterator if the root layer doesn't have a render surface
433         https://bugs.webkit.org/show_bug.cgi?id=88886
434
435         Reviewed by James Robinson.
436
437         If we are iterating over a render render surface layer list where the
438         root layer does not have a render surface, fail gracefully instead of
439         crashing.
440
441         Tests: CCLayerIteratorTest.{emptyTree,rootLayerWithoutRenderSurface}
442
443         * platform/graphics/chromium/cc/CCLayerIterator.h:
444         (WebCore::CCLayerIterator::CCLayerIterator):
445
446 2012-06-06  Ojan Vafai  <ojan@chromium.org>
447
448         Change default for flex-grow back to 0
449         https://bugs.webkit.org/show_bug.cgi?id=88443
450
451         Reviewed by Tony Chang.
452
453         * rendering/style/RenderStyle.h:
454
455 2012-06-12  Brady Eidson  <beidson@apple.com>
456
457         <rdar://problem/11593686> and https://bugs.webkit.org/show_bug.cgi?id=88683
458         Garbage collection of an <img> element can cause reentrant event dispatch.
459
460         Reviewed by Darin Adler.
461
462         The most straightforward solution is for ImageLoader to keep its Element alive
463         with ref/deref any time the Image is actually loading.
464
465         ImageLoader should always do this for all Elements, and if those Elements want/need
466         different behavior for when they are detached then they need to manually stop their
467         loads.
468
469         Tests: http/tests/loading/embed-image-load-outlives-gc-without-crashing.html
470                http/tests/loading/image-input-type-outlives-gc-without-crashing.html
471                http/tests/loading/image-load-outlives-gc-without-crashing.html
472                http/tests/loading/object-image-load-outlives-gc-without-crashing.html
473                http/tests/loading/svg-image-load-outlives-gc-without-crashing.html
474                http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html
475
476         * loader/ImageLoader.cpp:
477         (WebCore::ImageLoader::ImageLoader):
478         (WebCore::ImageLoader::~ImageLoader):
479         (WebCore::ImageLoader::setImage):
480         (WebCore::ImageLoader::updateFromElement):
481         (WebCore::ImageLoader::notifyFinished):
482         (WebCore::ImageLoader::updatedHasPendingLoadEvent):
483         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
484         (WebCore::ImageLoader::dispatchPendingLoadEvent):
485         * loader/ImageLoader.h:
486         (ImageLoader):
487
488 2012-06-12  Shawn Singh  <shawnsingh@chromium.org>
489
490         [chromium] Make damage tracking more robust to early exits
491         https://bugs.webkit.org/show_bug.cgi?id=84803
492
493         Reviewed by James Robinson.
494
495         All CCDamageTrackerTest unit tests updated;
496         One new unit test added:
497            CCDamageTrackerTest.verifyDamageAccumulatesUntilReset
498
499         Damage tracking inherently needs to be aware of all changes that
500         occur for every frame. Before this patch, anyone modifying details
501         of CCLayerTreeHostImpl and the drawing phases of the compositor
502         needed to be careful to avoid early exiting once draw is
503         initiated, otherwise running the risk of damage tracking's state
504         getting out-of-sync from actual changes. This patch makes the
505         damage tracker API more asynchronous-like, so that damage will
506         continue to accumulate until it is explicitly notified that
507         damaged areas have been drawn. This will allow more freedom in
508         designing and restructuing drawing code in the compositor, without
509         worrying as much about damage tracking getting out-of-sync.
510
511         * platform/graphics/chromium/cc/CCDamageTracker.h:
512         (WebCore::CCDamageTracker::didDrawDamagedArea):
513         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
514         (WebCore::CCLayerTreeHostImpl::drawLayers):
515         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
516         (CCLayerTreeHostImpl):
517
518 2012-06-12  Mike West  <mkwst@chromium.org>
519
520         Make document.documentURI readonly from JavaScript
521         https://bugs.webkit.org/show_bug.cgi?id=65187
522
523         Reviewed by Alexey Proskuryakov.
524
525         The DOM4 working draft marks the documentURI attribute as read only
526         (http://www.w3.org/TR/dom/#document). Firefox has shipped with this
527         behavior since https://hg.mozilla.org/mozilla-central/rev/3bc751906409
528         landed in October 2011, IE9 doesn't support the property, and
529         Opera throws a NO_MODIFICATION_ALLOWED_ERR. This patch changes WebKit
530         to silently fail (matching Firefox's behavior) by setting the property
531         to readonly in the IDL.
532
533         Document::setDocumentURI and the m_documentURI property are retained
534         for compatibility with ObjC clients, and the readonly attribute is
535         ifdeffed out for ObjC.
536
537         This patch adds a single test to verify the behavior, and removes a
538         variety of tests that depended on the writable behavior. In particular,
539         potential security issues involving the document.baseURL property are
540         avoided completely as long as this property can't be changed.
541
542         Test: fast/dom/documenturi-readonly.html
543
544         * dom/Document.cpp:
545         (WebCore::Document::setDocumentURI):
546             Adds a comment explaining that the fallback is necessary only to
547             support ObjC, not for JS calls.
548         * dom/Document.cpp:
549         (WebCore::Document::updateBaseURL):
550             Ditto.
551         (Document):
552         * dom/Document.idl:
553             Add readonly to the attribute and drop null value when not in
554             LANGUAGE_OBJECTIVE_C.
555
556 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
557
558         Support !ENABLE(VIDEO) builds with horizontally layed out video controls.
559         https://bugs.webkit.org/show_bug.cgi?id=88881
560
561         Reviewed by Csaba Osztrogonác.
562
563         No new tests as this is a regression from WK87835.
564
565         * html/shadow/SliderThumbElement.cpp:
566         (WebCore::hasVerticalAppearance):
567         Ifdef out video related functionality, since usesVerticalVolumeSlider
568         does not exist in that case.
569
570 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
571
572         Web Inspector: allow clearing revision history.
573         https://bugs.webkit.org/show_bug.cgi?id=88847
574
575         Reviewed by Vsevolod Vlasov.
576
577         This change also renames "Revision history" to "Local modifications".
578         I intend to list modifications to all files in that view in the subsequent change.
579
580         * English.lproj/localizedStrings.js:
581         * inspector/front-end/Resource.js:
582         (WebInspector.Resource._clearResourceHistory):
583         * inspector/front-end/RevisionHistoryView.js:
584         (WebInspector.RevisionHistoryView.else.clearHistory):
585         (WebInspector.RevisionHistoryView):
586         (WebInspector.RevisionHistoryView.prototype._revisionAdded):
587         (WebInspector.RevisionHistoryTreeElement):
588         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
589         (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert):
590         * inspector/front-end/ScriptsPanel.js:
591         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
592
593 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
594
595         Web Inspector: use jsdifflib for revision diff calculation.
596         https://bugs.webkit.org/show_bug.cgi?id=88791
597
598         Reviewed by Vsevolod Vlasov.
599
600         Present diff calculation is incomplete, it does not properly handle the following case:
601             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
602         We should not be implementing diff by ourselves. I imported jsdifflib from
603         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
604
605         * WebCore.gypi:
606         * WebCore.vcproj/WebCore.vcproj:
607         * inspector/front-end/RevisionHistoryView.js:
608         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
609         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
610         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
611         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
612         * inspector/front-end/WebKit.qrc:
613         * inspector/front-end/externs.js:
614         (difflib.stringAsLines):
615         (difflib.SequenceMatcher):
616         (difflib.SequenceMatcher.prototype.get_opcodes):
617         * inspector/front-end/inspector.html:
618         * inspector/front-end/jsdifflib.js: Added.
619         (difflib.defaultJunkFunction):
620         (difflib.stripLinebreaks):
621         (difflib.stringAsLines):
622         (difflib.__reduce):
623         (difflib.__ntuplecomp):
624         (difflib.__calculate_ratio):
625         (difflib.__dictget):
626         (difflib.SequenceMatcher.this.set_seqs):
627         (difflib.SequenceMatcher.this.set_seq1):
628         (difflib.SequenceMatcher.this.set_seq2):
629         (difflib.SequenceMatcher.this.__chain_b):
630         (difflib.SequenceMatcher.this.find_longest_match):
631         (difflib.SequenceMatcher.this.get_matching_blocks):
632         (difflib.SequenceMatcher.this.get_opcodes):
633         (difflib.SequenceMatcher.this.get_grouped_opcodes):
634         (difflib.SequenceMatcher.this.quick_ratio):
635         (difflib.SequenceMatcher.this.real_quick_ratio):
636         * inspector/front-end/revisionHistory.css:
637         (.revision-history-line-separator .webkit-line-number):
638
639 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
640
641         Web Inspector: use jsdifflib for revision diff calculation.
642         https://bugs.webkit.org/show_bug.cgi?id=88791
643
644         Reviewed by Vsevolod Vlasov.
645
646         Present diff calculation is incomplete, it does not properly handle the following case:
647             [a, b, c, d, e, f, g, h] => [c, d, e, f, g, h, a, b]
648         We should not be implementing diff by ourselves. I imported jsdifflib from
649         https://github.com/cemerick/jsdifflib. It has BSD license that is compatible with WebKit.
650
651         * WebCore.gypi:
652         * WebCore.vcproj/WebCore.vcproj:
653         * inspector/front-end/RevisionHistoryView.js:
654         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand.step2):
655         (WebInspector.RevisionHistoryTreeElement.prototype.onexpand):
656         (WebInspector.RevisionHistoryTreeElement.prototype._createLine.appendLineNumber):
657         (WebInspector.RevisionHistoryTreeElement.prototype._createLine):
658         * inspector/front-end/WebKit.qrc:
659         * inspector/front-end/externs.js:
660         (difflib.stringAsLines):
661         (difflib.SequenceMatcher):
662         (difflib.SequenceMatcher.prototype.get_opcodes):
663         * inspector/front-end/inspector.html:
664         * inspector/front-end/jsdifflib.js: Added.
665         (difflib.defaultJunkFunction):
666         (difflib.stripLinebreaks):
667         (difflib.stringAsLines):
668         (difflib.__reduce):
669         (difflib.__ntuplecomp):
670         (difflib.__calculate_ratio):
671         (difflib.__dictget):
672         (difflib.SequenceMatcher.this.set_seqs):
673         (difflib.SequenceMatcher.this.set_seq1):
674         (difflib.SequenceMatcher.this.set_seq2):
675         (difflib.SequenceMatcher.this.__chain_b):
676         (difflib.SequenceMatcher.this.find_longest_match):
677         (difflib.SequenceMatcher.this.get_matching_blocks):
678         (difflib.SequenceMatcher.this.get_opcodes):
679         (difflib.SequenceMatcher.this.get_grouped_opcodes):
680         (difflib.SequenceMatcher.this.quick_ratio):
681         (difflib.SequenceMatcher.this.real_quick_ratio):
682         * inspector/front-end/revisionHistory.css:
683         (.revision-history-line-separator .webkit-line-number):
684
685 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
686
687         [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
688         https://bugs.webkit.org/show_bug.cgi?id=87575
689
690         Reviewed by Philippe Normand.
691
692         When EOS is reached in forward playback, the position does not necessarily
693         match the duration. This confuses HTMLMediaElement and causes the "ended"
694         event not to be fired. To avoid this, we synchronize position and duration
695         values in this case.
696
697         Test: http/tests/media/video-buffered-range-contains-currentTime.html
698
699         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
700
701 2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>
702
703         Refactor InputType::receiveDroppedFiles to take DragData
704         https://bugs.webkit.org/show_bug.cgi?id=88860
705
706         Reviewed by Kent Tamura.
707
708         So that we can centralize the file paths related code into FileInputType
709         and makes it easier to extract more data from DragData for
710         <input type=file> (like bug 88293 for directory drag-and-drop).
711
712         No new tests as this has no behavioral changes.
713
714         * html/FileInputType.cpp:
715         (WebCore::FileInputType::receiveDroppedFiles):
716         * html/FileInputType.h:
717         * html/HTMLInputElement.cpp:
718         (WebCore::HTMLInputElement::receiveDroppedFiles):
719         * html/HTMLInputElement.h:
720         * html/InputType.cpp:
721         (WebCore::InputType::receiveDroppedFiles):
722         * html/InputType.h:
723         * page/DragController.cpp:
724         (WebCore::DragController::concludeEditDrag):
725
726 2012-06-12  Thiago Marcos P. Santos  <thiago.santos@intel.com>
727
728         Generate -webkit-box-decoration-break property only when the feature is enabled
729         https://bugs.webkit.org/show_bug.cgi?id=88861
730
731         Reviewed by Alexis Menard.
732
733         Otherwise it will hit an assertion if the property is present on the
734         style but the feature disabled. Also fixes a compilation warning when
735         the feature is disabled.
736
737         * css/CSSPropertyNames.in:
738         * css/StyleResolver.cpp:
739         (WebCore::StyleResolver::collectMatchingRulesForList):
740
741 2012-06-12  Darin Adler  <darin@apple.com>
742
743         Tweaked the Mac export file a bit more, adding more-correct iOS cases.
744
745         Reviewed by David Kilzer.
746
747         * WebCore.exp.in: Rearrangement.
748
749 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
750
751         Using extrernal ICU library on case unsensitive drives will not work
752         https://bugs.webkit.org/show_bug.cgi?id=70913
753
754         Reviewed by Csaba Osztrogonác.
755
756         * platform/graphics/surfaces/GraphicsSurface.h:
757
758 2012-06-11  Dana Jansens  <danakj@chromium.org>
759
760         [chromium] Use TextureDrawQuad for video layer output when it produces a single GL texture
761         https://bugs.webkit.org/show_bug.cgi?id=88814
762
763         Reviewed by Adrienne Walker.
764
765         When a CCVideLayerImpl produces quads for a frame that is contained
766         in a single GL texture, then use the TextureDrawQuad instead of the
767         VideoDrawQuad. Moves the computation for the RGBA(software) and
768         NativeTexture (hardware) cases from LayerRendererChromium into
769         CCVideoLayerImpl, so it can embed these values in the TextureDrawQuad.
770
771         No new tests, behaviour should be the same.
772
773         * platform/graphics/chromium/LayerRendererChromium.cpp:
774         (WebCore::LayerRendererChromium::drawStreamTexture):
775         (WebCore::LayerRendererChromium::drawVideoQuad):
776         * platform/graphics/chromium/LayerRendererChromium.h:
777         (LayerRendererChromium):
778         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
779         (WebCore::CCVideoLayerImpl::appendQuads):
780
781 2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>
782
783         Change the volume slider to horizontal rendering for Chrome video controls.
784         https://bugs.webkit.org/show_bug.cgi?id=87835
785
786         Reviewed by Eric Carlson.
787
788         No new tests - final patch in the Chrome controls update series will contain rebaselined tests.
789
790         The Chrome video controls are receiving a visual update. The volume slider is moved into
791         the controls with horizontal rendering, the volume slider container is removed. The visual
792         update itself is in a separate patch.
793
794         * css/mediaControlsChromium.css:
795         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
796         Removed relative positioning to render all controls elements equally in DOM order.
797         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
798         Removed absolute positioning to render all controls elements equally in DOM order.
799         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
800         Removed absolute positioning to render all controls elements equally in DOM order.
801         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
802         Removed volume slider container - it's not necessary any more.
803         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
804         Remove flexbox and introduce inline display to always display this field.
805         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
806         Removed absolute positioning to render all controls elements equally in DOM order.
807         * html/shadow/MediaControlRootElementChromium.cpp:
808         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
809         Removed volume slider container - it's not necessary any more.
810         (WebCore::MediaControlRootElementChromium::create):
811         Appended the volume slider and the mute button directly to the panel, removed volume slider container.
812         (WebCore::MediaControlRootElementChromium::setMediaController):
813         Removed volume slider container.
814         (WebCore::MediaControlRootElementChromium::reportedError):
815         Removed volume slider container.
816         (WebCore::MediaControlRootElementChromium::showVolumeSlider):
817         Removed volume slider container.
818         * html/shadow/MediaControlRootElementChromium.h:
819         (WebCore):
820         (MediaControlRootElementChromium):
821         Removed volume slider container.
822         * html/shadow/SliderThumbElement.cpp:
823         (WebCore::hasVerticalAppearance):
824         Allow use of horizontal media volume slider.
825         (WebCore::RenderSliderThumb::layout):
826         Reuse hasVerticalAppearance function.
827         * rendering/RenderMediaControlsChromium.cpp:
828         (WebCore::RenderMediaControlsChromium::paintMediaVolumeSlider):
829         Change line drawing from vertical to horizontal.
830         * rendering/RenderTheme.h:
831         (WebCore::RenderTheme::usesVerticalVolumeSlider):
832         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
833         * rendering/RenderThemeChromiumMac.h:
834         (WebCore::RenderThemeChromiumMac::usesVerticalVolumeSlider):
835         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
836         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
837         * rendering/RenderThemeChromiumSkia.h:
838         (WebCore::RenderThemeChromiumSkia::usesVerticalVolumeSlider):
839         Add usesVerticalVolumeSlider function to allow horizontal volume sliders.
840
841 2012-06-12  Andrei Bucur  <abucur@adobe.com>
842
843         [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
844         https://bugs.webkit.org/show_bug.cgi?id=88515
845
846         The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
847         or if the NamedFlow is in the NULL state:
848         http://www.w3.org/TR/css3-regions/#dom-named-flow-overset
849
850         This patch updates WebKit's behavior in the last two situations to match the one in the spec.
851
852         Reviewed by Andreas Kling.
853
854         Test: fast/regions/webkit-named-flow-overset.html was updated
855
856         * rendering/RenderFlowThread.cpp:
857         (WebCore::RenderFlowThread::RenderFlowThread):
858         (WebCore::RenderFlowThread::computeOverflowStateForRegions): If the last valid region is null, the flow has not region chain attached or it's in the NULL state.
859
860 2012-06-12  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
861
862         Web Inspector: Provide context menu for deleting recorded profile on Profiles Panel
863         https://bugs.webkit.org/show_bug.cgi?id=88286
864
865         Added the context menu to delete the selected profile.
866
867         Reviewed by Pavel Feldman.
868
869         No new tests required as UI related change
870
871         * English.lproj/localizedStrings.js: Removed property svn:mime-type.
872         * inspector/front-end/ProfilesPanel.js:
873         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
874
875 2012-06-12  Pavel Feldman  <pfeldman@chromium.org>
876
877         Not reviewed: removed svn:mime-type property from English.lproj/localizedStrings.js
878
879         * English.lproj/localizedStrings.js
880
881 2012-06-12  Dan Bernstein  <mitz@apple.com>
882
883         Tried to fix the notification-enabled build after r120044.
884
885         * notifications/NotificationController.cpp:
886         (WebCore::NotificationController::NotificationController):
887         (WebCore::NotificationController::create):
888         (WebCore::provideNotification):
889         * notifications/NotificationController.h:
890         (NotificationController):
891
892 2012-06-12  Huang Dongsung  <luxtella@company100.net>
893
894         [Qt][Texmap] Falling leaves demo missing clipping.
895         https://bugs.webkit.org/show_bug.cgi?id=88704
896
897         The bug originated from begining native painting mode of QPainter after enabling
898         scissor test, because begining native painting mode disables scissor test.
899
900         Covered by existing compositing tests.
901
902         Reviewed by Noam Rosenthal.
903
904         * platform/graphics/texmap/TextureMapperGL.cpp:
905         (WebCore::TextureMapperGL::beginPainting):
906
907 2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>
908
909         [Qt][Win] Buildfix related to fromWinHBITMAP
910         https://bugs.webkit.org/show_bug.cgi?id=88863
911
912         Reviewed by Jocelyn Turcotte.
913
914         * platform/graphics/qt/GraphicsContextQt.cpp: Add qt_pixmapFromWinHBITMAP and HBitmapFormat enum.
915         (WebCore):
916         (WebCore::GraphicsContext::releaseWindowsContext):
917         * platform/graphics/qt/ImageQt.cpp:
918         (WebCore): Move qt_pixmapFromWinHBITMAP to outside of WebCore namespace. (Fix after r119924.)
919
920 2012-06-12  Takashi Sakamoto  <tasak@google.com>
921
922         [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
923         https://bugs.webkit.org/show_bug.cgi?id=87805
924
925         Modified HTMLStyleElement to be treated as a scoped style independent
926         of its "scoped" attribute's value if HTMLStyleElement is in shadow
927         subtree. HTMLStyleElement has the following four cases talking about
928         "scoped" attribute and whether is in shadow subtree or not:
929         1, HTMLStyleElement is "scoped" and is in document tree,
930         2, HTMLStyleElement is "scoped" and is in shadow subtree,
931         3, HTMLStyleElement is not "scoped" and is in document tree, and
932         4, HTMLStyleElement is not "scoped" and is in shadow subtree.
933         The case 1 and 2 are not changed. This patch affected the case 4.
934         At the case 4, the HTMLStyleElement's scoping node is the shadow root.
935         This change is the first step for fixing style scope bug,
936         i.e. HTMLStyleElements in shadow subtree are applied to any element
937         in document tree.
938
939         Reviewed by Dimitri Glazkov.
940
941         Test: fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html
942
943         * css/StyleResolver.cpp:
944         (WebCore::StyleResolver::determineScope):
945         Modified to return a shadow root if a targeted stylesheet owner node is
946         not scoped but in some shadow DOM subtree.
947         * html/HTMLStyleElement.cpp:
948         (WebCore::HTMLStyleElement::HTMLStyleElement):
949         (WebCore::HTMLStyleElement::parseAttribute):
950         Modified to use the below scopedAttributeChanged when a changed
951         attribute's name is "scoped".
952         (WebCore::HTMLStyleElement::scopedAttributeChanged):
953         Newly added. According to new scoped value and isInShadowTree,
954         add or remove style rules to/from scopedAuthorRules via
955         registerWithScopingNode or unregisterWithScopingNode.
956         (WebCore::HTMLStyleElement::registerWithScopingNode):
957         Added one boolean argument to determine whether HTMLStyleElement is
958         scoped or not. The reason why not using scoped() is the comment:
959         "We cannot rely on the scoped element already being present when this
960         method is invoked. Therefore we cannot rely on scoped()"
961         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
962         Changed the code for updating m_isRegisteredWithScopingNode. Now
963         set m_scopedStyleRegistrationState to be NotRegistered.
964         (WebCore::HTMLStyleElement::insertedInto):
965         Modified to invoke registerWithScopingNode when an element is not
966         scoped but in some shadow subtree.
967         (WebCore::HTMLStyleElement::removedFrom):
968         Modified to invoke unregisterWithScopingNode when an element is not
969         scoped but in some shadow subtree.
970         * html/HTMLStyleElement.h:
971         (HTMLStyleElement):
972         Modified the type of m_isRegisteredWithScopingNode from bool to
973         enum and renamed to m_scopedStyleRegistrationState. Now the member
974         variable keeps what HTMLStyleElement's scoping node is, i.e.
975         none (this means, not in shadow subtree and not scoped), shadow root or
976         parent node.
977         Added one new method scopedAttributeChanged's declaration and
978         modified the declaration of registerWithScopingNode.
979
980 2012-06-12  Amy Ousterhout  <aousterh@chromium.org>
981
982         Removing unused parameter Page
983         https://bugs.webkit.org/show_bug.cgi?id=88848
984
985         Reviewed by Kentaro Hara.
986
987         Removed the unused parameter Page* supplied to the create function
988         and constructor in DeviceOrientationController.
989
990         The parameter Page* was previously stored in an instance variable
991         m_page, but this was removed (see https://bugs.webkit.org/show_bug.cgi?id=88812).
992
993         No new tests because the removed parameter was unused and untested.
994
995         * dom/DeviceOrientationController.cpp:
996         (WebCore::DeviceOrientationController::DeviceOrientationController):
997         (WebCore::DeviceOrientationController::create):
998         (WebCore::provideDeviceOrientationTo):
999         * dom/DeviceOrientationController.h:
1000         (DeviceOrientationController):
1001
1002 2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1003
1004         Unreviewed, rolling out r120051.
1005         http://trac.webkit.org/changeset/120051
1006         https://bugs.webkit.org/show_bug.cgi?id=88852
1007
1008         some tests are crashing (Requested by morrita on #webkit).
1009
1010         * CMakeLists.txt:
1011         * GNUmakefile.list.am:
1012         * Target.pri:
1013         * WebCore.gypi:
1014         * WebCore.vcproj/WebCore.vcproj:
1015         * WebCore.xcodeproj/project.pbxproj:
1016         * bindings/generic/ContextEnabledFeatures.cpp: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.cpp.
1017         (WebCore):
1018         (WebCore::ContextEnabledFeatures::shadowDOMEnabled):
1019         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
1020         (WebCore::ContextEnabledFeatures::pagePopupEnabled):
1021         * bindings/generic/ContextEnabledFeatures.h: Renamed from Source/WebKit/chromium/src/ContextFeaturesClientImpl.h.
1022         (WebCore):
1023         (ContextEnabledFeatures):
1024         * bindings/scripts/CodeGeneratorV8.pm:
1025         (GenerateImplementation):
1026         * css/StyleResolver.cpp:
1027         (WebCore::StyleResolver::determineScope):
1028         * dom/ContextFeatures.cpp: Removed.
1029         * dom/ContextFeatures.h: Removed.
1030         * dom/DOMAllInOne.cpp:
1031         * dom/DOMImplementation.cpp:
1032         (WebCore::DOMImplementation::createDocument):
1033         (WebCore::DOMImplementation::createHTMLDocument):
1034         * dom/Document.cpp:
1035         (WebCore::Document::Document):
1036         * dom/Document.h:
1037         (WebCore):
1038         (Document):
1039         * dom/Position.cpp:
1040         (WebCore::Position::Position):
1041         (WebCore::Position::findParent):
1042         * dom/TreeScope.cpp:
1043         (WebCore::TreeScope::getSelection):
1044         * dom/make_names.pl:
1045         (printConstructorInterior):
1046         (printFactoryCppFile):
1047         (printWrapperFunctions):
1048         (printWrapperFactoryCppFile):
1049         * editing/markup.cpp:
1050         (WebCore::createFragmentFromMarkupWithContext):
1051         * html/HTMLStyleElement.cpp:
1052         (WebCore::HTMLStyleElement::registerWithScopingNode):
1053         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
1054         * html/shadow/HTMLContentElement.cpp:
1055         (WebCore::contentTagName):
1056         * inspector/DOMPatchSupport.cpp:
1057         (WebCore::DOMPatchSupport::patchDocument):
1058         * loader/FrameLoaderClient.h:
1059         (WebCore::FrameLoaderClient::allowShadowDOM):
1060         (WebCore::FrameLoaderClient::allowStyleScoped):
1061         (FrameLoaderClient):
1062         (WebCore::FrameLoaderClient::allowPagePopup):
1063         * platform/RefCountedSupplement.h: Removed.
1064         * platform/Supplementable.h:
1065         * xml/XMLHttpRequest.cpp:
1066         (WebCore::XMLHttpRequest::responseXML):
1067
1068 2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
1069
1070         [DRT] LTC:: counterValueForElementById() could be moved to Internals.
1071         https://bugs.webkit.org/show_bug.cgi?id=84406
1072
1073         Reviewed by Hajime Morita.
1074
1075         Move the counterValueForElementById from LayoutTestCotroller to Internals and
1076         remove the old platform specific implementations as it exclusively tests WebCore functionality.
1077
1078         Covered by existing test cases.
1079
1080         * testing/Internals.cpp:
1081         (WebCore::Internals::counterValue):
1082         (WebCore):
1083         * testing/Internals.h:
1084         (Internals):
1085         * testing/Internals.idl:
1086
1087 2012-06-11  Hans Wennborg  <hans@chromium.org>
1088
1089         Speech JavaScript API: Make SpeechRecognitionError an Event
1090         https://bugs.webkit.org/show_bug.cgi?id=88784
1091
1092         Reviewed by Adam Barth.
1093
1094         Make SpeechRecognitionError an Event. The spec was updated to make it
1095         an event in its own right, rather than an attribute of
1096         SpeechRecognitionEvent.
1097
1098         Test: fast/speech/scripted/speechrecognition-errors.html
1099
1100         * Modules/speech/SpeechRecognition.cpp:
1101         (WebCore::SpeechRecognition::didReceiveError):
1102         * Modules/speech/SpeechRecognitionError.cpp:
1103         (WebCore::SpeechRecognitionError::SpeechRecognitionError):
1104         (WebCore::SpeechRecognitionError::interfaceName):
1105         (WebCore):
1106         * Modules/speech/SpeechRecognitionError.h:
1107         (WebCore::SpeechRecognitionError::create):
1108         (SpeechRecognitionError):
1109         * Modules/speech/SpeechRecognitionError.idl:
1110         * Modules/speech/SpeechRecognitionEvent.cpp:
1111         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
1112         * Modules/speech/SpeechRecognitionEvent.h:
1113         (SpeechRecognitionEventInit):
1114         (SpeechRecognitionEvent):
1115         * Modules/speech/SpeechRecognitionEvent.idl:
1116         * dom/EventNames.in:
1117
1118 2012-06-12  MORITA Hajime  <morrita@google.com>
1119
1120         REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
1121         https://bugs.webkit.org/show_bug.cgi?id=88148
1122
1123         Reviewed by Dimitri Glazkov.
1124
1125         The shadow DOM availability was decided through FrameLoaderClient.
1126         But there are documents which don't have any associated frames, in
1127         which any shadow DOM related elements cannot be constructed.  That
1128         resulsted the regression.
1129
1130         This change introduces a Page-based client called
1131         ContextFeaturesClient which takes the role from FrameLoaderClient
1132         to decide the feature availability, and ContextFeatures which is a
1133         proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
1134         replaced with ContextFeatures.
1135
1136         Each ContextFeatures object is owned by a Page, and is attached to
1137         each Document in the page even if the page itself has no referenct
1138         to Frames or Pages. With ContextFeatures, each Document can decide
1139         the feature availability even if it cannot reach Page or Frame.
1140
1141         On RefCountedSupplement: Document instance can live longer than a
1142         Page where it is shwon. This means that ContextFeatures instance
1143         needs to survive after owner Page destruction because it's
1144         referenced from possibly surviving Documents. RefCountedSupplement
1145         is introduced to cover this scenario: It allows supplement classes
1146         to live after Page's destruction.
1147
1148         RefCountedSupplement::hostDestroyed() is notified when the hosting
1149         page is gone. ContextFeatures clears its reference to the client
1150         using this notification.
1151
1152         Test: fast/dom/shadow/elements-in-frameless-document.html
1153
1154         * CMakeLists.txt:
1155         * GNUmakefile.list.am:
1156         * Target.pri:
1157         * WebCore.gypi:
1158         * WebCore.vcproj/WebCore.vcproj:
1159         * WebCore.xcodeproj/project.pbxproj:
1160         * bindings/scripts/CodeGeneratorV8.pm:
1161         (GenerateImplementation):
1162         * css/StyleResolver.cpp:
1163         (WebCore::StyleResolver::determineScope):
1164         * dom/ContextFeatures.cpp: Added.
1165         (WebCore):
1166         (WebCore::ContextFeaturesClient::empty):
1167         (WebCore::ContextFeatures::supplementName):
1168         (WebCore::ContextFeatures::defaultSwitch):
1169         (WebCore::ContextFeatures::shadowDOMEnabled):
1170         (WebCore::ContextFeatures::styleScopedEnabled):
1171         (WebCore::ContextFeatures::pagePopupEnabled):
1172         (WebCore::provideContextFeaturesTo):
1173         (WebCore::provideContextFeaturesToDocumentFrom):
1174         * dom/ContextFeatures.h: Added.
1175         (WebCore):
1176         (ContextFeatures):
1177         (WebCore::ContextFeatures::ContextFeatures):
1178         (WebCore::ContextFeatures::hostDestroyed):
1179         (ContextFeaturesClient):
1180         (WebCore::ContextFeaturesClient::~ContextFeaturesClient):
1181         (WebCore::ContextFeaturesClient::isEnabled):
1182         (WebCore::ContextFeatures::create):
1183         (WebCore::ContextFeatures::isEnabled):
1184         * dom/DOMAllInOne.cpp:
1185         * dom/DOMImplementation.cpp:
1186         (WebCore::DOMImplementation::createDocument):
1187         (WebCore::DOMImplementation::createHTMLDocument):
1188         * dom/Document.h:
1189         (WebCore::Document::contextFeatures):
1190         * dom/Document.cpp:
1191         (WebCore::Document::Document):
1192         (WebCore::Document::setContextFeatures):
1193         * dom/Position.cpp:
1194         (WebCore::Position::Position):
1195         (WebCore::Position::findParent):
1196         * dom/TreeScope.cpp:
1197         (WebCore::TreeScope::getSelection):
1198         * dom/make_names.pl:
1199         (printConstructorInterior):
1200         (printFactoryCppFile):
1201         (printWrapperFunctions):
1202         (printWrapperFactoryCppFile):
1203         * editing/markup.cpp:
1204         (WebCore::createFragmentFromMarkupWithContext):
1205         * html/HTMLStyleElement.cpp:
1206         (WebCore::HTMLStyleElement::registerWithScopingNode):
1207         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
1208         * html/shadow/HTMLContentElement.cpp:
1209         (WebCore::contentTagName):
1210         * inspector/DOMPatchSupport.cpp:
1211         (WebCore::DOMPatchSupport::patchDocument):
1212         * loader/FrameLoaderClient.h:
1213         * platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
1214         (WebCore):
1215         (RefCountedSupplement):
1216         (WebCore::RefCountedSupplement::hostDestroyed):
1217         (Wrapper):
1218         (WebCore::RefCountedSupplement::Wrapper::Wrapper):
1219         (WebCore::RefCountedSupplement::Wrapper::~Wrapper):
1220         (WebCore::RefCountedSupplement::Wrapper::wrapped):
1221         (WebCore::RefCountedSupplement::provideTo):
1222         (WebCore::RefCountedSupplement::from):
1223         * platform/Supplementable.h:
1224         (WebCore::Supplement::isRefCountedWrapper):
1225         * xml/XMLHttpRequest.cpp:
1226         (WebCore::XMLHttpRequest::responseXML):
1227
1228 2012-06-12  Kent Tamura  <tkent@chromium.org>
1229
1230         Remove unnecessary functions: setName() and formControlName()
1231         https://bugs.webkit.org/show_bug.cgi?id=88392
1232
1233         Reviewed by Kentaro Hara.
1234
1235         'name' IDL attributes of form-related elements should be [Reflected],
1236         and we don't need to have setName(). We used formControlName() for
1237         name() implementation, and formControlName() is not needed because it
1238         just converts a null attribute to an empty string. Our binding code does it.
1239
1240         We don't remove FormAssociatedElement::name() because many C++ code use it.
1241
1242         FormAssociatedElement::name() is virtual, and HTMLInputElement overrides
1243         it so that it returns a cache of the name attribtue value because
1244         CheckedRadioButtons class needs to know an old name attribute value when
1245         the name attribtue is changed.
1246
1247         References:
1248         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-object-name
1249         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-name
1250         http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-fe-name
1251
1252         Test: fast/forms/name-attribute.html
1253
1254         * dom/Element.h: Remove formControlName().
1255         * html/FormAssociatedElement.cpp:
1256         (WebCore::FormAssociatedElement::name):
1257         Copied from formControlName() implementation of HTMLFormControlElement.
1258         * html/FormAssociatedElement.h:
1259         (FormAssociatedElement): Make name() virtual, remove formControlName().
1260         * html/FormController.cpp:
1261         (WebCore::FormController::formElementsState):
1262         Use name() instead of formControlName().
1263         * html/HTMLFormControlElement.cpp:
1264         Remove formControlName() and setName().
1265         * html/HTMLFormControlElement.h: ditto.
1266         * html/HTMLInputElement.cpp:
1267         (WebCore::HTMLInputElement::name): Renamed from formControlName().
1268         * html/HTMLInputElement.h:
1269         (HTMLInputElement): Renamed formControlName() to name(), and make it public.
1270         * html/HTMLKeygenElement.idl: Make 'name' [Reflected].
1271         * html/HTMLObjectElement.cpp: Remove formControlName().
1272         * html/HTMLObjectElement.h: ditto.
1273         * html/HTMLSelectElement.cpp:
1274         (WebCore::HTMLSelectElement::appendFormData):
1275         Use name() instead of formControlName().
1276         * html/HTMLSelectElement.idl: Make 'name' [Reflected].
1277         * html/HTMLTextAreaElement.idl: Make 'name' [Reflected].
1278
1279 2012-06-11  Nico Weber  <thakis@chromium.org>
1280
1281         Remove unused member variables found by clang's -Wunused-private-field
1282         https://bugs.webkit.org/show_bug.cgi?id=88812
1283
1284         Reviewed by Anders Carlsson.
1285
1286         Change a few |class|s that were used only to pin down the size of
1287         existing classes to |struct|, so that clang doesn't warn about these
1288         memvars.
1289
1290         No intended behavior change.
1291
1292         * Modules/geolocation/GeolocationController.cpp:
1293         (WebCore::GeolocationController::GeolocationController):
1294         * Modules/geolocation/GeolocationController.h:
1295         (GeolocationController):
1296         * Modules/webaudio/AudioContext.h:
1297         (AudioContext):
1298         * Modules/webaudio/AudioParamTimeline.h:
1299         (AudioParamTimeline):
1300         * accessibility/AccessibilityScrollbar.h:
1301         (AccessibilityScrollbar):
1302         * bindings/v8/ScriptScope.cpp:
1303         (WebCore::ScriptScope::ScriptScope):
1304         * bindings/v8/ScriptScope.h:
1305         (ScriptScope):
1306         * css/CSSValue.cpp:
1307         * css/StylePropertySet.cpp:
1308         * dom/DeviceOrientationController.cpp:
1309         (WebCore::DeviceOrientationController::DeviceOrientationController):
1310         * dom/DeviceOrientationController.h:
1311         (DeviceOrientationController):
1312         * editing/ReplaceSelectionCommand.cpp:
1313         (ReplacementFragment):
1314         (WebCore::ReplacementFragment::ReplacementFragment):
1315         * editing/TextIterator.cpp:
1316         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
1317         * editing/TextIterator.h:
1318         (SimplifiedBackwardsTextIterator):
1319         (BackwardsCharacterIterator):
1320         * html/HTMLFormCollection.cpp:
1321         (WebCore::HTMLFormCollection::HTMLFormCollection):
1322         * html/HTMLFormCollection.h:
1323         (HTMLFormCollection):
1324         * html/shadow/MediaControlElements.cpp:
1325         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
1326         * html/shadow/MediaControlElements.h:
1327         (MediaControlFullscreenButtonElement):
1328         * html/shadow/MediaControlRootElementChromium.cpp:
1329         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1330         * html/shadow/MediaControlRootElementChromium.h:
1331         (MediaControlRootElementChromium):
1332         * html/track/LoadableTextTrack.cpp:
1333         (WebCore::LoadableTextTrack::LoadableTextTrack):
1334         * html/track/LoadableTextTrack.h:
1335         (LoadableTextTrack):
1336         * inspector/CodeGeneratorInspector.py:
1337         (Generator.go):
1338         * inspector/InspectorCSSAgent.cpp:
1339         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
1340         * inspector/InspectorCSSAgent.h:
1341         (InspectorCSSAgent):
1342         * inspector/InspectorDOMDebuggerAgent.cpp:
1343         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
1344         * inspector/InspectorDOMDebuggerAgent.h:
1345         (InspectorDOMDebuggerAgent):
1346         * inspector/InspectorMemoryAgent.cpp:
1347         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
1348         * inspector/InspectorMemoryAgent.h:
1349         (InspectorMemoryAgent):
1350         * notifications/NotificationController.cpp:
1351         (WebCore::NotificationController::NotificationController):
1352         * notifications/NotificationController.h:
1353         (NotificationController):
1354         * page/animation/CompositeAnimation.h:
1355         (WebCore::CompositeAnimation::CompositeAnimation):
1356         (CompositeAnimation):
1357         * platform/Length.cpp:
1358         * platform/audio/ReverbConvolver.cpp:
1359         (WebCore::ReverbConvolver::ReverbConvolver):
1360         * platform/audio/ReverbConvolver.h:
1361         (ReverbConvolver):
1362         * platform/audio/ReverbConvolverStage.cpp:
1363         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
1364         * platform/audio/ReverbConvolverStage.h:
1365         (ReverbConvolverStage):
1366         * platform/graphics/TextRun.cpp:
1367         (ExpectedTextRunSize):
1368         * platform/graphics/chromium/cc/CCThreadProxy.h:
1369         (CCThreadProxy):
1370         * platform/graphics/filters/FECustomFilter.cpp:
1371         (WebCore::FECustomFilter::FECustomFilter):
1372         * platform/graphics/filters/FECustomFilter.h:
1373         (FECustomFilter):
1374         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1375         (JPEGImageReader):
1376         * platform/leveldb/LevelDBTransaction.cpp:
1377         (WebCore::LevelDBTransaction::TreeIterator::next):
1378         * platform/text/TextCodecICU.cpp:
1379         (WebCore::TextCodecICU::TextCodecICU):
1380         * platform/text/TextCodecICU.h:
1381         (TextCodecICU):
1382         * rendering/InlineBox.cpp:
1383         * rendering/InlineFlowBox.cpp:
1384         * rendering/RenderText.cpp:
1385         * rendering/style/KeyframeList.h:
1386         (WebCore::KeyframeList::KeyframeList):
1387         (KeyframeList):
1388         * rendering/svg/RenderSVGTextPath.cpp:
1389         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
1390         * rendering/svg/RenderSVGTextPath.h:
1391         * rendering/svg/SVGInlineTextBox.cpp:
1392         * svg/SVGPathByteStreamSource.cpp:
1393         * svg/SVGPathByteStreamSource.h:
1394         * svg/SVGPathTraversalStateBuilder.cpp:
1395         (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder):
1396         * svg/SVGPathTraversalStateBuilder.h:
1397         (SVGPathTraversalStateBuilder):
1398         * xml/XSLStyleSheet.h:
1399
1400 2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>
1401
1402         XHR returns size==0 Blob
1403         https://bugs.webkit.org/show_bug.cgi?id=88750
1404
1405         Reviewed by Alexey Proskuryakov.
1406
1407         Response Blob's .size field must have the correct response size.
1408
1409         Test: http/tests/xmlhttprequest/response-blob-size.html
1410
1411         * xml/XMLHttpRequest.cpp:
1412         (WebCore::XMLHttpRequest::responseBlob):
1413
1414 2012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>
1415
1416         Introduce an Enclosure Element for Chromium video controls.
1417         https://bugs.webkit.org/show_bug.cgi?id=87683
1418
1419         Reviewed by Eric Carlson.
1420
1421         Updated tests.
1422
1423         The Chrome video controls are receiving a visual update. A new enclosure div is required
1424         to provide for a offset space from the video's boundaries. The visual update itself is in
1425         a separate patch.
1426
1427         * css/mediaControlsChromium.css:
1428         (video::-webkit-media-controls-enclosure):
1429         Introduce CSS for enclosure div so it doesn't show yet.
1430         * html/shadow/MediaControlRootElementChromium.cpp:
1431         (WebCore::MediaControlChromiumEnclosureElement::MediaControlChromiumEnclosureElement):
1432         Definition of the new enclosure element.
1433         (WebCore::MediaControlChromiumEnclosureElement::create):
1434         Definition of a create operator for the new enclosure element.
1435         (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
1436         Definition of the shadowPseudoId of -webkit-media-controls-enclosure for the enclosure div.
1437         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1438         Initialize member element for enclosure div.
1439         (WebCore::MediaControlRootElementChromium::create):
1440         Instantiate enclosure div and add into DOM between controls and panel elements.
1441         (WebCore::MediaControlRootElementChromium::setMediaController):
1442         Set media controller for enclosure div.
1443         (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
1444         Insert text track display container to enclosure rather than panel.
1445         * html/shadow/MediaControlRootElementChromium.h:
1446         (WebCore):
1447         (MediaControlChromiumEnclosureElement):
1448         (WebCore::MediaControlChromiumEnclosureElement::setMediaController):
1449         (WebCore::MediaControlChromiumEnclosureElement::mediaController):
1450         (WebCore::MediaControlChromiumEnclosureElement::isMediaControlElement):
1451         Add declaration of the new enclosure element and its member functions.
1452         (MediaControlRootElementChromium):
1453         Add member variable to controls root element to hold the enclosure element.
1454
1455 2012-06-11  Elliott Sprehn  <esprehn@gmail.com>
1456
1457         WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
1458         https://bugs.webkit.org/show_bug.cgi?id=88681
1459
1460         Reviewed by Ojan Vafai.
1461
1462         Fix bug where replacing an immediate child of a Document with a DocumentFragment
1463         would throw a HIERARCHY_REQUEST_ERR instead of replacing the node as required by DOM4.
1464         http://www.w3.org/TR/domcore/#mutation-algorithms
1465
1466         * dom/Document.cpp:
1467         (WebCore::Document::canReplaceChild):
1468             When the newChild was a DocumentFragment we incorrectly
1469             iterated over the document's children twice instead of the
1470             fragment when counting the total number of elements and
1471             doctypes to enfoce that there's only one of each.
1472
1473 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
1474
1475         [BlackBerry] Add handling of notifyDataReceived in NetworkJob even there's no data inside
1476         https://bugs.webkit.org/show_bug.cgi?id=88773
1477
1478         Reviewed by Rob Buis.
1479
1480         Handling notifyDataReceived event even if there is no data inside.
1481         This event was critical because it gives downloadFilterStream a chance
1482         to follow up NetworkStream close event, and it also make pluginView in
1483         FrameLoaderBlackBerry return normal logic.
1484
1485         RIM PR# 164563
1486
1487         Reviewed internally by Leo Yang.
1488
1489         * platform/network/blackberry/NetworkJob.cpp:
1490         (WebCore::NetworkJob::handleNotifyDataReceived):
1491
1492 2012-06-11  Mary Wu  <mary.wu@torchmobile.com.cn>
1493
1494         [BlackBerry] Wrong mimetype for empty file link
1495         https://bugs.webkit.org/show_bug.cgi?id=88642
1496
1497         Reviewed by Rob Buis.
1498
1499         RIM PR# 164164
1500
1501         For empty file link, we shouldn't give "application/octet-stream"
1502         which will lead to download.
1503
1504         Reviewed internally by Charles Wei.
1505
1506         * platform/network/blackberry/NetworkJob.cpp:
1507         (WebCore::NetworkJob::sendResponseIfNeeded):
1508
1509 2012-06-11  Jin Yang  <jin.a.yang@intel.com>
1510
1511         GeneratorGeneratedImage should cache images for the non-tiled case
1512         https://bugs.webkit.org/show_bug.cgi?id=87094
1513
1514         Reviewed by Simon Fraser.
1515
1516         We cache the generated image if generator is not changed. By compared
1517         with generating image on the fly, it will lose a little pixel precision
1518         and several layout tests should be rebaselined. With this patch, the IE test
1519         drive benchmark "Bayou" can gain about 50%.
1520
1521         No new tests. Performance optimization.
1522
1523         * platform/graphics/GeneratorGeneratedImage.cpp:
1524         (WebCore::GeneratorGeneratedImage::draw):
1525
1526 2012-06-11  Vincent Scheib  <scheib@chromium.org>
1527
1528         Add new Pointer Lock spec attribute webkitPointerLockElement.
1529         https://bugs.webkit.org/show_bug.cgi?id=88799
1530
1531         Reviewed by Dimitri Glazkov.
1532
1533         Part of a series of refactoring changes to update pointer lock API to
1534         the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
1535
1536         New attribute webkitPointerLockElement added. Follow up patches
1537         will remove the previous isLocked attribute. Tests updated to use
1538         the new attribute.
1539
1540         * bindings/generic/RuntimeEnabledFeatures.h:
1541         (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled):
1542         * dom/Document.cpp:
1543         (WebCore):
1544         (WebCore::Document::webkitPointerLockElement):
1545         * dom/Document.h:
1546         (Document):
1547         * dom/Document.idl:
1548         * page/PointerLockController.h:
1549         (WebCore::PointerLockController::element):
1550
1551 2012-06-11  Vincent Scheib  <scheib@chromium.org>
1552
1553         Consolidate Pointer Lock runtime enabled flags to just one.
1554         https://bugs.webkit.org/show_bug.cgi?id=88810
1555
1556         Reviewed by Dimitri Glazkov.
1557
1558         No new tests.
1559
1560         * bindings/generic/RuntimeEnabledFeatures.h:
1561         (WebCore::RuntimeEnabledFeatures::pointerLockEnabled):
1562         (WebCore::RuntimeEnabledFeatures::setPointerLockEnabled):
1563         * dom/MouseEvent.idl:
1564         * page/Navigator.idl:
1565
1566 2012-06-11  Alexis Menard  <alexis.menard@openbossa.org>
1567
1568         [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
1569         https://bugs.webkit.org/show_bug.cgi?id=88804
1570
1571         Reviewed by Tony Chang.
1572
1573         Protect box-decoration-break behind a feature flag enabled by default.
1574
1575         No new tests : no behavior change here.
1576
1577         * Configurations/FeatureDefines.xcconfig:
1578         * GNUmakefile.am:
1579         * css/CSSComputedStyleDeclaration.cpp:
1580         (WebCore):
1581         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1582         * css/CSSParser.cpp:
1583         (WebCore::isValidKeywordPropertyAndValue):
1584         (WebCore::isKeywordPropertyID):
1585         (WebCore::CSSParser::parseValue):
1586         * css/CSSPrimitiveValueMappings.h:
1587         (WebCore):
1588         * css/CSSProperty.cpp:
1589         (WebCore::CSSProperty::isInheritedProperty):
1590         * css/CSSValueKeywords.in:
1591         * css/StyleBuilder.cpp:
1592         (WebCore::StyleBuilder::StyleBuilder):
1593         * rendering/style/RenderStyle.h:
1594         * rendering/style/StyleBoxData.cpp:
1595         (WebCore::StyleBoxData::StyleBoxData):
1596         (WebCore::StyleBoxData::operator==):
1597         * rendering/style/StyleBoxData.h:
1598         (StyleBoxData):
1599
1600 2012-06-11  James Robinson  <jamesr@chromium.org>
1601
1602         [chromium] Port DrawingBufferChromium from TextureLayerChromium over to WebExternalTextureLayer
1603         https://bugs.webkit.org/show_bug.cgi?id=86273
1604
1605         Reviewed by Adrienne Walker.
1606
1607         This converts more WebCore code over to using public APIs instead of internal compositor layer types.
1608
1609         Refactor only, no change in behavior thus no new tests.
1610
1611         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1612         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
1613         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
1614         (WebCore::DrawingBufferPrivate::layer):
1615         (DrawingBufferPrivate):
1616         * platform/graphics/chromium/TextureLayerChromium.cpp:
1617         (WebCore::TextureLayerChromium::~TextureLayerChromium):
1618         (WebCore::TextureLayerChromium::setRateLimitContext):
1619         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
1620         (WebCore::TextureLayerChromium::update):
1621         * platform/graphics/chromium/TextureLayerChromium.h:
1622         (WebKit):
1623         (TextureLayerChromiumClient):
1624
1625 2012-06-11  Max Feil  <mfeil@rim.com>
1626
1627         [BlackBerry] Seek calls are being unnecessarily delayed
1628         https://bugs.webkit.org/show_bug.cgi?id=88732
1629
1630         Reviewed by Antonio Gomes.
1631
1632         There is a problem with the way the m_userDrivenSeekTimer is
1633         implemented. When MediaPlayerPrivate::seek() is called, there
1634         is always a 100ms delay even if the timer is not running. The
1635         timer is supposed to space out (i.e. throttle) repeated seeks
1636         that come in too soon after a previous seek, but currently it
1637         is slowing down even single seeks and seeks that come in with
1638         adequate delay after a previous seek. I fixed this in my patch
1639         by improving the way the timer fired function is called.
1640         
1641         A note on the new m_lastSeekTimePending flag: This flag is
1642         needed so that userDrivenSeekTimerFired() knows whether or not
1643         to perform the seek. The only case where this flag will not be
1644         set is if no MediaPlayerPrivate::seek() call came in while the
1645         timer was active, in which case it's important to do nothing.
1646         I could encode this flag's information into the m_lastSeekTime
1647         float, for example by initializing it and resetting it to NAN
1648         and using isnan(). But I feel that using a separate bool is a
1649         more portable approach.
1650
1651         No new tests. I would like to propose not including a layout test
1652         with this fix. Doing timing tests for 100ms delays is tricky
1653         from Javascript, and I don't think the benefit of such a test
1654         outweighs the extra time it would take to develop one. The test
1655         would also be a problem to maintain as it may give different
1656         results over different runs and across different target hardware.
1657
1658         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1659         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1660         (WebCore::MediaPlayerPrivate::seek):
1661         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
1662         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1663         (MediaPlayerPrivate):
1664
1665 2012-06-11  Max Feil  <mfeil@rim.com>
1666
1667         [BlackBerry] Unexpected repeats of short media
1668         https://bugs.webkit.org/show_bug.cgi?id=88733
1669
1670         Reviewed by Antonio Gomes.
1671
1672         The m_userDrivenSeekTimer is causing unwanted repeats of short
1673         media such as sound effects because it is causing the current
1674         time to not reflect that the media has finished playing.
1675         This problem only affects media whose duration is close to
1676         or less than the SeekSubmissionDelay, which is currently
1677         set to 100ms. My fix is to ignore the userDrivenSeekTimer in
1678         MediaPlayerPrivate::currentTime() if the duration of the media
1679         is within twice the SeekSubmissionDelay. Seek drag smoothness
1680         is a non-issue for such short media.
1681
1682         Test: platform/blackberry/media/short-media-repeats-correctly.html
1683
1684         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1685         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1686         (WebCore):
1687         (WebCore::MediaPlayerPrivate::currentTime):
1688         (WebCore::MediaPlayerPrivate::seek):
1689         (WebCore::MediaPlayerPrivate::userDrivenSeekTimerFired):
1690         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1691         (MediaPlayerPrivate):
1692
1693 2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>
1694
1695         Account for margin after when laying out <legend> element
1696         https://bugs.webkit.org/show_bug.cgi?id=35981
1697
1698         Reviewed by Abhishek Arya.
1699
1700         Tests: fast/forms/legend-after-margin-horizontal-writing-mode.html
1701                fast/forms/legend-after-margin-vertical-writing-mode.html
1702                fast/forms/legend-after-margin-with-before-border-horizontal-mode.html
1703                fast/forms/legend-small-after-margin-before-border-horizontal-mode.html
1704
1705         The existing code would ignore margin after when layouting out the <legend>. This
1706         change only adds the code to handle the margin after, the margin before is still
1707         ignored as it's not obvious how it should be working.
1708
1709         * rendering/RenderFieldset.cpp:
1710         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
1711         Split the code in 2 code paths to reflect how we position and size. Those are covered by the
1712         tests above.
1713
1714 2012-06-11  James Robinson  <jamesr@chromium.org>
1715
1716         [chromium] Use WebGraphicsContext3D in rate limiting logic inside compositor
1717         https://bugs.webkit.org/show_bug.cgi?id=86259
1718
1719         Reviewed by Adrienne Walker.
1720
1721         This refactors the compositor's rate limiting implementation to use the Platform API's WebGraphicsContext3D
1722         directly instead of WebCore::GraphicsContext3D to cut down on the number of spurious WebCore dependencies in the
1723         compositor.  The one change in contract is that the caller to CCLayerTreeHost::startRateLimit() now has to call
1724         CCLayerTreeHost::stopRateLimit() before allowing the referenced context to go away since CCLayerTreeHost no
1725         longer retains a reference, but this was always happening already.
1726
1727         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1728         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
1729         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
1730         * platform/graphics/chromium/RateLimiter.cpp:
1731         (WebCore::RateLimiter::create):
1732         (WebCore::RateLimiter::RateLimiter):
1733         (WebCore::RateLimiter::start):
1734         (WebCore::RateLimiter::rateLimitContext):
1735         * platform/graphics/chromium/RateLimiter.h:
1736         (WebKit):
1737         (RateLimiter):
1738         * platform/graphics/chromium/TextureLayerChromium.cpp:
1739         (WebCore::TextureLayerChromium::~TextureLayerChromium):
1740         (WebCore::TextureLayerChromium::setRateLimitContext):
1741         (WebCore::TextureLayerChromium::setNeedsDisplayRect):
1742         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1743         (WebCore::CCLayerTreeHost::startRateLimiter):
1744         (WebCore::CCLayerTreeHost::stopRateLimiter):
1745         (WebCore::CCLayerTreeHost::rateLimit):
1746         (WebCore):
1747         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1748         (CCLayerTreeHost):
1749
1750 2012-06-11  Dana Jansens  <danakj@chromium.org>
1751
1752         [chromium] Separate CCVideoDrawQuad and from the layer tree and video provider by removing ManagedTexture and WebVideoFrame pointers from the quad
1753         https://bugs.webkit.org/show_bug.cgi?id=88363
1754
1755         Reviewed by Adrienne Walker.
1756
1757         CCVideoDrawQuad should not contain any pointers to data in the layer
1758         tree so we are able to serialize it across process boundaries. This
1759         patch removes the ManagedTexture pointers from the quad class,
1760         replacing them with texture ids. It removes the WebVideoFrame* from
1761         the quad, replacing it with the frame provider's texture id included
1762         in the WebVideoFrame structure. And it uses a WebTransformationMatrix
1763         instead of a pointer to an array of floats.
1764
1765         Texture allocation is done in CCVideoLayerImpl via the
1766         contentsTextureAllocator, so that the memory usage can be tracked.
1767
1768         We move the copyPlaneToTextures() method back from LayerRendererChromium
1769         to CCVideoLayerImpl, as this method uses the texture data pointer in the
1770         WebVideoFrame, and we do not want to give this pointer to the quad
1771         class. Instead, this method makes use of the LayerTextureSubImage class
1772         to copy the pixel data into the texture.
1773
1774         LayerTextureSubImage is updated to allow non-4byte texture formats.
1775
1776         * platform/graphics/chromium/LayerRendererChromium.cpp:
1777         (WebCore::LayerRendererChromium::drawYUV):
1778         (WebCore::LayerRendererChromium::drawRGBA):
1779         (WebCore::LayerRendererChromium::drawNativeTexture2D):
1780         (WebCore::LayerRendererChromium::drawStreamTexture):
1781         (WebCore::LayerRendererChromium::drawVideoQuad):
1782         * platform/graphics/chromium/LayerTextureSubImage.cpp:
1783         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
1784         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
1785         * platform/graphics/chromium/TextureCopier.cpp:
1786         * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
1787         (WebCore::CCVideoDrawQuad::create):
1788         (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
1789         * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
1790         (CCVideoDrawQuad):
1791         (WebCore::CCVideoDrawQuad::planes):
1792         (WebCore::CCVideoDrawQuad::frameProviderTextureId):
1793         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1794         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
1795         (WebCore::CCVideoLayerImpl::willDraw):
1796         (WebCore::CCVideoLayerImpl::willDrawInternal):
1797         (WebCore::CCVideoLayerImpl::appendQuads):
1798         (WebCore::CCVideoLayerImpl::didDraw):
1799         (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
1800         (WebCore):
1801         (WebCore::CCVideoLayerImpl::FramePlane::freeData):
1802         (WebCore::CCVideoLayerImpl::allocatePlaneData):
1803         (WebCore::CCVideoLayerImpl::copyPlaneData):
1804         (WebCore::CCVideoLayerImpl::freePlaneData):
1805         (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
1806         (WebCore::CCVideoLayerImpl::didLoseContext):
1807         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1808         (FramePlane):
1809         (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
1810
1811 2012-06-11  Joshua Bell  <jsbell@chromium.org>
1812
1813         IndexedDB: Object stores are not successfully deleted
1814         https://bugs.webkit.org/show_bug.cgi?id=88788
1815
1816         Reviewed by Tony Chang.
1817
1818         Discovered while working on http://webkit.org/b/83074 - object stores are not
1819         being deleted from the backing store. Deletion would succeed in the in-memory
1820         data structures, but after closing/re-opening the backing store the object store
1821         (but not its indexes/data) would reappear. Due to 83074, this isn't detectable
1822         by DRT without a full restart.
1823
1824         Test: [chromium] webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
1825
1826         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1827         (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
1828
1829 2012-06-05  Eric Uhrhane <ericu@chromium.org>
1830
1831         Crash in fast/files/read tests during Garbage Collection
1832         https://bugs.webkit.org/show_bug.cgi?id=87165
1833
1834         Reviewed by Michael Saboff
1835
1836         Fix previous fix for hasPendingActivity, and fix a bug in a complex
1837         abort case as well--abort during the final progress event of a write
1838         would hang the writer.
1839
1840         * Modules/filesystem/FileWriter.cpp:
1841         (WebCore::FileWriter::stop):
1842         (WebCore::FileWriter::write):
1843         (WebCore::FileWriter::truncate):
1844         (WebCore::FileWriter::didWrite):
1845         (WebCore::FileWriter::didTruncate):
1846         (WebCore::FileWriter::didFail):
1847         (WebCore::FileWriter::completeAbort):
1848         (WebCore::FileWriter::doOperation):
1849         (WebCore::FileWriter::signalCompletion):
1850
1851 2012-06-11  Shawn Singh  <shawnsingh@chromium.org>
1852
1853         [chromium] Implement position:fixed in compositor thread
1854         https://bugs.webkit.org/show_bug.cgi?id=70103
1855
1856         Reviewed by Adrienne Walker.
1857
1858         Significant contributions to this patch by Alpha Lam and Sami Kyostila.
1859
1860         This patch is the compositor-side change that adds support for
1861         fixed-position layers to be composited layers. Before this patch,
1862         fixed-position elements were positioned only by WebCore (i.e. main
1863         thread when painting), and the compositor did not have enough
1864         knowledge on its own to position it properly. This patch adds the
1865         necessary math and plumbs the necessary layer information so that
1866         the impl thread can properly position fixed-position elements on
1867         its own. This support is necessary for correctness of composited
1868         fixed-position elements, which can greatly help to avoid
1869         repainting container layers when scrolling with a fixed-position
1870         layer.
1871
1872         There also needs to be WebCore-side support for this, which is
1873         addressed in https://bugs.webkit.org/show_bug.cgi?id=78864
1874
1875         Unit tests added to CCLayerTreeHostCommonTest:
1876           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDirectContainer
1877           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithTransformedDirectContainer
1878           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainer
1879           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithDistantContainerAndTransforms
1880           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleScrollDeltas
1881           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithIntermediateSurfaceAndTransforms
1882           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithMultipleIntermediateSurfaces
1883           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface
1884           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatIsAlsoFixedPositionContainer
1885           CCLayerTreeHostCommonTest.verifyScrollCompensationForFixedPositionLayerThatHasNoContainer
1886
1887         * platform/graphics/chromium/LayerChromium.cpp:
1888         (WebCore::LayerChromium::LayerChromium):
1889         (WebCore::LayerChromium::pushPropertiesTo):
1890         * platform/graphics/chromium/LayerChromium.h:
1891         (WebCore::LayerChromium::setIsContainerForFixedPositionLayers):
1892         (WebCore::LayerChromium::isContainerForFixedPositionLayers):
1893         (LayerChromium):
1894         (WebCore::LayerChromium::setFixedToContainerLayerVisibleRect):
1895         (WebCore::LayerChromium::fixedToContainerLayerVisibleRect):
1896         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1897         (WebCore::CCLayerImpl::CCLayerImpl):
1898         * platform/graphics/chromium/cc/CCLayerImpl.h:
1899         (WebCore::CCLayerImpl::setIsContainerForFixedPositionLayers):
1900         (WebCore::CCLayerImpl::isContainerForFixedPositionLayers):
1901         (CCLayerImpl):
1902         (WebCore::CCLayerImpl::setFixedToContainerLayerVisibleRect):
1903         (WebCore::CCLayerImpl::fixedToContainerLayerVisibleRect):
1904         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1905         (WebCore::computeScrollCompensationForThisLayer):
1906         (WebCore):
1907         (WebCore::computeScrollCompensationMatrixForChildren):
1908         (WebCore::calculateDrawTransformsInternal):
1909         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
1910
1911 2012-06-11  Sam Weinig  <sam@webkit.org>
1912
1913         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
1914         https://bugs.webkit.org/show_bug.cgi?id=88723
1915
1916         Reviewed by Dan Bernstein.
1917
1918         * WebCore.exp.in:
1919         Update export.
1920         * editing/Editor.cpp:
1921         (WebCore::Editor::rangeOfString):
1922         (WebCore::Editor::countMatchesForText):
1923         * editing/Editor.h:
1924         (Editor):
1925         * loader/FrameLoader.cpp:
1926         (WebCore::FrameLoader::findFrameForNavigation):
1927         * page/DOMWindow.cpp:
1928         (WebCore::DOMWindow::parent):
1929         (WebCore::DOMWindow::top):
1930         * page/EventHandler.cpp:
1931         (WebCore::EventHandler::hitTestResultAtPoint):
1932         * page/Frame.cpp:
1933         (WebCore::Frame::Frame):
1934         * page/Frame.h:
1935         (Frame):
1936         * page/FrameTree.cpp:
1937         (WebCore::FrameTree::parent):
1938         (WebCore::FrameTree::top):
1939         * page/FrameTree.h:
1940         (FrameTree):
1941         * page/Location.cpp:
1942         (WebCore::Location::ancestorOrigins):
1943         * xml/XMLTreeViewer.cpp:
1944         (WebCore::XMLTreeViewer::hasNoStyleInformation):
1945         Update for the removal of disconnected frames and text search exclusions concepts.
1946
1947 2012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>
1948
1949         SVGImageCache leaks image data
1950         https://bugs.webkit.org/show_bug.cgi?id=87792
1951
1952         There are two functions to remove a client from a CachedImage:
1953         - CachedResource::removeClient()
1954         - CachedImage::removeClientForRenderer().
1955         It's easy to make error to call the former which will leak the cached
1956         image buffers in SVGImageCache.
1957
1958         This change combined the two by adding the virtual 
1959         CachedResource::didRemoveClient(). CachedImage will do SVGImageCache
1960         cleanup in the function.
1961
1962         Reviewed by Nikolas Zimmermann.
1963
1964         Test: svg/as-image/svg-image-leak-cached-data.html
1965
1966         * loader/cache/CachedFont.h:
1967         (WebCore::CachedFontClient::resourceClientType): Added 'const'.
1968         * loader/cache/CachedImage.cpp:
1969         (WebCore):
1970         (WebCore::CachedImage::didRemoveClient): Removes the client from SVGImageCache.
1971         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
1972         * loader/cache/CachedImage.h:
1973         (CachedImage):
1974         (WebCore::CachedImageClient::resourceClientType): Added 'const'.
1975         * loader/cache/CachedRawResource.h:
1976         (WebCore::CachedRawResourceClient::resourceClientType): Added 'const'.
1977         * loader/cache/CachedResource.cpp:
1978         (WebCore::CachedResource::removeClient): Added invocation of didRemoveClient().
1979         * loader/cache/CachedResource.h:
1980         (WebCore::CachedResource::didRemoveClient): Added for subclasses to do additional works.
1981         * loader/cache/CachedResourceClient.h:
1982         (WebCore::CachedResourceClient::resourceClientType): Added 'const'.
1983         * loader/cache/CachedSVGDocument.h:
1984         (WebCore::CachedSVGDocumentClient::resourceClientType): Added 'const'.
1985         * loader/cache/CachedStyleSheetClient.h:
1986         (WebCore::CachedStyleSheetClient::resourceClientType): Added 'const'.
1987         * rendering/style/StyleCachedImage.cpp:
1988         (WebCore::StyleCachedImage::removeClient):
1989         * rendering/style/StyleCachedImageSet.cpp:
1990         (WebCore::StyleCachedImageSet::removeClient):
1991         * svg/graphics/SVGImageCache.cpp:
1992         (WebCore::SVGImageCache::~SVGImageCache): Added checking for leaks.
1993         (WebCore::SVGImageCache::removeClientFromCache):
1994         (WebCore::SVGImageCache::setRequestedSizeAndScales): 
1995         (WebCore::SVGImageCache::requestedSizeAndScales):
1996         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForClient):
1997         * svg/graphics/SVGImageCache.h:
1998         (WebCore):
1999         (SVGImageCache):
2000
2001 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
2002
2003         [Chromium] Call shared timer functions directly
2004         https://bugs.webkit.org/show_bug.cgi?id=88781
2005
2006         Reviewed by Adam Barth.
2007
2008         Part of a refactoring series. See tracking bug 82948.
2009
2010         * platform/chromium/PlatformSupport.h:
2011         (PlatformSupport):
2012         * platform/chromium/SharedTimerChromium.cpp:
2013         (WebCore::setSharedTimerFiredFunction):
2014         (WebCore::setSharedTimerFireInterval):
2015
2016 2012-06-11  Pravin D  <pravind.2k4@gmail.com>
2017
2018         Relative pos. input fields in columns vanish when you start typing in them
2019         https://bugs.webkit.org/show_bug.cgi?id=76834
2020
2021         Reviewed by Julien Chaffraix.
2022
2023         Test: fast/multicol/multicol-with-child-renderLayer-for-input.html
2024
2025         * page/FrameView.cpp:
2026         (WebCore::updateLayerPositionFlags):
2027         Helper function to prepare the UpdateLayerPositionsFlags based on the input parameters.
2028         If didFullRepaint flag is set, then CheckForRepaints flag is removed from the default flags.
2029         Also during a relayout of a subtree, if the RenderLayer of the subtree root is paginated then updatePagination flag is
2030         included in the flags. 
2031
2032         (WebCore):
2033         (WebCore::FrameView::layout):
2034         Now uses the helper function updateLayerPositionFlags() to get the final set of UpdateLayerPositionsFlags.
2035
2036         * rendering/RenderLayer.h:
2037         (WebCore::RenderLayer::isPaginated):
2038         (RenderLayer):
2039         isPaginated function is made public so that FrameView class can use it prepare UpdateLayerPositionsFlags.
2040
2041 2012-06-11  Mark Pilgrim  <pilgrim@chromium.org>
2042
2043         [Chromium] Remove some dead code in PasteboardChromium
2044         https://bugs.webkit.org/show_bug.cgi?id=88782
2045
2046         Reviewed by Adam Barth.
2047
2048         Part of a refactoring series. See tracking bug 82948.
2049         Leftover detritus from bug 88038.
2050
2051         * platform/chromium/PasteboardChromium.cpp:
2052         (WebCore::Pasteboard::documentFragment):
2053
2054 2012-06-11  Peter Beverloo  <peter@chromium.org>
2055
2056         [Chromium] Theme updates for Android in menu list rendering and selection backgrounds
2057         https://bugs.webkit.org/show_bug.cgi?id=88775
2058
2059         Reviewed by Adam Barth.
2060
2061         For Chrome on Android, use the width of the scrollbar down arrow instead
2062         of the scrollbar's width for determining the arrow padding to apply for
2063         menu list rendering, as WebKit isn't drawing a scrollbar (thus width=0).
2064
2065         Furthermore, change the default active selection background color to be
2066         equal to the tap highlighting color.
2067
2068         These changes should be covered by existing layout tests.
2069
2070         * rendering/RenderThemeChromiumAndroid.cpp:
2071         (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
2072         (WebCore): Retrieve the scrollbar down arrow's size via PlatformSupport.
2073         * rendering/RenderThemeChromiumAndroid.h: Override the menuListArrowPadding
2074             and platformActiveSelectionBackgroundColor methods, and add a static
2075             static RGBA32 color for the default active selection bg color.
2076         * rendering/RenderThemeChromiumSkia.cpp:
2077         (WebCore::RenderThemeChromiumSkia::menuListArrowPadding): Default to
2078             the scrollbar thickness, not changing behavior for non-Android.
2079         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding): Instead
2080             of polling the scrollbar thickness, call menuListArrowPadding().
2081         * rendering/RenderThemeChromiumSkia.h: 
2082         (RenderThemeChromiumSkia): Add the menuListArrowPadding() as a protected method.
2083
2084 2012-06-11  David Barr  <davidbarr@chromium.org>
2085
2086         Add css3-images image-resolution (dppx only)
2087         https://bugs.webkit.org/show_bug.cgi?id=85332
2088
2089         Reviewed by Tony Chang.
2090
2091         The css3-images module is at candidate recommendation.
2092         http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution
2093
2094         Test: fast/css/image-resolution.html
2095
2096         * css/CSSComputedStyleDeclaration.cpp:
2097         (WebCore):
2098         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2099         * css/CSSGrammar.y:
2100         * css/CSSParser.cpp:
2101         (WebCore::CSSParser::validUnit):
2102         (WebCore::CSSParser::createPrimitiveNumericValue):
2103         (WebCore::unitFromString):
2104         (WebCore::CSSParser::parseValidPrimitive):
2105         (WebCore::CSSParser::parseValue):
2106         (WebCore):
2107         (WebCore::CSSParser::parseImageResolution):
2108         (WebCore::CSSParser::detectNumberToken):
2109         * css/CSSParser.h:
2110         * css/CSSPrimitiveValue.cpp:
2111         (WebCore::isValidCSSUnitTypeForDoubleConversion):
2112         (WebCore::unitCategory):
2113         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
2114         (WebCore::CSSPrimitiveValue::customCssText):
2115         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
2116         * css/CSSPrimitiveValue.h:
2117         * css/CSSProperty.cpp:
2118         (WebCore::CSSProperty::isInheritedProperty):
2119         * css/CSSPropertyNames.in:
2120         * css/StyleBuilder.cpp:
2121         (WebCore):
2122         (ApplyPropertyImageResolution):
2123         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
2124         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
2125         (WebCore::ApplyPropertyImageResolution::applyValue):
2126         (WebCore::ApplyPropertyImageResolution::createHandler):
2127         (WebCore::StyleBuilder::StyleBuilder):
2128         * css/StyleResolver.cpp:
2129         (WebCore::StyleResolver::collectMatchingRulesForList):
2130         * rendering/RenderImage.cpp:
2131         (WebCore::RenderImage::styleDidChange):
2132         (WebCore::RenderImage::imageDimensionsChanged):
2133         * rendering/style/RenderStyle.cpp:
2134         (WebCore::RenderStyle::diff):
2135         * rendering/style/RenderStyle.h:
2136         * rendering/style/StyleRareInheritedData.cpp:
2137         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2138         (WebCore::StyleRareInheritedData::operator==):
2139         * rendering/style/StyleRareInheritedData.h:
2140         (StyleRareInheritedData):
2141
2142 2012-06-05  Dana Jansens  <danakj@chromium.org>
2143
2144         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
2145         https://bugs.webkit.org/show_bug.cgi?id=88371
2146
2147         Reviewed by James Robinson.
2148
2149         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
2150
2151         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
2152         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
2153         (WebCore::CCIOSurfaceLayerImpl::willDraw):
2154
2155 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
2156
2157         Unreviewed. Fix make distcheck issues.
2158
2159         * GNUmakefile.am: Add idl files in editing dir to EXTRA_DIST.
2160         * GNUmakefile.list.am: Add missing header file.
2161
2162 2012-06-11  Dan Bernstein  <mitz@apple.com>
2163
2164         Reverted r119940 because it caused multiple media tests to fail on Lion.
2165
2166         * html/HTMLMediaElement.cpp:
2167         (WebCore::HTMLMediaElement::prepareForLoad):
2168         (WebCore):
2169         (WebCore::HTMLMediaElement::userCancelledLoad):
2170         * html/HTMLMediaElement.h:
2171         (HTMLMediaElement):
2172         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2173         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
2174
2175 2012-06-11  Zoltan Horvath  <zoltan@webkit.org>
2176
2177         [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...)$
2178         https://bugs.webkit.org/show_bug.cgi?id=87841
2179
2180         Reviewed by Simon Hausmann.
2181
2182         No new tests were needed.
2183
2184         * Target.pri:
2185         * WebCore.pri:
2186         * platform/image-decoders/ImageDecoder.cpp:
2187         (WebCore::ImageDecoder::create):
2188
2189 2012-06-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2190
2191         Add QML api for setting device width and height
2192         https://bugs.webkit.org/show_bug.cgi?id=88777
2193
2194         Reviewed by Simon Hausmann.
2195
2196         Change the default values for deviceWidth/Height to be 0 (unset). The
2197         original values were introduced by Qt and 0 makes it possible to
2198         detect if a value has never been set and therefore fall back.
2199
2200         Only Qt depended on the former values.
2201
2202         * page/Settings.cpp:
2203         (WebCore::Settings::Settings):
2204
2205 2012-06-11  Csaba Osztrogonác  <ossy@webkit.org>
2206
2207         [Qt][Win] Fix UString related build problem in Source/WebCore/bridge/qt/qt_instance.cpp
2208         https://bugs.webkit.org/show_bug.cgi?id=88310
2209
2210         Reviewed by Simon Hausmann.
2211
2212         * bridge/qt/qt_instance.cpp:
2213         (JSC::Bindings::QtInstance::getPropertyNames):
2214
2215 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
2216
2217         [Qt][WK2] Compute and set cache capacities using the current CacheModel
2218         https://bugs.webkit.org/show_bug.cgi?id=73918
2219
2220         Unreviewed build fix.
2221
2222         No new tests added as this is a build fix.
2223
2224         * platform/qt/FileSystemQt.cpp:
2225
2226 2012-06-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2227
2228         Rect-based hittesting doesn't work in tables.
2229         https://bugs.webkit.org/show_bug.cgi?id=86605
2230
2231         Reviewed by Julien Chaffraix.
2232
2233         The existing code only performed a single binary lookup for the central
2234         hit-test point. This meant area-based hit-testing did not work across
2235         table-cell borders. All cells spanned by a hit-test area must be hit
2236         tested.
2237
2238         This patch introduces three auxilary functions to help calculate rows
2239         and columns spanned by an rect. These are intended to also be used by
2240         repaint logic in a later patch.
2241
2242         For point-based hit-testing we maintain unchanged behavior and still
2243         only hit test a single column in a single row.
2244
2245         Test: fast/dom/nodesFromRect-table.html
2246
2247         * rendering/RenderTableSection.cpp:
2248         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
2249         (WebCore::RenderTableSection::spannedRows):
2250         (WebCore::RenderTableSection::spannedColumns):
2251         (WebCore::RenderTableSection::nodeAtPoint):
2252         * rendering/RenderTableSection.h:
2253         (RenderTableSection):
2254
2255 2012-06-11  Min Qin  <qinmin@google.com>
2256
2257         Adding a flag to show fullscreen media controls in chromium
2258         https://bugs.webkit.org/show_bug.cgi?id=88266
2259
2260         Reviewed by Adam Barth.
2261
2262         The default chromium shadow DOM for media element does not contain fullscreen button.
2263         This change adds a flag to display the fullscreen button.
2264         It will be used by the android port.
2265
2266         No new tests needed. We will use the same layout tests as desktop chromium.
2267         However, new test result expections will be added later.
2268
2269         * html/shadow/MediaControlRootElementChromium.cpp:
2270         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
2271         (WebCore::MediaControlRootElementChromium::create):
2272         (WebCore::MediaControlRootElementChromium::setMediaController):
2273         (WebCore::MediaControlRootElementChromium::reset):
2274         (WebCore::MediaControlRootElementChromium::reportedError):
2275         * html/shadow/MediaControlRootElementChromium.h:
2276         (MediaControlRootElementChromium):
2277
2278 2012-06-11  Michael Brüning  <michael.bruning@nokia.com>
2279
2280         [Qt][WK2] Compute and set cache capacities using the current CacheModel
2281         https://bugs.webkit.org/show_bug.cgi?id=73918
2282
2283         Reviewed by Kenneth Rohde Christiansen.
2284
2285         No new tests needed / applicable (using operating system functionality).
2286
2287         Added method to read free file system space for a path to support cache model
2288         implementation in Qt WK 2.
2289
2290         * platform/FileSystem.h:
2291         (WebCore):
2292         * platform/qt/FileSystemQt.cpp:
2293         (WebCore::getVolumeFreeSizeForPath): Added for Qt ports.
2294         (WebCore):
2295
2296 2012-06-11  Peter Wang  <peter.wang@torchmobile.com.cn>
2297
2298         [JSC] Web Inspector: implement breaking from native callback
2299         https://bugs.webkit.org/show_bug.cgi?id=43332
2300
2301         Reviewed by Pavel Feldman.
2302
2303         These test cases were enabled:
2304         LayoutTests/inspector/debugger/dom-breakpoints.html
2305         LayoutTests/inspector/debugger/event-listener-breakpoints.html
2306         LayoutTests/inspector/debugger/step-through-event-listeners.html
2307         LayoutTests/inspector/debugger/xhr-breakpoints.html
2308
2309         * bindings/js/ScriptDebugServer.cpp:
2310         (WebCore::ScriptDebugServer::breakProgram):
2311         * bindings/js/ScriptDebugServer.h:
2312         (WebCore::supportsNativeBreakpoints):
2313
2314 2012-06-11  MORITA Hajime  <morrita@google.com>
2315
2316         Spellchecker crash in async scenario.
2317         https://bugs.webkit.org/show_bug.cgi?id=88617
2318
2319         Reviewed by Tony Chang.
2320
2321         SpellCheckRequest::invokeRequest() can be reached after the frame is detached.
2322         SpellCheckRequest should ignore such a request since TextCheckerClient is not available
2323         for detached Frames.
2324
2325         No new tests. It's hard to reproduce this.
2326
2327         * editing/SpellChecker.cpp:
2328         (WebCore::SpellChecker::invokeRequest):
2329
2330 2012-06-11  Ryuan Choi  <ryuan.choi@samsung.com>
2331
2332         [EFL] Extract CursorMap from WidgetEfl.cpp.
2333         https://bugs.webkit.org/show_bug.cgi?id=88633
2334
2335         Reviewed by Ryosuke Niwa.
2336
2337         In order to share CursorMap in WebKit/efl and UIProcess of WebKit2/Efl,
2338         extract it and expose getEcoreCursor.
2339
2340         No new tests, refactoring only.
2341
2342         * platform/efl/EflScreenUtilities.cpp:
2343         (WebCore):
2344         (CursorMap):
2345         (WebCore::CursorMap::cursor):
2346         (WebCore::CursorMap::CursorMap):
2347         (WebCore::getEcoreCursor):
2348         * platform/efl/EflScreenUtilities.h:
2349         (WebCore):
2350         * platform/efl/WidgetEfl.cpp:
2351         (WebCore::Widget::applyFallbackCursor):
2352
2353 2012-06-10  Sheriff Bot  <webkit.review.bot@gmail.com>
2354
2355         Unreviewed, rolling out r119955.
2356         http://trac.webkit.org/changeset/119955
2357         https://bugs.webkit.org/show_bug.cgi?id=88758
2358
2359         Breaks Chromium compile - Chromium depends on removed API
2360         (Requested by dominicc on #webkit).
2361
2362         * WebCore.exp.in:
2363         * editing/Editor.cpp:
2364         (WebCore::Editor::insideVisibleArea):
2365         (WebCore):
2366         (WebCore::Editor::firstVisibleRange):
2367         (WebCore::Editor::lastVisibleRange):
2368         (WebCore::Editor::nextVisibleRange):
2369         (WebCore::Editor::rangeOfString):
2370         (WebCore::Editor::countMatchesForText):
2371         * editing/Editor.h:
2372         (Editor):
2373         * loader/FrameLoader.cpp:
2374         (WebCore::FrameLoader::findFrameForNavigation):
2375         * page/DOMWindow.cpp:
2376         (WebCore::DOMWindow::parent):
2377         (WebCore::DOMWindow::top):
2378         * page/EventHandler.cpp:
2379         (WebCore::EventHandler::hitTestResultAtPoint):
2380         * page/Frame.cpp:
2381         (WebCore::Frame::Frame):
2382         * page/Frame.h:
2383         (Frame):
2384         (WebCore::Frame::isDisconnected):
2385         (WebCore):
2386         (WebCore::Frame::setIsDisconnected):
2387         (WebCore::Frame::excludeFromTextSearch):
2388         (WebCore::Frame::setExcludeFromTextSearch):
2389         * page/FrameTree.cpp:
2390         (WebCore::FrameTree::parent):
2391         (WebCore::FrameTree::top):
2392         * page/FrameTree.h:
2393         (FrameTree):
2394         * page/Location.cpp:
2395         (WebCore::Location::ancestorOrigins):
2396         * xml/XMLTreeViewer.cpp:
2397         (WebCore::XMLTreeViewer::hasNoStyleInformation):
2398
2399 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
2400
2401         Using BlobBuilder should show a deprecation warning message (if it is enabled)
2402         https://bugs.webkit.org/show_bug.cgi?id=88644
2403
2404         Reviewed by Jian Li.
2405
2406         Mac has already disabled BlobBuilder, but Chromium still has it.
2407         We should start showing a warning to let people migrate to using Blob constructor.
2408
2409         Tests: fast/files/blob-builder-crash.html
2410
2411         * fileapi/WebKitBlobBuilder.cpp:
2412         (WebCore):
2413         (WebCore::WebKitBlobBuilder::create):
2414         * fileapi/WebKitBlobBuilder.h:
2415         (WebCore):
2416         (WebKitBlobBuilder):
2417         * fileapi/WebKitBlobBuilder.idl:
2418
2419 2012-06-10  Sam Weinig  <sam@webkit.org>
2420
2421         Remove support for disconnected/excluded from search frames, they are not used by Safari anymore
2422         https://bugs.webkit.org/show_bug.cgi?id=88723
2423
2424         Reviewed by Dan Bernstein.
2425
2426         * WebCore.exp.in:
2427         Update export.
2428         * editing/Editor.cpp:
2429         (WebCore::Editor::rangeOfString):
2430         (WebCore::Editor::countMatchesForText):
2431         * editing/Editor.h:
2432         (Editor):
2433         * loader/FrameLoader.cpp:
2434         (WebCore::FrameLoader::findFrameForNavigation):
2435         * page/DOMWindow.cpp:
2436         (WebCore::DOMWindow::parent):
2437         (WebCore::DOMWindow::top):
2438         * page/EventHandler.cpp:
2439         (WebCore::EventHandler::hitTestResultAtPoint):
2440         * page/Frame.cpp:
2441         (WebCore::Frame::Frame):
2442         * page/Frame.h:
2443         (Frame):
2444         * page/FrameTree.cpp:
2445         (WebCore::FrameTree::parent):
2446         (WebCore::FrameTree::top):
2447         * page/FrameTree.h:
2448         (FrameTree):
2449         * page/Location.cpp:
2450         (WebCore::Location::ancestorOrigins):
2451         * xml/XMLTreeViewer.cpp:
2452         (WebCore::XMLTreeViewer::hasNoStyleInformation):
2453         Update for the removal of disconnected frames and text search exclusions concepts.
2454
2455 2012-06-07  Kinuko Yasuda  <kinuko@google.com>
2456
2457         Move Quota related code out of DOMWindow and into the quota/ folder
2458         https://bugs.webkit.org/show_bug.cgi?id=88512
2459
2460         Reviewed by Adam Barth.
2461
2462         No new tests: no visible changes.
2463
2464         * CMakeLists.txt:
2465         * DerivedSources.cpp:
2466         * DerivedSources.make:
2467         * DerivedSources.pri:
2468         * Modules/quota/DOMWindowQuota.cpp: Added.
2469         * Modules/quota/DOMWindowQuota.h: Added.
2470         * Modules/quota/DOMWindowQuota.idl: Added.
2471         * Modules/quota/StorageInfo.cpp: Renamed from Source/WebCore/storage/StorageInfo.cpp.
2472         * Modules/quota/StorageInfo.h: Renamed from Source/WebCore/storage/StorageInfo.h.
2473         * Modules/quota/StorageInfo.idl: Renamed from Source/WebCore/storage/StorageInfo.idl.
2474         * Modules/quota/StorageInfoErrorCallback.h: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.h.
2475         * Modules/quota/StorageInfoErrorCallback.idl: Renamed from Source/WebCore/storage/StorageInfoErrorCallback.idl.
2476         * Modules/quota/StorageInfoQuotaCallback.h: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.h.
2477         * Modules/quota/StorageInfoQuotaCallback.idl: Renamed from Source/WebCore/storage/StorageInfoQuotaCallback.idl.
2478         * Modules/quota/StorageInfoUsageCallback.h: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.h.
2479         * Modules/quota/StorageInfoUsageCallback.idl: Renamed from Source/WebCore/storage/StorageInfoUsageCallback.idl.
2480         * Target.pri:
2481         * WebCore.gyp/WebCore.gyp:
2482         * WebCore.gypi:
2483         * WebCore.pri:
2484         * WebCore.vcproj/WebCore.vcproj:
2485         * WebCore.vcproj/WebCoreCommon.vsprops:
2486         * WebCore.vcproj/copyForwardingHeaders.cmd:
2487         * WebCore.xcodeproj/project.pbxproj:
2488         * page/DOMWindow.cpp:
2489         * page/DOMWindow.h:
2490         * page/DOMWindow.idl:
2491
2492 2012-06-10  Hayato Ito  <hayato@chromium.org>
2493
2494         An inheritance of '-webkit-user-modify' does not stop at shadow boundary.
2495         https://bugs.webkit.org/show_bug.cgi?id=88514
2496
2497         Reviewed by Ryosuke Niwa.
2498
2499         In StyleResolver::styleForElement(), we reset '-webkit-user-modify'
2500         CSS property after inheriting a parent style, but that is not
2501         enough.  We also have to reset '-webkit-user-modify' when we use a
2502         cached result in applying matched properties.
2503
2504         Test: fast/dom/shadow/user-modify-inheritance.html
2505
2506         * css/StyleResolver.cpp:
2507         (WebCore::StyleResolver::applyMatchedProperties):
2508         (WebCore::StyleResolver::styleForElement):
2509         * css/StyleResolver.h:
2510         (StyleResolver):
2511         * rendering/style/RenderStyle.cpp:
2512         (WebCore::RenderStyle::inheritFrom):
2513         * rendering/style/RenderStyle.h:
2514
2515 2012-06-10  Yoshifumi Inoue  <yosin@chromium.org>
2516
2517         [Forms] Introduce Decimal behind the InputNumber type
2518         https://bugs.webkit.org/show_bug.cgi?id=88383
2519
2520         Reviewed by Kent Tamura.
2521
2522         This patch introduces decimal arithmetic for steppable input types,
2523         e.g. date, datetime, number, range, and so on, to avoid rounding error
2524         caused by base 2 floating point representation, e.g. C/C++ double type.
2525
2526         Most of decimal arithmetic calculations are implemented in StepRange
2527         class, replacing "double" with "Decimal", InputType::applyStep, and
2528         InputType::stepFromRenderer.
2529
2530         Changes introduced by this patch are still intermediate state.
2531         Following patch will replace InputNumber type to Decimal type for
2532         completion of introducing decimal arithmetic.
2533
2534         Test: fast/forms/range/range-value-rounding.html
2535
2536         * html/BaseDateAndTimeInputType.cpp:
2537         (WebCore::BaseDateAndTimeInputType::serialize): Changed for Decimal type.
2538         (WebCore::BaseDateAndTimeInputType::serializeWithComponents): ditto.
2539         * html/DateInputType.cpp:
2540         (WebCore::DateInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
2541         * html/DateTimeInputType.cpp:
2542         (WebCore::DateTimeInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
2543         * html/DateTimeLocalInputType.cpp:
2544         (WebCore::DateTimeLocalInputType::createStepRange): Replaced NumberWithDecimalPlaces to InputNumber.
2545         * html/InputType.cpp:
2546         (WebCore::InputType::rangeUnderflow): Changed for Decimal type.
2547         (WebCore::InputType::rangeOverflow): Changed for Decimal type.
2548         (WebCore::InputType::minimum): Changed for Decimal type.
2549         (WebCore::InputType::maximum): ditto.
2550         (WebCore::InputType::isInRange): ditto.
2551         (WebCore::InputType::isOutOfRange): ditto.
2552         (WebCore::InputType::stepMismatch): ditto.
2553         (WebCore::InputType::validationMessage): ditto.
2554         (WebCore::InputType::parseToNumberOrNaN): ditto.
2555         (WebCore::InputType::applyStep): ditto.
2556         (WebCore::InputType::stepUpFromRenderer): ditto.
2557         * html/InputType.h:
2558         (InputType): Removed parseToNumberWIthDecimaplPlaces.
2559         * html/MonthInputType.cpp:
2560         (WebCore::MonthInputType::createStepRange): Changed for Decimal type.
2561         * html/NumberInputType.cpp:
2562         (WebCore::RealNumberRenderSize): Added for calculateRenderSize.
2563         (WebCore::calculateRenderSize): Added. This function replacess lengthBeforeDecimalPoint.
2564         (WebCore::NumberInputType::createStepRange): Changed for Decimal type.
2565         (WebCore::NumberInputType::sizeShouldIncludeDecoration): Changed to use calculateRenderSize.
2566         (WebCore::NumberInputType::parseToNumber): Changed for Decimal type.
2567         (WebCore::NumberInputType::serialize): ditto.
2568         * html/NumberInputType.h:
2569         (NumberInputType): Removed parseToNumberWIthDecimaplPlaces.
2570         * html/RangeInputType.cpp:
2571         (WebCore::RangeInputType::createStepRange): Changed for Decimal type.
2572         (WebCore::RangeInputType::handleKeydownEvent): ditto.
2573         (WebCore::RangeInputType::parseToNumber): ditto.
2574         (WebCore::RangeInputType::serialize): ditto.
2575         * html/StepRange.cpp:
2576         (WebCore::StepRange::StepRange): Removed decimal places and changed for Decimal type.
2577         (WebCore::StepRange::acceptableError): Changed for Decimal type.
2578         (WebCore::StepRange::alignValueForStep): ditto.
2579         (WebCore::StepRange::clampValue): Changed for Decimal type and std::min/max.
2580         (WebCore::StepRange::parseStep): Changed for Decimal type and removed NumberWithDecimalPlaces.
2581         (WebCore::StepRange::stepMismatch): Changed for Decimal type.
2582         (WebCore::convertDoubleToInputNumber): Changed to real implementation.
2583         (WebCore::convertInputNumberToDouble):  Changed to real implementation.
2584         * html/StepRange.h:
2585         (InputNumber): Replacement of NumberWithDecimalPlaces.
2586         (WebCore::StepRange::InputNumber::InputNumber):
2587         * html/TimeInputType.cpp:
2588         (WebCore::TimeInputType::createStepRange): Changed for Decimal type.
2589         * html/WeekInputType.cpp:
2590         (WebCore::WeekInputType::createStepRange): Changed for Decimal type.
2591         * html/parser/HTMLParserIdioms.cpp:
2592         (WebCore::serializeForNumberType): Added Decimal version.
2593         (WebCore::parseToDecimalForNumberType): Added.
2594         * html/parser/HTMLParserIdioms.h: Updated comments for parseToDoubleForNumberType.
2595         * html/shadow/SliderThumbElement.cpp:
2596         (WebCore::sliderPosition): Changed for Decimal type.
2597
2598 2012-06-10  Jason Liu  <jason.liu@torchmobile.com.cn>
2599
2600         [BlackBerry] Possible to clobber httponly cookie.
2601         https://bugs.webkit.org/show_bug.cgi?id=86067
2602
2603         Reviewed by Rob Buis.
2604
2605         If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
2606         we should reject it. If it has a httpOnly property, we reject it, too.
2607
2608         Test: http/tests/cookies/js-get-and-set-http-only-cookie.html
2609
2610         * platform/blackberry/CookieJarBlackBerry.cpp:
2611         (WebCore::setCookies):
2612         * platform/blackberry/CookieManager.cpp:
2613         (WebCore::CookieManager::setCookies):
2614         (WebCore::CookieManager::checkAndTreatCookie):
2615         (WebCore::CookieManager::addCookieToMap):
2616         (WebCore::CookieManager::setPrivateMode):
2617         * platform/blackberry/CookieManager.h:
2618         * platform/blackberry/CookieMap.cpp:
2619         (WebCore::CookieMap::addOrReplaceCookie):
2620         (WebCore::CookieMap::removeCookie):
2621         * platform/blackberry/CookieMap.h:
2622         (CookieMap):
2623
2624 2012-06-10  Pablo Flouret  <pablof@motorola.com>
2625
2626         Access control allow lists starting with a comma are parsed incorrectly (CORS)
2627         https://bugs.webkit.org/show_bug.cgi?id=88461
2628
2629         Reviewed by Adam Barth.
2630
2631         The parsing algorithm would stop parsing at the first comma (being an
2632         empty entry, of sorts) and bail out, effectively ignoring the whole
2633         header.
2634
2635         Test: http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html
2636
2637         * loader/CrossOriginPreflightResultCache.cpp:
2638         (WebCore::parseAccessControlAllowList):
2639
2640 2012-06-10  Darin Adler  <darin@apple.com>
2641
2642         Some additional tweaks to keep TreeShared code simple/clean
2643         https://bugs.webkit.org/show_bug.cgi?id=88738
2644
2645         Reviewed by Adam Barth.
2646
2647         * platform/TreeShared.h: Make constructor and destructor both protected.
2648         It's slightly dangerous to have a public non-virtual destructor, and there
2649         is no reason it needs to be public.
2650         (WebCore::TreeShared::~TreeShared): Make debug-only destructor non-virtual;
2651         we were getting no value from it being virtual. Now that it's non-virtual,
2652         there is no need to use an #if on it since it's an empty inline destructor
2653         in non-debug builds.
2654
2655 2012-06-06  Jer Noble  <jer.noble@apple.com>
2656
2657         REGRESSION: Setting invalid media "src" does not cause "error" event
2658         https://bugs.webkit.org/show_bug.cgi?id=88423
2659
2660         Reviewed by Eric Carlson.
2661
2662         Test: http/tests/media/video-src-invalid-error.html
2663
2664         Two problems here.  When the loadTimer is scheduled, the m_pendingLoadFlags
2665         variable is set to specify what type of load is scheduled.  It is cleared
2666         when the loadTimer fires. But, when prepareForLoad() stops the loadTimer,
2667         it does not clear the m_pendingLoadFlags variable, so the next time
2668         scheduleLoad() is called (when the src is changed to an invalid URL)
2669         prepareForLoad() is not called again.
2670
2671         Second problem: Due to a bug in QTKit (<rdar://problem/11606415>), the
2672         QTMovieLoadStateChangedNotification is never fired for an invalid http
2673         URL if QTMovieOpenAsyncRequiredAttribute:YES is not passed when creating
2674         the QTMovie.
2675
2676         Add a new utility method which both stops the m_loadTimer and clears the 
2677         m_pendingLoadFlags, and use it in all the places where m_loadTimer was 
2678         stopped explicitly:
2679
2680         * html/HTMLMediaElement.cpp:
2681         (WebCore::HTMLMediaElement::prepareForLoad):
2682         (WebCore::HTMLMediaElement::stopLoadTimer): Added
2683         (WebCore::HTMLMediaElement::userCancelledLoad):
2684         * html/HTMLMediaElement.h:
2685
2686         And pass QTMovieOpenAsyncRequiredAttribute:YES when creating the QTMovie:
2687
2688         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2689         (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes):
2690
2691 2012-06-06  Jer Noble  <jer.noble@apple.com>
2692
2693         Add logging functions to MediaPlayerPrivateQTKit.
2694         https://bugs.webkit.org/show_bug.cgi?id=88425
2695
2696         Reviewed by Eric Carlson.
2697
2698         No new tests; adds logging functions to aide debugging.
2699
2700         MediaPlayerPrivateQTKit should emit the same kind of logging messages as 
2701         other MediaPlayerPrivate engines to aide in debugging.
2702
2703         Distinguish between loadedRangesChanged() and loadStateChanged() for logging
2704         purposes:
2705         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2706         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2707         (WebCore::MediaPlayerPrivateQTKit::loadedRangesChanged):
2708         (-[WebCoreMovieObserver loadedRangesChanged:]):
2709
2710         Add LOG messages for each of the following functions:
2711         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2712         (WebCore::MediaPlayerPrivateQTKit::~MediaPlayerPrivateQTKit):
2713         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
2714         (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
2715         (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView):
2716         (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
2717         (WebCore::MediaPlayerPrivateQTKit::destroyQTVideoRenderer):
2718         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
2719         (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
2720         (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
2721         (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
2722         (WebCore::MediaPlayerPrivateQTKit::load):
2723         (WebCore::MediaPlayerPrivateQTKit::prepareToPlay):
2724         (WebCore::MediaPlayerPrivateQTKit::play):
2725         (WebCore::MediaPlayerPrivateQTKit::pause):
2726         (WebCore::MediaPlayerPrivateQTKit::seek):
2727         (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
2728         (WebCore::MediaPlayerPrivateQTKit::setVolume):
2729         (WebCore::MediaPlayerPrivateQTKit::setRate):
2730         (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
2731         (WebCore::MediaPlayerPrivateQTKit::cancelLoad):
2732         (WebCore::MediaPlayerPrivateQTKit::prepareForRendering):
2733         (WebCore::MediaPlayerPrivateQTKit::updateStates):
2734         (WebCore::MediaPlayerPrivateQTKit::loadStateChanged):
2735         (WebCore::MediaPlayerPrivateQTKit::rateChanged):
2736         (WebCore::MediaPlayerPrivateQTKit::sizeChanged):
2737         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
2738         (WebCore::MediaPlayerPrivateQTKit::didEnd):
2739         (WebCore::MediaPlayerPrivateQTKit::clearMediaCache):
2740         (WebCore::MediaPlayerPrivateQTKit::clearMediaCacheForSite):
2741         (WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks):
2742
2743 2012-06-07  Jer Noble  <jer.noble@apple.com>
2744
2745         WebCore should use a single definition of an invalid media time.
2746         https://bugs.webkit.org/show_bug.cgi?id=88572
2747
2748         Reviewed by Eric Carlson.
2749
2750         No new tests; no change in functionality, so covered by existing tests.
2751
2752         Add a new, universal definition for an invalid media time:
2753         * platform/graphics/MediaPlayer.h:
2754         (WebCore::MediaPlayer::invalidTime):
2755
2756         Use this new definition instead of the hodge podge of (identical) local
2757         definitions for an invalid media time:
2758         * html/HTMLMediaElement.cpp:
2759         (WebCore::HTMLMediaElement::HTMLMediaElement):
2760         (WebCore::HTMLMediaElement::invalidateCachedTime):
2761         (WebCore::HTMLMediaElement::currentTime):
2762         (WebCore::HTMLMediaElement::initialTime):
2763         (WebCore::HTMLMediaElement::playbackProgressTimerFired):
2764         (WebCore::HTMLMediaElement::prepareMediaFragmentURI):
2765         (WebCore::HTMLMediaElement::applyMediaFragmentURI):
2766         * html/MediaFragmentURIParser.cpp:
2767         (WebCore::MediaFragmentURIParser::invalidTimeValue):
2768         (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
2769         (WebCore::MediaFragmentURIParser::startTime):
2770         (WebCore::MediaFragmentURIParser::endTime):
2771         (WebCore::MediaFragmentURIParser::parseTimeFragment):
2772         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2773         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
2774         (WebCore::MediaPlayerPrivateAVFoundation::duration):
2775         (WebCore::MediaPlayerPrivateAVFoundation::seeking):
2776         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
2777         (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
2778         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2779         (MediaPlayerPrivateAVFoundation):
2780         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2781         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
2782         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2783         (WebCore::MediaPlayerPrivateQTKit::duration):
2784         (WebCore::MediaPlayerPrivateQTKit::updateStates):
2785         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
2786
2787 2012-06-10  Darin Adler  <darin@apple.com>
2788
2789         Remove unneeded callRemovedLastRef function from TreeShared refactoring
2790         https://bugs.webkit.org/show_bug.cgi?id=88653
2791
2792         Reviewed by Sam Weinig.
2793
2794         * WebCore.exp.in: Updated to remove callRemovedLastRef and add removedLastRef.
2795
2796         * dom/ContainerNode.cpp: Removed callRemovedLastRef, which is no longer
2797         needed and also had a bad cast in it.
2798
2799         * dom/Document.h: Made removedLastRef private and non-virtual and made Node
2800         a friend so it can call the private function.
2801
2802         * dom/Node.cpp:
2803         (WebCore::Node::removedLastRef): Moved here. This should not be an inline
2804         function. Added comments explaining why it should not be inlined. Also added
2805         explicit code to call to Document::removedLastRef, and added a comment why
2806         that's the right thing to do here.
2807         * dom/Node.h: Inherit from TreeShared<Node, ContainerNode>. Made the
2808         removedLastRef function non-virtual and removed it from the header file.
2809         Updated TreeShared using statements. Made the TreeShared template class a
2810         friend so it can call the private removedLastRef.
2811
2812         * html/HTMLFormControlElement.h: Updated TreeShared using statements to specify
2813         Node instead, which accomplishes the same thing.
2814         * html/HTMLObjectElement.h: Ditto.
2815
2816         * platform/TreeShared.h: Made TreeShared take two template arguments for the
2817         node type and the parent node type. Removed the callRemovedLastRef functions and
2818         the extra forward declarations it required. Removed the private unused
2819         removedLastRef function; not sure why it was left in here at all.
2820         (WebCore::TreeShared::deref): Call removedLastRef instead of callRemovedLastRef.
2821         (WebCore::TreeShared::setParent): Use ParentNodeType.
2822         (WebCore::TreeShared::parent): Ditto.
2823         (WebCore::adopted): Updated to have both template arguments.
2824
2825         * svg/SVGElementInstance.cpp:
2826         (WebCore::SVGElementInstance::removedLastRef): Replaced callRemovedLastRef with
2827         this. Moved the body out of the header and added a comment explaining why the
2828         function should not be inlined.
2829         * svg/SVGElementInstance.h: Made removedLastRef non-virtual, non-inline, and
2830         private. Made TreeShared a friend so it can call the private removedLastRef.
2831         Updated TreeShared using statements.
2832
2833 2012-06-10  Darin Adler  <darin@apple.com>
2834
2835         * WebCore.exp.in: Re-sorted and alphabetized the file.
2836
2837 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
2838
2839         [Qt][Win] Fix building Source/WebCore/plugins/win/PluginViewWin.cpp
2840         https://bugs.webkit.org/show_bug.cgi?id=88308
2841
2842         Reviewed by Simon Hausmann.
2843
2844         No new tests, just a build fix.
2845
2846         Use ownerWindow() from page client. It has been
2847         introduced for x11 plugins to solve exactly the
2848         same problem.
2849
2850         * plugins/win/PluginViewWin.cpp:
2851         (windowHandleForPageClient):
2852
2853 2012-06-10  Balazs Kelemen  <kbalazs@webkit.org>
2854
2855         [Qt][Win] Fix building ImageQt.cpp
2856         https://bugs.webkit.org/show_bug.cgi?id=88306
2857
2858         Reviewed by Simon Hausmann.
2859
2860         No new tests, this is just a build fix.
2861
2862         * platform/graphics/qt/ImageQt.cpp:
2863         (WebCore):
2864         (WebCore::BitmapImage::create):
2865         Adapt to the "API" changes in Qt.
2866
2867 2012-06-09  Gregg Tavares  <gman@google.com>
2868
2869         Make WebGL mark draws for compositing even if the draw count is zero
2870         https://bugs.webkit.org/show_bug.cgi?id=88718
2871
2872         Reviewed by Kenneth Russell.
2873
2874         No new tests as no new functionality.
2875
2876         * html/canvas/WebGLRenderingContext.cpp:
2877         (WebCore):
2878         (WebCore::WebGLRenderingContext::drawArrays):
2879         (WebCore::WebGLRenderingContext::drawElements):
2880
2881 2012-06-09  Dominic Cooney  <dominicc@chromium.org>
2882
2883         [Chromium] Remove JavaScriptCore dependencies from gyp
2884         https://bugs.webkit.org/show_bug.cgi?id=88510
2885
2886         Reviewed by Adam Barth.
2887
2888         Chromium doesn't support JSC any more and there doesn't seem to be
2889         a strong interest in using GYP as the common build system in other
2890         ports.
2891
2892         No new functionality => No new tests.
2893
2894         * gyp/WebCore.gyp: Removed.
2895         * gyp/copy-forwarding-and-icu-headers.sh: Removed.
2896         * gyp/copy-inspector-resources.sh: Removed.
2897         * gyp/generate-derived-sources.sh: Removed.
2898         * gyp/generate-webcore-export-file-generator.sh: Removed.
2899         * gyp/gtk.gyp: Removed.
2900         * gyp/run-if-exists.sh: Removed.
2901         * gyp/streamline-inspector-source.sh: Removed.
2902         * gyp/update-info-plist.sh: Removed.
2903
2904 2012-06-07  Darin Adler  <darin@apple.com>
2905
2906         Refactor and improve code style in TextResourceDecoder to prepare for buffering improvement
2907         https://bugs.webkit.org/show_bug.cgi?id=88566
2908
2909         Reviewed by Alexey Proskuryakov.
2910
2911         * loader/TextResourceDecoder.cpp:
2912         (WebCore::bytesEqual): Added helper function to make comparing against sequences of bytes
2913         easier to read at the call site.
2914         (WebCore::KanjiCode::judge): Changed to use bytesEqual in a few places, merged multiple if
2915         statements, got rid of else after goto.
2916         (WebCore::TextResourceDecoder::checkForCSSCharset): Changed to use early return instead of
2917         nesting the whole function. Changed to use bytesEqual.
2918         (WebCore::skipComment): Changed to use early return for more cases. Changed to use bytesEqual.
2919         (WebCore::TextResourceDecoder::checkForHeadCharset): Changed to use bytesEqual.
2920         (WebCore::TextResourceDecoder::decode): Changed to use emptyString() instead of "", since
2921         the former is more efficient.
2922
2923 2012-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>
2924
2925         Unreviewed, rolling out r118618 and r119353.
2926         http://trac.webkit.org/changeset/118618
2927         http://trac.webkit.org/changeset/119353
2928         https://bugs.webkit.org/show_bug.cgi?id=88720
2929
2930         Caused at least 30 different crashes on ClusterFuzz (Requested
2931         by inferno-sec on #webkit).
2932
2933         * loader/SubresourceLoader.cpp:
2934         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
2935         * loader/cache/CachedCSSStyleSheet.cpp:
2936         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
2937         * loader/cache/CachedFont.cpp:
2938         (WebCore::CachedFont::allClientsRemoved):
2939         * loader/cache/CachedFont.h:
2940         (WebCore::CachedFontClient::resourceClientType):
2941         * loader/cache/CachedImage.cpp:
2942         (WebCore::CachedImage::removeClientForRenderer):
2943         (WebCore):
2944         (WebCore::CachedImage::allClientsRemoved):
2945         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
2946         * loader/cache/CachedImage.h:
2947         (CachedImage):
2948         (WebCore::CachedImageClient::resourceClientType):
2949         * loader/cache/CachedRawResource.cpp:
2950         (WebCore::CachedRawResource::allClientsRemoved):
2951         (WebCore):
2952         * loader/cache/CachedRawResource.h:
2953         (CachedRawResource):
2954         (WebCore::CachedRawResourceClient::resourceClientType):
2955         * loader/cache/CachedResource.cpp:
2956         (WebCore::CachedResource::removeClient):
2957         * loader/cache/CachedResource.h:
2958         (WebCore::CachedResource::allClientsRemoved):
2959         * loader/cache/CachedResourceClient.h:
2960         (WebCore::CachedResourceClient::resourceClientType):
2961         * loader/cache/CachedSVGDocument.h:
2962         (WebCore::CachedSVGDocumentClient::resourceClientType):
2963         * loader/cache/CachedScript.cpp:
2964         (WebCore::CachedScript::allClientsRemoved):
2965         * loader/cache/CachedStyleSheetClient.h:
2966         (WebCore::CachedStyleSheetClient::resourceClientType):
2967         * rendering/style/StyleCachedImage.cpp:
2968         (WebCore::StyleCachedImage::removeClient):
2969         * rendering/style/StyleCachedImageSet.cpp:
2970         (WebCore::StyleCachedImageSet::removeClient):
2971         * svg/graphics/SVGImageCache.cpp:
2972         (WebCore::SVGImageCache::~SVGImageCache):
2973         (WebCore::SVGImageCache::removeRendererFromCache):
2974         (WebCore::SVGImageCache::setRequestedSizeAndScales):
2975         (WebCore::SVGImageCache::requestedSizeAndScales):
2976         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
2977         * svg/graphics/SVGImageCache.h:
2978         (WebCore):
2979         (SVGImageCache):
2980
2981 2012-06-09  Florin Malita  <fmalita@chromium.org>
2982
2983         Fixed-position foreignObject descendants should be relative to the foreignObject viewport
2984         https://bugs.webkit.org/show_bug.cgi?id=88547
2985
2986         Reviewed by Abhishek Arya.
2987
2988         Tests: svg/foreignObject/fO-fixed-position-crash.html
2989                svg/foreignObject/fixed-position-expected.svg
2990                svg/foreignObject/fixed-position.svg
2991
2992         Fixed position elements are currently registered with the top level
2993         RenderView even when embedded within an SVG foreignOject. This patch
2994         changes containingBlock() & container() to return the containing
2995         foreignObject renderer instead.
2996
2997         The new foreignObject fixed position behavior matches that of current
2998         FireFox and Opera versions and is consistent with the spec:
2999         http://www.w3.org/TR/CSS2/visuren.html#fixed-positioning
3000         http://www.w3.org/TR/SVG/coords.html#EstablishingANewViewport
3001
3002         * rendering/RenderObject.cpp:
3003         (WebCore::RenderObject::containingBlock):
3004         (WebCore::RenderObject::container):
3005
3006 2012-06-09  Adam Barth  <abarth@webkit.org>
3007
3008         Can't use eval in iframes sanbdoxed via CSP header
3009         https://bugs.webkit.org/show_bug.cgi?id=88450
3010
3011         Reviewed by Mihai Parparita.
3012
3013         The initial empty document in a frame inherits the security context of
3014         its parent (including the CSP policy).  When we load the real document,
3015         in some cases we'll do a "secure transition" to the new document.  That
3016         means that we leave the global object in place in case the parent
3017         document has created any properties that it expects will be visible to
3018         the new document.
3019
3020         If the parent document has a CSP policy that blocks eval, the "no eval"
3021         bit will be set on the global object of the initial document.  When we
3022         perform a "secure transition" to the new document, we'll keep the bit,
3023         which is wrong.  In this patch, we reset the bit by always enabling
3024         eval when clearing the context, regardless of whether we're performing
3025         a "secure transition".
3026
3027         Test: http/tests/security/contentSecurityPolicy/iframe-inside-csp.html
3028
3029         * bindings/js/ScriptController.cpp:
3030         (WebCore::ScriptController::enableEval):
3031         (WebCore):
3032         * bindings/js/ScriptController.h:
3033         (ScriptController):
3034         * bindings/v8/ScriptController.cpp:
3035         (WebCore::ScriptController::enableEval):
3036         (WebCore):
3037         (WebCore::ScriptController::disableEval):
3038         * bindings/v8/ScriptController.h:
3039         (ScriptController):
3040         * loader/FrameLoader.cpp:
3041         (WebCore::FrameLoader::clear):
3042
3043 2012-06-09  Pablo Flouret  <pablof@motorola.com>
3044
3045         The value in Access-Control-Allow-Origin is not being matched correctly for CORS-enabled requests
3046         https://bugs.webkit.org/show_bug.cgi?id=88139
3047
3048         Reviewed by Adam Barth.
3049
3050         Compare a request's origin with the value given in any
3051         Access-Control-Allow-Origin headers in an exact, case-sensitive manner,
3052         instead of using SecurityOrigin::isSameSchemeHostPort(). Per step 3 of
3053         the resource sharing check algorithm in
3054         http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-sharing-check
3055
3056         Test: http/tests/xmlhttprequest/origin-exact-matching.html
3057
3058         * loader/CrossOriginAccessControl.cpp:
3059         (WebCore::passesAccessControlCheck):
3060
3061 2012-06-09  Huang Dongsung  <luxtella@company100.net>
3062
3063         [Qt][Texmap] All layers with backingStore are opaque when using TextureMapperGL.
3064         https://bugs.webkit.org/show_bug.cgi?id=88703
3065
3066         The bug originated from StillImage that is not override
3067         Image::currentFrameHasAlpha(), so it always returns false.
3068         StillImage is used by ImageBuffer, and if Texmap draws contents on ImageBuffer,
3069         TextureMapperBackingStore thinks contents does not have alpha.
3070
3071         Covered by existing compositing tests.
3072
3073         Reviewed by Noam Rosenthal.
3074
3075         * platform/graphics/qt/StillImageQt.cpp:
3076         (WebCore::StillImage::currentFrameHasAlpha):
3077         (WebCore):
3078         * platform/graphics/qt/StillImageQt.h:
3079         (StillImage):
3080
3081 2012-06-09  Victor Carbune  <victor@rosedu.org>
3082
3083         Basic support for timestamps within a TextTrackCue
3084         https://bugs.webkit.org/show_bug.cgi?id=88187
3085
3086         Implemented support for timestamps within a TextTrackCue.
3087         This enables rendering functionality for Karaoke and Paint-on captions.
3088
3089         Reviewed by Eric Carlson.
3090
3091         Test: media/track/track-cue-rendering-inner-timestamps.html
3092
3093         * css/mediaControls.css: Remove the background shadow pseudo-id and
3094         added two others, which can be further used for styling past / future
3095         contents of the cue.
3096         (video::-webkit-media-text-track-past-nodes): Used to style elements
3097         within the cue that are before the current movie time.
3098         (video::-webkit-media-text-track-future-nodes): Used to style elements
3099         within the cue that are after the current movie time.
3100         * html/HTMLMediaElement.cpp:
3101         (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Regardless of whether
3102         the active set changed or not, the current cues need to be informed of the current
3103         movie time.
3104         * html/track/TextTrackCue.cpp:
3105         (WebCore::TextTrackCue::TextTrackCue): Initiliazed past and future containers.
3106         (WebCore::TextTrackCue::getCueAsHTML): Checked whether the current cue text has
3107         inner timestamps or not, in order to render faster if no timestamps are there.
3108         (WebCore::TextTrackCue::updateDisplayTree): Added method that keeps the past and future
3109         containers up to date, given a current movie time.
3110         (WebCore):
3111         (WebCore::TextTrackCue::getDisplayTree): Replaced the cue background container with the
3112         past cues container. The *internal* display tree of the cue now has two containers,
3113         representing past and future elements.
3114         * html/track/TextTrackCue.h: Added several variables to support the new functionality.
3115         (TextTrackCue):
3116         * html/track/WebVTTParser.cpp:
3117         (WebCore::WebVTTParser::constructTreeFromToken): Updated representation for this patch.
3118         * html/track/WebVTTParser.h:
3119         (WebVTTParser): Made public the collectTimeStamp method, as this is required for
3120         parsing timestamps within a cue as well.
3121
3122 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
3123
3124         Web Inspector: Open links in Sources panel by default and fallback to Resources and Network panel otherwise.
3125         https://bugs.webkit.org/show_bug.cgi?id=88710
3126
3127         Reviewed by Pavel Feldman.
3128
3129         * inspector/front-end/inspector.js:
3130         (WebInspector.documentClick.followLink):
3131         (WebInspector.documentClick):
3132         (WebInspector._showAnchorLocation):
3133
3134 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
3135
3136         Web Inspector: Only expand root domain in Sources/Scripts panel
3137         https://bugs.webkit.org/show_bug.cgi?id=88135
3138
3139         Reviewed by Pavel Feldman.
3140
3141         * inspector/front-end/NavigatorView.js:
3142         (WebInspector.NavigatorTreeOutline._treeElementsCompare.compare.typeWeight):
3143         (WebInspector.NavigatorTreeOutline._treeElementsCompare):
3144         (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
3145
3146 2012-06-09  Vsevolod Vlasov  <vsevik@chromium.org>
3147
3148         Web Inspector: Pretty print should respect text editor indent setting.
3149         https://bugs.webkit.org/show_bug.cgi?id=88713
3150
3151         Reviewed by Pavel Feldman.
3152
3153         * inspector/front-end/ScriptFormatter.js:
3154
3155 2012-06-09  Dan Bernstein  <mitz@apple.com>
3156
3157         Fixed the build after r119895.
3158
3159         * WebCore.xcodeproj/project.pbxproj:
3160
3161 2012-06-09  Andrey Kosyakov  <caseq@chromium.org>
3162
3163         Web Inspector: [refactoring] rename TimelineVerticalOverview into TimelineFrameOverview
3164         https://bugs.webkit.org/show_bug.cgi?id=88708
3165
3166         Reviewed by Vsevolod Vlasov.
3167
3168         - rename TimelineVerticalOverview to TimelineFrameOverview;
3169         - rename associated fields, parameters, CSS classes etc;
3170         - rename overview mode designators to match the UI;
3171         - drop unused CSS rules for old-style mode selector;
3172
3173         * inspector/front-end/TimelineOverviewPane.js:
3174         (WebInspector.TimelineOverviewPane):
3175         (WebInspector.TimelineOverviewPane.prototype._showEvents):
3176         (WebInspector.TimelineOverviewPane.prototype._showFrames):
3177         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
3178         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
3179         (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
3180         (WebInspector.TimelineOverviewPane.prototype._update):
3181         (WebInspector.TimelineOverviewPane.prototype.addFrame):
3182         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
3183         (WebInspector.TimelineOverviewPane.prototype._reset):
3184         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
3185         (WebInspector.TimelineFrameOverview):
3186         * inspector/front-end/TimelinePanel.js:
3187         (WebInspector.TimelinePanel):
3188         (WebInspector.TimelinePanel.prototype._shouldShowFrames):
3189         (WebInspector.TimelinePanel.prototype.revealRecordAt):
3190         * inspector/front-end/timelinePanel.css:
3191         (.timeline-frame-overview #timeline-overview-grid):
3192         (.timeline-frame-overview .timeline-overview-window):
3193         (.timeline-frame-overview .timeline-overview-dividers-background):
3194         (.timeline-frame-overview #timeline-overview-memory):
3195         (.timeline-frame-overview-status-bar-item.toggled-on .glyph):
3196         (.timeline-frame-overview-bars):
3197         (.timeline.timeline-frame-overview .resources-divider):
3198         (.sidebar-tree-item .timeline-frame-overview-status-bar-item):
3199
3200 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
3201
3202         IndexedDB: Inspector should handle null, string, and array keyPaths
3203         https://bugs.webkit.org/show_bug.cgi?id=84303
3204
3205         Reviewed by Pavel Feldman.
3206
3207         Supported different key path types and updated tests to cover each case.
3208         Key path strings are now highlighted in the DataGrid column headers.
3209
3210         * inspector/Inspector.json:
3211         * inspector/InspectorIndexedDBAgent.cpp:
3212         (WebCore):
3213         * inspector/front-end/IndexedDBModel.js:
3214         (WebInspector.IndexedDBModel.idbKeyPathFromKeyPath):
3215         (WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath):
3216         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
3217         (WebInspector.IndexedDBModel.prototype._loadDatabase):
3218         (WebInspector.IndexedDBModel.ObjectStore.prototype.get keyPathString):
3219         (WebInspector.IndexedDBModel.Index.prototype.get keyPathString):
3220         * inspector/front-end/IndexedDBViews.js:
3221         (WebInspector.IDBDataView.prototype._createDataGrid):
3222         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
3223         (WebInspector.IDBDataView.prototype._keyPathStringFragment):
3224         (WebInspector.IDBDataGridNode.prototype.createCell):
3225         * inspector/front-end/ResourcesPanel.js:
3226         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
3227         (WebInspector.IDBIndexTreeElement.prototype._updateTooltip):
3228
3229 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
3230
3231         Web Inspector: Increase size limits for resource content cached in InspectorResourceAgent.
3232         https://bugs.webkit.org/show_bug.cgi?id=88674
3233
3234         Reviewed by Pavel Feldman.
3235
3236         * inspector/NetworkResourcesData.cpp:
3237
3238 2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
3239
3240         Web Inspector: Limit DebuggerAgent.Location use to DebuggerModel only, introduce WebInspector.RawLocation to be used elsewhere.
3241         https://bugs.webkit.org/show_bug.cgi?id=87270
3242
3243         Reviewed by Pavel Feldman.
3244
3245         Introduced WebInspector.RawLocation interface, a generic raw location independent from concrete domain (Styles, Debugger).
3246         Made WebInspector.DebuggerModel.Location implement it and switched all debugger related methods to it.
3247
3248         * inspector/front-end/BreakpointManager.js:
3249         (WebInspector.BreakpointManager.prototype._breakpointResolved):
3250         * inspector/front-end/CompilerScriptMapping.js:
3251         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
3252         * inspector/front-end/DebuggerModel.js:
3253         (WebInspector.DebuggerModel.Location):
3254         (WebInspector.DebuggerModel.prototype.continueToLocation):
3255         (WebInspector.DebuggerModel.prototype.setBreakpointByScriptLocation):
3256         (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
3257         (WebInspector.DebuggerModel.prototype.setBreakpoint):
3258         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
3259         (WebInspector.DebuggerModel.prototype._breakpointResolved):
3260         (WebInspector.DebuggerModel.prototype.createRawLocation):
3261         (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
3262         (WebInspector.DebuggerModel.prototype.setSelectedCallFrame):
3263         (WebInspector.DebuggerModel.prototype.createLiveLocation):
3264         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
3265         (WebInspector.DebuggerModel.CallFrame.prototype.createLiveLocation):
3266         * inspector/front-end/DebuggerResourceBinding.js:
3267         (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
3268         (WebInspector.DebuggerResourceBinding.setScriptSource):
3269         (WebInspector.DebuggerResourceBinding.prototype.setContent.get if):
3270         (WebInspector.DebuggerResourceBinding.prototype.setContent):
3271         (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
3272         * inspector/front-end/JavaScriptSource.js:
3273         (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
3274         * inspector/front-end/Linkifier.js:
3275         * inspector/front-end/ObjectPopoverHelper.js:
3276         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
3277         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
3278         * inspector/front-end/PresentationConsoleMessageHelper.js:
3279         * inspector/front-end/RawSourceCode.js:
3280         * inspector/front-end/ResourceScriptMapping.js:
3281         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
3282         * inspector/front-end/Script.js:
3283         (WebInspector.Script.prototype.rawLocationToUILocation):
3284         * inspector/front-end/ScriptSnippetModel.js:
3285         (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
3286         * inspector/front-end/SourceMapping.js:
3287         * inspector/front-end/UISourceCode.js:
3288         (WebInspector.RawLocation):
3289
3290 2012-06-09  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3291
3292         Web Inspector: Add message loop instrumentation to public API and timeline agent
3293         https://bugs.webkit.org/show_bug.cgi?id=88639
3294
3295         Reviewed by Vsevolod Vlasov.
3296
3297         Message loop instrumentation will show when the render thread is busy.
3298         That way developer can discover if a render thread business causes low fps, or not.
3299
3300         * inspector/InspectorClient.h:
3301         (WebCore::InspectorClient::startMessageLoopMonitoring): Starts observer.
3302         (WebCore::InspectorClient::stopMessageLoopMonitoring): Stops observer.
3303         * inspector/InspectorController.cpp:
3304         (WebCore::InspectorController::InspectorController):
3305         Changed timeline agent constructor parameters.
3306         * inspector/InspectorInstrumentation.cpp:
3307         (WebCore::InspectorInstrumentation::willProcessTaskImpl):
3308         Forwards observer notification.
3309         (WebCore):
3310         (WebCore::InspectorInstrumentation::didProcessTaskImpl):
3311         Ditto.
3312         * inspector/InspectorInstrumentation.h:
3313         (InspectorInstrumentation):
3314         (WebCore::InspectorInstrumentation::willProcessTask):
3315         Ditto.
3316         (WebCore):
3317         (WebCore::InspectorInstrumentation::didProcessTask):
3318         Ditto.
3319         * inspector/InspectorTimelineAgent.cpp:
3320         (WebCore::InspectorTimelineAgent::start):
3321         Starts observer.
3322         (WebCore::InspectorTimelineAgent::stop):
3323         Stops observer.
3324         (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
3325         Changed result origin.
3326         (WebCore::InspectorTimelineAgent::willProcessTask):
3327         Noop implementqation.
3328         (WebCore):
3329         (WebCore::InspectorTimelineAgent::didProcessTask):
3330         Noop implementqation.
3331         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3332         Changed constructor parameters.
3333         * inspector/InspectorTimelineAgent.h:
3334         (WebCore::InspectorTimelineAgent::create):
3335         Ditto.
3336         (InspectorTimelineAgent):
3337         * inspector/WorkerInspectorController.cpp:
3338         (WebCore::WorkerInspectorController::WorkerInspectorController):
3339         Changed timeline agent constructor parameters.
3340
3341 2012-06-08  Andrey Kosyakov  <caseq@chromium.org>
3342
3343         Web Inspector: optimize timeline's frame mode overview appearance for 30fps
3344         https://bugs.webkit.org/show_bug.cgi?id=88556
3345
3346         Reviewed by Vsevolod Vlasov.
3347
3348         - adjust frame overview scale to 30fps == full height by default;
3349         - provide a fall-back auto-scale mode when median frame is longer than 1/30s;
3350         - add horizontal lines for 30 and 60fps;
3351         - drive-by fix: always use same order of categories in frame bars.
3352
3353         * inspector/front-end/TimelineOverviewPane.js:
3354         (WebInspector.TimelineVerticalOverview.prototype.update):
3355         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
3356         (WebInspector.TimelineVerticalOverview.prototype._renderBars):
3357         (WebInspector.TimelineVerticalOverview.prototype._drawFPSMarks):
3358         (WebInspector.TimelineVerticalOverview.prototype._renderBar):
3359
3360
3361 2012-06-09  Sukolsak Sakshuwong  <sukolsak@google.com>
3362
3363         Add UNDO_MANAGER flag
3364         https://bugs.webkit.org/show_bug.cgi?id=87908
3365
3366         Reviewed by Tony Chang.
3367
3368         Add undoManager property to document behind the UNDO_MANAGER flag and
3369         add placeholders for some methods of undoManager.
3370
3371         Test: editing/undomanager/document-has-undomanager.html
3372
3373         * CMakeLists.txt:
3374         * Configurations/FeatureDefines.xcconfig:
3375         * DerivedSources.cpp:
3376         * DerivedSources.make:
3377         * DerivedSources.pri:
3378         * GNUmakefile.am:
3379         * GNUmakefile.list.am:
3380         * WebCore.gypi:
3381         * WebCore.xcodeproj/project.pbxproj:
3382         * dom/Document.cpp:
3383         (WebCore::Document::Document):
3384         (WebCore):
3385         (WebCore::Document::undoManager):
3386         * dom/Document.h:
3387         (WebCore):
3388         (Document):
3389         * dom/Document.idl:
3390         * editing/UndoManager.cpp: Added.
3391         (WebCore):
3392         (WebCore::UndoManager::create):
3393         (WebCore::UndoManager::UndoManager):
3394         (WebCore::UndoManager::undo):
3395         (WebCore::UndoManager::redo):
3396         (WebCore::UndoManager::clearUndo):
3397         (WebCore::UndoManager::clearRedo):
3398         * editing/UndoManager.h: Added.
3399         (WebCore):
3400         (UndoManager):
3401         * editing/UndoManager.idl: Added.
3402
3403 2012-06-08  Levi Weintraub  <leviw@chromium.org>
3404
3405         RenderLayer::paintChildLayerIntoColumns doesn't properly pixel snap
3406         https://bugs.webkit.org/show_bug.cgi?id=88554
3407
3408         Reviewed by Darin Adler.
3409
3410         Column handling code in RenderLayer and RenderBlock was improperly clipping and translating
3411         using floats derived from FractionalLayoutUnits without pixel snapping. RenderLayer also
3412         improperly stored render tree offsets in ints instead of LayoutUnits. This corrects this
3413         issue.
3414
3415         Test: fast/sub-pixel/column-clipping.html
3416
3417         * rendering/RenderBlock.cpp:
3418         (WebCore::RenderBlock::paintColumnContents):
3419         * rendering/RenderLayer.cpp:
3420         (WebCore::RenderLayer::paintChildLayerIntoColumns):
3421
3422 2012-06-08  Rakesh KN  <rakesh.kn@motorola.com>
3423
3424         REGRESSION(r116487?): HTMLFormElement::elements['name'] is empty if the form is detached from the document tree
3425         https://bugs.webkit.org/show_bug.cgi?id=88632
3426
3427         Reviewed by Ryosuke Niwa.
3428
3429         Update root node of RadioNodeList when the form element is detached from dom tree.
3430
3431         Test: fast/forms/radionodelist-whose-form-element-detached-from-domtree.html
3432
3433         * dom/Node.cpp:
3434         (WebCore::Node::resetCachedRadioNodeListRootNode):
3435         New function to update the root node of RadioNodeLists to form element from document.
3436         * dom/Node.h: Ditto.
3437         * html/HTMLFormElement.cpp:
3438         (WebCore::HTMLFormElement::removedFrom):
3439         On detach, we update the root node of all RadioNodeLists of this form element.
3440         * html/RadioNodeList.cpp:
3441         (WebCore::RadioNodeList::setRootElement):
3442         Setter for updating root node.
3443         * html/RadioNodeList.h:
3444         (RadioNodeList): Ditto.
3445
3446 2012-06-08  David Reveman  <reveman@chromium.org>
3447
3448         [Chromium] Compositor doesn't support translucent root layers.
3449         https://bugs.webkit.org/show_bug.cgi?id=87821
3450
3451         Reviewed by James Robinson.
3452
3453         Forward the isTransparent WebView setting to WebLayerTreeView,
3454         CCLayerTreeHost and CCLayerTreeHostImpl as hasTransparentBackground.
3455         Use hasTransparentBackground setting to determine how to clear the
3456         root render pass and draw the background. Set opaque flag correctly
3457         on the NonCompositedContentHost's graphics layer to make sure
3458         sub-pixel rendering is not used with a transparent WebView.
3459
3460         Unit tests: CCLayerTreeHostImplTest.hasTransparentBackground
3461                     LayerRendererChromiumTest2.opaqueRenderPass
3462                     LayerRendererChromiumTest2.transparentRenderPass
3463
3464         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
3465         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
3466         * platform/graphics/chromium/LayerRendererChromium.cpp:
3467         (WebCore::LayerRendererChromium::clearRenderPass):
3468         (WebCore::LayerRendererChromium::drawRenderPass):
3469         (WebCore::LayerRendererChromium::drawBackgroundFilters):
3470         * platform/graphics/chromium/LayerRendererChromium.h:
3471         (LayerRendererChromium):
3472         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
3473         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
3474         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3475         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3476         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
3477         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3478         (WebCore::CCLayerTreeHost::setHasTransparentBackground):
3479         (CCLayerTreeHost):
3480         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3481         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
3482         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3483         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3484         (WebCore::CCLayerTreeHostImpl::hasTransparentBackground):
3485         (WebCore::CCLayerTreeHostImpl::setHasTransparentBackground):
3486         (CCLayerTreeHostImpl):
3487         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3488         (WebCore::CCRenderPass::CCRenderPass):
3489         * platform/graphics/chromium/cc/CCRenderPass.h:
3490         (WebCore::CCRenderPass::hasTransparentBackground):
3491         (WebCore::CCRenderPass::setHasTransparentBackground):
3492         (CCRenderPass):
3493
3494 2012-06-08  Ian Vollick  <vollick@chromium.org>
3495
3496         [chromium] Single thread proxy's animation timer should short circuit if the layer renderer has not been initialized
3497         https://bugs.webkit.org/show_bug.cgi?id=88668
3498
3499         Reviewed by James Robinson.
3500
3501         Unit test: CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer.runSingleThreaded
3502
3503         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3504         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3505
3506 2012-06-08  Shezan Baig  <shezbaig.wk@gmail.com>
3507
3508         Caret is not rendered in empty inline contenteditable elements
3509         https://bugs.webkit.org/show_bug.cgi?id=85793
3510
3511         Reviewed by Ryosuke Niwa.
3512
3513         Override localCaretRect in RenderInline. The implementation was almost
3514         identical to localCaretRect in RenderBlock for empty block elements, so
3515         I refactored RenderBlock::localCaretRect and moved the logic to a new
3516         method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
3517         implementation of 'localCaretRect' in RenderBlock and RenderInline both
3518         use this helper method in RenderBoxModelObject.
3519
3520         Tests: editing/selection/caret-in-empty-inline-1.html
3521                editing/selection/caret-in-empty-inline-2.html
3522
3523         * rendering/RenderBlock.cpp:
3524         (WebCore::RenderBlock::localCaretRect):
3525         Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
3526         * rendering/RenderBoxModelObject.cpp:
3527         (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
3528         (WebCore):
3529         * rendering/RenderBoxModelObject.h:
3530         (RenderBoxModelObject):
3531         Add localCaretRectForEmptyElement helper method.
3532         * rendering/RenderInline.cpp:
3533         (WebCore::RenderInline::localCaretRect):
3534         (WebCore):
3535         * rendering/RenderInline.h:
3536         (RenderInline):
3537         Override localCaretRect using localCaretRectForEmptyElement.
3538
3539 2012-06-08  Mike West  <mkwst@chromium.org>
3540
3541         Treat blob: and filesystem: URLs generated via secure origins as secure.
3542         https://bugs.webkit.org/show_bug.cgi?id=84054
3543
3544         Loading a blob: or filesystem: URL into an iframe or image that's
3545         contained on an HTTPS page shouldn't generate a mixed content warning.
3546         This change adds a SecurityOrigin::isSecure to check both against a
3547         URLs protocol, and the protocol of it's so-called "inner URL" if it's
3548         the type of URL that has such a thing. These sorts of URLs which are
3549         generated from secure sources will themselves be treated as secure.
3550
3551         Reviewed by Adam Barth.
3552
3553         Tests: http/tests/security/mixedContent/blob-url-in-iframe.html
3554                http/tests/security/mixedContent/filesystem-url-in-iframe.html
3555
3556         * loader/FrameLoader.cpp:
3557         (WebCore::FrameLoader::isMixedContent):
3558         * page/SecurityOrigin.cpp:
3559         (WebCore):
3560         (WebCore::SecurityOrigin::isSecure):
3561         * page/SecurityOrigin.h:
3562         (SecurityOrigin):
3563
3564 2012-06-08  Martin Robinson  <mrobinson@igalia.com>
3565
3566         [Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
3567         https://bugs.webkit.org/show_bug.cgi?id=87797
3568
3569         Reviewed by Philippe Normand.
3570
3571         No new tests. WebGL is already covered by WebGL tests and this
3572         bug is only present on certain hardware.
3573
3574         After resolving multisampling before drawing the texture via the
3575         TextureMapper, first rebind the multisampling framebuffer. This ensures
3576         that the texture isn't active in two framebuffers at a time.
3577
3578         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
3579         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
3580         framebuffer.
3581
3582 2012-06-08  Alexey Proskuryakov  <ap@apple.com>
3583
3584         <rdar://problem/11412294> Add appropriate iOS default font settings
3585
3586         Reviewed by Dan Bernstein.
3587
3588         * page/mac/SettingsMac.mm: (WebCore::Settings::initializeDefaultFontFamilies):
3589
3590 2012-06-08  Charles Wei  <charles.wei@torchmobile.com.cn>
3591
3592         IndexedDB: Transactions without any request scheduled should abort itself.
3593         https://bugs.webkit.org/show_bug.cgi?id=88052
3594
3595         Reviewed by Kentaro Hara.
3596
3597         This is needed for indexedDB to make it work for JSC. We need to clean up all the
3598         pending transactions(transactions without any request scheduled) when leaving Javascript context.
3599
3600         Manually tested using the existing test LayoutTests/storage/indexeddb/tutorial.html
3601
3602         * bindings/js/JSMainThreadExecState.cpp:
3603         (WebCore):
3604         (WebCore::JSMainThreadExecState::didLeaveScriptContext):
3605         * bindings/js/JSMainThreadExecState.h:
3606         (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
3607         (JSMainThreadExecState):
3608
3609 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
3610
3611         Crash in WebCore::CompositeEditCommand::breakOutOfEmptyListItem
3612         https://bugs.webkit.org/show_bug.cgi?id=88361
3613
3614         Reviewed by Levi Weintraub.
3615
3616         Use RefPtr instead of raw pointers across DOM mutations.
3617
3618         No tests are added for the lack of a reliable reduction.
3619
3620         * editing/CompositeEditCommand.cpp:
3621         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
3622
3623 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3624
3625         Unreviewed, rolling out r119514.
3626         http://trac.webkit.org/changeset/119514
3627         https://bugs.webkit.org/show_bug.cgi?id=88664
3628
3629         Broke JSFiddle.net (Requested by arv on #webkit).
3630
3631         * bindings/v8/V8DOMWindowShell.cpp:
3632         (WebCore::V8DOMWindowShell::initContextIfNeeded):
3633         * bindings/v8/WorkerContextExecutionProxy.cpp:
3634         (WebCore::WorkerContextExecutionProxy::initIsolate):
3635
3636 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
3637
3638         Crash in WebCore::InsertParagraphSeparatorCommand::doApply
3639         https://bugs.webkit.org/show_bug.cgi?id=88108
3640
3641         Reviewed by Levi Weintraub.
3642
3643         Use NodeVector instead of walking through siblings as we mutate the DOM.
3644
3645         No new tests are added since there is no reliable reduction.
3646
3647         * editing/BreakBlockquoteCommand.cpp:
3648         (WebCore::BreakBlockquoteCommand::doApply):
3649         * editing/CompositeEditCommand.cpp:
3650         (WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent):
3651         (WebCore):
3652         * editing/CompositeEditCommand.h:
3653         (CompositeEditCommand):
3654         * editing/InsertParagraphSeparatorCommand.cpp:
3655         (WebCore::InsertParagraphSeparatorCommand::doApply):
3656
3657 2012-06-08  David Grogan  <dgrogan@chromium.org>
3658
3659         IndexedDB: rename some instances of open to registerFrontendCallbacks
3660         https://bugs.webkit.org/show_bug.cgi?id=88611
3661
3662         We should still make the change in the WebKit API.
3663
3664         Reviewed by Tony Chang.
3665
3666         No new tests, just a method rename.
3667
3668         * Modules/indexeddb/IDBDatabase.cpp:
3669         (WebCore::IDBDatabase::registerFrontendCallbacks):
3670         * Modules/indexeddb/IDBDatabase.h:
3671         (IDBDatabase):
3672         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3673         (WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
3674         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3675         (IDBDatabaseBackendImpl):
3676         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
3677         (IDBDatabaseBackendInterface):
3678         * Modules/indexeddb/IDBRequest.cpp:
3679         (WebCore::IDBRequest::onSuccess):
3680
3681 2012-06-08  Dana Jansens  <danakj@chromium.org>
3682
3683         [chromium] Skip willDraw() and didDraw() on fully occluded layers
3684         https://bugs.webkit.org/show_bug.cgi?id=88435
3685
3686         Reviewed by Adrienne Walker.
3687
3688         Current willDraw() is called on all layers with non-empty
3689         visibleLayerRect and non-empty scissorRect. This excludes
3690         layers outside the viewport, but does not exclude occluded
3691         layers. We add a check for occlusion to calculateRenderPasses
3692         in order to avoid willDraw() when it will be culled anyway.
3693
3694         We prevent didDraw() from being called for occluded layers, for
3695         which we did not call didDraw() by holding a vector of layers
3696         for which we did call willDraw(). This lets us avoid storing a
3697         flag on the layers, or computing occlusion again in
3698         didDrawAllLayers.
3699
3700         Unit test: CCLayerTreeHostImplTest.willDrawNotCalledOnOccludedLayer
3701
3702         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3703         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3704         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
3705         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
3706         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3707         (FrameData):
3708         (CCLayerTreeHostImpl):
3709
3710 2012-06-08  Antonio Gomes  <agomes@rim.com>
3711
3712         EventHandler shouldn't schedule the fake mousemove event timer when scrolling on devices that don't have a mouse
3713         https://bugs.webkit.org/show_bug.cgi?id=88379
3714
3715         Reviewed by James Robinson.
3716
3717         Paraphrasing Andy Estes:
3718         "In <http://trac.webkit.org/changeset/119465> we stopped dispatching fake
3719         mousemove events when scrolling on devices that don't support mice. This event
3720         is dispatched on a timer, so one better would be to not even schedule the
3721         timer (rather than scheduling the timer but making it a no-op).
3722
3723         No new tests, as no functionality has changed. We basically do not
3724         start a timer under a given circumstance instead of fire it, it times out,
3725         and we make the callback no-op when under the given circumstance.
3726
3727         It is still possible though that we have the following scenario:
3728         - Setting::deviceSupportsMouse set as true;
3729         - we fire the timer;
3730         - before its callback gets executed (timed out) the setting gets toggled.
3731         So for sakeness, lets keep the check in both places.
3732
3733         * page/EventHandler.cpp:
3734         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
3735         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
3736
3737 2012-06-08  James Robinson  <jamesr@chromium.org>
3738
3739         [chromium] Clean up some unnecessary LayerChromium.h includes
3740         https://bugs.webkit.org/show_bug.cgi?id=88599
3741
3742         Reviewed by Adam Barth.
3743
3744         Reworks test code slightly to use WebCore interfaces.
3745
3746         * testing/Internals.cpp:
3747         (WebCore::Internals::setBackgroundBlurOnNode):
3748
3749 2012-06-08  Erik Arvidsson  <arv@chromium.org>
3750
3751         [V8] Keep TextTrackList alive as long as its owner is alive
3752         https://bugs.webkit.org/show_bug.cgi?id=88541
3753
3754         Reviewed by Adam Barth.
3755
3756         Add a hidden reference from the owner to the text track list.
3757
3758         Covered by existing tests.
3759
3760         * Target.pri: Add V8TextTrackListCustom.cpp.
3761         * UseV8.cmake: Ditto.
3762         * WebCore.gypi: Ditto.
3763         * bindings/v8/V8HiddenPropertyName.h:
3764         (WebCore):
3765         * bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
3766         (WebCore):
3767         (WebCore::toV8): When the wrapper is created add a reference to the owner of the TextTrackList to the TextTrackList.
3768         * html/track/TextTrackList.idl:
3769
3770 2012-06-08  Ian Vollick  <vollick@chromium.org>
3771
3772         [chromium] Accelerated animations should use WebTransformOperations
3773         https://bugs.webkit.org/show_bug.cgi?id=87686
3774
3775         Reviewed by James Robinson.
3776
3777         CCTransformKeyframe new owns a WebTransformOperations rather than a
3778         TransformOperations. LayerChromium's API has been changed so that
3779         LayerChromium::addAnimation should take only a CCActiveAnimation.
3780         GraphicsLayerChromium is new responsible for translating to
3781         WebTransformOperations and creating CCActiveAnimations. Tests that use
3782         the public API (that is, they call addAnimation with KeyframeValueList
3783         and Animation arguments) have been moved to GraphicsLayerChromiumTest.
3784
3785          Unit tests:
3786             GraphicsLayerChromiumTest.createOpacityAnimation
3787             GraphicsLayerChromiumTest.createTransformAnimation
3788             GraphicsLayerChromiumTest.createTransformAnimationWithBigRotation
3789             GraphicsLayerChromiumTest.createTransformAnimationWithSingularMatrix
3790             GraphicsLayerChromiumTest.createReversedAnimation
3791             GraphicsLayerChromiumTest.createAlternatingAnimation
3792             GraphicsLayerChromiumTest.createReversedAlternatingAnimation
3793
3794         * WebCore.gypi:
3795         * platform/graphics/chromium/AnimationTranslationUtil.cpp: Added.
3796         (WebCore):
3797         (WebCore::toWebTransformOperations):
3798         (WebCore::appendKeyframe):
3799         (WebCore::CCKeyframedTransformAnimationCurve):
3800         (WebCore::createActiveAnimation):
3801         * platform/graphics/chromium/AnimationTranslationUtil.h: Added.
3802         (WebCore):
3803         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3804         (WebCore::GraphicsLayerChromium::addAnimation):
3805         * platform/graphics/chromium/LayerChromium.cpp:
3806         (WebCore::LayerChromium::addAnimation):
3807         * platform/graphics/chromium/LayerChromium.h:
3808         (WebCore):
3809         (WebCore::LayerChromium::bounds):
3810         (LayerChromium):
3811         * platform/graphics/chromium/LinkHighlight.cpp:
3812         (WebCore::LinkHighlight::LinkHighlight):
3813         * platform/graphics/chromium/cc/CCAnimationCurve.h:
3814         (CCTransformAnimationCurve):
3815         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
3816         (WebCore::CCTransformKeyframe::create):
3817         (WebCore::CCTransformKeyframe::CCTransformKeyframe):
3818         (WebCore::CCTransformKeyframe::value):
3819         (WebCore::CCTransformKeyframe::clone):
3820         (WebCore::CCKeyframedTransformAnimationCurve::getValue):
3821         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
3822         (CCTransformKeyframe):
3823         (CCKeyframedTransformAnimationCurve):
3824         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3825         (WebCore::CCLayerAnimationController::removeAnimation):
3826         (WebCore):
3827         (WebCore::CCLayerAnimationController::addAnimation):
3828         (WebCore::CCLayerAnimationController::getActiveAnimation):
3829         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
3830         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
3831         (WebCore::CCLayerAnimationController::tickAnimations):
3832         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
3833         (CCLayerAnimationControllerClient):
3834         (CCLayerAnimationController):
3835         * platform/graphics/chromium/cc/CCLayerImpl.h:
3836         (WebCore::CCLayerImpl::bounds):
3837
3838 2012-06-08  No'am Rosenthal  <noam.rosenthal@nokia.com>
3839
3840         [Texmap] Accelerated versions of drop-shadow and blur filters
3841         https://bugs.webkit.org/show_bug.cgi?id=87695
3842
3843         Reviewed by Kenneth Rohde Christiansen.
3844
3845         Added shaders for blur and drop-shadow effects.
3846         The shaders use sampling of multiple coordinates and averaging them with normal-
3847         distribution to create a fast gaussian blur effect.
3848
3849         Covered by existing tests in css3/filters.
3850
3851         * platform/graphics/texmap/TextureMapperGL.cpp:
3852         (WebCore::TextureMapperGL::drawFiltered):
3853             Call the prepare function explicitly, with a size argument that's used to calculate
3854             some of the uniform values.
3855
3856         * platform/graphics/texmap/TextureMapperLayer.cpp:
3857         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
3858             The outsets of the effect have to be considered when calculating the intermediate rect.
3859             Otherwise the resulting image is scaled instead of outsetted.
3860
3861         (WebCore::applyFilters):
3862         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
3863         (WebCore::StandardFilterProgram::StandardFilterProgram):
3864             Added the new shaders.
3865
3866         (WebCore::StandardFilterProgram::prepare):
3867         (WebCore::TextureMapperShaderManager::getShaderForFilter):
3868         * platform/graphics/texmap/TextureMapperShaderManager.h:
3869         (StandardFilterProgram):
3870
3871 2012-06-08  Dan Bernstein  <mitz@apple.com>
3872
3873         Tried to fix the build after r119844.
3874
3875         * bindings/js/GCController.cpp:
3876         (WebCore::GCController::discardAllCompiledCode):
3877
3878 2012-06-08  Mike West  <mkwst@chromium.org>
3879
3880         Add COMPILE_ASSERT to StyledElement to ensure it doesn't accidentally grow larger.
3881         https://bugs.webkit.org/show_bug.cgi?id=88627
3882
3883         Reviewed by Adam Barth.
3884
3885         No change in user-facing behavior.
3886
3887         * dom/StyledElement.cpp:
3888         (WebCore):
3889
3890 2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>
3891
3892         Web Inspector: Fix several compiler warnings and errors.
3893         https://bugs.webkit.org/show_bug.cgi?id=88660
3894
3895         Reviewed by Pavel Feldman.
3896
3897         Fixed several compiler warnings and errors.
3898         Removed isEmpty method from Object.prototype and made it static method on Object.
3899
3900         * inspector/InjectedScriptExterns.js:
3901         * inspector/front-end/FileSystemModel.js:
3902         (WebInspector.FileSystemModel.prototype._detachFrame):
3903         * inspector/front-end/HeapSnapshot.js:
3904         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
3905         * inspector/front-end/utilities.js:
3906         (Object.isEmpty):
3907
3908 2012-06-08  Max Feil  <mfeil@rim.com>
3909
3910         [BlackBerry] Fix assertion failure introduced by bug 87551
3911         https://bugs.webkit.org/show_bug.cgi?id=88659
3912
3913         Reviewed by Antonio Gomes.
3914
3915         The determineRenderSlider() convenience function added in bug
3916         87551 made an assumption that wasn't always true. This didn't
3917         cause a functional error but it caused an assertion failure,
3918         which indicates a problem with the code. PR164142.
3919
3920         No new tests because this case is already covered by ASSERT's.
3921
3922         * platform/blackberry/RenderThemeBlackBerry.cpp:
3923         (WebCore::determineRenderSlider):
3924
3925 2012-06-08  Ion Rosca  <rosca@adobe.com>
3926
3927         Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
3928         https://bugs.webkit.org/show_bug.cgi?id=74111
3929
3930         Reviewed by Simon Fraser.
3931
3932         Added zero-delay timer for AppKit scroll notification that can be called during layout.
3933         Manual test: ManualTests/scrollbar-crash-on-hide-scrolled-area.html
3934         This assertion does not fire when running layout tests. It can be easly reproduced using a debug build by loading the manual test page.
3935
3936         * platform/mac/ScrollAnimatorMac.h:
3937         (ScrollAnimatorMac):
3938         * platform/mac/ScrollAnimatorMac.mm:
3939         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
3940         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
3941         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
3942         (WebCore):
3943         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
3944
3945 2012-06-08  Renata Hodovan  <reni@webkit.org>
3946
3947         Adding few already supported features to the FeatureSet in DOMImplementation
3948         https://bugs.webkit.org/show_bug.cgi?id=86482
3949
3950         Text, Filter and View features are already implemented but they
3951         are not added to the SVG11 feature set. This is corrected in this patch.
3952
3953         Reviewed by Nikolas Zimmermann.
3954
3955         No new testcase is needed because we already have one what checks the svg features via
3956         DOMImplementation (svg/custom/svg-features.html).
3957
3958         * dom/DOMImplementation.cpp:
3959         (WebCore::isSVG11Feature):
3960
3961 2012-06-08  Stephen Chenney  <schenney@chromium.org>
3962
3963         WebCore::ImageBuffer.cpp has broken color table code
3964         https://bugs.webkit.org/show_bug.cgi?id=80321
3965
3966         Reviewed by Dirk Schulze.
3967
3968         The code in ImageBuffer::transformColorSpace had two problems that are
3969         fixed by this patch.
3970
3971         First, it was using member variables for data
3972         that is static constant. This is incredibly wasteful, as every
3973         ImageBuffer that is created (and we make a lot of them) gets its own
3974         copy of the LUT and the table is initialized again and again. The
3975         patch replaces this with a static local, with lazy evaluation, in
3976         the method that uses the tables.
3977
3978         Second, the code for filling the table was mapping 255 to 254, thus
3979         reducing the intensity and alpha of every image it pushed through a
3980         color transform.
3981
3982         Test: svg/filters/color-space-conversion.svg
3983
3984         * platform/graphics/ImageBuffer.cpp:
3985         (WebCore::ImageBuffer::transformColorSpace):
3986         * platform/graphics/ImageBuffer.h:
3987         (ImageBuffer):
3988
3989 2012-06-08  Alexei Filippov  <alexeif@chromium.org>
3990
3991         Web Inspector: Better labels positioning on the memory pie chart
3992         https://bugs.webkit.org/show_bug.cgi?id=88652
3993
3994         Reviewed by Vsevolod Vlasov.
3995
3996         * inspector/front-end/NativeMemorySnapshotView.js:
3997         (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
3998         (WebInspector.NativeMemoryPieChart.prototype._paint):
3999
4000 2012-06-08  Bryan McQuade  <bmcquade@google.com>
4001
4002         Web Inspector: Annotate timeline records with a frame identifier
4003         https://bugs.webkit.org/show_bug.cgi?id=86406
4004
4005         Reviewed by Vsevolod Vlasov.
4006
4007         Tests: Updated existing layout tests.
4008
4009         * inspector/InspectorController.cpp:
4010         (WebCore::InspectorController::InspectorController):
4011         * inspector/InspectorInstrumentation.cpp:
4012         (WebCore::frameForScriptExecutionContext):
4013         (WebCore):
4014         (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
4015         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
4016         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
4017         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
4018         (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
4019         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
4020         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
4021         (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
4022         (WebCore::InspectorInstrumentation::willFireTimerImpl):
4023         (WebCore::InspectorInstrumentation::willLayoutImpl):
4024         (WebCore::InspectorInstrumentation::willLoadXHRImpl):
4025         (WebCore::InspectorInstrumentation::willPaintImpl):
4026         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
4027         (WebCore::InspectorInstrumentation::willSendRequestImpl):
4028         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
4029         (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
4030         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
4031         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
4032         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
4033         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
4034         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):