Unreviewed, rolling out r123606.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-07-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2
3         Unreviewed, rolling out r123606.
4         http://trac.webkit.org/changeset/123606
5         https://bugs.webkit.org/show_bug.cgi?id=92247
6
7         broke Windows build of Chromium (Requested by tomhudson on
8         #webkit).
9
10         * Resources/colorSuggestionPicker.css: Removed.
11         * Resources/colorSuggestionPicker.js: Removed.
12         * WebCore.gyp/WebCore.gyp:
13
14 2012-07-25  Pavel Feldman  <pfeldman@chromium.org>
15
16         Web Inspector: disabling property should remove "overriden" decoration from overriden UA shorthand.
17         https://bugs.webkit.org/show_bug.cgi?id=92253
18
19         Reviewed by Vsevolod Vlasov.
20
21         Bug fix with a test and more compilation markup.
22
23         Test: inspector/styles/styles-disable-then-enable-overriden-ua.html
24
25         * inspector/front-end/StylesSidebarPane.js:
26         (WebInspector.StylePropertiesSection.prototype.update):
27         (WebInspector.StylePropertyTreeElement):
28         (WebInspector.StylePropertyTreeElement.prototype):
29
30 2012-07-25  Vsevolod Vlasov  <vsevik@chromium.org>
31
32         Web Inspector: Improve ObjectPropertiesSection UI by adding a tooltip for the value.
33         https://bugs.webkit.org/show_bug.cgi?id=92225
34
35         Reviewed by Pavel Feldman.
36
37         Added tooltip with property value description on the property's valueElement.
38
39         * inspector/front-end/ObjectPropertiesSection.js:
40         (WebInspector.ObjectPropertyTreeElement.prototype.update):
41
42 2012-07-25  Pavel Feldman  <pfeldman@chromium.org>
43
44         https://bugs.webkit.org/show_bug.cgi?id=91931
45
46         Reviewed by Vsevolod Vlasov.
47
48         - Synthetic shorthand values are now only returned for source-less styles
49         - CSSAgents reports longhands along with the property names in getSupportedCSSProperties
50         - StylesSidebarPane now has two paths: for source-enabled styles and for CSSOM-based ones (UA styles)
51         - CSSStyleModel uses style metainfo as a source of shorthand / longhand relationship now
52
53         Test: inspector/styles/styles-overriden-properties.html
54
55         * inspector/Inspector.json:
56         * inspector/InspectorCSSAgent.cpp:
57         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
58         * inspector/InspectorCSSAgent.h:
59         (InspectorCSSAgent):
60         * inspector/InspectorStyleSheet.cpp:
61         (WebCore::InspectorStyle::styleWithProperties):
62         * inspector/front-end/CSSCompletions.js:
63         (WebInspector.CSSCompletions):
64         (WebInspector.CSSCompletions.requestCSSNameCompletions):
65         (WebInspector.CSSCompletions.prototype._closest):
66         (WebInspector.CSSCompletions.prototype.longhands):
67         (WebInspector.CSSCompletions.prototype.shorthands):
68         * inspector/front-end/CSSStyleModel.js:
69         (WebInspector.CSSStyleDeclaration):
70         (WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
71         (WebInspector.CSSStyleDeclaration.prototype.shorthandValue):
72         (WebInspector.CSSStyleDeclaration.prototype.newBlankProperty):
73         (WebInspector.CSSProperty):
74         (WebInspector.CSSProperty.parsePayload):
75         * inspector/front-end/SourceCSSTokenizer.js:
76         (WebInspector.SourceCSSTokenizer):
77         * inspector/front-end/SourceCSSTokenizer.re2js:
78         * inspector/front-end/StylesSidebarPane.js:
79         (WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
80         (WebInspector.StylePropertiesSection.prototype.update):
81         (WebInspector.StylePropertiesSection.prototype.onpopulate):
82         (WebInspector.StylePropertyTreeElement.prototype):
83
84 2012-07-25  Keishi Hattori  <keishi@webkit.org>
85
86         Implement ColorSuggestionPicker page popup
87         https://bugs.webkit.org/show_bug.cgi?id=92109
88
89         Reviewed by Kent Tamura.
90
91         Implements ColorSuggestionPicker page popup. This will be used in
92         certain ports as the datalist UI for <input type=color>.
93
94         No new tests because there is no way to open the popup yet.
95
96         * Resources/colorSuggestionPicker.css: Added.
97         (body):
98         (#main):
99         (.color-swatch):
100         (.color-swatch:hover):
101         (.color-swatch-container):
102         (.other-color):
103         * Resources/colorSuggestionPicker.js: Added.
104         (getScrollbarWidth):When there are more than 20 colors we need to
105         increase the window width to accommodate the scroll bar.
106         (createElement):
107         (handleMessage):
108         (initialize):
109         (handleArgumentsTimeout):
110         (validateArguments):
111         (submitValue): Calls setValueAndClosePopup with a numValue of 0.
112         (handleCancel): Calls setValueAndClosePopup with a numValue of -1.
113         (chooseOtherColor): Calls setValueAndClosePopup with a numValue of -2.
114         (ColorPicker):
115         (ColorPicker.prototype._layout): Lays out the color swatches in a 5x4
116         grid.
117         (ColorPicker.prototype._handleSwatchClick):
118         * WebCore.gyp/WebCore.gyp:
119
120 2012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
121
122         Fix arithmetic composite filter for auto-vectorization
123         https://bugs.webkit.org/show_bug.cgi?id=92123
124
125         Reviewed by Nikolas Zimmermann.
126
127         Since only clamping of the result prevents GCC from auto-vectorizing the inner loop, this patch 
128         adds a faster version of the inner loop to handle cases where clamping is unnecessary, 
129
130         * platform/graphics/filters/FEComposite.cpp:
131         (WebCore::computeArithmeticPixelsUnclamped):
132         (WebCore::arithmeticSoftware):
133
134 2012-07-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
135
136         Fix blend filter for autovectorizing
137         https://bugs.webkit.org/show_bug.cgi?id=91398
138
139         Reviewed by Nikolas Zimmermann.
140
141         Get rid of wrapper classes, and use functions directly as template argument.
142
143         * platform/graphics/filters/FEBlend.cpp:
144         (WebCore::feBlendNormal):
145         (WebCore::feBlendMultiply):
146         (WebCore::feBlendScreen):
147         (WebCore::feBlendDarken):
148         (WebCore::feBlendLighten):
149         (WebCore::feBlendUnknown):
150         (WebCore::platformApply):
151         (WebCore::FEBlend::platformApplyGeneric):
152
153 2012-07-25  Keishi Hattori  <keishi@webkit.org>
154
155         Add methods to ColorChooserClient so the color chooser can show suggestions
156         https://bugs.webkit.org/show_bug.cgi?id=92114
157
158         Reviewed by Kent Tamura.
159
160         Added methods to ColorChooserClient so the color chooser can ask the
161         client for suggestions and current color.
162
163         No new tests. The methods are not used yet.
164
165         * html/ColorInputType.cpp:
166         (WebCore::ColorInputType::currentColor): Returns what color the color
167         chooser should display.
168         (WebCore):
169         (WebCore::ColorInputType::shouldShowSuggestions): Returns if the UI for
170         suggestions should be shown.
171         (WebCore::ColorInputType::suggestions): Returns a list of colors to be
172         suggested to the user.
173         * html/ColorInputType.h:
174         (ColorInputType):
175         * html/HTMLInputElement.h:
176         (HTMLInputElement): Made dataList() public.
177         * platform/ColorChooserClient.h:
178         (ColorChooserClient):
179
180 2012-07-25  Kentaro Hara  <haraken@chromium.org>
181
182         Replace int with long in test IDL files
183         https://bugs.webkit.org/show_bug.cgi?id=92181
184
185         Reviewed by Adam Barth.
186
187         int is not a valid type in WebIDL. It should be long.
188         We should replace int with long in bindings/scripts/test/*.idl.
189         This is a follow-up patch for r123550.
190
191         Test: bindings/scripts/test/TestObj.idl
192
193         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
194         (WebDOMTestObj::readOnlyLongAttr):
195         (WebDOMTestObj::Attr):
196         (WebDOMTestObj::setAttr):
197         (WebDOMTestObj::voidMethodWithArgs):
198         (WebDOMTestObj::Method):
199         (WebDOMTestObj::MethodWithArgs):
200         (WebDOMTestObj::objMethodWithArgs):
201         * bindings/scripts/test/CPP/WebDOMTestObj.h:
202         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
203         (webkit_dom_test_obj_set_property):
204         (webkit_dom_test_obj_get_property):
205         (webkit_dom_test_obj_class_init):
206         (webkit_dom_test_obj_void_method_with_args):
207         (webkit_dom_test_obj_method):
208         (webkit_dom_test_obj_method_with_args):
209         (webkit_dom_test_obj_obj_method_with_args):
210         (webkit_dom_test_obj_get_read_only_long_attr):
211         (webkit_dom_test_obj_get_attr):
212         (webkit_dom_test_obj_set_attr):
213         (webkit_dom_test_obj_get_strawberry):
214         (webkit_dom_test_obj_set_strawberry):
215         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
216         * bindings/scripts/test/JS/JSTestObj.cpp:
217         (WebCore):
218         (WebCore::jsTestObjReadOnlyLongAttr):
219         (WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
220         (WebCore::jsTestObjAttr):
221         (WebCore::setJSTestObjAttr):
222         (WebCore::setJSTestObjStrawberry):
223         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
224         (WebCore::jsTestObjPrototypeFunctionMethod):
225         (WebCore::jsTestObjPrototypeFunctionMethodWithArgs):
226         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
227         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
228         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
229         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
230         * bindings/scripts/test/JS/JSTestObj.h:
231         (WebCore):
232         * bindings/scripts/test/ObjC/DOMTestObj.h:
233         * bindings/scripts/test/ObjC/DOMTestObj.mm:
234         (-[DOMTestObj readOnlyLongAttr]):
235         (-[DOMTestObj Attr]):
236         (-[DOMTestObj setAttr:]):
237         (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
238         (-[DOMTestObj Method]):
239         (-[DOMTestObj MethodWithArgs:strArg:objArg:]):
240         (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
241         (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
242         * bindings/scripts/test/TestObj.idl:
243         * bindings/scripts/test/V8/V8TestObj.cpp:
244         (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetter):
245         (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetter):
246         (WebCore::TestObjV8Internal::AttrAttrGetter):
247         (WebCore::TestObjV8Internal::AttrAttrSetter):
248         (WebCore::TestObjV8Internal::strawberryAttrSetter):
249         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
250         (WebCore::TestObjV8Internal::MethodCallback):
251         (WebCore::TestObjV8Internal::MethodWithArgsCallback):
252         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
253         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
254         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
255         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
256         (WebCore):
257         (WebCore::ConfigureV8TestObjTemplate):
258
259 2012-07-25  Shinya Kawanaka  <shinyak@chromium.org>
260
261         A validation bubble should not be modifiable.
262         https://bugs.webkit.org/show_bug.cgi?id=92217
263
264         Reviewed by Kent Tamura.
265
266         A user can set -webkit-user-modify: read-write to validation message elements.
267         This might cause a undesired crash like Bug 65738. They should be unmodifiable.
268
269         Test: fast/forms/validation-user-modify.html
270
271         * css/html.css:
272         Added -webkit-user-modify: read-only !important; for these elements so that they won't be
273         changed by a user.
274         (::-webkit-validation-bubble):
275         (::-webkit-validation-bubble-message):
276         (::-webkit-validation-bubble-text-block):
277         (::-webkit-validation-bubble-heading):
278         (::-webkit-validation-bubble-arrow):
279         (::-webkit-validation-bubble-arrow-clipper):
280
281 2012-07-25  Zeno Albisser  <zeno@webkit.org>
282
283         [Qt][WK2] Disable CopyToTexture for GraphicsSurfaceMac.
284         https://bugs.webkit.org/show_bug.cgi?id=92159
285
286         Disable CopyToTexture feature for GraphicsSurface on Mac.
287         While this is actually working, it is currently used for Tiles
288         that are single buffered, and therefore requires a call to glFlush.
289         This call blocks the GPU for about 40ms which would make smooth animations impossible.
290
291         Reviewed by Noam Rosenthal.
292
293         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
294         (WebCore::GraphicsSurface::platformCreate):
295         (WebCore::GraphicsSurface::platformImport):
296
297 2012-07-25  Kenichi Ishibashi  <bashi@chromium.org>
298
299         [Chromium] Fix up includes in HarfBuzzNGFace.h
300         https://bugs.webkit.org/show_bug.cgi?id=92127
301
302         Reviewed by Hajime Morita.
303
304         Move constructors of FontPlatformData from headers to corresponding cpp files
305         so that we can use forward declaration for HarfBuzzNGFace instead of including HarfBuzzNGFace.h.
306         This way we can include hb.h in HarfBuzzNGFace.h.
307
308         No new tests. No changes in behavior.
309
310         * platform/graphics/FontPlatformData.cpp:
311         (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
312         (WebCore):
313         * platform/graphics/FontPlatformData.h:
314         (WebCore):
315         (FontPlatformData): Moved to cpp file.
316         * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Include HarfBuzzNGFace.h
317         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
318         (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
319         (WebCore):
320         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
321         (WebCore):
322         (FontPlatformData): Moved to cpp file.
323         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: Include hb.h.
324
325 2012-07-24  Benjamin Poulain  <bpoulain@apple.com> && Joseph Pecoraro  <pecoraro@apple.com>
326
327         QualifiedName's HashSet should be big enough to hold at least all the static names
328         https://bugs.webkit.org/show_bug.cgi?id=91891
329
330         Reviewed by Darin Adler.
331
332         QualifiedName's table has a standard size of 64 buckets. When initializing WebKit,
333         we create 850 static QualifiedName for the standard names (HTMLNames, SVGNames etc).
334
335         The small base size forces us to grow and rehash the table several time on startup.
336
337         This patch solves the issue by defining the initial table size to the minimum size that
338         can hold all the static QualifiedName.
339
340         * dom/QualifiedName.cpp:
341         (QualifiedNameHashTraits):
342         * dom/make_names.pl:
343         (printNamesHeaderFile):
344
345 2012-07-24  Kwang Yul Seo  <skyul@company100.net>
346
347         Remove anonymous namespace and make functions static.
348         https://bugs.webkit.org/show_bug.cgi?id=92214
349
350         Reviewed by Adam Barth.
351
352         Mark functions as static instead of enclosing them in anonymous namespaces.
353         One exception to this rule is when a function is passed as a template argument.
354         In this case, the function must have an external linkage.
355
356         No functional change. Covered by existing tests.
357
358         * html/parser/HTMLConstructionSite.cpp:
359         (WebCore::hasImpliedEndTag):
360         (WebCore::causesFosterParenting):
361         (WebCore::isAllWhitespace):
362         * html/parser/HTMLDocumentParser.cpp:
363         (WebCore):
364         (WebCore::tokenizerStateForContextElement):
365         * html/parser/HTMLElementStack.cpp:
366         (WebCore::isNumberedHeaderElement):
367         (WebCore::isRootNode):
368         (WebCore):
369         * html/parser/HTMLEntityParser.cpp:
370         (WebCore::isAlphaNumeric):
371         * html/parser/HTMLEntitySearch.cpp:
372         (WebCore::halfway):
373         * html/parser/HTMLPreloadScanner.cpp:
374         (WebCore):
375         * html/parser/HTMLTokenizer.cpp:
376         (WebCore::toLowerCase):
377         (WebCore::vectorEqualsString):
378         (WebCore::isEndTagBufferingState):
379         * html/parser/HTMLTreeBuilder.cpp:
380         (WebCore):
381         (WebCore::uninitializedPositionValue1):
382         (WebCore::isAllWhitespace):
383         (WebCore::isAllWhitespaceOrReplacementCharacters):
384         (WebCore::isNumberedHeaderTag):
385         (WebCore::isCaptionColOrColgroupTag):
386         (WebCore::isTableCellContextTag):
387         (WebCore::isTableBodyContextTag):
388         (WebCore::isSpecialNode):
389         (WebCore::isNonAnchorNonNobrFormattingTag):
390         (WebCore::isNonAnchorFormattingTag):
391         (WebCore::isFormattingTag):
392         (WebCore::closestFormAncestor):
393         (WebCore::mapLoweredLocalNameToName):
394         (WebCore::adjustSVGTagNameCase):
395         (WebCore::adjustAttributes):
396         (WebCore::adjustSVGAttributes):
397         (WebCore::adjustMathMLAttributes):
398         (WebCore::addNamesWithPrefix):
399         (WebCore::adjustForeignAttributes):
400
401 2012-07-24  Vsevolod Vlasov  <vsevik@chromium.org>
402
403         Unreviewed r123494 follow-up: fixed inspector undock icon.
404
405         * inspector/front-end/Images/statusbarButtonGlyphs.png:
406
407 2012-07-24  Kwang Yul Seo  <skyul@company100.net>
408
409         Read tag names and attributes from the saved tokens where possible.
410         https://bugs.webkit.org/show_bug.cgi?id=92079
411
412         Reviewed by Adam Barth.
413
414         Read tag names and attributes from the saved tokens, not from the DOM.
415         Also added convenient methods such as hasLocalName, hasTagName, localName,
416         isElementNode and isDocumentFragmentNode to HTMLStackItem class.
417
418         No new tests, covered by existing tests.
419
420         * html/parser/HTMLConstructionSite.cpp:
421         (WebCore::HTMLNames::hasImpliedEndTag):
422         (WebCore::HTMLNames::causesFosterParenting):
423         (WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion):
424         (WebCore::HTMLConstructionSite::generateImpliedEndTags):
425         (WebCore::HTMLConstructionSite::shouldFosterParent):
426         * html/parser/HTMLConstructionSite.h:
427         (WebCore::HTMLConstructionSite::currentStackItem):
428         * html/parser/HTMLElementStack.cpp:
429         (WebCore::HTMLNames::isNumberedHeaderElement):
430         (WebCore::HTMLNames::isRootNode):
431         (WebCore::HTMLNames::isScopeMarker):
432         (WebCore::HTMLNames::isListItemScopeMarker):
433         (WebCore::HTMLNames::isTableScopeMarker):
434         (WebCore::HTMLNames::isTableBodyScopeMarker):
435         (WebCore::HTMLNames::isTableRowScopeMarker):
436         (WebCore::HTMLNames::isForeignContentScopeMarker):
437         (WebCore::HTMLNames::isButtonScopeMarker):
438         (WebCore::HTMLNames::isSelectScopeMarker):
439         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
440         (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
441         (WebCore::HTMLElementStack::popUntilTableScopeMarker):
442         (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
443         (WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
444         (WebCore::HTMLElementStack::isMathMLTextIntegrationPoint):
445         (WebCore::HTMLElementStack::isHTMLIntegrationPoint):
446         (WebCore::HTMLElementStack::popUntilForeignContentScopeMarker):
447         (WebCore::HTMLElementStack::pushRootNode):
448         (WebCore::HTMLElementStack::oneBelowTop):
449         (WebCore::HTMLElementStack::topmost):
450         (WebCore):
451         (WebCore::inScopeCommon):
452         (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
453         (WebCore::HTMLElementStack::inScope):
454         * html/parser/HTMLElementStack.h:
455         (WebCore::HTMLElementStack::topStackItem):
456         (HTMLElementStack):
457         (WebCore::isInHTMLNamespace):
458         * html/parser/HTMLStackItem.h:
459         (WebCore::HTMLStackItem::isDocumentFragmentNode):
460         (WebCore::HTMLStackItem::isElementNode):
461         (HTMLStackItem):
462         (WebCore::HTMLStackItem::hasLocalName):
463         (WebCore::HTMLStackItem::hasTagName):
464         (WebCore::HTMLStackItem::HTMLStackItem):
465         * html/parser/HTMLTreeBuilder.cpp:
466         (WebCore):
467         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
468         (WebCore::HTMLTreeBuilder::processFakeEndTag):
469         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
470         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
471         (WebCore::HTMLTreeBuilder::processStartTag):
472         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
473         (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
474         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
475         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
476         (WebCore::HTMLTreeBuilder::processEndTagForInCell):
477         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
478         (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
479         (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
480         (WebCore::HTMLTreeBuilder::processEndTag):
481         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
482         (WebCore::HTMLTreeBuilder::processEndOfFile):
483         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
484         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
485         * html/parser/HTMLTreeBuilder.h:
486
487 2012-07-24  Hironori Bono  <hbono@chromium.org>
488
489         Avoid moving child objects multiple times when vertical scrollbar are shown at the left side.
490         https://bugs.webkit.org/show_bug.cgi?id=91756
491
492         Reviewed by Tony Chang.
493
494         My r123067 moves the top-left origin of an RTL element right when its vertical
495         scrollbar is shown at its left side. (That is, r123067 moves all child objects
496         in the RTL element right.) This change also increases RenderBox::clientLeft()
497         at the same time, i.e. it also moves child objects right. Furthermore, my r109512
498         moves positioned objects in an RTL element right at the same time. This makes
499         WebKit move objects in an RTL element up to three times by the scrollbar width.
500         (Moving an absolute object right increases the scrollWidth value and it causes
501         this bug.) This change removes unnecessary code that moves objects right in my
502         r109512 and RenderBox::clientLeft().
503
504         Test: scrollbars/rtl/div-absolute.html
505               fast/block/float/026.html
506               fast/block/float/028.html
507               fast/overflow/unreachable-overflow-rtl-bug.html
508
509         * dom/Element.cpp:
510         (WebCore::Element::clientLeft): Increase clientLeft value by the width of a vertical scrollbar as written in the CSSOM specification.
511         * rendering/RenderBlock.cpp:
512         (WebCore::RenderBlock::addOverflowFromPositionedObjects): Removed unnecessary code.
513         (WebCore::RenderBlock::determineLogicalLeftPositionForChild): Removed unnecessary code.
514         * rendering/RenderBox.h:
515         (WebCore::RenderBox::clientLeft): Removed unnecessary code.
516
517 2012-07-24  Dan Bernstein  <mitz@apple.com>
518
519         RenderBlock::positionForPoint can fail when the block or its children have a vertical writing mode
520         https://bugs.webkit.org/show_bug.cgi?id=92202
521
522         Reviewed by Beth Dakin.
523
524         Test: fast/writing-mode/positionForPoint.html
525
526         * rendering/RenderBlock.cpp:
527         (WebCore::RenderBlock::positionForPoint): Fixed two issues, each of which are covered by
528         one of the sub-tests in the new regression test: (1) changed to compare children’s logical
529         bounds against pointInLogicalContents, i.e. compare childern’s horizontal bounds to the
530         point’s horizontal component; and (2) changed to use logicalTopForChild and
531         logicalHeightForChild, which account for this block’s writing mode, instead of logicalTop
532         and logicalBottom, which are based on the child’s writing mode.
533
534 2012-07-24  MORITA Hajime  <morrita@google.com>
535
536         https://bugs.webkit.org/show_bug.cgi?id=89179
537         Rendering LI having Shadow DOM seems weird
538
539         Reviewed by Dimitri Glazkov.
540
541         This incorrect rendering happend because HTMLLIElement::attach()
542         wasn't aware of composed shadow subtree. This change makes it
543         aware of that using ComposedShadowTreeParentWalker.
544
545         Test: fast/dom/shadow/shadow-and-list-elements.html
546
547         * html/HTMLLIElement.cpp:
548         (WebCore::HTMLLIElement::attach):
549
550 2012-07-24  Alec Flett  <alecflett@chromium.org>
551
552         IndexedDB: fix #include dependencies so IDBRequest isn't an include root
553         https://bugs.webkit.org/show_bug.cgi?id=92167
554
555         Reviewed by Tony Chang.
556
557         Remove implicit dependencies due to using IDBRequest.h, and fix all
558         places that break as a result.
559
560         * Modules/indexeddb/IDBCallbacks.h:
561         (WebCore):
562         * Modules/indexeddb/IDBObjectStore.cpp:
563         * Modules/indexeddb/IDBRequest.h:
564         * inspector/InspectorIndexedDBAgent.cpp:
565
566 2012-07-24  Keishi Hattori  <keishi@webkit.org>
567
568         Move PagePopupClient helper functions so they can be shared
569         https://bugs.webkit.org/show_bug.cgi?id=92096
570
571         Reviewed by Kent Tamura.
572
573         Move PagePopupClient helper functions to a separate file,
574         so they can be shared with new PagePopupClients.
575
576         No new tests. Covered by fast/forms/date/calendar-picker-appearance.html
577
578         * WebCore.gypi: Added PagePopupClient.cpp
579         * html/shadow/CalendarPickerElement.cpp:
580         (WebCore::CalendarPickerElement::writeDocument): Modified to use PagePopupClient.
581         * page/PagePopupClient.cpp: Added.
582         (WebCore):
583         (WebCore::PagePopupClient::addJavaScriptString):
584         (WebCore::PagePopupClient::addProperty):
585         * page/PagePopupClient.h:
586         (WebCore::PagePopupClient::addString):
587
588 2012-07-24  Jer Noble  <jer.noble@apple.com>
589
590         setting playbackRate on a MediaController doesn't change the playbackRate for slaved media
591         https://bugs.webkit.org/show_bug.cgi?id=92035
592
593         Reviewed by Darin Adler.
594
595         Allow updatePlaybackRate() to change the MediaPlayer rate when the media element has a 
596         current media controller.
597
598         Test: media/media-controller-playbackrate.html
599
600         * html/HTMLMediaElement.cpp:
601         (WebCore::HTMLMediaElement::updatePlaybackRate):
602
603 2012-07-24  Hayato Ito  <hayato@chromium.org>
604
605         Rename FocusScope to FocusNavigationScope.
606         https://bugs.webkit.org/show_bug.cgi?id=92062
607
608         Reviewed by Dimitri Glazkov.
609
610         FocusNavagationScope is better name than FocusScope since the
611         class is only used for controlling focus navigation.
612
613         No new tests - no functional changes.
614
615         * page/FocusController.cpp:
616         (WebCore::FocusNavigationScope::FocusNavigationScope):
617         (WebCore::FocusNavigationScope::rootNode):
618         (WebCore::FocusNavigationScope::owner):
619         (WebCore::FocusNavigationScope::focusNavigationScopeOf):
620         (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):
621         (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByIFrame):
622         (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocument):
623         (WebCore::FocusController::advanceFocusInDocumentOrder):
624         (WebCore::FocusController::findFocusableNodeAcrossFocusScope):
625         (WebCore::FocusController::findFocusableNodeRecursively):
626         (WebCore::FocusController::findFocusableNode):
627         (WebCore::FocusController::nextFocusableNode):
628         (WebCore::FocusController::previousFocusableNode):
629         * page/FocusController.h:
630         (FocusNavigationScope):
631         (FocusController):
632
633 2012-07-24  Michael Saboff  <msaboff@apple.com>
634
635         Convert HTML parser to handle 8-bit resources without converting to UChar*
636         https://bugs.webkit.org/show_bug.cgi?id=90321
637
638         Reviewed by Geoffrey Garen.
639
640         No new tests, no new functionality therefore covered by existing tests.
641
642         Changed the parsing of HTML to handle 8-bit strings without converting the 
643         whole string to 16-bits.  Primary change was to use the appropriate 
644         character pointer type (LChar* or UChar*) depending on the source string.
645         This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
646         incrementAndGetCurrentChar{8,16} methods.  In SegmentedString, the advance()
647         and advanceAndUpdateLineNumber() methods have been refactored into a
648         state machine managed pair of function pointers.  The possible functions
649         have not only the 8 and 16 bitness factored out, they also have the 
650         "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
651         This provides a net speed-up even with the 8/16 bit testing.
652         Other changes involve using String methods to access and compare with the
653         source data.
654
655         * html/FTPDirectoryDocument.cpp:
656         (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
657         instead of SegmentedString '*' operator.
658         * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
659         SegmentedString '*' operator.
660         * html/parser/HTMLParserIdioms.cpp:
661         (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
662         * html/parser/HTMLSourceTracker.cpp:
663         (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
664         SegmentedString '*' operator.
665         * loader/cache/CachedScript.cpp:
666         (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
667         * platform/text/SegmentedString.cpp:
668         (WebCore::SegmentedString::SegmentedString):
669         (WebCore::SegmentedString::operator=):
670         (WebCore::SegmentedString::clear):
671         (WebCore::SegmentedString::append):
672         (WebCore::SegmentedString::prepend):
673         (WebCore::SegmentedString::advanceSubstring):
674         (WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current 
675         advance function.
676         (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
677         (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
678         (WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
679         path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
680         (WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
681         path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
682         (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
683         8 and 16 bit advance.
684         (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
685         advanceAndUpdateLineNumber function for both 8 and 16 bit data.
686         (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
687         * platform/text/SegmentedString.h:
688         (WebCore::SegmentedSubstring::SegmentedSubstring):
689         (WebCore::SegmentedSubstring::clear):
690         (SegmentedSubstring):
691         (WebCore::SegmentedSubstring::is8Bit): New getter.
692         (WebCore::SegmentedSubstring::appendTo):
693         (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
694         (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
695         (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
696         that pre-increments the 8 bit pointer and returns the next character.
697         (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
698         that pre-increments the 16 bit pointer and returns the next character.
699         (WebCore::SegmentedSubstring::currentSubString):
700         (WebCore::SegmentedSubstring::getCurrentChar):
701         (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
702         (WebCore::SegmentedString::SegmentedString):
703         (WebCore::SegmentedString::push):
704         (WebCore::SegmentedString::isEmpty):
705         (WebCore::SegmentedString::lookAhead):
706         (WebCore::SegmentedString::lookAheadIgnoringCase):
707         (WebCore::SegmentedString::advance):
708         (WebCore::SegmentedString::advanceAndUpdateLineNumber):
709         (WebCore::SegmentedString::advanceAndASSERT):
710         (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
711         (WebCore::SegmentedString::advancePastNonNewline):
712         (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
713         (WebCore::SegmentedString::currentChar):
714         (WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
715         functions.
716         (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
717         change to slow case functions when only one character left.
718         (WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
719         functions based on current substring.
720         (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
721         (WebCore::SegmentedString::lookAheadSlowCase):
722         * xml/parser/CharacterReferenceParserInlineMethods.h:
723         (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
724         SegmentedString '*' operator.
725         * xml/parser/MarkupTokenizerBase.h:
726         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
727         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
728         currentChar() instead of SegmentedString '*' operator.
729         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
730
731 2012-07-24  Kenneth Russell  <kbr@google.com>
732
733         [chromium] Hint garbage collector to run if page uses Canvas contexts
734         https://bugs.webkit.org/show_bug.cgi?id=76225
735
736         Reviewed by Kentaro Hara.
737
738         Upon creating a canvas context, set a hint in the current isolate
739         indicating that a full GC should be done upon the next page
740         navigation.
741
742         This improves Chrome's robustness on some WebGL stress tests which
743         simulate real-world behavior by repeatedly navigating among
744         several samples. More general measures are being investigated, but
745         this change makes V8 behave the same as JSC on these stress tests.
746         JSC doesn't currently use generational garbage collection, so it
747         has more opportunities to discover unreferenced canvas contexts.
748
749         Test: fast/canvas/webgl/context-creation-and-destruction.html
750
751         * bindings/v8/V8Binding.cpp:
752         (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
753             Initialize per-isolate low memory hint.
754         * bindings/v8/V8Binding.h:
755         (V8BindingPerIsolateData):
756         (WebCore::V8BindingPerIsolateData::setLowMemoryNotificationHint):
757             Set a per-isolate hint to signal a low memory condition upon the next page navigation.
758         (WebCore::V8BindingPerIsolateData::clearLowMemoryNotificationHint):
759             Clear the previously set hint.
760         (WebCore::V8BindingPerIsolateData::isLowMemoryNotificationHint):
761             Get the previously set hint.
762         * bindings/v8/V8Proxy.cpp:
763         (WebCore::V8Proxy::hintForGCIfNecessary):
764             If necessary, send V8 a hint that it should GC.
765         (WebCore):
766         (WebCore::V8Proxy::clearForClose):
767         (WebCore::V8Proxy::clearForNavigation):
768             Call hintForGCIfNecessary.
769         * bindings/v8/V8Proxy.h:
770         (V8Proxy):
771         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
772         (WebCore::V8HTMLCanvasElement::getContextCallback):
773             Set a hint that we should GC upon the next page navigation.
774
775 2012-07-24  Dave Tu  <dtu@chromium.org>
776
777         [chromium] Add time spent painting to GPU benchmarking renderingStats() API.
778         https://bugs.webkit.org/show_bug.cgi?id=90019
779
780         Reviewed by Adrienne Walker.
781
782         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
783         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
784         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
785         (BitmapCanvasLayerTextureUpdater):
786         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
787         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
788         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
789         (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::paintContentsRect):
790         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
791         (Texture):
792         (BitmapSkPictureCanvasLayerTextureUpdater):
793         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
794         (WebCore::CanvasLayerTextureUpdater::paintContents):
795         * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
796         (CanvasLayerTextureUpdater):
797         * platform/graphics/chromium/ContentLayerChromium.cpp:
798         (WebCore::ContentLayerChromium::update):
799         * platform/graphics/chromium/ContentLayerChromium.h:
800         (ContentLayerChromium):
801         * platform/graphics/chromium/ImageLayerChromium.cpp:
802         (WebCore::ImageLayerChromium::update):
803         * platform/graphics/chromium/ImageLayerChromium.h:
804         (ImageLayerChromium):
805         * platform/graphics/chromium/LayerChromium.h:
806         (WebCore):
807         (WebCore::LayerChromium::update):
808         * platform/graphics/chromium/LayerTextureUpdater.h:
809         (WebCore):
810         (WebCore::LayerTextureUpdater::Texture::prepareRect):
811         (WebCore::LayerTextureUpdater::prepareToUpdate):
812         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
813         (WebCore::ScrollbarLayerChromium::updatePart):
814         (WebCore::ScrollbarLayerChromium::update):
815         * platform/graphics/chromium/ScrollbarLayerChromium.h:
816         (ScrollbarLayerChromium):
817         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
818         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
819         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
820         (SkPictureCanvasLayerTextureUpdater):
821         * platform/graphics/chromium/TiledLayerChromium.cpp:
822         (WebCore::TiledLayerChromium::updateTiles):
823         (WebCore::TiledLayerChromium::updateContentRect):
824         * platform/graphics/chromium/TiledLayerChromium.h:
825         (TiledLayerChromium):
826         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
827         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
828         (WebCore::CCLayerTreeHost::updateAnimations):
829         (WebCore::CCLayerTreeHost::renderingStats):
830         (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
831         (WebCore::CCLayerTreeHost::paintLayerContents):
832         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
833         (WebCore):
834         (CCLayerTreeHost):
835         * platform/graphics/chromium/cc/CCRenderingStats.h:
836         (CCRenderingStats):
837         (WebCore::CCRenderingStats::CCRenderingStats):
838
839 2012-07-24  Jian Li  <jianli@chromium.org>
840
841         [V8] Correct WebIDL type should be used in the testing IDL file 
842         https://bugs.webkit.org/show_bug.cgi?id=92168
843
844         Reviewed by Kentaro Hara.
845
846         Updated bindings test.
847
848         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
849         (webkit_dom_test_obj_strict_function):
850         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
851         * bindings/scripts/test/JS/JSTestObj.cpp:
852         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
853         * bindings/scripts/test/TestObj.idl:
854         * bindings/scripts/test/V8/V8TestObj.cpp:
855         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
856         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
857         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
858         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
859         (WebCore::TestObjV8Internal::strictFunctionCallback):
860
861 2012-07-24  Kent Tamura  <tkent@chromium.org>
862
863         Unreviewed, rolling out r123191.
864         http://trac.webkit.org/changeset/123191
865         https://bugs.webkit.org/show_bug.cgi?id=91804
866
867         It might cause another performance regression.
868         http://code.google.com/p/chromium/issues/detail?id=138410
869
870         * html/FormController.cpp:
871         (FormKeyGenerator):
872         (WebCore::createKey):
873         (WebCore::FormKeyGenerator::formKey):
874         (WebCore::FormKeyGenerator::willDeleteForm):
875
876 2012-07-24  Vineet Chaudhary  <rgf748@motorola.com>
877
878         [JSBinding] Merging jsUnsignedLongArrayToVector() to toNativeArray() using traits.
879         https://bugs.webkit.org/show_bug.cgi?id=90381
880
881         Reviewed by Kentaro Hara.
882
883         We can remove jsUnsignedLongArrayToVector() implementaion
884         merging it to current and toNativeArray() traits.
885
886         Tests: TestObj.idl
887         There should be no behavoiral changes as just refactoring.
888
889         * Modules/vibration/NavigatorVibration.idl: Use sequence<T> as method param than T[]
890         * bindings/js/JSDOMBinding.cpp: Moved toJSSequence() to header file.
891         * bindings/js/JSDOMBinding.h:
892         (WebCore::toJSSequence): Moved toJSSequence() to header file.
893         (WebCore::jsArray): Renamed Traits to JSValueTraits
894         (WebCore::toNativeArray): Using traits.
895         * bindings/js/JSDictionary.cpp:
896         (WebCore::JSDictionary::convertValue):
897         * bindings/js/JSMessagePortCustom.cpp:
898         (WebCore::fillMessagePortArray):
899         * bindings/scripts/CodeGeneratorJS.pm: Removed unsigned long[] specific binding code.
900         (AddIncludesForType):
901         (GenerateParametersCheckExpression):
902         (JSValueToNative):
903         (NativeToJSValue):
904         * bindings/scripts/CodeGeneratorV8.pm:
905         (GenerateParametersCheckExpression): Added check sequence<T> check for overloaded methods.
906         * bindings/scripts/test/JS/JSTestObj.cpp: Rebased binding test.
907         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
908         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
909         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
910         * bindings/scripts/test/JS/JSTestObj.h: Rebased binding test.
911         * bindings/scripts/test/TestObj.idl: Added test for sequence<T> as method parameter.
912         * bindings/scripts/test/V8/V8TestObj.cpp: Rebased binding test.
913         (WebCore::TestObjV8Internal::overloadedMethod10Callback):
914         (TestObjV8Internal):
915         (WebCore::TestObjV8Internal::overloadedMethodCallback):
916
917 2012-07-24  Kwang Yul Seo  <skyul@company100.net>
918
919         Remove an invalid assertion introduced in r123536. Unreviewed.
920
921         * xml/parser/MarkupTokenBase.h:
922         (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
923
924 2012-07-24  Sheriff Bot  <webkit.review.bot@gmail.com>
925
926         Unreviewed, rolling out r123504.
927         http://trac.webkit.org/changeset/123504
928         https://bugs.webkit.org/show_bug.cgi?id=92169
929
930         broke a bunch of text-related tests in chromium mac debug
931         (Requested by zhenyao on #webkit).
932
933         * platform/text/cf/StringCF.cpp:
934         (WTF::String::createCFString):
935         * platform/text/cf/StringImplCF.cpp:
936         (WTF::StringImpl::createCFString):
937
938 2012-07-24  Kwang Yul Seo  <skyul@company100.net>
939
940         Ensure Noah's ark without reading the DOM tree.
941         https://bugs.webkit.org/show_bug.cgi?id=92065
942
943         Reviewed by Adam Barth.
944
945         Technically we shouldn't read attributes back from the DOM. If JavaScript changes
946         the attributes values, we could get a slightly wrong output here.
947
948         Read attributes from tokens saved in the active formatting element list.
949
950         No new tests, covered by existing tests.
951
952         * html/parser/HTMLFormattingElementList.cpp:
953         (WebCore::attributeCount):
954         (WebCore::HTMLFormattingElementList::append):
955         (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
956         (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
957         * html/parser/HTMLFormattingElementList.h:
958         (HTMLFormattingElementList):
959         * html/parser/HTMLStackItem.h:
960         (WebCore::HTMLStackItem::localName):
961         (HTMLStackItem):
962
963 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
964
965         Clear the external characters pointer of an AtomicHTMLToken before the raw token is cleared.
966         https://bugs.webkit.org/show_bug.cgi?id=92056
967
968         Reviewed by Adam Barth.
969
970         AtomicHTMLToken keeps a pointer to the HTMLToken's buffer instead of copying the
971         characters for performance. Clear the external characters pointer before the raw token
972         is cleared to make sure that we won't have a dangling pointer.
973
974         No new tests - no functional changes.
975
976         * html/parser/HTMLTreeBuilder.cpp:
977         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
978         * xml/parser/MarkupTokenBase.h:
979         (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
980         (AtomicMarkupTokenBase):
981
982 2012-07-24  Jian Li  <jianli@chromium.org>
983
984         Add per-context setting for html notifications
985         https://bugs.webkit.org/show_bug.cgi?id=91295
986
987         Reviewed by Adam Barth.
988
989         Added a new per-context setting to control the enabling of html notifications.
990         For chromium port, we're going to disable html notifications for web
991         pages, but still keep it enabled for extensions.
992
993         Also enhance V8 code generator to support V8EnabledPerContext attribute
994         for methods.
995
996         Updated the binding tests.
997
998         * Modules/notifications/NotificationCenter.cpp:
999         (WebCore::NotificationCenter::document): Expose document for being used by installPerContextProperties.
1000         (WebCore):
1001         * Modules/notifications/NotificationCenter.h:
1002         (NotificationCenter):
1003         * Modules/notifications/NotificationCenter.idl: Add V8EnabledPerContext attribute.
1004         * bindings/scripts/CodeGeneratorV8.pm: V8EnabledPerContext now supports methods.
1005         (GenerateHeader):
1006         (IsStandardFunction):
1007         (GenerateNonStandardFunction):
1008         (GenerateImplementation):
1009         (GenerateToV8Converters):
1010         (GetContextEnableFunction):
1011         * bindings/scripts/test/TestObj.idl: Add test case for V8EnabledPerContext methods.
1012         * bindings/scripts/test/V8/V8TestObj.cpp: Update test result.
1013         (WebCore::TestObjV8Internal::enabledAtContextMethod1Callback):
1014         (TestObjV8Internal):
1015         (WebCore::TestObjV8Internal::enabledAtContextMethod2Callback):
1016         (WebCore::V8TestObj::installPerContextProperties):
1017         (WebCore::V8TestObj::wrapSlow):
1018         * dom/ContextFeatures.cpp: Add a new per-context feature.
1019         (WebCore::ContextFeatures::htmlNotificationsEnabled):
1020         (WebCore):
1021         * dom/ContextFeatures.h: Add a new per-context feature.
1022
1023 2012-07-24  Sheriff Bot  <webkit.review.bot@gmail.com>
1024
1025         Unreviewed, rolling out r123499.
1026         http://trac.webkit.org/changeset/123499
1027         https://bugs.webkit.org/show_bug.cgi?id=92161
1028
1029         Android fails to compile (Requested by zhenyao on #webkit).
1030
1031         * GNUmakefile.list.am:
1032         * Modules/mediastream/MediaStream.cpp:
1033         (WebCore::MediaStream::MediaStream):
1034         (WebCore::MediaStream::addTrack):
1035         * Modules/mediastream/MediaStreamTrack.cpp:
1036         (WebCore::MediaStreamTrack::create):
1037         (WebCore::MediaStreamTrack::MediaStreamTrack):
1038         (WebCore::MediaStreamTrack::~MediaStreamTrack):
1039         (WebCore::MediaStreamTrack::setEnabled):
1040         * Modules/mediastream/MediaStreamTrack.h:
1041         (MediaStreamTrack):
1042         * Modules/mediastream/MediaStreamTrack.idl:
1043         * WebCore.gypi:
1044         * dom/EventNames.h:
1045         (WebCore):
1046         * dom/EventTargetFactory.in:
1047         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
1048         (WebKit):
1049         (WebKit::WebMediaStreamDescriptor::sources):
1050         * platform/chromium/support/WebMediaStreamSource.cpp:
1051         * platform/mediastream/MediaStreamSource.cpp: Removed.
1052         * platform/mediastream/MediaStreamSource.h:
1053         (WebCore::MediaStreamSource::create):
1054         (WebCore::MediaStreamSource::muted):
1055         (WebCore::MediaStreamSource::setMuted):
1056         (WebCore::MediaStreamSource::MediaStreamSource):
1057         (MediaStreamSource):
1058         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
1059         (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
1060         (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
1061
1062 2012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
1063
1064         Crash in RenderTableSection::layoutRows
1065         https://bugs.webkit.org/show_bug.cgi?id=92145
1066
1067         Reviewed by Abhishek Arya.
1068
1069         The crash came from the insertChildNode logic being confused and choosing the wrong
1070         renderer for insertion. This is because after r123159, table anonymous wrappers can
1071         be created as 'inline-table' and wouldn't pass the isAnonymousBlock() check.
1072
1073         This change also aligns the ancestor iteration with RenderBlock::addChildToAnonymousColumnBlocks.
1074
1075         Test: fast/table/crash-table-section-layoutRows.html
1076
1077         * rendering/RenderObjectChildList.cpp:
1078         (WebCore::RenderObjectChildList::insertChildNode):
1079         Changed the code to always get the right child. There is no justification to not
1080         walking up to the |owner|'s direct child in all cases.
1081
1082 2012-07-24  Tony Chang  <tony@chromium.org>
1083
1084         Make RenderBlock::paintChildren virtual so sub classes can change the paint order
1085         https://bugs.webkit.org/show_bug.cgi?id=92042
1086
1087         Reviewed by Ojan Vafai.
1088
1089         The flexbox spec says that the order property should change the paint order of flex children.
1090         To make that possible, make paintChildren virtual so RenderFlexibleBox can override it.
1091
1092         No new tests, this is just a refactoring.
1093
1094         * rendering/RenderBlock.cpp:
1095         (WebCore::RenderBlock::paintContents): Move some code out of paintChildren into paintContents.
1096         (WebCore::RenderBlock::paintChildren): Make virtual and just have it be a simple for loop.
1097         (WebCore::RenderBlock::paintChild): Move code out of paintChildren so subclasses can reuse.
1098         * rendering/RenderBlock.h:
1099         (RenderBlock): Make paintChildren virtual and protected so sub classes can call paintChild.
1100
1101 2012-07-24  Anna Cavender  <annacc@chromium.org>
1102
1103         Create SourceBuffer and SourceBufferList objects
1104         https://bugs.webkit.org/show_bug.cgi?id=91771
1105
1106         Reviewed by Eric Carlson.
1107
1108         SourceBuffer and SourceBufferList objects are needed in order to
1109         implement the new object-oriented MediaSource API:
1110         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
1111
1112         No new tests - will be able to test after landing BUGWK91775
1113
1114         Adding new files to build files:
1115         * CMakeLists.txt:
1116         * DerivedSources.cpp:
1117         * DerivedSources.make:
1118         * DerivedSources.pri:
1119         * GNUmakefile.am:
1120         * GNUmakefile.list.am:
1121         * Target.pri:
1122         * WebCore.gyp/WebCore.gyp:
1123         * WebCore.gypi:
1124         * WebCore.vcproj/WebCore.vcproj:
1125         * WebCore.vcproj/WebCoreCommon.vsprops:
1126         * WebCore.vcproj/copyForwardingHeaders.cmd:
1127         * WebCore.xcodeproj/project.pbxproj:
1128
1129         New objects:
1130         * Modules/mediasource/SourceBuffer.cpp: Added.
1131         * Modules/mediasource/SourceBuffer.h: Added.
1132         * Modules/mediasource/SourceBuffer.idl: Added.
1133         * Modules/mediasource/SourceBufferList.cpp: Added.
1134         * Modules/mediasource/SourceBufferList.h: Added.
1135         * Modules/mediasource/SourceBufferList.idl: Added.
1136
1137         New events:
1138         * dom/EventNames.h:
1139         (WebCore):
1140         * dom/EventTarget.h:
1141         (WebCore):
1142         * dom/EventTargetFactory.in:
1143
1144         Object constructors:
1145         * page/DOMWindow.idl:
1146
1147 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
1148
1149         Store the full year in GregorianDateTime
1150         https://bugs.webkit.org/show_bug.cgi?id=92067
1151
1152         Reviewed by Geoffrey Garen.
1153
1154         Use the full year instead of the offset from year 1900 
1155         for the year member variable of GregorianDateTime.
1156
1157         * bridge/qt/qt_runtime.cpp:
1158         (JSC::Bindings::convertValueToQVariant):
1159         (JSC::Bindings::convertQVariantToValue):
1160         * bridge/qt/qt_runtime_qt4.cpp:
1161         (JSC::Bindings::convertValueToQVariant):
1162         (JSC::Bindings::convertQVariantToValue):
1163
1164 2012-07-24  Benjamin Poulain  <bpoulain@apple.com>
1165
1166         Do not perform 8 to 16bits characters conversion when converting a WTFString to NSString/CFString
1167         https://bugs.webkit.org/show_bug.cgi?id=90720
1168
1169         Reviewed by Geoffrey Garen.
1170
1171         In most String to CFString conversion, we should be able to use the "NoCopy" constructor and have
1172         a relatively cheap conversion from WTF::String to CFString.
1173
1174         When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
1175         to String::characters().
1176
1177         This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
1178
1179         This is covered by existing tests.
1180
1181         * platform/text/cf/StringCF.cpp:
1182         (WTF::String::createCFString): CFSTR() create static CFString, it is unecessary to retain it.
1183         * platform/text/cf/StringImplCF.cpp:
1184         (WTF::StringImpl::createCFString): The logic to avoid the StringWrapperCFAllocator has also been simplified.
1185         The allocator creation is now closer to where it is useful.
1186
1187 2012-07-24  Kentaro Hara  <haraken@chromium.org>
1188
1189         [V8] String wrappers should be marked Independent
1190         https://bugs.webkit.org/show_bug.cgi?id=91251
1191
1192         Reviewed by Adam Barth.
1193
1194         Currently V8 String wrappers are not marked Independent.
1195         By marking them Independent, they can be reclaimed by the scavenger GC.
1196         Although I couldn't find a case where this change reduces memory usage,
1197         this change would be important for upcoming changes in string conversion
1198         between V8 and WebKit (https://bugs.webkit.org/show_bug.cgi?id=91850).
1199
1200         'm_lastStringImpl = 0' in StringCache::remove() is important.
1201         Look at the following code:
1202
1203             static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
1204             {
1205                 ...;
1206                 stringCache()->remove(stringImpl);
1207                 wrapper.Dispose();
1208             }
1209
1210             void StringCache::remove(StringImpl* stringImpl)
1211             {
1212                 ...
1213                 if (m_lastStringImpl.get() == stringImpl)
1214                     m_lastStringImpl = 0;
1215             }
1216
1217             v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, v8::Isolate* isolate)
1218             {
1219                 if (m_lastStringImpl.get() == stringImpl) {
1220                     return v8::Local<v8::String>::New(m_lastV8String); // m_lastV8String points to a wrapper object that was accessed most recently.
1221                 }
1222                 return v8ExternalStringSlow(stringImpl, isolate);
1223             }
1224
1225         Without 'm_lastStringImpl = 0', already disposed m_lastV8String can be used
1226         in v8ExternalString(). This was a cause of the crashes of r122614.
1227
1228         Tests: At the initial commit of this patch (r122614),
1229                the following tests had been broken due to missing 'm_lastStringImpl = 0'.
1230                fast/workers/worker-location.html
1231                Dromaeo/cssquery-jquery.html
1232                Dromaeo/jslib-event-jquery.html
1233                Dromaeo/jslib-style-jquery.html
1234                Dromaeo/jslib-style-prototype.html
1235
1236         * bindings/v8/V8Binding.cpp:
1237         (WebCore::StringCache::remove):
1238         (WebCore::StringCache::v8ExternalStringSlow):
1239
1240 2012-07-24  Tommy Widenflycht  <tommyw@google.com>
1241
1242         MediaStream API: Update MediaStreamTrack to match the specification
1243         https://bugs.webkit.org/show_bug.cgi?id=90180
1244
1245         Reviewed by Adam Barth.
1246
1247         MediaStreamTracks are now required to show the status of the underlying source,
1248         and trigger events when that status changes.
1249
1250         Test: fast/mediastream/MediaStreamTrack.html
1251
1252         * GNUmakefile.list.am:
1253         * Modules/mediastream/MediaStream.cpp:
1254         (WebCore::MediaStream::MediaStream):
1255         (WebCore::MediaStream::addTrack):
1256         * Modules/mediastream/MediaStreamTrack.cpp:
1257         (WebCore::MediaStreamTrack::create):
1258         (WebCore::MediaStreamTrack::MediaStreamTrack):
1259         (WebCore::MediaStreamTrack::~MediaStreamTrack):
1260         (WebCore::MediaStreamTrack::setEnabled):
1261         (WebCore::MediaStreamTrack::readyState):
1262         (WebCore):
1263         (WebCore::MediaStreamTrack::sourceChangedState):
1264         (WebCore::MediaStreamTrack::stop):
1265         (WebCore::MediaStreamTrack::interfaceName):
1266         (WebCore::MediaStreamTrack::scriptExecutionContext):
1267         (WebCore::MediaStreamTrack::eventTargetData):
1268         (WebCore::MediaStreamTrack::ensureEventTargetData):
1269         * Modules/mediastream/MediaStreamTrack.h:
1270         * Modules/mediastream/MediaStreamTrack.idl:
1271         * WebCore.gypi:
1272         * dom/EventNames.h:
1273         (WebCore):
1274         * dom/EventTargetFactory.in:
1275         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
1276         * platform/chromium/support/WebMediaStreamSource.cpp:
1277         (WebKit::WebMediaStreamSource::setReadyState):
1278         (WebKit):
1279         (WebKit::WebMediaStreamSource::readyState):
1280         * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
1281         (WebCore):
1282         (WebCore::MediaStreamSource::create):
1283         (WebCore::MediaStreamSource::MediaStreamSource):
1284         (WebCore::MediaStreamSource::setReadyState):
1285         (WebCore::MediaStreamSource::addObserver):
1286         (WebCore::MediaStreamSource::removeObserver):
1287         * platform/mediastream/MediaStreamSource.h:
1288         (Observer):
1289         (WebCore::MediaStreamSource::Observer::~Observer):
1290         (MediaStreamSource):
1291         (WebCore::MediaStreamSource::readyState):
1292         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
1293         (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
1294         (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
1295
1296 2012-07-24  Scott Graham  <scottmg@chromium.org>
1297
1298         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
1299         https://bugs.webkit.org/show_bug.cgi?id=91667
1300
1301         Reviewed by Tony Chang.
1302
1303         Using native tools instead of cygwin version improves build time
1304         performance by roughly 50% (on top of previous cl-instead-of-gcc
1305         change).
1306
1307         Also, use - instead of / for cl flags, otherwise preprocessing fails
1308         very slowly (due to retry loop). And, replace \ with / in gperf
1309         command line. Without this, gperf emits the filename literally in
1310         #line directives which causes VS to error with "unescaped \ in
1311         string". Bizarrely, building ColorData.cpp with those \ in place
1312         causes the IDE to exit with no error message, which was the cause of
1313         the previous canary failures.
1314
1315         No new tests.
1316
1317         * WebCore.gyp/WebCore.gyp:
1318         * WebCore.gyp/scripts/rule_bison.py:
1319         * bindings/scripts/preprocessor.pm:
1320         (applyPreprocessor):
1321         * make-hash-tools.pl:
1322
1323 2012-07-24  Daniel Cheng  <dcheng@chromium.org>
1324
1325         Files from drag and file <input> should use getMIMETypeForExtension to determine content type.
1326         https://bugs.webkit.org/show_bug.cgi?id=91702
1327
1328         Reviewed by Jian Li.
1329
1330         Awhile back, we changed File to only use getWellKnownMIMETypeForExtension to prevent web
1331         pages from being able to detect what applications a user has installed indirectly through
1332         the MIME types. However, some sites like YouTube's drag and drop uploader use MIME types
1333         that aren't in WebKit's internal list, so we relax the restriction for Files that originate
1334         from an user action.
1335
1336         * fileapi/File.cpp:
1337         (WebCore::getContentTypeFromFileName):
1338         (WebCore::createBlobDataForFile):
1339         (WebCore::createBlobDataForFileWithName):
1340         (WebCore::createBlobDataForFileWithMetadata):
1341         (WebCore::File::createWithRelativePath):
1342         (WebCore::File::File):
1343         * fileapi/File.h:
1344         (File):
1345         (WebCore::File::create):
1346         (WebCore::File::createWithName):
1347         * html/FileInputType.cpp:
1348         (WebCore::FileInputType::createFileList):
1349         * platform/chromium/ChromiumDataObject.cpp:
1350         (WebCore::ChromiumDataObject::addFilename):
1351         * platform/gtk/ClipboardGtk.cpp:
1352         (WebCore::ClipboardGtk::files):
1353         * platform/mac/ClipboardMac.mm:
1354         (WebCore::ClipboardMac::files):
1355         * platform/qt/ClipboardQt.cpp:
1356         (WebCore::ClipboardQt::files):
1357         * platform/win/ClipboardWin.cpp:
1358         (WebCore::ClipboardWin::files):
1359
1360 2012-07-24  Vsevolod Vlasov  <vsevik@chromium.org>
1361
1362         Web Inspector: Snippets UI polish
1363         https://bugs.webkit.org/show_bug.cgi?id=92142
1364
1365         Reviewed by Pavel Feldman.
1366
1367         Changed snippets context menu items.
1368         Added run snippet status bar button.
1369         Removed unused edit source button.
1370
1371         * English.lproj/localizedStrings.js:
1372         * inspector/front-end/Images/statusbarButtonGlyphs.png:
1373         * inspector/front-end/ScriptSnippetModel.js:
1374         (WebInspector.SnippetJavaScriptSourceFrame):
1375         (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
1376         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
1377         * inspector/front-end/ScriptsNavigator.js:
1378         (WebInspector.SnippetsNavigatorView.prototype.getOrCreateFolderTreeElement):
1379         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
1380         * inspector/front-end/ScriptsPanel.js:
1381         (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
1382         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1383         * inspector/front-end/SourceFrame.js:
1384         (WebInspector.SourceFrame.prototype.statusBarItems):
1385         * inspector/front-end/inspector.css:
1386         * inspector/front-end/scriptsPanel.css:
1387         (.evaluate-snippet-status-bar-item .glyph):
1388         (.evaluate-snippet-status-bar-item.toggled .glyph):
1389
1390 2012-07-24  Nico Weber  <thakis@chromium.org>
1391
1392         [chromium/mac] Remove webcore_resource_files from WebCore.gypi
1393         https://bugs.webkit.org/show_bug.cgi?id=92129
1394
1395         Reviewed by Adam Barth.
1396
1397         It was added in http://trac.webkit.org/changeset/81706/trunk/Source/WebCore/WebCore.gypi .
1398         The changes in that revision were mostly reverted in http://trac.webkit.org/changeset/119921 ,
1399         but this block was forgotten. Since it just confused me for a bit, remove it.
1400
1401         * WebCore.gyp/WebCore.gyp:
1402
1403 2012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
1404
1405         inline-table wrapper should be generated for display: inline element only
1406         https://bugs.webkit.org/show_bug.cgi?id=92054
1407
1408         Reviewed by Abhishek Arya.
1409
1410         CSS 2.1 only takes into account the display when determining if we should generate
1411         an inline-table. My misreading of the spec would make us generate an inline-table
1412         wrapper for any inline formatting context.
1413
1414         Test: fast/table/inline-block-generates-table-wrapper.html
1415
1416         * rendering/RenderTable.cpp:
1417         (WebCore::RenderTable::createAnonymousWithParentRenderer):
1418         Changed to use display instead of isInline to properly match the spec.
1419
1420 2012-07-24  Alec Flett  <alecflett@chromium.org>
1421
1422         IndexedDB: Temporarily continue generating backend keys for empty key lists
1423         https://bugs.webkit.org/show_bug.cgi?id=92012
1424
1425         Reviewed by Tony Chang.
1426
1427         Temporarily change key behavior to allow chromium in_process_webkit
1428         to call putWithIndexKeys without inadvertently preventing index
1429         key generation. Note this is temporary until frontend key generation
1430         patch lands.
1431
1432         No new tests, this is part of a refactor that doesn't change behavior.
1433
1434         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1435         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1436
1437 2012-07-24  Pavel Feldman  <pfeldman@chromium.org>
1438
1439         Web Inspector: introduce UISourceCodeFrame.
1440         https://bugs.webkit.org/show_bug.cgi?id=92124
1441
1442         Reviewed by Vsevolod Vlasov.
1443
1444         Generic implementation of SourceFrame over UISourceCode added.
1445
1446         * WebCore.gypi:
1447         * WebCore.vcproj/WebCore.vcproj:
1448         * inspector/compile-front-end.py:
1449         * inspector/front-end/ScriptsPanel.js:
1450         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1451         * inspector/front-end/StylesPanel.js:
1452         * inspector/front-end/UISourceCodeFrame.js: Added.
1453         (WebInspector.UISourceCodeFrame):
1454         (WebInspector.UISourceCodeFrame.prototype.canEditSource):
1455         (WebInspector.UISourceCodeFrame.prototype.commitEditing):
1456         (WebInspector.UISourceCodeFrame.prototype.afterTextChanged):
1457         (WebInspector.UISourceCodeFrame.prototype._didEditContent):
1458         (WebInspector.UISourceCodeFrame.prototype._onContentChanged):
1459         (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu):
1460         * inspector/front-end/WebKit.qrc:
1461         * inspector/front-end/inspector.html:
1462
1463 2012-07-24  Dan Bernstein  <mitz@apple.com>
1464
1465         <rdar://problem/11945102> REGRESSION (r109451): Overlay scrollbars always use the default style, regardless of background color
1466         https://bugs.webkit.org/show_bug.cgi?id=92115
1467
1468         Reviewed by Mark Rowe.
1469
1470         * platform/Scrollbar.cpp:
1471         (WebCore::Scrollbar::scrollbarOverlayStyle): Reversed an incorrect null check.
1472
1473 2012-07-24  Andrew Wilson  <atwilson@chromium.org>
1474
1475         Another prospective build fix for Chromium. Unreviewed.
1476
1477         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
1478
1479 2012-07-24  Andrew Wilson  <atwilson@chromium.org>
1480
1481         Unreviewed prospective build fix for Chromium. Changed include of hb.h in HarfBuzzNGFace.h
1482
1483         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
1484
1485 2012-07-24  Dominik Röttsches  <dominik.rottsches@intel.com>
1486
1487         HarfBuzzFaceNG.h forward declarations conflict with newer versions of Harfbuzz
1488         https://bugs.webkit.org/show_bug.cgi?id=92103
1489
1490         Reviewed by Philippe Normand.
1491
1492         As preparation for enabling harfbuzz-ng for EFL, I would like to include the header
1493         here since the forward declarations are conflicting with the harfbuzz version
1494         we will use for EFL.
1495
1496         No new tests, no change in behavior.
1497
1498         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
1499
1500 2012-07-24  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1501
1502         Fix blend filter for autovectorizing
1503         https://bugs.webkit.org/show_bug.cgi?id=91398
1504
1505         Reviewed by Nikolas Zimmermann.
1506
1507         To support auto-vectorizing, the loop had to be unswitched, and regular arrays used that 
1508         did not do boundary-checks in the inner loop. Finally the integer division by 255
1509         was optimized not use integer division intrinsics.
1510
1511         On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
1512
1513         * platform/graphics/filters/FEBlend.cpp:
1514         (WebCore::fastDivideBy255):
1515         (BlendNormal):
1516         (WebCore::BlendNormal::apply):
1517         (BlendMultiply):
1518         (WebCore::BlendMultiply::apply):
1519         (BlendScreen):
1520         (WebCore::BlendScreen::apply):
1521         (BlendDarken):
1522         (WebCore::BlendDarken::apply):
1523         (BlendLighten):
1524         (WebCore::BlendLighten::apply):
1525         (BlendUnknown):
1526         (WebCore::BlendUnknown::apply):
1527         (WebCore::platformApply):
1528         (WebCore::FEBlend::platformApplyGeneric):
1529         (WebCore::FEBlend::platformApplySoftware):
1530         * platform/graphics/filters/FEBlend.h:
1531         (FEBlend):
1532
1533 2012-07-23  Hans Wennborg  <hans@chromium.org>
1534
1535         Speech JavaScript API: Add the SpeechRecognitionResult.emma attribute
1536         https://bugs.webkit.org/show_bug.cgi?id=91743
1537
1538         Reviewed by Adam Barth.
1539
1540         Implement the 'emma' attribute as described in the spec draft at
1541         http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
1542
1543         Test: fast/speech/scripted/emma.html
1544
1545         * Modules/speech/SpeechRecognitionResult.cpp:
1546         (WebCore::SpeechRecognitionResult::~SpeechRecognitionResult):
1547         (WebCore):
1548         (WebCore::SpeechRecognitionResult::emma):
1549         * Modules/speech/SpeechRecognitionResult.h:
1550         (WebCore):
1551         (SpeechRecognitionResult):
1552         * Modules/speech/SpeechRecognitionResult.idl:
1553         * WebCore.gypi:
1554         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
1555         (WebCore):
1556         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
1557           We need to add an implicit reference from the result object to the
1558           emma object to keep the latters DOM tree alive across
1559           garbage-collection.
1560
1561 2012-07-24  Andrei Poenaru  <poenaru@adobe.com>
1562
1563         Web Inspector: Protocol Extension: add getFlowByName command
1564         https://bugs.webkit.org/show_bug.cgi?id=91855
1565
1566         Reviewed by Pavel Feldman.
1567
1568         The "getFlowByName" command should return a NamedFlow for a given document and name.
1569
1570         Test: inspector/styles/protocol-css-regions-commands.html
1571
1572         * inspector/Inspector.json:
1573         * inspector/InspectorCSSAgent.cpp:
1574         (WebCore::InspectorCSSAgent::getFlowByName):
1575         (WebCore):
1576         * inspector/InspectorCSSAgent.h:
1577         (InspectorCSSAgent):
1578         * inspector/front-end/CSSStyleModel.js:
1579         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
1580         (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
1581         (WebInspector.NamedFlow):
1582         (WebInspector.NamedFlow.parsePayload):
1583
1584 2012-07-23  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
1585
1586         [Qt] Fix compilation against namespaced Qt
1587
1588         Reviewed by Simon Hausmann.
1589
1590         * platform/graphics/Font.h:
1591         * platform/network/ResourceHandleInternal.h:
1592         * platform/qt/ThirdPartyCookiesQt.h:
1593
1594 2012-07-24  Anthony Scian  <ascian@rim.com>
1595
1596         Web Inspector [JSC]: Enable initiator column in network panel.
1597         https://bugs.webkit.org/show_bug.cgi?id=65533
1598
1599         Reviewed by Vsevolod Vlasov.
1600
1601         With 40118 fixed for webkit, Preferences.displayInitiator should be set to true.
1602         Removed references to it since the optionality is no longer required.
1603
1604         Test: http/tests/inspector/network/network-initiator.html
1605
1606         * inspector/front-end/NetworkPanel.js:
1607         (WebInspector.NetworkLogView.prototype._createTable):
1608         (WebInspector.NetworkLogView.prototype.switchToDetailedView):
1609         (WebInspector.NetworkLogView.prototype.switchToBriefView):
1610         (WebInspector.NetworkDataGridNode.prototype.createCells):
1611         (WebInspector.NetworkDataGridNode.prototype.refreshRequest):
1612         * inspector/front-end/Settings.js:
1613
1614 2012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1615
1616         Missing *explicit* keyword in dom and page.
1617         https://bugs.webkit.org/show_bug.cgi?id=92074
1618
1619         Reviewed by Kentaro Hara.
1620
1621         Some constructors missed to use *explicit* keyword. They need to be added
1622         *explicit* keyword to contructor which has a parameter in order to avoid
1623         implicit type conversion.
1624
1625         Some files in dom directory can't use explicit keyword because of build breaks.
1626
1627         No new tests. Covered by existing tests.
1628
1629         * dom/BeforeLoadEvent.h:
1630         (WebCore::BeforeLoadEvent::BeforeLoadEvent):
1631         * dom/BeforeTextInsertedEvent.h:
1632         (BeforeTextInsertedEvent):
1633         * dom/ChildListMutationScope.h:
1634         (WebCore::ChildListMutationScope::ChildListMutationScope):
1635         * dom/ChildNodeList.h:
1636         (ChildNodeList):
1637         * dom/ClientRect.h:
1638         (ClientRect):
1639         * dom/ClientRectList.h:
1640         (ClientRectList):
1641         * dom/ComposedShadowTreeWalker.h:
1642         (ComposedShadowTreeParentWalker):
1643         * dom/DOMCoreException.h:
1644         (WebCore::DOMCoreException::DOMCoreException):
1645         * dom/DOMImplementation.h:
1646         (DOMImplementation):
1647         * dom/DatasetDOMStringMap.h:
1648         (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
1649         * dom/DeviceMotionController.h:
1650         (DeviceMotionController):
1651         * dom/DeviceOrientationController.h:
1652         (DeviceOrientationController):
1653         * dom/DocumentParser.h:
1654         (DocumentParser):
1655         * dom/EventException.h:
1656         (WebCore::EventException::EventException):
1657         * dom/EventListener.h:
1658         (WebCore::EventListener::EventListener):
1659         * dom/ExceptionBase.h:
1660         (ExceptionBase):
1661         * dom/GenericEventQueue.h:
1662         (GenericEventQueue):
1663         * dom/KeyboardEvent.h:
1664         (WebCore::KeypressCommand::KeypressCommand):
1665         * dom/MemoryInstrumentation.h:
1666         (WebCore::MemoryObjectInfo::MemoryObjectInfo):
1667         * dom/MessageChannel.h:
1668         (MessageChannel):
1669         * dom/MessagePort.h:
1670         (MessagePort):
1671         * dom/MessagePortChannel.h:
1672         (MessagePortChannel):
1673         * dom/MutationObserver.h:
1674         * dom/NamedNodeMap.h:
1675         (WebCore::NamedNodeMap::NamedNodeMap):
1676         * dom/NodeFilter.h:
1677         (WebCore::NodeFilter::NodeFilter):
1678         * dom/NodeWithIndex.h:
1679         (WebCore::NodeWithIndex::NodeWithIndex):
1680         * dom/Range.h:
1681         * dom/RangeException.h:
1682         (WebCore::RangeException::RangeException):
1683         * dom/RawDataDocumentParser.h:
1684         (WebCore::RawDataDocumentParser::RawDataDocumentParser):
1685         * dom/ScriptRunner.h:
1686         (ScriptRunner):
1687         * dom/SelectorQuery.h:
1688         (SelectorQuery):
1689         * dom/ShadowRoot.h:
1690         (ShadowRoot):
1691         * dom/SpaceSplitString.h:
1692         (SpaceSplitStringData):
1693         * dom/StaticHashSetNodeList.h:
1694         (StaticHashSetNodeList):
1695         * dom/StaticNodeList.h:
1696         (WebCore::StaticNodeList::StaticNodeList):
1697         * dom/TransformSource.h:
1698         (TransformSource):
1699         * dom/TreeScope.h:
1700         (TreeScope):
1701         * dom/WebKitNamedFlowCollection.h:
1702         (WebKitNamedFlowCollection):
1703         * page/EventHandler.h:
1704         (EventHandler):
1705         * page/FocusController.h:
1706         (FocusController):
1707         * page/FrameView.h:
1708         (FrameView):
1709         * page/MemoryInfo.h:
1710         (MemoryInfo):
1711         * page/Page.h:
1712         (Page):
1713         * page/PageGroup.h:
1714         (PageGroup):
1715         * page/PrintContext.h:
1716         (PrintContext):
1717         * page/Settings.h:
1718         (Settings):
1719         * page/SpeechInput.h:
1720         (SpeechInput):
1721         * page/SpeechInputResultList.h:
1722         (SpeechInputResultList):
1723         * page/WebKitAnimation.h:
1724         * page/WindowFeatures.h:
1725         (WindowFeatures):
1726         * page/WorkerNavigator.h:
1727         (WorkerNavigator):
1728
1729 2012-07-24  Kent Tamura  <tkent@chromium.org>
1730
1731         Replace some callsites of shadowAncestorNode() with shadowHost()
1732         https://bugs.webkit.org/show_bug.cgi?id=92060
1733
1734         Reviewed by Hajime Morita.
1735
1736         shadowAncestorNode() is deprecated.
1737
1738         No new tests. This shouldn't change behaviors.
1739
1740         * html/shadow/MediaControlElements.cpp:
1741         (WebCore::toParentMediaElement):
1742         * html/shadow/TextControlInnerElements.h:
1743         (WebCore::SpinButtonElement::isEnabledFormControl):
1744         (WebCore::SpinButtonElement::isReadOnlyFormControl):
1745         * platform/efl/RenderThemeEfl.cpp:
1746         (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
1747         (WebCore::RenderThemeEfl::paintMediaMuteButton):
1748         * platform/gtk/RenderThemeGtk.cpp:
1749         (WebCore::getMediaElementFromRenderObject):
1750         (WebCore::centerRectVerticallyInParentInputElement):
1751         * platform/qt/RenderThemeQt.cpp:
1752         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
1753         (WebCore::RenderThemeQt::paintMediaSliderThumb):
1754         Removed an ASSERT() because nullness of o->node() is already asserted.
1755         * rendering/RenderInputSpeech.cpp:
1756         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
1757         * rendering/RenderMediaControlsChromium.cpp:
1758         (WebCore::paintMediaSliderThumb):
1759         Passing shadowHost() to toParentMediaElement(), which accepts 0 and will return 0.
1760         (WebCore::paintMediaVolumeSliderThumb): ditto.
1761         * rendering/RenderThemeChromiumSkia.cpp:
1762         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
1763         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
1764         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
1765         * rendering/RenderThemeMac.mm:
1766         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1767         Remove an ASSERT(input) because input never be null unless o->node() is
1768         null. If o->node() is null, this function crashes.
1769         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
1770         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
1771         (WebCore::RenderThemeMac::paintMediaMuteButton):
1772         It's ok to ignore "node is a media element" case because this function
1773         works only if node->isMediaControlElement().
1774         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
1775         (WebCore::RenderThemeMac::paintMediaSliderTrack): ditto.
1776         * rendering/RenderThemeSafari.cpp:
1777         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
1778         Remove an ASSERT(input) because input never be null unless o->node() is
1779         null. If o->node() is null, this function crashes.
1780         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): ditto.
1781         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): ditto.
1782         * rendering/RenderThemeWinCE.cpp:
1783         (WebCore::mediaElementParent):
1784
1785 2012-07-24  Peter Beverloo  <peter@chromium.org>
1786
1787         [Chromium] Build fix for Android after r123424
1788         https://bugs.webkit.org/show_bug.cgi?id=92082
1789
1790         Unreviewed build fix.
1791
1792         Mark removed the PlatformSupport.h header from ScrollbarThemeChromiumAndroid.cpp
1793         in r123424, while there still are two references left to another method and a
1794         constant. Re-add the include directive.
1795
1796         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
1797
1798 2012-07-24  Kentaro Hara  <haraken@chromium.org>
1799
1800         [JSC] REGRESSION(r122912): CodeGeneratorJS.pm generates wrong code
1801         for static attributes in supplemental IDL files
1802         https://bugs.webkit.org/show_bug.cgi?id=91925
1803
1804         Reviewed by Adam Barth.
1805
1806         r122912 implemented static attributes in CodeGeneratorJS.pm.
1807         However, it generates wrong code for static attributes in supplemental
1808         IDL files. This patch fixes it as shown in JSTestInterface.cpp.
1809         This fix aligns with the fix in CodeGeneratorV8.pm (r123308).
1810
1811         Test: bindings/scripts/test/TestSupplemental.idl
1812
1813         * bindings/scripts/CodeGeneratorJS.pm:
1814         (GenerateImplementation):
1815         * bindings/scripts/test/JS/JSTestInterface.cpp:
1816         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
1817         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
1818         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
1819
1820 2012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1821
1822         Add *explicit* keyword to constructor which has a parameter in bridge, history, loader and plugins.
1823         https://bugs.webkit.org/show_bug.cgi?id=92064
1824
1825         Reviewed by Kentaro Hara.
1826
1827         Some constructors missed to use *explicit* keyword. They need to be added
1828         *explicit* keyword to contructor which has a parameter in order to avoid
1829         implicit type conversion.
1830
1831         No new tests. Covered by existing tests.
1832
1833         * bridge/IdentifierRep.h:
1834         (WebCore::IdentifierRep::IdentifierRep):
1835         * history/BackForwardListImpl.h:
1836         (BackForwardListImpl):
1837         * history/CachedFrame.h:
1838         (CachedFrame):
1839         * history/HistoryItem.h:
1840         (HistoryItem):
1841         * loader/DocumentWriter.h:
1842         (DocumentWriter):
1843         * loader/FrameNetworkingContext.h:
1844         (WebCore::FrameNetworkingContext::FrameNetworkingContext):
1845         * loader/HistoryController.h:
1846         * loader/ImageLoader.h:
1847         (ImageLoader):
1848         * loader/LinkLoader.h:
1849         (LinkLoader):
1850         * loader/MainResourceLoader.h:
1851         (MainResourceLoader):
1852         * loader/NavigationAction.h:
1853         (NavigationAction):
1854         * loader/NavigationScheduler.h:
1855         (NavigationScheduler):
1856         * loader/PolicyChecker.h:
1857         (PolicyChecker):
1858         * loader/SubframeLoader.h:
1859         (SubframeLoader):
1860         * loader/ThreadableLoaderClientWrapper.h:
1861         (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
1862         * plugins/PluginData.h:
1863         (PluginData):
1864         * plugins/PluginViewBase.h:
1865         (WebCore::PluginViewBase::PluginViewBase):
1866
1867 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
1868
1869         [Qt] Fix conversion from GregorianDateTime to QTime
1870         https://bugs.webkit.org/show_bug.cgi?id=92068
1871
1872         Reviewed by Simon Hausmann.
1873
1874         * bridge/qt/qt_runtime.cpp:
1875         (JSC::Bindings::convertValueToQVariant):
1876         * bridge/qt/qt_runtime_qt4.cpp:
1877         (JSC::Bindings::convertValueToQVariant):
1878
1879 2012-07-24  Arko Saha  <arko@motorola.com>
1880
1881         Microdata: Implement PropertyNodeList interface.
1882         https://bugs.webkit.org/show_bug.cgi?id=80269
1883
1884         Reviewed by Ryosuke Niwa.
1885
1886         Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
1887         returns NodeList object. Made changes so that it will return PropertyNodeList object.
1888
1889         Implemented propertyNodeList.getValues() method. It returns an array of various values. Its
1890         values are obtained from the "itemValue" DOM property of each of the elements represented by
1891         the object, in tree order.
1892
1893         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist
1894
1895         Tests: fast/dom/MicroData/nameditem-returns-propertynodelist.html
1896                fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
1897                fast/dom/MicroData/propertynodelist-getvalues-test.html
1898                fast/dom/MicroData/propertynodelist-test-add-remove-element.html
1899
1900         * CMakeLists.txt:
1901         * DerivedSources.cpp:
1902         * DerivedSources.make:
1903         * DerivedSources.pri:
1904         * GNUmakefile.list.am:
1905         * Target.pri:
1906         * UseJSC.cmake:
1907         * UseV8.cmake:
1908         * WebCore.gypi:
1909         * WebCore.vcproj/WebCore.vcproj:
1910         * WebCore.xcodeproj/project.pbxproj:
1911         * bindings/gobject/GNUmakefile.am:
1912         * bindings/js/JSBindingsAllInOne.cpp:
1913         * bindings/js/JSMicroDataItemValueCustom.cpp: Added.
1914         (WebCore):
1915         (WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
1916         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
1917         (WebCore):
1918         (WebCore::toV8): Added toV8 custom code.
1919         * dom/DynamicNodeList.cpp:
1920         (WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
1921         (WebCore):
1922         (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute): Returns true if owner node has itemref attribute
1923         specified with root type NodeListRootedAtDocumentIfOwnerHasItemrefAttr.
1924         (WebCore::DynamicNodeListCacheBase::invalidateCache):
1925         (WebCore::DynamicNodeList::itemWithName): Update itemrefElements cache if root type is
1926         NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
1927         * dom/DynamicNodeList.h: Added m_hasItemRefElements in DynamicNodeListCacheBase to check if itemRefElmenets cache
1928         is valid.
1929         (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
1930         (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
1931         (DynamicNodeListCacheBase):
1932         (WebCore::DynamicNodeListCacheBase::isItemRefElementsCacheValid):
1933         (WebCore::DynamicNodeListCacheBase::setItemRefElementsCacheValid):
1934         (WebCore::DynamicNodeListCacheBase::rootType): Returns cached root type.
1935         (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Invalidate NodeListCache on itemref
1936         attribute change.
1937         * dom/Node.cpp:
1938         (WebCore::Node::propertyNodeList):
1939         * dom/Node.h:
1940         (WebCore):
1941         (Node):
1942         * dom/PropertyNodeList.cpp: Added.
1943         (WebCore):
1944         (WebCore::PropertyNodeList::PropertyNodeList):
1945         (WebCore::PropertyNodeList::~PropertyNodeList):
1946         (WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
1947         item.
1948         (WebCore::PropertyNodeList::updateRefElements):
1949         (WebCore::PropertyNodeList::nodeMatches):
1950         (WebCore::PropertyNodeList::getValues): Returns PropertyValueArray whose values are obtained from the
1951         itemValue DOM property of each of the elements represented by the object, in tree order.
1952         * dom/PropertyNodeList.h: Added.
1953         (WebCore):
1954         (PropertyNodeList):
1955         (WebCore::PropertyNodeList::create):
1956         * dom/PropertyNodeList.idl: Added.
1957         * html/HTMLCollection.cpp:
1958         (WebCore::DynamicNodeListCacheBase::itemCommon): Update itemrefElements cache if its a NodeListCollectionType with
1959         root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
1960         * html/HTMLElement.cpp:
1961         (WebCore::HTMLElement::properties):
1962         (WebCore):
1963         (WebCore::HTMLElement::getItemRefElements): Returns the ItemRefElements list of given element. Added this
1964         method to share the code between HTMLPropertiesCollection and PropertyNodeList to update itemRefElements.
1965         * html/HTMLElement.h:
1966         (HTMLElement):
1967         * html/HTMLPropertiesCollection.cpp:
1968         (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
1969         (WebCore::HTMLPropertiesCollection::updateRefElements):
1970         (WebCore::HTMLPropertiesCollection::updateNameCache):
1971         (WebCore::HTMLPropertiesCollection::namedItem): Return PropertyNodeList object instead of NodeList.
1972         (WebCore::HTMLPropertiesCollection::hasNamedItem): Return true if it finds an item with given
1973         name in the properties collection.
1974         * html/HTMLPropertiesCollection.h: Removed m_hasItemRefElements member variable, now DynamicNodeListCacheBase
1975         has isItemRefElementsCacheValid. Also removed m_hasPropertyNameCache, as DynamicNodeListCacheBase already has
1976         hasNameCache() and setHasNameCache().
1977         (WebCore):
1978         (HTMLPropertiesCollection):
1979         (WebCore::HTMLPropertiesCollection::invalidateCache):
1980         (WebCore::HTMLPropertiesCollection::updatePropertyCache):
1981         * html/HTMLPropertiesCollection.idl:
1982         * html/MicroDataItemValue.idl: Added.
1983         * page/DOMWindow.idl:
1984
1985 2012-07-24  Kentaro Hara  <haraken@chromium.org>
1986
1987         [JSC] REGRESSION(r122912): CodeGeneratorJS.pm should not
1988         implicitly assume ScriptExecutionContext for static attributes
1989         https://bugs.webkit.org/show_bug.cgi?id=91924
1990
1991         Reviewed by Adam Barth.
1992
1993         r122912 implemented static attributes in CodeGeneratorJS.pm.
1994         However, the generated code assumes that static attributes
1995         always require ScriptExecutionContext, which is wrong.
1996         If we need a ScriptExecutionContext, we should specify
1997         [CallWith=ScriptExecutionContext].
1998
1999         This patch fixes CodeGeneratorJS.pm so that static attributes
2000         do not assume ScriptExecutionContext. This fix aligns with
2001         the fix in CodeGeneratorV8.pm in r123308.
2002
2003         Test: bindings/scripts/test/TestObj.idl
2004
2005         * bindings/scripts/CodeGeneratorJS.pm:
2006         (GenerateImplementation):
2007         * bindings/scripts/test/JS/JSTestInterface.cpp:
2008         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
2009         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
2010         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
2011         * bindings/scripts/test/JS/JSTestObj.cpp:
2012         (WebCore::jsTestObjConstructorStaticReadOnlyIntAttr):
2013         (WebCore::jsTestObjConstructorStaticStringAttr):
2014         (WebCore::setJSTestObjConstructorStaticStringAttr):
2015
2016 2012-07-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2017
2018         Missing *explicit* keyword in editing.
2019         https://bugs.webkit.org/show_bug.cgi?id=92055
2020
2021         Reviewed by Ryosuke Niwa.
2022
2023         Some constructors missed to use *explicit* keyword. They need to be added
2024         *explicit* keyword to contructor which has a parameter in order to avoid
2025         implicit type conversion.
2026
2027         No new tests. Covered by existing tests.
2028
2029         * editing/AlternativeTextController.h:
2030         (WebCore::AlternativeTextController::UNLESS_ENABLED):
2031         * editing/BreakBlockquoteCommand.h:
2032         (BreakBlockquoteCommand):
2033         * editing/DeleteButton.h:
2034         (DeleteButton):
2035         * editing/DeleteButtonController.h:
2036         (DeleteButtonController):
2037         * editing/EditCommand.h:
2038         (EditCommand):
2039         (WebCore::SimpleEditCommand::SimpleEditCommand):
2040         * editing/EditingBehavior.h:
2041         (WebCore::EditingBehavior::EditingBehavior):
2042         * editing/EditingStyle.h:
2043         (EditingStyle):
2044         * editing/Editor.h:
2045         (Editor):
2046         * editing/FrameSelection.h:
2047         (FrameSelection):
2048         * editing/InsertLineBreakCommand.h:
2049         (InsertLineBreakCommand):
2050         * editing/ModifySelectionListLevel.h:
2051         (ModifySelectionListLevelCommand):
2052         (DecreaseSelectionListLevelCommand):
2053         * editing/RemoveFormatCommand.h:
2054         (RemoveFormatCommand):
2055         * editing/RemoveNodeCommand.h:
2056         (RemoveNodeCommand):
2057         * editing/RemoveNodePreservingChildrenCommand.h:
2058         (RemoveNodePreservingChildrenCommand):
2059         * editing/ReplaceNodeWithSpanCommand.h:
2060         (ReplaceNodeWithSpanCommand):
2061         * editing/TextInsertionBaseCommand.h:
2062         (TextInsertionBaseCommand):
2063         * editing/UndoManager.h:
2064         (UndoManager):
2065         * editing/UnlinkCommand.h:
2066         (UnlinkCommand):
2067         * editing/WrapContentsInDummySpanCommand.h:
2068         (WrapContentsInDummySpanCommand):
2069
2070 2012-07-23  Dominic Mazzoni  <dmazzoni@google.com>
2071
2072         AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
2073         https://bugs.webkit.org/show_bug.cgi?id=87899
2074
2075         Reviewed by Chris Fleizach.
2076
2077         Refactors AccessibilityRenderObject so that it inherits from a new class,
2078         AccessibilityNodeObject, that can be constructed from a Node without a
2079         renderer. Modifies AXObjectCache so that it automatically creates an
2080         AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
2081         A new layout test verifies that this correctly exposes an accessibility
2082         tree with appropriate roles for elements in a canvas subtree.
2083
2084         This patch does not try to complete the implementation of
2085         AccessibilityNodeObject. Most AX methods are still unimplemented and need
2086         to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
2087         in a future patch.
2088         
2089         This patch also doesn't change anything outside of WebCore/accessibility, so
2090         the rest of WebCore only calls AXObjectCache when there are changes to a
2091         RenderObject, not to a Node. Accessible notifications on nodes without
2092         renderers need to be implemented in a future patch.
2093
2094         Test: accessibility/canvas-accessibilitynodeobject.html
2095
2096         * CMakeLists.txt:
2097         * GNUmakefile.list.am:
2098         * Target.pri:
2099         * WebCore.gypi:
2100         * accessibility/AXObjectCache.cpp:
2101         (WebCore::AXObjectCache::get):
2102         (WebCore):
2103         (WebCore::createFromNode):
2104         (WebCore::AXObjectCache::getOrCreate):
2105         (WebCore::AXObjectCache::remove):
2106         * accessibility/AXObjectCache.h:
2107         (AXObjectCache):
2108         (WebCore::AXObjectCache::get):
2109         (WebCore::AXObjectCache::getOrCreate):
2110         (WebCore::AXObjectCache::remove):
2111         * accessibility/AccessibilityARIAGrid.cpp:
2112         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
2113         (WebCore):
2114         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
2115         (WebCore::AccessibilityARIAGrid::init):
2116         (WebCore::AccessibilityARIAGrid::create):
2117         * accessibility/AccessibilityARIAGrid.h:
2118         (AccessibilityARIAGrid):
2119         * accessibility/AccessibilityARIAGridCell.cpp:
2120         (WebCore::AccessibilityARIAGridCell::create):
2121         * accessibility/AccessibilityARIAGridRow.cpp:
2122         (WebCore::AccessibilityARIAGridRow::create):
2123         * accessibility/AccessibilityAllInOne.cpp:
2124         * accessibility/AccessibilityList.cpp:
2125         (WebCore::AccessibilityList::create):
2126         * accessibility/AccessibilityListBox.cpp:
2127         (WebCore::AccessibilityListBox::create):
2128         * accessibility/AccessibilityMediaControls.cpp:
2129         (WebCore::AccessibilityMediaControl::create):
2130         (WebCore::AccessibilityMediaControlsContainer::create):
2131         (WebCore::AccessibilityMediaTimeline::create):
2132         (WebCore::AccessibilityMediaTimeDisplay::create):
2133         * accessibility/AccessibilityMenuList.cpp:
2134         (WebCore::AccessibilityMenuList::create):
2135         (WebCore):
2136         * accessibility/AccessibilityMenuList.h:
2137         (AccessibilityMenuList):
2138         * accessibility/AccessibilityNodeObject.cpp: Added.
2139         (WebCore):
2140         (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
2141         (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
2142         (WebCore::AccessibilityNodeObject::init):
2143         (WebCore::AccessibilityNodeObject::create):
2144         (WebCore::AccessibilityNodeObject::detach):
2145         (WebCore::AccessibilityNodeObject::childrenChanged):
2146         (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
2147         (WebCore::AccessibilityNodeObject::firstChild):
2148         (WebCore::AccessibilityNodeObject::lastChild):
2149         (WebCore::AccessibilityNodeObject::previousSibling):
2150         (WebCore::AccessibilityNodeObject::nextSibling):
2151         (WebCore::AccessibilityNodeObject::parentObjectIfExists):
2152         (WebCore::AccessibilityNodeObject::parentObject):
2153         (WebCore::AccessibilityNodeObject::elementRect):
2154         (WebCore::AccessibilityNodeObject::setNode):
2155         (WebCore::AccessibilityNodeObject::document):
2156         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
2157         (WebCore::AccessibilityNodeObject::addChildren):
2158         (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
2159         (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
2160         (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
2161         (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
2162         (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
2163         * accessibility/AccessibilityNodeObject.h: Added.
2164         (WebCore):
2165         (AccessibilityNodeObject):
2166         (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
2167         (WebCore::AccessibilityNodeObject::node):
2168         (WebCore::AccessibilityNodeObject::isDetached):
2169         (WebCore::toAccessibilityNodeObject):
2170         * accessibility/AccessibilityObject.h:
2171         (WebCore::AccessibilityObject::isAccessibilityNodeObject):
2172         * accessibility/AccessibilityProgressIndicator.cpp:
2173         (WebCore::AccessibilityProgressIndicator::create):
2174         * accessibility/AccessibilityRenderObject.cpp:
2175         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
2176         (WebCore::AccessibilityRenderObject::init):
2177         (WebCore):
2178         (WebCore::AccessibilityRenderObject::create):
2179         (WebCore::AccessibilityRenderObject::detach):
2180         (WebCore::AccessibilityRenderObject::setRenderer):
2181         (WebCore::AccessibilityRenderObject::canHaveChildren):
2182         (WebCore::AccessibilityRenderObject::addCanvasChildren):
2183         (WebCore::AccessibilityRenderObject::addChildren):
2184         * accessibility/AccessibilityRenderObject.h:
2185         (AccessibilityRenderObject):
2186         * accessibility/AccessibilitySlider.cpp:
2187         (WebCore::AccessibilitySlider::create):
2188         * accessibility/AccessibilityTable.cpp:
2189         (WebCore::AccessibilityTable::AccessibilityTable):
2190         (WebCore):
2191         (WebCore::AccessibilityTable::~AccessibilityTable):
2192         (WebCore::AccessibilityTable::init):
2193         (WebCore::AccessibilityTable::create):
2194         * accessibility/AccessibilityTable.h:
2195         (AccessibilityTable):
2196         * accessibility/AccessibilityTableCell.cpp:
2197         (WebCore::AccessibilityTableCell::create):
2198         * accessibility/AccessibilityTableRow.cpp:
2199         (WebCore::AccessibilityTableRow::create):
2200
2201 2012-07-23  David Barr  <davidbarr@chromium.org>
2202
2203         Fix ENABLE_CSS_IMAGE_ORIENTATION compile flag
2204         https://bugs.webkit.org/show_bug.cgi?id=91961
2205
2206         Reviewed by Tony Chang.
2207
2208         https://bugs.webkit.org/show_bug.cgi?id=89055
2209         A rule was missed implementing the ENABLE_CSS_IMAGE_ORIENTATION compile flag.
2210
2211         https://bugs.webkit.org/show_bug.cgi?id=90046
2212         Half of the missing rule was inadvertently added together with ENABLE_CSS_STICKY_POSITION.
2213
2214         No new tests; build configuration fix.
2215
2216         * Configurations/FeatureDefines.xcconfig:
2217
2218 2012-07-23  Douglas Stockwell  <dstockwell@chromium.org>
2219
2220         Null-pointer crash when a derived color like -webkit-activelink is set in a gradient stop
2221         https://bugs.webkit.org/show_bug.cgi?id=89148
2222
2223         Reviewed by Simon Fraser.
2224
2225         CSSGradientValue attempted to resolve colors during paint, this crashed
2226         when a derived color like -webkit-activelink was encountered because the
2227         corresponding element was no longer available in the StyleResolver.
2228         Instead, by adding a field to CSSGradientColorStop we can resolve and
2229         then cache the resolved colors at the correct time. To avoid sharing
2230         cached derived colors between elements we clone the gradient values when
2231         needed.
2232
2233         Test: fast/css/crash-on-gradient-with-derived-color.html
2234
2235         * css/CSSGradientValue.cpp:
2236         (WebCore::CSSGradientValue::gradientWithStylesResolved): Added. Resolve and cache
2237         resolved colors, clone if colors are derived from the element.
2238         (WebCore):
2239         (WebCore::CSSGradientValue::addStops):
2240         (WebCore::CSSGradientValue::isCacheable): Defer to new logic in
2241         StyleResolver.
2242         * css/CSSGradientValue.h:
2243         (CSSGradientColorStop): Added cache of resolved color.
2244         (CSSGradientValue):
2245         (CSSLinearGradientValue):
2246         (CSSRadialGradientValue):
2247         * css/CSSImageGeneratorValue.h:
2248         (WebCore):
2249         * css/CSSValue.h:
2250         (WebCore::CSSValue::isGradientValue):
2251         * css/StyleResolver.cpp:
2252         (WebCore::StyleResolver::collectMatchingRulesForList):
2253         * css/StyleResolver.h:
2254         (StyleResolver):
2255         * rendering/style/StyleGeneratedImage.cpp:
2256         (WebCore::StyleGeneratedImage::image): Revert change from r96449. This
2257         is no longer necessary as the gradient colors are now resolved at a
2258         time when the style is set on StyleResolver.
2259
2260 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2261
2262         Move GregorianDateTime from JSC to WTF namespace
2263         https://bugs.webkit.org/show_bug.cgi?id=91948
2264
2265         Reviewed by Geoffrey Garen.
2266
2267         Moving GregorianDateTime into the WTF namespace allows us to us to
2268         use it in WebCore too. The new class has the same behaviour as the
2269         old struct. Only the unused timeZone member has been removed.
2270
2271         * bridge/qt/qt_runtime.cpp:
2272         (JSC::Bindings::convertValueToQVariant):
2273         (JSC::Bindings::convertQVariantToValue):
2274         * bridge/qt/qt_runtime_qt4.cpp:
2275         (JSC::Bindings::convertValueToQVariant):
2276         (JSC::Bindings::convertQVariantToValue):
2277
2278 2012-07-23  Mark Pilgrim  <pilgrim@chromium.org>
2279
2280         [Chromium] Move layoutTestMode to WebCore
2281         https://bugs.webkit.org/show_bug.cgi?id=92010
2282
2283         Reviewed by Adam Barth.
2284
2285         Part of a refactoring series. See tracking bug 82948.
2286
2287         * CMakeLists.txt:
2288         * GNUmakefile.list.am:
2289         * Target.pri:
2290         * WebCore.gypi:
2291         * WebCore.vcproj/WebCore.vcproj:
2292         * WebCore.xcodeproj/project.pbxproj:
2293         * bindings/generic/RuntimeEnabledFeatures.h:
2294         (RuntimeEnabledFeatures):
2295         * platform/LayoutTestSupport.cpp: Added.
2296         (WebCore):
2297         (WebCore::isRunningLayoutTest):
2298         (WebCore::setIsRunningLayoutTest):
2299         * platform/LayoutTestSupport.h: Added.
2300         (WebCore):
2301         * platform/chromium/PlatformSupport.h:
2302         (PlatformSupport):
2303         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
2304         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
2305         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
2306         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
2307         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
2308         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
2309         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2310         (WebCore):
2311         (WebCore::LookupAltName):
2312         (WebCore::fontContainsCharacter):
2313         (WebCore::FillLogFont):
2314         (WebCore::FontCache::getFontDataForCharacters):
2315         (WebCore::FontCache::createFontPlatformData):
2316         * platform/graphics/skia/FontCustomPlatformData.cpp:
2317         (WebCore::FontCustomPlatformData::fontPlatformData):
2318         * platform/graphics/skia/FontSkia.cpp:
2319         (WebCore::Font::drawGlyphs):
2320         * rendering/RenderThemeChromiumAndroid.cpp:
2321         (WebCore::RenderThemeChromiumAndroid::systemColor):
2322         (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
2323         * rendering/RenderThemeChromiumMac.mm:
2324         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
2325         * rendering/RenderThemeChromiumSkia.cpp:
2326         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
2327         * rendering/RenderThemeChromiumWin.cpp:
2328         (WebCore):
2329         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
2330         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
2331         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
2332         (WebCore::RenderThemeChromiumWin::systemColor):
2333         (WebCore::menuListButtonWidth):
2334         (WebCore::RenderThemeChromiumWin::determineClassicState):
2335
2336 2012-07-23  Dave Tu  <dtu@chromium.org>
2337
2338         [chromium] Add droppedFrameCount to renderingStats.
2339         https://bugs.webkit.org/show_bug.cgi?id=91694
2340
2341         Reviewed by Adrienne Walker.
2342
2343         * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
2344         (WebCore):
2345         (WebCore::CCFrameRateCounter::frameInterval):
2346         (WebCore::CCFrameRateCounter::frameIndex):
2347         (WebCore::CCFrameRateCounter::CCFrameRateCounter):
2348         (WebCore::CCFrameRateCounter::markBeginningOfFrame):
2349         (WebCore::CCFrameRateCounter::isBadFrame):
2350         * platform/graphics/chromium/cc/CCFrameRateCounter.h:
2351         (WebCore::CCFrameRateCounter::droppedFrameCount):
2352         (CCFrameRateCounter):
2353         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2354         (WebCore::CCLayerTreeHost::renderingStats):
2355         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2356         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2357         (WebCore::CCLayerTreeHostImpl::drawLayers):
2358         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2359         (CCLayerTreeHostImpl):
2360         * platform/graphics/chromium/cc/CCRenderingStats.h:
2361         (CCRenderingStats):
2362         (WebCore::CCRenderingStats::CCRenderingStats):
2363         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2364         (WebCore::CCSingleThreadProxy::implSideRenderingStats):
2365         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2366         (WebCore::CCThreadProxy::implSideRenderingStatsOnImplThread):
2367
2368 2012-07-23  Dan Bernstein  <mitz@apple.com>
2369
2370         Fixed the build after r123418.
2371
2372         * WebCore.exp.in: Added DocumentMarkerController::addTextMatchMarker.
2373
2374 2012-07-23  Mike Lawther  <mikelawther@chromium.org>
2375
2376         CSS3 calc: optimise blending expression
2377         https://bugs.webkit.org/show_bug.cgi?id=90037
2378
2379         Reviewed by Tony Chang.
2380
2381         Introduce a new calc expression node - a BlendLength node. Given two Lengths and a progress
2382         this blends them together when evaluated.
2383
2384         An alternative and more general approach of being able to blend two CalcExpressionNodes was
2385         tested, but involves more memory allocations, was measurably slower, and nothing currently
2386         would make use of the generality. 
2387
2388         No functional change. Covered by existing tests.
2389
2390         * platform/CalculationValue.h:
2391         (CalcExpressionBlendLength):
2392         (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
2393         (WebCore::CalcExpressionBlendLength::operator==):
2394         (WebCore::CalcExpressionBlendLength::evaluate):
2395         (WebCore):
2396         * platform/Length.cpp:
2397         (WebCore::Length::blendCalculation):
2398
2399 2012-07-23  Nico Weber  <thakis@chromium.org>
2400
2401         [chromium] Show search tickmarks on css-styled scrollbars
2402         https://bugs.webkit.org/show_bug.cgi?id=91949
2403
2404         Reviewed by Adrienne Walker.
2405
2406         This is done by letting RenderScrollbarTheme::paintTickmarks()
2407         delegate to the native ScrollbarTheme. To make this possible,
2408         move paintTickmarks() from ScrollbarThemeComposite to the
2409         superclass ScrollbarTheme.
2410
2411         For testing, add internals.addTextMatchMarker() and add a pixel test.
2412
2413         * platform/ScrollbarTheme.h:
2414         (WebCore::ScrollbarTheme::paintTickmarks):
2415         Moved paintTickmarks() from ScrollbarThemeComposite to here.
2416         * platform/ScrollbarThemeComposite.h:
2417         Remove paintTickmarks().
2418         * platform/chromium/ScrollbarThemeChromium.cpp:
2419         (WebCore::ScrollbarThemeChromium::paintTickmarks):
2420         Switch to drawing tickmarks as vectors, so they can be arbitrarily wide.
2421         * platform/chromium/ScrollbarThemeChromiumMac.h:
2422         (ScrollbarThemeChromiumMac):
2423         Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
2424         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2425         (WebCore::ScrollbarThemeChromiumMac::paint):
2426         (WebCore::ScrollbarThemeChromiumMac::paintTickmarks):
2427         Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
2428         * rendering/RenderScrollbarTheme.cpp:
2429         (WebCore::RenderScrollbarTheme::paintTickmarks):
2430         Delegate to the native ScrollbarTheme for tickmark drawing.
2431         (WebCore):
2432         * rendering/RenderScrollbarTheme.h:
2433         (RenderScrollbarTheme):
2434         Override paintTickmarks().
2435
2436 2012-07-23  Brian Anderson  <brianderson@chromium.org>
2437
2438         [chromium] Use shallow flushes that don't glFlush
2439         https://bugs.webkit.org/show_bug.cgi?id=90325
2440
2441         Reviewed by Kenneth Russell.
2442
2443         Adds plumbing for the shallowFlushCHROMIUM extension and uses
2444         shallow flushes instead of normal flushes when uploading textures.
2445         Shallow flushes allow us to initiate command buffer flushes to
2446         the GPU thread/process without the overhead of a true glFlush.
2447
2448         CCTextureUpdaterTest updated to recognize shallow flushes.
2449
2450         * platform/chromium/support/Extensions3DChromium.cpp:
2451         (WebCore::Extensions3DChromium::shallowFlushCHROMIUM):
2452         (WebCore):
2453         * platform/graphics/chromium/Extensions3DChromium.h:
2454         (Extensions3DChromium):
2455         * platform/graphics/chromium/cc/CCGraphicsContext.h:
2456         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2457         (WebCore::CCResourceProvider::shallowFlushIfSupported):
2458         (WebCore):
2459         (WebCore::CCResourceProvider::CCResourceProvider):
2460         (WebCore::CCResourceProvider::initialize):
2461         * platform/graphics/chromium/cc/CCResourceProvider.h:
2462         (CCResourceProvider):
2463         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
2464         (WebCore::CCTextureUpdater::update):
2465
2466 2012-07-23  Hanyee Kim  <choco@company100.net>
2467
2468         When using TextureMapper, WebKit does not retain final value of opacity in animations, unless it is specified on the last key frame.
2469         https://bugs.webkit.org/show_bug.cgi?id=91322
2470
2471         Reviewed by Noam Rosenthal.
2472
2473         When -webkit-fill-mode is forwards, GraphicsLayerAnimation::apply does not apply
2474         the property values defined in the last executing keyframe after the final iteration of animation.
2475
2476         This patch does not return right after the end of animation, but it keeps applying
2477         the property values defined in the last executing keyframe.
2478         Add normalizedAnimationValueForFillsForwards function that returns a normalized value of the
2479         last executing keyframe.
2480
2481         Link to CSS Animations spec: http://www.w3.org/TR/css3-animations/#animation-fill-mode-property
2482
2483         Test: animations/fill-mode-forwards2.html
2484
2485         * platform/graphics/GraphicsLayerAnimation.cpp:
2486         (WebCore::normalizedAnimationValueForFillsForwards):
2487         (WebCore):
2488         (WebCore::GraphicsLayerAnimation::apply):
2489
2490 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2491
2492         Unreviewed, rolling out r123184, r123195, and r123197.
2493         http://trac.webkit.org/changeset/123184
2494         http://trac.webkit.org/changeset/123195
2495         http://trac.webkit.org/changeset/123197
2496         https://bugs.webkit.org/show_bug.cgi?id=92049
2497
2498         pagecycler regression (Requested by morrita on #webkit).
2499
2500         * WebCore.exp.in:
2501         * dom/Document.cpp:
2502         (WebCore::Document::Document):
2503         (WebCore::Document::~Document):
2504         (WebCore::Document::suggestedMIMEType):
2505         * dom/Document.h:
2506         (WebCore):
2507         (WebCore::Node::isDocumentNode):
2508         (WebCore::Node::Node):
2509         * dom/Node.cpp:
2510         (WebCore::Node::~Node):
2511         (WebCore::Node::setDocument):
2512         (WebCore):
2513         (WebCore::Node::setTreeScope):
2514         (WebCore::Node::treeScope):
2515         (WebCore::Node::isInShadowTree):
2516         (WebCore::Node::reportMemoryUsage):
2517         * dom/Node.h:
2518         (Node):
2519         (WebCore::Node::document):
2520         (WebCore::Node::inDocument):
2521         * dom/NodeRareData.h:
2522         (WebCore::NodeRareData::NodeRareData):
2523         (WebCore::NodeRareData::treeScope):
2524         (WebCore::NodeRareData::setTreeScope):
2525         (NodeRareData):
2526         * dom/ShadowRoot.cpp:
2527         (WebCore::ShadowRoot::ShadowRoot):
2528         * dom/TreeScope.cpp:
2529         (WebCore::TreeScope::TreeScope):
2530         (WebCore::TreeScope::setParentTreeScope):
2531         * dom/TreeScope.h:
2532         (WebCore):
2533         (WebCore::TreeScope::idTargetObserverRegistry):
2534         (TreeScope):
2535         * dom/TreeScopeAdopter.cpp:
2536         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
2537         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
2538         * editing/MoveSelectionCommand.cpp:
2539         * editing/RemoveNodeCommand.cpp:
2540         * editing/RemoveNodePreservingChildrenCommand.cpp:
2541         * inspector/PageConsoleAgent.cpp:
2542
2543 2012-07-23  Roger Fong  <roger_fong@apple.com>
2544
2545         On Windows, if select element is off screen horizontally, 
2546         menu is either inappropriately resized or positioned offscreen.
2547         https://bugs.webkit.org/show_bug.cgi?id=91913
2548         <rdar://problem/7611229>
2549
2550         Reviewed by Tim Horton.
2551
2552         If the select element is positioned off the edge of the screen to the left, 
2553         the menu is resized. It should not be resized, just shifted to remain on the screen.
2554         If the select element is positioned off the edge of the screen to the right, 
2555         the menu goes off screen instead of being shifted over to appear on screen.
2556         This problem only occurs on Windows.
2557         
2558         Test: ManualTests/win/select-menu-off-screen.html
2559
2560         * platform/win/PopupMenuWin.cpp:
2561         (WebCore::PopupMenuWin::calculatePositionAndSize):
2562         Modified final horizontal position calculation code to position
2563         popup menu on screen if it would otherwise go off.
2564         
2565 2012-07-23  David Dorwin  <ddorwin@chromium.org>
2566
2567         Fixed crash in webkitAddKey() when key parameter is null.
2568         https://bugs.webkit.org/show_bug.cgi?id=85444
2569
2570         Reviewed by Kentaro Hara.
2571
2572         Reference: Step 1 of http://dvcs.w3.org/hg/html-media/raw-file/5f76a0b43836/encrypted-media/encrypted-media.html#dom-addkey
2573
2574         Tests: media/encrypted-media/encrypted-media-syntax.html 
2575
2576         * html/HTMLMediaElement.cpp:
2577         (WebCore::HTMLMediaElement::webkitAddKey):
2578
2579 2012-07-23  Hayato Ito  <hayato@chromium.org>
2580
2581         A FocusScope for a distributed node should not be its TreeScope.
2582         https://bugs.webkit.org/show_bug.cgi?id=91829
2583
2584         Reviewed by Dimitri Glazkov.
2585
2586         Current implementation of FocusScope::focusScopeOf(Node*) returns
2587         the given node's treeScope().  That does not apply if the node is
2588         a distributed node.  We should calculate a FocusScope for a
2589         distributed node by traversing ancestor nodes in Composed Shadow
2590         Tree.
2591
2592         Test: fast/dom/shadow/focus-navigation-with-distributed-nodes.html
2593
2594         * page/FocusController.cpp:
2595         (WebCore::FocusScope::focusScopeOf):
2596
2597 2012-07-23  Douglas Stockwell  <dstockwell@google.com>
2598
2599         Null-pointer crash when parsing border-image
2600         https://bugs.webkit.org/show_bug.cgi?id=91963
2601
2602         Reviewed by Darin Adler.
2603
2604         Test: fast/css/border-image-fill-crash.html
2605
2606         * css/CSSParser.cpp:
2607         (WebCore::CSSParser::parseBorderImageRepeat): Handle the case where
2608         parseBorderImageRepeat is called when the value list is empty.
2609
2610 2012-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>
2611
2612         [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
2613         https://bugs.webkit.org/show_bug.cgi?id=91761
2614
2615         Reviewed by Andreas Kling.
2616
2617         CSS exclusion shapes that are specified with negative radiuses or
2618         height/width are now considered invalid and ignored.
2619
2620         Tests added to
2621         LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
2622
2623         * css/CSSParser.cpp:
2624         (WebCore::CSSParser::parseExclusionShapeRectangle):
2625         (WebCore::CSSParser::parseExclusionShapeCircle):
2626         (WebCore::CSSParser::parseExclusionShapeEllipse):
2627
2628 2012-07-23  Tien-Ren Chen  <trchen@chromium.org>
2629
2630         [chromium] Implement scrollbar theme for Android
2631         https://bugs.webkit.org/show_bug.cgi?id=91674
2632
2633         Reviewed by Adam Barth.
2634
2635         Previously the scrollbar for Android was implemented as an extra
2636         drawing pass in the compositor. Now we switch to use the standard
2637         ScrollbarTheme mechanism.
2638
2639         No new tests. We use mock scrollbars during layout test to share
2640         pixel results with Linux.
2641
2642         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
2643         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
2644         (WebCore::ScrollbarThemeChromiumAndroid::thumbPosition):
2645         (WebCore::ScrollbarThemeChromiumAndroid::thumbLength):
2646         (WebCore::ScrollbarThemeChromiumAndroid::backButtonRect):
2647         (WebCore::ScrollbarThemeChromiumAndroid::forwardButtonRect):
2648         (WebCore::ScrollbarThemeChromiumAndroid::trackRect):
2649         (WebCore):
2650         (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
2651         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
2652         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
2653         (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
2654         (ScrollbarThemeChromiumAndroid):
2655         (WebCore::ScrollbarThemeChromiumAndroid::hasButtons):
2656         (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
2657
2658 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
2659
2660         Use the original token to create an element in "reconstruct the active formatting elements" and "call the adoption agency"
2661         https://bugs.webkit.org/show_bug.cgi?id=91703
2662
2663         Reviewed by Adam Barth.
2664
2665         The current WebKit HTML5 parser implementation does not hold the original token
2666         in the stack of open elements and the active formatting elements. This is
2667         problematic because the original token is used to create an element in
2668         "reconstruct the active formatting elements" and "call the adoption agency".
2669
2670         As a workaround, WebKit uses the saved element instead of the original token
2671         to create an element. But this causes us to fail examples like this:
2672         <b id="1"><p><script>document.getElementById("1").id = "2"</script></p>TEXT</b>
2673         reconstructTheActiveFormattingElements calls this method to open a second <b>
2674         tag to wrap TEXT, it will have id "2", even though the HTML5 spec implies it
2675         should be "1".
2676
2677         Created a ref-counted container class, HTMLStackItem to hold the original token
2678         and the namespace URI as well as the element. Changed HTMLElementStack and
2679         HTMLFormattingElementList to use HTMLStackItem.
2680         Changed HTMLConstructionSite::reconstructTheActiveFormattingElements and
2681         HTMLTreeBuilder::callTheAdoptionAgency to create an element from the saved token
2682         instead of the saved element.
2683
2684         Updated test expectation for html5lib/runner-expected.txt
2685         because now resources/scripted/adoption01.dat passes.
2686
2687         * html/parser/HTMLConstructionSite.cpp:
2688         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
2689         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
2690         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
2691         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
2692         (WebCore::HTMLConstructionSite::insertHTMLElement):
2693         (WebCore::HTMLConstructionSite::insertFormattingElement):
2694         (WebCore::HTMLConstructionSite::insertScriptElement):
2695         (WebCore::HTMLConstructionSite::insertForeignElement):
2696         (WebCore::HTMLConstructionSite::createElementFromSavedToken):
2697         (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
2698         * html/parser/HTMLConstructionSite.h:
2699         (HTMLConstructionSite):
2700         (WebCore::HTMLConstructionSite::currentElementRecord):
2701         * html/parser/HTMLElementStack.cpp:
2702         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
2703         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
2704         (WebCore::HTMLElementStack::pushRootNode):
2705         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
2706         (WebCore::HTMLElementStack::pushRootNodeCommon):
2707         (WebCore::HTMLElementStack::pushHTMLHeadElement):
2708         (WebCore::HTMLElementStack::pushHTMLBodyElement):
2709         (WebCore::HTMLElementStack::push):
2710         (WebCore::HTMLElementStack::insertAbove):
2711         (WebCore::HTMLElementStack::pushCommon):
2712         * html/parser/HTMLElementStack.h:
2713         (WebCore::HTMLElementStack::ElementRecord::element):
2714         (WebCore::HTMLElementStack::ElementRecord::node):
2715         (WebCore::HTMLElementStack::ElementRecord::stackItem):
2716         (ElementRecord):
2717         (HTMLElementStack):
2718         * html/parser/HTMLFormattingElementList.cpp:
2719         (WebCore::HTMLFormattingElementList::swapTo):
2720         (WebCore::HTMLFormattingElementList::append):
2721         * html/parser/HTMLFormattingElementList.h:
2722         (WebCore::HTMLFormattingElementList::Entry::Entry):
2723         (WebCore::HTMLFormattingElementList::Entry::isMarker):
2724         (WebCore::HTMLFormattingElementList::Entry::stackItem):
2725         (WebCore::HTMLFormattingElementList::Entry::element):
2726         (WebCore::HTMLFormattingElementList::Entry::replaceElement):
2727         (WebCore::HTMLFormattingElementList::Entry::operator==):
2728         (WebCore::HTMLFormattingElementList::Entry::operator!=):
2729         (Entry):
2730         (HTMLFormattingElementList):
2731         * html/parser/HTMLStackItem.h: Added.
2732         (WebCore):
2733         (HTMLStackItem):
2734         (WebCore::HTMLStackItem::create):
2735         (WebCore::HTMLStackItem::element):
2736         (WebCore::HTMLStackItem::node):
2737         (WebCore::HTMLStackItem::token):
2738         (WebCore::HTMLStackItem::namespaceURI):
2739         (WebCore::HTMLStackItem::HTMLStackItem):
2740         * html/parser/HTMLTreeBuilder.cpp:
2741         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2742         (WebCore::HTMLTreeBuilder::processStartTag):
2743         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2744
2745 2012-07-23  Andreas Kling  <kling@webkit.org>
2746
2747         Report the extra memory used by immutable StylePropertySet objects.
2748         <http://webkit.org/b/92032>
2749
2750         Reviewed by Anders Carlsson.
2751
2752         Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
2753         size on top of sizeof(T).
2754
2755         Use this in StylePropertySet::reportMemoryUsage() to properly account for the CSSProperty array
2756         tacked onto the end of the object when m_isMutable == false.
2757
2758         * css/StylePropertySet.h:
2759         (WebCore::StylePropertySet::reportMemoryUsage):
2760         * dom/MemoryInstrumentation.h:
2761         (WebCore::MemoryObjectInfo::reportObjectInfo):
2762         (WebCore::MemoryClassInfo::MemoryClassInfo):
2763
2764 2012-07-23  Gregg Tavares  <gman@google.com>
2765
2766         Fix WebGL texSubImage2D for cube maps
2767         https://bugs.webkit.org/show_bug.cgi?id=91927
2768
2769         Reviewed by Kenneth Russell.
2770
2771         Fixes texSubImage2D so any size rectangle can be passed in
2772         for cube maps.
2773
2774         Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
2775
2776         * html/canvas/WebGLRenderingContext.cpp:
2777         (WebCore):
2778         (WebCore::WebGLRenderingContext::copyTexImage2D):
2779         (WebCore::WebGLRenderingContext::texImage2DBase):
2780         (WebCore::WebGLRenderingContext::texSubImage2DBase):
2781         (WebCore::WebGLRenderingContext::validateTexFuncParameters):
2782         * html/canvas/WebGLRenderingContext.h:
2783         (WebGLRenderingContext):
2784
2785 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2786
2787         Unreviewed, rolling out r123387.
2788         http://trac.webkit.org/changeset/123387
2789         https://bugs.webkit.org/show_bug.cgi?id=92036
2790
2791         Broke chromium win build (Requested by tony^work on #webkit).
2792
2793         * WebCore.gyp/WebCore.gyp:
2794         * WebCore.gyp/scripts/rule_bison.py:
2795         * bindings/scripts/preprocessor.pm:
2796         (applyPreprocessor):
2797         * make-hash-tools.pl:
2798
2799 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
2800
2801         Ref-count AtomicHTMLToken
2802         https://bugs.webkit.org/show_bug.cgi?id=91981
2803
2804         Reviewed by Adam Barth.
2805
2806         Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
2807
2808         No new tests - no functional changes.
2809
2810         * html/parser/HTMLConstructionSite.cpp:
2811         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
2812         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
2813         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
2814         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
2815         (WebCore::HTMLConstructionSite::insertDoctype):
2816         (WebCore::HTMLConstructionSite::insertComment):
2817         (WebCore::HTMLConstructionSite::insertCommentOnDocument):
2818         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
2819         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
2820         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
2821         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
2822         (WebCore::HTMLConstructionSite::insertHTMLElement):
2823         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
2824         (WebCore::HTMLConstructionSite::insertFormattingElement):
2825         (WebCore::HTMLConstructionSite::insertScriptElement):
2826         (WebCore::HTMLConstructionSite::insertForeignElement):
2827         (WebCore::HTMLConstructionSite::createElement):
2828         (WebCore::HTMLConstructionSite::createHTMLElement):
2829         (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
2830         * html/parser/HTMLConstructionSite.h:
2831         (HTMLConstructionSite):
2832         * html/parser/HTMLToken.h:
2833         (WebCore::AtomicHTMLToken::create):
2834         (AtomicHTMLToken):
2835         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
2836         * html/parser/HTMLTreeBuilder.cpp:
2837         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
2838         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
2839         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
2840         (WebCore::HTMLTreeBuilder::processToken):
2841         (WebCore::HTMLTreeBuilder::processDoctypeToken):
2842         (WebCore::HTMLTreeBuilder::processFakeStartTag):
2843         (WebCore::HTMLTreeBuilder::processFakeEndTag):
2844         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
2845         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
2846         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
2847         (WebCore):
2848         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
2849         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2850         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
2851         (WebCore::HTMLTreeBuilder::processStartTag):
2852         (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
2853         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
2854         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
2855         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2856         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
2857         (WebCore::HTMLTreeBuilder::processEndTagForInRow):
2858         (WebCore::HTMLTreeBuilder::processEndTagForInCell):
2859         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
2860         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
2861         (WebCore::HTMLTreeBuilder::processEndTag):
2862         (WebCore::HTMLTreeBuilder::processComment):
2863         (WebCore::HTMLTreeBuilder::processCharacter):
2864         (WebCore::HTMLTreeBuilder::processEndOfFile):
2865         (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
2866         (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
2867         (WebCore::HTMLTreeBuilder::defaultForInHead):
2868         (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
2869         (WebCore::HTMLTreeBuilder::defaultForAfterHead):
2870         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
2871         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
2872         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
2873         (WebCore::HTMLTreeBuilder::processScriptStartTag):
2874         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
2875         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
2876         (WebCore::HTMLTreeBuilder::parseError):
2877         * html/parser/HTMLTreeBuilder.h:
2878         (HTMLTreeBuilder):
2879         * html/parser/TextDocumentParser.cpp:
2880         (WebCore::TextDocumentParser::insertFakePreElement):
2881
2882 2012-07-23  Scott Graham  <scottmg@google.com>
2883
2884         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
2885         https://bugs.webkit.org/show_bug.cgi?id=91667
2886
2887         Reviewed by Tony Chang.
2888
2889         Using native tools instead of cygwin version improves build time
2890         performance by roughly 50% (on top of previous cl-instead-of-gcc
2891         change).
2892
2893         Also, use - instead of / for cl flags because a layer of project
2894         generator converts them to \ otherwise, which causes the preprocessing
2895         to fail (very slowly because of the cygwin-loop with a sleep 1).
2896
2897         No new tests.
2898
2899         * WebCore.gyp/WebCore.gyp:
2900         * WebCore.gyp/scripts/rule_bison.py:
2901         * bindings/scripts/preprocessor.pm:
2902         (applyPreprocessor):
2903         * make-hash-tools.pl:
2904
2905 2012-06-12  Jer Noble  <jer.noble@apple.com>
2906
2907         MediaController.currentTime should be kept stable during script execution.
2908         https://bugs.webkit.org/show_bug.cgi?id=88555
2909
2910         Reviewed by Eric Carlson.
2911
2912         Test: media/media-controller-time-constant.html
2913
2914         To keep MediaController.currentTime stable, add a new m_position variable and 
2915         a new m_clearPositionTimer timer.  Both must be mutable variables as they will
2916         be updated from within const functions.  Calls to currentTime() will result in
2917         stable values until the next runloop iteration.
2918
2919         * html/MediaController.cpp:
2920         (MediaController::MediaController):
2921         (MediaController::currentTime):
2922         (MediaController::setCurrentTime):
2923         (MediaController::clearPositionTimerFired):
2924         * html/MediaController.h:
2925
2926 2012-07-23  Huang Dongsung  <luxtella@company100.net>
2927
2928         Destroy CSS decoded data more eagerly once they become dead caches.
2929         https://bugs.webkit.org/show_bug.cgi?id=91733
2930
2931         Reviewed by Geoffrey Garen.
2932
2933         Internal review by Kwang Yul Seo.
2934
2935         There are three CachedResources with decoded data: CachedImage, CachedScript
2936         and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
2937         eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
2938         We must apply the same policy here in CachedCSSStyleSheet because priority
2939         inversion can occur. For example, we can't destroy the decoded data of CachedImages
2940         when they are referenced by CachedCSSStyleSheet as background, mask or border
2941         images.
2942
2943         No new tests - no new testable functionality.
2944
2945         * loader/cache/CachedCSSStyleSheet.cpp:
2946         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
2947         (WebCore::CachedCSSStyleSheet::didAddClient):
2948         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
2949         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
2950         (WebCore):
2951         (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
2952         * loader/cache/CachedCSSStyleSheet.h:
2953         (CachedCSSStyleSheet):
2954
2955 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
2956
2957         Part 2 of: Implement sticky positioning
2958         https://bugs.webkit.org/show_bug.cgi?id=90046
2959
2960         Reviewed by Ojan Vafai.
2961
2962         Turn on ENABLE_CSS_STICKY_POSITION. Add support for parsing the new '-webkit-sticky'
2963         value for position, returning it from getComputedStyle(), and storing it in RenderStyle.
2964
2965         Test: fast/css/sticky/parsing-position-sticky.html
2966
2967         * Configurations/FeatureDefines.xcconfig:
2968         * css/CSSComputedStyleDeclaration.cpp:
2969         (WebCore::getPositionOffsetValue):
2970         * css/CSSParser.cpp:
2971         (WebCore::isValidKeywordPropertyAndValue):
2972         * css/CSSPrimitiveValueMappings.h:
2973         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2974         (WebCore::CSSPrimitiveValue::operator EPosition):
2975         * css/CSSValueKeywords.in:
2976         * rendering/style/RenderStyle.h:
2977         * rendering/style/RenderStyleConstants.h:
2978
2979 2012-07-23  Stephen Chenney  <schenney@chromium.org>
2980
2981         Crash when setting empty class name on a new element
2982         https://bugs.webkit.org/show_bug.cgi?id=92024
2983
2984         Reviewed by Andreas Kling.
2985
2986         Add a check for null attributeData() when setting the className to an
2987         empty string on a newly created element. New SVG elements have null
2988         attributeData() on baseVal upon creation.
2989
2990         Test: svg/custom/empty-className-baseVal-crash.html
2991
2992         * dom/StyledElement.cpp:
2993         (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
2994
2995 2012-07-23  Shawn Singh  <shawnsingh@chromium.org>
2996
2997         [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
2998         https://bugs.webkit.org/show_bug.cgi?id=80622
2999
3000         Reviewed by Adrienne Walker.
3001
3002         clipRect(), usesLayerClipping(), and drawableContentRect() have been
3003         very confusing in CCLayerTreeHostCommon for a while. This patch
3004         refactors it so that (1) clipping is only done locally in
3005         calcDrawTransforms, and (2) the layer's drawableContentRect value
3006         is now meaningful value outside of calcDrawTransforms.
3007         Additionally, the layer is now always clipped to the root
3008         surface's contentBounds (which are set to the viewport bounds).
3009         This refactor not only makes calcDrawTransforms far more readable and intuitive, but
3010         this patch enables more upcoming beneficial refactors, including
3011         the pending refactor in https://bugs.webkit.org/show_bug.cgi?id=88953.
3012
3013         Tests are also significantly updated to keep up with this refactoring change.
3014
3015         * platform/graphics/chromium/LayerChromium.cpp:
3016         (WebCore::LayerChromium::LayerChromium):
3017         * platform/graphics/chromium/LayerChromium.h:
3018         (LayerChromium):
3019         Removed m_usesLayerClipping and m_clipRect and associated accessors.
3020
3021         * platform/graphics/chromium/RenderSurfaceChromium.h:
3022         (RenderSurfaceChromium):
3023         Updated comment
3024
3025         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3026         (WebCore::CCLayerImpl::CCLayerImpl):
3027         * platform/graphics/chromium/cc/CCLayerImpl.h:
3028         (CCLayerImpl):
3029         Removed m_usesLayerClipping and m_clipRect and associated accessors.
3030
3031         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3032         (WebCore::CCLayerTreeHost::updateLayers):
3033         removed setClipRect code that no longer applies
3034
3035         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3036         (WebCore::calculateLayerScissorRect):
3037         scissor rect is now a little bit tighter, the intersection between damage and layer's new drawableContentRect.
3038
3039         (WebCore::calculateSurfaceScissorRect):
3040         scissor rect is now a little bit tighter, except when filters are involved.
3041
3042         (WebCore::layerClipsSubtree):
3043         new helper function
3044
3045         (WebCore):
3046         (WebCore::calculateVisibleContentRect):
3047         (WebCore::subtreeShouldRenderToSeparateSurface):
3048         (WebCore::calculateDrawTransformsInternal):
3049            - added drawableContentRectOfSubtree to the function args, it is valid only after recursion returns,
3050            - added clipRectFromAncestor and bool ancestorClipsSubtree to function args, this replaces the layer's clipRect and usesLayerClipping.
3051            - removed the boolean return value, which was redundant with drawableContentRectOfSubtree.
3052            - replaced all the "setDrawableContentRect" logic with more intuitive, clear logic.
3053            - now, layer's drawableContentRect represents the clipped bounds of the layer expressed in the target surface space.
3054
3055         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
3056         (WebCore::pointIsClippedBySurfaceOrClipRect):
3057         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3058         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
3059         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3060         (WebCore::::layerScissorRectInTargetSurface):
3061         Updated this accessor.  It could be removed in the future, but not appropriate for this patch.
3062
3063         * platform/graphics/chromium/cc/CCRenderSurface.h:
3064
3065 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
3066
3067         [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
3068
3069         * CMakeLists.txt:
3070
3071 2012-07-23  Ryosuke Niwa  <rniwa@webkit.org>
3072
3073         REGRESSION(r123281): childNodes sometimes returns wrong nodes
3074         https://bugs.webkit.org/show_bug.cgi?id=92014
3075
3076         Reviewed by Anders Carlsson.
3077
3078         The bug was caused by a typo in itemBeforeOrAfter. Namely, it should have been calling firstNode as
3079         firstNode(forward, rootNode(), shouldOnlyIncludeDirectChildren()),
3080         NOT firstNode(forward, rootNode(), previous)
3081         as evident from the argument list of the function.
3082
3083         Test: fast/dom/NodeList/childNodes-reverse-iteration.html
3084
3085         * html/HTMLCollection.cpp:
3086         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
3087
3088 2012-07-23  Steve VanDeBogart  <vandebo@chromium.org>
3089
3090         Chrome/Skia: PDF print output does not have clickable links.
3091         https://bugs.webkit.org/show_bug.cgi?id=91171
3092
3093         Reviewed by Stephen White.
3094
3095         Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
3096
3097         Printing is not generally testable.
3098
3099         * platform/graphics/skia/GraphicsContextSkia.cpp:
3100         (WebCore::GraphicsContext::setURLForRect):
3101
3102 2012-07-23  Pierre Rossi  <pierre.rossi@gmail.com>
3103
3104         Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
3105         https://bugs.webkit.org/show_bug.cgi?id=91006
3106
3107         Reviewed by Ryosuke Niwa.
3108
3109         The rationale here is that the client doesn't need to know about the touch
3110         event handler count. needTouchEvents was already used for that purpose.
3111
3112         Test: fast/events/touch/touch-handler-count.html
3113
3114         * dom/Document.cpp:
3115         (WebCore::Document::Document):
3116         (WebCore::Document::didAddTouchEventHandler): Only notify the client if needed.
3117         (WebCore::Document::didRemoveTouchEventHandler): Ditto. Also unset the TOUCH_LISTENER
3118         flag for the document if we reach a count of zero. The rationale being that
3119         hasListenerType() is relied upon in other places in combination with TOUCH_LISTENER for
3120         the same purpose.
3121         * dom/Document.h:
3122         (Document):
3123         (WebCore::Document::touchEventHandlerCount):
3124         * loader/EmptyClients.h:
3125         * page/ChromeClient.h:
3126         (ChromeClient):
3127         * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
3128         (WebCore::Frame::setDocument): call needsTouchEvents directly.
3129         * page/Frame.h: Ditto.
3130         (Frame):
3131         * testing/Internals.cpp:
3132         (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
3133         for additional testing.
3134         (WebCore):
3135         * testing/Internals.h:
3136         (Internals):
3137         * testing/Internals.idl:
3138
3139 2012-07-23  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3140
3141         [Qt] RenderThemeQtMobile highlight colors are not being used
3142         https://bugs.webkit.org/show_bug.cgi?id=92004
3143
3144         Reviewed by Noam Rosenthal.
3145
3146         The issue here is that setPaletteFromPageClientIfExists() is being used as a
3147         virtual function, but it isn't, so when platformActiveSelectionBackgroundColor()
3148         runs, it doesn't pick the right palette.
3149
3150         Besides fixing this virtual behavior, the patch changes the structure a bit,
3151         because setPaletteFromPageClientIfExists() was being "overriden" in mobile theme
3152         to set the palette, which isn't exactly what the function name says.
3153
3154         * platform/qt/RenderThemeQt.cpp:
3155         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
3156         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
3157         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
3158         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
3159         (WebCore::RenderThemeQt::platformFocusRingColor):
3160         (WebCore::RenderThemeQt::systemColor):
3161         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
3162         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
3163         Use the virtual colorPalette() to get the palette.
3164
3165         (WebCore::RenderThemeQt::colorPalette):
3166         (WebCore): Removed the code for getting the page client from here since it is
3167         used only by the QStyle variant.
3168
3169         * platform/qt/RenderThemeQt.h:
3170         (RenderThemeQt):
3171         * platform/qt/RenderThemeQtMobile.cpp:
3172         (WebCore::RenderThemeQtMobile::colorPalette):
3173         (WebCore):
3174         * platform/qt/RenderThemeQtMobile.h:
3175         (RenderThemeQtMobile):
3176
3177 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
3178
3179         Part 1 of: Implement sticky positioning
3180         https://bugs.webkit.org/show_bug.cgi?id=90046
3181
3182         Reviewed by Ojan Vafai.
3183
3184         Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
3185         
3186         Sort the ENABLE_CSS lines in the file. Make sure all the flags
3187         are in FEATURE_DEFINES.
3188
3189         * Configurations/FeatureDefines.xcconfig:
3190
3191 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
3192
3193         Unreviewed, rolling out r123339.
3194         http://trac.webkit.org/changeset/123339
3195         https://bugs.webkit.org/show_bug.cgi?id=92006
3196
3197         massive media tests failure (Requested by philn on #webkit).
3198
3199         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
3200         (WTF::adoptGRef):
3201         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
3202         (setGstElementClassMetadata):
3203         * platform/graphics/gstreamer/GStreamerVersioning.h:
3204
3205 2012-07-21  Vincent Scheib  <scheib@chromium.org>
3206
3207         webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
3208         https://bugs.webkit.org/show_bug.cgi?id=91892
3209
3210         Reviewed by Adam Barth.
3211
3212         PointerLockElement only returned when requested from the document that owns it.
3213
3214         Tests: http/tests/fullscreen/fullscreenelement-different-origin.html
3215                http/tests/fullscreen/fullscreenelement-same-origin.html
3216                http/tests/pointer-lock/pointerlockelement-different-origin.html
3217                http/tests/pointer-lock/pointerlockelement-same-origin.html
3218
3219         * dom/Document.cpp:
3220         (WebCore::Document::webkitPointerLockElement):
3221
3222 2012-07-23  Philippe Normand  <pnormand@igalia.com>
3223
3224         [GTK][jhbuild] Switch to GStreamer 0.11 build
3225         https://bugs.webkit.org/show_bug.cgi?id=91727
3226
3227         Reviewed by Gustavo Noronha Silva.
3228
3229         Add a new function to encapsulate the GStreamer API removal of
3230         GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
3231         macro can now be replaced by calling the g_object_is_floating
3232         function.
3233
3234         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
3235         (WTF::adoptGRef):
3236         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
3237         (gstObjectIsFloating):
3238         * platform/graphics/gstreamer/GStreamerVersioning.h:
3239
3240 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
3241
3242         [EFL] media/controls-styling.html is failing
3243         https://bugs.webkit.org/show_bug.cgi?id=91984
3244
3245         Reviewed by Eric Carlson.
3246
3247         Make sure that the CSS properties letter-spacing, word-spacing,
3248         line-height, text-transform, text-indent, text-shadow,
3249         text-decoration and color do not affect the media element controls,
3250         that display text.
3251
3252         No new tests. Already tested by media/controls-styling.html and
3253         media/controls-styling-strict.html
3254
3255         * css/mediaControlsEfl.css:
3256         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
3257
3258 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
3259
3260         Unreviewed. Fix make distcheck.
3261
3262         * GNUmakefile.list.am: Add missing header files.
3263
3264 2012-07-23  Kent Tamura  <tkent@chromium.org>
3265
3266         Replace some instances of shadowAncestorNode() with shadowHost()
3267         https://bugs.webkit.org/show_bug.cgi?id=91966
3268
3269         Reviewed by Hajime Morita.
3270
3271         shadowAncestorNode() is deprecated. We should use shadowHost().
3272         No new tests. This doesn't change any behavior.
3273
3274         * css/SelectorChecker.cpp:
3275         (WebCore::SelectorChecker::checkSelector):
3276         * dom/TreeScope.cpp:
3277         (WebCore::listTreeScopes):
3278         * html/HTMLSummaryElement.cpp:
3279         (WebCore::isClickableControl):
3280         * html/shadow/DetailsMarkerControl.cpp:
3281         (WebCore::DetailsMarkerControl::summaryElement):
3282         * html/shadow/MeterShadowElement.cpp:
3283         (WebCore::MeterShadowElement::meterElement):
3284         * html/shadow/ProgressShadowElement.cpp:
3285         (WebCore::ProgressShadowElement::progressElement):
3286         * html/shadow/SliderThumbElement.cpp:
3287         (WebCore::RenderSliderThumb::layout):
3288         (WebCore::RenderSliderContainer::layout):
3289         (WebCore::SliderThumbElement::hostInput):
3290         (WebCore::TrackLimiterElement::shadowPseudoId):
3291         (WebCore::SliderContainerElement::shadowPseudoId):
3292         * html/shadow/TextControlInnerElements.cpp:
3293         (WebCore::TextControlInnerElement::customStyleForRenderer):
3294         (WebCore::TextControlInnerTextElement::defaultEventHandler):
3295         (WebCore::TextControlInnerTextElement::createRenderer):
3296         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
3297         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
3298         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
3299         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
3300         (WebCore::SpinButtonElement::defaultEventHandler):
3301         (WebCore::SpinButtonElement::step):
3302         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
3303         (WebCore::InputFieldSpeechButtonElement::setState):
3304         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
3305         (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
3306         * rendering/RenderTextControlSingleLine.cpp:
3307         (WebCore::RenderTextControlInnerBlock::positionForPoint):
3308
3309 2012-07-23  Pavel Feldman  <pfeldman@chromium.org>
3310
3311         [WK2] REGRESSION r122966: Crash when closing tab with Web Inspector open in WebKit::PageOverlay
3312         https://bugs.webkit.org/show_bug.cgi?id=91782
3313
3314         Reviewed by Yury Semikhatsky.
3315
3316         hideHighlight was never called once user hovered over a node.
3317
3318         * inspector/DOMNodeHighlighter.cpp:
3319         (WebCore::InspectorOverlay::update):
3320
3321 2012-07-23  Peter Beverloo  <peter@chromium.org>
3322
3323         [Chromium] Build fix for the Windows builder following r123311
3324         https://bugs.webkit.org/show_bug.cgi?id=91979
3325
3326         Unreviewed build fix.
3327
3328         Changeset r123311 moved the TextCodecWinCE.{cpp,h} files to the Windows
3329         directory. Update Chromium's references to these files to fix the build.
3330
3331         * WebCore.gypi:
3332
3333 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
3334
3335         [WIN] Remove ICU dependencies from UniscribeController
3336         https://bugs.webkit.org/show_bug.cgi?id=91921
3337
3338         Reviewed by Ryosuke Niwa.
3339
3340         Replace ICU specific functions and macros with the corresponding code from WTF::Unicode.
3341         This allows us to use UniscribeController with an other Unicode implementation too.
3342
3343         * platform/graphics/win/UniscribeController.cpp:
3344         (WebCore::UniscribeController::advance):
3345
3346 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
3347
3348         [EFL] media/controls-styling-strict.html is failing
3349         https://bugs.webkit.org/show_bug.cgi?id=91960
3350
3351         Reviewed by Kenneth Rohde Christiansen.
3352
3353         Use "display: -webkit-box;" instead of inline-block
3354         for current-time control. This is needed because
3355         inline-block behaves differently in strict mode.
3356
3357         No new test, already tested by media/controls-styling-strict.html
3358
3359         * css/mediaControlsEfl.css:
3360         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
3361
3362 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
3363
3364         Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
3365
3366         Add an implementation for virtual pure methods sliderTickSize()
3367         and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
3368         is enabled.
3369
3370         * platform/gtk/RenderThemeGtk.cpp:
3371         (WebCore):
3372         (WebCore::RenderThemeGtk::sliderTickSize):
3373         (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
3374         * platform/gtk/RenderThemeGtk.h:
3375
3376 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
3377
3378         Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
3379         https://bugs.webkit.org/show_bug.cgi?id=91937
3380
3381         Reviewed by Ryosuke Niwa.
3382
3383         The windows function returns the required year directly and
3384         removes one additonal dependecy on getCurrentLocalTime().
3385
3386         * platform/text/LocaleWin.cpp:
3387         (WebCore::LocaleWin::LocaleWin):
3388
3389 2012-07-23  Vsevolod Vlasov  <vsevik@chromium.org>
3390
3391         Web Inspector: Drag and drop should not be started on right mouse click.
3392         https://bugs.webkit.org/show_bug.cgi?id=91728
3393
3394         Reviewed by Pavel Feldman.
3395
3396         Introduced WebInspector.installDragHandle method to control drag and drop support, checking whichg mouse button is pressed.
3397         Simplified WebInspector._elementDragStart, removed "element" parameter.
3398         Simplified tab moving support in TabbedPane, removed "mousemove" handler.
3399         Removed while loop determining which element was dragged in TimelineOverviewPane, each drag support is now installed independently.
3400         Drive-by: fixed TimelineOverviewPane window moving on resources-dividers-label-bar drang-and-drop.
3401         Drive-by: fixed CSSStyleModel compilation.
3402
3403         * inspector/front-end/CSSStyleModel.js:
3404         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
3405         * inspector/front-end/DataGrid.js:
3406         (WebInspector.DataGrid.prototype._positionResizers):
3407         (WebInspector.DataGrid.prototype._startResizerDragging):
3408         (WebInspector.DataGrid.prototype._endResizerDragging):
3409         * inspector/front-end/Drawer.js:
3410         (WebInspector.Drawer):
3411         (WebInspector.Drawer.prototype._animationDuration):
3412         (WebInspector.Drawer.prototype._startStatusBarDragging):
3413         (WebInspector.Drawer.prototype._endStatusBarDragging):
3414         * inspector/front-end/HeapSnapshotView.js:
3415         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
3416         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
3417         * inspector/front-end/SidebarOverlay.js:
3418         (WebInspector.SidebarOverlay.prototype.set _startResizerDragging):
3419         (WebInspector.SidebarOverlay.prototype._endResizerDragging):
3420         (WebInspector.SidebarOverlay.prototype._installResizer):
3421         * inspector/front-end/Spectrum.js:
3422         * inspector/front-end/SplitView.js:
3423         (WebInspector.SplitView.prototype._startResizerDragging):
3424         (WebInspector.SplitView.prototype._endResizerDragging):
3425         (WebInspector.SplitView.prototype.installResizer):
3426         * inspector/front-end/TabbedPane.js:
3427         (WebInspector.TabbedPaneTab.prototype._createTabElement):
3428         (WebInspector.TabbedPaneTab.prototype._tabMouseDown):
3429         (WebInspector.TabbedPaneTab.prototype._startTabDragging):
3430         (WebInspector.TabbedPaneTab.prototype._endTabDragging):
3431         * inspector/front-end/TimelineOverviewPane.js:
3432         (WebInspector.TimelineOverviewPane):
3433         (WebInspector.TimelineOverviewWindow):
3434         (WebInspector.TimelineOverviewWindow.prototype._leftResizeElementDragging):
3435         (WebInspector.TimelineOverviewWindow.prototype._rightResizeElementDragging):
3436         (WebInspector.TimelineOverviewWindow.prototype._startWindowSelectorDragging):
3437         (WebInspector.TimelineOverviewWindow.prototype._endWindowSelectorDragging):
3438         (WebInspector.TimelineOverviewWindow.prototype._startWindowDragging):
3439         (WebInspector.TimelineOverviewWindow.prototype._windowDragging):
3440         (WebInspector.TimelineOverviewWindow.prototype._endWindowDragging):
3441         (WebInspector.TimelineOverviewWindow.prototype._moveWindow):
3442         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
3443         * inspector/front-end/TimelinePanel.js:
3444         (WebInspector.TimelinePanel):
3445         (WebInspector.TimelinePanel.prototype._startSplitterDragging):
3446         (WebInspector.TimelinePanel.prototype._endSplitterDragging):
3447         * inspector/front-end/Toolbar.js:
3448         (WebInspector.Toolbar):
3449         (WebInspector.Toolbar.prototype._toolbarDragStart):
3450         (WebInspector.Toolbar.prototype._toolbarDragEnd):
3451         * inspector/front-end/UIUtils.js:
3452         (WebInspector.installDragHandle):
3453         (WebInspector._elementDragStart):
3454         (WebInspector._elementDragEnd):
3455         * inspector/front-end/timelinePanel.css:
3456         (#timeline-overview-grid .resources-dividers-label-bar):
3457
3458 2012-07-23  Hayato Ito  <hayato@chromium.org>
3459
3460         ComposedShadowTreeWalker should skip an empty insertion points.
3461         https://bugs.webkit.org/show_bug.cgi?id=91826
3462
3463         Reviewed by Hajime Morita.
3464
3465         ComposedShadowTreeWalker wrongly returns 'null' if it encounters
3466         an insertion point into where no nodes are distributed.  We should
3467         skip such an insertion point and continue walking using the next