Incomplete repaint of boxes with inset box-shadow and padding when resized
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-05  Andrei Bucur  <abucur@adobe.com>
2
3         Incomplete repaint of boxes with inset box-shadow and padding when resized
4         https://bugs.webkit.org/show_bug.cgi?id=59863
5
6         Reviewed by Simon Fraser.
7
8         The patch extends the repaint rectangle to include the inset shadow extent for renderers that resize and need to be repainted. The rectangle computations are also better fragmented and easier to read.
9
10         New Test: fast/repaint/box-shadow-inset-repaint.html
11
12         * rendering/RenderObject.cpp:
13         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
14         * rendering/style/RenderStyle.cpp:
15         (WebCore::RenderStyle::getShadowInsetExtent):
16         (WebCore):
17         * rendering/style/RenderStyle.h:
18
19 2012-10-04  Kent Tamura  <tkent@chromium.org>
20
21         Fix sub-field width to the maximum width of a placeholder and the maximum value
22         https://bugs.webkit.org/show_bug.cgi?id=98481
23
24         Reviewed by Hajime Morita.
25
26         We can't assume a placeholder text is shorter than the width of
27         digits. The placeholder string for the year field of
28         input[type=week] is "----", but input[type=date] will have a
29         localized string for it.
30
31         We should set the 'width' CSS property to the maximum of the
32         placeholder width and the maximum value width in order to prevent
33         the field width from growing/narrowing.
34
35         Before this patch, we secured four digits space for a year field,
36         and allowed the field to grow its width when a larger year is
37         set. After this patch, we don't allow it to grow because the
38         'width' property is set to the maximum width.
39
40         Update week-multiple-fields-appearance-basic.html, and the
41         following tests are affected.
42         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
43         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
44         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
45
46         * html/shadow/DateTimeNumericFieldElement.cpp:
47         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
48         Enable customStyleForRenderer.
49         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
50         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
51         (WebCore::DateTimeNumericFieldElement::formatValue):
52         Made a function with the code in value(). This is used in
53         customStyleForRenderer() and value().
54         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
55         * html/shadow/DateTimeNumericFieldElement.h:
56         (DateTimeNumericFieldElement): Declare new functions.
57
58 2012-10-05  Kent Tamura  <tkent@chromium.org>
59
60         Improve spelling and performance of Localizer.cpp
61         https://bugs.webkit.org/show_bug.cgi?id=98485
62
63         Reviewed by Kentaro Hara.
64
65         Some improvements pointed in webkit.org/b/98229#c5.
66
67         No new tests because of no behavior change.
68
69         * platform/text/Localizer.h:
70         (Localizer):
71          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
72          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
73          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
74         * platform/text/Localizer.cpp:
75         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
76         (WebCore::Localizer::shortTimeFormat): Ditto.
77         (WebCore::Localizer::dateTimeFormatWithSeconds):
78         - Renamed.
79         - Cache the concatenation result to a data member.
80         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
81
82         * html/DateTimeInputType.cpp:
83         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
84         * html/DateTimeLocalInputType.cpp:
85         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
86
87 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
88
89         [WebSocket] ExtensionParser should have its own file
90         https://bugs.webkit.org/show_bug.cgi?id=98475
91
92         Reviewed by Yuta Kitamura.
93
94         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
95         WebSocketExtensionParser has its own file.
96
97         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
98
99         * CMakeLists.txt: Added WebSocketExtensionParser.
100         * GNUmakefile.list.am: Ditto.
101         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
102         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
103         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
104         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
105         (WebCore):
106         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
107         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
108         (WebCore::isSeparator): Ditto.
109         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
110         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
111         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
112         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
113         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
114         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
115         * Modules/websockets/WebSocketExtensionParser.h: Added.
116         (WebCore):
117         (WebSocketExtensionParser):
118         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
119         (WebCore::WebSocketExtensionParser::currentToken):
120         * Target.pri: Added WebSocketExtensionParser.
121         * WebCore.gypi: Ditto.
122         * WebCore.vcproj/WebCore.vcproj: Ditto.
123         * WebCore.xcodeproj/project.pbxproj: Ditto.
124
125 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
126
127         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
128         https://bugs.webkit.org/show_bug.cgi?id=61675
129
130         Reviewed by Kent Tamura.
131
132         According to the spec, the size IDL attribute of input elements is limited
133         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
134         exception when set to 0. New behavior matches both Firefox and IE.
135         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
136
137         Test: fast/dom/HTMLInputElement/input-size-attribute.html
138
139         * html/HTMLInputElement.cpp:
140         (WebCore::HTMLInputElement::setSize):
141         * html/HTMLInputElement.h:
142         (HTMLInputElement):
143         * html/HTMLInputElement.idl:
144
145 2012-10-04  Kent Tamura  <tkent@chromium.org>
146
147         Fix font for date/time input types.
148         https://bugs.webkit.org/show_bug.cgi?id=98478
149
150         Reviewed by Kentaro Hara.
151
152         input[type=date] should use monospace font if
153         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
154
155         For other date/time types, they should use monospace font only
156         if their types are enabled. input[type="foo"] matches input
157         element with type="foo" even if the foo type is not supported.
158
159         The input[type=date] change is covered by
160         fast/forms/date/calendar-picker-appearance.html,
161         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
162
163         * css/html.css:
164         (input[type="date"]):
165         (input[type="datetime"]):
166         (input[type="datetime-local"]):
167         (input[type="month"]):
168         (input[type="time"]):
169
170 2012-10-04  Hajime Morrita  <morrita@google.com>
171
172         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
173         https://bugs.webkit.org/show_bug.cgi?id=98469
174
175         Reviewed by Dimitri Glazkov.
176
177         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
178         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
179
180         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
181         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
182
183         No new tests. Just splitting file and doing simple rename.
184
185         * CMakeLists.txt:
186         * GNUmakefile.list.am:
187         * Target.pri:
188         * WebCore.gypi:
189         * WebCore.xcodeproj/project.pbxproj:
190         * css/CSSAllInOne.cpp:
191         * css/RuleFeature.cpp: Added.
192         (WebCore):
193         (WebCore::RuleFeatureSet::add):
194         (WebCore::RuleFeatureSet::clear):
195         (WebCore::RuleFeatureSet::reportMemoryUsage):
196         * css/RuleFeature.h: Added.
197         (WebCore):
198         (RuleFeature):
199         (WebCore::RuleFeature::RuleFeature):
200         (RuleFeatureSet):
201         (WebCore::RuleFeatureSet::RuleFeatureSet):
202         * css/RuleSet.cpp: Added.
203         (WebCore):
204         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
205         (WebCore::selectorListContainsUncommonAttributeSelector):
206         (WebCore::isCommonAttributeSelectorAttribute):
207         (WebCore::containsUncommonAttributeSelector):
208         (WebCore::RuleData::RuleData):
209         (WebCore::RuleData::reportMemoryUsage):
210         (WebCore::reportAtomRuleMap):
211         (WebCore::RuleSet::reportMemoryUsage):
212         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
213         (WebCore::collectFeaturesFromSelector):
214         (WebCore::collectFeaturesFromRuleData):
215         (WebCore::RuleSet::addToRuleSet):
216         (WebCore::RuleSet::addRule):
217         (WebCore::RuleSet::addPageRule):
218         (WebCore::RuleSet::addRegionRule):
219         (WebCore::RuleSet::addRulesFromSheet):
220         (WebCore::RuleSet::addStyleRule):
221         (WebCore::shrinkMapVectorsToFit):
222         (WebCore::RuleSet::shrinkToFit):
223         * css/RuleSet.h: Added.
224         (WebCore):
225         (RuleData):
226         (WebCore::RuleData::position):
227         (WebCore::RuleData::rule):
228         (WebCore::RuleData::selector):
229         (WebCore::RuleData::selectorIndex):
230         (WebCore::RuleData::hasFastCheckableSelector):
231         (WebCore::RuleData::hasMultipartSelector):
232         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
233         (WebCore::RuleData::containsUncommonAttributeSelector):
234         (WebCore::RuleData::specificity):
235         (WebCore::RuleData::linkMatchType):
236         (WebCore::RuleData::hasDocumentSecurityOrigin):
237         (WebCore::RuleData::isInRegionRule):
238         (WebCore::RuleData::descendantSelectorIdentifierHashes):
239         (SameSizeAsRuleData):
240         (RuleSet):
241         (WebCore::RuleSet::create):
242         (WebCore::RuleSet::disableAutoShrinkToFit):
243         (WebCore::RuleSet::features):
244         (WebCore::RuleSet::idRules):
245         (WebCore::RuleSet::classRules):
246         (WebCore::RuleSet::tagRules):
247         (WebCore::RuleSet::shadowPseudoElementRules):
248         (WebCore::RuleSet::linkPseudoClassRules):
249         (WebCore::RuleSet::focusPseudoClassRules):
250         (WebCore::RuleSet::universalRules):
251         (WebCore::RuleSet::pageRules):
252         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
253         (RuleSetSelectorPair):
254         (WebCore::RuleSet::RuleSet):
255         * css/StyleResolver.cpp:
256         (WebCore):
257         (WebCore::makeRuleSet):
258         (WebCore::StyleResolver::collectMatchingRulesForList):
259         * css/StyleResolver.h:
260         (StyleResolver):
261
262 2012-10-04  Adam Barth  <abarth@webkit.org>
263
264         FeatureObserver should distinguish between legacy HTML and text notifications
265         https://bugs.webkit.org/show_bug.cgi?id=98441
266
267         Reviewed by Tony Chang.
268
269         We might be able to drop support for legacy HTML notifications before
270         we can drop support for legacy text notifications. We should measure
271         and find out.
272
273         * Modules/notifications/NotificationCenter.idl:
274         * page/FeatureObserver.h:
275
276 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
277
278         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
279         https://bugs.webkit.org/show_bug.cgi?id=98444
280
281         Reviewed by Eric Seidel.
282
283         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
284         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
285         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
286
287         Code cleanup patch. No new tests required.
288
289         * html/HTMLFormElement.cpp:
290         (WebCore::HTMLFormElement::HTMLFormElement):
291           Removed m_wasMalformed initialization.
292
293         * html/HTMLFormElement.h:
294         (HTMLFormElement):
295          Removed m_wasMalformed variable.
296          Removed m_wasMalformed variable's setter and getter functions.
297
298         * rendering/RenderBlock.cpp:
299         (WebCore::RenderBlock::layoutBlock):
300          Removed code fragment using/dependent on m_wasMalformed.
301
302 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
303
304         Turn Compositing on by default in WebKit build
305         https://bugs.webkit.org/show_bug.cgi?id=98315
306
307         Reviewed by Simon Fraser.
308
309         enable -webkit-blend-mode on trunk.
310
311         No new tests. Existing blending test were updated.
312
313         * Configurations/FeatureDefines.xcconfig:
314         * css/CSSPropertyNames.in:
315         * css/CSSValueKeywords.in:
316
317 2012-10-04  Hayato Ito  <hayato@chromium.org>
318
319         [Refactoring] Introduce a traversal strategy in SelectorChecker
320         https://bugs.webkit.org/show_bug.cgi?id=97298
321
322         Reviewed by Antti Koivisto.
323
324         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
325         Another traversal strategy will be introduced in Bug 96990.
326
327         Since this code path is very hot, we were very careful not to regress performance.
328         We will use template specialization to change the traversal implementation.
329
330         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
331         the added test in my Linux Box using run-perf-tests.
332
333         The performance of the added test before using this patch was:
334
335           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
336           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
337
338         When we used this patch, the performance was:
339
340           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
341           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
342
343         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
344
345         * css/SelectorChecker.cpp:
346         (WebCore):
347         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
348         Another Context type will be introduced in coming patch.
349         (WebCore::SelectorChecker::checkOneSelector):
350         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
351         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
352         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
353         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
354         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
355         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
356         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
357         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
358         * css/SelectorChecker.h:
359         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
360         (SelectorCheckingContext):
361         (SelectorChecker):
362         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
363         will be introduced the coming patch.
364
365 2012-10-04  Eric Seidel  <eric@webkit.org>
366
367         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
368         https://bugs.webkit.org/show_bug.cgi?id=98473
369
370         Reviewed by Adam Barth.
371
372         I tested this using instruments on a test case which modified SVG attributes in a loop.
373         I believe pdr has some perf-tests in this area, but they weren't needed here.  A simple sample showed this as a huge win,
374         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
375
376         * svg/SVGElement.h:
377         (WebCore::SVGAttributeHashTranslator::hash):
378         (WebCore::SVGAttributeHashTranslator::equal):
379
380 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
381
382         Split the intrinsic padding update code out of RenderTableSection::layoutRows
383         https://bugs.webkit.org/show_bug.cgi?id=98454
384
385         Reviewed by Eric Seidel.
386
387         RenderTableSection::layoutRows is very long and it's difficult to see what's
388         going on. This change moves the intrinsic padding update code into RenderTableCell
389         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
390
391         Change covered by existing table tests.
392
393         * rendering/RenderTableCell.cpp:
394         (WebCore::RenderTableCell::computeIntrinsicPadding):
395         Added this new function that does the update. Removed the 'default' case, replaced by
396         the explicit label BASELINE_MIDDLE.
397
398         * rendering/RenderTableCell.h:
399         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
400         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
401         (WebCore::RenderTableCell::setIntrinsicPadding):
402         Moved those setters to the private section as we want other classes
403         to use computeIntrinsicPadding.
404
405         * rendering/RenderTableSection.cpp:
406         (WebCore::RenderTableSection::layoutRows):
407         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
408         Also moved 2 variables in the loop per our coding style.
409
410         * rendering/RenderTableSection.h:
411         (WebCore::RenderTableSection::rowBaseline):
412         Renamed to match our coding style.
413
414 2012-10-04  Nate Chapin  <japhet@chromium.org>
415
416         Crash in EventHandler::mouseMoved().
417         https://bugs.webkit.org/show_bug.cgi?id=98460
418
419         Reviewed by Abhishek Arya.
420
421         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
422
423         * page/EventHandler.cpp:
424         (WebCore::EventHandler::mouseMoved):
425
426 2012-10-04  Adam Barth  <abarth@webkit.org>
427
428         [V8] NotificationCenter leaks because it uses buggy custom bindings
429         https://bugs.webkit.org/show_bug.cgi?id=98445
430
431         Reviewed by Tony Chang.
432
433         There's no reason to use custom bindings here. All they do is cause leaks..
434
435         * Modules/notifications/NotificationCenter.idl:
436         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
437
438 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
439
440         Selector specificity categories "overflow" into higher categories
441         https://bugs.webkit.org/show_bug.cgi?id=98295
442
443         Reviewed by Eric Seidel.
444
445         This patch adds per-component overflow guards for CSS selector specificity.
446         Previously, we didn't guard against overflow. 
447         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
448         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
449         This violated the Selectors specification,
450         which requires the components to be compared lexicographically.
451
452         Tests: /fast/selectors/specificity-overflow.html
453
454         * css/CSSSelector.cpp:
455         (WebCore::CSSSelector::specificity):
456
457 2012-10-04  Enrica Casucci  <enrica@apple.com>
458
459         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
460         https://bugs.webkit.org/show_bug.cgi?id=98452.
461
462         Reviewed by Dan Bernstein.
463
464         The text orientation was considered only when there is a cache hit.
465         This change moves the logic to handle text orientation to a separate
466         inline function that is called also when the glyph is added to the cache.
467
468         Test: fast/text/vertical-rl-rtl-linebreak.html
469
470         * platform/graphics/FontFastPath.cpp:
471         (WebCore::applyTextOrientationForCharacter): Added.
472         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
473         both cases of cold and warm cache.
474
475 2012-10-04  Adam Klein  <adamk@chromium.org>
476
477         MutationRecord attributeName should be null for non attribute changes
478         https://bugs.webkit.org/show_bug.cgi?id=98438
479
480         Reviewed by Ojan Vafai.
481
482         Test: fast/mutation/mutation-record-nullity.html
483
484         * dom/MutationRecord.idl:
485
486 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
487
488         Final part of "sync" to "flush" renaming
489         https://bugs.webkit.org/show_bug.cgi?id=98430
490
491         Reviewed by Tim Horton.
492
493         Change method names on GraphicsLayer and GraphicsLayerClient that
494         refer to "sync" to use the term "flush" instead, to be consistent
495         with the rest of the code.
496
497         * platform/graphics/GraphicsLayer.h:
498         (WebCore::GraphicsLayer::flushCompositingState):
499         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
500         * platform/graphics/GraphicsLayerClient.h:
501         (GraphicsLayerClient):
502         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
503         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
504         * platform/graphics/blackberry/LayerWebKitThread.cpp:
505         (WebCore::LayerWebKitThread::setNeedsCommit):
506         * platform/graphics/ca/GraphicsLayerCA.cpp:
507         (WebCore::GraphicsLayerCA::flushCompositingState):
508         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
509         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
510         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
511         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
512         * platform/graphics/ca/GraphicsLayerCA.h:
513         (GraphicsLayerCA):
514         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
515         (WebCore::GraphicsLayerTextureMapper::notifyChange):
516         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
517         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
518         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
519         (GraphicsLayerTextureMapper):
520         * platform/graphics/texmap/TextureMapperLayer.cpp:
521         (WebCore::TextureMapperLayer::flushCompositingState):
522         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
523         * platform/graphics/texmap/TextureMapperLayer.h:
524         (TextureMapperLayer):
525         * rendering/RenderLayerBacking.cpp:
526         (WebCore::RenderLayerBacking::notifyFlushRequired):
527         * rendering/RenderLayerBacking.h:
528         (RenderLayerBacking):
529         * rendering/RenderLayerCompositor.cpp:
530         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
531         * rendering/RenderLayerCompositor.h:
532         (WebCore::RenderLayerCompositor::notifyFlushRequired):
533
534 2012-10-04  Tab Atkins  <tabatkins@google.com>
535
536         1ex should equal .5em when the font has no x-height metric
537         https://bugs.webkit.org/show_bug.cgi?id=80360
538
539         Reviewed by Eric Seidel.
540
541         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
542
543         Updated a few of the platform font files to set the flag properly.
544
545         Patch cleanup by David Barr <davidbarr@chromium.org>.
546
547         Test: fast/css/ex-unit-with-no-x-height.html
548
549         * css/CSSPrimitiveValue.cpp:
550         (WebCore::CSSPrimitiveValue::computeLengthDouble):
551         * platform/graphics/FontMetrics.h:
552         (WebCore::FontMetrics::FontMetrics):
553         (WebCore::FontMetrics::setXHeight):
554         (FontMetrics):
555         (WebCore::FontMetrics::hasXHeight):
556         (WebCore::FontMetrics::setHasXHeight):
557         (WebCore::FontMetrics::reset):
558         * platform/graphics/skia/SimpleFontDataSkia.cpp:
559         (WebCore::SimpleFontData::platformInit):
560
561 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
562
563         Build fix after r130411. Add the right offset.
564         Also use RefPtr instead of a raw pointer for next and previous pointers.
565
566         * editing/ReplaceSelectionCommand.cpp:
567         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
568
569 2012-10-04  Alec Flett  <alecflett@chromium.org>
570
571         IndexedDB: promote objectstore/index backend ids to the frontend
572         https://bugs.webkit.org/show_bug.cgi?id=97834
573
574         Reviewed by Tony Chang.
575
576         Expose int64-based database/objectStore/index ids to the renderer,
577         step 1 of 2. Support both styles of createObjectStore and
578         createIndex: those that take an explicit id, and those that take
579         -1, meaning to autogenerate an id on the backend. In part 2, after
580         the chromium side lands, support for the autogenerated ids will be
581         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
582
583         This is a part of larger refactoring work to ultimately make the interface
584         between the frontend and the backend simpler.
585
586         No new tests, extensive ASSERTs and existing tests cover correctness.
587
588         * Modules/indexeddb/IDBBackingStore.h:
589         (IDBBackingStore):
590         * Modules/indexeddb/IDBDatabase.cpp:
591         (WebCore::IDBDatabase::createObjectStore):
592         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
593         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
594         (WebCore::IDBDatabaseBackendImpl::openInternal):
595         (WebCore::IDBDatabaseBackendImpl::metadata):
596         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
597         (WebCore):
598         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
599         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
600         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
601         (IDBDatabaseBackendImpl):
602         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
603         (IDBDatabaseBackendInterface):
604         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
605         (WebCore::IDBIndexBackendImpl::metadata):
606         * Modules/indexeddb/IDBIndexBackendImpl.h:
607         (WebCore::IDBIndexBackendImpl::create):
608         (IDBIndexBackendImpl):
609         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
610         (WebCore):
611         (WebCore::getMaxObjectStoreId):
612         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
613         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
614         (WebCore::IDBLevelDBBackingStore::getObjectStores):
615         (WebCore::setMaxObjectStoreId):
616         (WebCore::IDBLevelDBBackingStore::createObjectStore):
617         (WebCore::getMaxIndexId):
618         (WebCore::setMaxIndexId):
619         (WebCore::IDBLevelDBBackingStore::createIndex):
620         * Modules/indexeddb/IDBLevelDBBackingStore.h:
621         (IDBLevelDBBackingStore):
622         * Modules/indexeddb/IDBMetadata.h:
623         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
624         (IDBDatabaseMetadata):
625         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
626         (IDBObjectStoreMetadata):
627         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
628         (IDBIndexMetadata):
629         * Modules/indexeddb/IDBObjectStore.cpp:
630         (WebCore::IDBObjectStore::createIndex):
631         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
632         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
633         (WebCore::IDBObjectStoreBackendImpl::metadata):
634         (WebCore::IDBObjectStoreBackendImpl::createIndex):
635         (WebCore):
636         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
637         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
638         (WebCore::IDBObjectStoreBackendImpl::create):
639         (IDBObjectStoreBackendImpl):
640         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
641 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
642
643         Layout broken after cloning and re-inserting a table with a misplaced <form>
644         https://bugs.webkit.org/show_bug.cgi?id=86746
645
646         Reviewed by Julien Chaffraix.
647
648         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
649         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
650         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
651         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
652         results in the table getting improperly rendered.
653
654         Test: fast/table/form-with-non-table-display-inside-table-elements.html
655
656         * html/HTMLFormElement.cpp:
657         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
658           Extended the virtual function for HTMLFormElement class specific implementation.
659           The function is used to copy any necessary state information(member variables) associated with
660           the <form> element being cloned to the current node.
661           For HTMLFormElement node the member variable can be classified into five groups based on the 
662           information they hold:
663             1) Variables containing information regarding <form> subtree and elements associated with it.
664                These get updated as and when an element is added to the <form> subtree.
665             2) Variables containing <form> submit state information.
666             3) Flag to hold information if reset() has been called.
667             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
668                be handled differently during creation of its renderer.
669                This information is currently being updated only during the HTML tree construction phase.
670             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
671
672           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
673           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
674           being used(not set by any code).
675
676           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
677           during the cloning process.
678
679         (WebCore):
680         * html/HTMLFormElement.h:
681           Added copyNonAttributePropertiesFromElement() declaration.
682
683 2012-10-04  Dean Jackson  <dino@apple.com>
684
685         Attribute and Uniform variable names need translation in shader
686         https://bugs.webkit.org/show_bug.cgi?id=70989
687
688         Reviewed by Tim Horton (and Darin Adler).
689
690         WebGL specifies some maximum lengths for variable names (attributes
691         and uniforms). Also, some GL drivers have issues with long names. For
692         that reason, ANGLE has an option to rewrite the shader, translating
693         long names into short names. Turning this on helps shaders compile,
694         but we need to keep a mapping between the original names and the
695         translated names, so that we bind to the right location from user code
696         (which won't ever see the translated source).
697
698         This provided an opportunity to clean up some other bits of code:
699         CSS Filters examined the uniform names after a compilation; It can
700         now use the variable name map. I also added a typedef for the
701         HashMaps that keep the shader, the source code and the variable name
702         mappings.
703
704         I also opened a followup bug to make sure these tables are deleted
705         when the associated shaders (or linked programs) go away:
706         https://bugs.webkit.org/show_bug.cgi?id=98204
707
708         Covered by existing tests (with some enhancements):
709         - fast/canvas/webgl/attrib-location-length-limits.html:
710         - fast/canvas/webgl/uniform-location-length-limits.html:
711
712         * platform/graphics/ANGLEWebKitBridge.cpp:
713         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
714         or uniforms) from the newly compiled shader.
715         (WebCore):
716         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
717         * platform/graphics/ANGLEWebKitBridge.h:
718         (WebCore::getUniforms): Deleted this method.
719         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
720         (ANGLEWebKitBridge):
721         * platform/graphics/GraphicsContext3D.h:
722         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
723         holds the size, type and translated name of a symbol from a WebGL shader.
724         (ShaderSourceEntry):
725         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
726         of the translated source code and symbol mappings.
727         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
728         get the member variable corresponding to the type of symbol you're asking fo.
729         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
730         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
731         name which also produces a set of symbols to examine.
732         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
733         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
734         in some extra compile options to do translation of long symbol names. Also fill the
735         map of translated symbol names.
736         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
737         (WebCore::GraphicsContext3D::compileShader):
738         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
739         a shader symbol if it was translated during compilation.
740         (WebCore):
741         (WebCore::GraphicsContext3D::getAttribLocation):
742         (WebCore::GraphicsContext3D::getShaderiv):
743         (WebCore::GraphicsContext3D::getShaderInfoLog):
744         (WebCore::GraphicsContext3D::getShaderSource):
745         (WebCore::GraphicsContext3D::getUniformLocation):
746
747 2012-10-04  Alpha Lam  <hclam@chromium.org>
748
749         [skia] Drawing a subrect of bitmap image is misaligned
750         https://bugs.webkit.org/show_bug.cgi?id=95121
751
752         Reviewed by Stephen White.
753
754         When drawing a subrect of BitmapImage and the subrect is not aligned
755         to integer boundaries, skia expands it to the closest enclosing integer
756         rectangle. This creates prominent rendering artifacts when an image
757         is used as background and its sub-regions are invalidated frequently.
758
759         This patch fixes the problem by doing alignment to integer boundaries
760         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
761
762         A clip rect is applied to the canvas using original destination
763         rectangle, while source and destination rectangles are enlarged
764         appropriately to ensure source rectangle is aligned.
765
766         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
767         resampling mode the previous algorithm applies different approximated
768         scale factor for each scaled image fragment. This caused the stitched
769         image to look ugly.
770
771         Scale factor is approximated using entire image size, this gives a
772         more accurate approximation because of greater denominator and a
773         consistent scale factor across all fragments.
774
775         Changes in Skia enable caching of the scaled image and return the
776         scaled fragment because scale factor is now consistent for all
777         fragments.
778
779         Tests: fast/images/paint-subrect-grid.html
780                fast/images/paint-subrect.html
781                fast/images/repaint-subrect-grid.html
782
783         * platform/graphics/skia/ImageSkia.cpp:
784         (WebCore::computeResamplingMode): Use float for width and height.
785         (WebCore):
786         (WebCore::areBoundariesIntegerAligned):
787         (WebCore::computeBitmapDrawRects):
788         (WebCore::extractScaledImageFragment):
789         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
790         (WebCore::paintSkBitmap):
791         (WebCore::Image::drawPattern):
792         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
793         (WebCore::BitmapImageSingleFrameSkia::draw):
794         * platform/graphics/skia/NativeImageSkia.cpp:
795         Changing the algorithm for extracting a scaled image fragment.
796         A fragment is now identified by (scaledImageSize, scaledImageSubset).
797         (WebCore::NativeImageSkia::hasResizedBitmap):
798         (WebCore::NativeImageSkia::resizedBitmap):
799         (WebCore::NativeImageSkia::shouldCacheResampling):
800         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
801         (WebCore):
802         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
803         (WebCore::NativeImageSkia::CachedImageInfo::set):
804         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
805         * platform/graphics/skia/NativeImageSkia.h:
806         (NativeImageSkia):
807         (CachedImageInfo):
808
809 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
810
811         ReplaceSelectionCommand should merge text nodes
812         https://bugs.webkit.org/show_bug.cgi?id=98188
813
814         Reviewed by Levi Weintraub.
815
816         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
817         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
818
819         This behavior change is tested by existing tests.
820
821         * editing/InsertParagraphSeparatorCommand.cpp:
822         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
823         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
824         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
825         the second half. So keep this position.
826         * editing/ReplaceSelectionCommand.cpp:
827         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
828         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
829         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
830         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
831         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
832         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
833         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
834         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
835         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
836         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
837         positions were before or after the text node.
838         * editing/ReplaceSelectionCommand.h:
839         (ReplaceSelectionCommand):
840
841 2012-10-04  Tony Chang  <tony@chromium.org>
842
843         Fix <input type="month"> tests
844         https://bugs.webkit.org/show_bug.cgi?id=98426
845
846         Reviewed by Ojan Vafai.
847
848         The month picker uses flexbox and assumes that it will be aligned with
849         the last line box. This looks visually correct. I will follow up on
850         www-style to see what the expected behavior is.
851
852         Tests: fast/forms/month-multiple-fields tests cover this.
853
854         * rendering/RenderFlexibleBox.cpp:
855         * rendering/RenderFlexibleBox.h:
856
857 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
858
859         Unreviewed, rolling out r130396.
860         http://trac.webkit.org/changeset/130396
861         https://bugs.webkit.org/show_bug.cgi?id=98421
862
863         This patch is causing crashes on 4 tests on Lion Debug and
864         Mountain Lion Debug (Requested by jernoble on #webkit).
865
866         * rendering/RenderLayerCompositor.cpp:
867         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
868         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
869         * rendering/RenderLayerCompositor.h:
870         * testing/InternalSettings.cpp:
871         (WebCore::InternalSettings::Backup::Backup):
872         (WebCore::InternalSettings::Backup::restoreTo):
873         * testing/InternalSettings.h:
874         (Backup):
875
876 2012-10-04  Tony Chang  <tony@chromium.org>
877
878         inline-flex baseline is sometimes wrong
879         https://bugs.webkit.org/show_bug.cgi?id=96188
880
881         Reviewed by Ojan Vafai.
882
883         Implement the necessary methods to get the proper baseline alignment of flexbox.
884         We were falling back to the inline-block behavior.
885
886         Test: css3/flexbox/flexbox-baseline.html
887
888         * rendering/RenderFlexibleBox.cpp:
889         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
890         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
891         Mostly just the first line box baseline.
892         (WebCore):
893         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
894         We actually don't want the last line, but the flexbox's baseline.
895         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
896         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
897         first line so we don't have to re-compute this when getting the baseline.
898         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
899         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
900         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
901         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
902
903 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
904
905         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
906         https://bugs.webkit.org/show_bug.cgi?id=98100
907
908         Reviewed by Stephen White.
909
910         At least on chromium-linux and chromium-android, unitsPerEm was not set
911         according to the information in the font, causing at least problems in
912         OpenTypeVerticalData when calculating vertical advance.
913
914         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
915
916         * platform/graphics/skia/SimpleFontDataSkia.cpp:
917         (WebCore::SimpleFontData::platformInit):
918
919 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
920
921         Standardize on "flush" terminology for compositing layer flushing/syncing
922         https://bugs.webkit.org/show_bug.cgi?id=98321
923
924         Reviewed by Simon Fraser.
925
926         Rename compositing-related methods that refer to "syncing" to instead
927         refer to "flushing".
928
929         * WebCore.exp.in:
930         * loader/EmptyClients.h:
931         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
932         * page/ChromeClient.h:
933         (ChromeClient):
934         * page/FrameView.cpp:
935         (WebCore::FrameView::flushCompositingStateForThisFrame):
936         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
937         (WebCore::FrameView::paintContents):
938         * page/FrameView.h:
939         (FrameView):
940         * rendering/RenderLayerCompositor.cpp:
941         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
942         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
943
944 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
945
946         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
947         https://bugs.webkit.org/show_bug.cgi?id=94397
948
949         Reviewed by Yury Semikhatsky.
950
951         Internal property access is built from Injected Script to V8 debug API. JSC binding
952         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
953
954         Test: inspector-protocol/runtime-getProperties.html
955
956         * bindings/js/JSInjectedScriptHostCustom.cpp:
957         (WebCore::JSInjectedScriptHost::getInternalProperties):
958         (WebCore):
959         * bindings/v8/DebuggerScript.js:
960         * bindings/v8/ScriptDebugServer.cpp:
961         (WebCore::ScriptDebugServer::getInternalProperties):
962         (WebCore):
963         * bindings/v8/ScriptDebugServer.h:
964         (ScriptDebugServer):
965         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
966         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
967         (WebCore):
968         * inspector/InjectedScript.cpp:
969         (WebCore::InjectedScript::getInternalProperties):
970         (WebCore):
971         * inspector/InjectedScript.h:
972         (InjectedScript):
973         * inspector/InjectedScriptHost.idl:
974         * inspector/InjectedScriptSource.js:
975         (.):
976         * inspector/Inspector.json:
977         * inspector/InspectorRuntimeAgent.cpp:
978         (WebCore::InspectorRuntimeAgent::getProperties):
979         * inspector/InspectorRuntimeAgent.h:
980         (InspectorRuntimeAgent):
981
982 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
983
984         Fixed position visibility check does not consider descendants
985         https://bugs.webkit.org/show_bug.cgi?id=98144
986
987         Reviewed by Simon Fraser.
988
989         The check against creating composition layers for invisible fixed positioned
990         elements is too aggressive in that it does not consider descendants of the
991         fixed positioned element that may be visible even though the element itself is
992         out of view.
993
994         Fix the problem by calculating the true composited bounds of the fixed
995         element instead of just using the size of the fixed layer. Because calculating
996         the true bounds may be expensive, it is only done if the fixed layer itself is
997         invisible.
998
999         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
1000
1001         * rendering/RenderLayerCompositor.cpp:
1002         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1003         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
1004         * rendering/RenderLayerCompositor.h:
1005
1006 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
1007
1008         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
1009         https://bugs.webkit.org/show_bug.cgi?id=98385
1010
1011         Reviewed by Pavel Feldman.
1012
1013         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
1014         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
1015         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
1016         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
1017
1018         * inspector/front-end/BreakpointManager.js:
1019         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
1020         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
1021         * inspector/front-end/JavaScriptSource.js:
1022         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
1023         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
1024         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
1025         * inspector/front-end/JavaScriptSourceFrame.js:
1026         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
1027         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
1028         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
1029         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
1030         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
1031         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
1032         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
1033         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
1034         * inspector/front-end/ResourceScriptMapping.js:
1035         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
1036         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
1037         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
1038         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
1039         * inspector/front-end/ScriptSnippetModel.js:
1040         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
1041         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
1042         * inspector/front-end/ScriptsPanel.js:
1043         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
1044         * inspector/front-end/UISourceCode.js:
1045         (WebInspector.UISourceCode.prototype.formatted):
1046
1047 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
1048
1049         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
1050         https://bugs.webkit.org/show_bug.cgi?id=98402
1051
1052         Reviewed by Pavel Feldman.
1053
1054         Scripts panel does not automatically switch to snippet evaluation when
1055         one edits previously evaluated snippet.
1056
1057         * inspector/front-end/ScriptSnippetModel.js:
1058         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
1059         * inspector/front-end/ScriptsPanel.js:
1060         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
1061
1062 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
1063
1064         Don't allow to disable compositing in forced compositing mode
1065         https://bugs.webkit.org/show_bug.cgi?id=98048
1066
1067         Reviewed by Jocelyn Turcotte.
1068
1069         Make forced compositing mode imply accelerated compositing. This will
1070         avoid unexpected situations for platforms that don't want to support
1071         the non-accelerated rendering path.
1072
1073         Covered by existing tests.
1074
1075         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
1076         because it has been deinlined.
1077         * page/Settings.cpp:
1078         (WebCore::Settings::setAcceleratedCompositingEnabled):
1079         (WebCore::Settings::setForceCompositingMode):
1080         (WebCore):
1081         * page/Settings.h:
1082         (Settings):
1083         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
1084
1085 2012-10-04  Harald Alvestrand  <hta@google.com>
1086
1087         Change RTCPeerConnection GetStats to use Date timestamp format
1088         https://bugs.webkit.org/show_bug.cgi?id=98263
1089
1090         Reviewed by Yury Semikhatsky.
1091
1092         Tested by extension to RTCPeerConnection-stats test.
1093
1094         * Modules/mediastream/RTCStatsElement.cpp:
1095         (WebCore::RTCStatsElement::create):
1096         (WebCore::RTCStatsElement::RTCStatsElement):
1097         * Modules/mediastream/RTCStatsElement.h: long -> double
1098         (RTCStatsElement):
1099         (WebCore::RTCStatsElement::timestamp):
1100         * Modules/mediastream/RTCStatsElement.idl: long -> Date
1101         * Modules/mediastream/RTCStatsReport.cpp:
1102         (WebCore::RTCStatsReport::addElement):
1103         * Modules/mediastream/RTCStatsReport.h:
1104         (RTCStatsReport):
1105         * Modules/mediastream/RTCStatsResponse.cpp:
1106         (WebCore::RTCStatsResponse::addElement):
1107         * Modules/mediastream/RTCStatsResponse.h:
1108         (RTCStatsResponse):
1109         * platform/chromium/support/WebRTCStatsResponse.cpp:
1110         (WebKit::WebRTCStatsResponse::addElement):
1111         * platform/mediastream/RTCStatsResponseBase.h:
1112         (RTCStatsResponseBase):
1113
1114 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
1115
1116         Unreviewed, rolling out r130377.
1117         http://trac.webkit.org/changeset/130377
1118         https://bugs.webkit.org/show_bug.cgi?id=98392
1119
1120         Chromium Win compilation is broken (Requested by yurys on
1121         #webkit).
1122
1123         * Modules/mediastream/RTCStatsElement.cpp:
1124         (WebCore::RTCStatsElement::create):
1125         (WebCore::RTCStatsElement::RTCStatsElement):
1126         * Modules/mediastream/RTCStatsElement.h:
1127         (RTCStatsElement):
1128         (WebCore::RTCStatsElement::timestamp):
1129         * Modules/mediastream/RTCStatsElement.idl:
1130         * Modules/mediastream/RTCStatsReport.cpp:
1131         (WebCore::RTCStatsReport::addElement):
1132         * Modules/mediastream/RTCStatsReport.h:
1133         (RTCStatsReport):
1134         * Modules/mediastream/RTCStatsResponse.cpp:
1135         (WebCore::RTCStatsResponse::addElement):
1136         * Modules/mediastream/RTCStatsResponse.h:
1137         (RTCStatsResponse):
1138         * platform/chromium/support/WebRTCStatsResponse.cpp:
1139         (WebKit::WebRTCStatsResponse::addElement):
1140         * platform/mediastream/RTCStatsResponseBase.h:
1141         (RTCStatsResponseBase):
1142
1143 2012-10-04  Harald Alvestrand  <hta@google.com>
1144
1145         Change RTCPeerConnection GetStats to use Date timestamp format
1146         https://bugs.webkit.org/show_bug.cgi?id=98263
1147
1148         Reviewed by Adam Barth.
1149
1150         Tested by extension to RTCPeerConnection-stats test.
1151
1152         * Modules/mediastream/RTCStatsElement.cpp:
1153         (WebCore::RTCStatsElement::create):
1154         (WebCore::RTCStatsElement::RTCStatsElement):
1155         * Modules/mediastream/RTCStatsElement.h: long -> double
1156         (RTCStatsElement):
1157         (WebCore::RTCStatsElement::timestamp):
1158         * Modules/mediastream/RTCStatsElement.idl: long -> Date
1159         * Modules/mediastream/RTCStatsReport.cpp:
1160         (WebCore::RTCStatsReport::addElement):
1161         * Modules/mediastream/RTCStatsReport.h:
1162         (RTCStatsReport):
1163         * Modules/mediastream/RTCStatsResponse.cpp:
1164         (WebCore::RTCStatsResponse::addElement):
1165         * Modules/mediastream/RTCStatsResponse.h:
1166         (RTCStatsResponse):
1167         * platform/chromium/support/WebRTCStatsResponse.cpp:
1168         (WebKit::WebRTCStatsResponse::addElement):
1169         * platform/mediastream/RTCStatsResponseBase.h:
1170         (RTCStatsResponseBase):
1171
1172 2012-10-05  Kent Tamura  <tkent@chromium.org>
1173
1174         [Chromium] Enable the multiple fields UI for input[type=date]
1175         https://bugs.webkit.org/show_bug.cgi?id=98351
1176
1177         Reviewed by Hajime Morita.
1178
1179         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
1180         issues.
1181
1182         No new tests. Many tests will be landed shortly.
1183
1184         * html/DateInputType.cpp:
1185         * html/DateInputType.h:
1186
1187 2012-10-04  Kent Tamura  <tkent@chromium.org>
1188
1189         Add code for input[type=date] with the multiple fields UI
1190         https://bugs.webkit.org/show_bug.cgi?id=98340
1191
1192         Reviewed by Hajime Morita.
1193
1194         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
1195         moment, there are no platforms enabling the new code. We're going to
1196         enable it soon on desktop Chromium, and add tests. Then we're going to
1197         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
1198
1199         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
1200         is represetnted as a kind of text field, and it has code to invoke a
1201         calendar picker.
1202         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
1203         support + text field UI of input[type=date]. Now it means only calendar
1204         picker support.
1205
1206         * html/DateInputType.h:
1207         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
1208         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
1209         for multiple fields UI.
1210         (DateInputType): Wrap the code for text fields behavior and calendar
1211         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
1212         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
1213         * html/DateInputType.cpp:
1214         (WebCore::DateInputType::DateInputType):
1215         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
1216         (WebCore): ditto.
1217         (WebCore::DateInputType::formatDateTimeFieldsState):
1218         A callback for multiple fields UI. This constructs a string value from
1219         each of values of multiple fields.
1220         Note that we don't need to do +1 to month().
1221         (WebCore::DateInputType::setupLayoutParameters):
1222         A callback for multiple fields UI. Passes information to build UI.
1223
1224         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1225         (BaseMultipleFieldsDateAndTimeInputType):
1226         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
1227         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1228         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
1229         Initialize m_pickerIndicatorIsAlwaysVisible.
1230         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
1231         If a type supports calendar picker, we should always show the picker
1232         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
1233         RenderTheme for support status of each of types.
1234         Add a local variable 'document' to avoid multiple element()->document().
1235         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
1236         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
1237         - Wrap the code with appropriate flags.
1238
1239         * rendering/RenderTheme.h:
1240         (WebCore::RenderTheme::supportsCalendarPicker): Added.
1241         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
1242         * rendering/RenderThemeChromiumMac.mm:
1243         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
1244         Added. Delegate to RenderThemeChromiumCommon.
1245         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
1246         * rendering/RenderThemeChromiumSkia.cpp:
1247         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
1248         Added. Delegate to RenderThemeChromiumCommon.
1249         * rendering/RenderThemeChromiumCommon.h:
1250         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
1251         * rendering/RenderThemeChromiumCommon.cpp:
1252         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
1253         Returns true if the type is "date."
1254
1255         * html/DateTimeFieldsState.h:
1256         (DateTimeFieldsState): Add a comment for the m_month field.
1257
1258 2012-10-04  Kent Tamura  <tkent@chromium.org>
1259
1260         DateTimeYearFieldElement should respect min/max values specified by page authors
1261         https://bugs.webkit.org/show_bug.cgi?id=98227
1262
1263         Reviewed by Hajime Morita.
1264
1265         Before this patch, we always set 1 to the minimum limit and 275760 to
1266         the maximum limit for a year field, and a user can specify any year
1267         regardless of min/max attributes. Such wide range is unnecessary for
1268         normal applications and we should provide a way to limit the range.
1269
1270         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
1271
1272         * html/shadow/DateTimeFieldElements.h:
1273         To add four constructor arguments, introduce Parameters struct.
1274         Actually, we add the followings;
1275          - minimum year in UI
1276          - maximum year in UI
1277          - min attribute is specified
1278          - max attribute is specified
1279         (Parameters):
1280         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
1281         (DateTimeYearFieldElement):
1282         * html/shadow/DateTimeFieldElements.cpp:
1283         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
1284         (WebCore::DateTimeYearFieldElement::create): ditto.
1285         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
1286         Override DateTimeNumericFieldElement::clampValueForHardLimits.
1287         By this, we allow to set out-of-range year values.
1288         (WebCore::currentFullYear): A helper to get the current year.
1289         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
1290         If the field has no value and step down operation occurs,
1291          - the field has the current year if the max attribute is not specified.
1292          - the field has the maximum value otherwise.
1293         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
1294
1295         * html/shadow/DateTimeNumericFieldElement.h:
1296         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
1297         * html/shadow/DateTimeNumericFieldElement.cpp:
1298         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
1299         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
1300         Call clampValueForHardLimits instead of clampValue in order to
1301         distinguish limits for UI and limits for internal value update.
1302
1303         * html/shadow/DateTimeEditElement.h:
1304         (LayoutParameters): Add minimumYear and maximumYear members.
1305         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
1306         Initialize minimumYear and maximumYear.
1307         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
1308         Represents 'undefined' value for minimumYear and maximumYear.
1309         * html/shadow/DateTimeEditElement.cpp:
1310         (WebCore::DateTimeEditBuilder::visitField):
1311         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
1312
1313         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1314         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
1315         A helper to get a year value from an attribute value string.
1316         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1317         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
1318
1319         * html/DateTimeInputType.cpp:
1320         (WebCore::DateTimeInputType::setupLayoutParameters):
1321         Set LayoutParameters::minimumYear and maximumYear.
1322         * html/DateTimeLocalInputType.cpp:
1323         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
1324         * html/MonthInputType.cpp:
1325         (WebCore::MonthInputType::setupLayoutParameters): ditto.
1326         * html/WeekInputType.cpp:
1327         (WebCore::WeekInputType::setupLayoutParameters): ditto.
1328
1329 2012-10-03  Adam Barth  <abarth@webkit.org>
1330
1331         Unreviewed. Fix parse error in vcproj file.
1332
1333         * WebCore.vcproj/WebCore.vcproj:
1334
1335 2012-10-03  Keishi Hattori  <keishi@webkit.org>
1336
1337         Implement localizeValue for TimeInputType
1338         https://bugs.webkit.org/show_bug.cgi?id=98237
1339
1340         Reviewed by Kent Tamura.
1341
1342         We want to localize time values for the suggestion picker.
1343         DateTimeStringBuilder parses a format and creates a formatted string.
1344
1345         Added chromium unit test LocaleMacTest.formatTime
1346
1347         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1348         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
1349         (WebCore):
1350         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1351         (BaseMultipleFieldsDateAndTimeInputType):
1352         * html/DateTimeInputType.cpp:
1353         (WebCore::DateTimeInputType::setupLayoutParameters):
1354         * html/DateTimeLocalInputType.cpp:
1355         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
1356         * html/TimeInputType.cpp:
1357         (WebCore::TimeInputType::localizeValue):
1358         (WebCore):
1359         (WebCore::TimeInputType::setupLayoutParameters):
1360         * html/TimeInputType.h:
1361         (TimeInputType):
1362         * html/shadow/DateTimeEditElement.cpp:
1363         (WebCore):
1364         * html/shadow/DateTimeEditElement.h:
1365         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
1366         * platform/text/LocaleICU.cpp:
1367         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
1368         * platform/text/LocaleICU.h:
1369         (LocaleICU):
1370         * platform/text/LocaleWin.cpp:
1371         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
1372         * platform/text/LocaleWin.h:
1373         (LocaleWin):
1374         * platform/text/LocaleNone.cpp:
1375         (LocaleNone):
1376         (WebCore::LocaleNone::formatDateTime):
1377         * platform/text/Localizer.cpp:
1378         (DateTimeStringBuilder):
1379         (WebCore):
1380         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
1381         Localizer pointer. This is used inside the Localizer so the Localizer
1382         will out live the DateTimeStringBuilder.
1383         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
1384         (WebCore::DateTimeStringBuilder::zeroPadString):
1385         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
1386         (WebCore::DateTimeStringBuilder::visitField):
1387         (WebCore::DateTimeStringBuilder::visitLiteral):
1388         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
1389         (WebCore::Localizer::formatDateTime):
1390         * platform/text/Localizer.h:
1391         * platform/text/mac/LocaleMac.h:
1392         (LocaleMac):
1393         * platform/text/mac/LocaleMac.mm:
1394         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
1395
1396 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
1397
1398         Chromium needs support for border radius clipping
1399         https://bugs.webkit.org/show_bug.cgi?id=69866
1400
1401         Reviewed by Stephen White.
1402
1403         Changes to make this suitably efficient have already landed upstream in skia:
1404         http://code.google.com/p/skia/source/detail?r=2924
1405
1406         Covered by existing tests.
1407
1408         * rendering/RenderLayer.cpp:
1409
1410 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
1411
1412         Simplify attribute access in Element::computeInheritedLanguage
1413         https://bugs.webkit.org/show_bug.cgi?id=98327
1414
1415         Reviewed by Andreas Kling.
1416
1417         * dom/Element.cpp:
1418         (WebCore::Element::computeInheritedLanguage):
1419         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
1420         and do a bunch of useless operation on AtomicString.
1421
1422         By using ElementAttributeData directly, we can cut it to the two important branch.
1423
1424 2012-10-03  Kangil Han  <kangil.han@samsung.com>
1425
1426         Fix unused parameter compile warnings.
1427         https://bugs.webkit.org/show_bug.cgi?id=98243
1428
1429         Reviewed by Alexey Proskuryakov.
1430
1431         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
1432
1433         * plugins/PluginDebug.cpp:
1434         (WebCore::prettyNameForNPPVariable):
1435         * plugins/npapi.cpp:
1436         (NPN_MemFlush):
1437         (NPN_RequestRead):
1438         (NPN_GetJavaPeer):
1439
1440 2012-10-03  Adam Barth  <abarth@webkit.org>
1441
1442         Measure the usage of WebSQLDatabase
1443         https://bugs.webkit.org/show_bug.cgi?id=98330
1444
1445         Reviewed by Ojan Vafai.
1446
1447         WebKit is the only engine that implements WebSQLDatabase. This patch
1448         causes us to measure its usage so we can see how quickly web sites move
1449         to IndexedDB.
1450
1451         * Modules/webdatabase/DOMWindowWebDatabase.idl:
1452         * page/FeatureObserver.h:
1453
1454 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1455
1456         [soup] WebKit crashes when doing a http request
1457         https://bugs.webkit.org/show_bug.cgi?id=98055
1458
1459         Reviewed by Martin Robinson.
1460
1461         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
1462         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
1463         calling soup_add_timeout with a 0 value.
1464
1465         Also, if resource handle is deleted before "request-started" signal is
1466         emitted, soupMessage handle points to a deleted object, and a crash
1467         occurs. So, reset soupMessage handle data in
1468         cleanupSoupRequestOperation so it won't happen anymore.
1469
1470         Lastly, if timeout occurs before request is completed, handle is
1471         deleted, and crash occurs in sendRequestCallback due to an early
1472         destroyed handle. To avoid that, call handle->cancel in
1473         requestTimeoutCallback. There is no need to call
1474         cleanupSoupRequestOperation anymore since handle->cancel will trigger
1475         sendRequestCallback, and as handle is deleted,
1476         cleanupSoupRequestOperation will be called automatically.
1477
1478         No new tests yet, tests will be added with the patch in bug 74802.
1479
1480         * platform/network/ResourceRequestBase.cpp:
1481         (WebCore):
1482         * platform/network/soup/ResourceHandleSoup.cpp:
1483         (WebCore::cleanupSoupRequestOperation):
1484         (WebCore::ResourceHandle::platformSetDefersLoading):
1485         (WebCore::requestTimeoutCallback):
1486
1487 2012-10-03  Adam Barth  <abarth@webkit.org>
1488
1489         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
1490         https://bugs.webkit.org/show_bug.cgi?id=98301
1491
1492         Reviewed by Eric Seidel.
1493
1494         According to anonymous usage statistics, the APIs guarded by
1495         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
1496         web pages. Given that this feature is only enabled in GTK and Chromium,
1497         it seems likely that we should remove it.
1498
1499         * CMakeLists.txt:
1500         * DerivedSources.make:
1501         * DerivedSources.pri:
1502         * GNUmakefile.features.am:
1503         * GNUmakefile.list.am:
1504         * WebCore.gypi:
1505         * WebCore.xcodeproj/project.pbxproj:
1506         * fileapi/WebKitBlobBuilder.idl: Removed.
1507         * page/DOMWindow.idl:
1508
1509 2012-10-03  Beth Dakin  <bdakin@apple.com>
1510
1511         https://bugs.webkit.org/show_bug.cgi?id=98313
1512         ScrollingStateNode should keep a Vector of children instead of child 
1513         pointers
1514
1515         Reviewed by Simon Fraser.
1516
1517         This patch re-names ScrollingStateNode::cloneNode() to 
1518         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
1519         change properties of the current node after cloning it, and it also 
1520         takes care of cloning children, which the old function did not do.
1521
1522         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
1523         instead.
1524         * page/scrolling/ScrollingStateNode.cpp:
1525         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
1526         (WebCore::ScrollingStateNode::appendChild):
1527         * page/scrolling/ScrollingStateNode.h:
1528         (ScrollingStateNode):
1529         (WebCore::ScrollingStateNode::parent):
1530         (WebCore::ScrollingStateNode::setParent):
1531
1532         Reset the change properties and clone children in cloneAndResetNode()
1533         * page/scrolling/ScrollingStateScrollingNode.cpp:
1534         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
1535         * page/scrolling/ScrollingStateScrollingNode.h:
1536
1537         Yay, this function can be vastly simplified now that we don't have 
1538         those messy child and sibling pointers.
1539         * page/scrolling/ScrollingStateTree.cpp:
1540         (WebCore::ScrollingStateTree::commit):
1541
1542 2012-10-03  Ojan Vafai  <ojan@chromium.org>
1543
1544         Replace uses of -webkit-box-sizing with box-sizing
1545         https://bugs.webkit.org/show_bug.cgi?id=98312
1546
1547         Reviewed by Tony Chang.
1548
1549         No need to use the prefixed version when the unprefixed works the same.
1550         No new tests since there's no change in behavior..
1551
1552         * css/html.css:
1553
1554 2012-10-03  Joshua Bell  <jsbell@chromium.org>
1555
1556         IndexedDB: Don't do full commit for empty transactions
1557         https://bugs.webkit.org/show_bug.cgi?id=89239
1558
1559         Reviewed by Tony Chang.
1560
1561         Don't bother creating a leveldb write batch if there's nothing in the transaction
1562         to commit. Note that a read-only transaction may still have index cleanup so may
1563         not be an empty transaction.
1564
1565         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
1566         from 70s to 2s.
1567
1568         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
1569
1570         * platform/leveldb/LevelDBTransaction.cpp:
1571         (WebCore::LevelDBTransaction::commit):
1572
1573 2012-10-03  Adam Klein  <adamk@chromium.org>
1574
1575         Remove bogus FIXME from Document.idl
1576         https://bugs.webkit.org/show_bug.cgi?id=98302
1577
1578         Reviewed by Adam Barth.
1579
1580         The FIXME claimed that document.body throwing an exception was not
1581         specced, but in fact it is:
1582         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
1583
1584         * dom/Document.idl:
1585
1586 2012-10-03  Joshua Bell  <jsbell@chromium.org>
1587
1588         IndexedDB: Memory leak when deleting object stores with indexes
1589         https://bugs.webkit.org/show_bug.cgi?id=98292
1590
1591         Reviewed by Tony Chang.
1592
1593         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
1594         broken when the transaction completes (and the spec allows traversal to fail).
1595         Deleted stores need to have the reference cycle broken too.
1596
1597         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
1598
1599         * Modules/indexeddb/IDBTransaction.cpp:
1600         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
1601         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
1602         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
1603
1604 2012-10-03  Adam Barth  <abarth@webkit.org>
1605
1606         CSSNamespace.h is empty and should be deleted
1607         https://bugs.webkit.org/show_bug.cgi?id=98304
1608
1609         Reviewed by Eric Seidel.
1610
1611         There's no reason to have this file in the repository.
1612
1613         * GNUmakefile.list.am:
1614         * WebCore.gypi:
1615         * WebCore.vcproj/WebCore.vcproj:
1616         * WebCore.xcodeproj/project.pbxproj:
1617         * css/CSSNamespace.h: Removed.
1618
1619 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1620
1621         Build failure with css filters enabled and accelerated compositing disabled
1622         https://bugs.webkit.org/show_bug.cgi?id=95908
1623
1624         Reviewed by Tony Chang.
1625
1626         Do not try to setBackingNeedsRepaint when building without accelerated
1627         compositing.
1628
1629         Also, allow painting with filter (paintsWithFilters returns true if
1630         renderer has filter) when accelerated compositing is not enabled.
1631
1632         No functional change, so no new tests.
1633
1634         * rendering/RenderLayer.cpp:
1635         (WebCore::RenderLayer::styleChanged):
1636
1637 2012-10-03  Emil A Eklund  <eae@chromium.org>
1638
1639         Round image sizes when zooming
1640         https://bugs.webkit.org/show_bug.cgi?id=98205
1641
1642         Reviewed by Eric Seidel.
1643
1644         We currently floor image sizes when zooming which can result in
1645         images being rendered at one pixel less than the actual size.
1646         This is especially likely to happen for very large images.
1647
1648         Test: fast/sub-pixel/zoomed-image-tiles.html
1649
1650         * loader/cache/CachedImage.cpp:
1651         (WebCore::CachedImage::imageSizeForRenderer):
1652
1653 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
1654
1655         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
1656         https://bugs.webkit.org/show_bug.cgi?id=98186
1657
1658         Reviewed by Noam Rosenthal.
1659
1660         Remove the implicit conversion from WebCore::FloatSize to QSize.
1661
1662         * platform/graphics/FloatSize.h:
1663         (FloatSize):
1664
1665 2012-10-03  Levi Weintraub  <leviw@chromium.org>
1666
1667         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
1668         https://bugs.webkit.org/show_bug.cgi?id=97484
1669
1670         Reviewed by Eric Seidel.
1671
1672         When in compositing mode, layer painting can be triggered through the backing store. When this
1673         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
1674         the proper sub-pixel accumulation through layers to their children, but since we're not
1675         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
1676         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
1677         past the listed root layer.
1678
1679         When painting a root layer, we're aligned to the surface we're painting to, so we round our
1680         offset to avoid moving objects around.
1681
1682         * rendering/RenderLayer.cpp:
1683         (WebCore::RenderLayer::paintLayerContents):
1684
1685 2012-10-03  Jeff Timanus  <twiz@chromium.org>
1686
1687         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
1688         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
1689         https://bugs.webkit.org/show_bug.cgi?id=93292
1690
1691         Reviewed by James Robinson.
1692
1693         Tests:  Existing page-scale layout tests.
1694
1695         * page/Frame.cpp:
1696         (WebCore::Frame::frameScaleFactor):
1697         * page/Settings.cpp:
1698         (WebCore::Settings::Settings):
1699         * page/Settings.h:
1700         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
1701         (WebCore::Settings::applyPageScaleFactorInCompositor):
1702         (Settings):
1703
1704 2012-10-03  Stephen Chenney  <schenney@chromium.org>
1705
1706         Font data is purged while fonts are still using it
1707         https://bugs.webkit.org/show_bug.cgi?id=93640
1708
1709         Reviewed by Eric Seidel.
1710
1711         Move the handling of custom font pruning from Document to FontFallbackList.
1712         The previous inplementation allowed fonts to be removed before all their
1713         clients were done. This change moves handling of custom font purging to the
1714         FontFallbackList class, which is the shared object that is only removed
1715         when all clients of a font are done with it. This fixes a crash in Angry
1716         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
1717
1718         The specific element that causes problems is:
1719         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
1720           src="http://chrome.angrybirds.com/ingame_graphic.html"
1721           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
1722           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
1723           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
1724           300; overflow: hidden; visibility: visible;"></iframe>
1725         The source document uses the same font as the embedding document.
1726
1727         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
1728                fast/frames/seamless/seamless-nested-crash.html
1729
1730         * css/CSSFontFaceSource.cpp:
1731         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
1732         * css/CSSSegmentedFontFace.cpp:
1733         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
1734         * dom/Document.cpp:
1735         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
1736         (WebCore):
1737         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
1738         * dom/Document.h:
1739         (WebCore):
1740         (Document): Remove method declarations for custom font handling.
1741         * platform/graphics/FontFallbackList.h:
1742         (FontFallbackList): Moved some code around and made non-copyable.
1743         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
1744         (WebCore::FontFallbackList::setGlyphPages): Moved.
1745         * platform/graphics/GlyphPageTreeNode.cpp:
1746         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
1747         * platform/graphics/SegmentedFontData.cpp:
1748         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
1749         * platform/graphics/SimpleFontData.cpp:
1750         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
1751
1752 2012-10-03  Adam Barth  <abarth@webkit.org>
1753
1754         Crash when calling document.open during unload
1755         https://bugs.webkit.org/show_bug.cgi?id=98287
1756
1757         Reviewed by Nate Chapin.
1758
1759         Calling document.open results in us nulling out m_documentLoader. This
1760         code doesn't properly handle that case and crashes.
1761
1762         Test: fast/parser/document-open-in-unload.html
1763
1764         * loader/FrameLoader.cpp:
1765         (WebCore::FrameLoader::commitProvisionalLoad):
1766
1767 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
1768
1769         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
1770         https://bugs.webkit.org/show_bug.cgi?id=98220
1771
1772         Reviewed by Andreas Kling.
1773
1774         * dom/Element.cpp:
1775         (WebCore::Element::computeInheritedLanguage):
1776         The condition is never false on the first execution. Move the condition to the
1777         end of the loop for fun and profit.
1778
1779 2012-10-03  Hans Wennborg  <hans@chromium.org>
1780
1781         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
1782         https://bugs.webkit.org/show_bug.cgi?id=98279
1783
1784         Reviewed by Adam Barth.
1785
1786         Add the interimResults attribute and pass it to the embedder. It was
1787         added to the spec draft in
1788         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
1789
1790         Tested in fast/speech/scripted/basics.html
1791
1792         * Modules/speech/SpeechRecognition.cpp:
1793         (WebCore::SpeechRecognition::start):
1794         (WebCore::SpeechRecognition::SpeechRecognition):
1795         * Modules/speech/SpeechRecognition.h:
1796         (WebCore::SpeechRecognition::interimResults):
1797         (WebCore::SpeechRecognition::setInterimResults):
1798         * Modules/speech/SpeechRecognition.idl:
1799         * Modules/speech/SpeechRecognitionClient.h:
1800         (SpeechRecognitionClient):
1801         * Modules/speech/SpeechRecognitionController.h:
1802         (WebCore::SpeechRecognitionController::start):
1803
1804 2012-10-03  Hans Wennborg  <hans@chromium.org>
1805
1806         Speech JavaScript API: Remove resultdeleted event
1807         https://bugs.webkit.org/show_bug.cgi?id=98272
1808
1809         Reviewed by Adam Barth.
1810
1811         Remove the resultdeleted event. This was never used, and was removed
1812         from the spec draft in
1813         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
1814
1815         The fast/speech/scripted/basics.html test is updated to reflect this.
1816
1817         * Modules/speech/SpeechRecognition.cpp:
1818         * Modules/speech/SpeechRecognition.h:
1819         (SpeechRecognition):
1820         * Modules/speech/SpeechRecognition.idl:
1821         * Modules/speech/SpeechRecognitionEvent.cpp:
1822         * Modules/speech/SpeechRecognitionEvent.h:
1823         (SpeechRecognitionEvent):
1824         * dom/EventNames.h:
1825         (WebCore):
1826
1827 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
1828
1829         Delayed structure sweep can leak structures without bound
1830         https://bugs.webkit.org/show_bug.cgi?id=96546
1831
1832         Reviewed by Geoffrey Garen.
1833
1834         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
1835         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
1836         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
1837         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
1838         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
1839         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
1840
1841         No new tests.
1842
1843         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
1844         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
1845         (JSDOMWrapper):
1846         (WebCore::JSDOMWrapper::JSDOMWrapper):
1847         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
1848         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
1849         (GenerateHeader):
1850         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
1851         (ObjcFallbackObjectImp):
1852         * bridge/objc/objc_runtime.mm:
1853         (Bindings):
1854         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1855         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
1856         (JSC):
1857         (JSC::RuntimeArray::destroy):
1858         * bridge/runtime_array.h:
1859         (JSC::RuntimeArray::create):
1860         (JSC):
1861         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
1862         (Bindings):
1863         (JSC::Bindings::RuntimeObject::RuntimeObject):
1864         * bridge/runtime_object.h:
1865         (RuntimeObject):
1866
1867 2012-10-02  Anders Carlsson  <andersca@apple.com>
1868
1869         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
1870         https://bugs.webkit.org/show_bug.cgi?id=98217
1871
1872         Reviewed by Andreas Kling.
1873
1874         * WebCore.exp.in:
1875         * rendering/RenderLayerBacking.cpp:
1876         (WebCore::RenderLayerBacking::createGraphicsLayer):
1877         * rendering/RenderLayerCompositor.cpp:
1878         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
1879         (WebCore::RenderLayerCompositor::ensureRootLayer):
1880
1881 2012-10-03  Joshua Bell  <jsbell@chromium.org>
1882
1883         IndexedDB: Optimize encodeString/decodeString
1884         https://bugs.webkit.org/show_bug.cgi?id=97794
1885
1886         Reviewed by Tony Chang.
1887
1888         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
1889         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
1890         isn't sufficient, but the code used StringBuilder::append() character-by-character
1891         and custom byte-swapping which was slow.
1892
1893         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
1894         and putting it 20k times and getting it 20k times. On my test box, mean time before the
1895         patch was 8.2s, mean time after the patch was 4.6s.
1896
1897         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
1898
1899         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1900         (WebCore::IDBLevelDBCoding::encodeString):
1901         (WebCore::IDBLevelDBCoding::decodeString):
1902
1903 2012-10-03  Keishi Hattori  <keishi@webkit.org>
1904
1905         Implement DataList UI for input type time on chromium
1906         https://bugs.webkit.org/show_bug.cgi?id=98240
1907
1908         Reviewed by Kent Tamura.
1909
1910         This adds datalist UI for input type time. We add the picker indicator to
1911         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
1912         and picker indicator inside a new div element so we can position the picker
1913         indicator in the same place as input type=date.
1914
1915         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
1916                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
1917                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
1918                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
1919                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
1920
1921         * css/html.css:
1922         (input::-webkit-date-and-time-container):
1923         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1924         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
1925         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
1926         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
1927         (WebCore):
1928         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
1929         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
1930         this so the picker indicator is always visible.
1931         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
1932         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
1933         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1934         (WebCore):
1935         (BaseMultipleFieldsDateAndTimeInputType):
1936         * html/shadow/DateTimeFieldElement.cpp:
1937         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
1938         * rendering/RenderThemeChromiumCommon.cpp:
1939         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
1940
1941 2012-10-03  Andreas Kling  <kling@webkit.org>
1942
1943         Give CSSValueList backing vector an inline capacity.
1944         <http://webkit.org/b/98266>
1945         <rdar://problem/12421425>
1946
1947         Reviewed by Anders Carlsson.
1948
1949         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
1950         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
1951         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
1952
1953         394kB progression on Membuster3.
1954
1955         * css/CSSValueList.h:
1956         (CSSValueList):
1957
1958 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
1959
1960         Web Inspector: NMI: instrument NativeImageSkia.
1961         https://bugs.webkit.org/show_bug.cgi?id=96277
1962
1963         Reviewed by Yury Semikhatsky.
1964
1965         * platform/graphics/skia/NativeImageSkia.cpp:
1966         (WebCore::NativeImageSkia::reportMemoryUsage):
1967         (WebCore::reportMemoryUsage):
1968
1969 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
1970
1971         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
1972         https://bugs.webkit.org/show_bug.cgi?id=98255
1973
1974         Reviewed by Vsevolod Vlasov.
1975
1976         - Introduced DockController.js that covers the dock mechanics
1977         - Removed dock orientation from the settings
1978         - Storing the last dock option to present it as default
1979         - Simplified the multi-option status bar button
1980
1981         * WebCore.gypi:
1982         * WebCore.vcproj/WebCore.vcproj:
1983         * inspector/compile-front-end.py:
1984         * inspector/front-end/DockController.js: Added.
1985         (WebInspector.DockController):
1986         (WebInspector.DockController.prototype.get element):
1987         (WebInspector.DockController.prototype.setDocked.set if):
1988         (WebInspector.DockController.prototype.setDocked):
1989         (WebInspector.DockController.prototype.setDockingUnavailable):
1990         (WebInspector.DockController.prototype._updateUI.get states):
1991         (WebInspector.DockController.prototype._updateUI):
1992         (WebInspector.DockController.prototype._decorateButtonForTargetState):
1993         (WebInspector.DockController.prototype._createDockOptions):
1994         (WebInspector.DockController.prototype._toggleDockState):
1995         (WebInspector.DockController.prototype.isCompactMode):
1996         (WebInspector.DockController.prototype.setCompactMode):
1997         * inspector/front-end/InspectorFrontendAPI.js:
1998         (InspectorFrontendAPI.setAttachedWindow):
1999         * inspector/front-end/InspectorFrontendHostStub.js:
2000         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
2001         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
2002         * inspector/front-end/Settings.js:
2003         * inspector/front-end/SettingsScreen.js:
2004         (WebInspector.GenericSettingsTab):
2005         * inspector/front-end/StatusBarButton.js:
2006         (WebInspector.StatusBarButton):
2007         * inspector/front-end/Toolbar.js:
2008         (WebInspector.Toolbar):
2009         (WebInspector.Toolbar.prototype.setCompactMode):
2010         (WebInspector.Toolbar.prototype._toolbarDragStart):
2011         (WebInspector.Toolbar.prototype._toolbarDrag):
2012         * inspector/front-end/WebKit.qrc:
2013         * inspector/front-end/externs.js:
2014         (WebInspector.toggleSearchingForNode):
2015         * inspector/front-end/inspector.css:
2016         (body.undocked.platform-mac-snowleopard #toolbar):
2017         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
2018         * inspector/front-end/inspector.html:
2019         * inspector/front-end/inspector.js:
2020         (WebInspector._createGlobalStatusBarItems):
2021         (windowLoaded):
2022         (WebInspector.setDockingUnavailable):
2023         * inspector/front-end/inspectorCommon.css:
2024         (body.dock-to-right:not(.undocked)):
2025         (body.dock-to-right.inactive:not(.undocked)):
2026
2027 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
2028
2029         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
2030         https://bugs.webkit.org/show_bug.cgi?id=97272
2031
2032         Reviewed by Pavel Feldman.
2033
2034         This patch is based on patch by John J. Barton.
2035
2036         * inspector/front-end/JavaScriptSource.js:
2037         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
2038
2039 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
2040
2041         Web Inspector: After "Edit as HTML", any click outside box should stop editing
2042         https://bugs.webkit.org/show_bug.cgi?id=98258
2043
2044         Reviewed by Vsevolod Vlasov.
2045
2046         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
2047
2048         * inspector/front-end/elementsPanel.css:
2049         (#elements-content > ol):
2050
2051 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
2052
2053         [EFL] Skeleton code of File system API.
2054         https://bugs.webkit.org/show_bug.cgi?id=91187
2055
2056         Reviewed by Gyuyoung Kim.
2057
2058         Add skeleton code of File System API on EFL port.
2059         Implementation patches will be created later.
2060
2061         No new tests because this is just skeleton code.
2062
2063         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
2064         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
2065         * platform/AsyncFileSystem.cpp:
2066         (WebCore):
2067         * platform/efl/AsyncFileSystemEfl.cpp: Added.
2068         * platform/efl/AsyncFileSystemEfl.h: Added.
2069
2070 2012-10-03  Andreas Kling  <kling@webkit.org>
2071
2072         Shrink ElementRareData by moving bool flags to NodeRareData.
2073         <http://webkit.org/b/98225>
2074
2075         Reviewed by Antti Koivisto.
2076
2077         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
2078         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
2079         Also removed some double raredata hash lookups.
2080
2081         * dom/Element.cpp:
2082         (WebCore::Element::detach):
2083         (WebCore::Element::recalcStyle):
2084         (WebCore::Element::ensureShadow):
2085         (WebCore::Element::setStyleAffectedByEmpty):
2086         (WebCore::Element::styleAffectedByEmpty):
2087         (WebCore::Element::setIsInCanvasSubtree):
2088         (WebCore::Element::isInCanvasSubtree):
2089         (WebCore::Element::containsFullScreenElement):
2090         (WebCore::Element::setContainsFullScreenElement):
2091         * dom/ElementRareData.h:
2092         (ElementRareData):
2093         (WebCore::ElementRareData::ElementRareData):
2094         * dom/NodeRareData.h:
2095         (WebCore::NodeRareData::styleAffectedByEmpty):
2096         (WebCore::NodeRareData::setStyleAffectedByEmpty):
2097         (WebCore::NodeRareData::isInCanvasSubtree):
2098         (WebCore::NodeRareData::setIsInCanvasSubtree):
2099         (NodeRareData):
2100         (WebCore::NodeRareData::containsFullScreenElement):
2101         (WebCore::NodeRareData::setContainsFullScreenElement):
2102
2103 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
2104
2105         getComputedStyle perspective-origin is based on the wrong bounding box
2106         https://bugs.webkit.org/show_bug.cgi?id=98027
2107
2108         Reviewed by Simon Fraser.
2109
2110         perspective-origin for ComputedStyleDeclaration is currently calculated using the
2111         wrong bounding box (sizingBox() which ends up as the contentbox).
2112
2113         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
2114         what transform-origin already does.
2115
2116         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
2117
2118         * css/CSSComputedStyleDeclaration.cpp:
2119         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2120
2121 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
2122
2123         Build fix for WinCE after r130160.
2124
2125         * platform/graphics/FontFastPath.cpp:
2126         (WebCore::Font::glyphDataAndPageForCharacter):
2127
2128 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
2129
2130         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
2131         https://bugs.webkit.org/show_bug.cgi?id=98149
2132
2133         Reviewed by Adam Barth.
2134
2135         The chromium implementation needs to know which Frame created a PeerConnection so
2136         that the right housekeeping can take place correctly.
2137
2138         Not testable in DRT, but have verified the change manually and with our pyautotests.
2139
2140         * Modules/mediastream/RTCPeerConnection.cpp:
2141         (WebCore::RTCPeerConnection::RTCPeerConnection):
2142         * loader/FrameLoaderClient.h:
2143         (WebCore):
2144         (FrameLoaderClient):
2145         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
2146         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
2147         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
2148         (WebCore):
2149         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
2150         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
2151         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
2152         (RTCPeerConnectionHandlerChromium):
2153
2154 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2155
2156         Web Inspector: Profiles: taking heap snapshot causes error message in console.
2157         https://bugs.webkit.org/show_bug.cgi?id=97890
2158
2159         Reviewed by Yury Semikhatsky.
2160
2161         Actual problem is that proxy loader is closed twice.
2162
2163         "_snapshotReceived" should never try to close receiver,
2164         because it is a callback fired by close.
2165
2166         Also minor glitches fixed:
2167          - taking snapshot shows "Loading..." status first,
2168         and then "Saving xxx%";
2169          - after all chunks are sent "Parsing" status is set and
2170         then is replaced with "Saving 100%";
2171          - removed dead code in proxy;
2172          - proxy was ignoring callback parameter;
2173          - "Loading %d\%" is not localized.
2174
2175         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
2176         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
2177         (WebInspector.HeapSnapshotLoaderProxy):
2178         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
2179         interface-conformant.
2180         * inspector/front-end/HeapSnapshotView.js:
2181         (WebInspector.HeapProfileHeader): Fixed update-status and
2182         finish-transfer logic.
2183
2184 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
2185
2186         Make sure that user gestures can't be consumed twice
2187         https://bugs.webkit.org/show_bug.cgi?id=97483
2188
2189         Reviewed by Adam Barth.
2190
2191         Instead of a simple counter, use a ref counted token to track how many
2192         user gestures happened and where consumed. When creating a timer that
2193         is supposed to forward the user gesture, take a reference to this token
2194         and reinstantiate the UserGestureIndicator with that token when the
2195         timer is triggered.
2196
2197         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
2198                platform/chromium/fast/events/popup-forwarded-gesture.html
2199
2200         * dom/UserGestureIndicator.cpp:
2201         (WebCore):
2202         (WebCore::UserGestureIndicator::UserGestureIndicator):
2203         (WebCore::UserGestureIndicator::~UserGestureIndicator):
2204         (WebCore::UserGestureIndicator::processingUserGesture):
2205         (WebCore::UserGestureIndicator::consumeUserGesture):
2206         (WebCore::UserGestureIndicator::currentToken):
2207         * dom/UserGestureIndicator.h:
2208         (Token):
2209         (WebCore::UserGestureIndicator::Token::~Token):
2210         (UserGestureIndicator):
2211         * page/DOMTimer.cpp:
2212         (WebCore::DOMTimer::DOMTimer):
2213         (WebCore::DOMTimer::fired):
2214         * page/DOMTimer.h:
2215         (DOMTimer):
2216
2217 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
2218
2219         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
2220         https://bugs.webkit.org/show_bug.cgi?id=98073
2221
2222         Reviewed by Hajime Morita.
2223
2224         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
2225         doesn't try to access the container node while walking up the parent chain
2226         from one of the container node's children.
2227
2228         Test: accessibility/container-node-delete-causes-crash.html
2229
2230         * dom/ContainerNode.cpp:
2231         (WebCore::ContainerNode::~ContainerNode):
2232         * dom/Node.cpp:
2233         (WebCore::Node::~Node):
2234         * dom/Node.h:
2235         (WebCore::Node::document):
2236         (WebCore::Node::documentInternal):
2237
2238 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
2239
2240         Web Inspector: SourceURL should be taken from debugger agent when possible.
2241         https://bugs.webkit.org/show_bug.cgi?id=98239
2242
2243         Reviewed by Yury Semikhatsky.
2244
2245         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
2246         Alwys use the one from debugger agent now.
2247
2248         * inspector/InspectorDebuggerAgent.cpp:
2249         (WebCore::InspectorDebuggerAgent::didParseSource):
2250
2251 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
2252
2253         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
2254
2255         * page/FrameView.cpp:
2256         (WebCore):
2257
2258 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
2259
2260         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
2261         https://bugs.webkit.org/show_bug.cgi?id=98163
2262
2263         Reviewed by Yury Semikhatsky.
2264
2265         The text was changed to "Load Heap Snapshot..."
2266         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
2267         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
2268
2269         * English.lproj/localizedStrings.js:
2270         * inspector/front-end/ProfilesPanel.js:
2271         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
2272         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
2273
2274 2012-10-03  Harald Alvestrand  <hta@google.com>
2275
2276         Add data passing to the GetStats interface of RTCPeerConnection
2277         https://bugs.webkit.org/show_bug.cgi?id=98003
2278
2279         Reviewed by Adam Barth.
2280
2281         Added an RTCStatsResponseBase interface to platform, and let the
2282         RTCStatsRequestImpl class produce an implementation of it that's returned
2283         to WebCore.
2284
2285         Tested by extension of the RTCPeerConnection-stats.html test.
2286
2287         * Modules/mediastream/RTCStatsElement.cpp:
2288         (WebCore::RTCStatsElement::addStatistic):
2289         (WebCore):
2290         * Modules/mediastream/RTCStatsElement.h:
2291         (RTCStatsElement):
2292         * Modules/mediastream/RTCStatsReport.cpp:
2293         (WebCore):
2294         (WebCore::RTCStatsReport::addElement):
2295         (WebCore::RTCStatsReport::addStatistic):
2296         * Modules/mediastream/RTCStatsReport.h:
2297         (RTCStatsReport):
2298         * Modules/mediastream/RTCStatsRequestImpl.cpp:
2299         (WebCore::RTCStatsRequestImpl::createResponse):
2300         (WebCore):
2301         (WebCore::RTCStatsRequestImpl::requestSucceeded):
2302         * Modules/mediastream/RTCStatsRequestImpl.h:
2303         (RTCStatsRequestImpl):
2304         * Modules/mediastream/RTCStatsResponse.cpp:
2305         (WebCore::RTCStatsResponse::create):
2306         (WebCore::RTCStatsResponse::addReport):
2307         (WebCore):
2308         (WebCore::RTCStatsResponse::addElement):
2309         (WebCore::RTCStatsResponse::addStatistic):
2310         * Modules/mediastream/RTCStatsResponse.h:
2311         (RTCStatsResponse):
2312         * WebCore.gypi:
2313         * platform/chromium/support/WebRTCStatsRequest.cpp:
2314         (WebKit::WebRTCStatsRequest::response):
2315         (WebKit):
2316         (WebKit::WebRTCStatsRequest::requestSucceeded):
2317         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
2318         (WebKit):
2319         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
2320         (WebKit::WebRTCStatsResponse::assign):
2321         (WebKit::WebRTCStatsResponse::reset):
2322         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
2323         (WebKit::WebRTCStatsResponse::addReport):
2324         (WebKit::WebRTCStatsResponse::addElement):
2325         (WebKit::WebRTCStatsResponse::addStatistic):
2326         * platform/mediastream/RTCStatsRequest.h:
2327         (WebCore):
2328         (RTCStatsRequest):
2329         * platform/mediastream/RTCStatsResponseBase.h: Added.
2330         (WebCore):
2331         (RTCStatsResponseBase):
2332         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
2333
2334 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
2335
2336         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
2337         https://bugs.webkit.org/show_bug.cgi?id=97895
2338
2339         Reviewed by Martin Robinson.
2340
2341         * platform/network/NetworkingContext.h:
2342         (NetworkingContext): Add initiatingPageID().
2343         * platform/network/ResourceHandle.h:
2344         (ResourceHandle): Add static method
2345         getSoupRequestInitiaingPageID().
2346         * platform/network/ResourceHandleInternal.h:
2347         (ResourceHandleInternal): Add initiatingPageID().
2348         * platform/network/soup/ResourceHandleSoup.cpp:
2349         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
2350         initiating page ID of the resource handle networking context.
2351         (WebCore::setSoupRequestInitiaingPageID): Helper function to
2352         attach a page ID to a SoupRequest.
2353         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
2354         to attch the initiating page ID to the SoupRequest.
2355         (WebCore::startNonHTTPRequest): Ditto.
2356         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
2357         method to get the page ID attached to a SoupRequest.
2358
2359 2012-10-03  Kent Tamura  <tkent@chromium.org>
2360
2361         Introduce DateComponents::minimumYear and maximumYear
2362         https://bugs.webkit.org/show_bug.cgi?id=98230
2363
2364         Reviewed by Kentaro Hara.
2365
2366         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
2367
2368         No new tests. This doesn't change any bahevior.
2369
2370         * platform/DateComponents.h:
2371         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
2372         (WebCore::DateComponents::maximumYear): ditto.
2373         * platform/DateComponents.cpp:
2374         (WebCore): Move out static minimumYear and maximumYear.
2375         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
2376         (WebCore::withinHTMLDateLimits): ditto.
2377         (WebCore::DateComponents::parseWeek): ditto.
2378         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
2379         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
2380
2381         * html/shadow/DateTimeFieldElements.cpp:
2382         (WebCore): Remove minimumYear and maximumYear.
2383         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
2384         Use DateComponents::minimumYear and maximumYear.
2385
2386
2387 2012-10-02  Arko Saha  <arko@motorola.com>
2388
2389         Microdata: itemprop names must not override builtin properties.
2390         https://bugs.webkit.org/show_bug.cgi?id=98025
2391
2392         Reviewed by Kentaro Hara.
2393
2394         We should look in the prototype for functions before assuming it as
2395         an item's name. Return false if the prototype of the object has a
2396         property (function) with propertyName.
2397         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
2398         Named property visibility algorithm:
2399         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
2400         ...
2401         7. If the result of calling the [[HasProperty]] internal method on
2402         prototype with property name P is true, then return false.
2403         ...
2404         Also [OverrideBuiltins] is not declared for any of the properties,
2405         hence no overriding is allowed in this case.
2406
2407         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
2408
2409         * bindings/scripts/CodeGeneratorJS.pm:
2410         (GenerateGetOwnPropertySlotBody):
2411         (GenerateGetOwnPropertyDescriptorBody):
2412
2413 2012-10-02  Keishi Hattori  <keishi@webkit.org>
2414
2415         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
2416         https://bugs.webkit.org/show_bug.cgi?id=98094
2417
2418         Reviewed by Kent Tamura.
2419
2420         We needed to reverse padding-left/right when rtl.
2421
2422         No new tests. Covered by date-suggestion-picker-appearance.html.
2423
2424         * Resources/pagepopups/suggestionPicker.css:
2425         (.suggestion-list-entry .label):
2426         (.rtl .suggestion-list-entry .label):
2427
2428 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
2429
2430         Provide memory instrumentation for HashCountedSet
2431         https://bugs.webkit.org/show_bug.cgi?id=98138
2432
2433         Reviewed by Pavel Feldman.
2434
2435         Replaced addHashCountedSet calls with addMember that now automatically
2436         detects HashCountedSet and calls appropriate routine.
2437
2438         * css/CSSImageGeneratorValue.cpp:
2439         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
2440         * loader/cache/CachedResource.cpp:
2441
2442 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
2443
2444         Buildfix after r130235.
2445
2446         Reviewed by Csaba Osztrogon√°c.
2447
2448         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
2449         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
2450
2451         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2452
2453 2012-10-02  Kent Tamura  <tkent@chromium.org>
2454
2455         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
2456
2457         * html/shadow/DateTimeFieldElements.cpp:
2458         If a placeholder stirng is empty, use a sequence of "-".
2459         (WebCore::DateTimeDayFieldElement::create):
2460         (WebCore::DateTimeMonthFieldElement::create):
2461         (WebCore::DateTimeYearFieldElement::create):
2462
2463 2012-10-02  MORITA Hajime  <morrita@google.com>
2464
2465         https://bugs.webkit.org/show_bug.cgi?id=98134
2466         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
2467
2468         Reviewed by Dimitri Glazkov.
2469
2470         matchScopedAuthorRules() did have some optimization which only
2471         makes sense for heavily nested shadow tree. However, we don't see
2472         such type of usage of Shadow DOM and this looks premature
2473         optimization. This change unified its triple for loop into one,
2474         which makes the code much simpler.
2475
2476         No new tests. Covered by existing tests.
2477
2478         * css/StyleResolver.cpp:
2479         (WebCore::StyleResolver::matchScopedAuthorRules):
2480
2481 2012-10-02  Kent Tamura  <tkent@chromium.org>
2482
2483         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
2484         https://bugs.webkit.org/show_bug.cgi?id=98229
2485
2486         Reviewed by Kentaro Hara.
2487
2488         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
2489         Localizer member functions.
2490         They still have some common code. We'll address it later.
2491
2492         No new tests. This doesn't change any behavior.
2493
2494         * platform/text/Localizer.h:
2495         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
2496         * platform/text/Localizer.cpp:
2497         (WebCore::Localizer::dateTimeFormatWithSecond):
2498         Implemented. Just concatenating dateFormat, a space, and timeFormat.
2499         (WebCore::Localizer::dateTimeFormatWithoutSecond):
2500         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
2501
2502         * html/DateTimeInputType.cpp:
2503         (WebCore::DateTimeInputType::setupLayoutParameters):
2504         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
2505         * html/DateTimeLocalInputType.cpp:
2506         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
2507
2508 2012-10-03  Kent Tamura  <tkent@chromium.org>
2509
2510         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
2511         https://bugs.webkit.org/show_bug.cgi?id=98228
2512
2513         Reviewed by Kentaro Hara.
2514
2515         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
2516         constructor. This change improves code size and runtime cost.
2517
2518         No new tests. This doesn't change user-visible behavior.
2519
2520         * html/shadow/DateTimeEditElement.cpp:
2521         (DateTimeEditBuilder): Add a comment about lifetime of objects.
2522         (WebCore::DateTimeEditBuilder::stepRange):
2523         Added. A helper to access m_parameters.stepRange.
2524         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
2525         Remove m_stepRange, m_localizer, m_placeholderFor* members.
2526         Add m_parameters.
2527         (WebCore::DateTimeEditBuilder::needMillisecondField):
2528         Use stepRange() instead of m_stepRange.
2529         (WebCore::DateTimeEditBuilder::visitField):
2530         Use m_parameters.placeholderFor*.
2531         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
2532         Use stepRange() instead of m_stepRange.
2533         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
2534         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
2535
2536 2012-10-02  Kent Tamura  <tkent@chromium.org>
2537
2538         Implement LocaleICU::dateFormat
2539         https://bugs.webkit.org/show_bug.cgi?id=98118
2540
2541         Reviewed by Hajime Morita.
2542
2543         http://trac.webkit.org/changeset/130127 introduced
2544         Localizer::dateFormat, and this is its implementation for LocaleICU
2545         classs. The code is going to be used when
2546         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
2547
2548         No new tests. The function is not used yet.
2549
2550         * platform/text/LocaleICU.cpp:
2551         (WebCore::LocaleICU::dateFormat):
2552         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
2553         knows various format information.
2554         * platform/text/LocaleICU.h:
2555         (LocaleICU): Add m_dateFormat to cache the format string.
2556
2557 2012-10-02  Kent Tamura  <tkent@chromium.org>
2558
2559         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
2560         https://bugs.webkit.org/show_bug.cgi?id=98116
2561
2562         Reviewed by Hajime Morita.
2563
2564         http://trac.webkit.org/changeset/130127 introduced
2565         Localizer::dateFormat, and this is its implementation for LocaleICU
2566         classs. The code is going to be used when
2567         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
2568
2569         No new tests. The function is not used yet.
2570
2571         * platform/text/mac/LocaleMac.h:
2572         (LocaleMac): Declare m_dateFormat.
2573         * platform/text/mac/LocaleMac.mm:
2574         (WebCore::LocaleMac::dateFormat): Implemented.
2575
2576 2012-10-02  Kent Tamura  <tkent@chromium.org>
2577
2578         [Chromium-Win] Implement LocaleWin::dateFormat
2579         https://bugs.webkit.org/show_bug.cgi?id=98117
2580
2581         Reviewed by Kentaro Hara.
2582
2583         http://trac.webkit.org/changeset/130127 introduced
2584         Localizer::dateFormat, and this is its implementation for LocaleICU
2585         classs. The code is going to be used when
2586         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
2587
2588         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
2589
2590         * platform/text/LocaleWin.cpp:
2591         (WebCore::parseDateFormat):
2592         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
2593         (WebCore::appendAsLDMLLiteral):
2594         A helper function to make a literal string for LDML.
2595         (WebCore::convertWindowsDateFormatToLDML):
2596         Creates an LDML format from a parsed date format tokens.
2597         (WebCore::LocaleWin::dateFormat):
2598         Implemented. This uses convertWindowsDateFormatToLDML.
2599         (WebCore::LocaleWin::dateFormat):
2600         Added for testing. The source windows format is specified as a function
2601         argument.
2602         * platform/text/LocaleWin.h:
2603         (LocaleWin): Declare m_dateFormat and dateFormat().
2604
2605 2012-10-02  Ian Vollick  <vollick@chromium.org>
2606
2607         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
2608         https://bugs.webkit.org/show_bug.cgi?id=98219
2609
2610         Reviewed by Dean Jackson.
2611
2612         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
2613
2614         No new tests. No change in functionality.
2615
2616         * platform/graphics/chromium/Extensions3DChromium.h:
2617         (WebCore::Extensions3DChromium::isNVIDIA):
2618
2619 2012-10-02  Anders Carlsson  <andersca@apple.com>
2620
2621         Try to fix the Snow Leopard build.
2622
2623         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2624
2625 2012-10-02  Joshua Bell  <jsbell@chromium.org>
2626
2627         Add htons/htonl definitions and implementations
2628         https://bugs.webkit.org/show_bug.cgi?id=98054
2629
2630         Reviewed by Darin Adler.
2631
2632         Update users of htons and friends to use new wtf/ByteOrder.h header.
2633
2634         No new tests - just refactoring.
2635
2636         * platform/graphics/WOFFFileFormat.cpp:
2637         * platform/graphics/chromium/VDMXParser.cpp:
2638
2639 == Rolled over to ChangeLog-2012-10-02 ==