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