All child elements of a flex container should be turned into a flex item
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-29  Tony Chang  <tony@chromium.org>
2
3         All child elements of a flex container should be turned into a flex item
4         https://bugs.webkit.org/show_bug.cgi?id=90323
5
6         Reviewed by Ojan Vafai.
7
8         We used to only convert some elements to blocks, but now we convert everything except text nodes.
9         This was recently changed here:
10         http://wiki.csswg.org/topics/css3-flexbox-flexbox-replaced-children
11
12         Tests: css3/flexbox/anonymous-block.html : Add new test case.
13                css3/flexbox/flexitem.html: Update results.
14
15         * css/StyleResolver.cpp:
16         (WebCore::StyleResolver::collectMatchingRulesForList):
17
18 2012-06-29  Joshua Bell  <jsbell@chromium.org>
19
20         IndexedDB: Keep direction on IDBCursor to avoid calls to back end
21         https://bugs.webkit.org/show_bug.cgi?id=90114
22
23         Reviewed by Tony Chang.
24
25         Let IDBCursor handle direction() accessor locally, without a call to
26         the IDBCursorBackendImpl which (in some ports) may reside in a different
27         process. Not a heavily called function, but further reduces the surface
28         area exposed by the XXXInterface classes.
29
30         No new tests - no functional changes.
31
32         * Modules/indexeddb/IDBCursor.cpp:
33         (WebCore::IDBCursor::create): Accept direction, known at creation time.
34         (WebCore::IDBCursor::IDBCursor): Stash in member.
35         (WebCore::IDBCursor::direction): Use local copy
36         (WebCore::IDBCursor::stringToDirection): Return enum value, not int.
37         * Modules/indexeddb/IDBCursor.h:
38         (IDBCursor):
39         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Remove accessor.
40         * Modules/indexeddb/IDBCursorBackendImpl.h:
41         (IDBCursorBackendImpl):
42         * Modules/indexeddb/IDBCursorBackendInterface.h: Remove accessor.
43         * Modules/indexeddb/IDBCursorWithValue.cpp:
44         (WebCore::IDBCursorWithValue::create):
45         (WebCore::IDBCursorWithValue::IDBCursorWithValue):
46         * Modules/indexeddb/IDBCursorWithValue.h:
47         (IDBCursorWithValue):
48         * Modules/indexeddb/IDBIndex.cpp: Prep IDBRequest with cursor direction too.
49         (WebCore::IDBIndex::openCursor):
50         (WebCore::IDBIndex::openKeyCursor):
51         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
52         (WebCore::IDBObjectStore::openCursor):
53         * Modules/indexeddb/IDBRequest.cpp: Stash direction for pending cursor too.
54         (WebCore::IDBRequest::IDBRequest):
55         (WebCore::IDBRequest::setCursorDetails):
56         (WebCore::IDBRequest::onSuccess): Apply stashed direction to new cursor.
57         * Modules/indexeddb/IDBRequest.h:
58         (IDBRequest):
59
60 2012-06-29  Tony Chang  <tony@chromium.org>
61
62         Allow align-self: stretch to cause the item size to shrink below its intrinsic size
63         https://bugs.webkit.org/show_bug.cgi?id=90304
64
65         Reviewed by Ojan Vafai.
66
67         The spec used to say that stretch could only make items grow, but now
68         it allows items to shrink.
69         http://dev.w3.org/csswg/css3-flexbox/#align-items-stretch
70
71         Tests: css3/flexbox/flex-align-stretch.html Updated expectations.
72                css3/flexbox/child-overflow.html Updated expectations.
73
74         * rendering/RenderFlexibleBox.cpp:
75         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
76
77 2012-06-29  James Weatherall  <wez@chromium.org>
78
79         NPObjectWrapper may not address all window script object lifetime issues
80         https://bugs.webkit.org/show_bug.cgi?id=85679
81
82         The ScriptController implementations force-deallocate the window script object to ensure that DOM objects are not leaked if an NPAPI plugin fails to release a reference to it before being destroyed. The NPObjectWrapper was added to ensure that NPAPI scripting could not touch the real window script object after it had been deallocated, by providing the plugin with a small wrapper which will leak if the plugin fails to dereference it.
83
84         This patch removes NPObjectWrapper and instead drops the window script NPObject's reference to the underlying V8Object in ScriptController::clearScriptObjects(). If a plugin fails to dereference the object then the NPV8Object wrapper will be leaked but the DOM objects it references will not.
85
86         Reviewed by Nate Chapin.
87
88         Test: plugins/npruntime/leak-window-scriptable-object.html
89
90         * WebCore.gypi:
91         * bindings/v8/NPObjectWrapper.cpp: Removed.
92         * bindings/v8/NPObjectWrapper.h: Removed.
93         * bindings/v8/NPV8Object.cpp:
94         (WebCore::disposeUnderlyingV8Object):
95         (WebCore):
96         (WebCore::freeV8NPObject):
97         (_NPN_Invoke):
98         (_NPN_InvokeDefault):
99         (_NPN_EvaluateHelper):
100         (_NPN_GetProperty):
101         (_NPN_SetProperty):
102         (_NPN_RemoveProperty):
103         (_NPN_HasProperty):
104         (_NPN_HasMethod):
105         (_NPN_Enumerate):
106         (_NPN_Construct):
107         * bindings/v8/NPV8Object.h:
108         (WebCore):
109         * bindings/v8/ScriptController.cpp:
110         (WebCore::ScriptController::ScriptController):
111         (WebCore::ScriptController::clearScriptObjects):
112         (WebCore::ScriptController::windowScriptNPObject):
113         * bindings/v8/ScriptController.h:
114         (ScriptController):
115
116 2012-06-29  Adam Barth  <abarth@webkit.org>
117
118         Update complex fonts on Android to use fonts from a newer SDK
119         https://bugs.webkit.org/show_bug.cgi?id=90296
120
121         Reviewed by Nate Chapin.
122
123         These fonts are available in the Jelly Bean SDK.
124
125         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
126         (WebCore::ComplexTextController::ComplexTextController):
127         (WebCore::ComplexTextController::getComplexFontPlatformData):
128
129 2012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
130
131         HTMLCollection's caches should be owned by either ElementRareData or Document
132         https://bugs.webkit.org/show_bug.cgi?id=90322
133
134         Reviewed by Anders Carlsson.
135
136         Removed all instances of OwnPtr<HTMLCollection> except ones on ElementRareData and Document.
137         ElementRareData::ensureCachedHTMLCollection then polymorphically creates HTMLCollection or
138         its subclass as deemed necessary.
139
140         This refactoring allows us to move HTMLCollection to use the same invalidation model as
141         DynamicNodeList (invalidated during DOM mutations) in a follow up.
142
143         * dom/Document.cpp:
144         (WebCore::Document::all):
145         * dom/Document.h:
146         (Document):
147         * dom/Element.cpp:
148         (WebCore::ElementRareData::ensureCachedHTMLCollection):
149         (WebCore):
150         (WebCore::Element::cachedHTMLCollection):
151         * dom/Element.h:
152         (Element):
153         * dom/ElementRareData.h:
154         (WebCore):
155         (ElementRareData):
156         (WebCore::ElementRareData::cachedHTMLCollection):
157         * dom/Node.cpp:
158         (WebCore):
159         * dom/Node.h:
160         (Node):
161         * dom/NodeRareData.h:
162         (WebCore::NodeRareData::setItemType):
163         (NodeRareData):
164         * html/CollectionType.h:
165         * html/HTMLCollection.cpp:
166         (WebCore::shouldIncludeChildren):
167         (WebCore::HTMLCollection::isAcceptableElement):
168         * html/HTMLElement.cpp:
169         (WebCore):
170         (WebCore::HTMLElement::properties):
171         * html/HTMLElement.h:
172         (HTMLElement):
173         * html/HTMLFieldSetElement.cpp:
174         (WebCore::HTMLFieldSetElement::elements):
175         * html/HTMLFieldSetElement.h:
176         (HTMLFieldSetElement):
177         * html/HTMLFormCollection.cpp:
178         (WebCore::HTMLFormCollection::HTMLFormCollection):
179         (WebCore::HTMLFormCollection::create):
180         * html/HTMLFormCollection.h:
181         (HTMLFormCollection):
182         * html/HTMLFormElement.cpp:
183         (WebCore::HTMLFormElement::elements):
184         * html/HTMLFormElement.h:
185         * html/HTMLOptionsCollection.cpp:
186         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
187         (WebCore::HTMLOptionsCollection::create):
188         * html/HTMLOptionsCollection.h:
189         (HTMLOptionsCollection):
190         * html/HTMLSelectElement.cpp:
191         (WebCore::HTMLSelectElement::selectedOptions):
192         (WebCore::HTMLSelectElement::options):
193         (WebCore::HTMLSelectElement::invalidateSelectedItems):
194         (WebCore::HTMLSelectElement::setRecalcListItems):
195         * html/HTMLSelectElement.h:
196         * html/HTMLTableElement.cpp:
197         (WebCore::HTMLTableElement::rows):
198         * html/HTMLTableElement.h:
199         * html/HTMLTableRowsCollection.cpp:
200         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
201         (WebCore::HTMLTableRowsCollection::create):
202         * html/HTMLTableRowsCollection.h:
203         (HTMLTableRowsCollection):
204
205 2012-06-29  Ojan Vafai  <ojan@chromium.org>
206
207         Add FIXMEs for vertical writing mode and override sizes.
208         * rendering/RenderBox.cpp:
209         (WebCore::RenderBox::overrideLogicalContentWidth):
210         (WebCore::RenderBox::overrideLogicalContentHeight):
211
212 2012-06-29  James Robinson  <jamesr@chromium.org>
213
214         [chromium] Use CCThread::Task in compositor's RateLimiter instead of Timer
215         https://bugs.webkit.org/show_bug.cgi?id=90300
216
217         Reviewed by Adrienne Walker.
218
219         * platform/graphics/chromium/RateLimiter.cpp:
220         (RateLimiter::Task):
221         (WebCore::RateLimiter::Task::create):
222         (WebCore::RateLimiter::Task::~Task):
223         (WebCore::RateLimiter::Task::Task):
224         (WebCore):
225         (WebCore::RateLimiter::RateLimiter):
226         (WebCore::RateLimiter::start):
227         (WebCore::RateLimiter::stop):
228         (WebCore::RateLimiter::rateLimitContext):
229         * platform/graphics/chromium/RateLimiter.h:
230         (WebCore):
231         (RateLimiter):
232         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
233         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
234
235 2012-06-29  Tony Payne  <tpayne@chromium.org>
236
237         Remove type from screenColorProfile API
238         https://bugs.webkit.org/show_bug.cgi?id=90299
239
240         Reviewed by Adam Barth.
241
242         Covered by existing tests.
243
244         * platform/PlatformScreen.h:
245         (WebCore): Removed type from screenColorProfile().
246         * platform/blackberry/PlatformScreenBlackBerry.cpp:
247         (WebCore::screenColorProfile):
248         * platform/chromium/PlatformScreenChromium.cpp:
249         (WebCore::screenColorProfile):
250         * platform/efl/PlatformScreenEfl.cpp:
251         (WebCore::screenColorProfile):
252         * platform/gtk/PlatformScreenGtk.cpp:
253         (WebCore::screenColorProfile):
254         * platform/image-decoders/ImageDecoder.h:
255         (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Updated call to
256         screenColorProfile() to not pass type param.
257         * platform/mac/PlatformScreenMac.mm:
258         (WebCore::screenColorProfile):
259         * platform/qt/PlatformScreenQt.cpp:
260         (WebCore::screenColorProfile):
261         * platform/win/PlatformScreenWin.cpp:
262         (WebCore::screenColorProfile):
263
264 2012-06-29  Emil A Eklund  <eae@chromium.org>
265
266         Allow non-borders to be adjusted to less than 1 when zoomed out
267         https://bugs.webkit.org/show_bug.cgi?id=90104
268
269         Reviewed by Eric Seidel.
270
271         Change CSSPrimitiveValue::computeLengthDouble to allow values to be
272         adjusted to less than 1.0 when zoomed out. This avoids an off by one
273         error for floats with margins when zoomed out that can cause floats to
274         wrap and break pages.
275
276         The logic that prevents the value from being adjusted to less than 1 was
277         added to ensure that borders are still painted even when zoomed out.
278         By moving the logic to ApplyPropertyComputeLength::applyValue, which is
279         used for borders and outlines, that functionality is preserved.
280
281         Test: fast/sub-pixel/float-with-margin-in-container.html
282
283         * css/CSSPrimitiveValue.cpp:
284         (WebCore::CSSPrimitiveValue::computeLengthDouble):
285         * css/StyleBuilder.cpp:
286         (WebCore::ApplyPropertyComputeLength::applyValue):
287
288 2012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
289
290         Let Xcode have its own way after r121513.
291
292         * WebCore.xcodeproj/project.pbxproj:
293
294 2012-06-29  Mihai Balan  <mibalan@adobe.com>
295
296         [CSS Regions] Adding feature defines for CSS Regions for Windows
297         https://bugs.webkit.org/show_bug.cgi?id=88645
298
299         Reviewed by Tony Chang.
300
301         Re-trying to enable CSS regions on Windows. This time only enabling
302         regions (not exclusions) because of some strange compilation/linking
303         issues.
304
305         * css/CSSPropertyNames.in: Touched file to make sure property names get properly rebuilt.
306
307 2012-06-29  Hanna Ma  <Hanma@rim.com>
308
309         Web Inspector: Add data length to resource events on timeline to
310         keep track of the amount of data loaded and the total data length
311         https://bugs.webkit.org/show_bug.cgi?id=89244
312
313         Reviewed by Pavel Feldman.
314
315         Added data length to inspector timeline popup
316         content for resources to keep track of the amount of data loaded.
317         Tests: inspector/timeline/timeline-network-received-data.html
318
319         * English.lproj/localizedStrings.js:
320         * inspector/InspectorInstrumentation.cpp:
321         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
322         * inspector/InspectorInstrumentation.h:
323         (InspectorInstrumentation):
324         (WebCore::InspectorInstrumentation::willReceiveResourceData):
325         * inspector/InspectorTimelineAgent.cpp:
326         (WebCore::InspectorTimelineAgent::willReceiveResourceData):
327         * inspector/InspectorTimelineAgent.h:
328         (InspectorTimelineAgent):
329         * inspector/TimelineRecordFactory.cpp:
330         (WebCore::TimelineRecordFactory::createReceiveResourceData):
331         * inspector/TimelineRecordFactory.h:
332         (TimelineRecordFactory):
333         * inspector/front-end/TimelinePanel.js:
334         (WebInspector.TimelinePanel.prototype._showPopover):
335         * inspector/front-end/TimelinePresentationModel.js:
336         (WebInspector.TimelinePresentationModel.prototype.reset):
337         (WebInspector.TimelinePresentationModel.Record):
338         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
339         * loader/ResourceLoader.cpp:
340         (WebCore::ResourceLoader::didReceiveData):
341         * inspector/timeline/timeline-network-received-data.html: Added.
342         * inspector/timeline/timeline-network-received-data-expected.txt: Added.
343         * inspector/timeline/timeline-test.js:
344
345 2012-06-29  Shawn Singh  <shawnsingh@chromium.org>
346
347         Unreviewed build fix after 121580.
348
349         WebKit Linux debug bots was complaining about signed vs unsigned integer comparison.
350
351         * html/HTMLCollection.h:
352         (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
353
354 2012-06-28  James Robinson  <jamesr@chromium.org>
355
356         [chromium] Remove mapRect and mapQuad from WebTransformationMatrix
357         https://bugs.webkit.org/show_bug.cgi?id=90230
358
359         Reviewed by Adrienne Walker.
360
361         Replaces calls to WebTransformationMatrix::mapRect/mapQuad with clipping-aware calls to CCMathUtils. In most
362         cases, we do not expect clipping to happen. For others (such as area calculations in CCOverdrawMetrics) we can
363         handle a clipped quad easily.
364
365         * platform/chromium/support/WebTransformationMatrix.cpp:
366         * platform/graphics/chromium/LayerRendererChromium.cpp:
367         (WebCore::LayerRendererChromium::drawRenderPassQuad):
368         (WebCore::LayerRendererChromium::drawTileQuad):
369         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
370         (WebCore::RenderSurfaceChromium::drawableContentRect):
371         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
372         (WebCore::CCLayerImpl::getDrawRect):
373         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
374         (WebCore::transformSurfaceOpaqueRegion):
375         (WebCore::addOcclusionBehindLayer):
376         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
377         (WebCore):
378         (WebCore::polygonArea):
379         (WebCore::areaOfMappedQuad):
380         (WebCore::CCOverdrawMetrics::didUpload):
381         (WebCore::CCOverdrawMetrics::didCullForDrawing):
382         (WebCore::CCOverdrawMetrics::didDraw):
383         * platform/graphics/chromium/cc/CCRenderPass.cpp:
384         (WebCore::CCRenderPass::appendQuadsToFillScreen):
385         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
386         (WebCore::CCRenderSurface::drawableContentRect):
387         * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
388         (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
389
390 2012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
391
392         Mac build fix after r121575. It rolls out r121547 but didn't roll out the follow up build fix r121553.
393
394         * platform/graphics/mac/FontCustomPlatformData.h:
395         (FontCustomPlatformData):
396
397 2012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
398
399         Share the same cache in HTMLCollection and DynamicNodeLists
400         https://bugs.webkit.org/show_bug.cgi?id=90118
401
402         Reviewed by Anders Carlsson.
403
404         This patch introduces two new base classes DynamicNodeListCacheBase and HTMLCollectionCacheBase to share
405         the cache object between DynamicNodeList and HTMLCollection. HTMLCollectionCacheBase inherits from
406         DynamicNodeListCacheBase and contains extra caches and bit flags for HTMLCollection. DynamicNodeList::Cache
407         and HTMLCollection::Cache had been removed and flattened into these two classes for the easy inheritance.
408
409         In DynamicNodeList, we have a very straight forward one-to-one mapping from old Caches member variables:
410
411         m_caches.lastItem -> cachedItem()
412         m_caches.lastItemOffset -> cachedItemOffset()
413         m_caches.cachedLength -> cachedLength()
414         m_caches.isItemCacheValid -> isItemCacheValid()
415         m_caches.isLengthCacheValid -> isLengthCacheValid()
416         m_caches.type -> removed because it was never used.
417         m_caches.rootedAtDocument -> isRootedAtDocument()
418         m_caches.shouldInvalidateOnAttributeChange -> shouldInvalidateOnAttributeChange()
419
420         In HTMLCollection, there is one semantic change in the way item cache is managed. Previously, we only had
421         m_cache.current which was used as both cachedItem() and isItemCacheValid() (not valid when current is null).
422         There are some asymmetric code changes due to one-to-many relationship. Also, all method names have been updated
423         to use that of DynamicNodeList terminology. Thus we have the following correspondence:
424
425         m_cache.current -> cachedItem() / isItemCacheValid()
426         m_cache.position -> cachedItemOffset()
427         m_cache.length -> cachedLength()
428         m_cache.elementsArrayPosition -> cachedElementsArrayOffset()
429         m_cache.hasLength -> isLengthCacheValid()
430         m_cache.hasNameCache -> hasNameCache() / setHasNameCache()
431         m_cache.idCache -> idCache() / addIdCache()
432         m_cache.nameCache -> idCache() / addNameCache()
433
434         In addition, we had to rename HTMLCollection::clearCache to invalidateCache to avoid the name collision with
435         HTMLCollectionCacheBase::clearCache.
436
437         * dom/ChildNodeList.cpp:
438         (WebCore::ChildNodeList::length):
439         (WebCore::ChildNodeList::item):
440         * dom/DynamicNodeList.cpp:
441         (WebCore::DynamicSubtreeNodeList::length):
442         (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
443         (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
444         (WebCore::DynamicSubtreeNodeList::item):
445         * dom/DynamicNodeList.h:
446         (DynamicNodeListCacheBase):
447         (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
448         (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
449         (WebCore::DynamicNodeListCacheBase::shouldInvalidateOnAttributeChange):
450         (WebCore::DynamicNodeListCacheBase::isItemCacheValid):
451         (WebCore::DynamicNodeListCacheBase::cachedItem):
452         (WebCore::DynamicNodeListCacheBase::cachedItemOffset):
453         (WebCore::DynamicNodeListCacheBase::isLengthCacheValid):
454         (WebCore::DynamicNodeListCacheBase::cachedLength):
455         (WebCore::DynamicNodeListCacheBase::setLengthCache):
456         (WebCore::DynamicNodeListCacheBase::setItemCache):
457         (WebCore::DynamicNodeListCacheBase::clearCache):
458         (WebCore):
459         (WebCore::DynamicNodeList::DynamicNodeList):
460         (WebCore::DynamicNodeList::invalidateCache):
461         (WebCore::DynamicNodeList::rootNode):
462         (DynamicNodeList):
463         * html/HTMLAllCollection.cpp:
464         (WebCore::HTMLAllCollection::namedItemWithIndex):
465         * html/HTMLCollection.cpp:
466         (WebCore::HTMLCollection::HTMLCollection):
467         (WebCore::HTMLCollection::invalidateCacheIfNeeded):
468         (WebCore::HTMLCollection::invalidateCache):
469         (WebCore::HTMLCollection::isAcceptableElement):
470         (WebCore::HTMLCollection::itemAfter):
471         (WebCore::HTMLCollection::length):
472         (WebCore::HTMLCollection::item):
473         (WebCore::HTMLCollection::checkForNameMatch):
474         (WebCore::HTMLCollection::namedItem):
475         (WebCore::HTMLCollection::updateNameCache):
476         (WebCore::HTMLCollection::hasNamedItem):
477         (WebCore::HTMLCollection::namedItems):
478         (WebCore::HTMLCollectionCacheBase::append):
479         * html/HTMLCollection.h:
480         (HTMLCollectionCacheBase):
481         (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
482         (WebCore::HTMLCollectionCacheBase::type):
483         (WebCore::HTMLCollectionCacheBase::clearCache):
484         (WebCore::HTMLCollectionCacheBase::setItemCache):
485         (WebCore::HTMLCollectionCacheBase::cachedElementsArrayOffset):
486         (WebCore::HTMLCollectionCacheBase::includeChildren):
487         (WebCore::HTMLCollectionCacheBase::cacheTreeVersion):
488         (WebCore::HTMLCollectionCacheBase::idCache):
489         (WebCore::HTMLCollectionCacheBase::nameCache):
490         (WebCore::HTMLCollectionCacheBase::appendIdCache):
491         (WebCore::HTMLCollectionCacheBase::appendNameCache):
492         (WebCore::HTMLCollectionCacheBase::hasNameCache):
493         (WebCore::HTMLCollectionCacheBase::setHasNameCache):
494         (WebCore):
495         (WebCore::HTMLCollection::isEmpty):
496         (WebCore::HTMLCollection::hasExactlyOneItem):
497         (WebCore::HTMLCollection::base):
498         (HTMLCollection):
499         * html/HTMLFormCollection.cpp:
500         (WebCore::HTMLFormCollection::item):
501         (WebCore::HTMLFormCollection::updateNameCache):
502         * html/HTMLNameCollection.cpp:
503         (WebCore::HTMLNameCollection::itemAfter):
504         * html/HTMLNameCollection.h:
505         (HTMLNameCollection):
506         * html/HTMLSelectElement.cpp:
507         (WebCore::HTMLSelectElement::invalidateSelectedItems):
508         * html/HTMLTableRowsCollection.cpp:
509         (WebCore::HTMLTableRowsCollection::itemAfter):
510         * html/HTMLTableRowsCollection.h:
511         (HTMLTableRowsCollection):
512
513 2012-06-29  Tony Chang  <tony@chromium.org>
514
515         Unreviewed, rolling out r121572.
516         http://trac.webkit.org/changeset/121572
517         https://bugs.webkit.org/show_bug.cgi?id=90249
518
519         Breaks Mac build since it depends on r121547, which was rolled
520         out
521
522         * WebCore.exp.in:
523         * page/AlternativeTextClient.h:
524         * page/ContextMenuController.cpp:
525         (WebCore::ContextMenuController::populate):
526         * platform/graphics/cg/ImageBufferDataCG.h:
527         * platform/graphics/mac/GraphicsContextMac.mm:
528         (WebCore::GraphicsContext::drawLineForDocumentMarker):
529         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
530         (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
531         * platform/mac/WebCoreSystemInterface.h:
532         * platform/network/Credential.h:
533         * platform/network/cf/ResourceRequestCFNet.cpp:
534         (WebCore):
535         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
536         * platform/text/TextChecking.h:
537         (WebCore):
538         * rendering/RenderLayerBacking.cpp:
539         (WebCore::RenderLayerBacking::containsPaintedContent):
540
541 2012-06-29  Tony Chang  <tony@chromium.org>
542
543         Unreviewed, rolling out r121547.
544         http://trac.webkit.org/changeset/121547
545         https://bugs.webkit.org/show_bug.cgi?id=90256
546
547         Breaks Chromium Mac build
548
549         * platform/LocalizedStrings.cpp:
550         (WebCore::imageTitle):
551         * platform/graphics/cg/GraphicsContextCG.cpp:
552         (WebCore::GraphicsContext::setAllowsFontSmoothing):
553         * platform/graphics/cg/ImageCG.cpp:
554         (WebCore::Image::drawPattern):
555         * platform/graphics/cg/ImageSourceCG.cpp:
556         (WebCore::ImageSource::clear):
557         * platform/graphics/cg/PathCG.cpp:
558         (WebCore::Path::boundingRect):
559         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
560         (WebCore):
561         (WebCore::canSetCascadeListForCustomFont):
562         (WebCore::FontPlatformData::ctFont):
563         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
564         * platform/graphics/mac/ComplexTextController.cpp:
565         * platform/graphics/mac/FontCacheMac.mm:
566         (WebCore):
567         (WebCore::fontCacheATSNotificationCallback):
568         (WebCore::FontCache::platformInit):
569         * platform/graphics/mac/FontCustomPlatformData.cpp:
570         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
571         (WebCore::createFontCustomPlatformData):
572         * platform/graphics/mac/FontCustomPlatformData.h:
573         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
574         * platform/graphics/mac/SimpleFontDataMac.mm:
575         (WebCore::SimpleFontData::platformInit):
576         * platform/graphics/mac/WebLayer.h:
577         * platform/mac/CursorMac.mm:
578         (WebCore::Cursor::ensurePlatformCursor):
579         * platform/mac/DisplaySleepDisabler.cpp:
580         (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
581         (WebCore):
582         (WebCore::DisplaySleepDisabler::systemActivityTimerFired):
583         * platform/mac/DisplaySleepDisabler.h:
584         (DisplaySleepDisabler):
585         * platform/mac/HTMLConverter.h:
586         * platform/mac/HTMLConverter.mm:
587         * platform/mac/PopupMenuMac.mm:
588         (WebCore::PopupMenuMac::populate):
589         * platform/mac/ScrollElasticityController.mm:
590
591 2012-06-29  Eric Penner  <epenner@google.com>
592
593         [chromium] Adding PrioritizedTexture and replacing ContentsTextureManager
594         https://bugs.webkit.org/show_bug.cgi?id=84308
595
596         Reviewed by Adrienne Walker.
597
598         PrioritizedTextures have a priority such that all texture requests can be
599         prioritized. There are three steps involved:
600             - Call setRequestPriority()
601             - Check if the request succeeded with canAcquireBackingTexture()
602             - Call acquireBackingTexture() when uploading a new texture.
603
604         Internally both the texture requests and the backing textures get sorted.
605         Requests are sorted so they can be prioritized. Backing textures are sorted
606         so that they can be recycled/evicted in the right order (lowest priority first).
607
608         Prioritizing textures doesn't assign backing textures to texture requests but
609         rather just marks which textures can have a backing texture "when needed". This
610         allows us to keep the old textures in use as long as possible.
611
612         The unit tests support all the use cases from the original texture manager
613         but also adds assumptions about priority order throughout all the tests. The
614         function assertInvariants() is added to test the validity of the manager
615         and all textures/allocations within it.
616
617         The TiledLayerChromium tests are updated to request textures first with
618         prioritizeTextures(), and update them with the updater (such that allocate
619         gets called) before pushPropertiesTo is called (when they need to be valid).
620
621         * WebCore.gypi:
622         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
623         (WebCore::BitmapCanvasLayerTextureUpdater::Texture::Texture):
624         (WebCore::BitmapCanvasLayerTextureUpdater::createTexture):
625         (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
626         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
627         (WebCore):
628         (Texture):
629         (BitmapCanvasLayerTextureUpdater):
630         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
631         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::Texture):
632         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::createTexture):
633         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
634         (Texture):
635         (BitmapSkPictureCanvasLayerTextureUpdater):
636         * platform/graphics/chromium/ContentLayerChromium.cpp:
637         (WebCore::ContentLayerChromium::setTexturePriorities):
638         (WebCore):
639         (WebCore::ContentLayerChromium::update):
640         * platform/graphics/chromium/ContentLayerChromium.h:
641         (ContentLayerChromium):
642         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
643         (WebCore::createAcceleratedCanvas):
644         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::Texture):
645         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::createTexture):
646         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
647         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
648         (Texture):
649         (FrameBufferSkPictureCanvasLayerTextureUpdater):
650         * platform/graphics/chromium/ImageLayerChromium.cpp:
651         (WebCore::ImageLayerTextureUpdater::Texture::Texture):
652         (WebCore::ImageLayerTextureUpdater::createTexture):
653         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
654         (WebCore::ImageLayerChromium::setTexturePriorities):
655         (WebCore):
656         * platform/graphics/chromium/ImageLayerChromium.h:
657         (ImageLayerChromium):
658         * platform/graphics/chromium/LayerChromium.h:
659         (LayerChromium):
660         (WebCore::LayerChromium::setTexturePriorities):
661         * platform/graphics/chromium/LayerTextureUpdater.h:
662         (WebCore::LayerTextureUpdater::Texture::texture):
663         (WebCore::LayerTextureUpdater::Texture::swapTextureWith):
664         (WebCore::LayerTextureUpdater::Texture::Texture):
665         (Texture):
666         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
667         (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
668         (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
669         (WebCore::ScrollbarLayerChromium::updatePart):
670         (WebCore):
671         (WebCore::ScrollbarLayerChromium::setTexturePriorities):
672         * platform/graphics/chromium/ScrollbarLayerChromium.h:
673         (ScrollbarLayerChromium):
674         * platform/graphics/chromium/TiledLayerChromium.cpp:
675         (WebCore::UpdatableTile::managedTexture):
676         (WebCore::TiledLayerChromium::pushPropertiesTo):
677         (WebCore::TiledLayerChromium::textureManager):
678         (WebCore::TiledLayerChromium::createTile):
679         (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate):
680         (WebCore::TiledLayerChromium::updateTiles):
681         (WebCore::TiledLayerChromium::setTexturePriorities):
682         (WebCore):
683         (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
684         (WebCore::TiledLayerChromium::resetUpdateState):
685         (WebCore::TiledLayerChromium::updateLayerRect):
686         (WebCore::TiledLayerChromium::idleUpdateLayerRect):
687         (WebCore::TiledLayerChromium::needsIdlePaint):
688         (WebCore::TiledLayerChromium::idlePaintRect):
689         * platform/graphics/chromium/TiledLayerChromium.h:
690         (TiledLayerChromium):
691         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
692         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
693         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
694         (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
695         (WebCore::CCLayerTreeHost::commitComplete):
696         (WebCore::CCLayerTreeHost::evictAllContentTextures):
697         (WebCore::CCLayerTreeHost::contentsTextureManager):
698         (WebCore::CCLayerTreeHost::updateLayers):
699         (WebCore::CCLayerTreeHost::prioritizeTextures):
700         (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
701         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
702         (WebCore):
703         (CCLayerTreeHost):
704         * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: Added.
705         (WebCore):
706         (WebCore::CCPrioritizedTexture::CCPrioritizedTexture):
707         (WebCore::CCPrioritizedTexture::~CCPrioritizedTexture):
708         (WebCore::CCPrioritizedTexture::setTextureManager):
709         (WebCore::CCPrioritizedTexture::setDimensions):
710         (WebCore::CCPrioritizedTexture::requestLate):
711         (WebCore::CCPrioritizedTexture::acquireBackingTexture):
712         (WebCore::CCPrioritizedTexture::textureId):
713         (WebCore::CCPrioritizedTexture::bindTexture):
714         (WebCore::CCPrioritizedTexture::framebufferTexture2D):
715         (WebCore::CCPrioritizedTexture::setCurrentBacking):
716         * platform/graphics/chromium/cc/CCPrioritizedTexture.h: Added.
717         (WebCore):
718         (CCPrioritizedTexture):
719         (WebCore::CCPrioritizedTexture::create):
720         (WebCore::CCPrioritizedTexture::textureManager):
721         (WebCore::CCPrioritizedTexture::format):
722         (WebCore::CCPrioritizedTexture::size):
723         (WebCore::CCPrioritizedTexture::memorySizeBytes):
724         (WebCore::CCPrioritizedTexture::setRequestPriority):
725         (WebCore::CCPrioritizedTexture::requestPriority):
726         (WebCore::CCPrioritizedTexture::canAcquireBackingTexture):
727         (WebCore::CCPrioritizedTexture::haveBackingTexture):
728         (Backing):
729         (WebCore::CCPrioritizedTexture::Backing::size):
730         (WebCore::CCPrioritizedTexture::Backing::format):
731         (WebCore::CCPrioritizedTexture::Backing::memorySizeBytes):
732         (WebCore::CCPrioritizedTexture::Backing::textureId):
733         (WebCore::CCPrioritizedTexture::Backing::currentTexture):
734         (WebCore::CCPrioritizedTexture::Backing::setCurrentTexture):
735         (WebCore::CCPrioritizedTexture::Backing::Backing):
736         (WebCore::CCPrioritizedTexture::Backing::~Backing):
737         (WebCore::CCPrioritizedTexture::isAbovePriorityCutoff):
738         (WebCore::CCPrioritizedTexture::setAbovePriorityCutoff):
739         (WebCore::CCPrioritizedTexture::setManagerInternal):
740         (WebCore::CCPrioritizedTexture::currentBacking):
741         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: Added.
742         (WebCore):
743         (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
744         (WebCore::CCPrioritizedTextureManager::~CCPrioritizedTextureManager):
745         (WebCore::CCPrioritizedTextureManager::setMemoryAllocationLimitBytes):
746         (WebCore::CCPrioritizedTextureManager::prioritizeTextures):
747         (WebCore::CCPrioritizedTextureManager::clearPriorities):
748         (WebCore::CCPrioritizedTextureManager::requestLate):
749         (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
750         (WebCore::CCPrioritizedTextureManager::reduceMemory):
751         (WebCore::CCPrioritizedTextureManager::clearAllMemory):
752         (WebCore::CCPrioritizedTextureManager::allBackingTexturesWereDeleted):
753         (WebCore::CCPrioritizedTextureManager::unlink):
754         (WebCore::CCPrioritizedTextureManager::link):
755         (WebCore::CCPrioritizedTextureManager::registerTexture):
756         (WebCore::CCPrioritizedTextureManager::unregisterTexture):
757         (WebCore::CCPrioritizedTextureManager::returnBackingTexture):
758         (WebCore::CCPrioritizedTextureManager::createBacking):
759         (WebCore::CCPrioritizedTextureManager::destroyBacking):
760         (WebCore::CCPrioritizedTextureManager::assertInvariants):
761         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: Added.
762         (WebCore):
763         (CCPrioritizedTextureManager):
764         (WebCore::CCPrioritizedTextureManager::create):
765         (WebCore::CCPrioritizedTextureManager::createTexture):
766         (WebCore::CCPrioritizedTextureManager::memoryUseBytes):
767         (WebCore::CCPrioritizedTextureManager::memoryAboveCutoffBytes):
768         (WebCore::CCPrioritizedTextureManager::setMaxMemoryLimitBytes):
769         (WebCore::CCPrioritizedTextureManager::maxMemoryLimitBytes):
770         (WebCore::CCPrioritizedTextureManager::setPreferredMemoryLimitBytes):
771         (WebCore::CCPrioritizedTextureManager::preferredMemoryLimitBytes):
772         (WebCore::CCPrioritizedTextureManager::setMaxMemoryPriorityCutoff):
773         (WebCore::CCPrioritizedTextureManager::maxMemoryPriorityCutoff):
774         (WebCore::CCPrioritizedTextureManager::compareTextures):
775         (WebCore::CCPrioritizedTextureManager::compareBackings):
776         * platform/graphics/chromium/cc/CCPriorityCalculator.cpp: Added.
777         (WebCore):
778         (WebCore::CCPriorityCalculator::uiPriority):
779         (WebCore::CCPriorityCalculator::visiblePriority):
780         (WebCore::CCPriorityCalculator::lingeringPriority):
781         (WebCore::CCPriorityCalculator::priorityFromDistance):
782         (WebCore::CCPriorityCalculator::priorityFromVisibility):
783         * platform/graphics/chromium/cc/CCPriorityCalculator.h: Added.
784         (WebCore):
785         (CCPriorityCalculator):
786         (WebCore::CCPriorityCalculator::highestPriority):
787         (WebCore::CCPriorityCalculator::lowestPriority):
788         (WebCore::CCPriorityCalculator::priorityIsLower):
789         (WebCore::CCPriorityCalculator::priorityIsHigher):
790         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
791
792 2012-06-29  Eric Seidel  <eric@webkit.org>
793
794         Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
795         https://bugs.webkit.org/show_bug.cgi?id=90249
796
797         Reviewed by Ryosuke Niwa.
798
799         I don't think I quite got it all yet, but this is another step towards
800         removing Leopard support in WebCore.
801
802         * WebCore.exp.in:
803         * page/AlternativeTextClient.h:
804         * page/ContextMenuController.cpp:
805         (WebCore::ContextMenuController::populate):
806         * platform/graphics/cg/ImageBufferDataCG.h:
807         * platform/graphics/mac/GraphicsContextMac.mm:
808         (WebCore::GraphicsContext::drawLineForDocumentMarker):
809         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
810         (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
811         * platform/mac/WebCoreSystemInterface.h:
812         * platform/network/Credential.h:
813         * platform/network/cf/ResourceRequestCFNet.cpp:
814         (WebCore):
815         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
816         * platform/text/TextChecking.h:
817         (WebCore):
818         * rendering/RenderLayerBacking.cpp:
819         (WebCore::RenderLayerBacking::containsPaintedContent):
820
821 2012-06-29  Andreas Kling  <kling@webkit.org>
822
823         Unreviewed, rolling out r121562.
824         http://trac.webkit.org/changeset/121562
825         https://bugs.webkit.org/show_bug.cgi?id=89945
826
827         Broke a couple of editing/pasteboard tests.
828
829         * css/PropertySetCSSStyleDeclaration.cpp:
830         (WebCore::PropertySetCSSStyleDeclaration::length):
831         (WebCore::PropertySetCSSStyleDeclaration::item):
832         (WebCore::PropertySetCSSStyleDeclaration::cssText):
833         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
834         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
835         (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
836         (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
837         (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
838         (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
839         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
840         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
841         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
842         (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
843         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
844         (WebCore::PropertySetCSSStyleDeclaration::copy):
845         (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
846         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
847         (WebCore::InlineCSSStyleDeclaration::didMutate):
848         (WebCore::InlineCSSStyleDeclaration::parentStyleSheet):
849         * css/PropertySetCSSStyleDeclaration.h:
850         (WebCore::PropertySetCSSStyleDeclaration::clearParentElement):
851         (PropertySetCSSStyleDeclaration):
852         (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
853         * css/StylePropertySet.cpp:
854         (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
855         (WebCore::StylePropertySet::clearParentElement):
856         (WebCore):
857         * css/StylePropertySet.h:
858         (StylePropertySet):
859         * dom/ElementAttributeData.cpp:
860         (WebCore::ElementAttributeData::destroyInlineStyle):
861         (WebCore):
862         * dom/ElementAttributeData.h:
863         (ElementAttributeData):
864         * dom/StyledElement.cpp:
865         (WebCore::StyledElement::~StyledElement):
866         (WebCore):
867         (WebCore::StyledElement::styleAttributeChanged):
868         * dom/StyledElement.h:
869         (StyledElement):
870         (WebCore::StyledElement::destroyInlineStyle):
871
872 2012-06-29  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
873
874         [Qt] Add missing support for tiled shadow blur on fillRect
875         https://bugs.webkit.org/show_bug.cgi?id=90082
876
877         Reviewed by Noam Rosenthal.
878
879         This overloaded fillRect implementation also supports this optimization in
880         certain situations.
881
882         * platform/graphics/qt/GraphicsContextQt.cpp:
883         (WebCore::GraphicsContext::fillRect):
884
885 2012-06-29  Brady Eidson  <beidson@apple.com>
886
887         Build fix - These should not be executable!
888
889         Rubberstamped by Jessie Berlin.
890
891         * loader/cache/CachedSVGDocument.cpp: Removed property svn:executable.
892         * loader/cache/CachedSVGDocument.h: Removed property svn:executable.
893
894 2012-06-29  Kwang Yul Seo  <skyul@company100.net>
895
896         Update FIXME comment in XMLDocumentParser::wellFormed
897         https://bugs.webkit.org/show_bug.cgi?id=90223
898
899         Reviewed by Adam Barth.
900
901         XMLDocumentParser::wellFormed is still used by the XMLHttpRequest to check if the responseXML was well formed.
902         So it can't be removed.
903
904         * xml/parser/XMLDocumentParser.h:
905         (XMLDocumentParser):
906
907 2012-06-29  Andreas Kling  <kling@webkit.org>
908
909         Separate mutating CSSStyleDeclaration operations.
910         <http://webkit.org/b/89945>
911
912         Reviewed by Antti Koivisto.
913
914         Use separate paths for mutating the StylePropertySet wrapped by a CSSStyleDeclaration.
915         PropertySetCSSStyleDeclaration now has:
916
917             - propertySet() const
918             - ensureMutablePropertySet()
919
920         This is prep work for supporting immutable ElementAttributeData objects, the idea being
921         that calling ensureMutablePropertySet() may cause the element to convert its internal
922         attribute storage (which also holds the inline StylePropertySet.)
923
924         To that end, also removed the weird logic that allowed you to kill the inline style object
925         by removing the 'style' attribute. We now simply clear out all the properties in that case
926         which saves us a bunch of hassle (no need for a ~StyledElement anymore.)
927         Note that InlineCSSStyleDeclaration now refs the element rather than the inline style.
928
929         There should be no web-facing behavior change from any of this.
930
931         * css/PropertySetCSSStyleDeclaration.cpp:
932         (WebCore::PropertySetCSSStyleDeclaration::length):
933         (WebCore::PropertySetCSSStyleDeclaration::item):
934         (WebCore::PropertySetCSSStyleDeclaration::cssText):
935         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
936         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
937         (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
938         (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
939         (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
940         (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
941         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
942         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
943         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
944         (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
945         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
946         (WebCore::PropertySetCSSStyleDeclaration::copy):
947         (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
948         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
949         (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
950         (WebCore::InlineCSSStyleDeclaration::ref):
951         (WebCore::InlineCSSStyleDeclaration::deref):
952         (WebCore::InlineCSSStyleDeclaration::didMutate):
953         (WebCore::InlineCSSStyleDeclaration::parentStyleSheet):
954         (WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):
955         * css/PropertySetCSSStyleDeclaration.h:
956         (PropertySetCSSStyleDeclaration):
957         (WebCore::PropertySetCSSStyleDeclaration::propertySet):
958         (WebCore::PropertySetCSSStyleDeclaration::ensureMutablePropertySet):
959         (InlineCSSStyleDeclaration):
960         * css/StylePropertySet.cpp:
961         (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
962         * css/StylePropertySet.h:
963         (StylePropertySet):
964         * dom/ElementAttributeData.cpp:
965         * dom/ElementAttributeData.h:
966         (ElementAttributeData):
967         * dom/StyledElement.cpp:
968         (WebCore::StyledElement::styleAttributeChanged):
969         * dom/StyledElement.h:
970         (WebCore::StyledElement::~StyledElement):
971         (StyledElement):
972
973 2012-06-29  Kwang Yul Seo  <skyul@company100.net>
974
975         Don't call SegmentedString::toString() twice in XMLDocumentParser::append(const SegmentedString&)
976         https://bugs.webkit.org/show_bug.cgi?id=90254
977
978         Reviewed by Adam Barth.
979
980         We can reuse the local variable parseString instead of calling s.toString() again.
981         No behavior change, so no new tests.
982
983         * xml/parser/XMLDocumentParser.cpp:
984         (WebCore::XMLDocumentParser::append):
985
986 2012-06-29  Mihnea Ovidenie  <mihnea@adobe.com>
987
988         Crash when flowing a fixed positioned element into a region.
989         https://bugs.webkit.org/show_bug.cgi?id=88133
990
991         Reviewed by Julien Chaffraix and Abhishek Arya.
992
993         When a fixed positioned element is collected into a named flow, we have to make sure
994         that such element has the RenderFlowThread as containing block instead of RenderView,
995         so that the fixed positioned element is laid out properly.
996         Making the RenderFlowThread the top most containing block for named flow elements required the
997         modification of RenderLayer::convertToLayerCoords so that the fixed positioned elements inside the
998         named flow take the same code path as the absolute positioned elements inside the named flow.
999         I also added a method, checkBlockPositionedObjectsNeedLayout, in order to verify that a block
1000         that is ending its layout, setNeedsLayout(false), has all the positioned children laid out.
1001         This way, we will hit an assertion if an out-of-flow positioned child inside a RenderFlowThread
1002         is not laid out after the RenderFlowThread is laid out.
1003
1004         Tests: fast/regions/absolute-pos-elem-in-named-flow.html
1005                fast/regions/absolute-pos-elem-in-region.html
1006                fast/regions/fixed-pos-elem-in-named-flow.html
1007                fast/regions/fixed-pos-elem-in-named-flow2.html
1008                fast/regions/fixed-pos-elem-in-region.html
1009
1010         * rendering/RenderBlock.cpp:
1011         (WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
1012         * rendering/RenderBlock.h:
1013         (RenderBlock):
1014         * rendering/RenderLayer.cpp:
1015         (WebCore::RenderLayer::convertToLayerCoords):
1016         * rendering/RenderObject.cpp:
1017         (WebCore):
1018         (WebCore::RenderObject::checkBlockPositionedObjectsNeedLayout):
1019         (WebCore::RenderObject::containingBlock):
1020         (WebCore::RenderObject::container):
1021         * rendering/RenderObject.h:
1022         (RenderObject):
1023         (WebCore::RenderObject::setNeedsLayout):
1024
1025 2012-06-29  Konrad Piascik  <kpiascik@rim.com>
1026
1027         Don't hardcode target dpi of 160 (it should be 96 on desktop)
1028         https://bugs.webkit.org/show_bug.cgi?id=88114
1029
1030         Reviewed by Adam Barth.
1031
1032         No behavioural change, current tests in fast/viewport cover all
1033         functionality.
1034
1035         * WebCore.exp.in: Updated symbol for computeViewportAttributes.
1036         * dom/ViewportArguments.cpp: Use new parameter for devicePixelRatio
1037                                      and don't calculate it anymore.
1038         (WebCore::computeViewportAttributes):
1039         * dom/ViewportArguments.h: Change the deviceDPI parameter to
1040                                    devicePixelRatio and put the onus
1041                                    on the embedder to supply the
1042                                    correct value.  Add temporary constant.
1043         (WebCore):
1044
1045 2012-06-29  Vineet Chaudhary  <rgf748@motorola.com>
1046
1047         JS binding code generator doesn't handle "attribute unsigned long[]" well.
1048         https://bugs.webkit.org/show_bug.cgi?id=84540
1049
1050         Reviewed by Kentaro Hara.
1051
1052         In JS/V8 Bindings using traits instead of specialised functions.
1053         Also added support for "unsigned long" in JSDOMBinding and V8Binding.
1054
1055         No new tests, as no behavioural changes.
1056
1057         * bindings/js/JSDOMBinding.h:
1058         (WebCore::Traits::arrayJSValue):
1059         (WebCore::jsArray):
1060         * bindings/v8/V8Binding.h:
1061         (WebCore::Traits::arrayV8Value):
1062         (WebCore::v8Array):
1063
1064 2012-06-29  Andreas Kling  <kling@webkit.org>
1065
1066         Unreviewed mac build fix after r121547.
1067         Remove the now-unused FontCustomPlatformData::m_atsContainer.
1068
1069         * platform/graphics/mac/FontCustomPlatformData.h:
1070         (FontCustomPlatformData):
1071
1072 2012-06-29  Kent Tamura  <tkent@chromium.org>
1073
1074         <textarea> unnecessarily saves the value in some cases
1075         https://bugs.webkit.org/show_bug.cgi?id=90259
1076
1077         Reviewed by Hajime Morita.
1078
1079         Test: fast/forms/textarea/textarea-state-restore.html
1080
1081         * html/HTMLTextAreaElement.cpp:
1082         (WebCore::HTMLTextAreaElement::saveFormControlState):
1083         We apply EOL normalization to value(), but don't apply it to
1084         defaultValue(). Also value() can return a null string, which never
1085         equals to any strings. To check m_isDirty is what we need..
1086
1087 2012-06-25  Alexander Pavlov  <apavlov@chromium.org>
1088
1089         Web Inspector: Provide source data for all known rule types in CSSParser, except "keyframe" and "region"
1090         https://bugs.webkit.org/show_bug.cgi?id=88420
1091
1092         Reviewed by Antti Koivisto.
1093
1094         This change transitions the CSS source code model from a flat list of style rules to a tree of all types of CSS rules
1095         (some of them lack actual source code data), which is crucial to model-based CSS stylesheet source editing
1096         (add/remove CSS rule) and navigation.
1097         As a side effect, the CSS parsing performance on PerformanceTests/Parser/css-parser-yui.html is improved roughly by 2%:
1098         - originally: median= 282.051282051 runs/s, stdev= 1.51236798322 runs/s, min= 278.481012658 runs/s, max= 283.870967742 runs/s
1099         - with patch applied: median= 287.206266319 runs/s, stdev= 1.31518320219 runs/s, min= 282.051282051 runs/s, max= 288.713910761 runs/s
1100
1101         No new tests, as there is no client-visible behavior change. Existing Inspector tests will be modified
1102         to test the new data provided, along with the necessary Inspector plumbing.
1103
1104         * css/CSSGrammar.y:
1105         * css/CSSMediaRule.cpp:
1106         (WebCore::CSSMediaRule::reattach): Check for mediaQueries() validity before reattaching.
1107         * css/CSSParser.cpp: Unless explicitly specified below, the method changes are related to the extension of the
1108         source-based CSS model provided by the parser.
1109         (WebCore::CSSParser::CSSParser):
1110         (WebCore::CSSParser::setupParser):
1111         (WebCore::CSSParser::parseDeclaration): Accept a CSSRuleSourceData for filling, since it now contains
1112         the related style source range.
1113         (WebCore::CSSParser::createImportRule):
1114         (WebCore::CSSParser::createMediaRule): Create CSSMediaRule even if media and rules are empty,
1115         which is consistent with Mozilla.
1116         (WebCore::CSSParser::processAndAddNewRuleToSourceTreeIfNeeded):
1117         (WebCore):
1118         (WebCore::CSSParser::addNewRuleToSourceTree):
1119         (WebCore::CSSParser::createKeyframesRule):
1120         (WebCore::CSSParser::createStyleRule):
1121         (WebCore::CSSParser::createFontFaceRule):
1122         (WebCore::CSSParser::createPageRule):
1123         (WebCore::CSSParser::createRegionRule):
1124         (WebCore::CSSParser::fixUnparsedPropertyRanges):
1125         (WebCore::CSSParser::markRuleHeaderStart):
1126         (WebCore::CSSParser::markRuleHeaderEnd):
1127         (WebCore::CSSParser::markRuleBodyStart):
1128         (WebCore::CSSParser::markRuleBodyEnd):
1129         (WebCore::CSSParser::markPropertyStart):
1130         (WebCore::CSSParser::markPropertyEnd):
1131         * css/CSSParser.h:
1132         (CSSParser):
1133         * css/CSSPropertySourceData.h: Extend the model to handle more types of rules and their containments.
1134         (WebCore):
1135         (WebCore::CSSRuleSourceData::create):
1136         (WebCore::CSSRuleSourceData::createUnknown):
1137         (CSSRuleSourceData):
1138         (WebCore::CSSRuleSourceData::CSSRuleSourceData):
1139         * inspector/InspectorStyleSheet.cpp: Follow the CSSParser API changes but retain the flat stored CSS rules structure.
1140         (ParsedStyleSheet):
1141         (flattenSourceData): Flatten the rule tree to retain the existing rule-handling code intact.
1142         (ParsedStyleSheet::setSourceData):
1143         (ParsedStyleSheet::ruleSourceDataAt):
1144         (WebCore::InspectorStyle::buildObjectForStyle):
1145         (WebCore::InspectorStyle::setPropertyText):
1146         (WebCore::InspectorStyle::styleText):
1147         (WebCore::InspectorStyleSheet::setRuleSelector):
1148         (WebCore::InspectorStyleSheet::deleteRule):
1149         (WebCore::InspectorStyleSheet::buildObjectForRule):
1150         (WebCore::InspectorStyleSheet::buildObjectForStyle):
1151         (WebCore::InspectorStyleSheet::ensureSourceData):
1152         (WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):
1153         (WebCore::InspectorStyleSheetForInlineStyle::ensureParsedDataReady):
1154         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
1155         * inspector/InspectorStyleSheet.h:
1156
1157 2012-06-29  Vsevolod Vlasov  <vsevik@chromium.org>
1158
1159         Web Inspector: Annotate TextViewer.js
1160         https://bugs.webkit.org/show_bug.cgi?id=90266
1161
1162         Reviewed by Yury Semikhatsky.
1163
1164         Annotated TextViewer.js and fixed found errors.
1165         Drive-by: Fixed NativeMemorySnapshotView.js compilation.
1166         Drive-by: Fixed protocol-externs.js compilation.
1167         Drive-by: Removed unused platform parameter from TextViewer constructor.
1168
1169         * inspector/Inspector.json:
1170         * inspector/InspectorDebuggerAgent.cpp:
1171         (WebCore::InspectorDebuggerAgent::runScript):
1172         * inspector/InspectorDebuggerAgent.h:
1173         (InspectorDebuggerAgent):
1174         * inspector/front-end/NativeMemorySnapshotView.js:
1175         (WebInspector.NativeMemoryBarChart.prototype._updateView):
1176         * inspector/front-end/SourceFrame.js:
1177         (WebInspector.SourceFrame):
1178         * inspector/front-end/TextViewer.js:
1179         (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
1180
1181 2012-06-29  Eric Seidel  <eric@webkit.org>
1182
1183         Remove still more BUILDING_ON_LEOPARD branches now that no port supports leopard
1184         https://bugs.webkit.org/show_bug.cgi?id=90256
1185
1186         Reviewed by Ryosuke Niwa.
1187
1188         * platform/LocalizedStrings.cpp:
1189         (WebCore::imageTitle):
1190         * platform/graphics/cg/GraphicsContextCG.cpp:
1191         (WebCore::GraphicsContext::setAllowsFontSmoothing):
1192         * platform/graphics/cg/ImageCG.cpp:
1193         (WebCore::Image::drawPattern):
1194         * platform/graphics/cg/ImageSourceCG.cpp:
1195         (WebCore::ImageSource::clear):
1196         * platform/graphics/cg/PathCG.cpp:
1197         (WebCore::Path::boundingRect):
1198         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1199         (WebCore::FontPlatformData::ctFont):
1200         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1201         * platform/graphics/mac/ComplexTextController.cpp:
1202         * platform/graphics/mac/FontCacheMac.mm:
1203         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
1204         (WebCore::FontCache::platformInit):
1205         * platform/graphics/mac/FontCustomPlatformData.cpp:
1206         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1207         (WebCore::createFontCustomPlatformData):
1208         * platform/graphics/mac/FontCustomPlatformData.h:
1209         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1210         * platform/graphics/mac/SimpleFontDataMac.mm:
1211         (WebCore::SimpleFontData::platformInit):
1212         * platform/graphics/mac/WebLayer.h:
1213         * platform/mac/CursorMac.mm:
1214         (WebCore::Cursor::ensurePlatformCursor):
1215         * platform/mac/DisplaySleepDisabler.cpp:
1216         (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
1217         (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
1218         * platform/mac/DisplaySleepDisabler.h:
1219         (DisplaySleepDisabler):
1220         * platform/mac/HTMLConverter.h:
1221         * platform/mac/HTMLConverter.mm:
1222         * platform/mac/PopupMenuMac.mm:
1223         (WebCore::PopupMenuMac::populate):
1224         * platform/mac/ScrollElasticityController.mm:
1225
1226 2012-06-29  Zan Dobersek  <zandobersek@gmail.com>
1227
1228         Unreviewed attempt at a build fix for 64-bit debug build,
1229         touch InsertionPoint.cpp to try to get it rebuilt.
1230
1231         * html/shadow/InsertionPoint.cpp:
1232         (WebCore):
1233
1234 2012-06-29  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
1235
1236         [Qt] Don't add Qt module dependencies in features.prf
1237
1238         The required dependencies are already added in WebCore.pri.
1239
1240         Reviewed by Tor Arne Vestbø.
1241
1242         * WebCore.pri:
1243
1244 2012-06-29  Taiju Tsuiki  <tzik@chromium.org>
1245
1246         Web Inspector: Add FileSystemView
1247         https://bugs.webkit.org/show_bug.cgi?id=73301
1248
1249         This patch introduce a split view as FileSystemView. Including directory tree as sidebar tree.
1250
1251         Reviewed by Vsevolod Vlasov.
1252
1253         Test: http/tests/inspector/filesystem/directory-tree.html
1254
1255         * WebCore.gypi:
1256         * WebCore.vcproj/WebCore.vcproj:
1257         * inspector/compile-front-end.py:
1258         * inspector/front-end/FileSystemModel.js:
1259         (WebInspector.FileSystemModel.Entry.compare):
1260         * inspector/front-end/FileSystemView.js: Added.
1261         * inspector/front-end/ResourcesPanel.js:
1262         (WebInspector.ResourcesPanel.prototype.showFileSystem):
1263         (WebInspector.FileSystemTreeElement.prototype.get itemURL):
1264         (WebInspector.FileSystemTreeElement.prototype.onattach):
1265         (WebInspector.FileSystemTreeElement.prototype._handleContextMenuEvent):
1266         (WebInspector.FileSystemTreeElement.prototype._refreshFileSystem):
1267         (WebInspector.FileSystemTreeElement.prototype.onselect):
1268         (WebInspector.FileSystemTreeElement.prototype.clear):
1269         * inspector/front-end/WebKit.qrc:
1270         * inspector/front-end/inspector.html:
1271
1272 2012-06-29  Kentaro Hara  <haraken@chromium.org>
1273
1274         [V8] Replace v8::Integer::New() with v8Integer() in custom bindings
1275         https://bugs.webkit.org/show_bug.cgi?id=90242
1276
1277         Reviewed by Yury Semikhatsky.
1278
1279         v8Integer() is a fast wrapper of v8::Integer::New().
1280         This patch replaces v8::Integer::New() with v8Integer() in custom bindings,
1281         and pass isolates.
1282
1283         No tests. No change in behavior.
1284
1285         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1286         (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator):
1287         (WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
1288         * bindings/v8/custom/V8ClipboardCustom.cpp:
1289         (WebCore::V8Clipboard::typesAccessorGetter):
1290         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1291         (WebCore::V8DOMStringMap::namedPropertyQuery):
1292         (WebCore::V8DOMStringMap::namedPropertyEnumerator):
1293         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1294         (WebCore::WindowSetTimeoutImpl):
1295         * bindings/v8/custom/V8DataViewCustom.cpp:
1296         (WebCore::V8DataView::getInt8Callback):
1297         (WebCore::V8DataView::getUint8Callback):
1298         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
1299         (WebCore::V8HTMLInputElement::selectionStartAccessorGetter):
1300         (WebCore::V8HTMLInputElement::selectionEndAccessorGetter):
1301         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1302         (WebCore::V8HTMLOptionsCollection::lengthAccessorGetter):
1303         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1304         (WebCore::V8InjectedScriptHost::functionDetailsCallback):
1305         * bindings/v8/custom/V8MessageEventCustom.cpp:
1306         (WebCore::V8MessageEvent::portsAccessorGetter):
1307         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
1308         (WebCore::V8MutationCallback::handleEvent):
1309         * bindings/v8/custom/V8NodeListCustom.cpp:
1310         (WebCore::V8NodeList::namedPropertyGetter):
1311         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1312         (WebCore::V8SQLTransaction::executeSqlCallback):
1313         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1314         (WebCore::V8SQLTransactionSync::executeSqlCallback):
1315         * bindings/v8/custom/V8StorageCustom.cpp:
1316         (WebCore::V8Storage::namedPropertyEnumerator):
1317         (WebCore::V8Storage::indexedPropertyGetter):
1318         (WebCore::V8Storage::namedPropertyQuery):
1319         (WebCore::V8Storage::indexedPropertySetter):
1320         (WebCore::V8Storage::indexedPropertyDeleter):
1321         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1322         (WebCore::toV8Object):
1323         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
1324         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
1325         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1326         (WebCore::SetTimeoutOrInterval):
1327
1328 2012-06-29  Kentaro Hara  <haraken@chromium.org>
1329
1330         Unreviewed, rolling out r121520.
1331         http://trac.webkit.org/changeset/121520
1332         https://bugs.webkit.org/show_bug.cgi?id=90246
1333
1334         the performance optimization needs more investigation
1335
1336         * dom/DatasetDOMStringMap.cpp:
1337         (WebCore::convertPropertyNameToAttributeName):
1338         * dom/Element.cpp:
1339         (WebCore::Element::getAttributeNS):
1340         (WebCore::Element::removeAttribute):
1341         (WebCore::Element::removeAttributeNS):
1342         (WebCore::Element::getAttributeNode):
1343         (WebCore::Element::getAttributeNodeNS):
1344         (WebCore::Element::hasAttribute):
1345         (WebCore::Element::hasAttributeNS):
1346         * dom/Element.h:
1347         (Element):
1348         * dom/ElementAttributeData.cpp:
1349         (WebCore::ElementAttributeData::getAttributeNode):
1350         * dom/ElementAttributeData.h:
1351         (ElementAttributeData):
1352
1353 2012-06-29  Kentaro Hara  <haraken@chromium.org>
1354
1355         [V8] Replace v8::Integer::New() with v8Integer() in bindings/v8/*.{h,cpp}
1356         https://bugs.webkit.org/show_bug.cgi?id=90238
1357
1358         Reviewed by Yury Semikhatsky.
1359
1360         v8Integer() is a fast wrapper of v8::Integer::New().
1361         We can replace v8::Integer::New() with v8Integer()
1362         in bindings/v8/*.{h,cpp}. In addition, we pass isolate
1363         to v8Integer() where possible.
1364
1365         No tests. No change in behavior.
1366
1367         * bindings/v8/Dictionary.cpp:
1368         (WebCore::Dictionary::get):
1369         * bindings/v8/NPV8Object.cpp:
1370         (_NPN_Enumerate): Changed v8::None to 0, for consistency with other code.
1371         * bindings/v8/PageScriptDebugServer.cpp:
1372         (WebCore::PageScriptDebugServer::addListener):
1373         * bindings/v8/ScriptDebugServer.cpp:
1374         (WebCore::ScriptDebugServer::setBreakpoint):
1375         (WebCore::ScriptDebugServer::compileScript):
1376         * bindings/v8/SerializedScriptValue.cpp:
1377         * bindings/v8/V8Binding.cpp:
1378         (WebCore::v8Array):
1379         (WebCore::v8ValueToWebCoreDOMStringList):
1380         * bindings/v8/V8Binding.h:
1381         (WebCore::v8Array):
1382         (WebCore::v8NumberArrayToVector):
1383         * bindings/v8/V8Collection.h:
1384         (WebCore::nodeCollectionIndexedPropertyEnumerator):
1385         (WebCore::collectionIndexedPropertyEnumerator):
1386         * bindings/v8/V8LazyEventListener.cpp:
1387         (WebCore::V8LazyEventListener::prepareListenerObject):
1388         * bindings/v8/V8NPObject.cpp:
1389         (WebCore::npObjectQueryProperty):
1390         (WebCore::npObjectPropertyEnumerator):
1391         * bindings/v8/V8NPUtils.cpp:
1392         (WebCore::convertNPVariantToV8Object):
1393         * bindings/v8/V8Proxy.cpp:
1394         (WebCore::batchConfigureConstants):
1395         (WebCore::V8Proxy::compileScript):
1396         * bindings/v8/V8Utilities.cpp:
1397         (WebCore::createHiddenDependency):
1398         (WebCore::removeHiddenDependency):
1399         * bindings/v8/V8WindowErrorHandler.cpp:
1400         (WebCore::V8WindowErrorHandler::callListenerFunction):
1401         * bindings/v8/V8WorkerContextErrorHandler.cpp:
1402         (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
1403         * bindings/v8/WorkerScriptDebugServer.cpp:
1404         (WebCore::WorkerScriptDebugServer::addListener):
1405
1406 2012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
1407
1408         Web Inspector: Resource content is not loaded if Resource.requestContent method is called before network request is finished.
1409         https://bugs.webkit.org/show_bug.cgi?id=90153
1410
1411         Reviewed by Yury Semikhatsky.
1412
1413         Test: http/tests/inspector/resource-tree/resource-request-content-while-loading.html
1414
1415         * inspector/front-end/NetworkRequest.js:
1416         * inspector/front-end/Resource.js:
1417         (WebInspector.Resource):
1418         (WebInspector.Resource.prototype.requestContent):
1419         (WebInspector.Resource.prototype._requestFinished):
1420
1421 2012-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1422
1423         Unreviewed, rolling out r121529.
1424         http://trac.webkit.org/changeset/121529
1425         https://bugs.webkit.org/show_bug.cgi?id=90260
1426
1427         Failed to compile on Chromium WebKitMacBuilder (Requested by
1428         keishi on #webkit).
1429
1430         * platform/LocalizedStrings.cpp:
1431         (WebCore):
1432         * platform/graphics/cg/PathCG.cpp:
1433         (WebCore::Path::platformAddPathForRoundedRect):
1434         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1435         (WebCore::FontPlatformData::FontPlatformData):
1436         (WebCore::FontPlatformData::setFont):
1437         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1438         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
1439         * platform/graphics/mac/FontMac.mm:
1440         (WebCore::showGlyphsWithAdvances):
1441         * platform/graphics/mac/SimpleFontDataMac.mm:
1442         (WebCore):
1443         * platform/mac/CursorMac.mm:
1444         (WebCore::Cursor::ensurePlatformCursor):
1445         * platform/mac/MemoryPressureHandlerMac.mm:
1446         (WebCore):
1447         * platform/mac/PlatformEventFactoryMac.mm:
1448         (WebCore::momentumPhaseForEvent):
1449         (WebCore::phaseForEvent):
1450         * platform/mac/WebCoreSystemInterface.h:
1451         * platform/mac/WebCoreSystemInterface.mm:
1452         * platform/network/mac/ResourceHandleMac.mm:
1453         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
1454         * platform/network/mac/ResourceRequestMac.mm:
1455         (WebCore::ResourceRequest::doUpdateResourceRequest):
1456         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1457         * platform/text/cf/HyphenationCF.cpp:
1458         * rendering/RenderThemeMac.mm:
1459         (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused):
1460
1461 2012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
1462
1463         Web Inspector: Add toggle breakpoint shortcut.
1464         https://bugs.webkit.org/show_bug.cgi?id=90188
1465
1466         Reviewed by Yury Semikhatsky.
1467
1468         * inspector/front-end/JavaScriptSourceFrame.js:
1469         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
1470         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
1471         (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
1472         * inspector/front-end/ScriptsPanel.js:
1473         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
1474         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
1475         * inspector/front-end/TextViewer.js:
1476         (WebInspector.TextViewer.prototype.selection):
1477
1478 2012-06-28  Vsevolod Vlasov  <vsevik@chromium.org>
1479
1480         Web Inspector: Cursor should follow execution line when debugging.
1481         https://bugs.webkit.org/show_bug.cgi?id=90184
1482
1483         Reviewed by Yury Semikhatsky.
1484
1485         Added TextViewer.setSelection public method to set cursor selection in the editor.
1486         Added TextRange.createFromLocation method to create TextRanges with the same start and end points.
1487         Drive-by: removed unused _setCaretLocation() method in TextViewer.js
1488
1489         * inspector/front-end/JavaScriptSourceFrame.js:
1490         (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
1491         * inspector/front-end/ScriptsPanel.js:
1492         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
1493         (WebInspector.ScriptsPanel.prototype._editorSelected):
1494         * inspector/front-end/SourceFrame.js:
1495         (WebInspector.SourceFrame.prototype.setSelection):
1496         (WebInspector.SourceFrame.prototype.setContent):
1497         * inspector/front-end/TextEditorModel.js:
1498         (WebInspector.TextRange.createFromLocation):
1499         * inspector/front-end/TextViewer.js:
1500         (WebInspector.TextViewer.prototype.setSelection):
1501         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
1502
1503 2012-06-27  Vsevolod Vlasov  <vsevik@chromium.org>
1504
1505         Web Inspector: IDBObjectStore.autoIncrement flag not exposed
1506         https://bugs.webkit.org/show_bug.cgi?id=89701
1507
1508         Reviewed by Yury Semikhatsky.
1509
1510         Plumbed objectStore.autoIncrement to inspector front-end and added it to tooltip.
1511
1512         * English.lproj/localizedStrings.js:
1513         * inspector/Inspector.json:
1514         * inspector/InspectorIndexedDBAgent.cpp:
1515         (WebCore):
1516         * inspector/front-end/IndexedDBModel.js:
1517         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
1518         (WebInspector.IndexedDBModel.prototype._loadDatabase):
1519         (WebInspector.IndexedDBModel.ObjectStore):
1520         * inspector/front-end/ResourcesPanel.js:
1521         (WebInspector.IDBObjectStoreTreeElement.prototype._updateTooltip):
1522
1523 2012-06-28  Alexander Pavlov  <apavlov@chromium.org>
1524
1525         Use floating keyframe rule list when parsing @-webkit-keyframes and allow abrupt rule termination
1526         https://bugs.webkit.org/show_bug.cgi?id=90073
1527
1528         Reviewed by Antti Koivisto.
1529
1530         - The grammar is changed to allow abruptly terminated stylesheet in the @-webkit-keyframes (use closing_brace, not '}').
1531         - A floating StyleKeyframe vector is introduced to separate the creation and filling of StyleRuleKeyframes, as other rules do.
1532
1533         Test: fast/css/css-keyframe-unexpected-end.html
1534
1535         * css/CSSGrammar.y:
1536         * css/CSSParser.cpp:
1537         (WebCore::CSSParser::createFloatingKeyframeVector):
1538         (WebCore):
1539         (WebCore::CSSParser::sinkFloatingKeyframeVector):
1540         (WebCore::CSSParser::createKeyframesRule):
1541         * css/CSSParser.h:
1542
1543 2012-06-26  Yury Semikhatsky  <yurys@chromium.org>
1544
1545         Web Inspector: add character data to the DOM section of native memory view
1546         https://bugs.webkit.org/show_bug.cgi?id=89968
1547
1548         Reviewed by Vsevolod Vlasov.
1549
1550         Count strings referenced from CharacterData node and its descendants
1551         as part of the DOM tree structures in the native memory view.
1552
1553         * dom/CharacterData.cpp:
1554         (WebCore::CharacterData::reportMemoryUsage):
1555         (WebCore):
1556         * dom/CharacterData.h:
1557         (CharacterData):
1558         * dom/MemoryInstrumentation.h:
1559         (MemoryInstrumentation):
1560         (WebCore::MemoryObjectInfo::reportString):
1561         (MemoryObjectInfo):
1562         * inspector/InspectorMemoryAgent.cpp:
1563         (WebCore):
1564         (WebCore::domTreeInfo):
1565         (WebCore::jsExternalResourcesInfo):
1566         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
1567         * inspector/front-end/NativeMemorySnapshotView.js:
1568         (WebInspector.MemoryBlockViewProperties._initialize):
1569
1570 2012-06-29  Eric Seidel  <eric@webkit.org>
1571
1572         Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
1573         https://bugs.webkit.org/show_bug.cgi?id=90252
1574
1575         Reviewed by Ryosuke Niwa.
1576
1577         * platform/LocalizedStrings.cpp:
1578         (WebCore):
1579         * platform/graphics/cg/PathCG.cpp:
1580         (WebCore::Path::platformAddPathForRoundedRect):
1581         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1582         (WebCore::FontPlatformData::FontPlatformData):
1583         (WebCore::FontPlatformData::setFont):
1584         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
1585         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
1586         * platform/graphics/mac/FontMac.mm:
1587         (WebCore::showGlyphsWithAdvances):
1588         * platform/graphics/mac/SimpleFontDataMac.mm:
1589         (WebCore):
1590         * platform/mac/CursorMac.mm:
1591         (WebCore::Cursor::ensurePlatformCursor):
1592         * platform/mac/MemoryPressureHandlerMac.mm:
1593         (WebCore):
1594         * platform/mac/PlatformEventFactoryMac.mm:
1595         (WebCore::momentumPhaseForEvent):
1596         (WebCore::phaseForEvent):
1597         * platform/mac/WebCoreSystemInterface.h:
1598         * platform/mac/WebCoreSystemInterface.mm:
1599         * platform/network/mac/ResourceHandleMac.mm:
1600         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
1601         * platform/network/mac/ResourceRequestMac.mm:
1602         (WebCore::ResourceRequest::doUpdateResourceRequest):
1603         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1604         * platform/text/cf/HyphenationCF.cpp:
1605         * rendering/RenderThemeMac.mm:
1606         (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused):
1607
1608 2012-06-27  Vsevolod Vlasov  <vsevik@chromium.org>
1609
1610         Web Inspector: showConsole() should close previous view in drawer.
1611         https://bugs.webkit.org/show_bug.cgi?id=90070
1612
1613         Reviewed by Yury Semikhatsky.
1614
1615         * inspector/front-end/inspector.js:
1616         (WebInspector.showConsole):
1617         (WebInspector.showPanel):
1618
1619 2012-06-29  Ryosuke Niwa  <rniwa@webkit.org>
1620
1621         Remove a #include erroneously added in r120896.
1622
1623         * editing/VisibleSelection.h:
1624
1625 2012-06-29  Yoshifumi Inoue  <yosin@chromium.org>
1626
1627         [Platform] Implement Date Time format parser
1628         https://bugs.webkit.org/show_bug.cgi?id=89963
1629
1630         Reviewed by Kent Tamura.
1631
1632         This patch introduces Unicode TR35 LDML date time format parser for
1633         input type "time" if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) is true.
1634
1635         Test: WebKit/chromium/tests/DateTimeFormatTest.cpp
1636
1637         * CMakeLists.txt: Added DateTimeFormat.cpp
1638         * GNUmakefile.list.am: Added DateTimeFormat.{cpp,h}
1639         * Target.pri: ditto
1640         * WebCore.gypi: ditto
1641         * WebCore.vcproj/WebCore.vcproj: ditto
1642         * WebCore.xcodeproj/product.pbxproj: ditto
1643         * platform/text/DateTimeFormat.cpp: Added.
1644         (WebCore::mapCharacterToFieldTypeInternal):
1645         (WebCore::DateTimeFormat::DateTimeFormat):
1646         (WebCore::DateTimeFormat::mapCharacterToFieldType):
1647         (WebCore::DateTimeFormat::parse):
1648         * platform/text/DateTimeFormat.h: Added.
1649         (DateTimeFormat):
1650         (TokenHandler):
1651         (WebCore::DateTimeFormat::TokenHandler::~TokenHandler):
1652
1653 2012-06-29  Eric Seidel  <eric@webkit.org>
1654
1655         Remove more BUILDING_ON_LEOPARD usage in PLATFORM(MAC) code
1656         https://bugs.webkit.org/show_bug.cgi?id=85846
1657
1658         Reviewed by Adam Barth.
1659
1660         PLATFORM(MAC) has not supported Leopard for several months now.
1661         This change removes about 1/3 of the remaining BUILDING_ON_LEOPARD
1662         uses in the PLATFORM(MAC) codepaths.  PLATFORM(CHROMIUM) still
1663         supports BUILDING_ON_LEOPARD for now.
1664
1665         * WebCore.exp.in:
1666         * dom/Document.cpp:
1667         (WebCore::Document::updateRangesAfterChildrenChanged):
1668         (WebCore::Document::nodeChildrenWillBeRemoved):
1669         (WebCore::Document::nodeWillBeRemoved):
1670         (WebCore::Document::textInserted):
1671         (WebCore::Document::textRemoved):
1672         (WebCore::Document::textNodesMerged):
1673         (WebCore::Document::textNodeSplit):
1674         * editing/Editor.cpp:
1675         (WebCore::Editor::respondToChangedSelection):
1676         * editing/TypingCommand.cpp:
1677         (WebCore::TypingCommand::markMisspellingsAfterTyping):
1678         (WebCore::TypingCommand::typingAddedToOpenCommand):
1679         * editing/mac/EditorMac.mm:
1680         (WebCore::Editor::pasteWithPasteboard):
1681         * loader/EmptyClients.h:
1682         (EmptyEditorClient):
1683         * page/ContextMenuController.cpp:
1684         (WebCore::ContextMenuController::contextMenuItemSelected):
1685         (WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu):
1686         (WebCore):
1687         (WebCore::ContextMenuController::populate):
1688         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
1689         * page/EditorClient.h:
1690         (EditorClient):
1691         * platform/LocalizedStrings.cpp:
1692         (WebCore::contextMenuItemTagSearchWeb):
1693         * platform/MemoryPressureHandler.cpp:
1694         (WebCore):
1695         * platform/SuddenTermination.h:
1696         (WebCore):
1697         * platform/graphics/ca/GraphicsLayerCA.cpp:
1698         (WebCore::GraphicsLayerCA::updateContentsImage):
1699         (WebCore::GraphicsLayerCA::constrainedSize):
1700         * platform/graphics/ca/PlatformCALayer.h:
1701         (PlatformCALayer):
1702         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
1703         (fromCAValueFunctionType):
1704         (PlatformCAAnimation::valueFunction):
1705         (PlatformCAAnimation::setValueFunction):
1706         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1707         (toCAFilterType):
1708         (PlatformCALayer::anchorPoint):
1709         (PlatformCALayer::setAnchorPoint):
1710         (PlatformCALayer::contentsTransform):
1711         (PlatformCALayer::setContentsTransform):
1712         (PlatformCALayer::isGeometryFlipped):
1713         (PlatformCALayer::setGeometryFlipped):
1714         (PlatformCALayer::acceleratesDrawing):
1715         (PlatformCALayer::setAcceleratesDrawing):
1716         (PlatformCALayer::setMinificationFilter):
1717         (PlatformCALayer::setMagnificationFilter):
1718         (PlatformCALayer::contentsScale):
1719         (PlatformCALayer::setContentsScale):
1720         * platform/graphics/ca/mac/TileCache.mm:
1721         (WebCore::TileCache::setScale):
1722         (WebCore::TileCache::setAcceleratesDrawing):
1723         (WebCore::TileCache::createTileLayer):
1724
1725 2012-06-29  Kwang Yul Seo  <skyul@company100.net>
1726
1727         Use StringBuilder in SegmentedString::toString()
1728         https://bugs.webkit.org/show_bug.cgi?id=90247
1729
1730         Reviewed by Adam Barth.
1731
1732         Use a StringBuilder instead of String concatenation because StringBuilder is generally faster.
1733         No new tests. Covered by existing tests.
1734
1735         * platform/text/SegmentedString.cpp:
1736         (WebCore::SegmentedString::toString):
1737         * platform/text/SegmentedString.h:
1738         (WebCore::SegmentedSubstring::appendTo):
1739
1740 2012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
1741
1742         Mac build fix after r121518.
1743
1744         * WebCore.exp.in:
1745
1746 2012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
1747
1748         DOMHTMLCollection::item may return a wrong element after namedItem is called
1749         https://bugs.webkit.org/show_bug.cgi?id=90240
1750
1751         Reviewed by Antti Koivisto.
1752
1753         The bug was caused by namedItem updating m_cache.current without updating m_cache.position.
1754         Fixed the bug by updating both. This is similar to the bug I fixed in r121478.
1755
1756         WebKit API Test: WebKit1.HTMLCollectionNamedItemTest
1757
1758         * html/HTMLCollection.cpp:
1759         (WebCore::HTMLCollection::namedItem):
1760
1761 2012-06-28  Kentaro Hara  <haraken@chromium.org>
1762
1763         Change argument types of Element::getAttribute*() from String to AtomicString
1764         https://bugs.webkit.org/show_bug.cgi?id=90246
1765
1766         Reviewed by Ryosuke Niwa.
1767
1768         This is a follow-up patch for r121439. r121439 changed an argument type of
1769         Element::getAttribute() from String to AtomicString, which optimized
1770         performance of Dromaeo/dom-attr.html. This patch changes other argument types
1771         of Element::getAttribute*() from String to AtomicString. See the ChangeLog in
1772         http://trac.webkit.org/changeset/121439 for more details about why this change
1773         optimizes performance.
1774
1775         No tests. No change in behavior.
1776
1777         * dom/DatasetDOMStringMap.cpp:
1778         (WebCore::convertPropertyNameToAttributeName):
1779         * dom/Element.cpp:
1780         (WebCore::Element::getAttributeNS):
1781         (WebCore::Element::removeAttribute):
1782         (WebCore::Element::removeAttributeNS):
1783         (WebCore::Element::getAttributeNode):
1784         (WebCore::Element::getAttributeNodeNS):
1785         (WebCore::Element::hasAttribute):
1786         (WebCore::Element::hasAttributeNS):
1787         * dom/Element.h:
1788         (Element):
1789         * dom/ElementAttributeData.cpp:
1790         (WebCore::ElementAttributeData::getAttributeNode):
1791         * dom/ElementAttributeData.h:
1792         (ElementAttributeData):
1793
1794 2012-06-28  Kent Tamura  <tkent@chromium.org>
1795
1796         REGRESSION(r106388): Form hidden element values being restored
1797         incorrectly for dynamically generated content
1798         https://bugs.webkit.org/show_bug.cgi?id=88685
1799
1800         Reviewed by Hajime Morita.
1801
1802         We should not save value attribute updated during parsing.
1803
1804         Test: fast/forms/state-restore-to-non-edited-controls.html
1805
1806         * html/HTMLInputElement.cpp:
1807         (WebCore::HTMLInputElement::HTMLInputElement):
1808         Initialize m_valueAttributeWasUpdatedAfterParsing.
1809         (WebCore::HTMLInputElement::parseAttribute):
1810         Set true to m_valueAttributeWasUpdatedAfterParsing if value
1811         attribute is updated and it's not in parsing.
1812         * html/HTMLInputElement.h:
1813         (WebCore::HTMLInputElement::valueAttributeWasUpdatedAfterParsing):
1814         Added for HiddenInputType.
1815         * html/HiddenInputType.cpp:
1816         (WebCore::HiddenInputType::saveFormControlState):
1817         Save the value only if valueAttributeWasUpdatedAfterParsing() is true.
1818
1819 2012-06-28  MORITA Hajime  <morrita@google.com>
1820
1821         [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker
1822         https://bugs.webkit.org/show_bug.cgi?id=89732
1823
1824         Reviewed by Dimitri Glazkov.
1825
1826         The constructor of NodeRenderingContext implements almost same
1827         logic as ComposedShadowTreeWalker::parent().  This change
1828         eliminates the duplication by employing ComposedShadowTreeWalker in the constructor.
1829
1830         ComposedShadowTreeWalker has same difference from
1831         NodeRenderingContext though. So this change also extends
1832         ComposedShadowTreeWalker to support these missing pieces, which
1833         are encapsulated in newly introduced ParentTranversalDetails
1834         class where:
1835
1836         - not only the parent, but also the insertion point of the child is returned,
1837         - resetStyleInheritance from the child-parent traversal is computed and
1838         - if the starting point is out of the composition, it returns null as a parent.
1839
1840         This change also inlines some ComposedShadowTreeWalker methods for speed.
1841
1842         No new tests. Covered by existing tests.
1843
1844         * WebCore.exp.in:
1845         * dom/ComposedShadowTreeWalker.cpp:
1846         (WebCore::shadowOfParent):
1847         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didTraverseInsertionPoint):
1848         (WebCore):
1849         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didTraverseShadowRoot):
1850         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::didFindNode):
1851         (WebCore::ComposedShadowTreeWalker::findParent):
1852         (WebCore::ComposedShadowTreeWalker::escapeFallbackContentElement):
1853         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
1854         (WebCore::ComposedShadowTreeWalker::traverseParent):
1855         (WebCore::ComposedShadowTreeWalker::traverseParentInCurrentTree):
1856         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
1857         * dom/ComposedShadowTreeWalker.h:
1858         (ParentTranversalDetails):
1859         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::ParentTranversalDetails):
1860         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::node):
1861         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::insertionPoint):
1862         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::resetStyleInheritance):
1863         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::outOfComposition):
1864         (WebCore::ComposedShadowTreeWalker::ParentTranversalDetails::childWasOutOfComposition):
1865         (ComposedShadowTreeWalker):
1866         (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
1867         (WebCore):
1868         * dom/NodeRenderingContext.cpp:
1869         (WebCore::NodeRenderingContext::NodeRenderingContext):
1870         (WebCore::NodeRenderingContext::nextRenderer):
1871         (WebCore::NodeRenderingContext::previousRenderer):
1872         (WebCore::NodeRenderingContext::parentRenderer):
1873         (WebCore::NodeRenderingContext::shouldCreateRenderer):
1874         (WebCore::NodeRenderingContext::isOnEncapsulationBoundary):
1875         * dom/NodeRenderingContext.h:
1876         (NodeRenderingContext):
1877         (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
1878         (WebCore::NodeRenderingContext::resetStyleInheritance):
1879         (WebCore::NodeRenderingContext::insertionPoint):
1880
1881 2012-06-28  Stephen White  <senorblanco@chromium.org>
1882
1883         Implement filter url() function.
1884         https://bugs.webkit.org/show_bug.cgi?id=72443
1885
1886         url() references can be internal, in which case the DOM nodes are
1887         retrieved directly from the current document, or external, in which
1888         case a CachedSVGDocument request is made, and the filter node build is
1889         deferred until the document is loaded.  WebKitSVGDocumentValue
1890         holds the CachedSVGDocument (if any) and the URL as a CSSValue,
1891         and is stored in the CSSValue chain as the argument to the reference
1892         filter.
1893
1894         One notable difference between internal and external references is
1895         that internal references will automatically update on an SVG filter node
1896         attribute change, while external references will not, since they live
1897         in a separate document.  This is consistent with the Mozilla
1898         implementation.  In order to make this work, the RenderLayer is made a
1899         client of the RenderSVGResourceContainer, and calls
1900         filterNeedsRepaint() when the SVG nodes are invalidated.
1901
1902         Some plumbing:  The CSS StyleResolver was refactored to load all
1903         all external resources (images, shaders and (now) SVG filters) in a
1904         single function, loadPendingResources().  The PlatformLayer typedef
1905         was moved out into its own file, in order to break a cyclic
1906         dependency.  SVGFilterBuilder was modified to accept the SourceGraphic
1907         and SourceAlpha FilterEffects in its constructor and factory function,
1908         rather than extracting them from the parent Filter.  (This is necessary
1909         so that the url() filter can correctly hook up its inputs from
1910         previous CSS filters.)
1911
1912         Reviewed by Dean Jackson.
1913
1914         Tests: css3/filters/effect-reference-external.html
1915                css3/filters/effect-reference-hw.html
1916                css3/filters/effect-reference-ordering.html
1917                css3/filters/effect-reference.html
1918
1919         * CMakeLists.txt:
1920         * GNUmakefile.list.am:
1921         * Target.pri:
1922         * WebCore.gypi:
1923         * WebCore.vcproj/WebCore.vcproj:
1924         * WebCore.xcodeproj/project.pbxproj:
1925         Add WebKitCSSSVGDocumentValue to the various build files.
1926         * css/CSSComputedStyleDeclaration.cpp:
1927         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
1928         Use the reference filter's url when getting the computed style for
1929         a reference filter.
1930         * css/CSSParser.cpp:
1931         (WebCore::CSSParser::parseFilter):
1932         Create the referenceFilterValue's argument as a
1933         WebKitCSSSVGDocumentValue instead of a CSS string.
1934         * css/CSSValue.cpp:
1935         (WebCore::CSSValue::cssText):
1936         Add support for WebKitCSSSVGDocumentValue.
1937         (WebCore::CSSValue::destroy):
1938         Add support for WebKitCSSSVGDocumentValue.
1939         * css/CSSValue.h:
1940         (WebCore::CSSValue::isWebKitCSSSVGDocumentValue):
1941         Add support for WebKitCSSSVGDocumentValue.
1942         * css/StyleResolver.cpp:
1943         (WebCore::StyleResolver::collectMatchingRulesForList):
1944         Keep track of pending SVG document references, and load them when
1945         necessary.
1946         * css/StyleResolver.h:
1947         * css/WebKitCSSSVGDocumentValue.cpp: Added.
1948         New CSSValue subclass for holding SVG document references.
1949         (WebCore::WebKitCSSSVGDocumentValue::WebKitCSSSVGDocumentValue):
1950         (WebCore::WebKitCSSSVGDocumentValue::~WebKitCSSSVGDocumentValue):
1951         (WebCore::WebKitCSSSVGDocumentValue::load):
1952         (WebCore::WebKitCSSSVGDocumentValue::customCssText):
1953         * css/WebKitCSSSVGDocumentValue.h: Added.
1954         (WebCore::WebKitCSSSVGDocumentValue::create):
1955         (WebCore::WebKitCSSSVGDocumentValue::cachedSVGDocument):
1956         (WebCore::WebKitCSSSVGDocumentValue::url):
1957         (WebCore::WebKitCSSSVGDocumentValue::loadRequested):
1958         * platform/graphics/GraphicsLayer.h:
1959         Refactor PlatformLayer out into its own file, to avoid circular
1960         includes.
1961         * platform/graphics/ImageBuffer.h:
1962         Include PlatformLayer.h instead of GraphicsLayer.h.
1963         * platform/graphics/PlatformLayer.h: Added.
1964         Refactor PlatformLayer out into its own file, to avoid circular
1965         includes.
1966         * platform/graphics/filters/FilterOperation.h:
1967         (WebCore::ReferenceFilterOperation::create):
1968         (WebCore::ReferenceFilterOperation::clone):
1969         (WebCore::ReferenceFilterOperation::url):
1970         (WebCore::ReferenceFilterOperation::fragment):
1971         (ReferenceFilterOperation):
1972         (WebCore::ReferenceFilterOperation::data):
1973         (WebCore::ReferenceFilterOperation::setData):
1974         (WebCore::ReferenceFilterOperation::operator==):
1975         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
1976         Augment ReferenceFilterOperation to maintain a data pointer,
1977         in order to preserve context while loading external SVG documents.
1978         Replace "reference" with "url" and "fragment" members, in order to
1979         ease retrieval of the appropriate DOM objects.
1980         * platform/graphics/filters/FilterOperations.cpp:
1981         (WebCore::FilterOperations::hasReferenceFilter):
1982         Convenience function for finding reference filters.
1983         * platform/graphics/filters/FilterOperations.h:
1984         (FilterOperations):
1985         * platform/mac/ScrollbarThemeMac.mm:
1986         Include GraphicsLayer.h explicitly, since ImageBuffer.h no longer
1987         includes it (and only includes PlatformLayer.h).
1988         * rendering/FilterEffectRenderer.cpp:
1989         (WebCore::FilterEffectRenderer::buildReferenceFilter):
1990         Utility function to build a FilterEffect node graph for a
1991         ReferenceFilterOperation.
1992         (WebCore::FilterEffectRenderer::build):
1993         Call the above builder function for ReferenceFilterOperations.
1994         * rendering/FilterEffectRenderer.h:
1995         * rendering/RenderLayer.cpp:
1996         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
1997         If we have reference filters, update them along with other filters.
1998         (WebCore::RenderLayer::filterNeedsRepaint):
1999         * rendering/RenderLayerFilterInfo.cpp:
2000         (WebCore::RenderLayerFilterInfo::~RenderLayerFilterInfo):
2001         (WebCore::RenderLayerFilterInfo::notifyFinished):
2002         Implement callback function when external SVGDocuments are loaded.
2003         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
2004         Add the FilterInfo as a client to be called when SVGDocuments are
2005         loaded.
2006         (WebCore::RenderLayerFilterInfo::removeReferenceFilterClients):
2007         Remove this from the list of notified clients.
2008         * rendering/RenderLayerFilterInfo.h:
2009         Add new member vars for tracking internal and external SVG
2010         references, so we can remove ourselves as a client when done.
2011         * rendering/svg/RenderSVGResourceContainer.cpp:
2012         (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
2013         When marking client DOM nodes for repaint, also mark any RenderLayers
2014         referring to this DOM tree via filters as needing repaint.
2015         (WebCore::RenderSVGResourceContainer::addClientRenderLayer):
2016         (WebCore::RenderSVGResourceContainer::removeClientRenderLayer):
2017         * rendering/svg/RenderSVGResourceContainer.h:
2018         Maintain a list of RenderLayer clients on each SVG resource container,
2019         and turn SVG DOM repaint notifications into filter repaint (CSS)
2020         notifications.
2021         * rendering/svg/RenderSVGResourceFilter.cpp:
2022         (WebCore::RenderSVGResourceFilter::buildPrimitives):
2023         Construct a SourceGraphic and SourceAlpha node explicitly for the
2024         SVG builder case.
2025         * svg/graphics/filters/SVGFilterBuilder.cpp:
2026         (WebCore::SVGFilterBuilder::SVGFilterBuilder):
2027         * svg/graphics/filters/SVGFilterBuilder.h:
2028         (WebCore::SVGFilterBuilder::create):
2029         Add the SourceGraphic and SourceAlpha as parameters to the constructor
2030         and create() methods, so they can be supplied by the caller.
2031
2032 2012-06-28  Kenichi Ishibashi  <bashi@chromium.org>
2033
2034         [Chromium] CTFontCopyTable of MacOSX10.5 SDK doesn't work for layout tables
2035         https://bugs.webkit.org/show_bug.cgi?id=90235
2036
2037         Reviewed by Kent Tamura.
2038
2039         Use CGFontCopyTableForTag instead.
2040
2041         No new tests. css3/font-feature-settings-rendering.html should pass. I'll rebase expectations once bots get the result.
2042
2043         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp:
2044         (WebCore::harfbuzzCoreTextGetTable):
2045
2046 2012-06-28  Philip Rogers  <pdr@google.com>
2047
2048         Add preventative assert in SVGTRefElement
2049         https://bugs.webkit.org/show_bug.cgi?id=90203
2050
2051         Reviewed by Abhishek Arya.
2052
2053         SVGTRefElement::detachTarget() adds a pending resource via addPendingResource.
2054         Due to some recent bugs in this area, an assert is being added to prevent
2055         users from calling detachTarget when not in a document. Doing
2056         so would create a bug such as in WK90042.
2057
2058         This assert will not fire currently because detachTarget is only called after
2059         a DOMNodeRemovedFromDocumentEvent event fires, which only comes from
2060         dispatchChildRemovalEvents when the node is in a document.
2061
2062         * svg/SVGTRefElement.cpp:
2063         (WebCore::SVGTRefElement::detachTarget):
2064
2065 2012-06-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2066
2067         [Qt] Remove unnecessary AffineTransform calls
2068         https://bugs.webkit.org/show_bug.cgi?id=90178
2069
2070         Reviewed by Noam Rosenthal.
2071
2072         Qt currently ignores the const AffineTransform& parameter on
2073         Pattern::createPlatformPattern, so removing it from all its Qt calls and
2074         changing the function signature if platform is Qt.
2075
2076         * platform/graphics/Pattern.h:
2077         (Pattern):
2078         * platform/graphics/qt/FontQt.cpp:
2079         (WebCore::fillPenForContext):
2080         (WebCore::strokePenForContext):
2081         * platform/graphics/qt/FontQt4.cpp:
2082         (WebCore::fillPenForContext):
2083         (WebCore::strokePenForContext):
2084         * platform/graphics/qt/GraphicsContextQt.cpp:
2085         (WebCore::GraphicsContext::fillPath):
2086         (WebCore::GraphicsContext::strokePath):
2087         (WebCore::drawRepeatPattern):
2088         * platform/graphics/qt/PatternQt.cpp:
2089         (WebCore::Pattern::createPlatformPattern):
2090
2091 2012-06-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
2092
2093         [Qt] When uploading an opaque image to a texture for TextureMapper, unnecessary alpha operations take place
2094         https://bugs.webkit.org/show_bug.cgi?id=90229
2095
2096         Reviewed by Luiz Agostini.
2097
2098         For opaque web content in WebKit2, we use the RGB32 image format. When we special-case
2099         it in GraphicsContext3DQt, we can avoid any alpha operations and perform a regular copy.
2100
2101         Covered existing API tests, as this code path is always used when rendering.
2102
2103         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2104         (WebCore::GraphicsContext3D::getImageData):
2105
2106 2012-06-28  James Robinson  <jamesr@chromium.org>
2107
2108         [chromium] Compile chromium compositor implementation files into separate .lib
2109         https://bugs.webkit.org/show_bug.cgi?id=90233
2110
2111         Reviewed by Adam Barth.
2112
2113         * WebCore.gyp/WebCore.gyp:
2114
2115 2012-06-28  Erik Arvidsson  <arv@chromium.org>
2116
2117         [V8] NodeList wrappers are not kept alive as needed
2118         https://bugs.webkit.org/show_bug.cgi?id=90194
2119
2120         Reviewed by Ojan Vafai.
2121
2122         We need to add custom reachability code for DynamicNodeLists. If the owner of
2123         a DynamicNodeList is reachable then the DynamicNodeList must also be reachable.
2124
2125         Test: fast/dom/NodeList/nodelist-reachable.html
2126
2127         * bindings/v8/custom/V8NodeListCustom.cpp:
2128         (WebCore::V8NodeList::visitDOMWrapper): AddImplicitReferences from the owner wrapper.
2129         (WebCore):
2130         * dom/NodeList.idl:
2131
2132 2012-06-28  Elliott Sprehn  <esprehn@gmail.com>
2133
2134         frameborder="no" on frameset is ignored if border attribute set
2135         https://bugs.webkit.org/show_bug.cgi?id=17767
2136
2137         Reviewed by Tony Chang.
2138
2139         Fixes <frameset> frameborder and border handling. Previously we'd
2140         override the frameborder=no setting if border was set. We also
2141         treated frameborder="anything" the same as frameborder=0 since we
2142         we just converted it to a number so frameborder=yes was incorrectly
2143         treated the same as frameborder=no.
2144
2145         Tests: fast/frames/frameset-frameborder-boolean-values.html
2146                fast/frames/frameset-frameborder-inheritance.html
2147                fast/frames/frameset-frameborder-overrides-border.html
2148
2149         * html/HTMLFrameSetElement.cpp: Proper parsing of yes,no,1,0 values.
2150         (WebCore::HTMLFrameSetElement::parseAttribute):
2151         * html/HTMLFrameSetElement.h:
2152         (WebCore::HTMLFrameSetElement::border): Border should be 0 if frameborder=no.
2153
2154 2012-06-28  Joshua Bell  <jsbell@chromium.org>
2155
2156         IndexedDB: Implement IDBTransaction internal active flag
2157         https://bugs.webkit.org/show_bug.cgi?id=89379
2158
2159         Reviewed by Tony Chang.
2160
2161         IDB transactions should only be "active" during IDB success/error callbacks;
2162         attempts to make new requests otherwise (e.g. in a setTimeout callback)
2163         should fail even if the transaction has not yet finished. Implement this logic,
2164         and the closely related requirement that transactions are deactivated when
2165         the context they were created in returns to the event loop, and finally that
2166         when so deactivated they should commit rather than abort (as previously
2167         implemented) if no requests have been filed.
2168
2169         Tests: storage/indexeddb/transaction-active-flag.html
2170                storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html
2171                storage/indexeddb/transaction-complete-with-js-recursion.html
2172                storage/indexeddb/transaction-complete-workers.html
2173
2174         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: Simplify API.
2175         (WebCore::transactions):
2176         (WebCore::IDBPendingTransactionMonitor::addNewTransaction):
2177         (WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):
2178         * Modules/indexeddb/IDBPendingTransactionMonitor.h:
2179         (WebCore):
2180         (IDBPendingTransactionMonitor):
2181         * Modules/indexeddb/IDBRequest.cpp: Unregisters from transaction when done,
2182         not on destruction. No longer responsible for working with the pending monitor.
2183         (WebCore::IDBRequest::IDBRequest):
2184         (WebCore::IDBRequest::~IDBRequest):
2185         (WebCore::IDBRequest::markEarlyDeath):
2186         (WebCore::IDBRequest::resetReadyState):
2187         (WebCore::IDBRequest::onSuccess):
2188         (WebCore::IDBRequest::dispatchEvent): Set active flag on transaction during callback.
2189         * Modules/indexeddb/IDBTransaction.cpp: Use state enum to better track lifecycle, and
2190         take ownership of relationship with pending monitor.
2191         (WebCore::IDBTransaction::IDBTransaction): Special cases for version change
2192         transactions.
2193         (WebCore::IDBTransaction::~IDBTransaction):
2194         (WebCore::IDBTransaction::error):
2195         (WebCore::IDBTransaction::setError):
2196         (WebCore::IDBTransaction::objectStore):
2197         (WebCore::IDBTransaction::objectStoreCreated):
2198         (WebCore::IDBTransaction::objectStoreDeleted):
2199         (WebCore::IDBTransaction::setActive): Let IDBRequest and IDBPendingTransactionMonitor
2200         toggle the active state. Needs some smarts because (1) state may move to Finishing during
2201         the request's dispatch phase due to an implicit/explicit abort, and (2) a monitor call
2202         will only trigger a commit if the transaction hasn't had any requests filed.
2203         (WebCore):
2204         (WebCore::IDBTransaction::abort):
2205         (WebCore::IDBTransaction::registerRequest):
2206         (WebCore::IDBTransaction::unregisterRequest):
2207         (WebCore::IDBTransaction::onAbort):
2208         (WebCore::IDBTransaction::onComplete):
2209         (WebCore::IDBTransaction::hasPendingActivity):
2210         (WebCore::IDBTransaction::dispatchEvent):
2211         (WebCore::IDBTransaction::canSuspend):
2212         (WebCore::IDBTransaction::enqueueEvent):
2213         * Modules/indexeddb/IDBTransaction.h:
2214         (WebCore::IDBTransaction::isFinished):
2215         (IDBTransaction):
2216         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
2217         (WebCore::IDBTransactionBackendImpl::commit): Allow explicit commit() calls from the front end
2218         if no requests have been filed.
2219         * Modules/indexeddb/IDBTransactionBackendInterface.h:
2220         (IDBTransactionBackendInterface): Expose commit() method.
2221         * bindings/js/JSMainThreadExecState.cpp:
2222         (WebCore::JSMainThreadExecState::didLeaveScriptContext): Change target function name.
2223         * bindings/v8/V8RecursionScope.cpp:
2224         (WebCore::V8RecursionScope::didLeaveScriptContext): Change target function name.
2225
2226 2012-06-28  Philip Rogers  <pdr@google.com>
2227
2228         Prevent crash in animate resource handling
2229         https://bugs.webkit.org/show_bug.cgi?id=90042
2230
2231         Reviewed by Abhishek Arya.
2232
2233         This patch adds a check that we are in a document before registering animation
2234         resources and creating a target element in SVGSMILElement. This prevents a crash where
2235         we would register resources and create the target when we were not in a document
2236         but fail to deregister / reset the target when we were removed from a document.
2237         In failing to reset the target, we can crash when trying to deregister resources that
2238         were not created after being inserted into a document and then removed.
2239
2240         The existence of m_targetResources and registered animation resources is now
2241         tied to being in a document.
2242
2243         Test: svg/custom/animate-reference-crash.html
2244
2245         * svg/animation/SVGSMILElement.cpp:
2246         (WebCore::SVGSMILElement::targetElement):
2247
2248 2012-06-28  Joshua Bell  <jsbell@chromium.org>
2249
2250         IndexedDB: IDBDatabase should have a close pending field.
2251         https://bugs.webkit.org/show_bug.cgi?id=71129
2252
2253         Reviewed by Tony Chang.
2254
2255         Handle the IDB spec case that "versionchange" events should not be fired 
2256         against connections that have the internal "closePending" flag set but 
2257         are not yet closed due to running transactions.
2258
2259         Test: storage/indexeddb/database-closepending-flag.html
2260
2261         * Modules/indexeddb/IDBDatabase.cpp:
2262         (WebCore::IDBDatabase::onVersionChange):
2263
2264 2012-06-28  Adrienne Walker  <enne@google.com>
2265
2266         [chromium] Split WebScrollbar into WebPluginScrollbar and WebScrollbar
2267         https://bugs.webkit.org/show_bug.cgi?id=90117
2268
2269         Reviewed by James Robinson.
2270
2271         Make WebCore also depend on Platform.
2272
2273         * WebCore.gyp/WebCore.gyp:
2274
2275 2012-06-28  Hayato Ito  <hayato@chromium.org>
2276
2277         CompositeShadowTreeWalker should use InsertionPoint::hasDistribution() instead of InsertionPoint::isActive().
2278         https://bugs.webkit.org/show_bug.cgi?id=89177
2279
2280         Reviewed by Dimitri Glazkov.
2281
2282         Prevents ComposedShadowTreeWalker from escaping out of an
2283         insertion point (which has distributed nodes) from a non-used
2284         fallback element in the insertion point.  Such a fallback element
2285         should be treated as in an orphaned subtree.
2286
2287         ComposedShadowTreeParentWalker will be also fixed in a follow-up patch.
2288
2289         Test: fast/dom/shadow/composed-shadow-tree-walker.html
2290
2291         * dom/ComposedShadowTreeWalker.cpp:
2292         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
2293
2294 2012-06-27  Ryosuke Niwa  <rniwa@webkit.org>
2295
2296         Cleanup HTMLFormCollection
2297         https://bugs.webkit.org/show_bug.cgi?id=90111
2298
2299         Reviewed by Andreas Kling.
2300
2301         Got rid of getNamedItem and renamed getNamedFormItem to firstNamedItem and got rid of duplicateNumber argument since
2302         it's always 0. Also made it a static local function. In addition, removed nextItem() since it's not used anywhere.
2303
2304         WebKit API Test: WebKit1.HTMLFormCollectionNamedItemTest
2305
2306         * html/HTMLFormCollection.cpp:
2307         (WebCore::firstNamedItem):
2308         (WebCore):
2309         (WebCore::HTMLFormCollection::namedItem):
2310         * html/HTMLFormCollection.h:
2311         (HTMLFormCollection):
2312
2313 2012-06-28  Alec Flett  <alecflett@chromium.org>
2314
2315         IndexedDB: Hook up render-side key ASSERTing for get()
2316         https://bugs.webkit.org/show_bug.cgi?id=90001
2317
2318         Reviewed by Tony Chang.
2319
2320         Hook up the new onSuccess and add it to the interface. For now,
2321         simply assert that the right value is set. Add the same assertion
2322         logic in the value-construction logic when the cursor advances.
2323
2324         No new tests, existing tests verify this refactor is correct.
2325
2326         * Modules/indexeddb/IDBCallbacks.h:
2327         (IDBCallbacks):
2328         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2329         (WebCore::IDBObjectStoreBackendImpl::getInternal):
2330         * Modules/indexeddb/IDBRequest.cpp:
2331         (WebCore):
2332         (WebCore::IDBRequest::onSuccess):
2333         * Modules/indexeddb/IDBRequest.h:
2334         * bindings/v8/IDBBindingUtilities.cpp:
2335         (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
2336         * inspector/InspectorIndexedDBAgent.cpp:
2337         (WebCore):
2338
2339 2012-06-28  Gregg Tavares  <gman@google.com>
2340
2341         Add support for DEPTH_STENCIL to WEBGL_depth_texture
2342         https://bugs.webkit.org/show_bug.cgi?id=90109
2343
2344         Reviewed by Kenneth Russell.
2345
2346         * html/canvas/WebGLDepthTexture.idl:
2347         * html/canvas/WebGLFramebuffer.cpp:
2348         * html/canvas/WebGLRenderingContext.cpp:
2349         (WebCore):
2350         (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
2351
2352 2012-06-28  James Robinson  <jamesr@chromium.org>
2353
2354         [chromium] Move chromium compositor implementation files into separate section in WebCore.gypi
2355         https://bugs.webkit.org/show_bug.cgi?id=90201
2356
2357         Reviewed by Adam Barth.
2358
2359         This moves the chromium compositor implementation files to a separate gyp variable to make future changes
2360         easier. The files still all link into webcore_platform.lib, as before.
2361
2362         * WebCore.gyp/WebCore.gyp:
2363         * WebCore.gypi:
2364
2365 2012-06-28  Christophe Dumez  <christophe.dumez@intel.com>
2366
2367         [EFL] Use Eina_Module API instead of dlopen in PluginPackageEfl
2368         https://bugs.webkit.org/show_bug.cgi?id=89972
2369
2370         Reviewed by Antonio Gomes.
2371
2372         Use convenience helpers in Eina_Module to load plugins instead
2373         of POSIX dlopen().
2374
2375         No new tests, behavior has not changed.
2376
2377         * platform/FileSystem.h:
2378         (WebCore):
2379         * platform/efl/FileSystemEfl.cpp:
2380         (WebCore::unloadModule):
2381         * plugins/efl/PluginPackageEfl.cpp:
2382         (WebCore::PluginPackage::load):
2383
2384 2012-06-28  Jocelyn Turcotte  <turcotte.j@gmail.com>
2385
2386         [Qt] Fix TextureMapper rendering of GraphicsSurface on Mac
2387         https://bugs.webkit.org/show_bug.cgi?id=90154
2388
2389         Reviewed by Noam Rosenthal.
2390
2391         Fix a regression introduced in r120608.
2392         texture2DRect takes texel coordinates, unlike texture2D which needs normalized coordinates.
2393
2394         Pass an additional textureSize uniform and multiply it by the normalized coordinates.
2395
2396         * platform/graphics/texmap/TextureMapperGL.cpp:
2397         (WebCore::TextureMapperGL::drawTextureRectangleARB):
2398         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
2399         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
2400         (WebCore::TextureMapperShaderProgramRectSimple::TextureMapperShaderProgramRectSimple):
2401         * platform/graphics/texmap/TextureMapperShaderManager.h:
2402         (WebCore::TextureMapperShaderProgram::textureSizeLocation):
2403         (TextureMapperShaderProgram):
2404
2405 2012-06-28  Simon Fraser  <simon.fraser@apple.com>
2406
2407         Improve compositing logging output
2408         https://bugs.webkit.org/show_bug.cgi?id=90199
2409
2410         Reviewed by Tim Horton (w00t!).
2411
2412         Improve the compositing logging channel output in a few
2413         useful ways:
2414         1. Report memory use, rather than megapixels
2415         2. Show element class names
2416
2417         * platform/graphics/GraphicsLayer.cpp:
2418         (WebCore::GraphicsLayer::backingStoreMemoryEstimate):
2419         * platform/graphics/GraphicsLayer.h:
2420         (GraphicsLayer):
2421         * platform/graphics/ca/GraphicsLayerCA.cpp:
2422         (WebCore::GraphicsLayerCA::backingStoreMemoryEstimate):
2423         * platform/graphics/ca/GraphicsLayerCA.h:
2424         (GraphicsLayerCA):
2425         * rendering/RenderLayerBacking.cpp:
2426         (WebCore::RenderLayerBacking::nameForLayer):
2427         (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
2428         * rendering/RenderLayerBacking.h:
2429         (RenderLayerBacking):
2430         * rendering/RenderLayerCompositor.cpp:
2431         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2432         (WebCore::RenderLayerCompositor::updateCompositingLayers):
2433         (WebCore::RenderLayerCompositor::logLayerInfo):
2434         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2435         * rendering/RenderLayerCompositor.h:
2436         (RenderLayerCompositor):
2437
2438 2012-06-28  James Robinson  <jamesr@chromium.org>
2439
2440         [chromium] Fix up more includes in compositor code
2441         https://bugs.webkit.org/show_bug.cgi?id=90200
2442
2443         Reviewed by Adrienne Walker.
2444
2445         Adds includes we are using and removes ones that we aren't using.
2446
2447         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
2448         * platform/graphics/chromium/ContentLayerChromium.cpp:
2449         * platform/graphics/chromium/ProgramBinding.cpp:
2450         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2451         * platform/graphics/chromium/cc/CCGraphicsContext.h:
2452         * platform/graphics/chromium/cc/CCRenderSurface.h:
2453         (WebCore):
2454         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
2455
2456 2012-06-28  Andrei Onea  <onea@adobe.com>
2457
2458         [CSSRegions]Rename NamedFlow::contentNodes to NamedFlow::getContent()
2459         https://bugs.webkit.org/show_bug.cgi?id=90163
2460
2461         Reviewed by Andreas Kling.
2462
2463         Latest CSS Regions spec defines the NamedFlow interface as having a function named getContent,
2464         rather than an attribute named contentNodes.
2465         http://www.w3.org/TR/css3-regions/#the-namedflow-interface
2466
2467         Test: fast/regions/webkit-named-flow-get-content.html
2468
2469         * dom/WebKitNamedFlow.cpp:
2470         (WebCore::WebKitNamedFlow::getContent):
2471         * dom/WebKitNamedFlow.h:
2472         (WebKitNamedFlow):
2473         * dom/WebKitNamedFlow.idl:
2474
2475 2012-06-28  Ryosuke Niwa  <rniwa@webkit.org>
2476
2477         REGRESSION(r121232): named properties on document and window may return wrong object
2478         https://bugs.webkit.org/show_bug.cgi?id=90133
2479
2480         Reviewed by Andreas Kling.
2481
2482         Fixed the bug. Also replaced hasAnyItem by isEmpty (hasAnyItem() is equivalent to !isEmpty()).
2483
2484         Test: fast/dom/HTMLDocument/named-item-multiple-match.html
2485
2486         * bindings/js/JSHTMLDocumentCustom.cpp:
2487         (WebCore::JSHTMLDocument::nameGetter):
2488         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2489         (WebCore::V8DOMWindow::namedPropertyGetter):
2490         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2491         (WebCore::V8HTMLDocument::GetNamedProperty):
2492         * html/HTMLCollection.h:
2493         (WebCore::HTMLCollection::isEmpty):
2494         (WebCore::HTMLCollection::hasExactlyOneItem):
2495
2496 2012-06-28  Zeev Lieber  <zlieber@chromium.org>
2497
2498         [Skia] Computing the resampling mode ignores scale applied to the canvas
2499         https://bugs.webkit.org/show_bug.cgi?id=72073
2500
2501         Reviewed by Stephen White.
2502
2503         Re-basing earlier patch by Daniel Sievers; updated tests.
2504
2505         Take into account canvas scale when computing image resampling mode.
2506
2507         When drawing a bitmap and computing the best resampling mode based
2508         on the requested scale, take into account CSS scale and page scale
2509         that are applied to the canvas. This allows for single-pass scaling
2510         in potentially better quality (RESAMPLE_AWESOME) and also takes
2511         better advantage of the scaled image cache in that codepath.
2512
2513         Existing tests updated to expect different resampling method (and
2514         therefore a different image) whenever canvas scaling changes.
2515
2516         * platform/graphics/skia/ImageSkia.cpp:
2517         (WebCore::paintSkBitmap):
2518
2519 2012-06-28  James Robinson  <jamesr@chromium.org>
2520
2521         [chromium] Should schedule a commit when dropping contents textures
2522         https://bugs.webkit.org/show_bug.cgi?id=90031
2523
2524         Reviewed by Adrienne Walker.
2525
2526         If we're dropping contents textures on the impl thread, we need to schedule a commit to pick up new contents at
2527         the next commit opportunity. Also adds some traces to make debugging issues like this easier.
2528
2529         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2530         (WebCore::CCLayerTreeHostImpl::commitComplete):
2531         (WebCore::CCLayerTreeHostImpl::canDraw):
2532         (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
2533         * platform/graphics/chromium/cc/CCScheduler.cpp:
2534         (WebCore::CCScheduler::processScheduledActions):
2535
2536 2012-06-28  Antti Koivisto  <antti@apple.com>
2537
2538         Don't malloc RenderGeometryMap steps individually
2539         https://bugs.webkit.org/show_bug.cgi?id=90074
2540
2541         Reviewed by Simon Fraser.
2542
2543         Mallocs and frees for steps under RenderGeometryMap::pus/popMappingsToAncestor can total ~2% of the profile when animating transforms.
2544
2545         * rendering/RenderGeometryMap.cpp:
2546         (WebCore):
2547         (WebCore::RenderGeometryMap::absolutePoint):
2548         (WebCore::RenderGeometryMap::absoluteRect):
2549         (WebCore::RenderGeometryMap::mapToAbsolute):
2550         (WebCore::RenderGeometryMap::push):
2551         (WebCore::RenderGeometryMap::pushView):
2552         (WebCore::RenderGeometryMap::popMappingsToAncestor):
2553         * rendering/RenderGeometryMap.h:
2554         (WebCore):
2555         (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
2556         
2557             Move to header.
2558
2559         (RenderGeometryMapStep):
2560         (RenderGeometryMap):
2561         
2562             Make the step vector hold RenderGeometryMapSteps instead of RenderGeometryMapStep*'s.
2563
2564         (WTF):
2565         
2566             Give RenderGeometryMapSteps SimpleClassVectorTraits. This is needed for dealing with OwnPtr in the struct (and makes it faster too).
2567             The type is simple enought to move by memcpy.
2568
2569 2012-06-28  Kalev Lember  <kalevlember@gmail.com>
2570
2571         [GTK] Remove Windows support from plugins/gtk/
2572         https://bugs.webkit.org/show_bug.cgi?id=89501
2573
2574         Reviewed by Martin Robinson.
2575
2576         The GTK+ port now uses plugins/gtk/ on Windows, which leaves
2577         PluginPackageGtk.cpp and PluginViewGtk.cpp solely for XP_UNIX platforms.
2578
2579         * plugins/gtk/PluginPackageGtk.cpp:
2580         (WebCore::PluginPackage::fetchInfo):
2581         (WebCore::webkitgtkXError):
2582         (WebCore::PluginPackage::load):
2583         * plugins/gtk/PluginViewGtk.cpp:
2584         (WebCore::getRootWindow):
2585         (WebCore::PluginView::updatePluginWidget):
2586         (WebCore::PluginView::paint):
2587         (WebCore::PluginView::handleKeyboardEvent):
2588         (WebCore::setXCrossingEventSpecificFields):
2589         (WebCore::PluginView::handleMouseEvent):
2590         (WebCore::PluginView::handleFocusOutEvent):
2591         (WebCore::PluginView::setNPWindowIfNeeded):
2592         (WebCore::PluginView::platformGetValueStatic):
2593         (WebCore::PluginView::platformGetValue):
2594         (WebCore::getPluginDisplay):
2595         (WebCore::getVisualAndColormap):
2596         (WebCore::PluginView::platformStart):
2597         (WebCore::PluginView::platformDestroy):
2598
2599 2012-06-28  Simon Fraser  <simon.fraser@apple.com>
2600
2601         Change FrameView::scrollContentsFastPath to use m_fixedObjects
2602         https://bugs.webkit.org/show_bug.cgi?id=90045
2603
2604         Reviewed by James Robinson.
2605         
2606         FrameView now has a hash set of fixed-position objects, so use
2607         that instead of RenderBlock::positionedObjects(); we'll avoid traversing
2608         through absolutely positioned objects, and this will work better for sticky
2609         positioning in future.
2610
2611         No behavior change, so no new tests.
2612
2613         * page/FrameView.cpp:
2614         (WebCore::FrameView::scrollContentsFastPath):
2615
2616 2012-06-28  Tony Chang  <tony@chromium.org>
2617
2618         Split flex into flex-grow/flex-shrink/flex-basis
2619         https://bugs.webkit.org/show_bug.cgi?id=86525
2620
2621         Reviewed by Ojan Vafai.
2622
2623         Split flex into 3 separate properties per the spec:
2624         http://dev.w3.org/csswg/css3-flexbox/#flex-components
2625
2626         Tests: css3/flexbox/flex-longhand-parsing.html
2627                css3/flexbox/flex-property-parsing.html: Updated test results.
2628
2629         * css/CSSComputedStyleDeclaration.cpp:
2630         (WebCore): -webkit-flex is no longer enumerable.
2631         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add new css property names and use
2632         getCSSPropertyValuesForShorthandProperties for WebkitFlex. Also sort flex propery names.
2633         * css/CSSParser.cpp:
2634         (WebCore::isValidKeywordPropertyAndValue): Fix indent.
2635         (WebCore::CSSParser::parseValue): Add parsing for new properties and handle -webkit-flex: none.
2636         (WebCore::CSSParser::parseFlex): Switch to new names (positive -> grow, negative -> shrink,
2637         preferred size -> basis) and assign to longhand properties.
2638         * css/CSSParser.h:
2639         * css/CSSProperty.cpp:
2640         (WebCore::CSSProperty::isInheritedProperty): Add new properties.
2641         * css/CSSPropertyNames.in: Add new properties.
2642         * css/StyleBuilder.cpp:
2643         (WebCore::StyleBuilder::StyleBuilder): Delete special handling of applying flex and just use shorthand handlers.
2644         * css/StylePropertySet.cpp:
2645         (WebCore::StylePropertySet::getPropertyValue): Add new shorthand.
2646         (WebCore::StylePropertySet::asText):
2647         * css/StylePropertyShorthand.cpp:
2648         (WebCore::webkitFlexShorthand): Add new shorthand.
2649         (WebCore::shorthandForProperty):
2650         * css/StylePropertyShorthand.h:
2651         * css/StyleResolver.cpp:
2652         (WebCore::StyleResolver::collectMatchingRulesForList): Add to list of properties applied by StyleBuilder.
2653         Handle initial and inherit for flex.
2654
2655 2012-06-28  Kalev Lember  <kalevlember@gmail.com>
2656
2657         [GTK][Win]: Fix plugin drawing to an offscreen buffer
2658         https://bugs.webkit.org/show_bug.cgi?id=89499
2659
2660         Reviewed by Brent Fulgham.
2661
2662         Take into account that the GTK+ port draws to a backing store and adjust
2663         the target rectangle calculation accordingly.
2664
2665         * plugins/win/PluginViewWin.cpp:
2666         (WebCore::PluginView::paint):
2667         (WebCore::PluginView::setNPWindowRect):
2668
2669 2012-06-28  Kentaro Hara  <haraken@chromium.org>
2670
2671         Optimize Dromaeo/dom-attr.html by speeding up Element::getAttribute()
2672         https://bugs.webkit.org/show_bug.cgi?id=90174
2673
2674         Reviewed by Adam Barth.
2675
2676         This patch improves performance of Dromaeo/dom-attr.html by 4.0%.
2677         The patch improves performance of getAttribute() and JavaScript
2678         property setter for DOM objects (e.g. 'div.foo = 123').
2679         The performance improvement becomes larger, as the number of
2680         attributes defined on the DOM object increases.
2681
2682         Without the patch in Chromium/Linux (runs/s)
2683         7679.4, 7739.7, 7634.0, 7726.4, 7663.9
2684
2685         With the patch in Chromium/Linux (runs/s)
2686         7977.7, 8032.2, 8112.8, 7948.1, 7924.5
2687
2688         This patch just changes a type of 'name' of Element::getAttribute(String& name)
2689         from String& to AtomicString&.
2690
2691         The key observation is that AtomicString(String& x) is faster than
2692         operator==(String& x, AtomicString& y). AtomicString(String& x) calculates
2693         a hash of a given String and adds it to a hash table. The calculation
2694         complexity is O(the length of x). On the other hand,
2695         operator==(String& x, AtomicString& y) compares a String and an AtomicString by
2696         StringImpl::equal(StringImpl*, StringImpl*), the calculation complexity of
2697         which is O(2 * min(the length of x, the length of y)).
2698         In addition, the comparison logic is more complicated than the logic
2699         of calculating the hash. Consequently, AtomicString(String& x) is
2700         faster than operator==(String& x, AtomicString& y).
2701
2702         Keeping that in mind, let's estimate the performance of
2703         Element::getAttribute("class") for <div id="A" lang="B" title="C" class="D" dir="E">.
2704         Here "id", "lang", "title", "class" and "dir" are stored as AtomicStrings
2705         in QualifiedName::localName(). Initially, "class" in Element::getAttribute("class")
2706         is a String.
2707
2708         If we use Element::getAttribute(String& name) (i.e. without the patch),
2709         ElementAttributeData::getAttributeItemIndex() executes four
2710         operator==(String&, AtomicString&) by the time it finds the "class" attribute:
2711
2712         (1) if ("class" == "id")       // operator==(String&, AtomicString&)
2713         (2) if ("class" == "lang")     // operator==(String&, AtomicString&)
2714         (3) if ("class" == "title")    // operator==(String&, AtomicString&)
2715         (4) if ("class" == "class")    // operator==(String&, AtomicString&)
2716
2717         On the other hand, if we use Element::getAttribute(AtomicString& name)
2718         (i.e. with the patch), ElementAttributeData::getAttributeItemIndex()
2719         executes one AtomicString(String&) and four operator==(AtomicString&, AtomicString&)
2720         by the time it finds the "class" attribute:
2721
2722         (1) AtomicString("class")      // AtomicString(String&)
2723         (2) if ("class" == "id")       // operator==(AtomicString&, AtomicString&)
2724         (3) if ("class" == "lang")     // operator==(AtomicString&, AtomicString&)
2725         (4) if ("class" == "title")    // operator==(AtomicString&, AtomicString&)
2726         (5) if ("class" == "class")    // operator==(AtomicString&, AtomicString&)
2727
2728         Considering that the overhead of operator==(AtomicString&, AtomicString&) is close
2729         to 0 since it is just a pointer comparison, the latter approach is faster than
2730         the former approach.
2731
2732         Performance improvement will be large for elements that have multiple attributes,
2733         but it is faster even for elements that have only one attribute.
2734         For exmaple, Dromaeo/dom-attr.html tests getAttribute() for an element that has
2735         only one attribute, the result shows 4.0% improvement.
2736
2737         Another example optimized by this patch is 'div.foo = 123', where foo is not
2738         an attribute of div. In this case, before 123 is set, JavaScript calls back
2739         Element::getAttribute() to check whether 'foo' is defined on div by
2740         scanning all the attributes of div.
2741
2742         No tests. No change in behavior.
2743
2744         * dom/Element.cpp:
2745         (WebCore::Element::getAttribute):
2746         * dom/Element.h:
2747         (Element):
2748         (WebCore::Element::getAttributeItemIndex):
2749         * dom/ElementAttributeData.cpp:
2750         (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
2751         * dom/ElementAttributeData.h:
2752         (ElementAttributeData):
2753         (WebCore::ElementAttributeData::getAttributeItem):
2754         (WebCore::ElementAttributeData::getAttributeItemIndex):
2755
2756 2012-06-28  Hans Wennborg  <hans@chromium.org>
2757
2758         Speech JavaScript API: Don't dispatch end event after ActiveDOMObject::stop()
2759         https://bugs.webkit.org/show_bug.cgi?id=90176
2760
2761         Reviewed by Adam Barth.
2762
2763         It is probably not safe to dispatch an event on an object that has
2764         been ActiveDOMObject::stop()'ed.
2765
2766         This used to happen in the navigate-away.html test, which I believe
2767         then caused speechgrammar-basics.html (which was typically run
2768         afterwards, by the same worker), to crash flakily. See Bug 89717.
2769
2770         Test: speechgrammar-basics.html should no longer be flaky.
2771
2772         * Modules/speech/SpeechRecognition.cpp:
2773         (WebCore::SpeechRecognition::didEnd):
2774         (WebCore::SpeechRecognition::stop):
2775         (WebCore::SpeechRecognition::SpeechRecognition):
2776         * Modules/speech/SpeechRecognition.h:
2777
2778 2012-06-28  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
2779
2780         [GTK] [WK2] Memory leak in ResourceHandleSoup.cpp
2781         https://bugs.webkit.org/show_bug.cgi?id=90168
2782
2783         Reviewed by Martin Robinson.
2784
2785         Fixed a memory leak in WebCoreSynchronousLoader by using adoptGRef
2786         instead of just getting new reference of GMainLoop.
2787
2788         No new tests. No change in behavior.
2789
2790         * platform/network/soup/ResourceHandleSoup.cpp:
2791         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
2792
2793 2012-06-27  Dana Jansens  <danakj@chromium.org>
2794
2795         [chromium] Do not multiply bounds by contentsScale in TiledLayerChromium and CanvasLayerTextureUpdater
2796         https://bugs.webkit.org/show_bug.cgi?id=90103
2797
2798         Reviewed by Adrienne Walker.
2799
2800         Non-integer scale factors can scale the bounds of a layer such that
2801         different rounding is applied to the width and height in the content
2802         bounds. We should never multiply bounds by contentsScale in order to
2803         work correctly with non-integer scale factors. Instead, always use the
2804         contentBounds/bounds ratio for width and height independently.
2805
2806         Tests: TiledLayerChromiumTest.nonIntegerContentsScaleIsNotDistortedDuringPaint
2807                TiledLayerChromiumTest.nonIntegerContentsScaleIsNotDistortedDuringInvalidation
2808
2809         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
2810         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
2811         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
2812         (BitmapCanvasLayerTextureUpdater):
2813         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
2814         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2815         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
2816         (BitmapSkPictureCanvasLayerTextureUpdater):
2817         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
2818         (WebCore::CanvasLayerTextureUpdater::paintContents):
2819         * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
2820         (CanvasLayerTextureUpdater):
2821         * platform/graphics/chromium/LayerTextureUpdater.h:
2822         (WebCore::LayerTextureUpdater::prepareToUpdate):
2823         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
2824         (WebCore::ScrollbarLayerChromium::updatePart):
2825         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
2826         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2827         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
2828         (SkPictureCanvasLayerTextureUpdater):
2829         * platform/graphics/chromium/TiledLayerChromium.cpp:
2830         (WebCore::TiledLayerChromium::setNeedsDisplayRect):
2831         (WebCore::TiledLayerChromium::updateTiles):
2832
2833 2012-06-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2834
2835         [Qt] Make GC's fill{Rounded}Rect use optimized shadow blur code
2836         https://bugs.webkit.org/show_bug.cgi?id=90082
2837
2838         Reviewed by Noam Rosenthal.
2839
2840         ShadowBlur::drawRectShadow makes use of optimized tiles-based drawPattern, which
2841         is not present when using {begin/end}shadowLayer.
2842
2843         * platform/graphics/qt/GraphicsContextQt.cpp:
2844         (WebCore::GraphicsContext::fillRect):
2845         (WebCore::GraphicsContext::fillRoundedRect):
2846         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
2847
2848 2012-06-28  Rahul Tiwari  <rahultiwari.cse.iitr@gmail.com>
2849
2850         Web Inspector: Provide context menu 'Delete all watch expressions.'
2851         https://bugs.webkit.org/show_bug.cgi?id=89735
2852
2853         Reviewed by Yury Semikhatsky.
2854
2855         Added context menu delete and delete all watch expressions.
2856
2857         No new tests required as its a minor UI related change.
2858
2859         * English.lproj/localizedStrings.js:
2860         * inspector/front-end/WatchExpressionsSidebarPane.js:
2861         (WebInspector.WatchExpressionsSection.prototype.updateExpression):
2862         (WebInspector.WatchExpressionsSection.prototype._deleteAllExpressions):
2863         (WebInspector.WatchExpressionsSection.prototype.findAddedTreeElement):
2864         (WebInspector.WatchExpressionTreeElement.prototype.update):
2865         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
2866         (WebInspector.WatchExpressionTreeElement.prototype._deleteAllButtonClicked):
2867
2868 2012-06-28  Christophe Dumez  <christophe.dumez@intel.com>
2869
2870         m_cssVariablesEnabled member is not initialized in Page Settings
2871         https://bugs.webkit.org/show_bug.cgi?id=90147
2872
2873         Reviewed by Simon Hausmann.
2874
2875         Properly initialize the m_cssVariablesEnabled member in Page
2876         Settings.
2877
2878         No new tests, no behavior change.
2879
2880         * page/Settings.cpp:
2881         (WebCore::Settings::Settings):
2882
2883 2012-06-28  Balazs Kelemen  <kbalazs@webkit.org>
2884
2885         [Qt] plugin is loaded to the web process via MainResourceLoader::substituteMIMETypeFromPluginDatabase
2886         https://bugs.webkit.org/show_bug.cgi?id=86489
2887
2888         Reviewed by Simon Hausmann.
2889
2890         Removed the substituteMIMETypeFromPluginDatabase quirk from
2891         MainResourceLoader. It would be possible to fix it in a way
2892         that is compatible with WebKit2, but given that it was a Qt
2893         only fix, and that it's not clear that we still need it, and
2894         it's not even work currently, I decided to remove it. At least
2895         it is -1 platform ifdef in common code.
2896
2897         Just removed a non-tested quirk, no test needed.
2898
2899         * loader/MainResourceLoader.cpp:
2900         (WebCore::MainResourceLoader::didReceiveResponse):
2901
2902 2012-06-28  Kentaro Hara  <haraken@chromium.org>
2903
2904         [V8] Optimize Integer::New() by caching persistent handles for small integers
2905         https://bugs.webkit.org/show_bug.cgi?id=90043
2906
2907         Reviewed by Adam Barth.
2908
2909         The patch improves performance of Dromaeo/dom-query.html by 3.6%,
2910         and Bindings/scroll-top.html by 17.3%.
2911
2912         The performance results in my Chromium/Linux:
2913
2914         [Dromaeo/dom-query.html]
2915         796310.4 runs/s => 824745.4 runs/s (+3.6%)
2916
2917         [Bindings/scroll-top.html]
2918         204.68 runs/s => 240.15 runs/s (+17.3%)
2919
2920         This patch introduces V8BindingPerIsolateData::IntegerCache (just like
2921         V8BindingPerIsolateData::StringCache) to cache persistent handles
2922         for small integers.
2923
2924         No new tests. No change in behavior.
2925
2926         * bindings/v8/V8Binding.h: Implemented v8Integer() and v8UnsignedInteger(),
2927         which returns cached persistent handles for integers smaller than 64.
2928         (WebCore):
2929         (IntegerCache):
2930         (WebCore::IntegerCache::IntegerCache):
2931         (WebCore::IntegerCache::v8Integer):
2932         (WebCore::IntegerCache::v8UnsignedInteger):
2933         (WebCore::V8BindingPerIsolateData::integerCache):
2934         (V8BindingPerIsolateData):
2935         (WebCore::v8Integer):
2936         (WebCore::v8UnsignedInteger):
2937         * bindings/v8/V8Binding.cpp:
2938         (WebCore):
2939         (WebCore::IntegerCache::createSmallIntegers):
2940         * bindings/v8/WorkerScriptController.cpp:
2941         (~WorkerScriptController): ~V8BindingPerIsolateData() should be called before
2942         isolate->Exit(), since ~V8BindingPerIsolateData() calls V8 APIs that requires
2943         the current isolate.
2944
2945         * bindings/scripts/CodeGeneratorV8.pm: Replaced Integer::New() and Integer::NewFromUnsigned()
2946         with v8Integer() and v8UnsignedInteger().
2947         (GenerateNormalAttrGetter):
2948         (NativeToJSValue):
2949
2950         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Updated run-bindings-tests results.
2951         (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetter):
2952         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
2953         (WebCore::TestObjV8Internal::readOnlyIntAttrAttrGetter):
2954         (WebCore::TestObjV8Internal::shortAttrAttrGetter):
2955         (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetter):
2956         (WebCore::TestObjV8Internal::intAttrAttrGetter):
2957         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetter):
2958         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetter):
2959         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetter):
2960         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetter):
2961         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetter):
2962         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
2963         (WebCore::TestObjV8Internal::conditionalAttr1AttrGetter):
2964         (WebCore::TestObjV8Internal::conditionalAttr2AttrGetter):
2965         (WebCore::TestObjV8Internal::conditionalAttr3AttrGetter):
2966         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetter):
2967         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetter):
2968         (WebCore::TestObjV8Internal::enabledAtContextAttr1AttrGetter):
2969         (WebCore::TestObjV8Internal::enabledAtContextAttr2AttrGetter):
2970         (WebCore::TestObjV8Internal::strawberryAttrGetter):
2971         (WebCore::TestObjV8Internal::descriptionAttrGetter):
2972         (WebCore::TestObjV8Internal::idAttrGetter):
2973         (WebCore::TestObjV8Internal::intMethodCallback):
2974         (WebCore::TestObjV8Internal::intMethodWithArgsCallback):
2975         (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
2976         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: Ditto.
2977         (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
2978
2979 2012-06-28  Kent Tamura  <tkent@chromium.org>
2980
2981         Classify form control states by their owner forms
2982         https://bugs.webkit.org/show_bug.cgi?id=89950
2983
2984         Reviewed by Hajime Morita.
2985
2986         To improve robustness of the form state restore feature, we classify
2987         form control states by their owner forms. Owner forms are identified by
2988         their action URLs and index numbers in forms with the same action URLs.
2989
2990         Implementation approach:
2991         Extend FormElementKey class to have "formKey" string, which is a
2992         combination of the action URL and an index number, or a fixed string for
2993         no form owner.
2994         FormKeyGenerator class is responsible to generate the "formKey" strings
2995
2996         Test: fast/forms/state-restore-per-form.html
2997
2998         * html/FormController.cpp:
2999         (FormKeyGenerator):
3000         (WebCore::FormKeyGenerator::create): A factory function.
3001         (WebCore::FormKeyGenerator::FormKeyGenerator): A private constructor.
3002         (WebCore::createKey):
3003         A helper for formKey(). This makes strings like "<action URL> #<index>".
3004         (WebCore::FormKeyGenerator::formKey):
3005         Returns a formKey for the specified HTMLFormElement*.
3006         (WebCore::FormKeyGenerator::willDeleteForm):
3007         Unregister HTMLFormElement*. This function is necessary because form
3008         restore feature works during parsing and a script might delete form
3009         elements.
3010         (WebCore::formStateSignature): Bump the version.
3011         (WebCore::FormController::formElementsState):
3012         Records a formKey string for each of control state.
3013         (WebCore::FormController::setStateForNewFormElements):
3014         Loads formKeys from stateVector, and uses them for FormElementKey.
3015         (WebCore::FormController::takeStateForFormElement):
3016         - Construct and destruct FormKeyGenerator if needed.
3017         - Passing a formKey for the specified form control to FormElementKey.
3018         (WebCore::FormController::willDeleteForm):
3019         Delegate to FormKeyGenerator::willDeleteForm.
3020
3021         (WebCore::FormElementKey::FormElementKey): Add formKey argument and member.
3022         (WebCore::FormElementKey::operator=): ditto.
3023         (WebCore::FormElementKey::ref): ditto.
3024         (WebCore::FormElementKey::deref): ditto.
3025         * html/FormController.h:
3026         (FormElementKey): Add formKey argument and member.
3027         (FormController): Add a FormKeyGenerator member which is used during restoring.
3028
3029         * html/HTMLFormElement.cpp:
3030         (WebCore::HTMLFormElement::~HTMLFormElement): Notify the death to FormController.
3031
3032 2012-06-28  Sheriff Bot  <webkit.review.bot@gmail.com>
3033
3034         Unreviewed, rolling out r121395.
3035         http://trac.webkit.org/changeset/121395
3036         https://bugs.webkit.org/show_bug.cgi?id=90143
3037
3038         Patch causes crashes in fast/workers/worker-context-gc.html
3039         (Requested by zdobersek on #webkit).
3040
3041         * Modules/indexeddb/IDBFactory.cpp:
3042         (WebCore::IDBFactory::open):
3043         * workers/DedicatedWorkerThread.cpp:
3044         (WebCore::DedicatedWorkerThread::create):
3045         (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
3046         * workers/DedicatedWorkerThread.h:
3047         (DedicatedWorkerThread):
3048         * workers/DefaultSharedWorkerRepository.cpp:
3049         (SharedWorkerProxy):
3050         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
3051         * workers/SharedWorkerThread.cpp:
3052         (WebCore::SharedWorkerThread::create):
3053         (WebCore::SharedWorkerThread::SharedWorkerThread):
3054         * workers/SharedWorkerThread.h:
3055         (SharedWorkerThread):
3056         * workers/WorkerMessagingProxy.cpp:
3057         (WebCore::WorkerMessagingProxy::startWorkerContext):
3058         * workers/WorkerThread.cpp:
3059         (WebCore::WorkerThreadStartupData::create):
3060         (WorkerThreadStartupData):
3061         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
3062         (WebCore::WorkerThread::WorkerThread):
3063         * workers/WorkerThread.h:
3064         (WorkerThread):
3065
3066 2012-06-28  Yoshifumi Inoue  <yosin@chromium.org>
3067
3068         [Platform] Implement functions for localized time format information
3069         https://bugs.webkit.org/show_bug.cgi?id=89965
3070
3071         Reviewed by Kent Tamura.
3072
3073         This patch introduces three functions for time format:
3074           1. localizedTimeFormatText()
3075           2. localizedShortTimeFormatText()
3076           2. timeAMPMLabels()
3077         for input type "time" if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) is true.
3078
3079         Having both localizedTimeFormat and localizedShortTimeFormat is for
3080         displaying only two fields hour and minute when step >= 60. There is
3081         no way to remove second field from "h:m:s" pattern string. We don't
3082         know whether ":" after "m" belongs minute or second field.
3083
3084         Test: WebKit/chromium/tests/LocalizedDateICUTest.cpp
3085
3086         * platform/text/LocaleICU.cpp:
3087         (WebCore::LocaleICU::LocaleICU):
3088         (WebCore::createFallbackAMPMLabels): Added.
3089         (WebCore::LocaleICU::initializeDateTimeFormat):  Added.
3090         (WebCore::LocaleICU::localizedTimeFormatText):  Added.
3091         (WebCore::LocaleICU::localizedShortTimeFormatText):  Added.
3092         (WebCore::LocaleICU::timeAMPMLabels):  Added.
3093         * platform/text/LocaleICU.h:
3094         (LocaleICU):
3095         * platform/text/LocalizedDate.h:
3096         * platform/text/LocalizedDateICU.cpp:
3097         (WebCore::localizedTimeFormatText):  Added.
3098         (WebCore::localizedShortTimeFormatText):  Added.
3099         (WebCore::timeAMPMLabels):  Added.
3100
3101 2012-06-27  Kentaro Hara  <haraken@chromium.org>
3102
3103         Performance: Optimize Dromaeo/dom-query.html by caching NodeRareData on Document
3104         https://bugs.webkit.org/show_bug.cgi?id=90059
3105
3106         Reviewed by Ryosuke Niwa.
3107
3108         This patch improves performance of document.getElementsBy*().
3109         e.g. the patch makes Dromaeo/dom-query.html 5.4% faster.
3110
3111         Dromaeo/dom-query.html without the patch (Chromium/Linux):
3112         784714 runs/s, 765947 runs/s, 803109 runs/s, 804450 runs/s
3113
3114         Dromaeo/dom-query.html with the patch (Chromium/Linux):
3115         839245 runs/s, 829867 runs/s, 811032 runs/s, 847486 runs/s
3116
3117         Based on the assumption that document.getElementsByClassName(),
3118         document.getElementsByTagName() and document.getElementsByName()
3119         would be used frequently in the real world, this patch implements
3120         a fast path for Document methods that require to access NodeRareData.
3121         Specifically, this patch caches a pointer to NodeRareData on Document,
3122         by which Document can access NodeRareData without looking up a HashMap.
3123
3124         The only performance concern is the overhead of the isDocumentNode() check
3125         that this patch added to Node::ensureRareData. However, I could not
3126         observe any performance regression caused by the overhead.
3127
3128         No tests. No change in behavior.
3129
3130         * dom/Document.cpp:
3131         (WebCore::Document::Document):
3132         (WebCore::Document::setCachedRareData): I didn't inline this method,
3133         since the inlining slightly regressed performance for some reason.
3134         (WebCore):
3135         * dom/Document.h:
3136         (WebCore):
3137         (WebCore::Document::cachedRareData):
3138         (Document):
3139         (~Document): Moved 'm_document = 0' to the tail of the destructor,
3140         since isDocumentNode() has to return true in clearRareData() that is called
3141         in ~Document().
3142         * dom/Node.cpp:
3143         (WebCore::Node::ensureRareData):
3144         (~Node): Moved the assertion into clearRareData().
3145
3146 2012-06-27  Mary Wu  <mary.wu@torchmobile.com.cn>
3147
3148         [BlackBerry] 0-length response with no content-type shouldn't download
3149         https://bugs.webkit.org/show_bug.cgi?id=89860
3150
3151         Reviewed by Rob Buis.
3152
3153         RIM PR# 168419
3154
3155         For 0-length response, if we can't get its mimetype from the filename,
3156         we set the mimetype to "text/plain" instead of "application/octet-stream",
3157         so it won't go to download.
3158
3159         Reviewed internally by Charles Wei.
3160
3161         * platform/network/blackberry/NetworkJob.cpp:
3162         (WebCore::NetworkJob::sendResponseIfNeeded):
3163
3164 2012-06-27  Yoshifumi Inoue  <yosin@chromium.org>
3165
3166         [Platform] Implement localizedDecimalSeparator function
3167         https://bugs.webkit.org/show_bug.cgi?id=90036
3168
3169         Reviewed by Kent Tamura.
3170
3171         This patch introduces new function localizedDecimalSeparator() when
3172         ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS). It will be used for
3173         displaying millisecond for time fields UI.
3174
3175         Test: WebKit/chromium/tests/LocalizedNumberICUTest.cpp
3176
3177         * platform/text/LocaleICU.cpp:
3178         (WebCore::LocaleICU::localizedDecimalSeparator): Added
3179         * platform/text/LocaleICU.h:
3180         (LocaleICU): Added localizedDecimalSeparator.
3181         * platform/text/LocalizedNumber.h:
3182         * platform/text/LocalizedNumberICU.cpp:
3183         (WebCore::localizedDecimalSeparator): Added.
3184         * platform/text/LocalizedNumberNone.cpp:
3185         (WebCore::localizedDecimalSeparator): Added.
3186         * platform/text/mac/LocalizedNumberMac.mm:
3187         (WebCore::localizedDecimalSeparator): Added.
3188
3189 2012-06-27  Lu Guanqun  <guanqun.lu@intel.com>
3190
3191         Add OVERRIDE to functions in UnthrottledTextureUploader class
3192         https://bugs.webkit.org/show_bug.cgi?id=90130
3193
3194         Reviewed by James Robinson.
3195
3196         No new tests required.
3197
3198         * platform/graphics/chromium/LayerRendererChromium.cpp:
3199
3200 2012-06-27  Pablo Flouret  <pablof@motorola.com>
3201
3202         pattern="" should only accept the empty string
3203         https://bugs.webkit.org/show_bug.cgi?id=89569
3204
3205         Reviewed by Kent Tamura.
3206
3207         An empty pattern attribute was being treated essentially as if the
3208         pattern wasn't present.
3209
3210         No new tests. Covered by existing tests (plus a modified one).
3211
3212         * html/BaseTextInputType.cpp:
3213         (WebCore::BaseTextInputType::patternMismatch):
3214             Check if the pattern attribute is present. If it is then use the
3215             pattern as is (in the particular case of this bug, an empty pattern
3216             will only match an empty value).
3217
3218 2012-06-27  James Robinson  <jamesr@chromium.org>
3219
3220         [chromium] Use SkColor in compositor internals
3221         https://bugs.webkit.org/show_bug.cgi?id=90108
3222
3223         Reviewed by Adrienne Walker.
3224
3225         As the title says, cutting dependencies. If we support color spaces in the compositor we will probably need to
3226         use a more sophisticated type, but for our current use SkColor is sufficient and matches our API better.
3227
3228         * platform/graphics/chromium/LayerChromium.cpp:
3229         (WebCore::LayerChromium::LayerChromium):
3230         (WebCore::LayerChromium::setBackgroundColor):
3231         (WebCore::LayerChromium::setDebugBorderColor):
3232         * platform/graphics/chromium/LayerChromium.h:
3233         (LayerChromium):
3234         (WebCore::LayerChromium::backgroundColor):
3235         * platform/graphics/chromium/LayerRendererChromium.cpp:
3236         (WebCore::LayerRendererChromium::drawDebugBorderQuad):
3237         (WebCore::LayerRendererChromium::drawSolidColorQuad):
3238         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
3239         (WebCore::CCDebugBorderDrawQuad::create):
3240         (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
3241         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
3242         (CCDebugBorderDrawQuad):
3243         (WebCore::CCDebugBorderDrawQuad::color):
3244         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3245         (WebCore::CCLayerImpl::CCLayerImpl):
3246         (WebCore::CCLayerImpl::setBackgroundColor):
3247         (WebCore::CCLayerImpl::setDebugBorderColor):
3248         (WebCore::CCLayerImpl::hasDebugBorders):
3249         * platform/graphics/chromium/cc/CCLayerImpl.h:
3250         (CCLayerImpl):
3251         (WebCore::CCLayerImpl::backgroundColor):
3252         (WebCore::CCLayerImpl::debugBorderColor):
3253         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3254         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3255         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3256         (WebCore::CCLayerTreeHost::setBackgroundColor):
3257         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3258         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
3259         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3260         (WebCore::CCLayerTreeHostImpl::backgroundColor):
3261         (WebCore::CCLayerTreeHostImpl::setBackgroundColor):
3262         (CCLayerTreeHostImpl):
3263         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
3264         (WebCore::appendQuadInternal):
3265         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3266         (WebCore::CCRenderPass::appendQuadsToFillScreen):
3267         * platform/graphics/chromium/cc/CCRenderPass.h:
3268         (WebCore):
3269         (CCRenderPass):
3270         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3271         (WebCore::CCRenderSurface::appendQuads):
3272         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
3273         (WebCore::CCSolidColorDrawQuad::create):
3274         (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
3275         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
3276         (CCSolidColorDrawQuad):
3277         (WebCore::CCSolidColorDrawQuad::color):
3278         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3279         (WebCore::CCTiledLayerImpl::appendQuads):
3280
3281 2012-06-27  Charles Wei  <charles.wei@torchmobile.com.cn>
3282
3283         IndexedDB: should make the LevelDB persistant to the directory indicated in PageGroupSettings::indexedDBDataBasePath
3284         https://bugs.webkit.org/show_bug.cgi?id=88338
3285
3286         Reviewed by David Levin.
3287
3288         If the indexedDB runs in main thread it can access the GroupSettings via the document;
3289         otherwise, we need to pass the page GroupSettings to the worker thread so that accessible
3290         to the indexedDB running in WorkerContext.
3291
3292         * Modules/indexeddb/IDBFactory.cpp:
3293         (WebCore::IDBFactory::open):
3294         * workers/DedicatedWorkerThread.cpp:
3295         (WebCore::DedicatedWorkerThread::create):
3296         (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
3297         * workers/DedicatedWorkerThread.h:
3298         (DedicatedWorkerThread):
3299         * workers/DefaultSharedWorkerRepository.cpp:
3300         (SharedWorkerProxy):
3301         (WebCore::SharedWorkerProxy::groupSettings):
3302         (WebCore):
3303         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
3304         * workers/SharedWorkerThread.cpp:
3305         (WebCore::SharedWorkerThread::create):
3306         (WebCore::SharedWorkerThread::SharedWorkerThread):
3307         * workers/SharedWorkerThread.h:
3308         (SharedWorkerThread):
3309         * workers/WorkerMessagingProxy.cpp:
3310         (WebCore::WorkerMessagingProxy::startWorkerContext):
3311         * workers/WorkerThread.cpp:
3312         (WebCore::WorkerThreadStartupData::create):
3313         (WorkerThreadStartupData):
3314         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
3315         (WebCore::WorkerThread::WorkerThread):
3316         (WebCore::WorkerThread::groupSettings):
3317         (WebCore):
3318         * workers/WorkerThread.h:
3319         (WorkerThread):
3320
3321 2012-06-27  Sheriff Bot  <webkit.review.bot@gmail.com>
3322
3323         Unreviewed, rolling out r121359.
3324         http://trac.webkit.org/changeset/121359
3325         https://bugs.webkit.org/show_bug.cgi?id=90115
3326
3327         Broke many inspector tests (Requested by jpfau on #webkit).
3328
3329         * bindings/js/ScriptCallStackFactory.cpp:
3330         (WebCore::createScriptCallStack):
3331
3332 2012-06-27  Alexis Menard  <alexis.menard@openbossa.org>
3333
3334         Implement selectedOptions attribute of HTMLSelectElement.
3335         https://bugs.webkit.org/show_bug.cgi?id=80631
3336
3337         Reviewed by Ryosuke Niwa.
3338
3339         Add a new collection as a member of HTMLSelectElement which is
3340         used to store the selected elements. Extend HTMLCollection to
3341         support the new collection type needed by this feature. Make sure
3342         that we invalidate the collection when the select state of an
3343         option changes as the select state change does not trigger a dom
3344         tree version change.
3345
3346         Reference : http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#dom-select-selectedoptions
3347
3348         Test: fast/dom/HTMLSelectElement/select-selectedOptions.html
3349
3350         * html/CollectionType.h:
3351         * html/HTMLCollection.cpp:
3352         (WebCore::shouldIncludeChildren):
3353         (WebCore::HTMLCollection::clearCache):
3354         (WebCore):
3355         (WebCore::HTMLCollection::isAcceptableElement):
3356         * html/HTMLCollection.h:
3357         (HTMLCollection):
3358         * html/HTMLOptionElement.cpp:
3359         (WebCore::HTMLOptionElement::setSelectedState):
3360         * html/HTMLSelectElement.cpp:
3361         (WebCore::HTMLSelectElement::selectedOptions):
3362         (WebCore):
3363         (WebCore::HTMLSelectElement::invalidateSelectedItems):
3364         (WebCore::HTMLSelectElement::setRecalcListItems):
3365         * html/HTMLSelectElement.h:
3366         (WebCore):
3367         (HTMLSelectElement):
3368         * html/HTMLSelectElement.idl:
3369
3370 2012-06-27  Daniel Cheng  <dcheng@chromium.org>
3371
3372         Fix crash in Frame::nodeImage.
3373         https://bugs.webkit.org/show_bug.cgi?id=89911
3374
3375         Reviewed by Abhishek Arya.
3376
3377         We were caching a pointer to a RenderObject and then calling updateLayout(). Instead, we
3378         need to get a pointer to the RenderObject again after updateLayout().
3379
3380         Test: fast/events/drag-display-none-element.html
3381
3382         * page/Frame.cpp:
3383         (WebCore::Frame::nodeImage):
3384         * page/mac/FrameMac.mm:
3385         (WebCore::Frame::snapshotDragImage):
3386         (WebCore::Frame::nodeImage):
3387
3388 2012-06-27  Tony Chang  <tony@chromium.org>
3389
3390         Unreviewed, rolling out r121380.
3391         http://trac.webkit.org/changeset/121380
3392         https://bugs.webkit.org/show_bug.cgi?id=86525
3393
3394         Hits an ASSERT in debug.
3395
3396         * css/CSSComputedStyleDeclaration.cpp:
3397         (WebCore):
3398         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3399         * css/CSSParser.cpp:
3400         (WebCore::isValidKeywordPropertyAndValue):
3401         (WebCore::CSSParser::parseValue):
3402         (WebCore::CSSParser::parseFlex):
3403         * css/CSSParser.h:
3404         * css/CSSProperty.cpp:
3405         (WebCore::CSSProperty::isInheritedProperty):
3406         * css/CSSPropertyNames.in:
3407         * css/StyleBuilder.cpp:
3408         (ApplyPropertyFlex):
3409         (WebCore::ApplyPropertyFlex::applyInheritValue):
3410         (WebCore::ApplyPropertyFlex::applyInitialValue):
3411         (WebCore::ApplyPropertyFlex::applyValue):
3412         (WebCore::ApplyPropertyFlex::createHandler):
3413         (WebCore::ApplyPropertyFlex::getFlexValue):
3414         (WebCore):
3415         (WebCore::StyleBuilder::StyleBuilder):
3416         * css/StylePropertySet.cpp:
3417         (WebCore::StylePropertySet::getPropertyValue):
3418         (WebCore::StylePropertySet::asText):
3419         * css/StylePropertyShorthand.cpp:
3420         (WebCore::webkitFlexFlowShorthand):
3421         (WebCore::shorthandForProperty):
3422         * css/StylePropertyShorthand.h:
3423         (WebCore):
3424         * css/StyleResolver.cpp:
3425         (WebCore::StyleResolver::collectMatchingRulesForList):
3426
3427 2012-06-27  Rakesh KN  <rakesh.kn@motorola.com>
3428
3429         HTMLFieldSetElement::m_documentVersion is not initialized
3430         https://bugs.webkit.org/show_bug.cgi?id=90038
3431
3432         Reviewed by Kent Tamura.
3433
3434         Initialised m_documentVersion member as HTMLFieldSetElement::elements can return an wrong collection.
3435
3436         Covered by existing tests.
3437
3438         * html/HTMLFieldSetElement.cpp:
3439         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
3440         Initialised m_documentVersion.
3441
3442 2012-06-25  Mark Hahnenberg  <mhahnenberg@apple.com>
3443
3444         JSLock should be per-JSGlobalData
3445         https://bugs.webkit.org/show_bug.cgi?id=89123
3446
3447         Reviewed by Geoffrey Garen.
3448
3449         No new tests. Current regression tests are sufficient.