Changing pseudoClass (:disabled) should cause distribution.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
2
3         Changing pseudoClass (:disabled) should cause distribution.
4         https://bugs.webkit.org/show_bug.cgi?id=101901
5
6         Reviewed by Hajime Morita.
7
8         We have to invalidate distribution when pseudo-class (:disabled) is changed.
9
10         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
11         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
12         have 'disabled' state, but we need a command element to make it 'disabled' state.
13
14         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
15                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
16                fast/dom/shadow/pseudoclass-update-disabled-input.html
17                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
18                fast/dom/shadow/pseudoclass-update-disabled-option.html
19                fast/dom/shadow/pseudoclass-update-disabled-select.html
20                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
21
22         * html/HTMLFormControlElement.cpp:
23         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
24         * html/HTMLOptGroupElement.cpp:
25         (WebCore::HTMLOptGroupElement::parseAttribute):
26         * html/HTMLOptionElement.cpp:
27         (WebCore::HTMLOptionElement::parseAttribute):
28
29 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
30
31         Unreviewed, rolling out r134691, r134703, r134715, r134716,
32         and r134733.
33         http://trac.webkit.org/changeset/134691
34         http://trac.webkit.org/changeset/134703
35         http://trac.webkit.org/changeset/134715
36         http://trac.webkit.org/changeset/134716
37         http://trac.webkit.org/changeset/134733
38         https://bugs.webkit.org/show_bug.cgi?id=102342
39
40         "Broke the Apple Windows Debug and GTK builds." (Requested by
41         dydx on #webkit).
42
43         * WebCore.exp.in:
44         * bindings/js/SerializedScriptValue.h:
45         * testing/Internals.cpp:
46         * testing/Internals.h:
47         (WebCore):
48         * testing/Internals.idl:
49
50 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
51
52         Not reviewed: fixing inspector tests under Qt.
53
54         * inspector/front-end/TestController.js:
55         * inspector/front-end/utilities.js:
56         (.):
57
58 2012-11-14  Kentaro Hara  <haraken@chromium.org>
59
60         Unreviewed. Rebaselined run-bindings-tests.
61
62         * bindings/scripts/test/V8/V8TestNode.h:
63         (WebCore::toV8Fast):
64
65 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
66
67         Don't use temporary clip rects when hit testing
68         https://bugs.webkit.org/show_bug.cgi?id=102329
69
70         Reviewed by Beth Dakin.
71
72         We now cache clip rects separately for painting, hit testing etc. Hit testing
73         clip rects are always shrunk to exclude scrollbars (so that hit testing on
74         the scrollbars works), so we no longer every need to use temporary clip rects
75         during hit testing.
76
77         Added an assertion that the scrollbar relevancy when we computed the clip rects
78         is the same as that when using them.
79         
80         * rendering/RenderLayer.cpp:
81         (WebCore::RenderLayer::hitTestLayer):
82         (WebCore::RenderLayer::updateClipRects):
83         * rendering/RenderLayer.h:
84         (WebCore::ClipRectsCache::ClipRectsCache):
85         (ClipRectsCache):
86
87 2012-11-14  Dirk Schulze  <krit@webkit.org>
88
89         Support animation of basic shape 'polygon'
90         https://bugs.webkit.org/show_bug.cgi?id=102080
91
92         Reviewed by Daniel Bates.
93
94         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
95         patch http://trac.webkit.org/changeset/134352.
96         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
97         of vertices between start and end polygon is the same.
98
99         Added polygon animation test to existing test:
100             fast/exclusions/shape-inside/shape-inside-animation.html
101             css3/masking/clip-path-animation.html
102
103         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
104         * rendering/style/BasicShapes.cpp:
105         (WebCore::BasicShape::canBlend): Polygons are allowed now.
106         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
107
108 2012-11-14  Kentaro Hara  <haraken@chromium.org>
109
110         Unreviewed. Fix code generator warnings.
111
112         * bindings/scripts/CodeGeneratorV8.pm:
113         (GenerateFunctionCallback):
114         (GenerateImplementation):
115
116 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
117
118         Changing pseudoClass (:checked) should cause distribution.
119         https://bugs.webkit.org/show_bug.cgi?id=101902
120
121         Reviewed by Dimitri Glazkov.
122
123         When the 'checked' state is changed, we have to invalidate distribution.
124
125         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
126         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
127
128         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
129                fast/dom/shadow/pseudoclass-update-checked-option.html
130
131         * html/HTMLInputElement.cpp:
132         (WebCore::HTMLInputElement::setChecked):
133         * html/HTMLOptionElement.cpp:
134         (WebCore::HTMLOptionElement::setSelectedState):
135
136 2012-11-14  Kentaro Hara  <haraken@chromium.org>
137
138         [V8] Kill $implClassName from CodeGeneratorV8.pm
139         https://bugs.webkit.org/show_bug.cgi?id=102312
140
141         Reviewed by Adam Barth.
142
143         $implClassName and $interfaceName are the same.
144         Sometimes we are passing both $implClassName and $interfaceName to
145         subroutines. We can kill $implClassName.
146
147         No tests. No change in behavior.
148
149         * bindings/scripts/CodeGeneratorV8.pm:
150         (GenerateOpaqueRootForGC):
151         (GenerateHeader):
152         (GenerateDomainSafeFunctionGetter):
153         (GenerateDomainSafeFunctionSetter):
154         (GenerateConstructorGetter):
155         (GenerateNormalAttrGetter):
156         (GenerateReplaceableAttrSetter):
157         (GenerateNormalAttrSetter):
158         (GenerateEventListenerCallback):
159         (GenerateOverloadedFunctionCallback):
160         (GenerateFunctionCallback):
161         (GenerateParametersCheck):
162         (GenerateOverloadedConstructorCallback):
163         (GenerateSingleConstructorCallback):
164         (GenerateConstructorCallback):
165         (GenerateEventConstructorCallback):
166         (GenerateTypedArrayConstructorCallback):
167         (GenerateNamedConstructorCallback):
168         (GenerateImplementation):
169         (GenerateFunctionCallString):
170
171 2012-11-14  Adam Barth  <abarth@webkit.org>
172
173         [V8] We can shave one instruction off toV8Fast
174         https://bugs.webkit.org/show_bug.cgi?id=102297
175
176         Reviewed by Kentaro Hara.
177
178         There's no reason to store info.Holder in a local variable. Calling
179         Holder() is essentially free because it's inlined to an offset read.
180
181         I doubt this patch moves the performance needle in any measurable way,
182         but it makes the code slightly prettier.
183
184         * bindings/scripts/CodeGeneratorV8.pm:
185         (GenerateHeader):
186         * bindings/scripts/test/V8/V8TestNode.h:
187         (WebCore::toV8Fast):
188
189 2012-11-14  Kentaro Hara  <haraken@chromium.org>
190
191         [V8] Get rid of a redundant branch in JSValueToNative()
192         https://bugs.webkit.org/show_bug.cgi?id=102311
193
194         Reviewed by Adam Barth.
195
196         No tests. No change in behavior.
197
198         * bindings/scripts/CodeGeneratorV8.pm:
199         (JSValueToNative):
200         (NativeToJSValue):
201
202 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
203
204         Changing pseudoClass (:link) should cause distribution
205         https://bugs.webkit.org/show_bug.cgi?id=101698
206
207         Reviewed by Hajime Morita.
208
209         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
210         we have to invalidate distribution.
211
212         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
213
214         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
215                fast/dom/shadow/pseudoclass-update-link-area.html
216
217         * html/HTMLAnchorElement.cpp:
218         (WebCore::HTMLAnchorElement::parseAttribute):
219
220 2012-11-14  Kentaro Hara  <haraken@chromium.org>
221
222         Remove unused functions from CodeGenerator.pm
223         https://bugs.webkit.org/show_bug.cgi?id=102316
224
225         Reviewed by Adam Barth.
226
227         No tests. No change in behavior.
228
229         * bindings/scripts/CodeGenerator.pm:
230         (GenerateCompileTimeCheckForEnumsIfNeeded):
231
232 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
233
234         [BlackBerry] Update BB10 form theme.
235         https://bugs.webkit.org/show_bug.cgi?id=100760
236
237         Reviewed by Rob Buis.
238
239         RIM PR 225755
240         Internally Reviewed by Eli Fidler.
241         Update checkbox, radio and menulist button style. Adjust border width
242         and line height.
243
244         * platform/blackberry/RenderThemeBlackBerry.cpp:
245         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
246         * platform/blackberry/RenderThemeBlackBerry.h:
247         (RenderThemeBlackBerry):
248
249 2012-11-14  Erik Arvidsson  <arv@chromium.org>
250
251         Update DOMException name: InvalidModificationError
252         https://bugs.webkit.org/show_bug.cgi?id=102281
253
254         Reviewed by Kentaro Hara.
255
256         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
257
258         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
259
260         * dom/DOMCoreException.cpp:
261
262 2012-11-14  Adam Barth  <abarth@webkit.org>
263
264         document variable in Document::axObjectCache is actually the topDocument
265         https://bugs.webkit.org/show_bug.cgi?id=101966
266
267         Reviewed by Chris Fleizach.
268
269         Name change requested by Darin Adler.
270
271         * dom/Document.cpp:
272         (WebCore::Document::axObjectCache):
273
274 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
275
276         [CF]: XMLHttpRequest "timeout" events firing as "error" events
277         https://bugs.webkit.org/show_bug.cgi?id=102271
278
279         Reviewed by David Kilzer.
280
281         Initialize the tiemout flag if the error results from a timeout
282         in the USE(CFNETWORK) cases.
283
284         No new tests. This is covered by http/tests/xmlhttprequest/timeout
285         tests on ports that USE(CFNETWORK).
286
287         * platform/network/cf/ResourceErrorCF.cpp:
288         (WebCore::ResourceError::ResourceError):
289         * platform/network/mac/ResourceErrorMac.mm:
290         (WebCore::ResourceError::ResourceError):
291
292 2012-11-14  Nico Weber  <thakis@chromium.org>
293
294         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
295         https://bugs.webkit.org/show_bug.cgi?id=102282
296
297         Reviewed by James Robinson.
298
299         Chromium uses skia, and skia state is synced with CG context state at
300         LocalCurrentGraphicsContext construction time. So delay that
301         construction after context transforms have happened.
302         (This regressed in http://trac.webkit.org/changeset/125830)
303
304         Covered by the new pixel test fast/forms/zoomed-controls.html. I
305         couldn't find an existing test for this.
306
307         * platform/mac/ThemeMac.mm:
308         (WebCore::paintCheckbox):
309         (WebCore::paintRadio):
310         (WebCore::paintButton):
311
312 2012-11-14  Mark Lam  <mark.lam@apple.com>
313
314         Change JSEventListener::m_jsFunction to be a weak ref.
315         https://bugs.webkit.org/show_bug.cgi?id=101989.
316
317         Reviewed by Geoffrey Garen.
318
319         No new tests.
320
321         * ForwardingHeaders/heap/SlotVisitor.h: Added.
322         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
323         * bindings/js/JSEventListener.cpp:
324         (WebCore::JSEventListener::JSEventListener):
325         (WebCore::JSEventListener::visitJSFunction):
326         (WebCore::JSEventListener::operator==):
327          - Removed the m_wrapper checks in operator==() because they are not
328            needed. There is no longer any threat of m_jsFunction pointing to
329            recycled memory. The use of weak refs will ensure that m_jsFunction
330            is either still holding on to its old memory exclusively, or is 0'ed
331            out when the GC collects it.
332         * bindings/js/JSEventListener.h:
333         (JSEventListener):
334         (WebCore::JSEventListener::jsFunction):
335
336 2012-11-14  Dan Carney  <dcarney@google.com>
337
338         [V8] Rename dispatchWrap
339         https://bugs.webkit.org/show_bug.cgi?id=102240
340
341         Reviewed by Adam Barth.
342
343         Mostly a rename:
344         dispatchWrap->wrap
345         wrapSlow->createWrapper
346         dispatchWrapCustom->wrap
347
348         No new tests. No change in functionality.
349
350         * bindings/scripts/CodeGeneratorV8.pm:
351         (GenerateHeader):
352         (GenerateNormalAttrGetter):
353         (GenerateImplementation):
354         (GenerateToV8Converters):
355         * bindings/scripts/IDLAttributes.txt:
356         * bindings/scripts/test/V8/V8Float64Array.cpp:
357         (WebCore::wrap):
358         (WebCore::V8Float64Array::createWrapper):
359         * bindings/scripts/test/V8/V8Float64Array.h:
360         (V8Float64Array):
361         (WebCore):
362         (WebCore::toV8Object):
363         (WebCore::toV8):
364         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
365         (WebCore::V8TestActiveDOMObject::createWrapper):
366         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
367         (V8TestActiveDOMObject):
368         (WebCore::wrap):
369         (WebCore::toV8Object):
370         (WebCore::toV8):
371         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
372         (WebCore::V8TestCustomNamedGetter::createWrapper):
373         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
374         (V8TestCustomNamedGetter):
375         (WebCore::wrap):
376         (WebCore::toV8Object):
377         (WebCore::toV8):
378         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
379         (WebCore::V8TestEventConstructor::createWrapper):
380         * bindings/scripts/test/V8/V8TestEventConstructor.h:
381         (V8TestEventConstructor):
382         (WebCore::wrap):
383         (WebCore::toV8Object):
384         (WebCore::toV8):
385         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
386         (WebCore::V8TestEventTarget::createWrapper):
387         * bindings/scripts/test/V8/V8TestEventTarget.h:
388         (V8TestEventTarget):
389         (WebCore::wrap):
390         (WebCore::toV8Object):
391         (WebCore::toV8):
392         * bindings/scripts/test/V8/V8TestException.cpp:
393         (WebCore::V8TestException::createWrapper):
394         * bindings/scripts/test/V8/V8TestException.h:
395         (V8TestException):
396         (WebCore::wrap):
397         (WebCore::toV8Object):
398         (WebCore::toV8):
399         * bindings/scripts/test/V8/V8TestInterface.cpp:
400         (WebCore::V8TestInterface::createWrapper):
401         * bindings/scripts/test/V8/V8TestInterface.h:
402         (V8TestInterface):
403         (WebCore::wrap):
404         (WebCore::toV8Object):
405         (WebCore::toV8):
406         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
407         (WebCore::V8TestMediaQueryListListener::createWrapper):
408         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
409         (V8TestMediaQueryListListener):
410         (WebCore::wrap):
411         (WebCore::toV8Object):
412         (WebCore::toV8):
413         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
414         (WebCore::V8TestNamedConstructor::createWrapper):
415         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
416         (V8TestNamedConstructor):
417         (WebCore::wrap):
418         (WebCore::toV8Object):
419         (WebCore::toV8):
420         * bindings/scripts/test/V8/V8TestNode.cpp:
421         (WebCore::V8TestNode::createWrapper):
422         * bindings/scripts/test/V8/V8TestNode.h:
423         (V8TestNode):
424         (WebCore::wrap):
425         (WebCore::toV8Object):
426         (WebCore::toV8):
427         (WebCore::toV8Fast):
428         * bindings/scripts/test/V8/V8TestObj.cpp:
429         (WebCore::V8TestObj::createWrapper):
430         * bindings/scripts/test/V8/V8TestObj.h:
431         (V8TestObj):
432         (WebCore::wrap):
433         (WebCore::toV8Object):
434         (WebCore::toV8):
435         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
436         (WebCore::V8TestOverloadedConstructors::createWrapper):
437         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
438         (V8TestOverloadedConstructors):
439         (WebCore::wrap):
440         (WebCore::toV8Object):
441         (WebCore::toV8):
442         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
443         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
444         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
445         (V8TestSerializedScriptValueInterface):
446         (WebCore::wrap):
447         (WebCore::toV8Object):
448         (WebCore::toV8):
449         * bindings/v8/custom/V8BlobCustom.cpp:
450         (WebCore::wrap):
451         * bindings/v8/custom/V8CSSRuleCustom.cpp:
452         (WebCore::wrap):
453         * bindings/v8/custom/V8CSSValueCustom.cpp:
454         (WebCore::wrap):
455         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
456         (WebCore::wrap):
457         * bindings/v8/custom/V8DataViewCustom.cpp:
458         (WebCore::wrap):
459         * bindings/v8/custom/V8DocumentCustom.cpp:
460         (WebCore::wrap):
461         * bindings/v8/custom/V8ElementCustom.cpp:
462         (WebCore):
463         (WebCore::wrap):
464         * bindings/v8/custom/V8EntryCustom.cpp:
465         (WebCore::wrap):
466         * bindings/v8/custom/V8EntrySyncCustom.cpp:
467         (WebCore::wrap):
468         * bindings/v8/custom/V8EventCustom.cpp:
469         (WebCore):
470         (WebCore::wrap):
471         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
472         (WebCore::wrap):
473         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
474         (WebCore::wrap):
475         * bindings/v8/custom/V8HTMLElementCustom.cpp:
476         (WebCore::wrap):
477         * bindings/v8/custom/V8ImageDataCustom.cpp:
478         (WebCore::wrap):
479         * bindings/v8/custom/V8NodeCustom.cpp:
480         (WebCore::wrap):
481         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
482         (WebCore::wrap):
483         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
484         (WebCore::wrap):
485         * bindings/v8/custom/V8SVGElementCustom.cpp:
486         (WebCore::wrap):
487         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
488         (WebCore::wrap):
489         * bindings/v8/custom/V8StyleSheetCustom.cpp:
490         (WebCore::wrap):
491         * dom/make_names.pl:
492         (printWrapperFunctions):
493         (printWrapperFactoryCppFile):
494
495 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
496
497         [EFL] Refactor theme to choose whether to support foreground color of selection
498         https://bugs.webkit.org/show_bug.cgi?id=102037
499
500         Reviewed by Gyuyoung Kim.
501
502         RenderThemeEfl can change foreground color of selection using theme file.
503         But it can not disable supports of foreground color to keep the text color
504         which is selected.
505
506         This patch refactors color classes of theme file from active/inactive classes
507         to foreground/background classes so that RenderThemeEfl checks whether
508         theme file supports foreground color class.
509
510         * platform/efl/RenderThemeEfl.cpp:
511         (WebCore::fillColorsFromEdjeClass):
512         (WebCore::RenderThemeEfl::setColorFromThemeClass):
513         (WebCore::RenderThemeEfl::loadTheme):
514         (WebCore::RenderThemeEfl::RenderThemeEfl):
515         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
516         (WebCore):
517         * platform/efl/RenderThemeEfl.h:
518         (RenderThemeEfl):
519
520 2012-11-14  Tony Chang  <tony@chromium.org>
521
522         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
523         https://bugs.webkit.org/show_bug.cgi?id=102295
524
525         Reviewed by Andreas Kling.
526
527         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
528
529         No new tests because there should be no change in behavior.
530
531         * css/CSSGrammar.y.in:
532         * css/CSSParser.cpp:
533         (WebCore::CSSParser::CSSParser):
534         (WebCore::CSSParser::parseValue):
535         (WebCore::CSSParser::parseColor):
536         (WebCore::CSSParser::parseDeclaration):
537         (WebCore):
538         (WebCore::filterProperties):
539         (WebCore::CSSParser::createStylePropertySet):
540         (WebCore::CSSParser::addProperty):
541         (WebCore::CSSParser::rollbackLastProperties):
542         (WebCore::CSSParser::clearProperties):
543         (WebCore::CSSParser::parse4Values):
544         (WebCore::CSSParser::parseFlowThread):
545         (WebCore::CSSParser::addTextDecorationProperty):
546         (WebCore::CSSParser::createFloatingSelectorVector):
547         (WebCore::CSSParser::sinkFloatingSelectorVector):
548         (WebCore::CSSParser::createStyleRule):
549         (WebCore::CSSParser::createFontFaceRule):
550         (WebCore::CSSParser::createPageRule):
551         (WebCore::CSSParser::setReusableRegionSelectorVector):
552         (WebCore::CSSParser::startDeclarationsForMarginBox):
553         (WebCore::CSSParser::endDeclarationsForMarginBox):
554         (WebCore::CSSParser::deleteFontFaceOnlyValues):
555         * css/CSSParser.h:
556         (WebCore::CSSParser::hasProperties):
557         (WebCore::CSSParser::reusableSelectorVector):
558         (CSSParser):
559         (WebCore::CSSParser::reusableRegionSelectorVector):
560         * css/CSSParserValues.cpp:
561         (WebCore::CSSParserSelector::adoptSelectorVector):
562         * css/CSSParserValues.h:
563         (CSSParserSelector):
564         * css/CSSSelectorList.cpp:
565         (WebCore::CSSSelectorList::adoptSelectorVector):
566         * css/CSSSelectorList.h:
567         (CSSSelectorList):
568         * css/SVGCSSParser.cpp:
569         (WebCore::CSSParser::parseSVGValue):
570         * css/StyleRule.cpp:
571         (WebCore::StyleRuleRegion::StyleRuleRegion):
572         * css/StyleRule.h:
573         (WebCore::StyleRule::parserAdoptSelectorVector):
574         (WebCore::StyleRulePage::parserAdoptSelectorVector):
575         (WebCore::StyleRuleRegion::create):
576         (StyleRuleRegion):
577
578 2012-11-14  Alec Flett  <alecflett@chromium.org>
579
580         Add tests for explicit serialization values
581         https://bugs.webkit.org/show_bug.cgi?id=96818
582
583         Reviewed by Adam Barth.
584
585         Expose direct access to the serialization/deserialization mechanisms
586         of SerializedScriptValue to DumpRenderTree.
587
588         * testing/Internals.cpp:
589         (WebCore::Internals::serializeObject):
590         (WebCore):
591         (WebCore::Internals::deserializeBuffer):
592         * testing/Internals.h:
593         (WebCore):
594         * testing/Internals.idl:
595
596 2012-11-14  Michael Pruett  <michael@68k.org>
597
598         IndexedDB: Add clear() method to JSC ScriptValue
599         https://bugs.webkit.org/show_bug.cgi?id=102288
600
601         Reviewed by Kentaro Hara.
602
603         IndexedDB uses the ScriptValue::clear() method, which existed
604         previously only in the V8 implementation of ScriptValue. This
605         change is necessary to implement IndexedDB for JSC.
606
607         Tests: storage/indexeddb/*
608
609         * bindings/js/ScriptValue.h:
610         (WebCore::ScriptValue::clear):
611         (ScriptValue):
612
613 2012-11-14  Joshua Bell  <jsbell@chromium.org>
614
615         IndexedDB: Indexing tests are flaky-crashing
616         https://bugs.webkit.org/show_bug.cgi?id=102283
617
618         Reviewed by Tony Chang.
619
620         Don't commit the transaction if there are outstanding pre-emptive events
621         from indexing operations.
622
623         Speculative fix for the flakiness.
624
625         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
626         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
627
628 2012-11-14  Tony Chang  <tony@chromium.org>
629
630         Crash in flexbox when removing absolutely positioned children
631         https://bugs.webkit.org/show_bug.cgi?id=100465
632
633         Reviewed by Ojan Vafai.
634
635         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
636         This value gets set during flexbox layout. When we remove an absolutely
637         positioned child, we don't relayout and this value would get stale.
638
639         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
640         so the value doesn't get stale when we remove absolutely positioned children.
641         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
642         the iterator.
643
644         Test: css3/flexbox/crash-removing-out-of-flow-child.html
645
646         * rendering/RenderFlexibleBox.cpp:
647         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
648         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
649         (WebCore::RenderFlexibleBox::layoutBlock):
650         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
651         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
652         * rendering/RenderFlexibleBox.h:
653
654 2012-11-14  Joshua Bell  <jsbell@chromium.org>
655
656         IndexedDB: Remove magic numbers in record comparator, handle missing case
657         https://bugs.webkit.org/show_bug.cgi?id=102255
658
659         Reviewed by Tony Chang.
660
661         For some ranges of metadata entries, a simple type byte comparison is sufficient
662         for the backing store comparator. In two places those ranges used magic numbers,
663         one of which was incorrect - which could lead to failed reads/writes.
664
665         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
666
667         * Modules/indexeddb/IDBLevelDBCoding.cpp:
668         (IDBLevelDBCoding):
669         (WebCore::IDBLevelDBCoding::compare):
670         * Modules/indexeddb/IDBLevelDBCoding.h:
671
672 2012-11-14  Dirk Schulze  <krit@webkit.org>
673
674         Cleanup BasicShape blending check
675         https://bugs.webkit.org/show_bug.cgi?id=102289
676
677         Reviewed by Daniel Bates.
678
679         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
680         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
681         is a preparation for follow-up patches.
682
683         Pure refactoring without behavior change, no new tests.
684
685         * page/animation/CSSPropertyAnimation.cpp:
686         (WebCore::blendFunc): Call new canBlend method for blending verification.
687         * rendering/style/BasicShapes.cpp:
688         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
689         (WebCore):
690         * rendering/style/BasicShapes.h:
691
692 2012-11-14  Dirk Schulze  <krit@webkit.org>
693
694         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
695         https://bugs.webkit.org/show_bug.cgi?id=102123
696
697         Reviewed by Antti Koivisto.
698
699         The '-webkit-shape-inside' propery takes a BasicShape as input like
700         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
701         make '-webkit-shape-inside' animatable as well.
702
703         Test: fast/exclusions/shape-inside/shape-inside-animation.html
704
705         * page/animation/CSSPropertyAnimation.cpp:
706         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
707             input then '-webkit-clip-path'.
708         (WebCore):
709         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
710             '-webkit-shape-ourside' as well.
711         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
712         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
713
714 2012-11-14  Helder Correia  <helder.correia@nokia.com>
715
716         [TexMap][Cairo] Accelerated compositing debug visuals
717         https://bugs.webkit.org/show_bug.cgi?id=101883
718
719         Reviewed by Kenneth Rohde Christiansen.
720
721         No new tests, just introducing a debug feature.
722
723         Add a Cairo implementation to complement the patch from bug 90116
724         (http://trac.webkit.org/changeset/122275).
725
726         For this feature to be enabled, the environment variable
727         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
728         both repaint counters and tile borders will be painted.
729
730         A Cairo-specific drawRepaintCounter() implementation was added to
731         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
732         the counters. It is then uploaded to a BitmapTexture acquired
733         from the pool and finally draw by TextureMapper. The actual compositing
734         happens inside LayerBackingStore::paintToTextureMapper(). Each
735         LayerBackingStoreTile has a repaint counter which gets incremented in
736         LayerBackingStore::updateTile().
737
738         * platform/graphics/texmap/TextureMapperGL.cpp:
739         (WebCore::TextureMapperGL::drawRepaintCounter):
740
741 2012-11-14  Michael Pruett  <michael@68k.org>
742
743         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
744         https://bugs.webkit.org/show_bug.cgi?id=102268
745
746         Reviewed by Geoffrey Garen.
747
748         Add JSNoStaticTables attribute to IndexedDB interface
749         definitions. This attribute must be specified in interfaces
750         which can be accessed from workers.
751
752         Tests: storage/indexeddb/*
753
754         * Modules/indexeddb/IDBAny.idl:
755         * Modules/indexeddb/IDBCursor.idl:
756         * Modules/indexeddb/IDBCursorWithValue.idl:
757         * Modules/indexeddb/IDBDatabase.idl:
758         * Modules/indexeddb/IDBDatabaseException.idl:
759         * Modules/indexeddb/IDBFactory.idl:
760         * Modules/indexeddb/IDBIndex.idl:
761         * Modules/indexeddb/IDBKey.idl:
762         * Modules/indexeddb/IDBKeyRange.idl:
763         * Modules/indexeddb/IDBObjectStore.idl:
764         * Modules/indexeddb/IDBOpenDBRequest.idl:
765         * Modules/indexeddb/IDBRequest.idl:
766         * Modules/indexeddb/IDBTransaction.idl:
767         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
768         * Modules/indexeddb/IDBVersionChangeEvent.idl:
769         * Modules/indexeddb/IDBVersionChangeRequest.idl:
770         * dom/DOMStringList.idl:
771
772 2012-11-14  Michael Pruett  <michael@68k.org>
773
774         IndexedDB: Replace int64 with int64_t
775         https://bugs.webkit.org/show_bug.cgi?id=102270
776
777         Reviewed by Tony Chang.
778
779         Cleaning up coding inconsistencies, no change in behavior.
780
781         Tests: storage/indexeddb/*
782
783         * Modules/indexeddb/IDBDatabase.cpp:
784         (WebCore::IDBDatabase::deleteObjectStore):
785         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
786         (WebCore::IDBObjectStoreBackendImpl::putInternal):
787
788 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
789
790         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
791         https://bugs.webkit.org/show_bug.cgi?id=102000
792
793         Reviewed by Noam Rosenthal.
794
795         Add helper functions to clear viewport before painting. Those functions
796         used by EFL Webkit2 port to set view background to match page background
797         in order to reduce visibility of flicker during scrolling/scaling/repainting
798         where page tiles are not ready.
799
800         * platform/graphics/texmap/TextureMapper.h:
801         * platform/graphics/texmap/TextureMapperGL.cpp:
802         (WebCore::TextureMapperGL::drawSolidColor):
803         (WebCore):
804         * platform/graphics/texmap/TextureMapperGL.h:
805         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
806         (WebCore::TextureMapperImageBuffer::drawSolidColor):
807         (WebCore):
808         * platform/graphics/texmap/TextureMapperImageBuffer.h:
809
810 2012-11-14  Mark Lam  <mark.lam@apple.com>
811
812         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
813         https://bugs.webkit.org/show_bug.cgi?id=102183.
814
815         Reviewed by Geoffrey Garen.
816
817         Fixed JSEventListener::operator==() to work within the contract that
818         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
819         some typos in comments.
820
821         No new tests.
822
823         * bindings/js/JSEventListener.cpp:
824         (WebCore::JSEventListener::visitJSFunction):
825         (WebCore::JSEventListener::operator==):
826         * bindings/js/JSEventListener.h:
827         (WebCore::JSEventListener::jsFunction):
828
829 2012-11-14  Nate Chapin  <japhet@chromium.org>
830
831         Fix chromium asserts from r134649.
832
833         Rubber-stamped by Adam Barth.
834
835         MainResourceLoader was calling releaseResources() twice when cancelled
836         within MainResourceLoader::load(), so check reachedTerminalState() before
837         calling releaseResources() there.
838
839         * loader/MainResourceLoader.cpp:
840         (WebCore::MainResourceLoader::load):
841
842 2012-11-14  Andreas Kling  <kling@webkit.org>
843
844         Only resolve presentation attribute style once per shared ElementAttributeData.
845         <http://webkit.org/b/100990>
846
847         Reviewed by Antti Koivisto.
848
849         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
850         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
851         since the state is no longer per-Element.
852
853         I've left the presentation attribute cache in there for now, since it still covers the case where
854         two elements have the same presentation attributes but different non-presentation attributes.
855         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
856
857         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
858         * dom/StyledElement.h:
859         (WebCore::StyledElement::presentationAttributeStyle):
860         (WebCore::ElementAttributeData::ElementAttributeData):
861         * dom/ElementAttributeData.h:
862         (WebCore::ElementAttributeData::ElementAttributeData):
863         (ElementAttributeData):
864         * dom/Node.h:
865
866             Move presentation attribute style dirty flag from Node to ElementAttributeData.
867
868         * dom/ElementAttributeData.cpp:
869         (SameSizeAsElementAttributeData):
870
871             Add a compile-time object size assertion for ElementAttributeData.
872
873         * dom/StyledElement.cpp:
874         (WebCore::StyledElement::attributeChanged):
875
876             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
877             shared) ElementAttributeData and another element has already generated the StylePropertySet.
878             The element itself is still marked for style recalc like before, this just avoids the process
879             of converting the attributes to CSS properties.
880
881 2012-11-14  Scott Violet  <sky@chromium.org>
882
883         [Chromium] Refactor theme font lookup into a factory
884         https://bugs.webkit.org/show_bug.cgi?id=101949
885
886         Reviewed by Tony Chang.
887
888         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
889
890         No new tests. Refactoring only.
891
892         * WebCore.gyp/WebCore.gyp:
893         * WebCore.gypi:
894         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
895         (WebCore):
896         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
897         * rendering/RenderThemeChromiumFontProvider.h: Added.
898         (WTF):
899         (WebCore):
900         (RenderThemeChromiumFontProvider): This is the font related methods.
901         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
902         (WebCore):
903         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
904         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
905         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
906         (WebCore):
907         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
908         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
909         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
910         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
911         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
912         * rendering/RenderThemeChromiumSkia.cpp:
913         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
914         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
915         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
916         * rendering/RenderThemeChromiumSkia.h:
917         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
918         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
919         (WebCore):
920         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
921         (RenderThemeChromiumWin):
922
923 2012-11-14  Erik Arvidsson  <arv@chromium.org>
924
925         Update DOMException name: InUseAttributeError
926         https://bugs.webkit.org/show_bug.cgi?id=102141
927
928         Reviewed by Ojan Vafai.
929
930         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
931
932         The name for this is not in the spec but the case was selected to match
933         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
934
935         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
936
937         * dom/DOMCoreException.cpp:
938         * dom/ExceptionCode.h:
939
940 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
941
942         [WinCairo] Incorrect line-height for styled menulist (select tag)
943         in windows theme.
944         https://bugs.webkit.org/show_bug.cgi?id=79435
945
946         Reviewed by Brent Fulgham
947
948         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
949         to Windows theme to fix issue.
950
951         Tests: fast/forms/menulist-restrict-line-height.html
952                fast/forms/control-restrict-line-height.html
953                fast/forms/basic-selects.html
954
955         * rendering/RenderThemeWin.cpp:
956         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
957         height to the correct initial height.
958
959 2012-11-14  Erik Arvidsson  <arv@chromium.org>
960
961         Update DOMException name: WrongDocumentError
962         https://bugs.webkit.org/show_bug.cgi?id=102096
963
964         Reviewed by Ojan Vafai.
965
966         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
967
968         Updated existing tests.
969
970         * dom/DOMCoreException.cpp:
971
972 2012-11-14  Nate Chapin  <japhet@chromium.org>
973
974         Move empty loading to DocumentLoader, simplify FrameLoader::init()
975         https://bugs.webkit.org/show_bug.cgi?id=101512
976
977         Reviewed by Adam Barth.
978
979         No new tests, though several outputs changed because we no longer send resource
980             load callbacks for empty loads.
981
982         * loader/DocumentLoader.cpp:
983         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
984             loads directly here.
985         * loader/DocumentLoader.h:
986         * loader/FrameLoader.cpp:
987         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
988             were previously being reset in init(). Given that the FrameLoader is in
989             an inconsistent state before init() is called anyway, there doesn't seem
990             to be a disadvantage to just initializing them to their post-init() values.
991         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
992             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
993         * loader/FrameLoaderStateMachine.cpp:
994         * loader/FrameLoaderStateMachine.h:
995         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
996         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
997             load got deferred, which won't happen now. Return void and always treat
998             as returning false.
999         * loader/MainResourceLoader.h:
1000
1001 2012-11-14  Erik Arvidsson  <arv@chromium.org>
1002
1003         Update DOMException name: InvalidStateError
1004         https://bugs.webkit.org/show_bug.cgi?id=102241
1005
1006         Reviewed by Ojan Vafai.
1007
1008         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
1009
1010         Updated existing tests.
1011
1012         * dom/DOMCoreException.cpp:
1013
1014 2012-11-14  Joshua Bell  <jsbell@chromium.org>
1015
1016         Rename NATIVE_TYPE_ERR to TypeError
1017         https://bugs.webkit.org/show_bug.cgi?id=102114
1018
1019         Reviewed by Kentaro Hara.
1020
1021         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
1022         V8 binding code had colliding enum members, which required prefixing.
1023
1024         No new tests - just internal renames.
1025
1026         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
1027         (WebCore::IDBCursor::advance):
1028         (WebCore::IDBCursor::stringToDirection):
1029         (WebCore::IDBCursor::directionToString):
1030         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
1031         (WebCore::IDBDatabase::setVersion):
1032         * Modules/indexeddb/IDBFactory.cpp: Ditto.
1033         (WebCore::IDBFactory::open):
1034         (WebCore::IDBFactory::openInternal):
1035         (WebCore::IDBFactory::deleteDatabase):
1036         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
1037         (WebCore::IDBObjectStore::createIndex):
1038         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
1039         (WebCore::IDBTransaction::stringToMode):
1040         (WebCore::IDBTransaction::modeToString):
1041         * bindings/js/JSDOMBinding.cpp: Ditto.
1042         (WebCore::setDOMException):
1043         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
1044         (WebCore::DateExtension::OnSleepDetected):
1045         * bindings/v8/NPV8Object.cpp: Ditto.
1046         (_NPN_SetException):
1047         * bindings/v8/V8Binding.cpp: Ditto.
1048         (WebCore::throwError):
1049         (WebCore::handleMaxRecursionDepthExceeded):
1050         * bindings/v8/V8Binding.h: Ditto.
1051         (WebCore):
1052         * bindings/v8/V8NPObject.cpp: Ditto.
1053         (WebCore::npObjectInvokeImpl):
1054         (WebCore::npObjectGetProperty):
1055         (WebCore::npObjectSetProperty):
1056         (WebCore::npObjectPropertyEnumerator):
1057         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
1058         (WebCore::V8ThrowException::setDOMException):
1059         (WebCore::V8ThrowException::throwError):
1060         (WebCore::V8ThrowException::throwTypeError):
1061         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
1062         * bindings/v8/V8ThrowException.h:
1063         (V8ThrowException):
1064         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
1065         (WebCore::WorkerContextExecutionProxy::evaluate):
1066         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
1067         (WebCore::V8ArrayBuffer::constructorCallback):
1068         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
1069         (WebCore::constructWebGLArrayWithArrayBufferArgument):
1070         (WebCore::constructWebGLArray):
1071         (WebCore::setWebGLArrayHelper):
1072         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
1073         (WebCore::V8AudioContext::constructorCallback):
1074         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
1075         (WebCore::V8Blob::constructorCallback):
1076         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
1077         (WebCore::V8Clipboard::clearDataCallback):
1078         (WebCore::V8Clipboard::setDragImageCallback):
1079         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
1080         (WebCore::V8DOMFormData::appendCallback):
1081         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
1082         (WebCore::V8SQLResultSetRowList::itemCallback):
1083         * dom/ExceptionCode.h: Add WebIDL exception types.
1084
1085 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
1086
1087         [BlackBerry] Style BB10 time input field font.
1088         https://bugs.webkit.org/show_bug.cgi?id=102260.
1089
1090         Reviewed by Rob Buis.
1091
1092         RIM PR 243355
1093         Adjust time input field font using BB10 system default font.
1094
1095         * css/themeBlackBerry.css:
1096         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
1097
1098 2012-11-14  Li Yin  <li.yin@intel.com>
1099
1100         createDelay should raise exception when the maxDelayTime parameter is incorrect.
1101         https://bugs.webkit.org/show_bug.cgi?id=102173
1102
1103         Reviewed by Chris Rogers.
1104
1105         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
1106         The specified value must be greater than zero and less than three minutes or a
1107         NOT_SUPPORTED_ERR exception will be thrown.
1108
1109         Tests: webaudio/delaynode-maxdelaylimit.html
1110
1111         * Modules/webaudio/AudioContext.cpp:
1112         (WebCore::AudioContext::createDelay):
1113         * Modules/webaudio/AudioContext.h:
1114         (AudioContext):
1115         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
1116         * Modules/webaudio/DelayNode.cpp:
1117         (WebCore):
1118         (WebCore::DelayNode::DelayNode):
1119         * Modules/webaudio/DelayNode.h:
1120         (WebCore::DelayNode::create):
1121         (DelayNode):
1122
1123 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
1124
1125         Don't pass a paintingRoot when painting from RenderLayerBacking
1126         https://bugs.webkit.org/show_bug.cgi?id=102256
1127
1128         Reviewed by David Hyatt.
1129
1130         The 'paintingRoot' parameter to the RenderLayer paint functions
1131         is used when painting just a subtree (e.g. when painting dragged
1132         selections). There is no need to pass it when a RenderLayerBacking
1133         paints its contents or overlay scrollbars.
1134         
1135         Passing it requires an expensive isDescendant() check, so passing
1136         null is more efficient.
1137         
1138         * rendering/RenderLayer.h:
1139         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
1140         * rendering/RenderLayerBacking.cpp:
1141         (WebCore::RenderLayerBacking::paintIntoLayer):
1142         (WebCore::RenderLayerBacking::paintContents):
1143         * rendering/RenderLayerBacking.h:
1144         (RenderLayerBacking):
1145
1146 2012-11-14  Alec Flett  <alecflett@chromium.org>
1147
1148         Add DOMRequestState to maintain world/ScriptExecutionContext state
1149         https://bugs.webkit.org/show_bug.cgi?id=102102
1150
1151         Reviewed by Adam Barth.
1152
1153         Introduce DOMRequestState, and convert IndexedDB over.
1154
1155         No new tests, this is an abstraction layer for existing code.
1156
1157         * Modules/indexeddb/IDBRequest.cpp:
1158         (WebCore::IDBRequest::IDBRequest):
1159         (WebCore::IDBRequest::onSuccess):
1160         (WebCore::IDBRequest::dispatchEvent):
1161         * Modules/indexeddb/IDBRequest.h:
1162         (IDBRequest):
1163         * WebCore.gypi:
1164         * bindings/v8/DOMRequestState.h: Added.
1165         (WebCore):
1166         (DOMRequestState):
1167         (WebCore::DOMRequestState::DOMRequestState):
1168         (Scope):
1169         (WebCore::DOMRequestState::Scope::Scope):
1170         (WebCore::DOMRequestState::scope):
1171
1172 2012-11-14  Justin Novosad  <junov@google.com>
1173
1174         Boxes with rounded corners and thin borders are too slow to draw
1175         https://bugs.webkit.org/show_bug.cgi?id=101974
1176
1177         Reviewed by Simon Fraser.
1178
1179         With the current implementation RenderBox::
1180         determineBackgroundBleedAvoidance() uses the slow path
1181         BackgroundBleedUseTransparencyLayer for some very common use cases,
1182         notably for drawing rectangles with rounded corners that have thin
1183         borders. This is because the BackgroundBleedShrinkBackground
1184         strategy requires a border at least two pixels wide on all sides. This
1185         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
1186         This approach consists in drawing the border first, with an inset inner
1187         edge (for anti-aliased compositing to work well).  This approach only
1188         works with opaque solid edges and opaque single-layer backgrounds.
1189         By using this approach rather than BackgroundBleedUseTransparencyLayer,
1190         we save two clipPath, one save and one saveLayer on the
1191         GraphicsContext. This patch gets good coverage from existing layout
1192         tests. One additional test was added to exercise mitring, thick edges
1193         and anti-aliasing edge cases under the new painting algorithm.
1194
1195         Test: fast/borders/border-radius-wide-border-05.html
1196
1197         * rendering/RenderBox.cpp:
1198         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
1199         Added selection criteria for BackgroundOverBorder
1200         (WebCore::RenderBox::paintBoxDecorations):
1201         Added a preliminary paintBorder pass for BackgroundOverBorder
1202         (WebCore::RenderBox::paintBackground):
1203         Insetting the background to to innerBorder when bleedAvoidance is
1204         BackgroundOverBorder.  This why BackgroundOverBorder only works for
1205         Opaque solid edges.
1206         (WebCore):
1207         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
1208         Utility method use by determineBackgroundBleedAvoidance to test the
1209         background's eligibility for BackgroundOverBorder bleed avoidance
1210         strategy.  The reason the background must be a single layer is to avoid
1211         color bleeding from layer compositing along anti-aliased edges
1212         * rendering/RenderBox.h:
1213         (RenderBox):
1214         * rendering/RenderBoxModelObject.cpp:
1215         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
1216         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
1217         Added support for BackgroundOverBorder by applying a one pixel inset.
1218         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
1219         Set the background rect to the inner border for BackgroundOverBorder
1220         (WebCore):
1221         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1222         Added support for BackgroundOverBorder by using 
1223         backgroundRoundedRectAdjustedForBleedAvoidance
1224         (WebCore::RenderBoxModelObject::paintBorderSides):
1225         Added support for BackgroundOverBorder by applying per-side inset
1226         adjustments.
1227         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
1228         (WebCore::RenderBoxModelObject::paintBorder):
1229         Added support for BackgroundOverBorder by using an adjusted inner
1230         border, but not if sides are painted individually.
1231         * rendering/RenderBoxModelObject.h:
1232         (RenderBoxModelObject):
1233
1234 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
1235
1236         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
1237         https://bugs.webkit.org/show_bug.cgi?id=76219
1238
1239         Reviewed by Brent Fulgham.
1240
1241         This patch is to fix a memory leak problem which occurs
1242         in every rendering process on Wincairo port.
1243         By applying this patch, the memory allocated in cairo 
1244         library will be released by calling cairo_destroy.
1245
1246         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1247         (WebCore::GraphicsContext::platformInit):
1248
1249 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
1250
1251         Optimize painting of composited scrolling layers
1252         https://bugs.webkit.org/show_bug.cgi?id=96087
1253
1254         Reviewed by Simon Fraser.
1255
1256         Don't completely repaint accelerated scrolling layers when the scroll offset
1257         changes.
1258
1259         Test: compositing/overflow/scrolling-without-painting.html
1260
1261         * platform/graphics/GraphicsLayer.cpp:
1262         (WebCore::GraphicsLayer::setOffsetFromRenderer):
1263         * platform/graphics/GraphicsLayer.h:
1264         (GraphicsLayer):
1265         * rendering/RenderLayerBacking.cpp:
1266         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1267
1268 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
1269
1270         Web Inspector: keep track of mutation observers and disconnect them upon upload
1271         https://bugs.webkit.org/show_bug.cgi?id=102239
1272
1273         Reviewed by Vsevolod Vlasov.
1274
1275         Otherwise we hit memory leaks.
1276
1277         * inspector/front-end/DefaultTextEditor.js:
1278         (WebInspector.DefaultTextEditor.prototype.wasShown):
1279         (WebInspector.DefaultTextEditor.prototype.willHide):
1280         (WebInspector.TextEditorMainPanel.prototype._wasShown):
1281         (WebInspector.TextEditorMainPanel.prototype._willHide):
1282         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
1283         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
1284         * inspector/front-end/utilities.js:
1285
1286 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
1287
1288         [Qt] Use a node image if there is no drag image set for Drag&Drop
1289         https://bugs.webkit.org/show_bug.cgi?id=102124
1290
1291         Reviewed by Simon Hausmann.
1292
1293         Use the nodeImage provided by the frame if there is no dragImage in
1294         the clipboard for the current drag&drop operation.
1295
1296         * platform/qt/ClipboardQt.cpp:
1297         (WebCore::ClipboardQt::createDragImage):
1298
1299 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
1300
1301         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
1302         https://bugs.webkit.org/show_bug.cgi?id=101846
1303
1304         Reviewed by Simon Fraser.
1305
1306         If software-rendered CSS Filters have not been used in the document, avoid doing the second
1307         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
1308         enclosing filter layer.
1309
1310         No new tests. We now avoid a filters related code path for a performance improvement when
1311         we're not using filters.
1312
1313         * page/FrameView.cpp:
1314         (WebCore::FrameView::FrameView):
1315         * page/FrameView.h:
1316         (FrameView):
1317         (WebCore::FrameView::setHasSoftwareFilters):
1318         (WebCore::FrameView::hasSoftwareFilters):
1319         * rendering/RenderLayer.cpp:
1320         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
1321         * rendering/RenderObject.cpp:
1322         (WebCore::RenderObject::containerForRepaint):
1323
1324 2012-11-14  Erik Arvidsson  <arv@chromium.org>
1325
1326         Update DOMException name: NotFoundError
1327         https://bugs.webkit.org/show_bug.cgi?id=102137
1328
1329         Reviewed by Ojan Vafai.
1330
1331         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
1332
1333         Updated existing tests.
1334
1335         * dom/DOMCoreException.cpp:
1336
1337 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
1338
1339         [BlackBerry] Updating BB Cookie database to use WAL
1340         https://bugs.webkit.org/show_bug.cgi?id=102237
1341
1342         Reviewed by Rob Buis.
1343
1344         The cookie database is accessed by one process only and should be updated to
1345         use the WAL journal mode for better I/O performance.
1346
1347         PR 236553
1348
1349         cookieCollection.db-wal is created after the conversion to WAL.
1350         Tested cookie persistence by logging on to random sites and restarting the browser and
1351         check if it automatically logs in.
1352         Also tested using Opera's cookie persistence test.
1353
1354         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
1355         (WebCore::CookieDatabaseBackingStore::invokeOpen):
1356
1357 2012-11-14  Erik Arvidsson  <arv@chromium.org>
1358
1359         Update DOMException name: IndexSizeError
1360         https://bugs.webkit.org/show_bug.cgi?id=102087
1361
1362         Reviewed by Ojan Vafai.
1363
1364         This is the first in a series of updates to DOMException name to match
1365         the spec and Firefox.
1366
1367         Patch 1 of 25
1368
1369         Updated existing tests.
1370
1371         * dom/DOMCoreException.cpp:
1372         (WebCore):
1373
1374 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
1375
1376         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
1377         https://bugs.webkit.org/show_bug.cgi?id=102205
1378
1379         Reviewed by Csaba Osztrogon√°c.
1380
1381         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
1382
1383         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
1384         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
1385         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
1386         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
1387
1388 2012-11-14  Erik Arvidsson  <arv@chromium.org>
1389
1390         Update DOMException name: NoDataAllowedError
1391         https://bugs.webkit.org/show_bug.cgi?id=102132
1392
1393         Reviewed by Darin Adler.
1394
1395         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
1396
1397         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
1398
1399         * dom/DOMCoreException.cpp:
1400         (WebCore):
1401         * dom/ExceptionCode.h:
1402
1403 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
1404
1405         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
1406         https://bugs.webkit.org/show_bug.cgi?id=102219
1407
1408         Reviewed by Alexander Pavlov.
1409
1410         Force elements module load upon context menu invocation.
1411
1412         * inspector/front-end/ElementsTreeOutline.js:
1413         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
1414         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
1415
1416 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1417
1418         Unreviewed, rolling out r134523.
1419         http://trac.webkit.org/changeset/134523
1420         https://bugs.webkit.org/show_bug.cgi?id=102218
1421
1422         brake chrome windows build, as it references a non existing
1423         header js/DOMRequestState.h (Requested by jochen__ on
1424         #webkit).
1425
1426         * Modules/indexeddb/IDBCursor.cpp:
1427         (WebCore::IDBCursor::setValueReady):
1428         * Modules/indexeddb/IDBCursor.h:
1429         (IDBCursor):
1430         * Modules/indexeddb/IDBRequest.cpp:
1431         (WebCore::IDBRequest::IDBRequest):
1432         (WebCore::IDBRequest::onSuccess):
1433         (WebCore::IDBRequest::stop):
1434         (WebCore::IDBRequest::dispatchEvent):
1435         * Modules/indexeddb/IDBRequest.h:
1436         (IDBRequest):
1437         * WebCore.gypi:
1438         * bindings/v8/DOMRequestState.h: Removed.
1439         * bindings/v8/IDBBindingUtilities.cpp:
1440         (WebCore::deserializeIDBValue):
1441         (WebCore::idbKeyToScriptValue):
1442         * bindings/v8/IDBBindingUtilities.h:
1443         (WebCore):
1444
1445 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
1446
1447         Add platform implementation of remote web inspector server for GTK port.
1448         https://bugs.webkit.org/show_bug.cgi?id=88094 
1449
1450         Reviewed by Gustavo Noronha Silva.
1451
1452         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
1453         Needed to pass remote inspector server socket connection. The change is tested with 
1454         inspector server API tests.
1455
1456         * platform/network/soup/SocketStreamHandle.h:
1457         (WebCore::SocketStreamHandle::create):
1458         (SocketStreamHandle):
1459         * platform/network/soup/SocketStreamHandleSoup.cpp:
1460         (WebCore::SocketStreamHandle::SocketStreamHandle):
1461         (WebCore):
1462         (WebCore::SocketStreamHandle::connected):
1463         (WebCore::SocketStreamHandle::platformSend):
1464         (WebCore::SocketStreamHandle::platformClose):
1465
1466 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
1467
1468         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
1469         https://bugs.webkit.org/show_bug.cgi?id=102212
1470
1471         Reviewed by Vsevolod Vlasov.
1472
1473         * inspector/front-end/ObjectPropertiesSection.js:
1474         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
1475
1476 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
1477
1478         Web Inspector: NMI add instrumentation for WebAudo related stuff.
1479         They use about 16Mb for shared data on pages with webaudio.
1480         As example Angry Birds app.
1481         https://bugs.webkit.org/show_bug.cgi?id=101729
1482
1483         Reviewed by Yury Semikhatsky.
1484
1485         Plain vanilla instrumentation for audio and webaudio classes.
1486         AudioContext is a kind of ActiveDOMObject. I found that these objects
1487         are accessible through ScriptExecutuionContext and ScriptExecutionContext
1488         is an ancestor of Document. Document class was instrumented earler.
1489         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
1490         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
1491
1492         Test: inspector-protocol/nmi-webaudio.html
1493
1494         * Modules/webaudio/AudioContext.cpp:
1495         (WebCore::AudioContext::reportMemoryUsage):
1496         (WebCore):
1497         * Modules/webaudio/AudioContext.h:
1498         (AudioContext):
1499         * Modules/webaudio/AudioNode.cpp:
1500         (WebCore::AudioNode::reportMemoryUsage):
1501         (WebCore):
1502         * Modules/webaudio/AudioNode.h:
1503         (AudioNode):
1504         * dom/ActiveDOMObject.cpp:
1505         (WebCore::ActiveDOMObject::reportMemoryUsage):
1506         (WebCore):
1507         * dom/ActiveDOMObject.h:
1508         (ActiveDOMObject):
1509         * dom/Document.cpp:
1510         (WebCore::Document::reportMemoryUsage):
1511         * dom/ScriptExecutionContext.cpp:
1512         (WebCore::ScriptExecutionContext::reportMemoryUsage):
1513         (WebCore):
1514         * dom/ScriptExecutionContext.h:
1515         (ScriptExecutionContext):
1516         * dom/SecurityContext.cpp:
1517         (WebCore::SecurityContext::reportMemoryUsage):
1518         (WebCore):
1519         * dom/SecurityContext.h:
1520         (SecurityContext):
1521         * dom/WebCoreMemoryInstrumentation.cpp:
1522         (WebCore):
1523         * dom/WebCoreMemoryInstrumentation.h:
1524         (WebCoreMemoryTypes):
1525         * platform/audio/AudioArray.h:
1526         (AudioArray):
1527         (WebCore::AudioArray::reportMemoryUsage):
1528         * platform/audio/FFTFrame.cpp:
1529         (WebCore::FFTFrame::reportMemoryUsage):
1530         (WebCore):
1531         * platform/audio/FFTFrame.h:
1532         (FFTFrame):
1533         * platform/audio/HRTFDatabase.cpp:
1534         (WebCore::HRTFDatabase::reportMemoryUsage):
1535         (WebCore):
1536         * platform/audio/HRTFDatabase.h:
1537         (HRTFDatabase):
1538         * platform/audio/HRTFDatabaseLoader.cpp:
1539         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
1540         (WebCore):
1541         * platform/audio/HRTFDatabaseLoader.h:
1542         (HRTFDatabaseLoader):
1543         * platform/audio/HRTFElevation.cpp:
1544         (WebCore::HRTFElevation::reportMemoryUsage):
1545         (WebCore):
1546         * platform/audio/HRTFElevation.h:
1547         (HRTFElevation):
1548         * platform/audio/HRTFKernel.cpp:
1549         (WebCore::HRTFKernel::reportMemoryUsage):
1550         (WebCore):
1551         * platform/audio/HRTFKernel.h:
1552         (HRTFKernel):
1553
1554 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1555
1556         Web Inspector: Settings screen: close button overlays view title on mac.
1557         https://bugs.webkit.org/show_bug.cgi?id=102198
1558
1559         Reviewed by Pavel Feldman.
1560
1561         Added margin-left for mac. Adjusted title height and vertical positioning.
1562
1563         * inspector/front-end/helpScreen.css:
1564         (.help-window-caption): Adjusted title height.
1565         (.help-window-title): Adjusted title vertical positioning. 
1566         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
1567
1568 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
1569
1570         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
1571         https://bugs.webkit.org/show_bug.cgi?id=101905
1572
1573         Reviewed by Vsevolod Vlasov.
1574
1575         Currently we use heuristics for detecting damaged model range upon DOM mutation.
1576         This change adds signals from the last selection and keyboard events in order to
1577         further improve the heuristics quality.
1578
1579         * inspector/front-end/DefaultTextEditor.js:
1580         (WebInspector.DefaultTextEditor):
1581         (WebInspector.DefaultTextEditor.EditInfo):
1582         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
1583         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
1584         (WebInspector.DefaultTextEditor.prototype.lastSelection):
1585         (WebInspector.DefaultTextEditor.prototype.wasShown):
1586         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
1587         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
1588         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
1589         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
1590         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
1591         * inspector/front-end/TextEditorModel.js:
1592         (WebInspector.TextRange.prototype.compareTo):
1593         (WebInspector.TextRange.prototype.shift):
1594         (WebInspector.TextEditorModel.endsWithBracketRegex.):
1595
1596 2012-11-14  Dan Carney  <dcarney@google.com>
1597
1598         [V8] use toV8Fast in all relevant Node getters
1599         https://bugs.webkit.org/show_bug.cgi?id=100851
1600
1601         Reviewed by Kentaro Hara.
1602
1603         The toV8Fast function for Node objects is now called in all getters
1604         instead of toV8.
1605
1606         No new tests. Test coverage extensive.
1607
1608         * bindings/scripts/CodeGeneratorV8.pm:
1609         (GenerateHeader):
1610         (GenerateNormalAttrGetter):
1611         (IsDOMNodeType):
1612         * bindings/scripts/test/V8/V8TestNode.h:
1613         (WebCore::toV8Fast):
1614
1615 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1616
1617         Clean up use of adjustWindowRect
1618         https://bugs.webkit.org/show_bug.cgi?id=102072
1619
1620         Reviewed by Gyuyoung Kim.
1621
1622         Tested by fast/dom/Window/open-window-min-size.html
1623
1624         * loader/FrameLoader.cpp:
1625         (WebCore::createWindow):
1626
1627             Validate the window size here so that it is not just done for
1628             .open, but also for .showModalDialog. This is compatible with
1629             other browsers such as IE and Firefox (though IE > 6, enforces
1630             a minimum width of 250 instead of 100 as Firefox and us.)
1631
1632         * page/DOMWindow.cpp:
1633         (WebCore):
1634         (WebCore::DOMWindow::adjustWindowRect):
1635
1636             Make it a static method which only takes page. It was never
1637             called from anywhere without a valid page, so the page check
1638             has been turned into an assert, and two of the arguments have
1639             been removed as they can be accessed via the page.
1640
1641         (WebCore::DOMWindow::moveBy):
1642         (WebCore::DOMWindow::moveTo):
1643         (WebCore::DOMWindow::resizeBy):
1644         (WebCore::DOMWindow::resizeTo):
1645
1646             Update use of adjustWindowRect.
1647
1648         (WebCore::DOMWindow::open):
1649
1650             Avoid modifying the WindowFeatures as the WebCore::createWindow
1651             validates and adjusts the arguments.
1652
1653         * page/DOMWindow.h:
1654         (DOMWindow):
1655
1656 2012-11-14  Takashi Sakamoto  <tasak@google.com>
1657
1658         Crash when replacing parts of text inputs with content: url(...)
1659         https://bugs.webkit.org/show_bug.cgi?id=101133
1660
1661         Reviewed by Kent Tamura.
1662
1663         Disable directly setting content of elements in an input element's
1664         shadow dom tree, because the setting breaks input element's behavior.
1665
1666         Tests: fast/forms/number/number-content-url-crash.html
1667                fast/forms/search/search-content-url-crash.html
1668
1669         * css/html.css:
1670         (input::-webkit-textfield-decoration-container):
1671         Use important to disable overriding an input element's content
1672         property.
1673         * html/TextFieldInputType.cpp:
1674         (WebCore::TextFieldInputType::attach):
1675         Added ASSERTION. No content should be applied to
1676         input::-webkit-textfield-decoration-container.
1677
1678 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1679
1680         Unreviewed. Rebaselined run-bindings-tests results.
1681
1682         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1683         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
1684         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
1685         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
1686         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
1687         (WebCore::V8TestOverloadedConstructors::wrapSlow):
1688
1689 2012-11-14  Anton Muhin  <antonm@chromium.org>
1690
1691         Provide return types for custom WebGLRenderingContext methods
1692         https://bugs.webkit.org/show_bug.cgi?id=100777
1693
1694         Reviewed by Kenneth Russell.
1695
1696         No new tests as doesn't change generated code.
1697
1698         * html/canvas/WebGLRenderingContext.idl:
1699
1700 2012-11-14  Kent Tamura  <tkent@chromium.org>
1701
1702         Support for localization tests of calendar picker
1703         https://bugs.webkit.org/show_bug.cgi?id=102181
1704
1705         Reviewed by Kentaro Hara.
1706
1707         Introduce DateTimeChooserParameters::locale to inform locale to
1708         DateTimeChooser implementations. However we pass defaultLanguage
1709         unless tests calls internals.settings.
1710         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
1711
1712         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
1713
1714         * html/HTMLInputElement.cpp:
1715         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
1716         Set DateTimeChooserParameters::locale up.
1717         * platform/DateTimeChooser.h:
1718         (DateTimeChooserParameters): Add 'locale' member.
1719
1720 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
1721
1722         Web Inspector: highlight is not updating as one edits CSS properties
1723         https://bugs.webkit.org/show_bug.cgi?id=102191
1724
1725         Reviewed by Alexander Pavlov.
1726
1727         We should update highlight upon layout / style recalculation.
1728
1729         * inspector/InspectorInstrumentation.cpp:
1730         (WebCore):
1731         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
1732         * inspector/InspectorPageAgent.cpp:
1733         (WebCore::InspectorPageAgent::InspectorPageAgent):
1734         (WebCore::InspectorPageAgent::enable):
1735         (WebCore::InspectorPageAgent::disable):
1736         (WebCore::InspectorPageAgent::domContentEventFired):
1737         (WebCore::InspectorPageAgent::didPaint):
1738         (WebCore::InspectorPageAgent::didLayout):
1739         (WebCore::InspectorPageAgent::didScroll):
1740         (WebCore):
1741         (WebCore::InspectorPageAgent::didRecalculateStyle):
1742         * inspector/InspectorPageAgent.h:
1743
1744 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1745
1746         Unreviewed, rolling out r134566.
1747         http://trac.webkit.org/changeset/134566
1748         https://bugs.webkit.org/show_bug.cgi?id=102197
1749
1750         "it broke Chromium Android Release build" (Requested by
1751         haraken on #webkit).
1752
1753         * html/HTMLInputElement.cpp:
1754         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
1755         * platform/DateTimeChooser.h:
1756         (DateTimeChooserParameters):
1757
1758 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
1759
1760         Web Inspector: No content available for requests made from flash
1761         https://bugs.webkit.org/show_bug.cgi?id=101560
1762
1763         Reviewed by Pavel Feldman.
1764
1765         Network request data is now saved to inspector cache in following cases:
1766          - Error status code;
1767          - No cached resource available;
1768          - Cached resource has ShouldNotBufferData option set.
1769         Drive-by: refactored didReceiveResponse logic to be clearer.
1770
1771         * inspector/InspectorResourceAgent.cpp:
1772         (WebCore::InspectorResourceAgent::didReceiveResponse):
1773         (WebCore::InspectorResourceAgent::didReceiveData):
1774         * loader/cache/CachedResource.h:
1775         (WebCore::CachedResource::shouldBufferData):
1776
1777 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
1778
1779         Changing pseudoClass (:target) should cause distribution
1780         https://bugs.webkit.org/show_bug.cgi?id=101699
1781
1782         Reviewed by Hajime Morita.
1783
1784         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
1785         by consulting with SelectRuleFeatureSet.
1786
1787         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
1788
1789         Test: fast/dom/shadow/pseudoclass-update-target.html
1790
1791         * dom/Document.cpp:
1792         (WebCore::Document::setCSSTarget):
1793         * dom/ElementShadow.cpp:
1794         (WebCore::invalidateParentDistributionIfNecessary):
1795         (WebCore):
1796         * dom/ElementShadow.h:
1797         (WebCore):
1798         * html/shadow/SelectRuleFeatureSet.h:
1799         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
1800         (SelectRuleFeatureSet):
1801
1802 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1803
1804         [V8] DOM wrapper objects should be collected in minor GC cycles
1805         https://bugs.webkit.org/show_bug.cgi?id=98725
1806
1807         Reviewed by Adam Barth.
1808
1809         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
1810         have to survive two minor GC cycles, be promoted to the old space
1811         and wait for a heavy major GC cycle.
1812
1813         This patch enables V8 to collect DOM Nodes in minor GC cycles.
1814         For real world applications, I confirmed that minor GC cycles
1815         reclaims a substantial amount of memory (24 MB for Facebook,
1816         235 MB for Google Calendar) with acceptable overhead (~10 ms
1817         per minor GC cycle). No performance regression in Dromaeo
1818         DOM tests.
1819
1820         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
1821         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
1822         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
1823
1824         * bindings/v8/IntrusiveDOMWrapperMap.h:
1825         (WebCore::IntrusiveDOMWrapperMap::set):
1826         * bindings/v8/V8DOMWindowShell.cpp:
1827         (WebCore::initializeV8IfNeeded):
1828         * bindings/v8/V8GCController.cpp:
1829         (WebCore):
1830         (WebCore::gcTree):
1831         (WebCore::V8GCController::newWrapperBorn):
1832         (WebCore::V8GCController::gcPrologue):
1833         (WebCore::V8GCController::minorGCPrologue):
1834         (WebCore::V8GCController::majorGCPrologue):
1835         (WebCore::V8GCController::gcEpilogue):
1836         (WebCore::V8GCController::minorGCEpilogue):
1837         (WebCore::V8GCController::majorGCEpilogue):
1838         * bindings/v8/V8GCController.h:
1839         (WebCore):
1840         (V8GCController):
1841         * bindings/v8/WorkerContextExecutionProxy.cpp:
1842         (WebCore::WorkerContextExecutionProxy::initIsolate):
1843         * dom/Element.cpp:
1844         (WebCore::Element::focus):
1845         * dom/Node.h:
1846         (WebCore::Node::inEden):
1847         (WebCore::Node::setEden):
1848         (Node):
1849
1850 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1851
1852         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
1853         https://bugs.webkit.org/show_bug.cgi?id=101917
1854
1855         Reviewed by Adam Barth.
1856
1857         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
1858         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
1859         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
1860
1861         No tests. No change in behavior.
1862
1863         * bindings/scripts/CodeGeneratorV8.pm:
1864         (GenerateConstructorCallback):
1865         (GenerateEventConstructorCallback):
1866         (GenerateNamedConstructorCallback):
1867         (GenerateToV8Converters):
1868         * bindings/v8/V8DOMWindowShell.cpp:
1869         (WebCore::V8DOMWindowShell::installDOMWindow):
1870         * bindings/v8/V8DOMWrapper.cpp:
1871         (WebCore::V8DOMWrapper::instantiateV8Object):
1872         * bindings/v8/V8DOMWrapper.h:
1873         (V8DOMWrapper):
1874         (WebCore::V8DOMWrapper::createDOMWrapper):
1875         * bindings/v8/WorkerContextExecutionProxy.cpp:
1876         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
1877         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
1878         (WebCore::V8ArrayBuffer::constructorCallback):
1879         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1880         (WebCore::wrapArrayBufferView):
1881         (WebCore::constructWebGLArray):
1882         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
1883         (WebCore::V8DOMFormData::constructorCallback):
1884         * bindings/v8/custom/V8DataViewCustom.cpp:
1885         (WebCore::V8DataView::constructorCallback):
1886         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1887         (WebCore::v8HTMLImageElementConstructorCallback):
1888         * bindings/v8/custom/V8IntentConstructor.cpp:
1889         (WebCore::V8Intent::constructorCallback):
1890         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
1891         (WebCore::V8MessageChannel::constructorCallback):
1892         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1893         (WebCore::V8MutationObserver::constructorCallback):
1894         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
1895         (WebCore::V8WebKitPoint::constructorCallback):
1896         * bindings/v8/custom/V8WebSocketCustom.cpp:
1897         (WebCore::V8WebSocket::constructorCallback):
1898         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1899         (WebCore::V8XMLHttpRequest::constructorCallback):
1900
1901 2012-11-14  Kent Tamura  <tkent@chromium.org>
1902
1903         Support for localization tests of calendar picker
1904         https://bugs.webkit.org/show_bug.cgi?id=102181
1905
1906         Reviewed by Kentaro Hara.
1907
1908         Introduce DateTimeChooserParameters::locale to inform locale to
1909         DateTimeChooser implementations. However we pass defaultLanguage
1910         unless tests calls internals.settings.
1911         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
1912
1913         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
1914
1915         * html/HTMLInputElement.cpp:
1916         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
1917         Set DateTimeChooserParameters::locale up.
1918         * platform/DateTimeChooser.h:
1919         (DateTimeChooserParameters): Add 'locale' member.
1920
1921 2012-11-14  Alexei Filippov  <alph@chromium.org>
1922
1923         Web Inspector: Show total memory in the NMI snapshot header
1924         https://bugs.webkit.org/show_bug.cgi?id=101922
1925
1926         Reviewed by Pavel Feldman.
1927
1928         * inspector/front-end/NativeMemorySnapshotView.js:
1929         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
1930         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
1931
1932 2012-11-14  Jan Keromnes  <janx@linux.com>
1933
1934         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
1935         https://bugs.webkit.org/show_bug.cgi?id=102142
1936
1937         Reviewed by Pavel Feldman.
1938
1939         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
1940
1941         * inspector/front-end/CodeMirrorTextEditor.js:
1942         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
1943
1944 2012-11-13  Kent Tamura  <tkent@chromium.org>
1945
1946         Use menulist-button instead of menulist for date/time input types
1947         https://bugs.webkit.org/show_bug.cgi?id=101886
1948
1949         Reviewed by Hajime Morita.
1950
1951         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
1952         not menulist. We had better apply common one by default.
1953
1954         No new tests. Covered by fast/forms/*/*-appearance-*.html.
1955
1956         * css/html.css:
1957         (input[type="date"]): Switch menulist-button from menulist.
1958         (input[type="datetime"]): Ditto.
1959         (input[type="datetime-local"]): Ditto.
1960         (input[type="month"]): Ditto.
1961         (input[type="time"]): Ditto.
1962         (input[type="week"]): Ditto.
1963         (input::-webkit-date-and-time-value):
1964         Add top, right, bottom margins. The right margin is important when
1965         dir=rtl is specified.
1966         whitespace:pre is needed to align baseline in a case of empty values.
1967         * css/themeChromiumAndroid.css:
1968         Remove redundant style declaration.
1969         * css/themeWin.css:
1970         Remove padding adjustment for date/time input types. It is for
1971         textfields.
1972
1973 2012-11-13  Vincent Scheib  <scheib@chromium.org>
1974
1975         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
1976         https://bugs.webkit.org/show_bug.cgi?id=102107
1977
1978         Reviewed by Adam Barth.
1979
1980         The runtime flag is always true now that the feature is enabled by default in Chromium.
1981
1982         * bindings/generic/RuntimeEnabledFeatures.cpp:
1983         (WebCore):
1984         * bindings/generic/RuntimeEnabledFeatures.h:
1985         (RuntimeEnabledFeatures):
1986         * dom/Document.idl:
1987         * dom/Element.idl:
1988         * dom/MouseEvent.idl:
1989
1990 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1991
1992         Web Inspector: JsDoc-annotate KeyboardShortcuts
1993         https://bugs.webkit.org/show_bug.cgi?id=101301
1994
1995         Reviewed by Pavel Feldman.
1996
1997         JsDoc-annotate KeyboardShortcuts to improve readability.
1998
1999         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
2000         * inspector/front-end/KeyboardShortcut.js: Add annotations.
2001         * inspector/front-end/Panel.js: Make event parameter typed.
2002         * inspector/front-end/inspector.js: Ditto.
2003
2004 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2005
2006         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
2007         https://bugs.webkit.org/show_bug.cgi?id=101907
2008
2009         Reviewed by Pavel Feldman.
2010
2011         Status bar control element should have common interface for
2012         easier management.
2013         In this patch getter/setter for StatusBarButton "disabled" are replaced
2014         with regular functions "enabled"/"setEnabled"; added "setEnabled"
2015         to StatusBarCombo; added new base class StatusBarItem with
2016         method "setEnabled" and member "element".
2017
2018         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
2019         * inspector/front-end/DockController.js: Ditto.
2020         * inspector/front-end/ScriptsPanel.js: Ditto.
2021         * inspector/front-end/TimelinePanel.js: Ditto.
2022         * inspector/front-end/inspector.js: Ditto.
2023         * inspector/front-end/StatusBarButton.js:
2024         (WebInspector.StatusBarItem): Added.
2025         (WebInspector.StatusBarButton): Replaced getter/setter with
2026         regular functions.
2027         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
2028
2029 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2030
2031         Web Inspector: Console: update tab/shift-tab shortcut description.
2032         https://bugs.webkit.org/show_bug.cgi?id=102175
2033
2034         Reviewed by Pavel Feldman.
2035
2036         For "Tab / Shift-Tab" it said "Next/previous suggestion".
2037         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
2038
2039         * English.lproj/localizedStrings.js: Replaced string.
2040         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
2041
2042 2012-11-13  Dana Jansens  <danakj@chromium.org>
2043
2044         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
2045         https://bugs.webkit.org/show_bug.cgi?id=102130
2046
2047         Reviewed by James Robinson.
2048
2049         The current method of setting debug borders on GraphicsLayers requires
2050         every GraphicsLayerClient to set the value on the layer(s) it
2051         represents. This skips the NonCompositedContentHost as well as any
2052         other clients other than RenderLayerBacking - including layers from the
2053         inspector.
2054
2055         Instead, pass the debug border setting directly to the
2056         WebLayerTreeSettings where the compositor can use the flag to enable
2057         borders on all layers globally.
2058
2059         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2060         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
2061         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
2062         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
2063         (WebCore::GraphicsLayerChromium::setupContentsLayer):
2064         * platform/graphics/chromium/GraphicsLayerChromium.h:
2065         (GraphicsLayerChromium):
2066
2067 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2068
2069         Enable calendar picker for input types datetime/datetime-local
2070         https://bugs.webkit.org/show_bug.cgi?id=101889
2071
2072         Reviewed by Kent Tamura.
2073
2074         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
2075         When a user choose a date from calendar picker, year/month/day fields of the input
2076         element are updated and hour/minute/second fields are unchanged.
2077
2078         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
2079                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
2080
2081         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
2082         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2083         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
2084         If the given value is not valid for the element, try to parse it as a date string.
2085         * html/DateTimeInputType.cpp:
2086         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
2087         * html/DateTimeLocalInputType.cpp:
2088         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
2089         * html/shadow/DateTimeEditElement.cpp:
2090         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
2091         (WebCore):
2092         * html/shadow/DateTimeEditElement.h:
2093         (DateTimeEditElement):
2094         * rendering/RenderThemeChromiumCommon.cpp:
2095         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
2096
2097 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
2098
2099         Unreviewed, rolling out r134524.
2100         http://trac.webkit.org/changeset/134524
2101         https://bugs.webkit.org/show_bug.cgi?id=102177
2102
2103         "Chromiium build broken" (Requested by haraken on #webkit).
2104
2105         * WebCore.gyp/WebCore.gyp:
2106         * WebCore.gypi:
2107         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
2108         * rendering/RenderThemeChromiumFontProvider.h: Removed.
2109         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
2110         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
2111         * rendering/RenderThemeChromiumSkia.cpp:
2112         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
2113         (WebCore::RenderThemeChromiumSkia::systemFont):
2114         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
2115         * rendering/RenderThemeChromiumSkia.h:
2116         (RenderThemeChromiumSkia):
2117         * rendering/RenderThemeChromiumWin.cpp:
2118         (WebCore):
2119         (WebCore::getNonClientMetrics):
2120         (WebCore::systemFontSize):
2121         (WebCore::pointsToPixels):
2122         (WebCore::RenderThemeChromiumWin::systemFont):
2123         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
2124         * rendering/RenderThemeChromiumWin.h:
2125         (RenderThemeChromiumWin):
2126
2127 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
2128
2129         Fix compile warning [-Wsign-compare]
2130         https://bugs.webkit.org/show_bug.cgi?id=101458
2131
2132         Reviewed by Alexey Proskuryakov.
2133
2134         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
2135         However, it leads -Wsign-compare compile warning.
2136         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
2137
2138         * platform/posix/SharedBufferPOSIX.cpp:
2139         (WebCore::SharedBuffer::createWithContentsOfFile):
2140
2141 2012-11-13  Keishi Hattori  <keishi@webkit.org>
2142
2143         Enable datalist UI for input types week and month
2144         https://bugs.webkit.org/show_bug.cgi?id=102041
2145
2146         Reviewed by Kent Tamura.
2147
2148         Enabling datalist UI for input types week and month.
2149
2150         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
2151
2152         * rendering/RenderThemeChromiumCommon.cpp:
2153         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
2154
2155 2012-11-13  Eberhard Graether  <egraether@google.com>
2156
2157         checkbox to toggle FPS counter in the inspector's settings
2158         https://bugs.webkit.org/show_bug.cgi?id=99660
2159
2160         Reviewed by Pavel Feldman.
2161
2162         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
2163
2164         No new tests.
2165
2166         * English.lproj/localizedStrings.js:
2167         * inspector/Inspector.json:
2168         * inspector/InspectorClient.h:
2169         (WebCore::InspectorClient::canShowFPSCounter):
2170         (WebCore::InspectorClient::setShowFPSCounter):
2171         (InspectorClient):
2172         * inspector/InspectorPageAgent.cpp:
2173         (PageAgentState):
2174         (WebCore::InspectorPageAgent::enable):
2175         (WebCore::InspectorPageAgent::disable):
2176         (WebCore::InspectorPageAgent::canShowFPSCounter):
2177         (WebCore):
2178         (WebCore::InspectorPageAgent::setShowFPSCounter):
2179         * inspector/InspectorPageAgent.h:
2180         * inspector/front-end/Settings.js:
2181         * inspector/front-end/SettingsScreen.js:
2182         (WebInspector.GenericSettingsTab):
2183         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
2184         * inspector/front-end/inspector.js:
2185         (WebInspector.doLoadedDone):
2186
2187 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
2188
2189         Collect necessary features for SelectRuleFeatureSet
2190         https://bugs.webkit.org/show_bug.cgi?id=102160
2191
2192         Reviewed by Dimitri Glazkov.
2193
2194         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
2195         distribution, we would like to collect RuleFeature from select attributes.
2196
2197         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
2198         indeterminate, link, target, and visited. We collect them in this patch.
2199
2200         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
2201
2202         * html/shadow/SelectRuleFeatureSet.cpp:
2203         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
2204         (WebCore::SelectRuleFeatureSet::add):
2205         (WebCore::SelectRuleFeatureSet::clear):
2206         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
2207         * html/shadow/SelectRuleFeatureSet.h:
2208         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
2209         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
2210         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
2211         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
2212         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
2213         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
2214         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
2215         (SelectRuleFeatureSet):
2216         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
2217         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
2218         * testing/Internals.cpp:
2219         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
2220         (WebCore):
2221         * testing/Internals.h:
2222         (Internals):
2223         * testing/Internals.idl:
2224
2225 2012-11-13  Andreas Kling  <kling@webkit.org>
2226
2227         Move inline style logic from ElementAttributeData to StyledElement.
2228         <http://webkit.org/b/102120>
2229
2230         Reviewed by Antti Koivisto.
2231
2232         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
2233         No difference in behavior, just making ElementAttributeData dumber.
2234
2235         * css/StylePropertySet.cpp:
2236         * css/StylePropertySet.h:
2237         (WebCore::StylePropertySet::hasCSSOMWrapper):
2238         (WebCore::StylePropertySet::cssStyleDeclaration):
2239
2240             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
2241             to instantiate a CSSOM wrapper unnecessarily.
2242
2243         * dom/StyledElement.h:
2244         (WebCore::StyledElement::inlineStyle):
2245         * dom/ElementAttributeData.cpp:
2246         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
2247         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
2248         (WebCore::ElementAttributeData::reportMemoryUsage):
2249         * dom/ElementAttributeData.h:
2250         (WebCore::ElementAttributeData::inlineStyle):
2251         (ElementAttributeData):
2252
2253             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
2254
2255         * dom/StyledElement.cpp:
2256         (WebCore::StyledElement::~StyledElement):
2257
2258             Detach the CSSOM wrapper from the inline style if there is one.
2259
2260         (WebCore::StyledElement::ensureMutableInlineStyle):
2261         (WebCore::StyledElement::style):
2262
2263             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
2264             actually does. Update call sites accordingly.
2265
2266         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
2267
2268             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
2269
2270         (WebCore::StyledElement::styleAttributeChanged):
2271
2272             Do the work to parse/update/replace the inline style attribute here instead of
2273             in an ElementAttributeData method.
2274
2275         (WebCore::StyledElement::setInlineStyleProperty):
2276         (WebCore::StyledElement::removeInlineStyleProperty):
2277         (WebCore::StyledElement::removeAllInlineStyleProperties):
2278         * editing/ApplyStyleCommand.cpp:
2279         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
2280         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
2281         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
2282         * editing/ReplaceSelectionCommand.cpp:
2283         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
2284         * html/canvas/CanvasStyle.cpp:
2285         (WebCore::currentColor):
2286
2287             s/ensureInlineStyle/ensureMutableInlineStyle/
2288
2289 2012-11-13  Li Yin  <li.yin@intel.com>
2290
2291         fast/forms/file/input-file-write-files.html should cover correct setting value
2292         https://bugs.webkit.org/show_bug.cgi?id=100085
2293
2294         Reviewed by Kentaro Hara.
2295
2296         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
2297         behavior for those may be important in idl.
2298
2299         No new tests, because fast/forms/file/input-file-value.html has covered it.
2300
2301         * html/HTMLInputElement.idl:
2302
2303 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
2304
2305         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
2306         https://bugs.webkit.org/show_bug.cgi?id=102061
2307
2308         Reviewed by Gyuyoung Kim.
2309
2310         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
2311
2312         * platform/network/efl/NetworkStateNotifierEfl.cpp:
2313         (WebCore::readSocketCallback):
2314
2315 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
2316
2317         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
2318         https://bugs.webkit.org/show_bug.cgi?id=101947
2319
2320         Reviewed by Simon Fraser.
2321
2322         When a scrolling contents graphics layer is created or destroyed, the
2323         associated graphics layer is marked as needing display because some of
2324         the painted content may have migrated between the primary graphics layer
2325         and the scrolling layer.
2326
2327         This causes a problem when the RenderLayerBacking is being destroyed,
2328         because setNeedsDisplay() needs to check from the compositor whether to
2329         track repaints or not. If the RenderLayerBacking is being destroyed, the
2330         value returned by compositor() is garbage and this causes a crash.
2331
2332         This patch fixes the problem by making RenderLayer::compositor() return a null
2333         pointer when the renderer no longer has a view.
2334
2335         Covered by existing layout tests in compositing/overflow/.
2336
2337         * rendering/RenderLayer.cpp:
2338         (WebCore::RenderLayer::compositor):
2339
2340 2012-11-13  Erik Arvidsson  <arv@chromium.org>
2341
2342         Update DOMException name: InvalidCharacterError
2343         https://bugs.webkit.org/show_bug.cgi?id=102128
2344
2345         Reviewed by Darin Adler.
2346
2347         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
2348
2349         Updated existing tests.
2350
2351         * dom/DOMCoreException.cpp:
2352
2353 2012-11-13  Joshua Bell  <jsbell@chromium.org>
2354
2355         IndexedDB: Run multiple tasks per transaction tick
2356         https://bugs.webkit.org/show_bug.cgi?id=97738
2357
2358         Reviewed by Tony Chang.
2359
2360         Process multiple tasks from the pending queue(s) when the timer fires. The
2361         task may initiate new tasks that change which queue is active (e.g. indexing
2362         operations) so the loop must re-check each tick which queue to use.
2363
2364         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
2365         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
2366
2367         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
2368
2369         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
2370         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
2371         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
2372
2373 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
2374
2375         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
2376         https://bugs.webkit.org/show_bug.cgi?id=102012
2377
2378         Reviewed by Ojan Vafai.
2379
2380         Previously if you modified the subtree that was being removed from a
2381         removeChild from inside an unload handler on an <iframe> inside the
2382         subtree you'd get an exception which is wrong. Instead we just need to
2383         disable all frame loading there.
2384
2385         This works because either the subtree will be removed and the frame never
2386         loading doesn't matter, or some section of the subtree that contains the
2387         frame will be moved to another part of the document which will cause the
2388         frame to load when it's inserted there.
2389
2390         I also added a check for <object> elements. It doesn't seem this is actually
2391         reachable in the existing code, but I'm not entirely sure since the frame
2392         loading and object/plugin handling is very confusing.
2393
2394         A better fix could be to repeatedly walk the subtree until all frames
2395         were disconnected or some iteration limit was hit and then force all leftover
2396         subframes to disconnect without firing unload handlers but this is such an
2397         edge case I don't think the complexity is necessary.
2398
2399         Test: fast/frames/modifications-in-subtree-unload.html
2400
2401         * dom/ContainerNodeAlgorithms.h:
2402         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
2403         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
2404         (ChildFrameDisconnector):
2405         (WebCore::ChildFrameDisconnector::disconnect):
2406         * dom/Node.cpp:
2407         (WebCore::checkAcceptChild): Removed exception.
2408         * html/HTMLFrameElementBase.cpp:
2409         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
2410         * html/HTMLFrameOwnerElement.h:
2411         (SubframeLoadingDisabler):
2412         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
2413         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
2414         (WebCore::SubframeLoadingDisabler::canLoadFrame):
2415           Returns true if frames can be loaded in the subtree.
2416         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
2417         * html/HTMLObjectElement.cpp:
2418         (WebCore::HTMLObjectElement::updateWidget):
2419           Check canLoadFrame(). I think this case is impossible, but it's better
2420           to be safe than sorry later.
2421
2422 2012-11-13  Joshua Bell  <jsbell@chromium.org>
2423
2424         [V8] Add missing ENABLE(SVG) test in header
2425         https://bugs.webkit.org/show_bug.cgi?id=102143
2426
2427         Reviewed by Kentaro Hara.
2428
2429         Need to wrap the #include of a header that's only conditionally generated.
2430
2431         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
2432
2433         * bindings/v8/custom/V8ElementCustom.cpp:
2434
2435 2012-11-13  Jon Lee  <jonlee@apple.com>
2436
2437         Automatically run small plugins
2438         https://bugs.webkit.org/show_bug.cgi?id=102148
2439         <rdar://problem/12695560>
2440
2441         Reviewed by Darin Adler.
2442
2443         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
2444         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
2445         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
2446         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
2447         display state to Playing. Assuming we will always layout before first paint, changing the state here
2448         should be safe.
2449         * rendering/RenderSnapshottedPlugIn.h:
2450
2451 2012-11-13  Kenneth Russell  <kbr@google.com>
2452
2453         Notify embedder of lost contexts and allow overriding of WebGL support
2454         https://bugs.webkit.org/show_bug.cgi?id=101826
2455
2456         Reviewed by Adam Barth.
2457
2458         Add hooks notifying the embedder when OpenGL contexts are lost and
2459         allowing overriding of WebGL support on a per-frame basis.
2460
2461         No tests yet; don't know how to test this solely within WebKit.
2462         Currently developing tests in the Chromium port exercising the
2463         notifications end-to-end. Once those are in place, I'm prepared to
2464         investigate adding tests for all ports.
2465
2466         * html/canvas/WebGLRenderingContext.cpp:
2467         (WebCore):
2468         (WebCore::WebGLRenderingContext::create):
2469           Check whether embedder vetoes creation of new WebGL contexts.
2470         (WebCore::WebGLRenderingContext::loseContextImpl):
2471           Notify embedder that context was lost.
2472         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2473           Check whether embedder vetoes restoration of existing WebGL contexts.
2474         * loader/FrameLoaderClient.h:
2475         (FrameLoaderClient):
2476         (WebCore::FrameLoaderClient::allowWebGL):
2477         (WebCore::FrameLoaderClient::didLoseWebGLContext):
2478           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
2479
2480 2012-11-13  Scott Violet  <sky@chromium.org>
2481
2482         [Chromium] Refactor theme font lookup into a factory
2483         https://bugs.webkit.org/show_bug.cgi?id=101949
2484
2485         Reviewed by Tony Chang.
2486
2487         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
2488
2489         No new tests. Refactoring only.
2490
2491         * WebCore.gyp/WebCore.gyp:
2492         * WebCore.gypi:
2493         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
2494         (WebCore):
2495         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
2496         * rendering/RenderThemeChromiumFontProvider.h: Added.
2497         (WTF):
2498         (WebCore):
2499         (RenderThemeChromiumFontProvider): This is the font related methods.
2500         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
2501         (WebCore):
2502         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
2503         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
2504         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
2505         (WebCore):
2506         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
2507         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
2508         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
2509         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
2510         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
2511         * rendering/RenderThemeChromiumSkia.cpp:
2512         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
2513         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
2514         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
2515         * rendering/RenderThemeChromiumSkia.h:
2516         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
2517         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
2518         (WebCore):
2519         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
2520         (RenderThemeChromiumWin):
2521
2522 2012-11-13  Alec Flett  <alecflett@chromium.org>
2523
2524         Add DOMRequestState to maintain world/ScriptExecutionContext state
2525         https://bugs.webkit.org/show_bug.cgi?id=102102
2526
2527         Reviewed by Adam Barth.
2528
2529         Introduce DOMRequestState, and convert IndexedDB over.
2530
2531         No new tests, this is an abstraction layer for existing code.
2532
2533         * Modules/indexeddb/IDBRequest.cpp:
2534         (WebCore::IDBRequest::IDBRequest):
2535         (WebCore::IDBRequest::onSuccess):
2536         (WebCore::IDBRequest::dispatchEvent):
2537         * Modules/indexeddb/IDBRequest.h:
2538         (IDBRequest):
2539         * WebCore.gypi:
2540         * bindings/v8/DOMRequestState.h: Added.
2541         (WebCore):
2542         (DOMRequestState):
2543         (WebCore::DOMRequestState::DOMRequestState):
2544         (Scope):
2545         (WebCore::DOMRequestState::Scope::Scope):
2546         (WebCore::DOMRequestState::scope):
2547
2548 2012-11-13  Robert Sesek  <rsesek@chromium.org>
2549
2550         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
2551         https://bugs.webkit.org/show_bug.cgi?id=101634
2552
2553         Reviewed by Adam Barth.
2554
2555         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
2556         into RenderThemeMacShared.
2557
2558         No new tests, just refactoring.
2559
2560         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
2561         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
2562         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
2563         * rendering/RenderThemeChromiumMac.h:
2564         * rendering/RenderThemeChromiumMac.mm:
2565         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
2566         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
2567         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
2568         * rendering/RenderThemeMac.h:
2569         (RenderThemeMac):
2570         * rendering/RenderThemeMac.mm:
2571         (WebCore):
2572         (WebCore::RenderTheme::themeForPage):
2573         (WebCore::RenderThemeMac::create):
2574         (WebCore::RenderThemeMac::RenderThemeMac):
2575         (WebCore::RenderThemeMac::~RenderThemeMac):
2576         (WebCore::RenderThemeMac::documentViewFor):
2577         (WebCore::mediaControllerTheme):
2578         (WebCore::RenderThemeMac::paintMediaSliderTrack):
2579         (WebCore::RenderThemeMac::paintMediaRewindButton):
2580         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
2581         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
2582         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
2583         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
2584         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
2585         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
2586         (WebCore):
2587         (RenderThemeMacShared):
2588         (WebCore::RenderThemeMacShared::supportsControlTints):
2589         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
2590         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
2591         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
2592         (WebCore::RenderThemeMacShared::updateActiveState):
2593         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
2594         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
2595         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
2596         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
2597         (WebCore):
2598         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
2599         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
2600         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
2601         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
2602         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
2603         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
2604         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
2605         (WebCore::RenderThemeMacShared::platformFocusRingColor):
2606         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
2607         (WebCore::toFontWeight):
2608         (WebCore::RenderThemeMacShared::systemFont):
2609         (WebCore::convertNSColorToColor):
2610         (WebCore::menuBackgroundColor):
2611         (WebCore::RenderThemeMacShared::platformColorsDidChange):
2612         (WebCore::RenderThemeMacShared::systemColor):
2613         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
2614         (WebCore::RenderThemeMacShared::isControlStyled):
2615         (WebCore::RenderThemeMacShared::adjustRepaintRect):
2616         (WebCore::RenderThemeMacShared::inflateRect):
2617         (WebCore::RenderThemeMacShared::convertToPaintingRect):
2618         (WebCore::RenderThemeMacShared::updateCheckedState):
2619         (WebCore::RenderThemeMacShared::updateEnabledState):
2620         (WebCore::RenderThemeMacShared::updateFocusedState):
2621         (WebCore::RenderThemeMacShared::updatePressedState):
2622         (WebCore::RenderThemeMacShared::controlSupportsTints):
2623         (WebCore::RenderThemeMacShared::controlSizeForFont):
2624         (WebCore::RenderThemeMacShared::setControlSize):
2625         (WebCore::RenderThemeMacShared::sizeForFont):
2626         (WebCore::RenderThemeMacShared::sizeForSystemFont):
2627         (WebCore::RenderThemeMacShared::setSizeFromFont):
2628         (WebCore::RenderThemeMacShared::setFontFromControlSize):
2629         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
2630         (WebCore::RenderThemeMacShared::paintTextField):
2631         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
2632         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
2633         (WebCore::RenderThemeMacShared::paintTextArea):
2634         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
2635         (WebCore::RenderThemeMacShared::popupButtonMargins):
2636         (WebCore::RenderThemeMacShared::popupButtonSizes):
2637         (WebCore::RenderThemeMacShared::popupButtonPadding):
2638         (WebCore::RenderThemeMacShared::paintMenuList):
2639         (WebCore::RenderThemeMacShared::meterSizeForBounds):
2640         (WebCore::RenderThemeMacShared::paintMeter):
2641         (WebCore::RenderThemeMacShared::supportsMeter):
2642         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
2643         (WebCore::RenderThemeMacShared::levelIndicatorFor):
2644         (WebCore::RenderThemeMacShared::progressBarSizes):
2645         (WebCore::RenderThemeMacShared::progressBarMargins):
2646         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
2647         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
2648         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
2649         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
2650         (WebCore::RenderThemeMacShared::paintProgressBar):
2651         (WebCore::TopGradientInterpolate):
2652         (WebCore::BottomGradientInterpolate):
2653         (WebCore::MainGradientInterpolate):
2654         (WebCore::TrackGradientInterpolate):
2655         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
2656         (WebCore::RenderThemeMacShared::paintMenuListButton):
2657         (WebCore::menuListButtonSizes):
2658         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
2659         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
2660         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
2661         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
2662         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
2663         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
2664         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
2665         (WebCore::RenderThemeMacShared::menuListSizes):
2666         (WebCore::RenderThemeMacShared::minimumMenuListSize):
2667         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
2668         (WebCore::RenderThemeMacShared::paintSliderTrack):
2669         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
2670         (WebCore::RenderThemeMacShared::paintSliderThumb):
2671         (WebCore::RenderThemeMacShared::paintSearchField):
2672         (WebCore::RenderThemeMacShared::setSearchCellState):
2673         (WebCore::RenderThemeMacShared::searchFieldSizes):
2674         (WebCore::RenderThemeMacShared::setSearchFieldSize):
2675         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
2676         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
2677         (WebCore::RenderThemeMacShared::cancelButtonSizes):
2678         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
2679         (WebCore::RenderThemeMacShared::resultsButtonSizes):
2680         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
2681         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
2682         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
2683         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
2684         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
2685         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
2686         (WebCore::RenderThemeMacShared::sliderTickSize):
2687         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
2688         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
2689         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
2690         (WebCore::RenderThemeMacShared::popupButton):
2691         (WebCore::RenderThemeMacShared::search):
2692         (WebCore::RenderThemeMacShared::searchMenuTemplate):
2693         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
2694         (WebCore::RenderThemeMacShared::sliderThumbVertical):
2695         (WebCore::RenderThemeMacShared::textField):
2696         (WebCore::RenderThemeMacShared::fileListNameForWidth):
2697         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
2698
2699 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
2700
2701         CSS @charset parsing is too loose, doesn't match other browsers
2702         https://bugs.webkit.org/show_bug.cgi?id=101527
2703
2704         Reviewed by Alexey Proskuryakov.
2705
2706         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
2707         IE and FF have changed to be strict about @charset parsing,
2708         as the CSS 2.1 spec requires.
2709         Since @charset use is very uncommon anyway,
2710         we should match the new behavior and the spec for platform consistency.
2711
2712         Test: fast/encoding/css-charset-evil/css-charset-evil.html
2713
2714         * loader/TextResourceDecoder.cpp:
2715         (WebCore::bytesEqual):
2716         (WebCore::TextResourceDecoder::checkForCSSCharset):
2717
2718 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
2719
2720         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
2721         https://bugs.webkit.org/show_bug.cgi?id=101569
2722
2723         Reviewed by Alexey Proskuryakov.
2724
2725         Replace unpaired surrogates with replacing character (U+FFFD) when
2726         encoding text messages and close reasons. This change is aimed at
2727         following the changes on the WebSocket API specification.
2728
2729         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
2730
2731         * Modules/websockets/WebSocket.cpp:
2732         (WebCore::WebSocket::close):
2733         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
2734         text message. Remove invalid utf-8 check.
2735         * Modules/websockets/WebSocketChannel.cpp:
2736         (WebCore::WebSocketChannel::send):
2737         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
2738         close reason. Remove invalid utf-8 check.
2739
2740 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
2741
2742         Make HTMLLegendElement.form behave according to specification
2743         https://bugs.webkit.org/show_bug.cgi?id=101044
2744
2745         Reviewed by Kent Tamura.
2746
2747         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
2748         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
2749         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
2750         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
2751
2752         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
2753         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
2754         return the same value as the parent fieldset's form attribute.
2755
2756         Test: fast/forms/legend/legend-form.html
2757
2758         * html/HTMLLegendElement.cpp:
2759         (WebCore):
2760         (WebCore::HTMLLegendElement::virtualForm):
2761         * html/HTMLLegendElement.h:
2762         (HTMLLegendElement):
2763
2764 2012-11-13  Mark Lam  <mark.lam@apple.com>
2765
2766         Make an assertion in JSEventListener::jsFunction() more useful.
2767         https://bugs.webkit.org/show_bug.cgi?id=101985.
2768
2769         Reviewed by Geoffrey Garen.
2770
2771         The assertion was weakened in r134495. This strengthens it again.
2772
2773         No new tests.
2774
2775         * bindings/js/JSEventListener.h:
2776         (WebCore::JSEventListener::jsFunction):
2777
2778 2012-11-13  Dean Jackson  <dino@apple.com>
2779
2780         Support list of tracks in caption media controls
2781         https://bugs.webkit.org/show_bug.cgi?id=101669
2782
2783         Reviewed by Eric Carlson.
2784
2785         Attempt four of commit. The first two times caused build failures on Chromium. The third time
2786         crashed the Windows test bot. It's also been rebased since r134488.
2787
2788         Add some new elements to the media control shadow DOM that display the list of available
2789         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
2790         where it is given a very basic design. At the moment only the list of available tracks
2791         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
2792
2793         No new tests - this doesn't expose any testable surface.
2794
2795         * css/mediaControls.css: Added default rules that hide the new elements.
2796         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
2797         * html/shadow/MediaControlElements.cpp:
2798         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
2799         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
2800         (WebCore::MediaControlClosedCaptionsContainerElement::create):
2801         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
2802         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
2803         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
2804         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
2805         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
2806         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
2807         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
2808         * html/shadow/MediaControlElements.h:
2809         (MediaControlElement):
2810         (MediaControlToggleClosedCaptionsButtonElement):
2811         (MediaControlClosedCaptionsContainerElement):
2812         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
2813         * html/shadow/MediaControlsApple.cpp:
2814         (WebCore::MediaControlsApple::MediaControlsApple):
2815         (WebCore::MediaControlsApple::create): New track container and list elements created.
2816         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
2817         (WebCore::MediaControlsApple::hide):
2818         (WebCore::MediaControlsApple::makeTransparent):
2819         (WebCore::MediaControlsApple::reset):
2820         (WebCore::MediaControlsApple::reportedError):
2821         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
2822         (WebCore):
2823         * html/shadow/MediaControlsApple.h:
2824         (MediaControlsApple):
2825         * html/shadow/MediaControlsChromium.cpp:
2826         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
2827         * html/shadow/MediaControls.h:
2828         (MediaControls):
2829         * platform/Language.cpp:
2830         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
2831         * platform/Language.h:
2832         (WebCore):
2833         * rendering/RenderMediaControls.cpp:
2834         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
2835         * rendering/RenderMediaControlsChromium.cpp:
2836         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
2837
2838 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
2839
2840         Unreviewed, rolling out r134377.
2841         http://trac.webkit.org/changeset/134377
2842         https://bugs.webkit.org/show_bug.cgi?id=101133
2843
2844         Caused a mysterious Android Clang build failure, needs
2845         investigation before landing again.
2846
2847         * css/html.css:
2848         (input::-webkit-textfield-decoration-container):
2849         * html/TextFieldInputType.cpp:
2850         (WebCore::TextFieldInputType::attach):
2851
2852 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
2853
2854         Unreviewed, rolling out r134482.
2855         http://trac.webkit.org/changeset/134482
2856         https://bugs.webkit.org/show_bug.cgi?id=102140
2857
2858         The patch causes fast/regions/moved-content-node-crash.html to
2859         crash in Debug mode due to ASSERTION. (Requested by abucur on
2860         #webkit).
2861
2862         * rendering/InlineFlowBox.cpp:
2863         (SameSizeAsInlineFlowBox):
2864         * rendering/InlineFlowBox.h:
2865         (WebCore::InlineFlowBox::InlineFlowBox):
2866         (InlineFlowBox):
2867         * rendering/RenderBlock.cpp:
2868         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
2869         * rendering/RenderBlockLineLayout.cpp:
2870         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
2871         (WebCore::RenderBlock::linkToEndLineIfNeeded):
2872         (WebCore::RenderBlock::determineStartPosition):
2873         * rendering/RootInlineBox.cpp:
2874         (WebCore::RootInlineBox::RootInlineBox):
2875         * rendering/RootInlineBox.h:
2876         (WebCore):
2877         (WebCore::RootInlineBox::paginationStrut):
2878         (WebCore::RootInlineBox::setPaginationStrut):
2879         (WebCore::RootInlineBox::isFirstAfterPageBreak):
2880         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
2881         (WebCore::RootInlineBox::paginatedLineWidth):
2882         (WebCore::RootInlineBox::setPaginatedLineWidth):
2883         (RootInlineBox):
2884
2885 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
2886
2887         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
2888         https://bugs.webkit.org/show_bug.cgi?id=102108
2889
2890         Reviewed by Adam Barth.
2891
2892         No new tests. Fix clang build break.
2893
2894         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
2895
2896 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
2897
2898         AX: MathML types need to be semantically identified in AX tree
2899         https://bugs.webkit.org/show_bug.cgi?id=101263
2900
2901         Reviewed by Beth Dakin.
2902
2903         Semantically identify various MathML elements within the AX tree. This will allow
2904         screen readers to identify math types so that equations can be output more accurately.
2905
2906         Test: platform/mac/accessibility/mathml-elements.html
2907
2908         * accessibility/AccessibilityObject.h:
2909         (AccessibilityObject):
2910         (WebCore::AccessibilityObject::isMathElement):
2911         (WebCore::AccessibilityObject::isMathFraction):
2912         (WebCore::AccessibilityObject::isMathFenced):
2913         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
2914         (WebCore::AccessibilityObject::isMathRow):
2915         (WebCore::AccessibilityObject::isMathUnderOver):
2916         (WebCore::AccessibilityObject::isMathRoot):
2917         (WebCore::AccessibilityObject::isMathSquareRoot):
2918         (WebCore::AccessibilityObject::isMathText):
2919         (WebCore::AccessibilityObject::isMathNumber):
2920         (WebCore::AccessibilityObject::isMathOperator):
2921         (WebCore::AccessibilityObject::isMathFenceOperator):
2922         (WebCore::AccessibilityObject::isMathSeparatorOperator):
2923         (WebCore::AccessibilityObject::isMathIdentifier):
2924         (WebCore::AccessibilityObject::isMathTable):
2925         (WebCore::AccessibilityObject::isMathTableRow):
2926         (WebCore::AccessibilityObject::isMathTableCell):
2927         (WebCore::AccessibilityObject::mathRadicandObject):
2928         (WebCore::AccessibilityObject::mathRootIndexObject):
2929         (WebCore::AccessibilityObject::mathUnderObject):
2930         (WebCore::AccessibilityObject::mathOverObject):
2931         (WebCore::AccessibilityObject::mathNumeratorObject):
2932         (WebCore::AccessibilityObject::mathDenominatorObject):
2933         (WebCore::AccessibilityObject::mathBaseObject):
2934         (WebCore::AccessibilityObject::mathSubscriptObject):
2935         (WebCore::AccessibilityObject::mathSuperscriptObject):
2936         (WebCore::AccessibilityObject::mathFencedOpenString):
2937         (WebCore::AccessibilityObject::mathFencedCloseString):
2938         * accessibility/AccessibilityRenderObject.cpp:
2939         (WebCore::startOfContinuations):
2940             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
2941         (WebCore::AccessibilityRenderObject::textUnderElement):
2942             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
2943         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2944             Handle ignored cases for math elements
2945         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2946         (WebCore::AccessibilityRenderObject::isMathElement):
2947         (WebCore::AccessibilityRenderObject::isMathFraction):
2948         (WebCore::AccessibilityRenderObject::isMathFenced):
2949         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
2950         (WebCore::AccessibilityRenderObject::isMathRow):
2951         (WebCore::AccessibilityRenderObject::isMathUnderOver):
2952         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
2953         (WebCore::AccessibilityRenderObject::isMathRoot):
2954         (WebCore::AccessibilityRenderObject::isMathOperator):
2955         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
2956         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
2957         (WebCore::AccessibilityRenderObject::isMathText):
2958         (WebCore::AccessibilityRenderObject::isMathNumber):
2959         (WebCore::AccessibilityRenderObject::isMathIdentifier):
2960         (WebCore::AccessibilityRenderObject::isMathTable):
2961         (WebCore::AccessibilityRenderObject::isMathTableRow):
2962         (WebCore::AccessibilityRenderObject::isMathTableCell):
2963         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
2964             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
2965         (WebCore::AccessibilityRenderObject::mathRadicandObject):
2966         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
2967         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
2968         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
2969         (WebCore::AccessibilityRenderObject::mathUnderObject):
2970         (WebCore::AccessibilityRenderObject::mathOverObject):
2971         (WebCore::AccessibilityRenderObject::mathBaseObject):
2972         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
2973         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
2974         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
2975         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
2976         * accessibility/AccessibilityRenderObject.h:
2977         (AccessibilityRenderObject):
2978         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2979         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
2980         (createAccessibilityRoleMap):
2981         (-[WebAccessibilityObjectWrapper subrole]):
2982         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2983         * rendering/mathml/RenderMathMLBlock.cpp:
2984         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
2985         * rendering/mathml/RenderMathMLBlock.h:
2986         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
2987         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
2988         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
2989         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
2990         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
2991         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
2992         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
2993         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
2994             Add ability to identify anonymous render blocks as items that AX should ignore.
2995         (RenderMathMLBlock):
2996         * rendering/mathml/RenderMathMLFenced.cpp:
2997         (WebCore::RenderMathMLFenced::createMathMLOperator):
2998             Identify which kind of math operator is being created on the fly (Fence or Separator)
2999         (WebCore::RenderMathMLFenced::makeFences):
3000         (WebCore::RenderMathMLFenced::addChild):
3001         * rendering/mathml/RenderMathMLFenced.h:
3002         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
3003         (RenderMathMLFenced):
3004         * rendering/mathml/RenderMathMLFraction.h:
3005         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
3006         * rendering/mathml/RenderMathMLOperator.cpp:
3007         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
3008         (WebCore::RenderMathMLOperator::updateFromElement):
3009         (WebCore::RenderMathMLOperator::createGlyph):
3010              Mark anonymous render blocks as AX ignored.
3011         * rendering/mathml/RenderMathMLOperator.h:
3012         (WebCore::RenderMathMLOperator::setOperatorType):
3013         (WebCore::RenderMathMLOperator::operatorType):
3014         (RenderMathMLOperator):
3015         * rendering/mathml/RenderMathMLRoot.h:
3016         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
3017         * rendering/mathml/RenderMathMLSquareRoot.h:
3018         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
3019         * rendering/mathml/RenderMathMLSubSup.h:
3020         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
3021         * rendering/mathml/RenderMathMLUnderOver.h:
3022         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
3023         
3024 2012-11-13  Mark Lam  <mark.lam@apple.com>
3025
3026         JSEventListener should not access m_jsFunction when its wrapper is gone.
3027         https://bugs.webkit.org/show_bug.cgi?id=101985.
3028
3029         Reviewed by Geoffrey Garen.
3030
3031         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
3032
3033         No new tests.
3034
3035         * bindings/js/JSEventListener.cpp:
3036         (WebCore::JSEventListener::initializeJSFunction):
3037         - Removed a now invalid assertion. m_wrapper is expected to have a
3038           valid non-zero value when jsFunction is valid. However, in the case
3039           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
3040           initially 0 when m_jsFunction has not been realized yet. When
3041           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
3042           it will set m_wrapper to an appropriate wrapper object.
3043
3044           For this reason, JSEventListener::jsFunction() cannot do the null
3045           check on m_wrapper until after the call to initializeJSFunction.
3046
3047           This, in turns, means that in the case of the non-lazy
3048           JSEventListener, initializeJSFunction() will also be called, and
3049           if the GC has collected the m_wrapper but the JSEventListener has
3050           not been removed yet, it is possible to see a null m_wrapper while
3051           m_jsFunction contains a non-zero stale value.
3052
3053           Hence, this assertion of (m_wrapper || !m_jsFunction) in
3054           JSEventListener::initializeJSFunction() is not always true and
3055           should be removed.
3056
3057         (WebCore::JSEventListener::visitJSFunction):
3058         (WebCore::JSEventListener::operator==):
3059         * bindings/js/JSEventListener.h:
3060         (WebCore::JSEventListener::jsFunction):
3061
3062 2012-11-13  Adam Barth  <abarth@webkit.org>
3063
3064         [V8] instantiateV8Object should encapulate the tricky creationContext logic
3065         https://bugs.webkit.org/show_bug.cgi?id=102117
3066
3067         Reviewed by Eric Seidel.
3068
3069         The logic around creationContext is tricky. Rather than putting the
3070         logic in the code generator, we can centralize the logic in
3071         instantiateV8Object.
3072
3073         This patch shouldn't have any behavior change.
3074
3075         * bindings/scripts/CodeGeneratorV8.pm:
3076         (GenerateToV8Converters):
3077         * bindings/v8/V8DOMWrapper.cpp:
3078         (V8WrapperInstantiationScope):
3079         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
3080         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
3081         (WebCore::V8WrapperInstantiationScope::context):
3082         (WebCore):
3083         (WebCore::V8DOMWrapper::instantiateV8Object):
3084         * bindings/v8/V8DOMWrapper.h:
3085         (V8DOMWrapper):
3086
3087 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
3088
3089         Clean up the inheritance tree under the MediaControls Class.
3090         https://bugs.webkit.org/show_bug.cgi?id=88871
3091
3092         Reviewed by Eric Carlson.
3093
3094         This patch removes code duplication between the Chromium and Safari
3095         media controls shadow DOMs.
3096         This is achieved by pulling common functions that are identical (or
3097         almost identical) between the different platforms into the base class.
3098         The derived classes are renamed based on their platform:
3099         - MediaControlRootElement                to MediaControlsApple.
3100         - MediaControlRootElementChromium        to MediaControlsChromium.
3101         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
3102         MediaControls is now no longer an abstract base class, but its "create"
3103         function is only implemented in the port-specific header file, so it's
3104         on purpose incomplete in the MediaControls.cpp file.
3105
3106         No new tests because this is refactoring work only.
3107
3108         * CMakeLists.txt:
3109           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
3110         * GNUmakefile.list.am:
3111           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
3112         * Target.pri:
3113           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
3114         * WebCore.gypi:
3115           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
3116         * WebCore.order:
3117           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
3118         * WebCore.vcproj/WebCore.vcproj:
3119           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
3120         * WebCore.xcodeproj/project.pbxproj:
3121           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
3122         * html/shadow/MediaControlElements.cpp:
3123         (WebCore::MediaControlTimelineElement::defaultEventHandler):
3124           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
3125           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
3126         * html/shadow/MediaControls.cpp:
3127         (WebCore::MediaControls::MediaControls):
3128           Added initialization for media elements that all platform controls share.
3129         (WebCore):
3130           Removed include files that are already included in header file.
3131         (WebCore::MediaControls::setMediaController):
3132           Added controller assignment for media elements that all platform controls share.
3133         (WebCore::MediaControls::reset):
3134           Added resets for media elements that all platform controls share.
3135         (WebCore::MediaControls::reportedError):
3136           Added error handling for media elements that all platform controls share.
3137         (WebCore::MediaControls::loadedMetadata):
3138           Added default action for loadedMetadata event.
3139         (WebCore::MediaControls::show):
3140         (WebCore::MediaControls::hide):
3141         (WebCore::MediaControls::makeOpaque):
3142         (WebCore::MediaControls::makeTransparent):
3143         (WebCore::MediaControls::shouldHideControls):
3144         (WebCore::MediaControls::bufferingProgressed):
3145         (WebCore::MediaControls::playbackStarted):
3146         (WebCore::MediaControls::playbackProgressed):
3147         (WebCore::MediaControls::playbackStopped):
3148         (WebCore::MediaControls::updateCurrentTimeDisplay):
3149         (WebCore::MediaControls::showVolumeSlider):
3150         (WebCore::MediaControls::changedMute):
3151         (WebCore::MediaControls::changedVolume):
3152         (WebCore::MediaControls::changedClosedCaptionsVisibility):
3153         (WebCore::MediaControls::enteredFullscreen):
3154         (WebCore::MediaControls::exitedFullscreen):
3155         (WebCore::MediaControls::defaultEventHandler):
3156         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
3157         (WebCore::MediaControls::startHideFullscreenControlsTimer):
3158         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
3159         (WebCore::MediaControls::shadowPseudoId):
3160         (WebCore::MediaControls::containsRelatedTarget):
3161         (WebCore::MediaControls::createTextTrackDisplay):
3162         (WebCore::MediaControls::showTextTrackDisplay):
3163         (WebCore::MediaControls::hideTextTrackDisplay):
3164         (WebCore::MediaControls::updateTextTrackDisplay):
3165           Added default actions for all these media controls member functions.
3166         * html/shadow/MediaControls.h:
3167         (WebCore):
3168           Added include files and forward class declarations that all media controls share.
3169         (MediaControls):
3170           Make all pure virtual functions that have default implementations just virtual.
3171         (WebCore::MediaControls::updateStatusDisplay):
3172           Add an empty virtual updateStatusDisplay function which is used by media elements.
3173         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
3174           Reduced Apple-specific media control functions by relying on default implementations in the base class.
3175         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
3176           Reduced Apple-specific media control elements by relying on some elements in the base class.
3177         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
3178           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
3179         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
3180           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
3181         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
3182           Renamed class name and base class name.
3183         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
3184           Renamed class name and base class name.
3185         * rendering/RenderTheme.h:
3186         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
3187           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
3188
3189 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
3190
3191         CSSParser::setStyleSheet() should be inline
3192         https://bugs.webkit.org/show_bug.cgi?id=101829
3193
3194         Reviewed by Andreas Kling.
3195
3196         * css/CSSParser.cpp:
3197         * css/CSSParser.h:
3198         (WebCore::CSSParser::setStyleSheet):
3199         CSSParser::setStyleSheet() just assign a pointer, it does not even
3200         change a ref-count. The function should probably be in the header.
3201
3202 2012-11-13  Andrei Bucur  <abucur@adobe.com>
3203
3204         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
3205         https://bugs.webkit.org/show_bug.cgi?id=101332
3206
3207         Reviewed by David Hyatt.
3208
3209         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
3210         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
3211         including a new member, the containing Region for the line.
3212         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
3213         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
3214         A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
3215         the task of updating the containing Region to the block.
3216
3217         Tests: No new tests because there is no functional change.
3218
3219         * rendering/InlineFlowBox.cpp:
3220         (SameSizeAsInlineFlowBox):
3221         * rendering/InlineFlowBox.h:
3222         (WebCore::InlineFlowBox::InlineFlowBox):
3223         (InlineFlowBox):
3224         * rendering/RenderBlock.cpp:
3225         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
3226         * rendering/RenderBlockLineLayout.cpp:
3227         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
3228         (WebCore::RenderBlock::linkToEndLineIfNeeded):
3229         (WebCore::RenderBlock::determineStartPosition):
3230         * rendering/RootInlineBox.cpp:
3231         (WebCore::RootInlineBox::RootInlineBox):
3232         (WebCore::RootInlineBox::setContainingRegion):
3233         (WebCore):
3234         * rendering/RootInlineBox.h:
3235         (WebCore):
3236         (WebCore::RootInlineBox::paginationStrut):
3237         (WebCore::RootInlineBox::setPaginationStrut):
3238         (WebCore::RootInlineBox::isFirstAfterPageBreak):
3239         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
3240         (WebCore::RootInlineBox::paginatedLineWidth):
3241         (WebCore::RootInlineBox::setPaginatedLineWidth):
3242         (RootInlineBox):
3243         (WebCore::RootInlineBox::containingRegion):
3244         (WebCore::RootInlineBox::ensureLineFragmentationData):
3245         (LineFragmentationData):
3246         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
3247
3248 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
3249
3250         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
3251         https://bugs.webkit.org/show_bug.cgi?id=98038
3252
3253         Reviewed by Simon Hausmann.
3254
3255         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
3256
3257         * platform/graphics/OpenGLShims.cpp:
3258         (WebCore):
3259
3260 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
3261
3262         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
3263         https://bugs.webkit.org/show_bug.cgi?id=101616
3264
3265         Reviewed by Beth Dakin.
3266
3267         If the rowheader role is exposed because the element is not within a table, the mac platform
3268         should map that to a generic group.
3269
3270         Test: platform/mac/accessibility/rowheader-outside-table-role.html
3271
3272         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3273         (createAccessibilityRoleMap):
3274
3275 2012-11-13  Stephen White  <senorblanco@chromium.org>
3276
3277         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
3278         https://bugs.webkit.org/show_bug.cgi?id=101952
3279
3280         Reviewed by James Robinson.
3281
3282         With these changes, all of the css3/filters tests pass when the
3283         if-test in GraphicsLayerChromium::setFilters() is forced true (for
3284         now, it remains true only if there's a reference filter in the chain).
3285
3286         Covered by the css3/filters tests (when the switch is thrown in
3287         GraphicsLayerChromium::setFilters()).
3288
3289         * WebCore.gypi:
3290         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3291         Drop to software rendering if there's a custom filter in the chain.
3292         This is the same as the WebFilterOperations path is doing.
3293         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
3294         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
3295         New implementation of drop-shadow filter; equivalent to
3296         the path in cc/render_surface_filters.cc.
3297         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
3298         Fix the sepia and grayscale filters (value was inverted).
3299
3300 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3301
3302         Unreviewed, rolling out r134442.
3303         http://trac.webkit.org/changeset/134442
3304         https://bugs.webkit.org/show_bug.cgi?id=102111
3305
3306         Does not compile on apple-mac (Requested by abarth on
3307         #webkit).
3308
3309         * CMakeLists.txt:
3310         * GNUmakefile.list.am:
3311         * Target.pri:
3312         * WebCore.gypi:
3313         * WebCore.vcproj/WebCore.vcproj:
3314         * WebCore.xcodeproj/project.pbxproj:
3315         * css/CSSCursorImageValue.cpp:
3316         (WebCore::CSSCursorImageValue::cachedImage):
3317         * css/CSSFontFaceSrcValue.cpp:
3318         (WebCore::CSSFontFaceSrcValue::cachedFont):
3319         * css/CSSImageSetValue.cpp:
3320         (WebCore::CSSImageSetValue::cachedImageSet):
3321         * css/CSSImageValue.cpp:
3322         (WebCore::CSSImageValue::cachedImage):
3323         * css/CSSImageValue.h:
3324         (WebCore):
3325         (CSSImageValue):
3326         * css/StyleResolver.cpp:
3327         (WebCore::StyleResolver::loadPendingImage):
3328         * css/StyleRuleImport.cpp:
3329         (WebCore::StyleRuleImport::requestStyleSheet):
3330         * css/WebKitCSSSVGDocumentValue.cpp:
3331         (WebCore::WebKitCSSSVGDocumentValue::load):
3332         * css/WebKitCSSShaderValue.cpp:
3333         (WebCore::WebKitCSSShaderValue::cachedShader):
3334         * dom/ScriptElement.cpp:
3335         (WebCore::ScriptElement::requestScript):
3336         * html/HTMLLinkElement.cpp:
3337         (WebCore::HTMLLinkElement::process):
3338         * html/parser/CSSPreloadScanner.cpp:
3339         (WebCore::CSSPreloadScanner::emitRule):
3340         * html/parser/CSSPreloadScanner.h:
3341         (CSSPreloadScanner):
3342         * html/parser/HTMLPreloadScanner.cpp:
3343         (WebCore::PreloadTask::preload):
3344         * loader/ImageLoader.cpp:
3345         (WebCore::ImageLoader::updateFromElement):
3346         * loader/cache/CachedResourceLoader.cpp:
3347         (WebCore::CachedResourceLoader::requestImage):
3348         (WebCore::CachedResourceLoader::requestResource):
3349         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
3350         (WebCore):
3351         (WebCore::CachedResourceLoader::preload):
3352         * loader/cache/CachedResourceLoader.h:
3353         (WebCore):
3354         (CachedResourceLoader):
3355         * loader/cache/CachedResourceRequest.cpp:
3356         (WebCore::CachedResourceRequest::CachedResourceRequest):
3357         * loader/cache/CachedResourceRequest.h:
3358         (CachedResourceRequest):
3359         (WebCore::CachedResourceRequest::defer):
3360         (WebCore::CachedResourceRequest::setDefer):
3361         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
3362         * loader/cache/CachedResourceRequestInitiators.h: Removed.
3363         * loader/icon/IconLoader.cpp:
3364         (WebCore::IconLoader::startLoading):
3365         * platform/ThreadGlobalData.cpp:
3366         (WebCore::ThreadGlobalData::ThreadGlobalData):
3367         * platform/ThreadGlobalData.h:
3368         (ThreadGlobalData):
3369         * svg/SVGFEImageElement.cpp:
3370         (WebCore::SVGFEImageElement::requestImageResource):
3371         * svg/SVGFontFaceUriElement.cpp:
3372         (WebCore::SVGFontFaceUriElement::loadFont):
3373         * svg/SVGUseElement.cpp:
3374         (WebCore::SVGUseElement::svgAttributeChanged):
3375
3376 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
3377
3378         AX: file upload input text value is not exposed through accessibility
3379         https://bugs.webkit.org/show_bug.cgi?id=100583
3380
3381         Reviewed by Beth Dakin.
3382
3383         This is a hard problem to solve on the Mac because there are three pieces of information
3384              1) The type of button 2) The text on the button 3) The text for the value.
3385         I think the best compromise is to label this as a file upload button type in the role description, 
3386         and then expose the file path text as the AXTitle. 
3387         This will give the more relevant information and should be clear what is happening.
3388
3389         Test: platform/mac/accessibility/file-upload-button-subrole.html
3390
3391         * English.lproj/Localizable.strings:
3392         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3393         (-[WebAccessibilityObjectWrapper subrole]):
3394         (-[WebAccessibilityObjectWrapper roleDescription]):
3395         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
3396         * platform/LocalizedStrings.cpp:
3397         (WebCore::AXFileUploadButtonText):
3398         * platform/LocalizedStrings.h:
3399
3400 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3401
3402         Unreviewed, rolling out r133944.
3403         http://trac.webkit.org/changeset/133944
3404         https://bugs.webkit.org/show_bug.cgi?id=102118
3405
3406         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
3407         #webkit).
3408
3409         * bindings/scripts/CodeGeneratorV8.pm:
3410         (GenerateFunctionCallback):
3411         (GenerateParametersCheck):
3412         (GenerateSingleConstructorCallback):
3413         (GenerateNamedConstructorCallback):
3414         (TypeCanFailConversion):
3415         * dom/Element.cpp:
3416         (WebCore::Element::setAttributeNode):
3417         (WebCore::Element::removeAttributeNode):
3418         * dom/Element.idl:
3419
3420 2012-11-13  Adam Barth  <abarth@webkit.org>
3421
3422         Unreviewed.
3423
3424         Update run-bindings-tests results.
3425
3426         * bindings/scripts/test/V8/V8Float64Array.cpp:
3427         (WebCore::V8Float64Array::dispatchWrapCustom):
3428         (WebCore::V8Float64Array::wrapSlow):
3429         * bindings/scripts/test/V8/V8Float64Array.h:
3430         (WebCore::V8Float64Array::toNative):
3431         (V8Float64Array):
3432         (WebCore):
3433         (WebCore::dispatchWrap):
3434         (WebCore::toV8Object):
3435         (WebCore::toV8):
3436         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3437         (WebCore::V8TestActiveDOMObject::wrapSlow):
3438         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3439         (WebCore::V8TestActiveDOMObject::toNative):
3440         (V8TestActiveDOMObject):
3441         (WebCore):
3442         (WebCore::dispatchWrap):
3443         (WebCore::toV8Object):
3444         (WebCore::toV8):
3445         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3446         (WebCore::V8TestCustomNamedGetter::wrapSlow):
3447         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3448         (WebCore::V8TestCustomNamedGetter::toNative):
3449         (V8TestCustomNamedGetter):
3450         (WebCore):
3451         (WebCore::dispatchWrap):
3452         (WebCore::toV8Object):
3453         (WebCore::toV8):
3454         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3455         (WebCore::V8TestEventConstructor::wrapSlow):
3456         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3457         (WebCore::V8TestEventConstructor::toNative):
3458         (V8TestEventConstructor):
3459         (WebCore):
3460         (WebCore::dispatchWrap):
3461         (WebCore::toV8Object):
3462         (WebCore::toV8):
3463         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3464         (WebCore::V8TestEventTarget::wrapSlow):
3465         * bindings/scripts/test/V8/V8TestEventTarget.h:
3466         (WebCore::V8TestEventTarget::toNative):
3467         (V8TestEventTarget):
3468         (WebCore):
3469         (WebCore::dispatchWrap):
3470         (WebCore::toV8Object):
3471         (WebCore::toV8):
3472         * bindings/scripts/test/V8/V8TestException.cpp: