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