Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-06-08  Ion Rosca  <rosca@adobe.com>
2
3         Some overlay scrollbar API calls in ScrollAnimatorMac can lead to an assertion in RenderBox::mapAbsoluteToLocalPoint
4         https://bugs.webkit.org/show_bug.cgi?id=74111
5
6         Reviewed by Simon Fraser.
7
8         Added zero-delay timer for AppKit scroll notification that can be called during layout.
9         Manual test: ManualTests/scrollbar-crash-on-hide-scrolled-area.html
10         This assertion does not fire when running layout tests. It can be easly reproduced using a debug build by loading the manual test page.
11
12         * platform/mac/ScrollAnimatorMac.h:
13         (ScrollAnimatorMac):
14         * platform/mac/ScrollAnimatorMac.mm:
15         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
16         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
17         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
18         (WebCore):
19         (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
20
21 2012-06-08  Renata Hodovan  <reni@webkit.org>
22
23         Adding few already supported features to the FeatureSet in DOMImplementation
24         https://bugs.webkit.org/show_bug.cgi?id=86482
25
26         Text, Filter and View features are already implemented but they
27         are not added to the SVG11 feature set. This is corrected in this patch.
28
29         Reviewed by Nikolas Zimmermann.
30
31         No new testcase is needed because we already have one what checks the svg features via
32         DOMImplementation (svg/custom/svg-features.html).
33
34         * dom/DOMImplementation.cpp:
35         (WebCore::isSVG11Feature):
36
37 2012-06-08  Stephen Chenney  <schenney@chromium.org>
38
39         WebCore::ImageBuffer.cpp has broken color table code
40         https://bugs.webkit.org/show_bug.cgi?id=80321
41
42         Reviewed by Dirk Schulze.
43
44         The code in ImageBuffer::transformColorSpace had two problems that are
45         fixed by this patch.
46
47         First, it was using member variables for data
48         that is static constant. This is incredibly wasteful, as every
49         ImageBuffer that is created (and we make a lot of them) gets its own
50         copy of the LUT and the table is initialized again and again. The
51         patch replaces this with a static local, with lazy evaluation, in
52         the method that uses the tables.
53
54         Second, the code for filling the table was mapping 255 to 254, thus
55         reducing the intensity and alpha of every image it pushed through a
56         color transform.
57
58         Test: svg/filters/color-space-conversion.svg
59
60         * platform/graphics/ImageBuffer.cpp:
61         (WebCore::ImageBuffer::transformColorSpace):
62         * platform/graphics/ImageBuffer.h:
63         (ImageBuffer):
64
65 2012-06-08  Alexei Filippov  <alexeif@chromium.org>
66
67         Web Inspector: Better labels positioning on the memory pie chart
68         https://bugs.webkit.org/show_bug.cgi?id=88652
69
70         Reviewed by Vsevolod Vlasov.
71
72         * inspector/front-end/NativeMemorySnapshotView.js:
73         (WebInspector.NativeMemoryPieChart.prototype._paint.paintPercentAndLabel):
74         (WebInspector.NativeMemoryPieChart.prototype._paint):
75
76 2012-06-08  Bryan McQuade  <bmcquade@google.com>
77
78         Web Inspector: Annotate timeline records with a frame identifier
79         https://bugs.webkit.org/show_bug.cgi?id=86406
80
81         Reviewed by Vsevolod Vlasov.
82
83         Tests: Updated existing layout tests.
84
85         * inspector/InspectorController.cpp:
86         (WebCore::InspectorController::InspectorController):
87         * inspector/InspectorInstrumentation.cpp:
88         (WebCore::frameForScriptExecutionContext):
89         (WebCore):
90         (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
91         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
92         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
93         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
94         (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
95         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
96         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
97         (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
98         (WebCore::InspectorInstrumentation::willFireTimerImpl):
99         (WebCore::InspectorInstrumentation::willLayoutImpl):
100         (WebCore::InspectorInstrumentation::willLoadXHRImpl):
101         (WebCore::InspectorInstrumentation::willPaintImpl):
102         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
103         (WebCore::InspectorInstrumentation::willSendRequestImpl):
104         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
105         (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
106         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
107         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
108         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
109         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
110         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
111         (WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
112         (WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
113         (WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
114         * inspector/InspectorInstrumentation.h:
115         (InspectorInstrumentation):
116         (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
117         (WebCore::InspectorInstrumentation::didInstallTimer):
118         (WebCore::InspectorInstrumentation::didRemoveTimer):
119         (WebCore::InspectorInstrumentation::willCallFunction):
120         (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
121         (WebCore::InspectorInstrumentation::willDispatchEvent):
122         (WebCore::InspectorInstrumentation::willEvaluateScript):
123         (WebCore::InspectorInstrumentation::willFireTimer):
124         (WebCore::InspectorInstrumentation::willLayout):
125         (WebCore::InspectorInstrumentation::willLoadXHR):
126         (WebCore::InspectorInstrumentation::willPaint):
127         (WebCore::InspectorInstrumentation::willRecalculateStyle):
128         (WebCore::InspectorInstrumentation::willReceiveResourceData):
129         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
130         (WebCore::InspectorInstrumentation::willWriteHTML):
131         (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
132         (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
133         (WebCore::InspectorInstrumentation::willFireAnimationFrame):
134         * inspector/InspectorTimelineAgent.cpp:
135         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
136         (WebCore::InspectorTimelineAgent::didBeginFrame):
137         (WebCore::InspectorTimelineAgent::willCallFunction):
138         (WebCore::InspectorTimelineAgent::willDispatchEvent):
139         (WebCore::InspectorTimelineAgent::willLayout):
140         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
141         (WebCore::InspectorTimelineAgent::willPaint):
142         (WebCore::InspectorTimelineAgent::willComposite):
143         (WebCore::InspectorTimelineAgent::willWriteHTML):
144         (WebCore::InspectorTimelineAgent::didInstallTimer):
145         (WebCore::InspectorTimelineAgent::didRemoveTimer):
146         (WebCore::InspectorTimelineAgent::willFireTimer):
147         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
148         (WebCore::InspectorTimelineAgent::willLoadXHR):
149         (WebCore::InspectorTimelineAgent::willEvaluateScript):
150         (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
151         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
152         (WebCore::InspectorTimelineAgent::willReceiveResourceData):
153         (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
154         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
155         (WebCore::InspectorTimelineAgent::didTimeStamp):
156         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
157         (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
158         (WebCore::InspectorTimelineAgent::didRequestAnimationFrame):
159         (WebCore::InspectorTimelineAgent::didCancelAnimationFrame):
160         (WebCore::InspectorTimelineAgent::willFireAnimationFrame):
161         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
162         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
163         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
164         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
165         (WebCore::InspectorTimelineAgent::appendRecord):
166         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
167         (WebCore::InspectorTimelineAgent::pushCancelableRecord):
168         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
169         * inspector/InspectorTimelineAgent.h:
170         (WebCore):
171         (WebCore::InspectorTimelineAgent::create):
172         (InspectorTimelineAgent):
173         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
174         (TimelineRecordEntry):
175         * inspector/WorkerInspectorController.cpp:
176         (WebCore::WorkerInspectorController::WorkerInspectorController):
177         * inspector/front-end/TimelinePresentationModel.js:
178         (WebInspector.TimelinePresentationModel.isEventDivider):
179         (WebInspector.TimelinePresentationModel.Record):
180
181 2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>
182
183         Unreviewed, rolling out r119821.
184         http://trac.webkit.org/changeset/119821
185         https://bugs.webkit.org/show_bug.cgi?id=88648
186
187         Seems to have regression on Mac (Requested by kinuko on
188         #webkit).
189
190         * fileapi/File.cpp:
191         (WebCore::File::File):
192         (WebCore::File::lastModifiedDate):
193         (WebCore::File::lastModifiedDateForBinding):
194         (WebCore):
195         (WebCore::File::captureSnapshot):
196         * fileapi/File.h:
197         (File):
198         * fileapi/File.idl:
199         * platform/FileMetadata.h:
200         (WebCore::FileMetadata::FileMetadata):
201         * platform/FileSystem.h:
202         * platform/chromium/support/WebHTTPBody.cpp:
203         (WebKit::WebHTTPBody::elementAt):
204         * platform/network/BlobData.cpp:
205         (WebCore):
206         * platform/network/BlobData.h:
207         (BlobDataItem):
208         (WebCore::BlobDataItem::BlobDataItem):
209         * platform/network/FormData.cpp:
210         (WebCore::FormData::appendFile):
211         * platform/network/cf/FormDataStreamCFNet.cpp:
212         (WebCore::advanceCurrentStream):
213         * platform/network/soup/ResourceHandleSoup.cpp:
214         (WebCore::blobIsOutOfDate):
215
216 2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>
217
218         Unreviewed, removing duplicated entries in gyp.
219
220         * WebCore.gypi:
221
222 2012-06-08  Arko Saha  <arko@motorola.com>
223
224         Microdata: An element with an empty itemprop='' should not get listed in the .properties list.
225         https://bugs.webkit.org/show_bug.cgi?id=88235
226
227         Reviewed by Ryosuke Niwa.
228
229         As per the specification change http://html5.org/r/6854, an element should be listed in .properties
230         if the elelement has an attribute itemprop specified and the element has one or more property names.
231
232         Test: fast/dom/MicroData/element-with-empty-itemprop.html
233
234         * html/HTMLPropertiesCollection.cpp:
235         (WebCore::HTMLPropertiesCollection::itemAfter):
236
237 2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>
238
239         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
240         https://bugs.webkit.org/show_bug.cgi?id=87826
241
242         Reviewed by Kent Tamura.
243
244         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
245
246         * fileapi/File.cpp:
247         (WebCore::File::File):
248         (WebCore::File::captureSnapshot):
249         (WebCore::File::lastModifiedDate):
250         (WebCore::File::lastModifiedDateForBinding): Removed.
251         * fileapi/File.h:
252         (File):
253         * fileapi/File.idl:
254         * platform/FileMetadata.h:
255         (WebCore::FileMetadata::FileMetadata):
256         * platform/FileSystem.h:
257         * platform/chromium/support/WebHTTPBody.cpp:
258         (WebKit::WebHTTPBody::elementAt):
259         * platform/network/BlobData.h:
260         (WebCore::BlobDataItem::doNotCheckFileChange): Removed.
261         * platform/network/BlobData.cpp:
262         * platform/network/cf/FormDataStreamCFNet.cpp:
263         (WebCore::advanceCurrentStream):
264         * platform/network/soup/ResourceHandleSoup.cpp:
265         (WebCore::blobIsOutOfDate):
266
267 2012-06-08  Kent Tamura  <tkent@chromium.org>
268
269         Move form-related functions of Document to FormController
270         https://bugs.webkit.org/show_bug.cgi?id=88497
271
272         Reviewed by Hajime Morita.
273
274         A lot of files depend on Document.h. We had to build many files when we
275         touched form-related features in Document.h or
276         CheckedRadioButtons.h. This patch reduces such pain.
277
278         No new tests. Just a refactoring.
279
280         * CMakeLists.txt: Add FormController.cpp and/or FormController.h.
281         * GNUmakefile.list.am: ditto.
282         * Target.pri: ditto.
283         * WebCore.gypi: ditto.
284         * WebCore.vcproj/WebCore.vcproj: ditto.
285         * WebCore.xcodeproj/project.pbxproj: ditto.
286
287         * dom/Document.cpp: Removed form-releated features except the followings.
288         (WebCore::Document::formController): Accessor for a FormController.
289         (WebCore::Document::formElementsState):
290         Just returns FormController::formElementsState().
291         We don't create new FormController.
292         (WebCore::Document::setStateForNewFormElements):
293         Just returns FormController::setStateForNewFormElements().
294         We don't create new FormController if the specified vector is empty.
295         * dom/Document.h:
296         Moved form-related functions to FormController.
297
298         * html/FormController.cpp: Added. Moved from Document.cpp.
299         * html/FormController.h: Added. Moved from Document.h
300
301         * html/FormAssociatedElement.cpp: Use Document::formController().
302         (WebCore::FormAssociatedElement::didMoveToNewDocument):
303         (WebCore::FormAssociatedElement::insertedInto):
304         (WebCore::FormAssociatedElement::removedFrom):
305         (WebCore::FormAssociatedElement::formAttributeChanged):
306         * html/HTMLFormControlElementWithState.cpp: Use Document::formController().
307         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
308         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
309         (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
310         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
311         * html/HTMLFormElement.cpp: Use Document::formController().
312         (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
313         (WebCore::HTMLFormElement::removedFrom):
314         * html/HTMLInputElement.cpp: Use Document::formController().
315         (WebCore::HTMLInputElement::~HTMLInputElement):
316         (WebCore::HTMLInputElement::didMoveToNewDocument):
317         (WebCore::HTMLInputElement::checkedRadioButtons):
318         * html/HTMLInputElement.h:
319         Declare CheckedRadioButtons. It was provided by Document.h.
320         * html/parser/HTMLConstructionSite.h:
321         Declare HTMLFormElement. It was provided by Document.h
322
323 2012-06-08  Taiju Tsuiki  <tzik@chromium.org>
324
325         Add FileSystem item to storage tree.
326         https://bugs.webkit.org/show_bug.cgi?id=72691
327
328         Reviewed by Vsevolod Vlasov.
329
330         * WebCore.gypi:
331         * WebCore.vcproj/WebCore.vcproj:
332         * inspector/compile-front-end.py:
333         * inspector/front-end/FileSystemModel.js: Added.
334         * inspector/front-end/Images/fileSystem.png: Added.
335         * inspector/front-end/ResourcesPanel.js:
336         (WebInspector.FileSystemListTreeElement):
337         (WebInspector.FileSystemListTreeElement.prototype.onexpand):
338         (WebInspector.FileSystemListTreeElement.prototype.onattach):
339         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
340         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
341         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
342         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
343         (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem):
344         (WebInspector.FileSystemTreeElement):
345         (WebInspector.FileSystemTreeElement.prototype.get fileSystemName):
346         (WebInspector.FileSystemTreeElement.prototype.get itemURL):
347         * inspector/front-end/Settings.js:
348         (WebInspector.ExperimentsSettings):
349         * inspector/front-end/WebKit.qrc:
350         * inspector/front-end/inspector.html:
351         * inspector/front-end/resourcesPanel.css:
352         (.file-system-storage-tree-item .icon):
353         * inspector/front-end/utilities.js:
354
355 2012-06-08  Kentaro Hara  <haraken@chromium.org>
356
357         REGRESSION r119802: Remove unnecessary ASSERT(!m_deletionHasBegun) from Document.h
358         https://bugs.webkit.org/show_bug.cgi?id=88528
359
360         Reviewed by Ryosuke Niwa.
361
362         m_deletionHasBegun should become true just before 'delete this'.
363
364         No tests. No change in behavior.
365
366         * dom/Document.h:
367         (WebCore::Document::guardRef):
368         (WebCore::Document::guardDeref):
369
370 2012-06-08  Adam Barth  <abarth@webkit.org>
371
372         HTTP 204 No Content responses shouldn't trigger MIME type warnings in the web inspector
373         https://bugs.webkit.org/show_bug.cgi?id=88603
374
375         Reviewed by Pavel Feldman.
376
377         A 204 response doesn't have an entity body, so its MIME type is kind of
378         meaningless.  We shouldn't spam the console with a warning about MIME
379         types.
380
381         * inspector/front-end/NetworkManager.js:
382         (WebInspector.NetworkDispatcher.prototype._mimeTypeIsConsistentWithType):
383
384 2012-06-08  Yoshifumi Inoue  <yosin@chromium.org>
385
386         [Forms] Drop StepRange::NumberWithDecimalPlacesOrMissing
387         https://bugs.webkit.org/show_bug.cgi?id=88621
388
389         Reviewed by Kent Tamura.
390
391         This patch changes NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
392         We use NaN as indication of having value or not.
393
394         No new tests, because this patch doesn't change behavior.
395
396         * html/DateInputType.cpp:
397         (WebCore::DateInputType::createStepRange): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
398         * html/DateTimeInputType.cpp:
399         (WebCore::DateTimeInputType::createStepRange): ditto.
400         * html/DateTimeLocalInputType.cpp:
401         (WebCore::DateTimeLocalInputType::createStepRange): ditto.
402         * html/MonthInputType.cpp:
403         (WebCore::MonthInputType::createStepRange): ditto.
404         * html/NumberInputType.cpp:
405         (WebCore::NumberInputType::createStepRange): ditto.
406         * html/RangeInputType.cpp:
407         (WebCore::RangeInputType::createStepRange): ditto.
408         * html/StepRange.cpp:
409         (WebCore::StepRange::StepRange): Checks value is finite or not.
410         (WebCore::StepRange::parseStep): Replace NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
411         * html/StepRange.h:
412         (StepRange): Removed NumberWithDecimalPlacesOrMissing.
413         * html/TimeInputType.cpp:
414         (WebCore::TimeInputType::createStepRange):  NumberWithDecimalPlacesOrMissing to NumberWithDecimalPlaces.
415         * html/WeekInputType.cpp:
416         (WebCore::WeekInputType::createStepRange): ditto.
417
418 2012-06-08  Kentaro Hara  <haraken@chromium.org>
419
420         Unreviewed. Fixed a comment, pointed out by ap@.
421
422         * platform/TreeShared.h:
423         (WebCore):
424
425 2012-06-08  Noel Gordon  <noel.gordon@gmail.com>
426
427         [chromium] WEBP image blue and red color channels reversed on Android
428         https://bugs.webkit.org/show_bug.cgi?id=88613
429
430         Reviewed by Kent Tamura.
431
432         No new tests. Covered by test fast/images/webp-image-decoding.html though I'm
433         not sure where/how the Androids run their layout tests.
434
435         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
436         (outputMode): Detect little-endian Skia with a blue pixel shift (aka Android)
437         which seems to be the way for them per bug 75861.
438
439 2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>
440
441         Remove the assertion that has been moved to TreeScope after r119802.
442
443         * dom/Document.cpp:
444         (WebCore::Document::removedLastRef):
445
446 2012-06-07  Kentaro Hara  <haraken@chromium.org>
447
448         Reduce Node object size from 72 byte to 64 byte
449         https://bugs.webkit.org/show_bug.cgi?id=88528
450
451         Reviewed by Ryosuke Niwa.
452
453         This patch removes all virtual methods from TreeShared.h,
454         by which we can remove a virtual method table pointer (8 byte
455         in a 64bit architechture) from each Node object. Consequently,
456         this patch reduces the Node object size from 72 byte to 64 byte.
457
458         e.g. The HTML spec (http://www.whatwg.org/specs/web-apps/current-work/)
459         contains 325640 Node objects. Thus this patch saves 325640 * 8 byte = 2.6 MB.
460
461         e.g. sizeof(Element) is reduced from 104 byte to 96 byte.
462
463         - In multiple inheritance, a virtual method table pointer is allocated
464         for each base class that has virtual methods. For example, for
465         'class A : public B, C {};' where B and C have virtual methods,
466         two virtual method table pointers are allocated for each A object.
467         In this patch, A = Node, B = EventTarget, and C = TreeShared.
468         By removing the virtual methods from TreeShared, we can save the virtual
469         method table pointer for TreeShared. 8 byte saving.
470
471         - Node and SVGElementInstance are the only classes that inherit TreeShared.
472
473         - This patch removes virtual TreeShared::removeLastRef() and implements
474         virtual Node::removeLastRef() and virtual SVGElementInstance::removeLastRef().
475         Node::removeLastRef() calls 'delete this' for 'this' of type Node*,
476         and SVGElementInstance::removeLastRef() calls 'delete this' for 'this' of type
477         SVGElementInstance*.
478
479         - This patch removes the virtual destructor of TreeShared. This removal is safe
480         because (1) no one calls 'delete this' for 'this' of type TreeShared*,
481         and (2) both Node and SVGElementInstance have virtual destructor.
482
483         No change in behavior. Confirm no regression in existing tests.
484
485         * dom/ContainerNode.cpp:
486         (WebCore::callRemovedLastRef):
487         (WebCore):
488         * dom/Node.h:
489         (WebCore::Node::removedLastRef):
490         * platform/TreeShared.h:
491         (WebCore):
492         (TreeShared):
493         (WebCore::TreeShared::deref):
494         * svg/SVGElementInstance.cpp:
495         (WebCore::callRemovedLastRef):
496         (WebCore):
497         * svg/SVGElementInstance.h:
498         (WebCore::SVGElementInstance::removedLastRef):
499
500         * WebCore.order: Added a symbol for callRemovedLastRef().
501         * WebCore.exp.in: Ditto.
502
503 2012-06-07  Takashi Sakamoto  <tasak@google.com>
504
505         ShadowRoot needs resetStyleInheritance
506         https://bugs.webkit.org/show_bug.cgi?id=84048
507
508         Added resetStyleInheritance API to ShadowRoot. The spec URL is
509         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-root-attributes
510         To implement the API, modified StyleResolver to use empty style
511         instead of parent style if resetStyleInheritance is true,
512         and a node and its parent node are placed in different shadow trees.
513
514         Reviewed by Hajime Morita.
515
516         Test: fast/dom/shadow/shadow-root-resetStyleInheritance.html
517               fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html
518
519         * css/StyleResolver.cpp:
520         (WebCore::StyleResolver::initForStyleResolve):
521         Set m_parentStyle to NULL when resetStyleInheritance.
522         (WebCore::StyleResolver::documentSettings):
523         Added a new method to obtain current document's settings.
524         (WebCore::StyleResolver::initializeFontStyle):
525         Initialize m_style by using document settings. Its code was move
526         from the code initializing font style in applyProperty.
527         (WebCore::StyleResolver::styleForElement):
528         Initialize font style if m_parentStyle is NULL. The old code just
529         used style() and don't touch font style. The new code uses the above
530         initializeFontStyle.
531         (WebCore::StyleResolver::applyProperty):
532         Moved a code for initializing font style as "initial" to
533         a new method: initializeFontStyle and modified to use the method.
534         Modified to use documentSettings().
535         (WebCore::StyleResolver::checkForGenericFamilyChange):
536         Modified to use documentSettings().
537         * css/StyleResolver.h:
538         (WebCore::StyleResolver::documentSettings):
539         (WebCore::StyleResolver::initializeFontStyle):
540         Added two new methods to class StyleResolver.
541         * dom/NodeRenderingContext.cpp:
542         (WebCore::NodeRenderingContext::NodeRenderingContext):
543         Modified to calculate m_resetStyleInheritance in its constructor.
544         * dom/NodeRenderingContext.h:
545         (WebCore::NodeRenderingContext::resetStyleInheritance):
546         Implemented a new method, just returning m_resetStyleInheritance.
547         * dom/ShadowRoot.cpp:
548         (WebCore::ShadowRoot::setResetStyleInheritance):
549         Modified to force to recalculate children's styles if
550         resetStyleInheritance is changed.
551         * dom/ShadowRoot.h:
552         (ShadowRoot):
553         Added resetStyleInheritance getter and setter.
554         * dom/ShadowRoot.idl:
555         Added an attribute, resetStyleInheritance.
556         * dom/TreeScope.cpp:
557         (WebCore::TreeScope::resetStyleInheritance):
558         * dom/TreeScope.h:
559         (TreeScope):
560         Added resetStyleInheritance's default getter.
561         The getter will be overrided by class ShadowRoot's getter.
562
563 2012-06-07  Victor Carbune  <victor@rosedu.org>
564
565         addTextTrack should set track mode to HIDDEN
566         https://bugs.webkit.org/show_bug.cgi?id=88317
567
568         Reviewed by Eric Carlson.
569
570         Updated existing test.
571
572         * html/HTMLMediaElement.cpp:
573         (WebCore::HTMLMediaElement::addTextTrack): Set the default parameters
574         for the newly created TextTrack.
575         * html/track/TextTrack.cpp:
576         (WebCore::TextTrack::TextTrack):
577
578 2012-06-07  Li Yin  <li.yin@intel.com>
579
580         FileAPI: Blob should support ArrayBufferView instead of ArrayBuffer for Constructor Parameters
581         https://bugs.webkit.org/show_bug.cgi?id=88294
582
583         Reviewed by Jian Li.
584
585         From Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
586         Currently we add the support for ArrayBufferView, while still keeping ArrayBuffer for
587         backward compatibility. We will remove it in the near future.
588
589         Test: fast/files/blob-constructor.html
590
591         * bindings/js/JSBlobCustom.cpp:
592         (WebCore::JSBlobConstructor::constructJSBlob):
593         * bindings/v8/custom/V8BlobCustom.cpp:
594         (WebCore::V8Blob::constructorCallback):
595         * fileapi/WebKitBlobBuilder.cpp:
596         (WebCore::WebKitBlobBuilder::append):
597         (WebCore):
598         * fileapi/WebKitBlobBuilder.h:
599         (WebCore):
600         (WebKitBlobBuilder):
601         * fileapi/WebKitBlobBuilder.idl: Add support for ArrayBufferView in append method
602
603 2012-06-07  MORITA Hajime  <morrita@google.com>
604
605         A style in an older shadow subtree causes assert when composing with <shadow>
606         https://bugs.webkit.org/show_bug.cgi?id=88299
607
608         Reviewed by Dimitri Glazkov.
609
610         InsertionPoint::attach() assumes its distributed content not being attach()-ed.
611         But this assumption can break. This change added a guard for that.
612         This can happen for shadow boundaries in general. But ShadowRoot already handles that case.
613
614         Test: fast/dom/shadow/insertion-point-shadow-crash.html
615
616         * html/shadow/InsertionPoint.cpp:
617         (WebCore::InsertionPoint::attach):
618
619 2012-06-07  Max Feil  <mfeil@rim.com>
620
621         [BlackBerry] Show correct fullscreen button image (media controls)
622         https://bugs.webkit.org/show_bug.cgi?id=88563
623
624         Reviewed by Antonio Gomes.
625
626         PR159306: Show "exit" fullscreen button image instead of "enter"
627         fullscreen button image when in fullscreen mode (HTML5 media
628         controls).
629
630         I am not providing a test due to the simplicity of this patch
631         and the relative difficulty and maintainability issues associated
632         with testing how an image is rendered.
633
634         * platform/blackberry/RenderThemeBlackBerry.cpp:
635         (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
636
637 2012-06-07  Noel Gordon  <noel.gordon@gmail.com>
638
639         [chromium] Use WEBPImportPictureRGBX|BGRX to import picture data
640         https://bugs.webkit.org/show_bug.cgi?id=88218
641
642         Reviewed by Kent Tamura.
643
644         Stop using the RGBA and RGBA variants of the picture import routines (since
645         these will import alpha channel data in a future libwebp). Use the RGBX and
646         BGRX variants to import picture data for encoding to make it clear that the
647         alpha channel is (and must be) ignored.
648
649         Test: fast/canvas/canvas-toDataURL-webp.html
650
651         * platform/image-encoders/skia/WEBPImageEncoder.cpp:
652         (WebCore::rgbPictureImport):
653         (WebCore::importPictureBGRX): Use WEBPImportPictureBGRX for picture imports
654         that must ignore the alpha channel. Change the template parameter to be the
655         premultiplied alpha state of the input image data.
656         (WebCore::importPictureRGBX): Use WEBPImportPictureRGBX, ditto.
657         (WebCore::encodePixels): Invert the sense of the template parameter to make
658         it now indicate the premultiplied alpha state of the input image data.
659
660 2012-06-07  Takashi Sakamoto  <tasak@google.com>
661
662         Improve the performance of pushScope in StyleResolver
663         https://bugs.webkit.org/show_bug.cgi?id=88222
664
665         Reviewed by Hajime Morita.
666
667         As setupScopeStack always sets m_scopeStackParent to be NULL,
668         m_scopeStack is never reused. m_scopeStackParent should be the last
669         element of m_scopeStack.
670
671         No new tests, because fast/css/style-scoped/ uses pushScope,
672         popScope and setupScopeStack and checks whether there exists
673         any crash bug or not. And this patch doesn't change any behavior
674         of scoped author syltes.
675
676         * css/StyleResolver.cpp:
677         (WebCore::StyleResolver::setupScopeStack):
678         Modified to set m_scopeSackParent to be the last element of
679         m_scopeStack.
680         (WebCore::StyleResolver::popScope):
681         Modified to remove the last element if m_scopeStack is not empty and
682         the last element of m_scopeStack has the same scope as the scoping
683         element given by the argument.
684
685 2012-06-07  Mark Pilgrim  <pilgrim@chromium.org>
686
687         [Chromium] Move didStartWorkerRunLoop to Platform.h
688         https://bugs.webkit.org/show_bug.cgi?id=88562
689
690         Reviewed by Adam Barth.
691
692         Part of a refactoring series. See tracking bug 82948.
693
694         * WebCore.gyp/WebCore.gyp:
695         * bindings/v8/WorkerScriptController.cpp:
696         (WebCore::WorkerScriptController::~WorkerScriptController):
697         * platform/chromium/PlatformSupport.h:
698         (WebCore):
699         * workers/WorkerThread.cpp:
700         (WebCore::WorkerThread::workerThread):
701
702 2012-06-07  Mike West  <mkwst@chromium.org>
703
704         Dropping m_startingLineNumber property from StyledElement.
705         https://bugs.webkit.org/show_bug.cgi?id=86848
706
707         Reviewed by Adam Barth.
708
709         We can have the same effect by moving the line-number calculation
710         directly into StyledElement::styleAttributeChanged. This means that
711         subsequent changes to the style attribute (via script) won't generate
712         error messages with line numbers, but that's an acceptable tradeoff.
713
714         Behavior is covered by existing CSP tests.
715
716         * dom/StyledElement.cpp:
717         (WebCore::StyledElement::StyledElement):
718         (WebCore::StyledElement::styleAttributeChanged):
719         * dom/StyledElement.h:
720         (WebCore::StyledElement::destroyInlineStyle):
721
722 2012-06-07  Peter Beverloo  <peter@chromium.org>
723
724         Initialize m_document in AXObjectCache's constructor for !HAVE(ACCESSIBILITY) builds
725         https://bugs.webkit.org/show_bug.cgi?id=88527
726
727         Reviewed by Adam Barth.
728
729         Initialize the m_document member with the passed on document in the stubbed
730         AXObjectCache constructor. No behavioral changes.
731
732         * accessibility/AXObjectCache.h:
733         (WebCore::AXObjectCache::AXObjectCache):
734
735 2012-06-05  James Robinson  <jamesr@chromium.org>
736
737         [chromium] Move deferral-related logic out of Canvas2DLayerChromium
738         https://bugs.webkit.org/show_bug.cgi?id=86050
739
740         Reviewed by Stephen White.
741
742         This removes Canvas2DLayerChromium and puts the deferral and double-buffering related logic in a new class,
743         Canvas2DLayerBridge, that uses TextureLayerChromium for compositing.  The bridge is responsible for managing the
744         front texture when double buffering is active, inserting the correct makeContextCurrent() and flush() calls on
745         the GraphicsContext3D and SkCanvas when appropriate, and owning the lifetime of the layer.
746
747         * WebCore.gypi:
748         * platform/graphics/chromium/Canvas2DLayerBridge.cpp: Added.
749         (WebCore):
750         (AcceleratedDeviceContext):
751         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
752         (WebCore::AcceleratedDeviceContext::prepareForDraw):
753         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
754         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
755         (WebCore::Canvas2DLayerBridge::skCanvas):
756         (WebCore::Canvas2DLayerBridge::prepareTexture):
757         (WebCore::Canvas2DLayerBridge::context):
758         (WebCore::Canvas2DLayerBridge::layer):
759         (WebCore::Canvas2DLayerBridge::contextAcquired):
760         * platform/graphics/chromium/Canvas2DLayerBridge.h: Added.
761         (WebCore):
762         (Canvas2DLayerBridge):
763         (WebCore::Canvas2DLayerBridge::create):
764         * platform/graphics/chromium/Canvas2DLayerChromium.cpp: Removed.
765         * platform/graphics/chromium/Canvas2DLayerChromium.h: Removed.
766         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
767         * platform/graphics/chromium/ImageBufferDataSkia.h:
768         (WebCore):
769         (ImageBufferData):
770         * platform/graphics/chromium/TextureLayerChromium.cpp:
771         (WebCore::TextureLayerChromium::willModifyTexture):
772             willModifyTexture() is called whenever the texture currently owned by the TextureLayerChromium will be
773             modified by a system out of the compositor's control. It makes sure that the compositor does not attempt to
774             draw with the potentially-modified texture until the next commit. For canvas, this is used when threading is
775             enabled and a non-deferrable drawing command is invoked from JS.
776         (WebCore):
777         * platform/graphics/chromium/TextureLayerChromium.h:
778         (TextureLayerChromium):
779         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
780         (WebCore::CCTextureUpdater::hasMoreUpdates):
781         (WebCore::CCTextureUpdater::update):
782         (WebCore::CCTextureUpdater::clear):
783         * platform/graphics/chromium/cc/CCTextureUpdater.h:
784         (CCTextureUpdater):
785         * platform/graphics/skia/ImageBufferSkia.cpp:
786         (WebCore::createAcceleratedCanvas):
787         (WebCore::ImageBuffer::~ImageBuffer):
788         (WebCore::ImageBuffer::context):
789         (WebCore::ImageBuffer::platformLayer):
790
791 2012-06-07  Patrick Gansterer  <paroga@webkit.org>
792
793         Remove HAVE(PATH_BASED_BORDER_RADIUS_DRAWING)
794         https://bugs.webkit.org/show_bug.cgi?id=87931
795
796         Reviewed by Beth Dakin.
797
798         r62035 added HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until all ports implement
799         GraphicsContext::clipConvexPolygon(). All major ports define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING in the
800         meantime and the alternative path has unnecessary maintainace costs and even don't compile at the moment.
801
802         * rendering/RenderBoxModelObject.cpp:
803         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
804         * rendering/RenderObject.cpp:
805         (WebCore::RenderObject::paintFocusRing):
806         * rendering/RenderObject.h:
807         (RenderObject):
808
809 2012-06-06  Vincent Scheib  <scheib@chromium.org>
810
811         Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror
812         https://bugs.webkit.org/show_bug.cgi?id=88377
813
814         Reviewed by Dimitri Glazkov.
815
816         Part of a series of refactoring changes to update pointer lock API to
817         the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402
818
819         New change and error events added. Follow up patches will remove
820         the previous callbacks and pointerlocklost event. Tests updated
821         to include the new events, and a new test added specifically for
822         the new events, pointerlockchange-pointerlockerror-events.html.
823
824         Test: pointer-lock/pointerlockchange-pointerlockerror-events.html
825
826         * dom/Document.h:
827         (Document):
828         * dom/Document.idl:
829         * dom/EventNames.h:
830         (WebCore):
831         * page/PointerLockController.cpp:
832         (WebCore::PointerLockController::requestPointerLock):
833         (WebCore::PointerLockController::didAcquirePointerLock):
834         (WebCore::PointerLockController::didNotAcquirePointerLock):
835         (WebCore::PointerLockController::didLosePointerLock):
836         (WebCore::PointerLockController::enqueueEvent):
837         (WebCore):
838         * page/PointerLockController.h:
839         (PointerLockController):
840
841 2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
842
843         Unreviewed, rolling out r119744.
844         http://trac.webkit.org/changeset/119744
845         https://bugs.webkit.org/show_bug.cgi?id=88584
846
847         Fails assertions in debug builds (Requested by jamesr_ on
848         #webkit).
849
850         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
851         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
852         (WebCore::CCIOSurfaceLayerImpl::willDraw):
853
854 2012-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
855
856         Cache RenderLayer::isRootLayer for better performance
857         https://bugs.webkit.org/show_bug.cgi?id=88570
858
859         Reviewed by Ojan Vafai.
860
861         Caching covered by existing tests.
862
863         RenderLayer::isRootLayer()'s answer will be the same during the RenderLayer's
864         lifetime as a RenderLayer is tied to a RenderBoxModelObject. This change caches
865         isRootLayer value in the constructor.
866
867         On http://dglazkov.github.com/performance-tests/biggrid.html with a 100,000 rows
868         by 100 columns table, it saves about 10% on the paint time during scrolling on
869         my machine (going from 50ms to 45ms). It would expect all code paths to see some
870         improvement as checking renderer()->isRenderView() was pretty common.
871
872         * rendering/RenderLayer.cpp:
873         (WebCore::RenderLayer::RenderLayer):
874         Added code to cache the result of renderer()->isRenderView() here.
875
876         (WebCore::RenderLayer::stackingContext):
877         (WebCore::isPositionedContainer):
878         (WebCore::isFixedPositionedContainer):
879         (WebCore::RenderLayer::enclosingTransformedAncestor):
880         (WebCore::RenderLayer::clippingRootForPainting):
881         (WebCore::shouldSuppressPaintingLayer):
882         (WebCore::RenderLayer::hitTest):
883         (WebCore::RenderLayer::intersectsDamageRect):
884         * rendering/RenderLayer.h:
885         (WebCore::RenderLayer::isStackingContext):
886         Updated all the call sites to use isRootLayer() instead of renderer()->isRenderView()
887         as it is faster.
888
889         (WebCore::RenderLayer::isRootLayer):
890         Added our caching here. Also made m_canSkipRepaintRectsUpdateOnScroll to follow
891         m_isRootLayer example.
892
893 2012-06-07  Takashi Sakamoto  <tasak@google.com>
894
895         Incorrect border rendering when border radius is above 2px.
896         https://bugs.webkit.org/show_bug.cgi?id=88046
897
898         Fixing findInnerVertex's logic to decide which is the better line
899         to find an inner vertex, x=center point's x of a rendering box or
900         y=center point's y of a rendering box.
901
902         Reviewed by Simon Fraser.
903
904         Test: fast/borders/border-radius-valid-border-clipping.html
905
906         * rendering/RenderBoxModelObject.cpp:
907         (WebCore::findInnerVertex):
908
909 2012-06-07  Edaena Salinas Jasso  <edaena@apple.com>
910
911         Should fire error event for empty 404 script
912         https://bugs.webkit.org/show_bug.cgi?id=50589
913         
914         Reviewed by Brady Eidson.
915
916         Tests: 
917         http/tests/loading/fire-error-event-empty-404-script.html
918         http/tests/loading/fire-error-script-no-content-type.html
919
920         * loader/SubresourceLoader.cpp:
921         (WebCore::SubresourceLoader::didReceiveResponse): We should check for http status 
922         codes here to stop depending on the response being non-empty.
923         (WebCore::SubresourceLoader::didReceiveData): Moved the http status check but
924         avoid messing with multipart responses.
925         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError): Renamed from 
926         errorLoadingResource for clarity.
927
928         * loader/SubresourceLoader.h:
929         * loader/cf/SubresourceLoaderCF.cpp:
930         (WebCore::SubresourceLoader::didReceiveDataArray):
931         Updated for errorLoadingResource renaming.
932
933 2012-06-07  Konrad Piascik  <kpiascik@rim.com>
934
935         [BlackBerry] Update PlayBook's User Agent String for Web Inspector
936         https://bugs.webkit.org/show_bug.cgi?id=88543
937
938         Reviewed by Antonio Gomes.
939
940         We expect users to upgrade their devices so developers only need the latest UA String.
941
942         No tests needed.
943
944         * inspector/front-end/SettingsScreen.js:
945         (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
946
947 2012-06-07  Shawn Singh  <shawnsingh@chromium.org>
948
949         [chromium] Remove obsolete FIXME comment about a layer sorting bug.
950         https://bugs.webkit.org/show_bug.cgi?id=88546
951
952         Reviewed by James Robinson.
953
954         No tests needed, only comment changed. The comment referred to a
955         potential bug that actually will not occur. The W3C spec on CSS 3d
956         transforms indicates that layers that do not share the same "3d
957         rendering context" do not sort together, and our existing code
958         sorts this way already.
959
960         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
961         (WebCore::subtreeShouldRenderToSeparateSurface):
962
963 2012-06-07  Adam Barth  <abarth@webkit.org>
964
965         Settings::defaultDeviceScaleFactor is redundant with Page::deviceScaleFactor
966         https://bugs.webkit.org/show_bug.cgi?id=88375
967
968         Reviewed by James Robinson.
969
970         This patch removes Settings::defaultDeviceScaleFactor because it is
971         redundant with Page::deviceScaleFactor now that we no longer support
972         target-densitydpi.  Page::deviceScaleFactor is the canonical place to
973         store the device scale factor.
974
975         * WebCore.exp.in:
976         * page/Settings.cpp:
977         (WebCore::Settings::Settings):
978         (WebCore):
979         * page/Settings.h:
980         (Settings):
981         * testing/InternalSettings.cpp:
982         (WebCore::InternalSettings::setDeviceScaleFactor):
983
984 2012-06-07  Alec Flett  <alecflett@chromium.org>
985
986         IndexedDB: Error codes, phase one
987         https://bugs.webkit.org/show_bug.cgi?id=88459
988
989         Reviewed by Tony Chang.
990
991         This phase gets rid of the now-deprecated NOT_ALLOWED_ERR and
992         NON_TRANSIENT_ERR from earlier versions of the spec, and
993         normalizes the place where TypeError should be thrown so that it's
994         easier to update when the bindings change.
995
996         No new tests: existing tests cover these changes and have been updated.
997
998         * Modules/indexeddb/IDBCursor.cpp:
999         (WebCore::IDBCursor::advance):
1000         (WebCore::IDBCursor::continueFunction):
1001         (WebCore::IDBCursor::stringToDirection):
1002         (WebCore::IDBCursor::directionToString):
1003         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1004         (WebCore::IDBCursorBackendImpl::update):
1005         (WebCore::IDBCursorBackendImpl::deleteFunction):
1006         * Modules/indexeddb/IDBDatabase.cpp:
1007         (WebCore::IDBDatabase::createObjectStore):
1008         (WebCore::IDBDatabase::deleteObjectStore):
1009         (WebCore::IDBDatabase::setVersion):
1010         (WebCore::IDBDatabase::transaction):
1011         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1012         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1013         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
1014         (WebCore::IDBDatabaseBackendImpl::setVersion):
1015         * Modules/indexeddb/IDBDatabaseException.cpp:
1016         (WebCore):
1017         * Modules/indexeddb/IDBDatabaseException.h:
1018         * Modules/indexeddb/IDBDatabaseException.idl:
1019         * Modules/indexeddb/IDBFactory.cpp:
1020         (WebCore::IDBFactory::open):
1021         (WebCore::IDBFactory::deleteDatabase):
1022         * Modules/indexeddb/IDBObjectStore.cpp:
1023         (WebCore::IDBObjectStore::index):
1024         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1025         (WebCore::IDBObjectStoreBackendImpl::createIndex):
1026         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
1027         * Modules/indexeddb/IDBRequest.cpp:
1028         (WebCore::IDBRequest::result):
1029         (WebCore::IDBRequest::errorCode):
1030         (WebCore::IDBRequest::webkitErrorMessage):
1031         * Modules/indexeddb/IDBTransaction.cpp:
1032         (WebCore::IDBTransaction::objectStore):
1033         (WebCore::IDBTransaction::stringToMode):
1034         (WebCore::IDBTransaction::modeToString):
1035         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1036         (WebCore::IDBTransactionBackendImpl::objectStore):
1037
1038 2012-06-07  Dana Jansens  <danakj@chromium.org>
1039
1040         [chromium] Free texture from CCIOSurfaceLayerImpl when it is destroyed
1041         https://bugs.webkit.org/show_bug.cgi?id=88371
1042
1043         Reviewed by James Robinson.
1044
1045         Unit test: CCLayerTreeHostImplTest.layersFreeTextures
1046
1047         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
1048         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
1049         (WebCore::CCIOSurfaceLayerImpl::willDraw):
1050
1051 2012-06-07  Peter Beverloo  <peter@chromium.org>
1052
1053         Buildfix for ENABLE_OVERFLOW_SCROLLING=0 (though defined)
1054         https://bugs.webkit.org/show_bug.cgi?id=88564
1055
1056         Reviewed by Adam Barth.
1057
1058         Where ENABLE(X) mandates that X both has to be defined and evaluates to
1059         true as a lone preprocessor statement, there were two places in the CSS
1060         property and value input files where only was checked whether is has
1061         been defined. This also goes against other #ifdefs in those files.
1062
1063         * css/CSSPropertyNames.in:
1064         * css/CSSValueKeywords.in:
1065
1066 2012-06-07  Ami Fischman  <fischman@chromium.org>
1067
1068         Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
1069         https://bugs.webkit.org/show_bug.cgi?id=88349
1070
1071         Reviewed by Adam Barth.
1072
1073         Test: http/tests/security/video-cross-origin-readback.html
1074
1075         * html/HTMLMediaElement.cpp:
1076         (WebCore::HTMLMediaElement::mediaPlayerCORSMode):
1077         (WebCore):
1078         * html/HTMLMediaElement.h:
1079         (HTMLMediaElement):
1080         * html/canvas/CanvasRenderingContext.cpp:
1081         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
1082         * platform/graphics/MediaPlayer.cpp:
1083         (WebCore::MediaPlayer::didPassCORSAccessCheck):
1084         (WebCore):
1085         * platform/graphics/MediaPlayer.h:
1086         (WebCore::MediaPlayerClient::mediaPlayerCORSMode):
1087         (MediaPlayer):
1088         * platform/graphics/MediaPlayerPrivate.h:
1089         (WebCore::MediaPlayerPrivateInterface::didPassCORSAccessCheck):
1090         (MediaPlayerPrivateInterface):
1091
1092 2012-06-07  Mark Hahnenberg  <mhahnenberg@apple.com>
1093
1094         Worker tear-down can re-enter JSC during GC finalization
1095         https://bugs.webkit.org/show_bug.cgi?id=88449
1096
1097         Reviewed by Geoffrey Garen.
1098
1099         No new tests. 
1100
1101         This is the first of two patches to fix this issue with Workers.
1102
1103         * workers/AbstractWorker.cpp:
1104         (WebCore::AbstractWorker::~AbstractWorker): We don't need to call onDestroyWorker() here, it 
1105         will be called elsewhere in contextDestroyed().
1106
1107 2012-06-07  Jer Noble  <jer.noble@apple.com>
1108
1109         sometimes all slaved videos don't start playing
1110         https://bugs.webkit.org/show_bug.cgi?id=88553
1111
1112         Reviewed by Darin Adler.
1113
1114         Test: media/media-controller-time-clamp.html
1115
1116         Some PlatformClock classes will occasionally return times < 0 and will
1117         always return times slightly > duration() when playback has ended.  Clamp
1118         the value of currentTime() to the specified [0..duration] range.
1119
1120         * html/MediaController.cpp:
1121         (MediaController::currentTime):
1122
1123 2012-06-07  Simon Fraser  <simon.fraser@apple.com>
1124
1125         Optimize FrameView::scrollXForFixedPosition() / scrollYForFixedPosition()
1126         https://bugs.webkit.org/show_bug.cgi?id=88475
1127
1128         Reviewed by Sam Weinig.
1129         
1130         FrameView's scrollXForFixedPosition() and scrollYForFixedPosition()
1131         methods were often called together, but they do duplicate work,
1132         including calling into platform widget code which might be slow.
1133         
1134         Fix by converting scrollOffsetForFixedPosition() from being a wrapper
1135         that just calls scrollXForFixedPosition() and scrollYForFixedPosition()
1136         to the method that does all the work, calling just once into platform
1137         widget code.
1138         
1139         Changed callers to use scrollOffsetForFixedPosition() rather than make
1140         two separate method calls.
1141         
1142         Added ScrollView::layoutSize() and visibleSize() methods for
1143         convenience.
1144         
1145         Removed FrameView::scrollXForFixedPosition and FrameView::scrollYForFixedPosition
1146         to avoid inefficient callers in future.
1147
1148         No new tests; refactoring only.
1149
1150         * page/FrameView.cpp:
1151         (WebCore::fixedPositionScrollOffset):
1152         (WebCore::FrameView::scrollOffsetForFixedPosition):
1153         * page/FrameView.h: Removed scrollXForFixedPosition and scrollYForFixedPosition.
1154         * platform/ScrollView.cpp:
1155         (WebCore::ScrollView::layoutSize):
1156         * platform/ScrollView.h:
1157         (WebCore::ScrollView::visibleSize):
1158         * rendering/RenderLayer.cpp:
1159         (WebCore::RenderLayer::backgroundClipRect):
1160         * rendering/RenderLayer.h:
1161         (WebCore::ClipRect::move):
1162         * rendering/RenderLayerCompositor.cpp:
1163         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
1164         * rendering/RenderView.cpp:
1165         (WebCore::RenderView::computeRectForRepaint):
1166
1167 2012-06-07  Raymes Khoury  <raymes@chromium.org>
1168
1169         Incorrect rect-based hit-test result for culled-inline elements
1170         https://bugs.webkit.org/show_bug.cgi?id=85849
1171
1172         Reviewed by Levi Weintraub.
1173
1174         Modified code which blindly adds culled inlines to rect-based hit-test
1175         results so that it only does so if the child node does not fully cover
1176         the hit-test region.
1177
1178         Test: fast/dom/nodesFromRect-culled-inline.html
1179
1180         * rendering/HitTestResult.cpp:
1181         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
1182
1183 2012-06-07  Daniel Erat  <derat@chromium.org>
1184
1185         Make Skia backend honor requests for subpixel-positioned text.
1186         https://bugs.webkit.org/show_bug.cgi?id=88263
1187
1188         Reviewed by Tony Chang.
1189
1190         Add subpixel positioning field to FontRenderStyle and rename
1191         subpixel rendering field.
1192
1193         Pass setting to SkPaint in FontPlatformDataHarfBuzz and remove
1194         round() call when computing glyph widths in SimpleFontDataSkia.
1195
1196         Test: platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html
1197
1198         * platform/graphics/blackberry/skia/PlatformSupport.cpp:
1199         (WebCore::setFontRenderStyleDefaults):
1200         (WebCore::PlatformSupport::getRenderStyleForStrike):
1201         * platform/graphics/chromium/FontRenderStyle.h:
1202         (WebCore::FontRenderStyle::FontRenderStyle):
1203         (WebCore::FontRenderStyle::operator==):
1204         (FontRenderStyle):
1205         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
1206         (WebCore):
1207         (WebCore::FontPlatformData::setSubpixelRendering):
1208         (WebCore::FontPlatformData::setSubpixelPositioning):
1209         (WebCore::FontPlatformData::setupPaint):
1210         (WebCore::FontPlatformData::querySystemForRenderStyle):
1211         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
1212         (FontPlatformData):
1213         * platform/graphics/skia/SimpleFontDataSkia.cpp:
1214         (WebCore::SimpleFontData::platformWidthForGlyph):
1215
1216 2012-06-06  Dana Jansens  <danakj@chromium.org>
1217
1218         [chromium] In each composited frame, didDraw() should only be called on layers for which willDraw() was called
1219         https://bugs.webkit.org/show_bug.cgi?id=88469
1220
1221         Reviewed by James Robinson.
1222
1223         Unit test: CCLayerTreeHostImplTest.didDrawNotCalledOnScissoredLayer
1224
1225         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1226         (WebCore::shouldDrawLayer):
1227         (WebCore):
1228         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1229         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
1230
1231 2012-06-07  Alexei Filippov  <alexeif@chromium.org>
1232
1233         Web Inspector: sorting of object fields is broken in heap profiler
1234         https://bugs.webkit.org/show_bug.cgi?id=88532
1235
1236         A recent change to heap profiler has replaced getters with functions.
1237         Function calls were missing in couple places after that change.
1238
1239         Reviewed by Vsevolod Vlasov.
1240
1241         Tests: inspector/profiler/heap-snapshot-summary-sorting-fields.html
1242                inspector/profiler/heap-snapshot-summary-sorting-instances.html
1243
1244         * inspector/front-end/HeapSnapshot.js:
1245         (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
1246
1247 2012-06-07  Alexander Pavlov  <apavlov@chromium.org>
1248
1249         Web Inspector: Consider Ctrl+Shift+key as valid zoom change combinations
1250         https://bugs.webkit.org/show_bug.cgi?id=88520
1251
1252         Reviewed by Vsevolod Vlasov.
1253
1254         * inspector/front-end/inspector.js:
1255         (WebInspector.documentKeyDown):
1256
1257 2012-06-07  Arvid Nilsson  <anilsson@rim.com>
1258
1259         [BlackBerry] Allow WebPageCompositor to blend a transparent web page
1260         https://bugs.webkit.org/show_bug.cgi?id=88233
1261
1262         Reviewed by Rob Buis.
1263
1264         RIM PR #159998
1265
1266         Add a parameter to LayerRenderer::compositeBuffer() indicating whether
1267         the buffer contents are opaque, and set the GL blend mode accordingly.
1268
1269         This is not currently testable using BlackBerry testing infrastructure.
1270
1271         Reviewed internally by Jakob Petsovits.
1272
1273         * platform/graphics/blackberry/LayerRenderer.cpp:
1274         (WebCore::LayerRenderer::compositeBuffer):
1275         * platform/graphics/blackberry/LayerRenderer.h:
1276         (LayerRenderer):
1277
1278 2012-06-07  Alexei Filippov  <alexeif@chromium.org>
1279
1280         Web Inspector: reuse edge_count field of heap snapshot to store retained size
1281         https://bugs.webkit.org/show_bug.cgi?id=88416
1282
1283         The edge_count field is unused after node first edge indexes have been built.
1284         Store node retained size in there instead of allocating an extra array for it.
1285
1286         Reviewed by Vsevolod Vlasov.
1287
1288         * inspector/front-end/HeapSnapshot.js:
1289         (WebInspector.HeapSnapshotNode.prototype.retainedSize):
1290         (WebInspector.HeapSnapshot.prototype._calculateRetainedSizes):
1291
1292 2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1293
1294         Unreviewed, rolling out r119694.
1295         http://trac.webkit.org/changeset/119694
1296         https://bugs.webkit.org/show_bug.cgi?id=88529
1297
1298         it broke PrerenderBrowserTest.PrerenderHTML5VideoNetwork
1299         (Requested by loislo on #webkit).
1300
1301         * html/HTMLMediaElement.cpp:
1302         * html/HTMLMediaElement.h:
1303         (HTMLMediaElement):
1304         * html/canvas/CanvasRenderingContext.cpp:
1305         (WebCore::CanvasRenderingContext::wouldTaintOrigin):
1306         * platform/graphics/MediaPlayer.cpp:
1307         * platform/graphics/MediaPlayer.h:
1308         (MediaPlayer):
1309         * platform/graphics/MediaPlayerPrivate.h:
1310
1311 2012-06-07  Shinya Kawanaka  <shinyak@chromium.org>
1312
1313         Delete a contenteditable element having a Shadow DOM causes a crash.
1314         https://bugs.webkit.org/show_bug.cgi?id=86345
1315
1316         Reviewed by Ryosuke Niwa.
1317
1318         In VisibleSelection::validate(), m_start.downstream() or m_end.upstream() might cross
1319         editing boundaries. So we adjust selection after calling them again.
1320
1321         Test: editing/shadow/select-contenteditable-shadowhost.html
1322
1323         * editing/VisibleSelection.cpp:
1324         (WebCore::VisibleSelection::validate):
1325
1326 2012-06-07  Vivek Galatage  <vivekgalatage@gmail.com>
1327
1328         No new line at the end for SVGCSSPropertyNames.in causes compilation warning
1329         https://bugs.webkit.org/show_bug.cgi?id=88503
1330
1331         Reviewed by Ryosuke Niwa.
1332
1333         Added new line at the end of the file.
1334
1335         No new tests required.
1336
1337         * css/SVGCSSPropertyNames.in:
1338
1339 2012-06-07  Csaba Osztrogonác  <ossy@webkit.org>
1340
1341         [Qt][Win] Use OS(WINDOWS) instead of Q_WS_WIN in WebCore/platform/graphics/GraphicsContext.h
1342         https://bugs.webkit.org/show_bug.cgi?id=88305
1343
1344         Reviewed by Simon Hausmann.
1345
1346         * platform/graphics/GraphicsContext.h: Buildfix.
1347         (GraphicsContext):
1348
1349 2012-06-07  Shinya Kawanaka  <shinyak@chromium.org>
1350
1351         Incorrect data retrieved in calls to get selection data in client->textWillBeReplaced from CharacterData::setDataAndUpdate
1352         https://bugs.webkit.org/show_bug.cgi?id=66120
1353
1354         Reviewed by Ryosuke Niwa.
1355
1356         Since FrameSelection::textWillBeReplaced was called before replacing text, updated Selection became
1357         temporarily invalid. The invalid selection was set to updateSelection(), so client will have
1358         invalid selection.
1359
1360         This patch makes calling updateSelection() after updating selection.
1361
1362         No new tests, it's too hard to create a correct test cases in DRT.
1363
1364         * dom/CharacterData.cpp:
1365         (WebCore::CharacterData::setDataAndUpdate):
1366         * editing/FrameSelection.cpp:
1367         (WebCore::updatePositionAfterAdoptingTextReplacement):
1368         (WebCore::FrameSelection::textWasReplaced):
1369         * editing/FrameSelection.h:
1370         (FrameSelection):
1371
1372 2012-06-07  Li Yin  <li.yin@intel.com>
1373
1374         FileAPI: If type consists of non-ASCII characters in Blob constructor, it should throw a SyntaxError.
1375         https://bugs.webkit.org/show_bug.cgi?id=88411
1376
1377         Reviewed by Kentaro Hara.
1378
1379         From spec: http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
1380         If type consists of any non-ASCII characters, throw a SyntaxError and
1381         return from this algorithm.
1382         This patch checks the String is ASCii or not, if not, throw SyntaxError.
1383
1384         Test: fast/files/blob-constructor.html
1385
1386         * bindings/js/JSBlobCustom.cpp:
1387         (WebCore::JSBlobConstructor::constructJSBlob):
1388         * bindings/v8/custom/V8BlobCustom.cpp:
1389         (WebCore::V8Blob::constructorCallback):
1390
1391 2012-06-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1392
1393         InsertUnorderedList and InsertOrderedList (execCommand) do not remove bullets
1394         https://bugs.webkit.org/show_bug.cgi?id=84597
1395
1396         Reviewed by Ryosuke Niwa.
1397
1398         Comparison between start and end VisiblePositions will fail when a position inside
1399         a paragraph is compared with one at the start of the paragraph.
1400         
1401         This fix thus converts the end VisiblePosition (which could be inside the paragraph)
1402         to the start of the paragraph thereby enabling a proper comparison of start and end
1403         positions.
1404
1405         Test: editing/execCommand/remove-list-from-multi-list-items.html
1406
1407         * editing/InsertListCommand.cpp:
1408         (WebCore::InsertListCommand::selectionHasListOfType):
1409
1410 2012-06-07  Li Yin  <li.yin@intel.com>
1411
1412         [FileAPI] FileReader should throw an InvalidStateError exception when readyState is LOADING
1413         https://bugs.webkit.org/show_bug.cgi?id=88212
1414
1415         Reviewed by Jian Li.
1416
1417         From Spec: http://www.w3.org/TR/FileAPI/#readAsBinaryString
1418         FileReader should throw an InvalidStateError exception instead of NOT_ALLOWED_ERR
1419         when the readyState is LOADING.
1420         Also delete OperationNotAllowedException related code, because it is not longer needed.
1421
1422         Tests: fast/files/read-file-async.html
1423                fast/files/workers/worker-read-file-async.html
1424
1425         * CMakeLists.txt:
1426         * DerivedSources.cpp:
1427         * DerivedSources.make:
1428         * DerivedSources.pri:
1429         * GNUmakefile.list.am:
1430         * Target.pri:
1431         * WebCore.gypi:
1432         * WebCore.vcproj/WebCore.vcproj:
1433         * WebCore.xcodeproj/project.pbxproj:
1434         * dom/DOMExceptions.in:
1435         * fileapi/FileReader.cpp:
1436         (WebCore::FileReader::readInternal): Changed it to throw INVALID_STATE_ERR.
1437         * fileapi/FileReader.idl: Changed it to raise DOMException for all read methods.
1438         * fileapi/OperationNotAllowedException.cpp: Removed.
1439         * fileapi/OperationNotAllowedException.h: Removed.
1440         * fileapi/OperationNotAllowedException.idl: Removed.
1441
1442 2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1443
1444         Unreviewed, rolling out r119689.
1445         http://trac.webkit.org/changeset/119689
1446         https://bugs.webkit.org/show_bug.cgi?id=88516
1447
1448         it broke didDrawNotCalledOnScissoredLayer webkit_unit_test
1449         (Requested by loislo on #webkit).
1450
1451         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1452         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1453         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
1454
1455 2012-06-07  Ami Fischman  <fischman@chromium.org>
1456
1457         Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
1458         https://bugs.webkit.org/show_bug.cgi?id=88349
1459
1460         Reviewed by Adam Barth.
1461
1462         Test: http/tests/security/video-cross-origin-readback.html
1463
1464         * html/HTMLMediaElement.cpp:
1465         (WebCore::HTMLMediaElement::mediaPlayerCORSMode):
1466         (WebCore):
1467         * html/HTMLMediaElement.h:
1468         (HTMLMediaElement):
1469         * platform/graphics/MediaPlayer.h:
1470         (WebCore::MediaPlayerClient::mediaPlayerCORSMode):
1471
1472 2012-06-07  Hironori Bono  <hbono@chromium.org>
1473
1474         Use light gray for grammar markers on Windows and Linux
1475         https://bugs.webkit.org/show_bug.cgi?id=88398
1476
1477         Reviewed by Ryosuke Niwa.
1478
1479         This change changes the color of grammar markers from dark gray to light gray
1480         and rebaselines a couple of pixel tests affected by this change.
1481
1482         No new tests because it changes the marker color of an existing test 'grammar-markers.html'.
1483
1484         * platform/graphics/skia/GraphicsContextSkia.cpp: Change dark gray to light gray.
1485
1486 2012-06-07  Yoshifumi Inoue  <yosin@chromium.org>
1487
1488         [Platform] Introduce conversion from/to Deciaml to/from double
1489         https://bugs.webkit.org/show_bug.cgi?id=88480
1490
1491         Reviewed by Kent Tamura.
1492
1493         This patch added functions for Decimal/Double conversion and isInfinity
1494         for reducing patch size of introducing Decimal arithmetic, bug 88383.
1495
1496         Tests: WebKit/chromium/tests/DecimalTest.cpp
1497
1498         * platform/Decimal.cpp:
1499         (WebCore::Decimal::fromDouble): Added.
1500         (WebCore::Decimal::toDouble): Added.
1501         * platform/Decimal.h:
1502         (WebCore::Decimal::EncodedData::isInfinity): Added for isinf()
1503         (WebCore::Decimal::isInfinity): Added.
1504
1505 2012-06-06  Xianzhu Wang  <wangxianzhu@chromium.org>
1506
1507         Element.getBoundingClientRect() and Element.getClientRects() return incorrect values in frames in a scaled page
1508         https://bugs.webkit.org/show_bug.cgi?id=88430
1509
1510         Element.getBoudingClientRect() and Element.getClientRects() should not scale back the rects
1511         if the element is in a frame because page scale only apply to elements in the main frame.
1512
1513         Reviewed by James Robinson.
1514
1515         Tests: fast/dom/Element/scale-page-bounding-client-rect-in-frame.html
1516                fast/dom/Element/scale-page-client-rects-in-frame.html
1517
1518         * dom/Document.cpp:
1519         (WebCore):
1520         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): Extracted from Element.cpp and Range.cpp and fixed issue of pageScale in frames.
1521         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Extracted from Element.cpp and fixed issue of pageScale in frames.
1522         * dom/Document.h:
1523         (WebCore):
1524         (Document):
1525         * dom/Element.cpp:
1526         (WebCore::Element::getClientRects):
1527         (WebCore::Element::getBoundingClientRect):
1528         * dom/Range.cpp:
1529         (WebCore):
1530         (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale): Moved into Document and fixed issue of pageScale in frames.
1531         (WebCore::Range::getBorderAndTextQuads):
1532         * rendering/RenderObject.h: Removed adjustFloatQuadForPageScale and adjustFloatRectForPageScale because they seem unrelated to RenderObject.
1533         (WebCore):
1534
1535 2012-06-06  Dana Jansens  <danakj@chromium.org>
1536
1537         [chromium] In each composited frame, didDraw() should only be called on layers for which willDraw() was called
1538         https://bugs.webkit.org/show_bug.cgi?id=88469
1539
1540         Reviewed by James Robinson.
1541
1542         Unit test: CCLayerTreeHostImplTest.didDrawNotCalledOnScissoredLayer
1543
1544         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1545         (WebCore::shouldDrawLayer):
1546         (WebCore):
1547         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1548         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
1549
1550 2012-06-06  Andy Estes  <aestes@apple.com>
1551
1552         Wrap uppercaseWord, lowercaseWord, and capitalizeWord with USE(APPKIT)
1553         https://bugs.webkit.org/show_bug.cgi?id=88504
1554
1555         Reviewed by Dan Bernstein.
1556
1557         uppercaseWord, lowercaseWord, and capitalizeWord are methods declared
1558         by NSResponder that subclasses are expected to implement. WebKit should
1559         only support these implementations on platforms that use AppKit.
1560
1561         * WebCore.exp.in:
1562         * editing/Editor.cpp:
1563         * editing/Editor.h:
1564         * loader/EmptyClients.h:
1565         * page/ContextMenuController.cpp:
1566         * page/EditorClient.h:
1567
1568 2012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1569
1570         Unreviewed, rolling out r119683.
1571         http://trac.webkit.org/changeset/119683
1572         https://bugs.webkit.org/show_bug.cgi?id=88505
1573
1574         it broke webkit-unit-test
1575         WebLayerTreeViewThreadedTest.InstrumentationCallbacks on mac
1576         (Requested by loislo on #webkit).
1577
1578         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1579         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
1580         (WebCore::CCLayerTreeHost::setVisible):
1581
1582 2012-06-06  Robert Kroeger  <rjkroege@chromium.org>
1583
1584         [Chromium] Re-enable handling of smooth scrolling on Chromium Linux/Windows
1585         https://bugs.webkit.org/show_bug.cgi?id=87535 by adding support for
1586         m_hasPreciseScrollingDelta on all Chromium platforms and adjusting ScrollAnimator
1587         and ScrollAnimatorNone accordingly to let m_hasPreciseScrollingDelta == true
1588         force exact (non-animated) scrolling.
1589
1590         Reviewed by James Robinson.
1591
1592         Updated WebKit unit tests to validate change.
1593
1594         * platform/PlatformWheelEvent.h:
1595         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Adjusted #ifdefs to
1596         make m_hasPreciseScrollingDelta available on all Chromium platforms.
1597         (PlatformWheelEvent):
1598         * platform/ScrollAnimator.cpp:
1599         (WebCore::ScrollAnimator::handleWheelEvent): Default scroll type is set based on 
1600         m_hasPreciseScrollingDelta value.
1601         * platform/ScrollAnimatorNone.cpp:
1602         (WebCore::ScrollAnimatorNone::scroll): Scroll precisely when necessary.
1603         * platform/ScrollTypes.h: Added additional pixel scrolling subtype.
1604         * platform/ScrollableArea.cpp:
1605         (WebCore::ScrollableArea::scroll): Updated for additional pixel scroll subtype.
1606
1607 2012-06-06  Michal Mocny  <mmocny@google.com>
1608
1609         [chromium] Stop dropping texture limits when the layer tree host becomes invisible, and initialize with 0 allocation.
1610         https://bugs.webkit.org/show_bug.cgi?id=87747
1611
1612         Reviewed by Adrienne Walker.
1613
1614         GpuMemoryManager manages texture memory allocation limits. It will send a 0 allocation when a renderer becomes
1615         invisible, and an appropriate allocation after a renderer is initialized.  These numbers will change
1616         depending on the state of memory across devices and other renderers, so we would like to remove all explicit
1617         management by the renderers themselves.
1618
1619         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1620         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
1621         (WebCore::CCLayerTreeHost::setVisible):
1622
1623 2012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1624
1625         Unreviewed, rolling out r119680.
1626         http://trac.webkit.org/changeset/119680
1627         https://bugs.webkit.org/show_bug.cgi?id=88498
1628
1629         It broke mac build (Requested by kinuko on #webkit).
1630
1631         * fileapi/File.cpp:
1632         (WebCore::File::File):
1633         (WebCore::File::lastModifiedDate):
1634         (WebCore::File::lastModifiedDateForBinding):
1635         (WebCore):
1636         (WebCore::File::captureSnapshot):
1637         * fileapi/File.h:
1638         (File):
1639         * fileapi/File.idl:
1640         * platform/FileMetadata.h:
1641         (WebCore::FileMetadata::FileMetadata):
1642         * platform/FileSystem.h:
1643         * platform/chromium/support/WebHTTPBody.cpp:
1644         (WebKit::WebHTTPBody::elementAt):
1645         * platform/network/BlobData.cpp:
1646         (WebCore):
1647
1648 2012-06-06  Kinuko Yasuda  <kinuko@chromium.org>
1649
1650         File::lastModifiedDate should use NaN or separate boolean flag for null Date value
1651         https://bugs.webkit.org/show_bug.cgi?id=87826
1652
1653         Reviewed by Kent Tamura.
1654
1655         Test: http/tests/local/fileapi/file-last-modified-after-delete.html
1656
1657         * fileapi/File.cpp:
1658         (WebCore::File::File):
1659         (WebCore::File::captureSnapshot):
1660         (WebCore::File::lastModifiedDate):
1661         (WebCore::File::lastModifiedDateForBinding): Removed.
1662         * fileapi/File.h:
1663         (File):
1664         * fileapi/File.idl:
1665         * platform/FileMetadata.h:
1666         (WebCore::FileMetadata::FileMetadata):
1667         * platform/FileSystem.h:
1668         * platform/chromium/support/WebHTTPBody.cpp:
1669         (WebKit::WebHTTPBody::elementAt):
1670         * platform/network/BlobData.cpp:
1671         (WebCore):
1672
1673 2012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1674
1675         Unreviewed, rolling out r119668.
1676         http://trac.webkit.org/changeset/119668
1677         https://bugs.webkit.org/show_bug.cgi?id=88493
1678
1679         Hitting assertions in debug builds (Requested by rniwa on
1680         #webkit).
1681
1682         * rendering/RenderBlock.cpp:
1683         (WebCore::RenderBlock::localCaretRect):
1684         * rendering/RenderBoxModelObject.cpp:
1685         * rendering/RenderBoxModelObject.h:
1686         (RenderBoxModelObject):
1687         * rendering/RenderInline.cpp:
1688         * rendering/RenderInline.h:
1689         (RenderInline):
1690
1691 2012-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
1692
1693         Cache isSelfPaintingLayer() for better performance
1694         https://bugs.webkit.org/show_bug.cgi?id=88464
1695
1696         Reviewed by Simon Fraser.
1697
1698         Covered by existing tests (repaint tests among them).
1699
1700         isSelfPaintingLayer() has shown up several times on some scrolling benchmarks due
1701         to the function being called several time per paint phase. This change caches the
1702         boolean at style change time.
1703         
1704         On http://dglazkov.github.com/performance-tests/biggrid.html, this nearly speed-up
1705         painting by 2 (lowering the time taken to paint the newly exposed area when scrolling
1706         on a 10,000 * 100 table from 95ms to 50ms).
1707
1708         * rendering/RenderLayer.cpp:
1709         (WebCore::RenderLayer::RenderLayer):
1710         Initialized m_isSelfPaintingLayer here.
1711
1712         (WebCore::RenderLayer::paintLayer):
1713         Changed the order of the checks to get the more likely check first.
1714
1715         (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
1716         Renamed from isSelfPaintingLayer to make m_isNormalFlowOnly.
1717
1718         (WebCore::RenderLayer::styleChanged):
1719         Added code to update our cached m_isSelfPaintingLayer.
1720
1721         * rendering/RenderLayer.h:
1722         (WebCore::RenderLayer::isSelfPaintingLayer):
1723         Changed to return m_isSelfPaintingLayer.
1724
1725 2012-06-06  Yoshifumi Inoue  <yosin@chromium.org>
1726
1727         REGRESSION(r109729) [Form] Rendering of select/optgroup/option combination is too slow.
1728         https://bugs.webkit.org/show_bug.cgi?id=88059
1729
1730         Reviewed by Kent Tamura.
1731
1732         This patch changes not to share RenderStyle object for option and
1733         optgroup element regardless attributes.
1734
1735         When we tried to shared RenderStyle object, rendering performance was
1736         good but we had issue in selected option and text transform, see
1737         https://bugs.webkit.org/show_bug.cgi?id=88405 for details.
1738
1739         No new tests. This patch doesn't change behavior but rendering performance.
1740
1741         * css/StyleResolver.cpp:
1742         (WebCore::StyleResolver::canShareStyleWithElement): Changed to always
1743         return false for option and optgroup.
1744
1745 2012-06-06  Alec Flett  <alecflett@chromium.org>
1746
1747         IndexedDB: Optimize single-key get()
1748         https://bugs.webkit.org/show_bug.cgi?id=85288
1749
1750         Reviewed by Tony Chang.
1751
1752         No new tests, this is just an optimization.
1753
1754         After a recent refactoring, we started creating
1755         an internal cursor with every call to get(). The
1756         most common use of get() is with a single key,
1757         so provide a fast-path to avoid creating the cursor.
1758
1759         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
1760         (WebCore::IDBIndexBackendImpl::getByRangeInternal):
1761         * Modules/indexeddb/IDBKeyRange.h:
1762         (WebCore::IDBKeyRange::isOnlyKey):
1763         (IDBKeyRange):
1764         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1765         (WebCore::IDBObjectStoreBackendImpl::getByRangeInternal):
1766
1767 2012-06-06  Shezan Baig  <shezbaig.wk@gmail.com>
1768
1769         Caret is not rendered in empty inline contenteditable elements
1770         https://bugs.webkit.org/show_bug.cgi?id=85793
1771
1772         Reviewed by Ryosuke Niwa.
1773
1774         Override localCaretRect in RenderInline. The implementation was almost
1775         identical to localCaretRect in RenderBlock for empty block elements, so
1776         I refactored RenderBlock::localCaretRect and moved the logic to a new
1777         method 'localCaretRectForEmptyElement' in RenderBoxModelObject. The
1778         implementation of 'localCaretRect' in RenderBlock and RenderInline both
1779         use this helper method in RenderBoxModelObject.
1780
1781         Tests: editing/selection/caret-in-empty-inline-1.html
1782                editing/selection/caret-in-empty-inline-2.html
1783
1784         * rendering/RenderBlock.cpp:
1785         (WebCore::RenderBlock::localCaretRect):
1786         Modified to use RenderBoxModelObject::localCaretRectForEmptyElement.
1787         * rendering/RenderBoxModelObject.cpp:
1788         (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
1789         (WebCore):
1790         * rendering/RenderBoxModelObject.h:
1791         (RenderBoxModelObject):
1792         Add localCaretRectForEmptyElement helper method.
1793         * rendering/RenderInline.cpp:
1794         (WebCore::RenderInline::localCaretRect):
1795         (WebCore):
1796         * rendering/RenderInline.h:
1797         (RenderInline):
1798         Override localCaretRect using localCaretRectForEmptyElement.
1799
1800 2012-06-06  Alexis Menard  <alexis.menard@openbossa.org>
1801
1802         Fix border-image-slice failures on http://css3test.com.
1803         https://bugs.webkit.org/show_bug.cgi?id=88328
1804
1805         Reviewed by Tony Chang.
1806
1807         The old parsing code was assuming that the fill keyword comes after the
1808         numbers or the percentage values. http://www.w3.org/TR/css3-background/#the-border-image-slice
1809         defines the property like this : [<number> | <percentage>]{1,4} && fill? where the fill
1810         keyword is not mandatory. But according to http://www.w3.org/TR/CSS2/about.html "&&" 
1811         separates two or more components, all of which must occur, in any order. So the previous
1812         code was wrong the fill can come first following by the percentages or the numbers. http://css3test.com
1813         was covering this particular case. I took the opportunity to extend our coverage 
1814         by adding tests on many different values the boder-image-slice property could take. I
1815         also did a small cleanup by removing unused functions in BorderImageSliceParseContext.
1816
1817         Test: fast/css/getComputedStyle/getComputedStyle-border-image-slice.html
1818
1819         * css/CSSParser.cpp:
1820         (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
1821         (WebCore::BorderImageSliceParseContext::commitNumber):
1822         (WebCore::BorderImageSliceParseContext::commitFill):
1823
1824 2012-06-06  Levi Weintraub  <leviw@chromium.org>
1825
1826         Use enclosingIntRect instead of pixelSnappedIntRect in RenderFileUploadControl
1827         https://bugs.webkit.org/show_bug.cgi?id=88454
1828
1829         Reviewed by Kent Tamura.
1830
1831         Properly clipping the file upload control to avoid clipping out the top of the file upload button
1832         when the control is positioned at a sub-pixel offset that rounds up.
1833
1834         Test: fast/sub-pixel/file-upload-control-at-fractional-offset.html
1835
1836         * rendering/RenderFileUploadControl.cpp:
1837         (WebCore::RenderFileUploadControl::paintObject):
1838
1839 2012-06-06  Filip Pizlo  <fpizlo@apple.com>
1840
1841         Global object variable accesses should not require an extra load
1842         https://bugs.webkit.org/show_bug.cgi?id=88385
1843
1844         Reviewed by Gavin Barraclough and Geoffrey Garen.
1845
1846         Updated JSDOMWindowBase.cpp to use the new symbol table API. this->symbolTableFoo(...)
1847         becomes symbolTableFoo(this, ...).
1848                 
1849         No new tests because no change in behavior.
1850
1851         * bindings/js/JSDOMWindowBase.cpp:
1852         (WebCore::JSDOMWindowBase::updateDocument):
1853
1854 2012-06-06  James Robinson  <jamesr@chromium.org>
1855
1856         [chromium] Move implementation of WebCore::GraphicsContext3D and related from WebKit/chromium/src to WebCore/platform/chromium/support
1857         https://bugs.webkit.org/show_bug.cgi?id=86257
1858
1859         Reviewed by Kenneth Russell.
1860
1861         The WebCore platform interfaces GraphicsContext3D and Extensions3DChromium are implemented in chromium
1862         on top of the Platform interface WebGraphicsContext3D. This moves the implementation support code from
1863         WebKit/chromium/src to WebCore/platform/chromium/support, which avoids having code in WebKit/ implementing WebCore
1864         interfaces and allows code in WebCore/platform to use this support code directly where appropriate.
1865
1866         Refactor only, no new functionality or tests.
1867
1868         * WebCore.gypi:
1869         * platform/chromium/support/Extensions3DChromium.cpp: Renamed from Source/WebKit/chromium/src/Extensions3DChromium.cpp.
1870         (WebCore):
1871         (WebCore::Extensions3DChromium::Extensions3DChromium):
1872         (WebCore::Extensions3DChromium::~Extensions3DChromium):
1873         (WebCore::Extensions3DChromium::supports):
1874         (WebCore::Extensions3DChromium::ensureEnabled):
1875         (WebCore::Extensions3DChromium::isEnabled):
1876         (WebCore::Extensions3DChromium::getGraphicsResetStatusARB):
1877         (WebCore::Extensions3DChromium::blitFramebuffer):
1878         (WebCore::Extensions3DChromium::renderbufferStorageMultisample):
1879         (WebCore::Extensions3DChromium::postSubBufferCHROMIUM):
1880         (WebCore::Extensions3DChromium::mapBufferSubDataCHROMIUM):
1881         (WebCore::Extensions3DChromium::unmapBufferSubDataCHROMIUM):
1882         (WebCore::Extensions3DChromium::mapTexSubImage2DCHROMIUM):
1883         (WebCore::Extensions3DChromium::unmapTexSubImage2DCHROMIUM):
1884         (WebCore::Extensions3DChromium::setVisibilityCHROMIUM):
1885         (WebCore::Extensions3DChromium::discardFramebufferEXT):
1886         (WebCore::Extensions3DChromium::ensureFramebufferCHROMIUM):
1887         (WebCore::Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM):
1888         (WebCore::Extensions3DChromium::createVertexArrayOES):
1889         (WebCore::Extensions3DChromium::deleteVertexArrayOES):
1890         (WebCore::Extensions3DChromium::isVertexArrayOES):
1891         (WebCore::Extensions3DChromium::bindVertexArrayOES):
1892         (WebCore::Extensions3DChromium::getTranslatedShaderSourceANGLE):
1893         (WebCore::Extensions3DChromium::setSwapBuffersCompleteCallbackCHROMIUM):
1894         (WebCore::Extensions3DChromium::rateLimitOffscreenContextCHROMIUM):
1895         (WebCore::Extensions3DChromium::paintFramebufferToCanvas):
1896         (WebCore::Extensions3DChromium::texImageIOSurface2DCHROMIUM):
1897         (WebCore::Extensions3DChromium::texStorage2DEXT):
1898         (WebCore::Extensions3DChromium::createQueryEXT):
1899         (WebCore::Extensions3DChromium::deleteQueryEXT):
1900         (WebCore::Extensions3DChromium::isQueryEXT):
1901         (WebCore::Extensions3DChromium::beginQueryEXT):
1902         (WebCore::Extensions3DChromium::endQueryEXT):
1903         (WebCore::Extensions3DChromium::getQueryivEXT):
1904         (WebCore::Extensions3DChromium::getQueryObjectuivEXT):
1905         * platform/chromium/support/GraphicsContext3DChromium.cpp: Renamed from Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp.
1906         (WebCore):
1907         (WebCore::GraphicsContext3D::GraphicsContext3D):
1908         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1909         (WebCore::GraphicsContext3D::setContextLostCallback):
1910         (WebCore::GraphicsContext3D::setErrorMessageCallback):
1911         (WebCore::GraphicsContext3D::create):
1912         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
1913         (WebCore::GraphicsContext3D::platformTexture):
1914         (WebCore::GraphicsContext3D::grContext):
1915         (WebCore::GraphicsContext3D::platformLayer):
1916         (WebCore::GraphicsContext3D::isGLES2Compliant):
1917         (WebCore::GraphicsContext3D::isResourceSafe):
1918         (WebCore::GraphicsContext3D::bindAttribLocation):
1919         (WebCore::GraphicsContext3D::bufferData):
1920         (WebCore::GraphicsContext3D::getActiveAttrib):
1921         (WebCore::GraphicsContext3D::getActiveUniform):
1922         (WebCore::GraphicsContext3D::getAttribLocation):
1923         (WebCore::GraphicsContext3D::getContextAttributes):
1924         (WebCore::GraphicsContext3D::getProgramInfoLog):
1925         (WebCore::GraphicsContext3D::getShaderInfoLog):
1926         (WebCore::GraphicsContext3D::getShaderSource):
1927         (WebCore::GraphicsContext3D::getString):
1928         (WebCore::GraphicsContext3D::getUniformLocation):
1929         (WebCore::GraphicsContext3D::shaderSource):
1930         (WebCore::GraphicsContext3D::texImage2D):
1931         (WebCore::GraphicsContext3D::texSubImage2D):
1932         (WebCore::GraphicsContext3D::reshape):
1933         (WebCore::GraphicsContext3D::markContextChanged):
1934         (WebCore::GraphicsContext3D::layerComposited):
1935         (WebCore::GraphicsContext3D::markLayerComposited):
1936         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
1937         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
1938         (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas):
1939         (WebCore::GraphicsContext3D::getExtensions):
1940         (WebCore::GraphicsContext3D::getInternalFramebufferSize):
1941         * platform/chromium/support/GraphicsContext3DPrivate.cpp: Renamed from Source/WebKit/chromium/src/GraphicsContext3DPrivate.cpp.
1942         (WebCore):
1943         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1944         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1945         (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromWebContext):
1946         (WebCore::GraphicsContext3DPrivate::extractWebGraphicsContext3D):
1947         (GrMemoryAllocationChangedCallback):
1948         (WebCore::GrMemoryAllocationChangedCallback::GrMemoryAllocationChangedCallback):
1949         (WebCore::GrMemoryAllocationChangedCallback::onGpuMemoryAllocationChanged):
1950         (WebCore::GraphicsContext3DPrivate::grContext):
1951         (WebCore::GraphicsContext3DPrivate::markContextChanged):
1952         (WebCore::GraphicsContext3DPrivate::layerComposited):
1953         (WebCore::GraphicsContext3DPrivate::markLayerComposited):
1954         (WebCore::GraphicsContext3DPrivate::paintFramebufferToCanvas):
1955         (GraphicsContext3DContextLostCallbackAdapter):
1956         (WebCore::GraphicsContext3DContextLostCallbackAdapter::GraphicsContext3DContextLostCallbackAdapter):
1957         (WebCore::GraphicsContext3DContextLostCallbackAdapter::~GraphicsContext3DContextLostCallbackAdapter):
1958         (WebCore::GraphicsContext3DContextLostCallbackAdapter::onContextLost):
1959         (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
1960         (GraphicsContext3DErrorMessageCallbackAdapter):
1961         (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::GraphicsContext3DErrorMessageCallbackAdapter):
1962         (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::~GraphicsContext3DErrorMessageCallbackAdapter):
1963         (WebCore::GraphicsContext3DErrorMessageCallbackAdapter::onErrorMessage):
1964         (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
1965         (WebCore::GraphicsContext3DPrivate::getExtensions):
1966         (WebCore::GraphicsContext3DPrivate::initializeExtensions):
1967         (WebCore::GraphicsContext3DPrivate::supportsExtension):
1968         (WebCore::GraphicsContext3DPrivate::ensureExtensionEnabled):
1969         (WebCore::GraphicsContext3DPrivate::isExtensionEnabled):
1970         (WebCore::GraphicsContext3DPrivate::isResourceSafe):
1971         (GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
1972         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
1973         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::~GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
1974         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::onMemoryAllocationChanged):
1975         (WebCore::GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM):
1976         (GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
1977         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
1978         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::~GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
1979         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::onSwapBuffersComplete):
1980         (WebCore::GraphicsContext3DPrivate::setSwapBuffersCompleteCallbackCHROMIUM):
1981         * platform/chromium/support/GraphicsContext3DPrivate.h: Renamed from Source/WebKit/chromium/src/GraphicsContext3DPrivate.h.
1982         (WebKit):
1983         (WebCore):
1984         (GraphicsContext3DPrivate):
1985         (WebCore::GraphicsContext3DPrivate::webContext):
1986         (WebCore::GraphicsContext3DPrivate::preserveDrawingBuffer):
1987
1988 2012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1989
1990         Unreviewed, rolling out r119624.
1991         http://trac.webkit.org/changeset/119624
1992         https://bugs.webkit.org/show_bug.cgi?id=88472
1993
1994         Caused worker tests to become flaky (Requested by mhahnenberg
1995         on #webkit).
1996
1997         * workers/AbstractWorker.cpp:
1998         (WebCore::AbstractWorker::~AbstractWorker):
1999         * workers/WorkerMessagingProxy.cpp:
2000         (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
2001
2002 2012-06-06  Brady Eidson  <beidson@apple.com>
2003
2004         <rdar://problem/11575112> and https://bugs.webkit.org/show_bug.cgi?id=88428
2005         REGRESSION (r115654): Opening many non-English WebArchives shows obvious encoding issues
2006
2007         Reviewed by Nate Chapin.
2008
2009         Test: fast/loader/webarchive-encoding-respected.html
2010
2011         * loader/DocumentLoader.cpp:
2012         (WebCore::DocumentLoader::commitData): Properly set the main resource encoding from the webarchive.
2013
2014 2012-06-06  Mark Hahnenberg  <mhahnenberg@apple.com>
2015
2016         Worker tear-down can re-enter JSC during GC finalization
2017         https://bugs.webkit.org/show_bug.cgi?id=88449
2018
2019         Reviewed by Geoffrey Garen.
2020
2021         No new tests. Current regression tests cover these changes.
2022
2023         * workers/AbstractWorker.cpp: 
2024         (WebCore::AbstractWorker::~AbstractWorker): We don't need to call onDestroyWorker() here, it 
2025         will be called elsewhere in contextDestroyed().
2026         * workers/WorkerMessagingProxy.cpp:
2027         (WebCore::WorkerMessagingProxy::workerObjectDestroyed): We make the call to terminateWorkerContext()
2028         and workerContextDestroyed() asynchronous to avoid entering JSC during GC finalization.
2029
2030 2012-06-06  Tony Chang  <tony@chromium.org>
2031
2032         webkit crashes on debug builds when running IETC flexbox-ordinal-group-001.htm
2033         https://bugs.webkit.org/show_bug.cgi?id=85832
2034
2035         Reviewed by Ojan Vafai.
2036
2037         We were using a HashSet<unsigned>, which can't hold the value of 0.
2038         According to the spec, 0 isn't a valid value, so at CSS parse time,
2039         reject the value 0. This lets us pass the test, although that's kind
2040         of by accident.
2041
2042         We could allow 0 for box-ordinal-group, but there are some perf implications
2043         to having allowing a value below the initial value (1 in this case).
2044
2045         We still allow 0 for box-flex-group, because that's what the existing code
2046         does and there are tests expecting this behavior.
2047
2048         No new tests, covered by ietestcenter/css3/flexbox/flexbox-ordinal-group-001.htm
2049         which was crashing.
2050
2051         * css/CSSParser.cpp:
2052         (WebCore::CSSParser::parseValue): Reject 0 for -webkit-box-ordinal-group.
2053
2054 2012-06-06  Ojan Vafai  <ojan@chromium.org>
2055
2056         Remove some magic from the -webkit-flex shorthand parsing to match the changes in the spec
2057         https://bugs.webkit.org/show_bug.cgi?id=88444
2058
2059         Reviewed by Tony Chang.
2060
2061         -Unset positive flex defaults to 0.
2062         -Unset negative flex defaults to 1. No magic of doing something different if positive flex was set.
2063
2064         * css/CSSParser.cpp:
2065         (WebCore::CSSParser::parseFlex):
2066
2067 2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>
2068
2069         Revert r119440 now that I have a time to rebaseline them all!
2070
2071         * platform/ScrollbarThemeComposite.cpp:
2072         (WebCore::ScrollbarThemeComposite::thumbLength):
2073
2074 2012-06-06  Joshua Bell  <jsbell@chromium.org>
2075
2076         IndexedDB: Infinite recursion in IDBObjectStore.openCursor(key, legacy_constant)
2077         https://bugs.webkit.org/show_bug.cgi?id=88431
2078
2079         Reviewed by Tony Chang.
2080
2081         Function was calling itself, rather than delegating to the correct (IDBKeyRange) overload.
2082
2083         Test: storage/indexeddb/legacy-constants.html
2084
2085         * Modules/indexeddb/IDBObjectStore.cpp:
2086         (WebCore::IDBObjectStore::openCursor):
2087
2088 2012-06-06  Joshua Bell  <jsbell@chromium.org>
2089
2090         IndexedDB: Rename IDBFactory.getDatabaseNames() to webkitGetDatabaseNames()
2091         https://bugs.webkit.org/show_bug.cgi?id=86874
2092
2093         Reviewed by Ojan Vafai.
2094
2095         The function is non-standard, and should be prefixed.
2096
2097         Test: storage/indexeddb/factory-basics.html
2098
2099         * Modules/indexeddb/IDBFactory.idl:
2100
2101 2012-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
2102
2103         Add support for direction on table row group with collapsing borders
2104         https://bugs.webkit.org/show_bug.cgi?id=87900
2105
2106         Reviewed by Ojan Vafai.
2107
2108         Tests: fast/table/border-collapsing/first-cell-left-border-hidden-table-ltr-section-rtl.html
2109                fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html
2110                fast/table/border-collapsing/left-border-table-ltr-section-rtl.html
2111                fast/table/border-collapsing/left-border-table-rtl-section-ltr.html
2112                fast/table/border-collapsing/left-border-table-rtl-section-rtl.html
2113                fast/table/border-collapsing/left-border-vertical-lr-table-ltr-section-rtl.html
2114                fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-ltr.html
2115                fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-rtl.html
2116                fast/table/border-collapsing/rtl-table-left-border-hidden.html
2117                fast/table/border-collapsing/top-border-vertical-rl-table-ltr-section-rtl.html
2118                fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-ltr.html
2119                fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-rtl.html
2120                fast/table/table-ltr-section-rtl.html
2121                fast/table/table-rtl-section-ltr.html
2122                fast/table/table-rtl-section-rtl.html
2123
2124         This change enables proper support for direction on table row group.
2125         The current code would allow people to set direction on the row group but would still
2126         use the table's code for directionality checks (with surprising consequences).
2127
2128         The main change involve swapping end / start borders in case of mixed directionality
2129         as those 2 are not in sync.
2130         
2131         Example: <table dir="ltr"><tbody dir="rtl"><td id="cell0"></td><td id="cell1"></td></tbody></table>
2132
2133         Visually:
2134         Table: Start ---------------------> End
2135         Tbody: End <---------------------- Start
2136         Cell:  | #cell0        |           #cell1 |
2137
2138         In this example, the end table border should be compared with the tbody's start border
2139         and the last cell's (in DOM order) start border.
2140
2141         * rendering/RenderTable.cpp:
2142         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
2143         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
2144         Same as the other adjoining functions.
2145
2146         * rendering/RenderTable.h:
2147         (WebCore::RenderTable::lastColumnIndex):
2148         Helper function to get the last column index.
2149
2150         * rendering/RenderTableCell.cpp:
2151         (WebCore::RenderTableCell::computeCollapsedStartBorder):
2152         (WebCore::RenderTableCell::computeCollapsedEndBorder):
2153         Updated to call the table's adjoining border helpers.
2154
2155         * rendering/RenderTableCell.h:
2156         (WebCore::RenderTableCell::styleForCellFlow):
2157         Updated to use the table row group's style now that we properly support it.
2158
2159         (WebCore::RenderTableCell::isFirstOrLastCellInRow):
2160         Debug only helper to make sure we don't call the border adjoining function
2161         on non-terminal cells.
2162
2163         (WebCore::RenderTableCell::borderAdjoiningTableStart):
2164         (WebCore::RenderTableCell::borderAdjoiningTableEnd):
2165         * rendering/RenderTableRow.h:
2166         (WebCore::RenderTableRow::borderAdjoiningTableStart):
2167         (WebCore::RenderTableRow::borderAdjoiningTableEnd):
2168         * rendering/RenderTableSection.cpp:
2169         (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
2170         (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
2171         Updated the previous function to account for mixed directionality.
2172
2173         (WebCore::RenderTableSection::layoutRows):
2174         Move some of the code to setLogicalPositionForCell to match RenderBlock.
2175
2176         (WebCore::RenderTableSection::setLogicalPositionForCell):
2177         Switched direction checks to styleForCellFlow (this doesn't change anything as we
2178         were already properly flipping already but ensure better).
2179
2180         * rendering/RenderTableSection.h:
2181         (WebCore::RenderTableSection::hasSameDirectionAsTable):
2182         Added this helper to know if we have a mixed direction.
2183
2184         (WebCore::RenderTableSection::borderAdjoiningTableStart):
2185         (WebCore::RenderTableSection::borderAdjoiningTableEnd):
2186         Updated to account for mixed directionality.
2187
2188 2012-06-06  Keyar Hood  <keyar@chromium.org>
2189
2190         [Chromium] imageSmoothingEnabled should apply to patterns
2191         https://bugs.webkit.org/show_bug.cgi?id=88103
2192
2193         Reviewed by Stephen White.
2194
2195         Test: fast/canvas/canvas-imageSmoothingEnabled-patterns.html
2196
2197         When drawing patterns on a Canvas, the imageSmoothingEnabled flag is
2198         respected.
2199         * platform/graphics/skia/PlatformContextSkia.cpp:
2200         (WebCore::PlatformContextSkia::setupShader):
2201
2202 2012-06-06  Andrey Adaikin  <aandrey@chromium.org>
2203
2204         Web Inspector: [JSC] Add WebGL instrumentation support
2205         https://bugs.webkit.org/show_bug.cgi?id=87975
2206
2207         Reviewed by Vsevolod Vlasov.
2208
2209         * bindings/js/JSInjectedScriptManager.cpp:
2210         (WebCore::injectAndExecuteFunction):
2211         (WebCore::InjectedScriptManager::createInjectedScript):
2212         (WebCore):
2213         (WebCore::InjectedScriptManager::injectWebGLScript):
2214         * bindings/v8/custom/V8InjectedScriptManager.cpp:
2215         (WebCore::InjectedScriptManager::injectWebGLScript):
2216         * inspector/InjectedScriptManager.cpp:
2217         (WebCore::InjectedScriptManager::wrapWebGLRenderingContextForInstrumentation):
2218         * inspector/InjectedScriptManager.h:
2219         (InjectedScriptManager):
2220         * inspector/InspectorInstrumentation.h:
2221         (InspectorInstrumentation):
2222         * inspector/InspectorWebGLAgent.cpp:
2223         (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
2224         * inspector/InspectorWebGLAgent.h:
2225         (InspectorWebGLAgent):
2226         * inspector/InspectorWebGLInstrumentation.h:
2227         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
2228
2229 2012-06-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2230
2231         Fix a few spelling mistakes in IconDatabase logging
2232
2233         Makes debugging harder if the logging is confusing.
2234
2235         Reviewed by Jocelyn Turcotte.
2236
2237         * loader/icon/IconDatabase.cpp:
2238         (WebCore::IconDatabase::notifyPendingLoadDecisions):
2239         (WebCore::IconDatabase::readFromDatabase):
2240
2241 2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>
2242
2243         Web Inspector: [Compiler] Remove compile-front-end.sh and fix InjectedScriptSource errors.
2244         https://bugs.webkit.org/show_bug.cgi?id=87512
2245
2246         Reviewed by Yury Semikhatsky.
2247
2248         Removed compile-front-end.sh, compile-front-end.py should be used instead now.
2249         Made generate_protocol_externs a python module to call it from compile-front-end.py.
2250         Temporary copy of InjectedScriptSource.js is created and modified to
2251         avoid "This code lacks side effects" warning.
2252
2253         * inspector/compile-front-end.py:
2254         * inspector/compile-front-end.sh: Removed.
2255         * inspector/generate-protocol-externs: Removed.
2256         * inspector/generate_protocol_externs.py: Added.
2257         (full_qualified_type_id):
2258         (param_type):
2259         (generate_protocol_externs):
2260
2261 2012-06-06  Zoltan Herczeg  <zherczeg@webkit.org>
2262
2263         [Qt] REGRESSION(r118616): It made all tests crash in debug mode
2264         https://bugs.webkit.org/show_bug.cgi?id=87701
2265
2266         Reviewed by Csaba Osztrogonác.
2267
2268         Replace WriteBarrier<JSObject> to Weak<JSObject> by introducing a new
2269         QtWeakObjectReference sub class. Rewrite all affected type definitions.
2270
2271         All existing test in debug mode cover this issue.
2272
2273         * bridge/qt/qt_class.cpp:
2274         (JSC::Bindings::QtClass::fallbackObject):
2275         * bridge/qt/qt_instance.cpp:
2276         (QtRuntimeObject):
2277         (JSC::Bindings::QtInstance::removeUnusedMethods):
2278         * bridge/qt/qt_instance.h:
2279         (QtInstance):
2280         (QtWeakObjectReference):
2281         (JSC::Bindings::QtInstance::QtWeakObjectReference::QtWeakObjectReference):
2282         (JSC::Bindings::QtInstance::QtWeakObjectReference::operator=):
2283         (JSC::Bindings::QtInstance::QtWeakObjectReference::get):
2284         * bridge/qt/qt_runtime.cpp:
2285         (JSC::Bindings::QtRuntimeMethodData::finalize):
2286         * bridge/qt/qt_runtime_qt4.cpp:
2287         (JSC::Bindings::QtRuntimeMethodData::finalize):
2288
2289 2012-06-06  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2290
2291         Web Inspector: help/settings screen does not overlay console in split screen mode
2292         https://bugs.webkit.org/show_bug.cgi?id=88352
2293
2294         Reviewed by Pavel Feldman.
2295
2296         * inspector/front-end/HelpScreen.js:
2297         (WebInspector.HelpScreen): Mark view as root.
2298         (WebInspector.HelpScreen.prototype.showModal): Change view parent.
2299         * inspector/front-end/helpScreen.css:
2300         (.help-window-outer): Add panel and status bar indent.
2301         (body.compact .help-window-outer): Ditto.
2302
2303 2012-06-06  Yoshifumi Inoue  <yosin@chromium.org>
2304
2305         [Form] Changes for InputNumber type
2306         https://bugs.webkit.org/show_bug.cgi?id=88394
2307
2308         Reviewed by Kent Tamura.
2309
2310         This patch changes codes for consitency of InputNumber usage for
2311         reducing size of patch when we change InputNumber type alias from
2312         double to Decimal.
2313
2314         No new tests. This patch doesn't change behavior.
2315
2316         * html/BaseDateAndTimeInputType.cpp:
2317         (WebCore::BaseDateAndTimeInputType::serializeWithComponents): Fixed parameter type for getAllowedValueStep.
2318         * html/InputType.cpp:
2319         (WebCore::InputType::minimum): Fixed return value type to InputNumber.
2320         (WebCore::InputType::maximum): ditto.
2321         * html/MonthInputType.cpp:
2322         (WebCore::MonthInputType::defaultValueForStepUp): Fix return value type to InputNumber.
2323         (WebCore::MonthInputType::parseToNumber): ditto.
2324         * html/NumberInputType.cpp:
2325         (WebCore::NumberInputType::setValueAsDouble): Removed extra convertDoubleToInputNumber.
2326         * html/StepRange.cpp:
2327         (WebCore::StepRange::alignValueForStep): Use roundByStep for code sharing.
2328         (WebCore::StepRange::clampValue): ditto.
2329         (WebCore::StepRange::roundByStep): Added.
2330         * html/StepRange.h:
2331         (StepRange): Added a declaration of roundByStep.
2332
2333 2012-06-06  Michael Brüning  <michael.bruning@nokia.com>
2334
2335         [Qt] Fix harmattan builds broken by r119247.
2336         https://bugs.webkit.org/show_bug.cgi?id=88330
2337
2338         Reviewed by Jocelyn Turcotte.
2339
2340         Fix Harmattan build break caused by undefined constant
2341         GL_TEXTURE_RECTANGLE_ARB by adding defined(GL_ARB_texture_rectangle)
2342         guards around TextureMapperGL::drawTextureRectangleARB.
2343
2344         * platform/graphics/texmap/TextureMapperGL.cpp: Added defined(GL_ARB_texture_rectangle) guards around drawTextureRectangleARB.
2345         (WebCore):
2346         * platform/graphics/texmap/TextureMapperGL.h: Added definded(GL_ARB_texture_rectangle) guards around drawTextureRectangleARB.
2347
2348 2012-06-06  Shinya Kawanaka  <shinyak@chromium.org>
2349
2350         PositionIterator:;setOffsetInLeafNode() is not used anywhere.
2351         https://bugs.webkit.org/show_bug.cgi?id=88397
2352
2353         Reviewed by Ryosuke Niwa.
2354
2355         It's not used anywhere. We can remove it safely.
2356
2357         No new tests, no change in behavior.
2358
2359         * WebCore.order:
2360         * dom/PositionIterator.cpp:
2361         * dom/PositionIterator.h:
2362
2363 2012-06-06  Andrey Adaikin  <aandrey@chromium.org>
2364
2365         Web Inspector: [WebGL] Add WebGL instrumentation support on the backend
2366         https://bugs.webkit.org/show_bug.cgi?id=87960
2367
2368         Adds a WebGLAgent, injects a WebGL script upon calling the getContext
2369         method of a HTMLCanvasElement that will wrap the WebGL rendering context
2370         for instrumentation purposes.
2371
2372         Reviewed by Yury Semikhatsky.
2373
2374         * CMakeLists.txt:
2375         * DerivedSources.make:
2376         * DerivedSources.pri:
2377         * GNUmakefile.am:
2378         * GNUmakefile.list.am:
2379         * Target.pri:
2380         * WebCore.gyp/WebCore.gyp:
2381         * WebCore.gypi:
2382         * WebCore.vcproj/WebCore.vcproj:
2383         * WebCore.xcodeproj/project.pbxproj:
2384         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2385         (WebCore::JSHTMLCanvasElement::getContext):
2386         (WebCore::JSHTMLCanvasElement::toDataURL):
2387         * bindings/js/JSInjectedScriptManager.cpp:
2388         (WebCore):
2389         (WebCore::InjectedScriptManager::injectWebGLScript):
2390         * bindings/v8/ScriptState.cpp:
2391         (WebCore::ScriptState::forContext):
2392         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2393         (WebCore::V8HTMLCanvasElement::getContextCallback):
2394         * bindings/v8/custom/V8InjectedScriptManager.cpp:
2395         (WebCore::InjectedScriptManager::createInjectedScript):
2396         (WebCore):
2397         (WebCore::InjectedScriptManager::injectWebGLScript):
2398         (WebCore::InjectedScriptManager::discardInjectedScript):
2399         (WebCore::InjectedScriptManager::injectedScriptFor):
2400         * inspector/CodeGeneratorInspector.py:
2401         * inspector/InjectedScriptManager.cpp:
2402         (WebCore):
2403         (WebCore::InjectedScriptManager::wrapWebGLRenderingContextForInstrumentation):
2404         (WebCore::InjectedScriptManager::injectedWebGLScriptSource):
2405         * inspector/InjectedScriptManager.h:
2406         (InjectedScriptManager):
2407         * inspector/InjectedWebGLScriptSource.js: Added.
2408         * inspector/Inspector.json:
2409         * inspector/InspectorAllInOne.cpp:
2410         * inspector/InspectorController.cpp:
2411         (WebCore::InspectorController::InspectorController):
2412         * inspector/InspectorInstrumentation.h:
2413         (WebCore):
2414         (InspectorInstrumentation):
2415         (WebCore::InspectorInstrumentation::markResourceAsCached):
2416         * inspector/InspectorWebGLAgent.cpp: Added.
2417         (WebCore):
2418         (WebGLAgentState):
2419         (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
2420         (WebCore::InspectorWebGLAgent::~InspectorWebGLAgent):
2421         (WebCore::InspectorWebGLAgent::setFrontend):
2422         (WebCore::InspectorWebGLAgent::clearFrontend):
2423         (WebCore::InspectorWebGLAgent::restore):
2424         (WebCore::InspectorWebGLAgent::enable):
2425         (WebCore::InspectorWebGLAgent::disable):
2426         (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
2427         * inspector/InspectorWebGLAgent.h: Added.
2428         (WebCore):
2429         (InspectorWebGLAgent):
2430         (WebCore::InspectorWebGLAgent::create):
2431         (WebCore::InspectorWebGLAgent::enabled):
2432         * inspector/InspectorWebGLInstrumentation.h: Added.
2433         (WebCore):
2434         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
2435         * inspector/InstrumentingAgents.h:
2436         (WebCore):
2437         (WebCore::InstrumentingAgents::InstrumentingAgents):
2438         (InstrumentingAgents):
2439         (WebCore::InstrumentingAgents::inspectorWebGLAgent):
2440         (WebCore::InstrumentingAgents::setInspectorWebGLAgent):
2441
2442 2012-06-06  Joone Hur  <joone.hur@intel.com>
2443
2444         [GTK] Build fix for Accelerated Compositing with OpenGL
2445         https://bugs.webkit.org/show_bug.cgi?id=88292
2446
2447         Reviewed by Martin Robinson.
2448
2449         Build fix after r119247.
2450         Do not include GraphicsSurface.h when not building
2451         with GRAPHICS_SURFACE.
2452
2453         No new tests. This is only a build fix.
2454
2455         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2456         * platform/graphics/texmap/TextureMapperBackingStore.h:
2457         * platform/graphics/texmap/TextureMapperGL.cpp:
2458
2459 2012-06-05  Joe Thomas  <joethomas@motorola.com>
2460
2461         ASSERTION FAILED: ASSERT(!isPercentageIntrinsicSize) in RenderReplaced::computeIntrinsicRatioInformationForRenderBox
2462         https://bugs.webkit.org/show_bug.cgi?id=88197
2463
2464         Reviewed by Daniel Bates.
2465
2466         RenderSVGRoot extends RenderReplaced and it overrides the computeIntrinsicRatioInformation() 
2467         method of RenderReplaced. RenderSVGRoot::computeIntrinsicRatioInformation
2468         sets isPercentageIntrinsicSize to true while it handles width and height of percentage types.
2469         So this assertion should be fired only if intrinsicRatio is non-zero.
2470
2471         Test: svg/in-html/svg-assert-failure-percentage.html
2472
2473         * rendering/RenderReplaced.cpp:
2474         (WebCore::RenderReplaced::computeIntrinsicRatioInformationForRenderBox):
2475
2476 2012-06-05  Tony Chang  <tony@chromium.org>
2477
2478         Changing flexbox justify/alignment doesn't update their positioning
2479         https://bugs.webkit.org/show_bug.cgi?id=88366
2480
2481         Reviewed by Ojan Vafai.
2482
2483         Test: css3/flexbox/style-change.html
2484
2485         * rendering/style/RenderStyle.cpp:
2486         (WebCore::RenderStyle::diff): Since these member variables were moved
2487         out of StyleFlexibleBoxData, we have to compare them in RenderStyle::diff.
2488
2489 2012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
2490
2491         JSC implementation of SerializedScriptValue for IndexedDB
2492         https://bugs.webkit.org/show_bug.cgi?id=88048
2493
2494         Reviewed by George Staikos.
2495
2496         No new tests. All the current indexeddb test cases apply when indexeddb works for JSC.
2497
2498         * bindings/js/SerializedScriptValue.cpp:
2499         (WebCore::CloneSerializer::serializeNumber):
2500         (CloneSerializer):
2501         (WebCore::CloneDeserializer::toWireString):
2502         (CloneDeserializer):
2503         (WebCore::SerializedScriptValue::create):
2504         (WebCore::SerializedScriptValue::toWireString):
2505         (WebCore):
2506         (WebCore::SerializedScriptValue::createFromWire):
2507         (WebCore::SerializedScriptValue::numberValue):
2508         (WebCore::SerializedScriptValue::deserialize):
2509
2510 2012-06-05  Ojan Vafai  <ojan@chromium.org>
2511
2512         Nested CSS flexbox renders incorrectly
2513         https://bugs.webkit.org/show_bug.cgi?id=87679
2514
2515         Reviewed by Julien Chaffraix.
2516
2517         If the containing block with a perpendicular writing mode has an overrideHeight,
2518         then its logical height should be based off that instead of its RenderStyle.
2519
2520         Test: css3/flexbox/perpendicular-writing-modes-inside-flex-item.html
2521
2522         * rendering/RenderBox.cpp:
2523         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
2524
2525 2012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
2526
2527         Need special-case toJS(IDBAny) for IDBCursorWithValue
2528         https://bugs.webkit.org/show_bug.cgi?id=87963
2529
2530         Reviewed by George Staikos.
2531
2532         No new tests, this is for indexedDB, which is not working for JSC binding.
2533         When indexedDB working for JSC, all the indexdb test cases should apply.
2534
2535         * bindings/js/JSIDBAnyCustom.cpp:
2536         (WebCore::toJS):
2537
2538 2012-06-05  Michal Mocny  <mmocny@google.com>
2539
2540         [chromium] Set default memory allocation limit bytes when GL_CHROMIUM_gpu_memory_manager is not supported by graphics context.
2541         https://bugs.webkit.org/show_bug.cgi?id=87996
2542
2543         Reviewed by James Robinson.
2544
2545         Soon we hope to have renderers not manage there own memory allocation limits, and rely exclusively on the
2546         allocation given by GpuMemoryManager.  However, when the graphics context does not support the
2547         GL_CHROMIUM_gpu_memory_manager extension, such as the one used by DumpRenderTree, we must default the
2548         memory allocation limit to some non-0 value.
2549
2550         * platform/graphics/chromium/LayerRendererChromium.cpp:
2551         (WebCore::LayerRendererChromium::initialize):
2552         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2553         (WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
2554         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2555         (WebCore):
2556         (DebugScopedSetMainThreadFromEither):
2557         (WebCore::DebugScopedSetMainThreadFromEither::DebugScopedSetMainThreadFromEither):
2558         (WebCore::DebugScopedSetMainThreadFromEither::~DebugScopedSetMainThreadFromEither):
2559
2560 2012-06-05  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
2561
2562         [Qt] Use GraphicsContext3DOpenGLES.cpp when using OpenGL ES
2563         https://bugs.webkit.org/show_bug.cgi?id=78720
2564
2565         Reviewed by Noam Rosenthal.
2566
2567         Functions are removed from GraphicsContext3DQt that already implemented
2568         in GraphicsContext3DCommon. Macros that not supported at GLES have been
2569         changed to their appropriate pair that found in GraphicsContext3D
2570         (e.g. GL_FRAMEBUFFER_EXT to GraphicsContext3D::FRAMEBUFFER).
2571         It was needed because OpenGLES does not support these macros.
2572         Extensions3DQt is removed beceause it has never been used.
2573         Some functions have been moved fron GraphicsContext3DCommon to *OpenGL
2574         and *OpenGLES to provide specialization.
2575         The "m_depthStencilBuffer" member is added to Qt port because it uses
2576         "m_depthStencilBuffer" like the other platforms.
2577
2578         * Target.pri:
2579         * platform/graphics/GraphicsContext3D.h:
2580         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2581         (WebCore::GraphicsContext3D::depthRange):
2582         (WebCore):
2583         (WebCore::GraphicsContext3D::clearDepth):
2584         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2585         (WebCore::GraphicsContext3D::prepareTexture):
2586         (WebCore::GraphicsContext3D::readRenderingResults):
2587         (WebCore::GraphicsContext3D::reshape):
2588         (WebCore::GraphicsContext3D::copyTexImage2D):
2589         (WebCore::GraphicsContext3D::copyTexSubImage2D):
2590         (WebCore::GraphicsContext3D::readPixels):
2591         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2592         (WebCore::GraphicsContext3D::reshapeFBOs):
2593         (WebCore::GraphicsContext3D::depthRange):
2594         (WebCore):
2595         (WebCore::GraphicsContext3D::clearDepth):
2596         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2597         (WebCore::GraphicsContext3D::isGLES2Compliant):
2598         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebuffer):
2599         (WebCore::GraphicsContext3D::GraphicsContext3D):
2600         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2601         (WebCore):
2602
2603 2012-06-05  Vitaly Buka  <vitalybuka@chromium.org>
2604
2605         Special layout handler should be done on top frame being printed.
2606         https://bugs.webkit.org/show_bug.cgi?id=88201
2607
2608         Reviewed by Brady Eidson.
2609
2610         No new tests. Root case is already covered by tests.
2611         Case described in the issue can be reproduced only by direct call
2612         to Frame::setPrinting of subframe. Probably it's not possible with
2613         layout tests.
2614
2615         * page/Frame.cpp:
2616         (WebCore::Frame::setPrinting):
2617         Use shouldUsePrintingLayout to choose proper version of forceLayout().
2618         (WebCore::Frame::shouldUsePrintingLayout):
2619         Checks if current frame is the top frame being printed.
2620         * rendering/RenderView.cpp:
2621         (WebCore::RenderView::shouldUsePrintingLayout): Forward to Frame.
2622
2623 2012-06-05  Max Feil  <mfeil@rim.com>
2624
2625         [BlackBerry] Conditionally enlarge HTML5 video controls in fullscreen mode
2626         https://bugs.webkit.org/show_bug.cgi?id=87551
2627
2628         Reviewed by Antonio Gomes.
2629
2630         Changes to make media controls larger in fullscreen mode. The
2631         BlackBerry media controls used to be sized by a combination
2632         of CSS styles specified in mediaControlsBlackBerry.css and
2633         hard coded constants in RenderThemeBlackBerry.cpp. This patch
2634         moves all the dimensional sizes to a common location, i.e.
2635         RenderThemeBlackBerry.cpp. Having all the logic in C++ code allows
2636         more complex decision making for when and how much to enlarge the
2637         media controls. Currently the controls are enlarged by a factor
2638         of 2 if the document is in fullscreen mode, the video element
2639         is the current fullscreen element, and the deviceScaleFactor of
2640         the page is less than 2.0. This avoids overly large controls
2641         on pages which are already at least doubling the size of the
2642         controls via viewport meta tag device-width settings. In other
2643         words, if the CSS pixels are already enlarged compared to device
2644         pixels by a factor of at least 2 in length and width.
2645
2646         In order to accomplish this, I had to add a new Element* parameter
2647         to RenderTheme::adjustSliderThumbSize(). This is needed so
2648         that fullscreen mode can be checked and the deviceScaleFactor
2649         retrieved. I feel that this does not have a big impact on the
2650         code and the other ports, for which I will simply be adding the
2651         additional parameter in their platform code.
2652
2653         Tests:
2654         video-controls-enlarged-fullscreen-meta.html
2655         video-controls-enlarged-fullscreen-nometa.html
2656
2657         * css/mediaControlsBlackBerry.css:
2658         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
2659         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2660         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
2661         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2662         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
2663         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
2664         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
2665         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
2666         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
2667         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2668         * html/shadow/SliderThumbElement.cpp:
2669         (WebCore::RenderSliderThumb::updateAppearance):
2670         * platform/blackberry/RenderThemeBlackBerry.cpp:
2671         (WebCore):
2672         (WebCore::determineRenderSlider):
2673         (WebCore::determineFullScreenMultiplier):
2674         (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
2675         (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
2676         (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
2677         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
2678         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
2679         * platform/blackberry/RenderThemeBlackBerry.h:
2680         (RenderThemeBlackBerry):
2681         * platform/efl/RenderThemeEfl.cpp:
2682         (WebCore::RenderThemeEfl::adjustSliderThumbSize):
2683         * platform/efl/RenderThemeEfl.h:
2684         (RenderThemeEfl):
2685         * platform/gtk/RenderThemeGtk.h:
2686         * platform/gtk/RenderThemeGtk2.cpp:
2687         (WebCore::RenderThemeGtk::adjustSliderThumbSize):
2688         * platform/gtk/RenderThemeGtk3.cpp:
2689         (WebCore::RenderThemeGtk::adjustSliderThumbSize):
2690         * platform/qt/RenderThemeQt.cpp:
2691         (WebCore::RenderThemeQt::adjustSliderThumbSize):
2692         * platform/qt/RenderThemeQt.h:
2693         (RenderThemeQt):
2694         * platform/qt/RenderThemeQtMobile.cpp:
2695         (WebCore::RenderThemeQtMobile::adjustSliderThumbSize):
2696         * platform/qt/RenderThemeQtMobile.h:
2697         (RenderThemeQtMobile):
2698         * rendering/RenderThemeChromiumLinux.cpp:
2699         (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
2700         * rendering/RenderThemeChromiumLinux.h:
2701         (RenderThemeChromiumLinux):
2702         * rendering/RenderThemeChromiumSkia.cpp:
2703         (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize):
2704         * rendering/RenderThemeChromiumSkia.h:
2705         (RenderThemeChromiumSkia):
2706         * rendering/RenderThemeChromiumWin.cpp:
2707         (WebCore):
2708         (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize):
2709         * rendering/RenderThemeChromiumWin.h:
2710         (RenderThemeChromiumWin):
2711         * rendering/RenderThemeMac.h:
2712         (RenderThemeMac):
2713         * rendering/RenderThemeSafari.cpp:
2714         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
2715         * rendering/RenderThemeSafari.h:
2716         (RenderThemeSafari):
2717         * rendering/RenderThemeWin.cpp:
2718         (WebCore::RenderThemeWin::adjustSliderThumbSize):
2719         * rendering/RenderThemeWin.h:
2720         (RenderThemeWin):
2721         * rendering/RenderThemeWinCE.cpp:
2722         (WebCore::RenderThemeWinCE::adjustSliderThumbSize):
2723         * rendering/RenderThemeWinCE.h:
2724         (RenderThemeWinCE):
2725         * rendering/RenderTheme.cpp:
2726         (WebCore::RenderTheme::adjustStyle):
2727         (WebCore::RenderTheme::adjustMediaControlStyle):
2728         (WebCore):
2729         (WebCore::RenderTheme::adjustSliderThumbStyle):
2730         (WebCore::RenderTheme::adjustSliderThumbSize):
2731         * rendering/RenderTheme.h:
2732         (RenderTheme):
2733
2734 2012-06-05  Stephanie Lewis  <slewis@apple.com>
2735
2736         https://bugs.webkit.org/show_bug.cgi?id=88370
2737         Memory sampler should trigger low memory signal
2738
2739         Reviewed by Geoff Garen.
2740
2741         No new tests. Verify by running stress test which crashes 
2742         in a few minutes without the fix.
2743
2744         Fix assumption in block code.  We could get in a state where timer_event_source
2745         had already been released before the block ran.
2746
2747         * platform/mac/MemoryPressureHandlerMac.mm:
2748         (WebCore::MemoryPressureHandler::holdOff):
2749
2750 2012-06-05  Yoshifumi Inoue  <yosin@chromium.org>
2751
2752         [Forms] Introduce InputNumber type as an alias of double for replacing it to Decimal
2753         https://bugs.webkit.org/show_bug.cgi?id=88275
2754
2755         Reviewed by Kent Tamura.
2756
2757         This patch introduced InputNumber type as alias of double to be
2758         replaced to Decimal and convertDoubleToInputNumber and 
2759         convertToInputNumberToDouble for reducing size of patch when we
2760         introduce Decimal type.
2761
2762         This patch added new vairables to use const variable to reduce
2763         copy operation when introducing Decimal type.
2764
2765         In the implementation, we use InputNumber, will be Decimal, however some methods in IDL
2766         use double. To clarify internal usage of value and external usage, thit patch renamed
2767         following functions:
2768
2769         - parseToDouble => parseNumber
2770         - setValueAsNumber => setValueAsDouble and setValueAsInputNumber
2771         - valueAsNumber => valueAsDouble
2772
2773         This patch is a part of introducing Decimal, https://bugs.webkit.org/show_bug.cgi?id=80009
2774
2775         No new tests. This patch doesn't change behavior.
2776
2777         * html/BaseDateAndTimeInputType.cpp:
2778         (WebCore::BaseDateAndTimeInputType::valueAsDate): Replaced parseToNumber() to valueAsDouble()
2779         (WebCore::BaseDateAndTimeInputType::setValueAsDate): Inserted convertDoubleToInputNumber.
2780         (WebCore::BaseDateAndTimeInputType::valueAsDouble): Use new function parseToDouble().
2781         (WebCore::BaseDateAndTimeInputType::setValueAsInputNumber): Added.
2782         (WebCore::BaseDateAndTimeInputType::defaultValueForStepUp): Changed return type to InputNumber.
2783         (WebCore::BaseDateAndTimeInputType::parseToNumber): This is replacement of parseToDouble().
2784         (WebCore::BaseDateAndTimeInputType::parseToDouble): Added for valueAsDate and valueAsDouble.
2785         (WebCore::BaseDateAndTimeInputType::serialize): Changed parameter type to InputNumber.
2786         (WebCore::BaseDateAndTimeInputType::serializeWithComponents): Replace double to InputNumber for getAllowdStep.
2787         * html/BaseDateAndTimeInputType.h:
2788         (BaseDateAndTimeInputType):
2789         * html/DateInputType.cpp:
2790         (WebCore::DateInputType::createStepRange): Replaced double to InputNumber.
2791         * html/DateInputType.h:
2792         (DateInputType):
2793         * html/DateTimeInputType.cpp:
2794         (WebCore::DateTimeInputType::defaultValueForStepUp): Changed return type to InputNumber.
2795         (WebCore::DateTimeInputType::createStepRange): Replaced double to InputNumber.
2796         * html/DateTimeInputType.h:
2797         (DateTimeInputType):
2798         * html/DateTimeLocalInputType.cpp:
2799         (WebCore::DateTimeLocalInputType::createStepRange): Replaced double to InputNumber.
2800         * html/DateTimeLocalInputType.h:
2801         (DateTimeLocalInputType):
2802         * html/HTMLInputElement.cpp:
2803         (WebCore::HTMLInputElement::getAllowedValueStep): Changed parameter type to InputNumber.
2804         (WebCore::HTMLInputElement::valueAsNumber): Use InputType::valueAsDouble.
2805         (WebCore::HTMLInputElement::setValueAsNumber): Use InputType::valueAsDouble.
2806         * html/HTMLInputElement.h:
2807         (HTMLInputElement):
2808         * html/InputType.cpp:
2809         (WebCore::InputType::valueAsDouble): Replacement of valueAsNumber.
2810         (WebCore::InputType::setValueAsDouble): Replacement of valueAsNumber.
2811         (WebCore::InputType::setValueAsInputNumber): Replacement of valueAsNumber.
2812         (WebCore::InputType::rangeUnderflow): Replaced double to InputNumber.
2813         (WebCore::InputType::rangeOverflow): Replaced double to InputNumber.
2814         (WebCore::InputType::defaultValueForStepUp): Changed return type to InputNumber.
2815         (WebCore::InputType::isInRange): Replaced double to InputNumber.
2816         (WebCore::InputType::isOutOfRange): Replaced double to InputNumber.
2817         (WebCore::InputType::stepMismatch): Replaced double to InputNumber.
2818         (WebCore::InputType::validationMessage): Replaced double to InputNumber.
2819         (WebCore::InputType::parseToNumber): Replacement of parseToDouble.
2820         (WebCore::InputType::parseToNumberOrNaN): Added for reducing number of std::numeric_limits<double>::quiet_NaN().
2821         (WebCore::InputType::parseToNumberWithDecimalPlaces): Replaced double to InputNumber.
2822         (WebCore::InputType::serialize): Changed parameter type to InputNumber.
2823         (WebCore::InputType::applyStep): Replaced double to InputNumber.
2824         (WebCore::InputType::getAllowedValueStep): Changed parameter type to InputNumber.
2825         (WebCore::InputType::stepUpFromRenderer): Replaced double to InputNumber.
2826         * html/InputType.h:
2827         (InputType):
2828         * html/MonthInputType.cpp:
2829         (WebCore::MonthInputType::defaultValueForStepUp): Changed return type to InputNumber.
2830         (WebCore::MonthInputType::createStepRange): Replaced double to InputNumber.
2831         (WebCore::MonthInputType::parseToNumber): Replacement of parseToDouble.
2832         * html/MonthInputType.h:
2833         (MonthInputType):
2834         * html/NumberInputType.cpp:
2835         (WebCore::NumberInputType::valueAsDouble): Replacement of valueAsNumber. Changed to use parseToDoubleForNumberType.
2836         (WebCore::NumberInputType::setValueAsDouble):  Replacement of setValueAsNumber.  Changed to use serializeForNumberType.
2837         (WebCore::NumberInputType::setValueAsInputNumber): Replacement of setValueAsNumber.
2838         (WebCore::NumberInputType::createStepRange): Replaced double to InputNumber.
2839         (WebCore::NumberInputType::parseToNumber): Replacement of parseToDouble.
2840         (WebCore::NumberInputType::parseToNumberWithDecimalPlaces): Replaced double to InputNumber.
2841         (WebCore::NumberInputType::serialize):
2842         * html/NumberInputType.h:
2843         (NumberInputType):
2844         * html/RangeInputType.cpp:
2845         (WebCore::ensureMaximum): Replaced double to InputNumber.
2846         (WebCore::RangeInputType::valueAsDouble): Replacement of valueAsNumber.
2847         (WebCore::RangeInputType::setValueAsInputNumber):  Replacement of setValueAsNumber.
2848         (WebCore::RangeInputType::createStepRange): Replaced double to InputNumber.
2849         (WebCore::RangeInputType::handleKeydownEvent): Replaced double to InputNumber.
2850         (WebCore::RangeInputType::parseToNumber): Replacement of parseToDouble.
2851         (WebCore::RangeInputType::serialize): Changed parameter type to InputNumber.
2852         (WebCore::RangeInputType::sanitizeValue): Replaced double to InputNumber.
2853         * html/RangeInputType.h:
2854         (RangeInputType):
2855         * html/StepRange.cpp:
2856         (WebCore::StepRange::StepRange): Replaced double to InputNumber.
2857         (WebCore::StepRange::acceptableError): Replaced double to InputNumber.
2858         (WebCore::StepRange::alignValueForStep): Replaced double to InputNumber.
2859         (WebCore):
2860         (WebCore::StepRange::clampValue): Replaced double to InputNumber.
2861         (WebCore::StepRange::stepMismatch): Replaced double to InputNumber.
2862         * html/StepRange.h:
2863         (WebCore::convertDoubleToInputNumber): Added.
2864         (WebCore::convertInputNumberToDouble): Added.
2865         (WebCore::StepRange::NumberWithDecimalPlaces::NumberWithDecimalPlaces): Replaced double to InputNumber.
2866         (WebCore::StepRange::StepDescription::defaultValue): Replaced double to InputNumber.
2867         (StepRange):
2868         (WebCore::StepRange::maximum): Replaced double to InputNumber.
2869         (WebCore::StepRange::minimum): Replaced double to InputNumber.
2870         (WebCore::StepRange::step): Replaced double to InputNumber.
2871         (WebCore::StepRange::stepBase): Replaced double to InputNumber.
2872         (WebCore::StepRange::defaultValue): Replaced double to InputNumber.
2873         (WebCore::StepRange::proportionFromValue): Replaced double to InputNumber.
2874         (WebCore::StepRange::valueFromProportion): Replaced double to InputNumber.
2875         * html/TimeInputType.cpp:
2876         (WebCore::TimeInputType::defaultValueForStepUp): Replaced double to InputNumber.
2877         (WebCore::TimeInputType::createStepRange): Replaced double to InputNumber.
2878         * html/TimeInputType.h:
2879         (TimeInputType):
2880         * html/WeekInputType.cpp:
2881         (WebCore::WeekInputType::createStepRange): Replaced double to InputNumber.
2882         * html/WeekInputType.h:
2883         (WeekInputType):
2884         * html/shadow/CalendarPickerElement.cpp:
2885         (WebCore::CalendarPickerElement::writeDocument): Replaced double to InputNumber.
2886         * html/shadow/SliderThumbElement.cpp:
2887         (WebCore::sliderPosition): Replaced double to InputNumber.
2888         (WebCore::RenderSliderThumb::layout): Replaced double to InputNumber.
2889         (WebCore::SliderThumbElement::setPositionFromPoint): Replaced double to InputNumber.
2890
2891 2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>
2892
2893         Build fix after r119527.
2894
2895         * dom/ViewportArguments.cpp:
2896         (WebCore::computeViewportAttributes):
2897
2898 2012-06-05  Martin Robinson  <mrobinson@igalia.com>
2899
2900         [Cairo] [OpenGL] Enable GL_OES_standard_derivatives
2901         https://bugs.webkit.org/show_bug.cgi?id=87583
2902
2903         Reviewed by Alejandro G. Castro.
2904
2905         No new tests. This is covered by oes-standard-derivatives.html
2906         in the Khronos WebGL conformance tests, which may one day be part
2907         of the WebKit test suite.
2908
2909         Activate the GL_OES_standard_derivatives on Cairo along with
2910         Qt and Mac.
2911
2912         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2913         (WebCore::Extensions3DOpenGL::ensureEnabled):
2914         (WebCore::Extensions3DOpenGL::isEnabled):
2915
2916 2012-06-05  Simon Fraser  <simon.fraser@apple.com>
2917
2918         Avoid creating compositing layers for preserve-3d without transformed descendants
2919         https://bugs.webkit.org/show_bug.cgi?id=88115
2920
2921         Reviewed by Antti Koivisto.
2922         
2923         Avoid creating compositing layers, and therefore using excess backing store,
2924         for elements that have -webkit-transform-style: preserve-3d, but no 3D-transformed
2925         descendants that would be affected by that preserve-3d.
2926         
2927         Test: compositing/layer-creation/no-compositing-for-preserve-3d.html
2928
2929         * rendering/RenderLayer.h: Replace the "mustOverlap" flag with a enum
2930         that describes the different reasons for indirect compositing, so that
2931         we can use that information to decide whether to allocate backing store.
2932         (WebCore::RenderLayer::setIndirectCompositingReason):
2933         (WebCore::RenderLayer::indirectCompositingReason):
2934         (WebCore::RenderLayer::mustCompositeForIndirectReasons):
2935         * rendering/RenderLayer.cpp:
2936         (WebCore::RenderLayer::RenderLayer): Initialize m_indirectCompositingReason
2937
2938         * rendering/RenderLayerCompositor.h: New out param for computeCompositingRequirements()
2939         that is uses to indicate that a 3d-transformed descendant has been encountered.
2940         Rename requiresCompositingWhenDescendantsAreCompositing() to requiresCompositingForIndirectReason(),
2941         and return the reason as an out param.
2942         
2943         * rendering/RenderLayerCompositor.cpp:
2944         (WebCore::RenderLayerCompositor::updateCompositingLayers): Pass in the saw3DTransform
2945         param to computeCompositingRequirements().
2946         (WebCore::RenderLayerCompositor::computeCompositingRequirements): Return a flag
2947         from computeCompositingRequirements() that is set to true if we've seen descendants
2948         that have 3d transforms. This is later used to decide whether to composite for
2949         perspective or preserve-3d.
2950         Change the "mustOverlapCompositedLayers" code to use the new "indirect compositing"
2951         enum flags.
2952         After enumerating children, call requiresCompositingForIndirectReason() and 
2953         record the reason in the layer.
2954         (WebCore::RenderLayerCompositor::needsToBeComposited): Use mustCompositeForIndirectReasons() now.
2955         (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Consult the indirect compositing
2956         reason rather than just looking for the overlap flag.
2957         (WebCore::RenderLayerCompositor::reasonForCompositing): Now that we have more information
2958         about indirect compositing reasons, the logging can be more detailed.
2959         (WebCore::RenderLayerCompositor::requiresCompositingForTransform): This now only looks
2960         for 3d transforms. We now treat perspective and perserve-3d as "indirect" reasons, because
2961         whether they composite depends on descendants having non-affine transforms.
2962         (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): Includes the logic
2963         previously in requiresCompositingWhenDescendantsAreCompositing(), and now determines
2964         whether to composite for preserve-3d and perspective, based on whether we have transformed descendants.
2965
2966 2012-06-05  Levi Weintraub  <leviw@chromium.org>
2967
2968         Block selection gaps painted not properly pixel snapped
2969         https://bugs.webkit.org/show_bug.cgi?id=88000
2970
2971         Reviewed by Ryosuke Niwa.
2972
2973         Fixes for selection painting in both inline line heights and block gaps. We were unintentionally
2974         flooring inline and block offsets in RenderBlock, but actually need to intentionally floor the
2975         logical left and right values in logical(Left|Right)SelectionGap to properly align our block
2976         selection gaps. This is to properly mirror the behavior in pixelSnappedLogicalRightOffsetForLine.
2977
2978         We were also unintentionally upcasting LayoutUnits to floats in InlineTextBox's selection painting
2979         routine. Now we're properly rounding.
2980
2981         Test: fast/sub-pixel/selection/selection-gaps-at-fractional-offsets.html
2982
2983         * rendering/InlineTextBox.cpp:
2984         (WebCore::InlineTextBox::paintSelection): Move paint values to integers and do proper rounding.
2985         * rendering/RenderBlock.cpp:
2986         (WebCore::blockDirectionOffset): Fix incorrect flooring in return value.
2987         (WebCore::inlineDirectionOffset): Ditto.
2988         (WebCore): Removing previous attempt to properly mirror inline box selection pixel alignment. This
2989         implementation rounded the final x value instead of properly rounding our block offset then flooring
2990         the offset that corresponds to the behavior in InlineTextBox. It also didn't properly pixel snap
2991         the y offset and height.
2992         (WebCore::RenderBlock::blockSelectionGap): Properly pixel snapping the gap rect before painting.
2993         (WebCore::RenderBlock::logicalLeftSelectionGap): Correctly match InlineTextBox's selection pixel
2994         alignment by flooring the logicalLeft and pixel snapping the subsequent rect. We do this in order
2995         to maintain proper render tree pixel snapping while simultaneously mirroring the flooring in the
2996         inline direction that occurs in InlineTextBox.cpp's alignSelectionRectToDevicePixels method.
2997         (WebCore::RenderBlock::logicalRightSelectionGap): Ditto with the right.
2998
2999 2012-06-05  Adam Barth  <abarth@webkit.org>
3000
3001         Remove support for target-densitydpi in the viewport meta tag
3002         https://bugs.webkit.org/show_bug.cgi?id=88047
3003
3004         Reviewed by Kenneth Rohde Christiansen.
3005
3006         The target-densitydpi parameter was originally implemented on Android,
3007         but it does not appear to be widely used and introduces significant
3008         implementation complexity because it forces us to track three scale
3009         factors (defaultDeviceScaleFactor, deviceScaleFactor, and
3010         pageScaleFactor) rather than just two (deviceScaleFactor and
3011         pageScaleFactor).
3012
3013         There don't appear to be many web sites that use target-densitydpi
3014         because it is not supported on iOS.  There are also concerns from the
3015         standards community about the design of the feature.  It seems our best
3016         course of action is to remove target-densitydpi and address these use
3017         cases via other mechanisms, such as responsive images and device units
3018         in CSS because those approaches are likely to be implemented broadly.
3019
3020         * dom/ViewportArguments.cpp:
3021         (WebCore::computeViewportAttributes):
3022         (WebCore):
3023         (WebCore::setViewportFeature):
3024         (WebCore::viewportErrorMessageTemplate):
3025         (WebCore::viewportErrorMessageLevel):
3026         * dom/ViewportArguments.h:
3027         (WebCore::ViewportArguments::ViewportArguments):
3028         (ViewportArguments):
3029         (WebCore::ViewportArguments::operator==):
3030
3031 2012-06-05  Erik Arvidsson  <arv@chromium.org>
3032
3033         [V8] Improve variable resolution order on window
3034         https://bugs.webkit.org/show_bug.cgi?id=84247
3035
3036         Reviewed by Ojan Vafai.
3037
3038         This changes the V8 flag to turn on es52_globals and updates the layout tests to reflect the fixed behavior.
3039
3040         Test: fast/dom/Window/window-property-shadowing-onclick.html
3041
3042         * bindings/v8/V8DOMWindowShell.cpp:
3043         (WebCore::V8DOMWindowShell::initContextIfNeeded): Set the flag as we initialize V8.
3044         * bindings/v8/WorkerContextExecutionProxy.cpp:
3045         (WebCore::WorkerContextExecutionProxy::initIsolate): Ditto.
3046
3047 2012-06-05  Ojan Vafai  <ojan@chromium.org>
3048
3049         Delete dead code from RenderBox::computeLogicalWidthInRegion
3050         https://bugs.webkit.org/show_bug.cgi?id=88353
3051
3052         Reviewed by Tony Chang.
3053
3054         No new tests obviously since this is dead code.
3055
3056         * rendering/RenderBox.cpp:
3057         (WebCore::RenderBox::computeLogicalWidthInRegion):
3058
3059 2012-06-05  Greg Billock  <gbillock@google.com>
3060
3061         New constructor for WebIntent to be used for delivery
3062         https://bugs.webkit.org/show_bug.cgi?id=87143
3063
3064         Reviewed by Darin Fisher.
3065
3066         * Modules/intents/Intent.cpp:
3067         (WebCore::Intent::setExtras):
3068         (WebCore):
3069         * Modules/intents/Intent.h:
3070         (Intent):
3071
3072 2012-06-01  Ojan Vafai  <ojan@chromium.org>
3073
3074         Change overrideSizes to be content-box instead of border-box
3075         https://bugs.webkit.org/show_bug.cgi?id=88116
3076
3077         Reviewed by Tony Chang.
3078
3079         Previously, the code used border-box everywhere except for one place
3080         where it used content-box when setting the override size. Conversely,
3081         it subtracted the borderAndPaddingSize everywhere it grabbed the override
3082         size except for one.
3083
3084         Instead, make the override size override the content-box size.
3085         Converging on using the border-box size would be tricky given RenderTableCell's
3086         tricky management of intrinsic padding.
3087
3088         There is no behavior change except in RenderBox::availableLogicalHeightUsing,
3089         which fixes a table test.
3090
3091         * rendering/RenderBox.cpp:
3092         (WebCore::RenderBox::setOverrideLogicalContentHeight):
3093         (WebCore::RenderBox::setOverrideLogicalContentWidth):
3094         (WebCore::RenderBox::overrideLogicalContentWidth):
3095         (WebCore::RenderBox::overrideLogicalContentHeight):
3096         (WebCore::RenderBox::computeLogicalWidthInRegion):
3097         (WebCore::RenderBox::computeLogicalHeight):
3098         (WebCore::RenderBox::computePercentageLogicalHeight):
3099         (WebCore::RenderBox::availableLogicalHeightUsing):
3100         We were incorrectly subtracting the borderAndPaddingLogicalWidth instead
3101         of the borderAndPaddingLogicalHeight.
3102
3103         * rendering/RenderBox.h:
3104         (RenderBox):
3105         * rendering/RenderDeprecatedFlexibleBox.cpp:
3106         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
3107         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
3108         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
3109         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
3110         * rendering/RenderFlexibleBox.cpp:
3111         (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
3112         (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
3113         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
3114         * rendering/RenderTableCell.cpp:
3115         (WebCore::RenderTableCell::setOverrideHeightFromRowHeight):
3116
3117 2012-06-05  Andy Estes  <aestes@apple.com>
3118
3119         REGRESSION (r118197): PluginStrategy should be used even if ENABLE(NETSCAPE_PLUGIN_API) is false
3120         https://bugs.webkit.org/show_bug.cgi?id=88296
3121
3122         Reviewed by Dan Bernstein.
3123
3124         refresh() and initPlugins() should call into PluginStrategy even if
3125         ENABLE(NETSCAPE_PLUGIN_API) is false. Some ports support non-Netscape
3126         plug-ins, so PluginStrategy should be consulted even if Netscape
3127         plug-ins specifically are disabled.
3128
3129         Ports that support platform strategies but not Netscape plug-ins should
3130         handle this inside their PluginStrategy rather than modifying generic
3131         plug-in code.
3132
3133         * plugins/PluginData.cpp:
3134         (WebCore::PluginData::refresh):
3135         (WebCore::PluginData::initPlugins):
3136
3137 2012-06-05  Douglas Stockwell  <dstockwell@chromium.org>
3138
3139         Crash when modifying fixed-position elements in a detached frame
3140         https://bugs.webkit.org/show_bug.cgi?id=88288
3141
3142         Reviewed by James Robinson.
3143
3144         Test: fast/block/positioning/fixed-position-detached-frame.html
3145
3146         * css/StyleResolver.cpp:
3147         (WebCore::StyleResolver::collectMatchingRulesForList):
3148
3149 2012-06-05  Andrey Kosyakov  <caseq@chromium.org>
3150
3151         Web Inspector: render timeline paint category dark green
3152         https://bugs.webkit.org/show_bug.cgi?id=88333
3153
3154         Reviewed by Pavel Feldman.
3155
3156         - Added a new, dark-green color for timeline events.
3157
3158         * WebCore.gypi: Added timelineBarDarkGreen.png
3159         * inspector/front-end/Images/timelineBarDarkGreen.png: Added.
3160         * inspector/front-end/Images/timelineCheckmarks.png: Added a dark-green checkbox.
3161         * inspector/front-end/Images/timelineDots.png: Added a dark-green dot.
3162         * inspector/front-end/TimelinePresentationModel.js:
3163         (WebInspector.TimelinePresentationModel.categories):
3164         * inspector/front-end/WebKit.qrc: Added timelineBarDarkGreen.png.
3165         * inspector/front-end/timelinePanel.css:
3166         (.timeline-category-statusbar-item.timeline-category-painting .timeline-category-checkbox):
3167         (.timeline-category-painting .timeline-graph-bar):
3168         (.popover .timeline-painting):
3169         (.timeline-category-painting .timeline-tree-icon):
3170
3171 2012-06-05  Alexei Filippov  <alexeif@chromium.org>
3172
3173         Web Inspector: serialize edge counts instead of indexes in heap snapshot
3174         https://bugs.webkit.org/show_bug.cgi?id=88324
3175
3176         The serialized node structure currently holds an index
3177         of its first containment edge in the edges array.
3178         The index can be quite big (up to 7 digits for large snapshots).
3179         The patch changes the serialization format to pass
3180         node containment edge count instead. For most nodes the count
3181         is just a single digit number.
3182         This reduces serialized snapshot size and therefore its transfer time.
3183
3184         Reviewed by Yury Semikhatsky.
3185
3186         * inspector/front-end/HeapSnapshot.js:
3187         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesStart):
3188         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
3189         (WebInspector.HeapSnapshotNode.prototype._ordinal):
3190         (WebInspector.HeapSnapshotNodeIterator):
3191         (WebInspector.HeapSnapshot.prototype._init):
3192         (WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):
3193         (WebInspector.HeapSnapshot.prototype._buildRetainers):
3194         (WebInspector.HeapSnapshot.prototype._bfs):
3195         (WebInspector.HeapSnapshot.prototype._buildAggregates):
3196         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
3197         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
3198         (WebInspector.HeapSnapshot.prototype._markPageOwnedNodes):
3199         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
3200
3201 2012-06-05  Arpita Bahuguna  <arpitabahuguna@gmail.com>
3202
3203         CSS 2.1 failure: border-conflict-element-021a
3204         https://bugs.webkit.org/show_bug.cgi?id=86885
3205
3206         Reviewed by Julien Chaffraix.
3207
3208         When two adjacent table row groups (thead, tbody, tfoot) have the same border-width
3209         and the same border-style in a 'border-collapse: collapse' table the color of the border
3210         from the top-most table row wins.
3211
3212         Tests: fast/table/border-collapsing/adjacent-row-groups-multi.html
3213                fast/table/border-collapsing/adjacent-row-groups.html
3214
3215         * rendering/RenderTable.cpp:
3216         (WebCore::RenderTable::paintObject):
3217         Currently each row group is sent for paint from top (firstChild) to bottom thereby causing
3218         the borders of the bottom-most row group (which is painted last) to overlap over the
3219         previous row-group. This breaks the precedence for collapsed borders between adjacent cells.
3220
3221         This fix thus reverses the order in which the row-groups/sections are passed for painting.
3222         Additional change has been done to iterate over the RenderTableSections directly.
3223
3224         (WebCore):
3225         (WebCore::RenderTable::bottomSection):
3226         * rendering/RenderTable.h:
3227         New function has been added to obtain the last section of the table.
3228
3229         (RenderTable):
3230         * rendering/RenderTableSection.h:
3231         (RenderTableSection):
3232         RenderTableSection's paint() method has now been made public so as to make it accessible
3233         from RenderTable.
3234
3235 2012-06-05  Csaba Osztrogonác  <ossy@webkit.org>
3236
3237         [Qt][Win] Fix IDL dependency generation
3238         https://bugs.webkit.org/show_bug.cgi?id=88304
3239
3240         Reviewed by Tor Arne Vestbø.
3241
3242         * DerivedSources.pri:
3243
3244 2012-06-05  Sheriff Bot  <webkit.review.bot@gmail.com>
3245
3246         Unreviewed, rolling out r119467, r119471, and r119476.
3247         http://trac.webkit.org/changeset/119467
3248         http://trac.webkit.org/changeset/119471
3249         http://trac.webkit.org/changeset/119476
3250         https://bugs.webkit.org/show_bug.cgi?id=88332
3251
3252         it broke chromium-mac static initializers test.\ (Requested by
3253         loislo on #webkit).
3254
3255         * WebCore.gyp/WebCore.gyp:
3256         * WebCore.gypi:
3257         * platform/graphics/FontPlatformData.h:
3258         (FontPlatformData):
3259         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3260         (WebCore::FontPlatformData::platformDataInit):
3261         (WebCore::FontPlatformData::platformDataAssign):
3262         * platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp: Removed.
3263         * platform/graphics/harfbuzz/ng/HarfBuzzFace.h: Removed.
3264         * platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp: Removed.
3265         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: Removed.
3266         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h: Removed.
3267         * platform/graphics/mac/FontComplexTextMac.cpp:
3268         (WebCore::Font::selectionRectForComplexText):
3269         (WebCore::Font::drawComplexText):
3270         (WebCore::Font::floatWidthForComplexText):
3271         (WebCore::Font::offsetForPositionForComplexText):
3272
3273 2012-06-05  Alexander Pavlov  <apavlov@chromium.org>
3274
3275         Web Inspector: SHIFT key as helper to color adjustment in color picker
3276         https://bugs.webkit.org/show_bug.cgi?id=88319
3277
3278         Reviewed by Pavel Feldman.
3279
3280         With Shift depressed, the dragger in the color picker will snap to the horizontal
3281         or vertical axis while dragging, depending on which axis offset is greater.
3282
3283         * inspector/front-end/Spectrum.js:
3284         (WebInspector.Spectrum.colorDragStart):
3285         (WebInspector.Spectrum.colorDrag):
3286         (WebInspector.Spectrum.draggable.move):
3287         (WebInspector.Spectrum.draggable.start):
3288
3289 2012-06-05  Andrey Kosyakov  <caseq@chromium.org>
3290
3291         Web Inspector: aggregate all events before first frame into a fake frame
3292         https://bugs.webkit.org/show_bug.cgi?id=88229
3293
3294         - in Timeline's frame mode, start aggregating events by frame even before we get first frame marker.
3295
3296         * inspector/front-end/TimelineFrameController.js:
3297         (WebInspector.TimelineFrameController.prototype._addRecord):
3298         (WebInspector.TimelineFrameController.prototype._flushFrame):
3299         (WebInspector.TimelineFrameController.prototype._createFrame):
3300
3301 2012-06-05  Charles Wei  <charles.wei@torchmobile.com.cn>
3302
3303         JSC:need to implement Dictionary::getWithUndefinedOrNullCheck for IDB
3304         https://bugs.webkit.org/show_bug.cgi?id=88283
3305
3306         Reviewed by Kentaro Hara.
3307
3308         No new tests, idb not working for JSC yet.
3309
3310         * bindings/js/Dictionary.cpp:
3311         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
3312         * bindings/js/Dictionary.h:
3313         (Dictionary):
3314         * bindings/js/JSDictionary.cpp:
3315         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
3316         (WebCore):
3317         * bindings/js/JSDictionary.h:
3318         (JSDictionary):
3319
3320 2012-06-05  Dongwoo Im  <dw.im@samsung.com>
3321
3322         Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
3323         https://bugs.webkit.org/show_bug.cgi?id=73176
3324
3325         Reviewed by Adam Barth.
3326
3327         Two more APIs are added in Custom Scheme Handler specification.
3328         http://dev.w3.org/html5/spec/Overview.html#custom-handlers
3329         One is 'isProtocolHandlerRegistered' to query whether the specific URL
3330         is registered or not.
3331         The other is 'unregisterProtocolHandler' to remove the registered URL.
3332
3333         Test: fast/dom/unregister-protocol-handler.html
3334
3335         * Configurations/FeatureDefines.xcconfig: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
3336         * loader/EmptyClients.h: Add prototypes.
3337         (EmptyChromeClient):
3338         (WebCore::EmptyChromeClient::isProtocolHandlerRegistered):
3339         (WebCore::EmptyChromeClient::unregisterProtocolHandler):
3340         * page/ChromeClient.h:
3341         (ChromeClient):
3342         * page/NavigatorRegisterProtocolHandler.cpp:
3343         (WebCore):
3344         (WebCore::customHandlersStateString):
3345         (WebCore::NavigatorRegisterProtocolHandler::isProtocolHandlerRegistered): Query if the handler is registered.
3346         (WebCore::NavigatorRegisterProtocolHandler::unregisterProtocolHandler): Unregister the registered handler.
3347         * page/NavigatorRegisterProtocolHandler.h:
3348         (NavigatorRegisterProtocolHandler):
3349         * page/NavigatorRegisterProtocolHandler.idl:
3350
3351 2012-06-04  Kinuko Yasuda  <kinuko@chromium.org>
3352
3353         Chromium tests: "Add support for the Blob constructor" [r115582] regressed blob layout tests
3354         https://bugs.webkit.org/show_bug.cgi?id=85174
3355
3356         Reviewed by Kentaro Hara.
3357
3358         This fixes a crash problem which could happen when the constructor is
3359         given an array which contains String-type item(s).
3360
3361         There're still some Text mismatches between v8 results and
3362         JSC results, most of them are v8 not throwing exception
3363         when it is given an object whose toString() method throws
3364         exception.  (The issue will be addresse in a separate patch.)
3365
3366         Test: fast/files/blob-constructor.html
3367
3368         * bindings/v8/custom/V8BlobCustom.cpp:
3369         (WebCore::V8Blob::constructorCallback):
3370
3371 2012-06-05  Kentaro Hara  <haraken@chromium.org>
3372
3373         Remove unnecessary constructor of SelectorQueryCache
3374         https://bugs.webkit.org/show_bug.cgi?id=87942
3375
3376         Reviewed by Ryosuke Niwa.
3377
3378         Per the comment from darin@ (https://bugs.webkit.org/show_bug.cgi?id=87942#c27),
3379         this patch removes an inline constructor that has no arguments.
3380         To have the compiler generate the constructor,
3381         this patch also removes WTF_MAKE_NONCOPYABLE().
3382
3383         No tests. No change in behavior.
3384
3385         * dom/SelectorQuery.h:
3386         (SelectorQueryCache):
3387
3388 2012-06-05  Kentaro Hara  <haraken@chromium.org>
3389
3390         Remove unused methods from SelectorQuery.h
3391         https://bugs.webkit.org/show_bug.cgi?id=88289
3392
3393         Reviewed by Antti Koivisto.
3394
3395         This patch removes SelectorDataList::size() and
3396         SelectorDataList::SelectorDataList().
3397         SelectorDataList::size() is not used by anybody.
3398         SelectorDataList::SelectorDataList() can be auto-generated
3399         by a compiler.
3400
3401         No tests. No change in behavior.
3402
3403         * dom/SelectorQuery.cpp:
3404         * dom/SelectorQuery.h:
3405         (SelectorDataList):
3406
3407 2012-06-05  Kent Tamura  <tkent@chromium.org>
3408
3409         Build fix for r119470.
3410
3411         * loader/EmptyClients.cpp: Add #include "IntentRequest.h".
3412
3413 2012-06-05  Kent Tamura  <tkent@chromium.org>
3414
3415         Remove unused function: Document::formElements
3416         https://bugs.webkit.org/show_bug.cgi?id=88272
3417
3418         Reviewed by Kentaro Hara.
3419
3420         No new tests. No behavior change.
3421
3422         * dom/Document.h:
3423         (Document): remove formElements(). It was used for radio group
3424         validation, but the current code doesn't use it any more.
3425
3426 2012-06-05  Kenichi Ishibashi  <bashi@chromium.org>
3427
3428         Unreviewed build fix on Chromium mac
3429
3430         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3431         (WebCore::isAATFont):
3432
3433 2012-06-05  Kent Tamura  <tkent@chromium.org>
3434
3435         Move some function definitions in EmptyClients.h to EmptyClients.cpp
3436         https://bugs.webkit.org/show_bug.cgi?id=88285
3437
3438         Reviewed by Ryosuke Niwa.
3439
3440         If we have definitions of functions with RefPtr<> in EmptyClients.h like
3441
3442             virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
3443
3444         and a source file includes EmptyClient.h, the source file needs to
3445         include FileChooser.h though the source file doesn't use FileChooser
3446         class explicitly because the definition of runOpenPanel() needs to call
3447         FileChooser::deref().
3448         To avoid this, we had better move such functions to EmptyClients.cpp.
3449
3450         No new tests. No behavior changes.
3451
3452         * loader/EmptyClients.cpp: Move such functions from EmptyClients.h to
3453         here, and move EmptyPopupMenu and EmptySearchPopupMenu too because
3454         they're used only by EmptyChromeClient.
3455         (WebCore):
3456         (EmptyPopupMenu):
3457         (WebCore::EmptyPopupMenu::show):
3458         (WebCore::EmptyPopupMenu::hide):
3459         (WebCore::EmptyPopupMenu::updateFromElement):
3460         (WebCore::EmptyPopupMenu::disconnectClient):