f3e4ea96d98b0b22f8b7d6c9b81d1022c4d66fec
[WebKit.git] / Source / WebCore / ChangeLog
1 2011-09-19  Robert Kroeger  <rjkroege@chromium.org>
2
3         [chromium] Gesture recognizer fires taptype only every other touch
4         down/up sequence https://bugs.webkit.org/show_bug.cgi?id=68368
5  
6         Reviewed by Adam Barth.
7
8         The addition of doubletap detection to the gesture recognizer missed some of the
9         outgoing edges in the recognizer state machine. This change simplifies the logic
10         and handles all outgoing edges.
11
12         * platform/chromium/GestureRecognizerChromium.cpp:
13         (WebCore::GestureRecognizerChromium::GestureRecognizerChromium):
14         (WebCore::GestureRecognizerChromium::isInSecondClickTimeWindow):
15         (WebCore::GestureRecognizerChromium::updateValues):
16         (WebCore::GestureRecognizerChromium::touchDown):
17         (WebCore::GestureRecognizerChromium::click):
18         * platform/chromium/GestureRecognizerChromium.h:
19
20 2011-09-19  Tom Sepez  <tsepez@chromium.org>
21
22         Fix xssauditor bypass with unterminated closing tag by making the HTMLSourceTracker
23         and the HTMLParser interact more closely with each other.  HTMLParser should be
24         setting the end range for the token itself to account for buffering that the
25         HTMLSourceTracker can't know about, but there are a lot of paths that would need
26         updating. First step is to cover this one path.
27         https://bugs.webkit.org/show_bug.cgi?id=68281
28
29         Reviewed by Adam Barth.
30
31         Test: http/tests/security/xssAuditor/script-tag-with-invalid-closing-tag.html
32
33         * html/parser/HTMLSourceTracker.cpp:
34         (WebCore::HTMLSourceTracker::end):
35         * html/parser/HTMLTokenizer.cpp:
36         (WebCore::HTMLTokenizer::nextToken):
37
38 2011-09-19  Peter Rybin  <peter.rybin@gmail.com>
39
40         TextPosition refactoring: Merge ZeroBasedNumber and OneBasedNumber classes
41         https://bugs.webkit.org/show_bug.cgi?id=63541
42
43         Reviewed by Adam Barth.
44
45         No new tests because this patch is not changing behavior.
46
47         * bindings/js/JavaScriptCallFrame.cpp:
48         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
49         * bindings/js/JavaScriptCallFrame.h:
50         (WebCore::JavaScriptCallFrame::create):
51         (WebCore::JavaScriptCallFrame::position):
52         (WebCore::JavaScriptCallFrame::update):
53         * bindings/js/ScriptController.cpp:
54         (WebCore::ScriptController::eventHandlerLineNumber):
55         * bindings/js/ScriptDebugServer.cpp:
56         (WebCore::ScriptDebugServer::hasBreakpoint):
57         (WebCore::ScriptDebugServer::dispatchDidParseSource):
58         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
59         (WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded):
60         * bindings/js/ScriptDebugServer.h:
61         * bindings/js/ScriptSourceCode.h:
62         (WebCore::ScriptSourceCode::ScriptSourceCode):
63         * bindings/js/StringSourceProvider.h:
64         (WebCore::StringSourceProvider::create):
65         (WebCore::StringSourceProvider::startPosition):
66         (WebCore::StringSourceProvider::StringSourceProvider):
67         * bindings/v8/ScheduledAction.cpp:
68         (WebCore::ScheduledAction::ScheduledAction):
69         * bindings/v8/ScriptController.cpp:
70         (WebCore::ScriptController::eventHandlerPosition):
71         * bindings/v8/ScriptController.h:
72         * bindings/v8/ScriptEventListener.cpp:
73         (WebCore::createAttributeEventListener):
74         * bindings/v8/ScriptSourceCode.h:
75         (WebCore::ScriptSourceCode::ScriptSourceCode):
76         (WebCore::ScriptSourceCode::startPosition):
77         * bindings/v8/V8LazyEventListener.cpp:
78         (WebCore::V8LazyEventListener::V8LazyEventListener):
79         * bindings/v8/V8LazyEventListener.h:
80         (WebCore::V8LazyEventListener::create):
81         * bindings/v8/V8Proxy.cpp:
82         (WebCore::V8Proxy::compileScript):
83         (WebCore::V8Proxy::evaluate):
84         (WebCore::V8Proxy::runScript):
85         * bindings/v8/V8Proxy.h:
86         * bindings/v8/WorkerContextExecutionProxy.cpp:
87         (WebCore::WorkerContextExecutionProxy::evaluate):
88         (WebCore::WorkerContextExecutionProxy::runScript):
89         * bindings/v8/WorkerContextExecutionProxy.h:
90         * bindings/v8/WorkerScriptController.cpp:
91         (WebCore::WorkerScriptController::evaluate):
92         * dom/PendingScript.cpp:
93         (WebCore::PendingScript::releaseElementAndClear):
94         * dom/PendingScript.h:
95         (WebCore::PendingScript::PendingScript):
96         (WebCore::PendingScript::startingPosition):
97         (WebCore::PendingScript::setStartingPosition):
98         * dom/ScriptElement.cpp:
99         (WebCore::ScriptElement::prepareScript):
100         * dom/ScriptElement.h:
101         * dom/ScriptableDocumentParser.h:
102         * dom/ViewportArguments.cpp:
103         (WebCore::parserLineNumber):
104         * html/parser/HTMLDocumentParser.cpp:
105         (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
106         (WebCore::HTMLDocumentParser::pumpTokenizer):
107         (WebCore::HTMLDocumentParser::lineNumber):
108         (WebCore::HTMLDocumentParser::textPosition):
109         * html/parser/HTMLDocumentParser.h:
110         * html/parser/HTMLInputStream.h:
111         * html/parser/HTMLScriptRunner.cpp:
112         (WebCore::HTMLScriptRunner::execute):
113         (WebCore::HTMLScriptRunner::runScript):
114         * html/parser/HTMLScriptRunner.h:
115         * html/parser/HTMLTreeBuilder.cpp:
116         (WebCore::uninitializedPositionValue1):
117         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
118         (WebCore::HTMLTreeBuilder::takeScriptToProcess):
119         (WebCore::HTMLTreeBuilder::processEndTag):
120         (WebCore::HTMLTreeBuilder::processScriptStartTag):
121         * html/parser/HTMLTreeBuilder.h:
122         * inspector/InspectorResourceAgent.cpp:
123         (WebCore::InspectorResourceAgent::buildInitiatorObject):
124         * platform/text/SegmentedString.cpp:
125         (WebCore::SegmentedString::currentLine):
126         (WebCore::SegmentedString::currentColumn):
127         (WebCore::SegmentedString::setCurrentPosition):
128         * platform/text/SegmentedString.h:
129         * svg/SVGDocumentExtensions.cpp:
130         (WebCore::parserLineNumber):
131         * xml/XMLErrors.cpp:
132         (WebCore::XMLErrors::XMLErrors):
133         (WebCore::XMLErrors::handleError):
134         (WebCore::XMLErrors::appendErrorMessage):
135         * xml/XMLErrors.h:
136         * xml/parser/MarkupTokenizerBase.h:
137         (WebCore::MarkupTokenizerBase::lineNumber):
138         * xml/parser/NewXMLDocumentParser.cpp:
139         (WebCore::NewXMLDocumentParser::processScript):
140         (WebCore::NewXMLDocumentParser::textPosition):
141         (WebCore::NewXMLDocumentParser::lineNumber):
142         * xml/parser/NewXMLDocumentParser.h:
143         * xml/parser/XMLDocumentParser.cpp:
144         (WebCore::XMLDocumentParser::pushCurrentNode):
145         (WebCore::XMLDocumentParser::handleError):
146         * xml/parser/XMLDocumentParser.h:
147         * xml/parser/XMLDocumentParserLibxml2.cpp:
148         (WebCore::PendingCallbacks::appendErrorCallback):
149         (WebCore::XMLDocumentParser::XMLDocumentParser):
150         (WebCore::XMLDocumentParser::doWrite):
151         (WebCore::XMLDocumentParser::startElementNs):
152         (WebCore::XMLDocumentParser::error):
153         (WebCore::XMLDocumentParser::lineNumber):
154         (WebCore::XMLDocumentParser::columnNumber):
155         (WebCore::XMLDocumentParser::textPosition):
156         * xml/parser/XMLDocumentParserQt.cpp:
157         (WebCore::XMLDocumentParser::XMLDocumentParser):
158         (WebCore::XMLDocumentParser::doWrite):
159         (WebCore::XMLDocumentParser::doEnd):
160         (WebCore::XMLDocumentParser::lineNumber):
161         (WebCore::XMLDocumentParser::columnNumber):
162         (WebCore::XMLDocumentParser::textPosition):
163         (WebCore::XMLDocumentParser::parse):
164         (WebCore::XMLDocumentParser::parseStartElement):
165
166 2011-09-19  Dan Bernstein  <mitz@apple.com>
167
168         WebCore part of [mac] WebKit contains Objective-C classes that are not prefixed with its standard prefixes
169         https://bugs.webkit.org/show_bug.cgi?id=68323
170
171         Reviewed by Sam Weinig.
172
173         Renamed AccessibilityObjectWrapper to WebAccessibilityObjectWrapper.
174         Renamed CascadeList to WebCascadeList.
175         Renamed CookieStorageObjCAdapter to WebCookieStorageObjCAdapter.
176         Renamed LanguageChangeObserver to WebLanguageChangeObserver.
177         Renamed ScrollAnimationHelperDelegate to WebScrollAnimationHelperDelegate.
178         Renamed ScrollbarPainterControllerDelegate to WebScrollbarPainterControllerDelegate.
179         Renamed ScrollbarPainterDelegate to WebScrollbarPainterDelegate.
180         Renamed ScrollbarPartAnimation to WebScrollbarPartAnimation.
181         Renamed ScrollbarPrefsObserver to WebScrollbarPrefsObserver.
182
183         * WebCore.gyp/WebCore.gyp: Updated for the renaming of CascadeList to WebCascadeList.
184         * WebCore.xcodeproj/project.pbxproj:
185         * accessibility/AccessibilityObject.h:
186         * accessibility/mac/AXObjectCacheMac.mm:
187         (WebCore::AXObjectCache::attachWrapper):
188         * accessibility/mac/AccessibilityObjectMac.mm:
189         * accessibility/mac/AccessibilityObjectWrapper.h: Removed.
190         * accessibility/mac/AccessibilityObjectWrapper.mm: Removed.
191         * accessibility/mac/WebAccessibilityObjectWrapper.h: Copied from Source/WebCore/accessibility/mac/AccessibilityObjectWrapper.h.
192         * accessibility/mac/WebAccessibilityObjectWrapper.mm: Copied from Source/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm.
193         (convertToNSArray):
194         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
195         (-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
196         (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
197         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
198         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
199         * platform/mac/Language.mm:
200         (WebCore::platformDefaultLanguage):
201         * platform/mac/ScrollAnimatorMac.h:
202         * platform/mac/ScrollAnimatorMac.mm:
203         (-[WebScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
204         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
205         * platform/mac/ScrollbarThemeMac.mm:
206         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
207         * platform/network/mac/CookieStorageMac.mm:
208         (WebCore::startObservingCookieChanges):
209
210 2011-09-19  Cary Clark  <caryclark@google.com>
211
212         Move fontDataForCombiningCharacterSequence to fix Skia on Mac build
213         https://bugs.webkit.org/show_bug.cgi?id=68358
214
215         Reviewed by Dan Bernstein.
216
217         No new tests.
218
219         * platform/graphics/mac/FontMac.mm:
220         * platform/graphics/mac/FontComplexTextMac.cpp:
221         (WebCore::Font::fontDataForCombiningCharacterSequence):
222         This moves the implementation from FontMac.mm to
223         FontComplexTextMac.cpp, so it is visible to the Skia on Mac
224         platform as well.
225
226 2011-09-19  Jessie Berlin  <jberlin@apple.com>
227
228         Sites that use history pushState or replaceState are recorded in history in Private Browsing
229         mode.
230         https://bugs.webkit.org/show_bug.cgi?id=68208
231
232         Reviewed by Brady Eidson.
233
234         Test: TestWebKitAPI/Tests/WebKit2/PrivateBrowsingPushStateNoHistoryCallback.
235
236         Add the privateBrowsingEnabled check that is used in other places in HistoryController
237         before calling addVisitedLink and FrameLoaderClient::updateGlobalHistory.
238
239         * loader/HistoryController.cpp:
240         (WebCore::HistoryController::pushState):
241         (WebCore::HistoryController::replaceState):
242
243 2011-09-19  Leandro Pereira  <leandro@profusion.mobi>
244
245         Unreviewed: ScrollbarThemeMock.cpp is already referenced in the
246         global CMakeLists.txt.
247
248         * CMakeListsEfl.txt: Remove reference to platform/mock/ScrollbarThemeMock.cpp.
249         * CMakeListsWinCE.txt: Ditto.
250
251 2011-09-19  Ademar de Souza Reis Jr.  <ademar.reis@openbossa.org>
252
253         Unreviewed: dos2unix on bindings/js/JSExceptionBase.h
254
255         Visual Studio is choking on this file when generating packages for
256         Qt-4.8 on Windows:
257
258         """
259         Source\WebCore\Bindings\js\JSExceptionBase.h:
260         error C4335: Mac file format detected: please convert the source file
261         to either DOS or UNIX format
262         """
263
264         Since from all .cpp or .h files shared by all ports this is the only
265         one with CRLF line terminations, I'm assuming this was a mistake.
266
267         * bindings/js/JSExceptionBase.h:
268
269 2011-09-19  Ilya Tikhonovsky  <loislo@chromium.org>
270
271         Web Inspector: didMarkDOMContentEvent() should send event of MarkDOMContent type.
272         https://bugs.webkit.org/show_bug.cgi?id=67528
273
274         Reviewed by Pavel Feldman.
275
276         Tests: inspector/timeline/timeline-dom-content-loaded-event.html
277                inspector/timeline/timeline-load-event.html
278
279         * inspector/InspectorTimelineAgent.cpp:
280         (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
281
282 2011-09-19  Shawn Singh  <shawnsingh@chromium.org>
283
284         Re-name LayerChromium border functions to reflect that
285         they are only for debug use.
286         https://bugs.webkit.org/show_bug.cgi?id=68212
287
288         Reviewed by James Robinson.
289
290         Code cleanup towards unit testing.
291
292         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
293         (WebCore::GraphicsLayerChromium::clearBackgroundColor):
294         (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
295         (WebCore::GraphicsLayerChromium::setDebugBorder):
296         (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
297         (WebCore::GraphicsLayerChromium::setupContentsLayer):
298         * platform/graphics/chromium/LayerChromium.cpp:
299         (WebCore::LayerChromium::setDebugBorderColor):
300         (WebCore::LayerChromium::setDebugBorderWidth):
301         * platform/graphics/chromium/LayerChromium.h:
302
303 2011-09-18  Ilya Tikhonovsky  <loislo@chromium.org>
304
305         Web Inspector: requestAnimationFrame callbacks don't show up in the timeline panel.
306         https://bugs.webkit.org/show_bug.cgi?id=67986
307
308         Reviewed by Pavel Feldman.
309
310         Test: inspector/timeline/timeline-animation-frame.html
311
312         * English.lproj/localizedStrings.js:
313         * bindings/v8/V8Proxy.cpp:
314         (WebCore::V8Proxy::callFunction):
315         (WebCore::V8Proxy::callFunctionWithoutFrame):
316         (WebCore::V8Proxy::instrumentedCallFunction):
317         * bindings/v8/V8Proxy.h:
318         * bindings/v8/custom/V8CustomVoidCallback.cpp:
319         (WebCore::invokeCallback):
320         * dom/ScriptedAnimationController.cpp:
321         (WebCore::ScriptedAnimationController::registerCallback):
322         (WebCore::ScriptedAnimationController::cancelCallback):
323         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
324         * inspector/InspectorInstrumentation.cpp:
325         (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallbackImpl):
326         (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallbackImpl):
327         (WebCore::InspectorInstrumentation::willFireAnimationFrameEventImpl):
328         (WebCore::InspectorInstrumentation::didFireAnimationFrameEventImpl):
329         * inspector/InspectorInstrumentation.h:
330         (WebCore::InspectorInstrumentation::willCallFunction):
331         (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallback):
332         (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallback):
333         (WebCore::InspectorInstrumentation::willFireAnimationFrameEvent):
334         (WebCore::InspectorInstrumentation::didFireAnimationFrameEvent):
335         * inspector/InspectorTimelineAgent.cpp:
336         (WebCore::InspectorTimelineAgent::didRegisterAnimationFrameCallback):
337         (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback):
338         (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent):
339         (WebCore::InspectorTimelineAgent::didFireAnimationFrameEvent):
340         * inspector/InspectorTimelineAgent.h:
341         * inspector/TimelineRecordFactory.cpp:
342         (WebCore::TimelineRecordFactory::createAnimationFrameCallbackData):
343         * inspector/TimelineRecordFactory.h:
344         * inspector/front-end/TimelineAgent.js:
345         * inspector/front-end/TimelinePanel.js:
346         (WebInspector.TimelinePanel):
347         (WebInspector.TimelinePanel.prototype.get _recordStyles):
348         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
349         (WebInspector.TimelinePanel.prototype._clearPanel):
350         (WebInspector.TimelinePanel.FormattedRecord):
351         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
352         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
353
354 2011-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
355
356         [GTK] Fix distcheck build
357         https://bugs.webkit.org/show_bug.cgi?id=68241
358
359         Reviewed by Martin Robinson.
360
361         * GNUmakefile.list.am:
362
363 2011-09-18  Ilya Tikhonovsky  <loislo@chromium.org>
364
365         Web Inspector: chromium-win: "Save timeline data" does nothing.
366         https://bugs.webkit.org/show_bug.cgi?id=68313
367
368         windows shell API function GetSaveFileName doesn't accept file names with ':' symbol.
369
370         Reviewed by Pavel Feldman.
371
372         * inspector/front-end/TimelinePanel.js:
373         (WebInspector.TimelineModel.prototype._saveToFile):
374
375 2011-09-18  Dan Bernstein  <mitz@apple.com>
376
377         Try to fix the Chromium Mac build after r95391.
378
379         * WebCore.gyp/WebCore.gyp:
380
381 2011-09-18  Dan Bernstein  <mitz@apple.com>
382
383         Try to fix the Chromium Mac build after r95391.
384
385         * WebCore.gyp/WebCore.gyp:
386
387 2011-09-18  Dan Bernstein  <mitz@apple.com>
388
389         Try to fix the Chromium Mac build after r95391.
390
391         * WebCore.gypi: Updated for the renaming of ComplexTextController.cpp.
392         * WebCore.xcodeproj/project.pbxproj: Ditto.
393         * platform/graphics/Font.h: Changed #if directives to include the Chromium Mac port.
394         * platform/graphics/SimpleFontData.h: Ditto.
395         * platform/graphics/mac/ComplexTextControllerCoreText.cpp: Changed the filename extension of this
396         Objective-C++ file to .mm.
397         * platform/graphics/mac/ComplexTextControllerCoreText.mm: Copied from Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.cpp.
398
399 2011-09-18  Dan Bernstein  <mitz@apple.com>
400
401         Snow Leopard build fix after r95391.
402
403         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
404         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
405
406 2011-09-18  Dan Bernstein  <mitz@apple.com>
407
408         Leopard build fix after r95391.
409
410         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
411         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersATSUI):
412
413 2011-09-18  Dan Bernstein  <mitz@apple.com>
414
415         Allow Core Text to choose the fallback font for rendering a combining character sequence
416
417         Fixes <rdar://problem/7860281> Decomposed text is displayed incorrectly when Verdana is specified
418         https://bugs.webkit.org/show_bug.cgi?id=68287
419
420         Reviewed by Dave Hyatt.
421
422         Test: platform/mac/fast/text/combining-character-sequence-fallback.html
423
424         * WebCore.xcodeproj/project.pbxproj: Compile ComplexTextControllerCoreText.cpp as Objective-C++.
425         I am going to rename this file in a followup patch.
426
427         * platform/graphics/Font.h: Declared fontDataForCombiningCharacterSequence().
428
429         * platform/graphics/SimpleFontData.h: Declared canRenderCombiningCharacterSequence() and added
430         a member variable to cache the results of calling this function.
431
432         * platform/graphics/mac/ComplexTextController.cpp:
433         (WebCore::ComplexTextController::offsetForPosition): Fixed a typo in a comment.
434         (WebCore::advanceByCombiningCharacterSequence): Added this helper function, which iterates over
435         characters until the end of a sequence of combining characters, zero-width joiners and zero-width
436         non-joiners. A single base characater followed by such a (possibly-empty) sequence is known as
437         a combining character sequence. This stretches the definition a little because the base character
438         may be a combining character as well. Returns false if an invalid UTF-16 sequence is encountered,
439         true otherwise.
440         (WebCore::ComplexTextController::collectComplexTextRuns): - Replaced the glyphData and nextGlyphData
441         variables each with a pair of variables, a SimpleFontData* and a boolean indicating whether a
442         character mapped to the missing glyph. This clarifies that this function does not use glyph IDs.
443         - Renamed the local variable newC to uppercaseCharacter.
444         - Changed to use advanceByCombiningCharacterSequence().
445         - Changed to use Font::fontDataForCombiningCharacterSequence() instead of Font::glyphDataForCharacter().
446           If there are combining marks and none of the fonts in the fallback list can render the sequence alone,
447           use the systemFallbackFontData() constant to indicate to collectComplexTextRunsForCharactersCoreText()
448           to allow Core Text to perform its own fallback.
449         - Stopped checking isSmallCaps against nextIsSmallCaps. It was redundant, since the small caps FontData
450           differs from the normal variant.
451         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Moved the common logic to
452         handle the 0 fontData case from the ATSUI and Core Text continuations of this function into this function.
453
454         * platform/graphics/mac/ComplexTextController.h:
455         (WebCore::ComplexTextController::systemFallbackFontData): Added. This constant is used to indicate to
456         collectComplexTextRunsForCharactersCoreText() that it should allow Core Text to perform its own font
457         fallback.
458
459         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
460         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersATSUI): Handle systemFallbackFontData()
461         by using the primary font data.
462
463         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
464         (-[CascadeList initWithFont:WebCore::character:]): Added.
465         (-[CascadeList count]): Added.
466         (-[CascadeList objectAtIndex:]): Added. Returns an entry from a cascade list of CTFontDescriptorRef
467         objects based on the font’s fallback list for the character. The list is initialized lazily.
468         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Handle systemFallbackFontData()
469         by allowing Core Text to perform font fallback, starting with a cascade list based on the font’s fallback
470         list and possibly continuing with system fallback.
471
472         * platform/graphics/mac/FontMac.mm:
473         (WebCore::Font::fontDataForCombiningCharacterSequence): Added. If the sequence is only a base character,
474         calls through to glyphDataForCharacter(). Otherwise, iterates over the font’s fallback list for the
475         base character (and the system fallback font for that character), returning the first font that can
476         render the sequence, or 0 if there is none.
477
478         * platform/graphics/mac/SimpleFontDataMac.mm:
479         (WebCore::provideStringAndAttributes): Added this Core Text callback.
480         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence): Added. Checks if Core Text can render
481         the sequence using only this font. Caches the result.
482
483 2011-09-17  Mihai Parparita  <mihaip@chromium.org>
484
485         FrameLoaderClient BackForwardList-related methods are unsued
486         https://bugs.webkit.org/show_bug.cgi?id=68293
487
488         Reviewed by Darin Adler.
489
490         Remove FrameLoaderClient methods that were added by r51629, since only
491         the old (since-deleted) Android port needed them.
492
493         * history/BackForwardListImpl.cpp:
494         (WebCore::BackForwardListImpl::addItem):
495         (WebCore::BackForwardListImpl::goBack):
496         (WebCore::BackForwardListImpl::goForward):
497         (WebCore::BackForwardListImpl::goToItem):
498         (WebCore::BackForwardListImpl::setCapacity):
499         * loader/EmptyClients.h:
500         * loader/FrameLoaderClient.h:
501
502 2011-09-17  David Hyatt  <hyatt@apple.com>
503
504         https://bugs.webkit.org/show_bug.cgi?id=68307
505         
506         Crash in border image cssText. Make sure to null check all the components, since they're all
507         optional now.
508
509         Reviewed by Sam Weinig.
510
511         Added fast/borders/border-image-slice-omission.html
512
513         * css/CSSBorderImageValue.cpp:
514         (WebCore::CSSBorderImageValue::cssText):
515
516 2011-09-17  Aaron Boodman  <aa@chromium.org>
517
518         Rework script context creation/release notifications
519         https://bugs.webkit.org/show_bug.cgi?id=67828
520
521         Reviewed by Adam Barth.
522
523         * bindings/v8/V8DOMWindowShell.cpp:
524         (WebCore::V8DOMWindowShell::disposeContextHandles):
525         (WebCore::V8DOMWindowShell::initContextIfNeeded):
526         * bindings/v8/V8IsolatedContext.cpp:
527         (WebCore::V8IsolatedContext::V8IsolatedContext):
528         (WebCore::V8IsolatedContext::destroy):
529         * bindings/v8/V8IsolatedContext.h:
530         * loader/EmptyClients.h:
531         (WebCore::EmptyFrameLoaderClient::didCreateScriptContext):
532         (WebCore::EmptyFrameLoaderClient::willReleaseScriptContext):
533         * loader/FrameLoaderClient.h:
534
535 2011-09-17  Ilya Tikhonovsky  <loislo@chromium.org>
536
537         Web Inspector: file open dialog appears when user clicks on the timeline bar in timeline panel.
538         https://bugs.webkit.org/show_bug.cgi?id=68312
539
540         Reviewed by Pavel Feldman.
541
542        * inspector/front-end/TimelinePanel.js:
543         (WebInspector.TimelinePanel.prototype._createFileSelector):
544
545 2011-09-17  Jeff Miller  <jeffm@apple.com>
546
547         Build fix after r95372.
548
549         * dom/DOMAllInOne.cpp: #include "EventListenerMap.cpp"
550
551 2011-09-17  Deepak Sherveghar  <bpwv64@motorola.com>
552
553         Override supportsFocus() for HTMLMediaElement.
554         https://bugs.webkit.org/show_bug.cgi?id=67190
555
556         Reviewed by Antonio Gomes.
557
558         Tests: fast/events/media-element-focus-tab.html
559                fast/spatial-navigation/snav-media-elements.html
560
561         Return true from supportsFocus() if control's attribute is present or a tabindex is specified.
562
563         * html/HTMLMediaElement.cpp:
564         (WebCore::HTMLMediaElement::supportsFocus):
565         * html/HTMLMediaElement.h:
566
567 2011-09-16  Adam Barth  <abarth@webkit.org>
568
569         Rename ENABLE(LEVELDB) to USE(LEVELDB)
570         https://bugs.webkit.org/show_bug.cgi?id=68290
571
572         Reviewed by Darin Adler.
573
574         LEVELDB is a library that can be used to implemented INDEXED_DATABASE,
575         which means it should be a USE not an ENABLE.
576
577         * CMakeLists.txt:
578         * WebCore.gyp/WebCore.gyp:
579         * platform/leveldb/LevelDBComparator.h:
580         * platform/leveldb/LevelDBDatabase.cpp:
581         * platform/leveldb/LevelDBDatabase.h:
582         * platform/leveldb/LevelDBIterator.h:
583         * platform/leveldb/LevelDBSlice.h:
584         * platform/leveldb/LevelDBTransaction.cpp:
585         * platform/leveldb/LevelDBTransaction.h:
586         * platform/leveldb/LevelDBWriteBatch.cpp:
587         * platform/leveldb/LevelDBWriteBatch.h:
588         * storage/IDBFactoryBackendImpl.cpp:
589         (WebCore::IDBFactoryBackendImpl::open):
590         (WebCore::IDBFactoryBackendImpl::migrateFromSQLiteToLevelDB):
591         * storage/IDBLevelDBBackingStore.cpp:
592         * storage/IDBLevelDBBackingStore.h:
593         * storage/IDBLevelDBCoding.cpp:
594         * storage/IDBLevelDBCoding.h:
595
596 2011-09-16  Andreas Kling  <kling@webkit.org>
597
598         Reduce EventTarget memory usage by deferring hash map allocation
599         until there are listeners for more than 1 event type.
600
601         http://webkit.org/b/68105
602
603         Reviewed by Darin Adler.
604
605         Introduce an EventListenerMap class which manages a map of event types that have
606         one or more listeners connected.
607
608         When there is only one event type, it's stored directly on the EventListenerMap
609         internally, and when more are added it moves to a hash map. It only goes back
610         from the hash map if all the listeners are removed at once (i.e clear() is called.)
611
612         * CMakeLists.txt:
613         * GNUmakefile.list.am:
614         * WebCore.gypi:
615         * WebCore.pro:
616         * WebCore.vcproj/WebCore.vcproj:
617         * WebCore.xcodeproj/project.pbxproj:
618
619             Adding files.
620
621         * WebCore.exp.in:
622
623             Export EventListenerMap::contains() for WebKit/mac.
624
625         * dom/EventListenerMap.cpp: Added.
626         (WebCore::EventListenerMap::EventListenerMap):
627         (WebCore::EventListenerMap::~EventListenerMap):
628         (WebCore::EventListenerMap::isEmpty):
629         (WebCore::EventListenerMap::contains):
630         (WebCore::EventListenerMap::clear):
631         (WebCore::EventListenerMap::eventTypes):
632         (WebCore::addListenerToVector):
633         (WebCore::EventListenerMap::add):
634         (WebCore::removeListenerFromVector):
635         (WebCore::EventListenerMap::remove):
636         (WebCore::EventListenerMap::find):
637         (WebCore::removeFirstListenerCreatedFromMarkup):
638         (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
639         (WebCore::copyListenersNotCreatedFromMarkupToTarget):
640         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
641         (WebCore::EventListenerIterator::EventListenerIterator):
642         (WebCore::EventListenerIterator::nextListener):
643         * dom/EventListenerMap.h: Added.
644
645         * dom/EventTarget.cpp:
646         (WebCore::EventTargetData::~EventTargetData):
647         (WebCore::EventTarget::addEventListener):
648         (WebCore::EventTarget::removeEventListener):
649         (WebCore::EventTarget::fireEventListeners):
650         (WebCore::EventTarget::getEventListeners):
651         (WebCore::EventTarget::removeAllEventListeners):
652
653         * dom/EventTarget.h:
654         (WebCore::EventTarget::visitJSEventListeners):
655
656             Use EventListenerIterator to visit listeners. (JSC specific.)
657
658         * inspector/InspectorDOMAgent.cpp:
659         (WebCore::InspectorDOMAgent::getEventListenersForNode):
660
661             Call EventListenerMap::eventTypes() go get the list of event types
662             currently listened for.
663
664         * dom/Node.cpp:
665         (WebCore::Node::removeEventListener):
666         * svg/SVGUseElement.cpp:
667         (WebCore::SVGUseElement::transferEventListenersToShadowTree):
668
669             Move implementations of SVG-specific hacks into EventListenerMap and
670             call them from here.
671
672 2011-09-16  Jeremy Apthorp <jeremya@chromium.org> and James Kozianski  <koz@chromium.org>
673
674         Don't detach elements from the render tree when entering fullscreen mode
675         https://bugs.webkit.org/show_bug.cgi?id=66531
676
677         This prevents plugin instances from being destroyed and reinstantiated
678         when entering fullscreen mode.
679
680         Reviewed by James Robinson.
681
682         Test: plugins/fullscreen-plugins-dont-reload.html
683
684         * dom/Document.cpp:
685         (WebCore::Document::webkitWillEnterFullScreenForElement):
686         (WebCore::Document::webkitDidExitFullScreenForElement):
687         * dom/NodeRenderingContext.cpp:
688         (WebCore::NodeRendererFactory::createRendererIfNeeded):
689         * rendering/RenderFullScreen.cpp:
690         (createFullScreenStyle):
691         (RenderFullScreen::wrapRenderer):
692         (RenderFullScreen::unwrapRenderer):
693         * rendering/RenderFullScreen.h:
694
695 2011-09-16  Jochen Eisinger  <jochen@chromium.org>
696
697         Rename FrameLoaderClient::allowImages to FrameLoaderClient::allowImage and include the image URL as parameter
698         https://bugs.webkit.org/show_bug.cgi?id=68071
699
700         This will allow embedders to block images based on where the image is loaded from, instead of just blocking all images in a given frame.
701
702         Reviewed by Adam Barth.
703
704         * html/ImageDocument.cpp:
705         (WebCore::ImageDocumentParser::appendBytes):
706         * loader/FrameLoaderClient.h:
707         (WebCore::FrameLoaderClient::allowImage):
708         * loader/cache/CachedResourceLoader.cpp:
709         (WebCore::CachedResourceLoader::requestImage):
710
711 2011-09-16  Tom Sepez  <tsepez@chromium.org>
712
713         Make XSSAuditor truncate inline snippets at a reasonable length before comparison
714         respecting boundaries of multiply urlencoded sequences.
715         https://bugs.webkit.org/show_bug.cgi?id=68092
716         
717         Reviewed by Adam Barth.
718
719         Test: http/tests/security/xssAuditor/property-escape-long.html
720
721         * html/parser/XSSAuditor.cpp:
722         (WebCore::XSSAuditor::filterTokenAfterScriptStartTag):
723         (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
724         (WebCore::XSSAuditor::eraseAttributeIfInjected):
725         (WebCore::XSSAuditor::decodedSnippetForAttribute):
726         (WebCore::XSSAuditor::isContainedInRequest):
727         * html/parser/XSSAuditor.h:
728
729 2011-09-16  Shawn Singh  <shawnsingh@chromium.org>
730
731         Remove m_contentsDirty from LayerChromium because it
732         is redundant with m_dirtyRect.
733         https://bugs.webkit.org/show_bug.cgi?id=68213
734
735         Reviewed by James Robinson.
736
737         Code cleanup towards unit testing.
738
739         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
740         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
741         * platform/graphics/chromium/ContentLayerChromium.cpp:
742         (WebCore::ContentLayerChromium::paintContentsIfDirty):
743         * platform/graphics/chromium/ImageLayerChromium.cpp:
744         (WebCore::ImageLayerChromium::paintContentsIfDirty):
745         * platform/graphics/chromium/LayerChromium.cpp:
746         (WebCore::LayerChromium::LayerChromium):
747         (WebCore::LayerChromium::setNeedsDisplay):
748         (WebCore::LayerChromium::resetNeedsDisplay):
749         * platform/graphics/chromium/LayerChromium.h:
750         * platform/graphics/chromium/VideoLayerChromium.cpp:
751         (WebCore::VideoLayerChromium::updateCompositorResources):
752         * platform/graphics/chromium/WebGLLayerChromium.cpp:
753         (WebCore::WebGLLayerChromium::updateCompositorResources):
754
755 2011-09-16  Dmitry Lomov  <dslomov@google.com>
756
757         https://bugs.webkit.org/show_bug.cgi?id=66714
758         Add webkitPostMessage to allow for adding transferable support.
759         This adds webkitPostMessage, currently identical to postMessage, which 
760         would later be a vehicle for adding transferable support for messaging.
761         
762         Based on patch by Luke Zarko.
763
764         Reviewed by David Levin.
765
766         * bindings/js/JSDOMWindowCustom.cpp:
767         (WebCore::JSDOMWindow::webkitPostMessage):
768         * bindings/js/JSDedicatedWorkerContextCustom.cpp:
769         (WebCore::JSDedicatedWorkerContext::webkitPostMessage):
770         * bindings/js/JSMessageEventCustom.cpp:
771         (WebCore::JSMessageEvent::webkitInitMessageEvent):
772         * bindings/js/JSMessagePortCustom.cpp:
773         (WebCore::JSMessagePort::webkitPostMessage):
774         * bindings/js/JSWorkerCustom.cpp:
775         (WebCore::JSWorker::postMessage):
776         (WebCore::JSWorker::webkitPostMessage):
777         * bindings/v8/custom/V8DOMWindowCustom.cpp:
778         (WebCore::handlePostMessageCallback):
779         (WebCore::V8DOMWindow::postMessageCallback):
780         (WebCore::V8DOMWindow::webkitPostMessageCallback):
781         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
782         (WebCore::handlePostMessageCallback):
783         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
784         (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
785         * bindings/v8/custom/V8MessageEventCustom.cpp:
786         (WebCore::V8MessageEvent::initMessageEventCallback):
787         (WebCore::V8MessageEvent::webkitInitMessageEventCallback):
788         * bindings/v8/custom/V8MessagePortCustom.cpp:
789         (WebCore::handlePostMessageCallback):
790         (WebCore::V8MessagePort::postMessageCallback):
791         (WebCore::V8MessagePort::webkitPostMessageCallback):
792         * bindings/v8/custom/V8WorkerCustom.cpp:
793         (WebCore::handlePostMessageCallback):
794         (WebCore::V8Worker::postMessageCallback):
795         (WebCore::V8Worker::webkitPostMessageCallback):
796         * dom/MessageEvent.idl:
797         * dom/MessagePort.idl:
798         * page/DOMWindow.idl:
799         * workers/DedicatedWorkerContext.idl:
800         * workers/Worker.idl:
801
802 2011-09-16  Alexei Svitkine  <asvitkine@chromium.org>
803
804         Chromium: Fix repaint of rubber-band overhang area under composited path
805         https://bugs.webkit.org/show_bug.cgi?id=68246
806
807         I accidently removed these two lines from the last patch on: https://bugs.webkit.org/show_bug.cgi?id=66969
808
809         Reviewed by James Robinson.
810
811         Test: platform/chromium-gpu/compositing/rubberbanding/transform-overhang-size-change.html
812
813         * platform/ScrollView.cpp:
814         (WebCore::ScrollView::scrollContents):
815
816 2011-09-16  Peter Beverloo  <peter@chromium.org>
817
818         Depend on harfbuzz for OS=Android as well
819         https://bugs.webkit.org/show_bug.cgi?id=68239
820
821         Like GTK, Android depends on harfbuzz as well, so reflect that in
822         the project file. Furthermore, fix a compile error in PopupListBox.cpp
823         by explicitly including ctype.h, as isspace otherwise won't be declared.
824
825         Reviewed by Steve Block.
826
827         * WebCore.gyp/WebCore.gyp:
828         * platform/chromium/PopupListBox.cpp:
829
830 2011-09-16  Tony Chang  <tony@chromium.org>
831
832         Rename flex-align values to match the spec
833         https://bugs.webkit.org/show_bug.cgi?id=67741
834
835         Reviewed by Ojan Vafai.
836
837         * css/CSSParser.cpp:
838         (WebCore::CSSParser::parseValue):
839         * css/CSSPrimitiveValueMappings.h:
840         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
841         (WebCore::CSSPrimitiveValue::operator EFlexAlign):
842         * css/CSSValueKeywords.in:
843         * rendering/style/RenderStyleConstants.h:
844
845 2011-09-16  Kentaro Hara  <haraken@chromium.org>
846
847         Implement an ErrorEvent constructor for JSC
848         https://bugs.webkit.org/show_bug.cgi?id=68148
849
850         Reviewed by Sam Weinig.
851
852         The spec for the ErrorEvent constructor is here:
853         http://dev.w3.org/html5/workers/#errorevent
854
855         Test: fast/events/constructors/error-event-constructor.html
856
857         * bindings/generic/EventConstructors.h: Added a definition for the ErrorEvent constructor.
858         * bindings/js/JSEventConstructors.cpp: Added #includes for ErrorEvent.
859         * dom/ErrorEvent.cpp:
860         (WebCore::ErrorEventInit::ErrorEventInit):
861         (WebCore::ErrorEvent::ErrorEvent):
862         (WebCore::ErrorEvent::initErrorEvent):
863         (WebCore::ErrorEvent::isErrorEvent):
864         * dom/ErrorEvent.h: Added a definition for ErrorEventInit.
865         (WebCore::ErrorEvent::create):
866         (WebCore::ErrorEvent::message):
867         (WebCore::ErrorEvent::filename):
868         (WebCore::ErrorEvent::lineno):
869         * dom/ErrorEvent.idl: Makes ErrorEvent constructible.
870
871 2011-09-16  Kentaro Hara  <haraken@google.com>
872
873         Overhangs a ruby by no more than half the width of the neighboring text.
874         https://bugs.webkit.org/show_bug.cgi?id=62684
875
876         Reviewed by Dan Bernstein.
877
878         Assume two rubies between which a narrow text exists, like
879         "<ruby>x<rt>xxxxxx</rt></ruby>l<ruby>y<rt>yyyyyy</rt></ruby>".
880         In order to avoid the two rubies overlapping with each other,
881         this patch overhangs the ruby by no more than half the ruby font
882         size and no more than half the width of the neighboring text.
883
884         Tests: fast/ruby/overhang-horizontal-no-overlap1.html
885                fast/ruby/overhang-horizontal-no-overlap2.html
886                fast/ruby/overhang-vertical-no-overlap1.html
887                fast/ruby/overhang-vertical-no-overlap2.html
888
889         * rendering/RenderRubyRun.cpp:
890         (WebCore::RenderRubyRun::getOverhang): Calculates the width of ruby overhanging.
891
892 2011-09-16  Sheriff Bot  <webkit.review.bot@gmail.com>
893
894         Unreviewed, rolling out r95304.
895         http://trac.webkit.org/changeset/95304
896         https://bugs.webkit.org/show_bug.cgi?id=68299
897
898         Broke GTK+ builds. It pulls derived headers into main.c
899         (Requested by rniwa on #webkit).
900
901         * bindings/scripts/CodeGeneratorGObject.pm:
902         ():
903         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
904         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
905         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
906         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
907         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
908         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
909         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
910         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
911         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
912         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
913         (webkit_dom_test_obj_conditional_method1):
914         (webkit_dom_test_obj_conditional_method2):
915         (webkit_dom_test_obj_conditional_method3):
916         (webkit_dom_test_obj_get_conditional_attr1):
917         (webkit_dom_test_obj_set_conditional_attr1):
918         (webkit_dom_test_obj_get_conditional_attr2):
919         (webkit_dom_test_obj_set_conditional_attr2):
920         (webkit_dom_test_obj_get_conditional_attr3):
921         (webkit_dom_test_obj_set_conditional_attr3):
922         (webkit_dom_test_obj_set_property):
923         (webkit_dom_test_obj_get_property):
924         (webkit_dom_test_obj_class_init):
925         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
926         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
927         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
928         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
929         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
930
931 2011-09-16  Shawn Singh  <shawnsingh@chromium.org>
932
933         Re-named isRootLayer to isNonCompositedContent because
934         that is what the flag actually means.
935         https://bugs.webkit.org/show_bug.cgi?id=68214
936
937         Reviewed by James Robinson.
938
939         Code cleanup towards unit testing.
940
941         * platform/graphics/chromium/LayerChromium.cpp:
942         (WebCore::LayerChromium::LayerChromium):
943         (WebCore::LayerChromium::pushPropertiesTo):
944         * platform/graphics/chromium/LayerChromium.h:
945         (WebCore::LayerChromium::setIsNonCompositedContent):
946         (WebCore::LayerChromium::isNonCompositedContent):
947         * platform/graphics/chromium/NonCompositedContentHost.cpp:
948         (WebCore::NonCompositedContentHost::NonCompositedContentHost):
949         * platform/graphics/chromium/TiledLayerChromium.cpp:
950         (WebCore::TiledLayerChromium::setLayerTreeHost):
951         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
952         (WebCore::CCLayerImpl::CCLayerImpl):
953         * platform/graphics/chromium/cc/CCLayerImpl.h:
954         (WebCore::CCLayerImpl::setIsNonCompositedContent):
955         (WebCore::CCLayerImpl::isNonCompositedContent):
956         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
957         (WebCore::CCTiledLayerImpl::draw):
958
959 2011-09-16  Simon Fraser  <simon.fraser@apple.com>
960
961         Make custom scrollbar theme for use in DRT, to reduce pixel diffs between platforms
962         https://bugs.webkit.org/show_bug.cgi?id=68134
963
964         Reviewed by Sam Weinig.
965
966         Add a new setting to control whether the mock scrollbar theme is used.
967         This is a global setting, so that it can be set without having to
968         access a specific Settings object.
969
970         * page/Settings.h:
971         (WebCore::Settings::setMockScrollbarsEnabled):
972         (WebCore::Settings::mockScrollbarsEnabled):
973
974 2011-09-16  Ben Wells  <benwells@chromium.org>
975
976         Large canvas fills should not crash or create unnecessarily large image buffers
977         https://bugs.webkit.org/show_bug.cgi?id=67988
978
979         When using source-in, destination-in, source-out, or destination-atop a temporary
980         buffer is created. This buffer only needs to be big enough to cover the intersection
981         of the path and the canvas. If the area of intersection between the fill and the
982         canvas is empty the canvas is completely cleared and a temporary buffer is not used.
983
984         This change also adds some null checks for failures to create contexts or buffers.
985
986         Reviewed by Darin Adler.
987
988         Test: fast/canvas/canvas-large-fills.html
989
990         * html/canvas/CanvasRenderingContext2D.cpp:
991         (WebCore::CanvasRenderingContext2D::clearCanvas):
992         (WebCore::CanvasRenderingContext2D::fillAndDisplayTransparencyElsewhere):
993
994 2011-09-16  Shawn Singh  <shawnsingh@chromium.org>
995
996         Remove default NULL argument in LayerChromium::create().
997         https://bugs.webkit.org/show_bug.cgi?id=68211
998
999         Reviewed by James Robinson.
1000
1001         Code cleanup related to creating unit testing.
1002
1003         * platform/graphics/chromium/LayerChromium.h:
1004
1005 2011-09-16  Adrienne Walker  <enne@google.com>
1006
1007         [chromium] Move quad drawing code from LayerChromium to LayerRendererChromium
1008         https://bugs.webkit.org/show_bug.cgi?id=68272
1009
1010         Reviewed by James Robinson.
1011
1012         All the OpenGL code is in LayerRendererChromium and the CCLayerImpl
1013         tree, so move the static drawTexturedQuad/toGLMatrix functions to
1014         LayerRendererChromium, where they really belong.
1015
1016         Just moving code around. Tested by existing compositor tests.
1017
1018         * platform/graphics/chromium/LayerChromium.cpp:
1019         * platform/graphics/chromium/LayerChromium.h:
1020         * platform/graphics/chromium/LayerRendererChromium.cpp:
1021         (WebCore::LayerRendererChromium::toGLMatrix):
1022         (WebCore::LayerRendererChromium::drawTexturedQuad):
1023         * platform/graphics/chromium/LayerRendererChromium.h:
1024         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
1025         (WebCore::CCCanvasLayerImpl::draw):
1026         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1027         (WebCore::CCHeadsUpDisplay::draw):
1028         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1029         (WebCore::CCLayerImpl::drawDebugBorder):
1030         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
1031         (WebCore::CCPluginLayerImpl::draw):
1032         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1033         (WebCore::CCRenderSurface::drawSurface):
1034         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1035         (WebCore::CCTiledLayerImpl::drawTiles):
1036         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1037         (WebCore::CCVideoLayerImpl::drawYUV):
1038         (WebCore::CCVideoLayerImpl::drawRGBA):
1039
1040 2011-09-16  Shawn Singh  <shawnsingh@chromium.org>
1041
1042         Fixed const correctness on accessors in LayerChromium
1043         https://bugs.webkit.org/show_bug.cgi?id=68210
1044
1045         Reviewed by James Robinson.
1046
1047         Code cleanup related to creating unit testing.
1048
1049         * platform/graphics/chromium/LayerChromium.h:
1050         (WebCore::LayerChromium::preserves3D):
1051         (WebCore::LayerChromium::replicaLayer):
1052
1053 2011-09-14  Ryosuke Niwa  <rniwa@webkit.org>
1054
1055         Deleting line break before h1 converts h1 to span
1056         https://bugs.webkit.org/show_bug.cgi?id=45784
1057
1058         Reviewed by Kenneth Rohde Christiansen.
1059
1060         Fixed the bug by treating h1 and other elements that retain structure like Mail blockquote.
1061
1062         We already had a logic to overriding styles of merged paragraphs by Mail blockquote so
1063         just extend this logic for h1-h6, pre, etc...
1064
1065         Tests: editing/deleting/merge-paragraph-from-address.html
1066                editing/deleting/merge-paragraph-from-h6-with-style.html
1067                editing/deleting/merge-paragraph-from-h6.html
1068                editing/deleting/merge-paragraph-from-listing.html
1069                editing/deleting/merge-paragraph-into-h1-with-style.html
1070                editing/deleting/merge-paragraph-into-h1.html
1071                editing/deleting/merge-paragraph-into-pre.html
1072
1073         * editing/ReplaceSelectionCommand.cpp:
1074         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1075         * editing/markup.cpp:
1076         (WebCore::isBlockNodeToRetainAppearance): Extracted from ancestorToRetainStructureAndAppearance.
1077         (WebCore::StyledMarkupAccumulator::serializeNodes):
1078         (WebCore::ancestorToRetainStructureAndAppearance):
1079         * editing/markup.h:
1080
1081 2011-09-16  Max Perepelitsyn  <pph34r@gmail.com>
1082
1083         Set but not used variables cleanup (gcc 4.6)
1084         https://bugs.webkit.org/show_bug.cgi?id=68157
1085
1086         Reviewed by Darin Adler.
1087
1088         * platform/audio/ReverbConvolverStage.cpp:
1089         (WebCore::ReverbConvolverStage::process):
1090         * rendering/RenderMediaControlsChromium.cpp:
1091         (WebCore::paintMediaButton):
1092
1093 2011-09-16  Geoffrey Garen  <ggaren@apple.com>
1094
1095         Removed undetectable style.filter.
1096
1097         Reviewed by Sam Weinig.
1098         
1099         This feature was added in http://trac.webkit.org/changeset/15557 to
1100         support housingmaps.com. But housingmaps.com no longer needs this hack,
1101         we don't know of other websites that need it, and we don't know of
1102         any other browsers that have implemented this feature.
1103
1104         * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h: Removed.
1105         * WebCore.order:
1106         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1107         (WebCore::JSCSSStyleDeclaration::nameGetter):
1108
1109 2011-09-16  Adam Barth  <abarth@webkit.org>
1110
1111         Update JSC results to account for intrinsics change.
1112
1113         * bindings/scripts/test/JS/JSTestInterface.cpp:
1114         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1115         * bindings/scripts/test/JS/JSTestObj.cpp:
1116         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1117
1118 2011-09-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1119
1120         Unreviewed, rolling out r95312.
1121         http://trac.webkit.org/changeset/95312
1122         https://bugs.webkit.org/show_bug.cgi?id=68277
1123
1124         It's innocent, innocent I tell you! (Requested by jamesr_ on
1125         #webkit).
1126
1127         * platform/graphics/chromium/ContentLayerChromium.cpp:
1128         (WebCore::ContentLayerChromium::createTextureUpdater):
1129         * platform/graphics/chromium/LayerRendererChromium.cpp:
1130         (WebCore::LayerRendererChromium::LayerRendererChromium):
1131         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1132         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1133         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1134         (WebCore::CCThreadProxy::context):
1135         (WebCore::CCThreadProxy::beginFrameAndCommitOnCCThread):
1136         (WebCore::CCThreadProxy::setNeedsCommitAndRedrawOnCCThread):
1137         (WebCore::CCThreadProxy::setNeedsRedrawOnCCThread):
1138
1139 2011-09-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1140
1141         Unreviewed, rolling out r95309.
1142         http://trac.webkit.org/changeset/95309
1143         https://bugs.webkit.org/show_bug.cgi?id=68271
1144
1145         Broke many chromium gpu tests. (Requested by dave_levin on
1146         #webkit).
1147
1148         * platform/graphics/chromium/ContentLayerChromium.cpp:
1149         (WebCore::ContentLayerChromium::createTextureUpdater):
1150         * platform/graphics/chromium/LayerRendererChromium.cpp:
1151         (WebCore::LayerRendererChromium::LayerRendererChromium):
1152         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1153         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1154         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1155         (WebCore::CCThreadProxy::context):
1156         (WebCore::CCThreadProxy::beginFrameAndCommitOnCCThread):
1157         (WebCore::CCThreadProxy::setNeedsCommitAndRedrawOnCCThread):
1158         (WebCore::CCThreadProxy::setNeedsRedrawOnCCThread):
1159
1160 2011-09-16  Filip Pizlo  <fpizlo@apple.com>
1161
1162         DFG JIT should inline Math.abs
1163         https://bugs.webkit.org/show_bug.cgi?id=68227
1164
1165         Reviewed by Oliver Hunt.
1166
1167         Added JavaScriptCore/dfg to include path path. Changed the bindings
1168         scripts to handle the presence of intrinsics.
1169
1170         * CMakeLists.txt:
1171         * bindings/scripts/CodeGeneratorJS.pm:
1172         (GenerateHashTable):
1173
1174 2011-09-16  Iain Merrick  <husky@google.com>
1175
1176         [chromium] Fix CCLayerTreeHostTest
1177         https://bugs.webkit.org/show_bug.cgi?id=67418
1178
1179         This is a minimal set of changes to get CCLayerTreeHostTest
1180         compiling, running and passing with USE_THREADED_COMPOSITING
1181         enabled.
1182
1183         Reviewed by James Robinson.
1184
1185         * platform/graphics/chromium/ContentLayerChromium.cpp:
1186         (WebCore::ContentLayerChromium::createTextureUpdater):
1187         * platform/graphics/chromium/LayerRendererChromium.cpp:
1188         (WebCore::LayerRendererChromium::LayerRendererChromium):
1189         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1190         (WebCore::CCLayerTreeHost::createLayerTreeHostImpl):
1191         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1192         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1193         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1194         (WebCore::CCThreadProxy::context):
1195         (WebCore::CCThreadProxy::beginFrameAndCommitOnCCThread):
1196         (WebCore::CCThreadProxy::setNeedsCommitAndRedrawOnCCThread):
1197         (WebCore::CCThreadProxy::setNeedsRedrawOnCCThread):
1198
1199 2011-09-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1200
1201         Unreviewed, rolling out r95227.
1202         http://trac.webkit.org/changeset/95227
1203         https://bugs.webkit.org/show_bug.cgi?id=68262
1204
1205         Broke a bunch of SVG tests (Requested by andersca on #webkit).
1206
1207         * platform/ScrollView.cpp:
1208         (WebCore::ScrollView::contentsSize):
1209         (WebCore::ScrollView::wheelEvent):
1210         * platform/ScrollView.h:
1211         * platform/mac/ScrollViewMac.mm:
1212         (WebCore::ScrollView::platformContentsSize):
1213         * platform/wx/ScrollViewWx.cpp:
1214         (WebCore::ScrollView::platformContentsSize):
1215
1216 2011-09-16  James Simonsen  <simonjam@chromium.org>
1217
1218         Fix HTML5 parser's adoption agency algorithm to reparent correctly
1219         https://bugs.webkit.org/show_bug.cgi?id=68147
1220
1221         Reviewed by Eric Seidel.
1222
1223         * html/parser/HTMLTreeBuilder.cpp:
1224         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1225
1226 2011-09-16  Adam Barth  <abarth@webkit.org>
1227
1228         CodeGeneratorGObject should use C++ style comments for ENABLE guards
1229         https://bugs.webkit.org/show_bug.cgi?id=68256
1230
1231         Reviewed by Darin Adler.
1232
1233         This patch should have not behavioral effect.  It just cleans up the
1234         GObject code generator to use C++-style comments for ENABLE guards and
1235         to use the usual comment style for license blocks.
1236
1237         * bindings/scripts/CodeGeneratorGObject.pm:
1238         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1239         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
1240         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
1241         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
1242         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
1243         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
1244         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
1245         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
1246         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
1247         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1248         (webkit_dom_test_obj_conditional_method1):
1249         (webkit_dom_test_obj_conditional_method2):
1250         (webkit_dom_test_obj_conditional_method3):
1251         (webkit_dom_test_obj_get_conditional_attr1):
1252         (webkit_dom_test_obj_set_conditional_attr1):
1253         (webkit_dom_test_obj_get_conditional_attr2):
1254         (webkit_dom_test_obj_set_conditional_attr2):
1255         (webkit_dom_test_obj_get_conditional_attr3):
1256         (webkit_dom_test_obj_set_conditional_attr3):
1257         (webkit_dom_test_obj_set_property):
1258         (webkit_dom_test_obj_get_property):
1259         (webkit_dom_test_obj_class_init):
1260         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1261         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
1262         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
1263         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
1264         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
1265
1266 2011-09-16  Csaba Osztrogonác  <ossy@webkit.org>
1267
1268         [Qt] REGRESSION(r95091) It made many tests flakey
1269         https://bugs.webkit.org/show_bug.cgi?id=68232
1270
1271         Unreviewed rolling out r95091 and followup patches.
1272
1273         * English.lproj/localizedStrings.js:
1274         * bindings/v8/V8Proxy.cpp:
1275         (WebCore::V8Proxy::callFunction):
1276         * bindings/v8/V8Proxy.h:
1277         * bindings/v8/custom/V8CustomVoidCallback.cpp:
1278         (WebCore::invokeCallback):
1279         * dom/ScriptedAnimationController.cpp:
1280         (WebCore::ScriptedAnimationController::registerCallback):
1281         (WebCore::ScriptedAnimationController::cancelCallback):
1282         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
1283         * inspector/InspectorInstrumentation.cpp:
1284         * inspector/InspectorInstrumentation.h:
1285         (WebCore::InspectorInstrumentation::willCallFunction):
1286         * inspector/InspectorTimelineAgent.cpp:
1287         * inspector/InspectorTimelineAgent.h:
1288         * inspector/TimelineRecordFactory.cpp:
1289         * inspector/TimelineRecordFactory.h:
1290         * inspector/front-end/TimelineAgent.js:
1291         * inspector/front-end/TimelinePanel.js:
1292         (WebInspector.TimelinePanel):
1293         (WebInspector.TimelinePanel.prototype.get _recordStyles):
1294         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
1295         (WebInspector.TimelinePanel.prototype._clearPanel):
1296         (WebInspector.TimelinePanel.FormattedRecord):
1297         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
1298         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
1299
1300 2011-09-16  Abhishek Arya  <inferno@chromium.org>
1301
1302         cachedFont not getting updated for inline SVG text.
1303         https://bugs.webkit.org/show_bug.cgi?id=68060
1304
1305         Reviewed by Nikolas Zimmermann.
1306
1307         The cached scaledFont needs to be updated on every style set call. It
1308         is not similar to m_style which can get derived from parent's style and
1309         hence will get automatically updated on ancestor's style change. This is
1310         required, otherwise we will maintain stale font list in cached scaledFont
1311         when custom fonts are retired on Document::recalcStyle.
1312
1313         Test: svg/text/text-style-recalc-crash.html
1314
1315         * rendering/svg/RenderSVGInlineText.cpp:
1316         (WebCore::RenderSVGInlineText::styleDidChange):
1317         (WebCore::RenderSVGInlineText::setStyle):
1318         * rendering/svg/RenderSVGInlineText.h:
1319
1320 2011-09-16  Antti Koivisto  <antti@apple.com>
1321
1322         REGRESSION (r95052): SelectorChecker identifier filter not working
1323         https://bugs.webkit.org/show_bug.cgi?id=68244
1324
1325         Reviewed by Dan Bernstein.
1326
1327         Missing &.
1328
1329         * css/SelectorChecker.cpp:
1330         (WebCore::collectDescendantSelectorIdentifierHashes):
1331
1332 2011-09-16  Csaba Osztrogonác  <ossy@webkit.org>
1333
1334         Unreviewed typo fix after r95271.
1335
1336         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1337
1338 2011-09-16  Andrey Kosyakov  <caseq@chromium.org>
1339
1340         Web Inspector: [Extensions API] support extensions for remote inspector front-end
1341         https://bugs.webkit.org/show_bug.cgi?id=67840
1342
1343         Reviewed by Pavel Feldman.
1344
1345         - Merge ExtensionCommon.js into ExtensionAPI.js
1346         - refactor building of extension API for better reuse
1347         - expose interface for extension registration
1348
1349         * WebCore.gypi:
1350         * WebCore.vcproj/WebCore.vcproj:
1351         * inspector/front-end/ExtensionAPI.js:
1352         (defineCommonExtensionSymbols):
1353         (buildExtensionAPIInjectedScript):
1354         * inspector/front-end/ExtensionCommon.js:
1355         * inspector/front-end/ExtensionServer.js:
1356         (WebInspector.ExtensionServer.prototype._addExtensions):
1357         (WebInspector.ExtensionServer.prototype._addExtension):
1358         (WebInspector.ExtensionServer.prototype._buildExtensionAPIScript):
1359         (WebInspector.ExtensionServer.prototype._onWindowMessage):
1360         (WebInspector.ExtensionServer.prototype._registerExtension):
1361         (WebInspector.ExtensionServer.prototype._expandResourcePath):
1362         * inspector/front-end/WebKit.qrc:
1363         * inspector/front-end/inspector.html:
1364
1365 2011-09-16  Ilya Tikhonovsky  <loislo@chromium.org>
1366
1367         Web Inspector: change WebInspector.currentPanel getter/setter to functions.
1368         https://bugs.webkit.org/show_bug.cgi?id=68242
1369
1370         This is necessary for the panel switching performance tests.
1371
1372         Reviewed by Pavel Feldman.
1373
1374         * inspector/front-end/Drawer.js:
1375         (WebInspector.Drawer.prototype.show.animationFinished):
1376         (WebInspector.Drawer.prototype.show):
1377         (WebInspector.Drawer.prototype.hide):
1378         (WebInspector.Drawer.prototype._animateDrawerHeight.animationFinished):
1379         (WebInspector.Drawer.prototype._animateDrawerHeight):
1380         (WebInspector.Drawer.prototype._statusBarDragging):
1381         * inspector/front-end/ElementsPanel.js:
1382         (WebInspector.ElementsPanel.prototype.switchToAndFocus):
1383         * inspector/front-end/ResourcesPanel.js:
1384         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
1385         * inspector/front-end/ScriptsPanel.js:
1386         * inspector/front-end/SearchController.js:
1387         (WebInspector.SearchController.prototype.updateSearchMatchesCount):
1388         (WebInspector.SearchController.prototype.updateCurrentMatchIndex):
1389         (WebInspector.SearchController.prototype.updateSearchLabel):
1390         (WebInspector.SearchController.prototype.handleShortcut):
1391         (WebInspector.SearchController.prototype._performSearch):
1392         * inspector/front-end/Toolbar.js:
1393         (WebInspector.Toolbar.createPanelToolbarItem.onToolbarItemClicked):
1394         (WebInspector.Toolbar.createPanelToolbarItem):
1395         * inspector/front-end/inspector.js:
1396         (WebInspector.currentPanel):
1397         (WebInspector._updateFocusedNode):
1398         (WebInspector.windowResize):
1399         (WebInspector.documentKeyDown):
1400         (WebInspector.documentCanCopy):
1401         (WebInspector.documentCopy):
1402         (WebInspector.showPanel):
1403         (WebInspector.startUserInitiatedDebugging):
1404         (WebInspector.inspect):
1405         (WebInspector._showAnchorLocationInPanel):
1406         (WebInspector._toolbarItemClicked):
1407         (WebInspector.PanelHistory.prototype.goBack):
1408         (WebInspector.PanelHistory.prototype.goForward):
1409
1410 2011-09-15  Pavel Feldman  <pfeldman@google.com>
1411
1412         Web Inspector: rename Console.clearConsoleMessages to Console.clearMessages, brush up console domain doc.
1413         https://bugs.webkit.org/show_bug.cgi?id=68165
1414
1415         Reviewed by Yury Semikhatsky.
1416
1417         * inspector/InjectedScriptHost.cpp:
1418         (WebCore::InjectedScriptHost::clearConsoleMessages):
1419         * inspector/Inspector.json:
1420         * inspector/InspectorConsoleAgent.cpp:
1421         (WebCore::InspectorConsoleAgent::clearMessages):
1422         * inspector/InspectorConsoleAgent.h:
1423         * inspector/front-end/ConsoleModel.js:
1424         (WebInspector.ConsoleModel.prototype.requestClearMessages):
1425
1426 2011-09-16  Alejandro G. Castro  <alex@igalia.com>
1427
1428         Fix GTK build after r95245.
1429
1430         * GNUmakefile.list.am:
1431
1432 2011-09-16  Leo Yang  <leo.yang@torchmobile.com.cn>
1433
1434         [Qt] Crash when dragging google maps.
1435         https://bugs.webkit.org/show_bug.cgi?id=68223
1436
1437         The custom image for a cursor might not be ready when WebKit trying
1438         to use it to construct the cursor in Qt porting. This patch is using
1439         arrow image to substitute the unready custom image.
1440
1441         Reviewed by Adam Barth.
1442
1443         Test: fast/css/crash-on-custom-cursor-when-loading.html
1444
1445         * platform/qt/CursorQt.cpp:
1446         (WebCore::createCustomCursor):
1447         (WebCore::Cursor::ensurePlatformCursor):
1448
1449 2011-09-15  Adam Barth  <abarth@webkit.org>
1450
1451         Rename ENABLE(DATABASE) to ENABLE(SQL_DATABASE)
1452         https://bugs.webkit.org/show_bug.cgi?id=68205
1453
1454         Reviewed by Eric Seidel.
1455
1456         As discussed on webkit-dev.
1457
1458         * CMakeLists.txt:
1459         * Configurations/FeatureDefines.xcconfig:
1460         * GNUmakefile.am:
1461         * GNUmakefile.list.am:
1462         * UseJSC.cmake:
1463         * bindings/generic/RuntimeEnabledFeatures.cpp:
1464         * bindings/generic/RuntimeEnabledFeatures.h:
1465         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1466         * bindings/js/JSDOMBinding.cpp:
1467         (WebCore::setDOMException):
1468         * bindings/js/JSExceptionBase.cpp:
1469         (WebCore::toExceptionBase):
1470         * bindings/js/JSInjectedScriptHostCustom.cpp:
1471         (WebCore::JSInjectedScriptHost::databaseId):
1472         * bindings/js/JSSQLResultSetRowListCustom.cpp:
1473         * bindings/js/JSSQLTransactionCustom.cpp:
1474         * bindings/js/JSSQLTransactionSyncCustom.cpp:
1475         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
1476         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
1477         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
1478         * bindings/scripts/test/JS/JSTestCallback.cpp:
1479         * bindings/scripts/test/JS/JSTestCallback.h:
1480         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
1481         * bindings/scripts/test/TestCallback.idl:
1482         * bindings/scripts/test/V8/V8TestCallback.cpp:
1483         * bindings/scripts/test/V8/V8TestCallback.h:
1484         * bindings/v8/V8Proxy.cpp:
1485         (WebCore::V8Proxy::setDOMException):
1486         * bindings/v8/V8Proxy.h:
1487         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
1488         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1489         (WebCore::V8InjectedScriptHost::databaseIdCallback):
1490         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
1491         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1492         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1493         * dom/Document.cpp:
1494         * dom/Document.h:
1495         * dom/ExceptionCode.cpp:
1496         (WebCore::getExceptionCodeDescription):
1497         * dom/ExceptionCode.h:
1498         * dom/ScriptExecutionContext.cpp:
1499         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
1500         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
1501         * dom/ScriptExecutionContext.h:
1502         * features.pri:
1503         * history/PageCache.cpp:
1504         (WebCore::logCanCacheFrameDecision):
1505         (WebCore::PageCache::canCachePageContainingThisFrame):
1506         * inspector/InjectedScriptHost.cpp:
1507         (WebCore::InjectedScriptHost::InjectedScriptHost):
1508         (WebCore::InjectedScriptHost::disconnect):
1509         * inspector/InjectedScriptHost.h:
1510         (WebCore::InjectedScriptHost::init):
1511         * inspector/InspectorController.cpp:
1512         (WebCore::InspectorController::InspectorController):
1513         (WebCore::InspectorController::connectFrontend):
1514         (WebCore::InspectorController::disconnectFrontend):
1515         (WebCore::InspectorController::restoreInspectorStateFromCookie):
1516         * inspector/InspectorController.h:
1517         * inspector/InspectorDatabaseAgent.cpp:
1518         * inspector/InspectorDatabaseInstrumentation.h:
1519         * inspector/InspectorDatabaseResource.cpp:
1520         * inspector/InspectorDatabaseResource.h:
1521         * inspector/InspectorInstrumentation.cpp:
1522         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
1523         * inspector/InspectorInstrumentation.h:
1524         * inspector/InstrumentingAgents.h:
1525         (WebCore::InstrumentingAgents::InstrumentingAgents):
1526         * inspector/WorkerInspectorController.cpp:
1527         (WebCore::WorkerInspectorController::WorkerInspectorController):
1528         (WebCore::WorkerInspectorController::connectFrontend):
1529         * loader/EmptyClients.h:
1530         * loader/FrameLoader.cpp:
1531         (WebCore::FrameLoader::stopLoading):
1532         * page/ChromeClient.h:
1533         * page/DOMWindow.cpp:
1534         * page/DOMWindow.h:
1535         * page/DOMWindow.idl:
1536         * platform/sql/SQLiteAuthorizer.cpp:
1537         * platform/sql/SQLiteDatabase.cpp:
1538         * platform/sql/SQLiteFileSystem.cpp:
1539         * platform/sql/SQLiteStatement.cpp:
1540         * platform/sql/SQLiteTransaction.cpp:
1541         * storage/AbstractDatabase.cpp:
1542         * storage/AbstractDatabase.h:
1543         * storage/ChangeVersionWrapper.cpp:
1544         * storage/ChangeVersionWrapper.h:
1545         * storage/Database.cpp:
1546         * storage/Database.h:
1547         * storage/Database.idl:
1548         * storage/DatabaseAuthorizer.cpp:
1549         * storage/DatabaseCallback.h:
1550         * storage/DatabaseCallback.idl:
1551         * storage/DatabaseDetails.h:
1552         * storage/DatabaseSync.cpp:
1553         * storage/DatabaseSync.h:
1554         * storage/DatabaseSync.idl:
1555         * storage/DatabaseTask.cpp:
1556         * storage/DatabaseTask.h:
1557         * storage/DatabaseThread.cpp:
1558         * storage/DatabaseThread.h:
1559         * storage/DatabaseTracker.cpp:
1560         * storage/DatabaseTracker.h:
1561         * storage/DatabaseTrackerClient.h:
1562         * storage/OriginQuotaManager.cpp:
1563         * storage/OriginQuotaManager.h:
1564         * storage/OriginUsageRecord.cpp:
1565         * storage/OriginUsageRecord.h:
1566         * storage/SQLCallbackWrapper.h:
1567         * storage/SQLError.h:
1568         * storage/SQLError.idl:
1569         * storage/SQLException.h:
1570         * storage/SQLException.idl:
1571         * storage/SQLResultSet.cpp:
1572         * storage/SQLResultSet.h:
1573         * storage/SQLResultSet.idl:
1574         * storage/SQLResultSetRowList.cpp:
1575         * storage/SQLResultSetRowList.h:
1576         * storage/SQLResultSetRowList.idl:
1577         * storage/SQLStatement.cpp:
1578         * storage/SQLStatement.h:
1579         * storage/SQLStatementCallback.h:
1580         * storage/SQLStatementCallback.idl:
1581         * storage/SQLStatementErrorCallback.h:
1582         * storage/SQLStatementErrorCallback.idl:
1583         * storage/SQLStatementSync.cpp:
1584         * storage/SQLStatementSync.h:
1585         * storage/SQLTransaction.cpp:
1586         * storage/SQLTransaction.h:
1587         * storage/SQLTransaction.idl:
1588         * storage/SQLTransactionCallback.h:
1589         * storage/SQLTransactionCallback.idl:
1590         * storage/SQLTransactionClient.cpp:
1591         * storage/SQLTransactionClient.h:
1592         * storage/SQLTransactionCoordinator.cpp:
1593         * storage/SQLTransactionCoordinator.h:
1594         * storage/SQLTransactionErrorCallback.h:
1595         * storage/SQLTransactionErrorCallback.idl:
1596         * storage/SQLTransactionSync.cpp:
1597         * storage/SQLTransactionSync.h:
1598         * storage/SQLTransactionSync.idl:
1599         * storage/SQLTransactionSyncCallback.h:
1600         * storage/SQLTransactionSyncCallback.idl:
1601         * storage/chromium/DatabaseObserver.h:
1602         * storage/chromium/DatabaseTrackerChromium.cpp:
1603         * storage/chromium/QuotaTracker.cpp:
1604         * storage/chromium/QuotaTracker.h:
1605         * storage/chromium/SQLTransactionClientChromium.cpp:
1606         * workers/WorkerContext.cpp:
1607         * workers/WorkerContext.h:
1608         * workers/WorkerContext.idl:
1609         * workers/WorkerThread.cpp:
1610         (WebCore::WorkerThreadShutdownStartTask::performTask):
1611         (WebCore::WorkerThread::stop):
1612
1613 2011-09-15  Alexandru Chiculita  <achicu@adobe.com>
1614
1615         [CSSRegions] Regions should not slice line box rendering
1616         https://bugs.webkit.org/show_bug.cgi?id=66198
1617
1618         Created a new LayoutState constructor for the RenderFlowThread. It will
1619         set m_isPaginated to true and force a pageHeight if 1. The actual pageHeight is
1620         not used, because pageLogicalHeightForOffset will actually redirect the call
1621         to RenderFlowThread.
1622
1623         Removed some of the duplicate code that calculated the page logical offset.
1624         Added new methods like logicalPageOffset, pageLogicalHeightForOffset,
1625         pageRemainingLogicalHeightForOffset.
1626
1627         There are still some issues related to incremental layout and different region widths.
1628         Those issues will be addressed in different patches.
1629
1630         Reviewed by David Hyatt.
1631
1632         Tests: fast/regions/text-region-breaks.html
1633                fast/regions/text-region-split-horizontal-bt.html
1634                fast/regions/text-region-split-vertical-rl.html
1635                fast/regions/text-region-split-vertical.html
1636                fast/regions/text-region-split.html
1637
1638         * rendering/LayoutState.cpp:
1639         (WebCore::LayoutState::LayoutState):
1640         * rendering/LayoutState.h:
1641         (WebCore::LayoutState::LayoutState):
1642         (WebCore::LayoutState::isPaginated):
1643         * rendering/RenderBlock.cpp:
1644         (WebCore::RenderBlock::positionNewFloats):
1645         (WebCore::RenderBlock::adjustForRegionFittingIfNeeded):
1646         (WebCore::RenderBlock::nextPageLogicalTopExcludingBoundaryPoint):
1647         (WebCore::RenderBlock::nextPageLogicalTopIncludingBoundaryPoint):
1648         (WebCore::inNormalFlow):
1649         (WebCore::RenderBlock::applyBeforeBreak):
1650         (WebCore::RenderBlock::applyAfterBreak):
1651         (WebCore::RenderBlock::logicalPageOffset):
1652         (WebCore::RenderBlock::pageLogicalHeightForOffset):
1653         (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
1654         (WebCore::RenderBlock::adjustForUnsplittableChild):
1655         (WebCore::RenderBlock::adjustLinePositionForPagination):
1656         * rendering/RenderBlock.h:
1657         * rendering/RenderFlowThread.cpp:
1658         (WebCore::RenderFlowThread::layout):
1659         (WebCore::RenderFlowThread::regionLogicalHeightForLine):
1660         (WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
1661         * rendering/RenderFlowThread.h:
1662         * rendering/RenderView.cpp:
1663         (WebCore::RenderView::pushLayoutState):
1664         * rendering/RenderView.h:
1665         (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
1666         (WebCore::LayoutStateMaintainer::push):
1667
1668 2011-09-15  Kentaro Hara  <haraken@google.com>
1669
1670         Implement a PopStateEvent constructor for JSC
1671         https://bugs.webkit.org/show_bug.cgi?id=67977
1672
1673         Reviewed by Sam Weinig.
1674
1675         Test: fast/events/constructors/pop-state-event-constructor.html
1676
1677         * bindings/generic/EventConstructors.h: Added a definition for the PopStateEvent constructor.
1678         * bindings/js/JSEventConstructors.cpp: Added #includes for PopStateEvent.
1679         * dom/PopStateEvent.cpp:
1680         (WebCore::PopStateEventInit::PopStateEventInit):
1681         (WebCore::PopStateEvent::PopStateEvent):
1682         (WebCore::PopStateEvent::create):
1683         * dom/PopStateEvent.h: Added a definition for PopStateEventInit.
1684         * dom/PopStateEvent.idl: Makes PopStateEvent constructible.
1685
1686 2011-09-15  Mihai Parparita  <mihaip@chromium.org>
1687
1688         Fragment navigations should interrupt a provisional load of a different document
1689         https://bugs.webkit.org/show_bug.cgi?id=64556
1690
1691         Reviewed by Adam Barth.
1692         
1693         Tests: http/tests/history/back-with-fragment-change.php
1694                http/tests/navigation/navigation-interrupted-by-fragment.html
1695
1696         * loader/FrameLoader.cpp: Stop provisional load if a fragment commits.
1697         * loader/HistoryController.cpp: Don't commit the wrong provisional item.
1698
1699 2011-09-15  Adrienne Walker  <enne@google.com>
1700
1701         [chromium] Add temporary diagnostics for LayerTreeHost::commitTo crash
1702         https://bugs.webkit.org/show_bug.cgi?id=68204
1703
1704         Reviewed by James Robinson.
1705
1706         Add CRASH calls to determine which assumptions are being violated.
1707
1708         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1709         (WebCore::CCLayerTreeHost::commitTo):
1710
1711 2011-09-15  Mark Hahnenberg  <mhahnenberg@apple.com>
1712
1713         Unzip initialization lists and constructors in JSCell hierarchy (7/7)
1714         https://bugs.webkit.org/show_bug.cgi?id=68122
1715
1716         Reviewed by Geoffrey Garen.
1717
1718         No new tests.
1719
1720         Completed the seventh and final level of the refactoring to add finishCreation() 
1721         methods to all classes within the JSCell hierarchy with non-trivial 
1722         constructor bodies.
1723
1724         This consists of moving the finishCreation() method call into the create methods
1725         of the sixth level of the hierarchy as was done in previous patches.  
1726
1727         The special cases for JSAudioConstructor, JSOptionConstructor, and JSImageConstructor 
1728         were also lumped in and given finishCreation() methods that are called in their 
1729         create methods because we are at the end and want to avoid a trivial patch just 
1730         for moving their finishCreation() methods from their constructor to their create method.
1731
1732         * bindings/js/JSAudioConstructor.cpp:
1733         (WebCore::JSAudioConstructor::JSAudioConstructor):
1734         (WebCore::JSAudioConstructor::finishCreation):
1735         * bindings/js/JSAudioConstructor.h:
1736         (WebCore::JSAudioConstructor::create):
1737         * bindings/js/JSDOMBinding.h:
1738         (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument):
1739         * bindings/js/JSDOMWindowBase.cpp:
1740         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
1741         * bindings/js/JSImageConstructor.cpp:
1742         (WebCore::JSImageConstructor::JSImageConstructor):
1743         (WebCore::JSImageConstructor::finishCreation):
1744         * bindings/js/JSImageConstructor.h:
1745         (WebCore::JSImageConstructor::create):
1746         * bindings/js/JSOptionConstructor.cpp:
1747         (WebCore::JSOptionConstructor::JSOptionConstructor):
1748         (WebCore::JSOptionConstructor::finishCreation):
1749         * bindings/js/JSOptionConstructor.h:
1750         (WebCore::JSOptionConstructor::create):
1751         * bindings/js/JSWorkerContextBase.cpp:
1752         (WebCore::JSWorkerContextBase::JSWorkerContextBase):
1753
1754         The bindings generation script was also changed to move the finishCreation() call into the 
1755         create methods for descendants of JSWorkerContextBase and JSDOMWindowBase because those base
1756         classes had it removed from their constructors.  
1757
1758         * bindings/scripts/CodeGeneratorJS.pm:
1759         (GenerateHeader):
1760         * bridge/c/c_instance.cpp:
1761         (JSC::Bindings::CRuntimeMethod::create):
1762         (JSC::Bindings::CRuntimeMethod::CRuntimeMethod):
1763         * bridge/jni/jsc/JavaInstanceJSC.cpp:
1764         (JavaRuntimeMethod::create):
1765         (JavaRuntimeMethod::JavaRuntimeMethod):
1766         * bridge/objc/objc_instance.mm:
1767         (ObjCRuntimeMethod::create):
1768         (ObjCRuntimeMethod::ObjCRuntimeMethod):
1769         * bridge/qt/qt_runtime.cpp:
1770         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
1771         (JSC::Bindings::QtRuntimeConnectionMethod::QtRuntimeConnectionMethod):
1772         * bridge/qt/qt_runtime.h:
1773         (JSC::Bindings::QtRuntimeMetaMethod::create):
1774         (JSC::Bindings::QtRuntimeConnectionMethod::create):
1775
1776 2011-09-15  Kentaro Hara  <haraken@google.com>
1777
1778         A single line must not be split into two pages.
1779         https://bugs.webkit.org/show_bug.cgi?id=65005
1780
1781         Reviewed by David Hyatt.
1782
1783         When the document width of a page is overflowed, the last line of the page can be
1784         split into the next page. This is the regression caused by r88737. r88737 tried to
1785         fix rounding errors in rendering calculations by expanding and shrinking a page
1786         using one common method, resizePageRectsKeepingRatio(), but overlooked the case where
1787         a document width gets overflowed.
1788
1789         This patch fixes the problem by also using resizePageRectsKeepingRatio() for the case
1790         where the document width gets overflowed.
1791
1792         Test: printing/single-line-must-not-be-split-into-two-pages.html
1793
1794         * WebCore.exp.in: Updated the signature of forceLayoutForPagination().
1795         * page/Frame.cpp:
1796         (WebCore::Frame::setPrinting): Added a new argument |originalPageSize|, which is an original page size before being expanded or shrunk.
1797         * page/Frame.h:
1798         * page/FrameView.cpp:
1799         (WebCore::FrameView::forceLayoutForPagination): Uses resizePageRectsKeepingRatio() in the case where the document width gets overflowed.
1800         * page/FrameView.h:
1801         * page/PrintContext.cpp:
1802         (WebCore::PrintContext::begin): Passes an original page size to setPrinting().
1803         (WebCore::PrintContext::end): Ditto.
1804
1805 2011-09-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1806
1807         Unreviewed, rolling out r95243 and r95246.
1808         http://trac.webkit.org/changeset/95243
1809         http://trac.webkit.org/changeset/95246
1810         https://bugs.webkit.org/show_bug.cgi?id=68202
1811
1812         Broke the Windows build (Requested by smfr on #webkit).
1813
1814         * WebCore.vcproj/WebCore.vcproj:
1815         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
1816         (WebCore::LayerChangesFlusher::hookCallback):
1817         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1818         (PlatformCAAnimation::copy):
1819         * platform/win/StructuredExceptionHandlerSupressor.h: Removed.
1820
1821 2011-09-15  Simon Fraser  <simon.fraser@apple.com>
1822
1823         Attempt to fix Windows build after r95243.
1824
1825         * WebCore.vcproj/WebCore.vcproj:
1826
1827 2011-09-15  Simon Fraser  <simon.fraser@apple.com>
1828
1829         Make custom scrollbar theme for use in DRT, to reduce pixel differences between platforms
1830         https://bugs.webkit.org/show_bug.cgi?id=68134
1831
1832         Reviewed by James Robinson.
1833
1834         Add new scrollbar theme, called ScrollbarThemeMock, for use in layout
1835         tests. The mock scrollbar simply draws a light gray box in the track,
1836         with a dark gray box for the thumb.
1837         
1838         Add ScrollbarThemeMock files to the build on all platforms. It isn't hooked up yet.
1839
1840         * CMakeLists.txt:
1841         * CMakeListsEfl.txt:
1842         * CMakeListsWinCE.txt:
1843         * GNUmakefile.list.am:
1844         * WebCore.gypi:
1845         * WebCore.pro:
1846         * WebCore.vcproj/WebCore.vcproj:
1847         * WebCore.xcodeproj/project.pbxproj:
1848         * platform/mac/ScrollbarThemeMac.mm:
1849         (WebCore::ScrollbarTheme::nativeTheme):
1850         * platform/mock/ScrollbarThemeMock.cpp: Added.
1851         (WebCore::ScrollbarThemeMock::trackRect):
1852         (WebCore::ScrollbarThemeMock::scrollbarThickness):
1853         (WebCore::ScrollbarThemeMock::paintTrackBackground):
1854         (WebCore::ScrollbarThemeMock::paintThumb):
1855         * platform/mock/ScrollbarThemeMock.h: Added.
1856         (WebCore::ScrollbarThemeMock::hasButtons):
1857         (WebCore::ScrollbarThemeMock::hasThumb):
1858         (WebCore::ScrollbarThemeMock::backButtonRect):
1859         (WebCore::ScrollbarThemeMock::forwardButtonRect):
1860
1861 2011-09-15  Beth Dakin  <bdakin@apple.com>
1862
1863         https://bugs.webkit.org/show_bug.cgi?id=67884
1864         Delete button icon does not properly update when the device resolution changes 
1865         dynamically
1866         -and corresponding-
1867         <rdar://problem/10104632>
1868
1869         Reviewed by Darin Adler.
1870
1871         In DeleteButtonController::deviceScaleFactorChanged(), if the delete button is 
1872         currently showing, hide it and re-show it, forcing it to re-create the deletion 
1873         UI.
1874         * editing/DeleteButtonController.cpp:
1875         (WebCore::DeleteButtonController::deviceScaleFactorChanged):
1876         * editing/DeleteButtonController.h:
1877         * editing/Editor.cpp:
1878         (WebCore::Editor::deviceScaleFactorChanged):
1879         * editing/Editor.h:
1880
1881         Iterate through all of the frames and propagate the deviceScaleFactorChange() 
1882         message to Editor.
1883         * page/Page.cpp:
1884         (WebCore::Page::setDeviceScaleFactor):
1885
1886 2011-09-15  Chris Marrin  <cmarrin@apple.com>
1887
1888         Crash can occur when doing a PlatformCAAnimation::copy() with no valueFunction
1889         https://bugs.webkit.org/show_bug.cgi?id=67510
1890
1891         Reviewed by Adam Roben.
1892         
1893         Another fix to take care of one last crash when running pause-crash.html.
1894         CACF can't deal with null valueFunctions, so avoid setting it when it doesn't 
1895         exist.
1896         
1897         This also adds logic to the Windows Hook in LayerChangesFlusher to prevent it
1898         from catching the null pointer exception generated by the pause-crash.html test
1899         before this bug was fixed. Windows was ignoring the exception, so the testcase
1900         would appear to succeed, even though it should have crashed.
1901
1902         * WebCore.vcproj/WebCore.vcproj:
1903         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
1904         (WebCore::LayerChangesFlusher::hookCallback):
1905         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1906         (PlatformCAAnimation::copy):
1907         * platform\win\StructuredExceptionHandlerSupressor.h: New file to encapsulate the exception handling supression.
1908
1909 2011-09-15  David Hyatt  <hyatt@apple.com>
1910
1911         https://bugs.webkit.org/show_bug.cgi?id=27579
1912         
1913         Make sure that the border shorthand also resets border-image.
1914
1915         Reviewed by Beth Dakin.
1916
1917         Added fast/borders/border-image-reset-by-border-shorthand.html.
1918
1919         * css/CSSParser.cpp:
1920         (WebCore::CSSParser::parseValue):
1921
1922 2011-09-15  David Hyatt  <hyatt@apple.com>
1923
1924         https://bugs.webkit.org/show_bug.cgi?id=50072
1925         
1926         Make overflow clipping to border-radius work across layers. This patch makes painting
1927         work but does not attempt to fix hit testing. It also doesn't work when a composited
1928         layer is clipped by a non-composited ancestor.
1929
1930         Add a new ClipRect class (used by ClipRects and RenderLayer) that is basically just tracking
1931         a rect and a border radius taint. At the time we set a clip, if the rectangle is listed
1932         as also being clipped by a radius, then we walk up the layer tree and push those inner border
1933         rounded rect clips for any overflow areas in the containing block chain.
1934
1935         Reviewed by Beth Dakin.
1936
1937         Added new tests in fast/clip.
1938
1939         * rendering/RenderBox.cpp:
1940         (WebCore::RenderBox::pushContentsClip):
1941         * rendering/RenderLayer.cpp:
1942         (WebCore::inContainingBlockChain):
1943         (WebCore::RenderLayer::clipToRect):
1944         (WebCore::RenderLayer::restoreClip):
1945         (WebCore::RenderLayer::paintLayer):
1946         (WebCore::RenderLayer::hitTestLayer):
1947         (WebCore::RenderLayer::calculateClipRects):
1948         (WebCore::RenderLayer::backgroundClipRect):
1949         (WebCore::RenderLayer::calculateRects):
1950         (WebCore::RenderLayer::childrenClipRect):
1951         (WebCore::RenderLayer::selfClipRect):
1952         * rendering/RenderLayer.h:
1953         (WebCore::ClipRect::ClipRect):
1954         (WebCore::ClipRect::rect):
1955         (WebCore::ClipRect::setRect):
1956         (WebCore::ClipRect::hasRadius):
1957         (WebCore::ClipRect::setHasRadius):
1958         (WebCore::ClipRect::operator==):
1959         (WebCore::ClipRect::intersect):
1960         (WebCore::ClipRect::move):
1961         (WebCore::ClipRect::isEmpty):
1962         (WebCore::ClipRect::intersects):
1963         (WebCore::intersection):
1964         (WebCore::ClipRects::overflowClipRect):
1965         (WebCore::ClipRects::setOverflowClipRect):
1966         (WebCore::ClipRects::fixedClipRect):
1967         (WebCore::ClipRects::setFixedClipRect):
1968         (WebCore::ClipRects::posClipRect):
1969         (WebCore::ClipRects::setPosClipRect):
1970         * rendering/RenderLayerBacking.cpp:
1971         (WebCore::RenderLayerBacking::updateCompositedBounds):
1972         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1973         (WebCore::RenderLayerBacking::paintIntoLayer):
1974         * rendering/RenderLayerCompositor.cpp:
1975         (WebCore::RenderLayerCompositor::addToOverlapMap):
1976         (WebCore::RenderLayerCompositor::clippedByAncestor):
1977         * rendering/RenderTreeAsText.cpp:
1978         (WebCore::writeLayers):
1979
1980 2011-09-15  Julien Chaffraix  <jchaffraix@webkit.org>
1981
1982         Crash in RenderBox::paintMaskImages due to a mask without an associated image
1983         https://bugs.webkit.org/show_bug.cgi?id=50151
1984
1985         Reviewed by Simon Fraser.
1986
1987         Test: fast/css/empty-webkit-mask-crash.html
1988
1989         The crash stems from the fact that FillLayer::hasImage would walk over the linked list
1990         of FillLayers and return true if one had an image. This means that hasImage() is true
1991         does not mean that image() is non-NULL on all FillLayers.
1992
1993         * rendering/RenderBox.cpp:
1994         (WebCore::RenderBox::paintMaskImages): Simplify the logic by doing the hasImage() check up-front
1995         and properly check image() for each FillLayers. This has the nice benefit of changing the complexity
1996         from O(n^2) to O(n), which was what the code expected anyway.
1997
1998 2011-09-15  Eric Seidel  <eric@webkit.org>
1999
2000         Remove ENABLE(SVG_AS_IMAGE) since all major ports have it on by default
2001         https://bugs.webkit.org/show_bug.cgi?id=68182
2002
2003         Reviewed by Adam Barth.
2004
2005         * Configurations/FeatureDefines.xcconfig:
2006         * DerivedSources.make:
2007         * GNUmakefile.am:
2008         * features.pri:
2009         * loader/cache/CachedImage.cpp:
2010         (WebCore::CachedImage::createImage):
2011
2012 2011-09-15  Andy Estes  <aestes@apple.com>
2013
2014         Having an empty listener to beforeload events changes the behavior of other scripts
2015         https://bugs.webkit.org/show_bug.cgi?id=45586
2016
2017         Reviewed by Darin Adler.
2018
2019         Test: fast/dom/beforeload/cached-image-before-load.html
2020         
2021         When loading a cached image after a beforeload handler has been
2022         installed on the document, ImageLoader would dispatch both the
2023         beforeload and load events asynchronously in such a way that caused
2024         load to fire first. Since a side effect of firing the beforeload event
2025         is to wire up the CachedImage to its associated RenderImage object,
2026         this work was not done by the time load fired, and scripts that queried
2027         renderer-dependent attributes of the image in an onload handler would
2028         get bogus values in return.
2029
2030         Fix this by ensuring load fires after beforeload in the cached image case.
2031
2032         * loader/ImageLoader.cpp:
2033         (WebCore::ImageLoader::updateFromElement): Call setClient() after
2034         dispatching beforeload, since setClient() will dispatch the load event
2035         if the image is cached.
2036
2037 2011-09-15  Anders Carlsson  <andersca@apple.com>
2038
2039         Remove ScrollView::platformContentsSize
2040         https://bugs.webkit.org/show_bug.cgi?id=68188
2041
2042         Reviewed by Darin Adler.
2043
2044         Since ScrollView keeps track of the contents size in ScrollView::m_contentsSize, we never
2045         have to ask the underlying platform scroll view for contents size since it should always just
2046         be equal to m_contentsSize.
2047
2048         * platform/ScrollView.cpp:
2049         (WebCore::ScrollView::contentsSize):
2050         (WebCore::ScrollView::wheelEvent):
2051         * platform/ScrollView.h:
2052         * platform/mac/ScrollViewMac.mm:
2053         * platform/wx/ScrollViewWx.cpp:
2054
2055 2011-09-15  Jon Lee  <jonlee@apple.com>
2056
2057         Submitting a form with target=_blank works only once
2058         https://bugs.webkit.org/show_bug.cgi?id=28633
2059         <rdar://problem/7357787>
2060
2061         Reviewed by Andy Estes.
2062
2063         Test: fast/forms/submit-to-blank-multiple-times.html
2064
2065         The call to reset the multiple form submission bool is pushed down from the mouseDown handler to
2066         handleMousePressEvent(), to include WK2 coverage, similar to keyEvent.
2067
2068         * page/EventHandler.cpp:
2069         (WebCore::EventHandler::handleMousePressEvent):
2070         (WebCore::EventHandler::keyEvent): clarified old FIXME comment. Both key events and mouse events
2071         may submit a form multiple times, but the call to reset the handler should probably be in another
2072         abstraction layer.
2073         * page/mac/EventHandlerMac.mm:
2074         (WebCore::EventHandler::mouseDown):
2075
2076 2011-09-15  Peter Rybin  <peter.rybin@gmail.com>
2077
2078         XMLDocumentParserQt.cpp incorrectly converts 0-based number into 1-based number
2079         https://bugs.webkit.org/show_bug.cgi?id=63540
2080
2081         ZeroBasedNumber/OneBasedNumber are used in more places, inconsistency
2082         in xml parser is fixed.
2083
2084         Reviewed by Adam Barth.
2085
2086         * bindings/js/ScriptController.cpp:
2087         (WebCore::ScriptController::eventHandlerLineNumber):
2088         * dom/ScriptableDocumentParser.h:
2089         * dom/StyleElement.cpp:
2090         (WebCore::StyleElement::StyleElement):
2091         * dom/ViewportArguments.cpp:
2092         (WebCore::parserLineNumber):
2093         * html/parser/HTMLDocumentParser.cpp:
2094         (WebCore::HTMLDocumentParser::lineNumber):
2095         * html/parser/HTMLDocumentParser.h:
2096         * inspector/InspectorResourceAgent.cpp:
2097         (WebCore::InspectorResourceAgent::buildInitiatorObject):
2098         * svg/SVGDocumentExtensions.cpp:
2099         (WebCore::parserLineNumber):
2100         * xml/parser/NewXMLDocumentParser.cpp:
2101         (WebCore::NewXMLDocumentParser::lineNumber):
2102         * xml/parser/NewXMLDocumentParser.h:
2103         * xml/parser/XMLDocumentParser.cpp:
2104         (WebCore::XMLDocumentParser::pushCurrentNode):
2105         * xml/parser/XMLDocumentParser.h:
2106         * xml/parser/XMLDocumentParserLibxml2.cpp:
2107         (WebCore::PendingCallbacks::appendErrorCallback):
2108         (WebCore::XMLDocumentParser::doWrite):
2109         (WebCore::XMLDocumentParser::startElementNs):
2110         (WebCore::XMLDocumentParser::error):
2111         (WebCore::XMLDocumentParser::lineNumber):
2112         (WebCore::XMLDocumentParser::columnNumber):
2113         (WebCore::XMLDocumentParser::textPosition):
2114         * xml/parser/XMLDocumentParserQt.cpp:
2115         (WebCore::XMLDocumentParser::doWrite):
2116         (WebCore::XMLDocumentParser::doEnd):
2117         (WebCore::XMLDocumentParser::lineNumber):
2118         (WebCore::XMLDocumentParser::columnNumber):
2119         (WebCore::XMLDocumentParser::textPosition):
2120         (WebCore::XMLDocumentParser::parse):
2121         (WebCore::XMLDocumentParser::parseStartElement):
2122
2123 2011-09-15  Peter Kasting  <pkasting@google.com>
2124
2125         Fix WebCore.gypi after r95130.
2126
2127         Unreviewed, build fix.
2128
2129         * WebCore.gypi:
2130
2131 2011-09-15  Eric Seidel  <eric@webkit.org>
2132
2133         Remove ENABLE_SVG_ANIMATION as all major ports have it on by default
2134         https://bugs.webkit.org/show_bug.cgi?id=68022
2135
2136         Reviewed by Ryosuke Niwa.
2137
2138         * Configurations/FeatureDefines.xcconfig:
2139         * DerivedSources.make:
2140         * GNUmakefile.am:
2141         * features.pri:
2142         * page/DOMWindow.idl:
2143         * svg/svgtags.in:
2144
2145 2011-09-15  Matthew Delaney  <mdelaney@apple.com>
2146
2147         REGRESSION (Safari 5.1-r95043): Incorrect box-shadow offset
2148         https://bugs.webkit.org/show_bug.cgi?id=68041
2149
2150         Reviewed by Dan Bernstein.
2151
2152         Test: fast/box-shadow/no-blur-multiple-offsets.html
2153
2154         * platform/graphics/cg/GraphicsContextCG.cpp:
2155         (WebCore::GraphicsContext::setPlatformShadow): Add hack back in for Lion if
2156         context is not accelerated.
2157
2158 2011-09-15  James Simonsen  <simonjam@chromium.org>
2159
2160         Ref protect HTMLObjectElement and HTMLEmbedElement while requesting plugins
2161         https://bugs.webkit.org/show_bug.cgi?id=68014
2162
2163         Reviewed by Adam Barth.
2164
2165         Test: plugins/destroy-during-npp-new.html under valgrind
2166               plugins/destroy-during-npp-new-object-with-fallback-content.html under valgrind
2167
2168         * html/HTMLEmbedElement.cpp:
2169         (WebCore::HTMLEmbedElement::updateWidget):
2170         * html/HTMLObjectElement.cpp:
2171         (WebCore::HTMLObjectElement::updateWidget):
2172
2173 2011-09-15  Sam Weinig  <sam@webkit.org>
2174
2175         Experiment with removing ability to call a collection (except document.all)
2176         https://bugs.webkit.org/show_bug.cgi?id=67579
2177
2178         Reviewed by Anders Carlsson.
2179
2180         At the request of the public-script-coord mailing list (specifically Brendan Eich, see
2181         http://lists.w3.org/Archives/Public/public-script-coord/2011JulSep/0360.html), this
2182         patch removes the ability to call a collection (either a NodeList or HTMLCollection,
2183         but not an HTMLAllCollection) as function, a syntax that we adopted to emulate IE.
2184         It is being landed to find out if there are any sites relying on this behavior of WebKit,
2185         or, if it is only used in IE only paths.  If we find sites are breaking, it should be rolled
2186         out and we should inform the public-script-coord mailing list.
2187
2188         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2189         Update comment.
2190
2191         * bindings/js/JSHTMLCollectionCustom.cpp:
2192         * bindings/js/JSNodeListCustom.cpp:
2193         Remove custom call code.
2194
2195         * bindings/scripts/CodeGeneratorV8.pm:
2196         Add support for V8CustomCall.
2197
2198         * dom/NodeList.idl:
2199         * html/HTMLCollection.idl:
2200         Remove CustomCall.
2201
2202 2011-09-15  Andreas Kling  <kling@webkit.org>
2203
2204         CanvasRenderingContext2D::State copy ctor should use initializer list.
2205         https://bugs.webkit.org/show_bug.cgi?id=68152
2206
2207         Reviewed by Darin Adler.
2208
2209         * html/canvas/CanvasRenderingContext2D.cpp:
2210         (WebCore::CanvasRenderingContext2D::State::State):
2211
2212 2011-09-15  Andreas Kling  <kling@webkit.org>
2213
2214         Don't bother calculating dirty rect for accelerated 2D canvases.
2215         https://bugs.webkit.org/show_bug.cgi?id=68158
2216
2217         Reviewed by Kenneth Rohde Christiansen.
2218
2219         For accelerated CanvasRenderingContext2D, didDraw() simply calls out
2220         to RenderLayer::contentChanged(). Move this to the top of didDraw()
2221         so we don't waste time calculating a precise dirty rect.
2222
2223         * html/canvas/CanvasRenderingContext2D.cpp:
2224         (WebCore::CanvasRenderingContext2D::didDraw):
2225
2226 2011-09-15  Brian Salomon  <bsalomon@google.com>
2227
2228         [Skia/Chrome] Cleanup unneeded code now that GrGLInterface is used to set GL ctx per GL call.
2229         https://bugs.webkit.org/show_bug.cgi?id=68096
2230
2231         Reviewed by Stephen White.
2232
2233         This change removes PlatformContextSkia::makeGrContextCurrent now that
2234         GrGLInterface is used to set the context on every Skia GL call.
2235
2236         Tested by every canvas layout test.
2237
2238         * platform/graphics/chromium/FontLinux.cpp:
2239         (WebCore::Font::drawGlyphs):
2240         * platform/graphics/skia/FontSkia.cpp:
2241         (WebCore::Font::drawGlyphs):
2242         * platform/graphics/skia/GraphicsContextSkia.cpp:
2243         (WebCore::GraphicsContext::clearRect):
2244         (WebCore::GraphicsContext::clip):
2245         (WebCore::GraphicsContext::drawConvexPolygon):
2246         (WebCore::GraphicsContext::drawEllipse):
2247         (WebCore::GraphicsContext::drawFocusRing):
2248         (WebCore::GraphicsContext::drawLine):
2249         (WebCore::GraphicsContext::drawLineForTextChecking):
2250         (WebCore::GraphicsContext::drawLineForText):
2251         (WebCore::GraphicsContext::drawRect):
2252         (WebCore::GraphicsContext::fillPath):
2253         (WebCore::GraphicsContext::fillRect):
2254         (WebCore::GraphicsContext::fillRoundedRect):
2255         (WebCore::GraphicsContext::strokeArc):
2256         (WebCore::GraphicsContext::strokePath):
2257         (WebCore::GraphicsContext::strokeRect):
2258         * platform/graphics/skia/ImageBufferSkia.cpp:
2259         (WebCore::ImageBuffer::ImageBuffer):
2260         (WebCore::ImageBuffer::~ImageBuffer):
2261         (WebCore::ImageBuffer::copyImage):
2262         (WebCore::ImageBuffer::draw):
2263         (WebCore::ImageBuffer::drawPattern):
2264         (WebCore::ImageBuffer::getUnmultipliedImageData):
2265         (WebCore::ImageBuffer::getPremultipliedImageData):
2266         (WebCore::ImageBuffer::putUnmultipliedImageData):
2267         (WebCore::ImageBuffer::putPremultipliedImageData):
2268         (WebCore::ImageBuffer::toDataURL):
2269         * platform/graphics/skia/ImageSkia.cpp:
2270         (WebCore::BitmapImage::draw):
2271         (WebCore::BitmapImageSingleFrameSkia::draw):
2272         * platform/graphics/skia/PlatformContextSkia.cpp:
2273         (WebCore::PlatformContextSkia::clipPathAntiAliased):
2274         (WebCore::PlatformContextSkia::setGraphicsContext3D):
2275         * platform/graphics/skia/PlatformContextSkia.h:
2276         * platform/graphics/skia/SkiaFontWin.cpp:
2277         (WebCore::paintSkiaText):
2278
2279 2011-09-15  Peter Beverloo  <peter@chromium.org>
2280
2281         [Chromium] Make sure that the ARM NEON files build with -marm
2282         https://bugs.webkit.org/show_bug.cgi?id=68088
2283
2284         Simply adding the -marm cflag for OS=Android compiles results in it
2285         being overridden by an -mthumb cflag later in the project generating
2286         process. Therefore we should explicitly exclude -mthumb.
2287
2288         Reviewed by Tony Gentilcore.
2289
2290         * WebCore.gyp/WebCore.gyp:
2291
2292 2011-09-15  Keishi Hattori  <keishi@webkit.org>
2293
2294         [chromium] Build fix: Remove use of GraphicsContext::setIsAcceleratedContext
2295
2296         r95174 introduced GraphicsContext::setIsAcceleratedContext into Skia code and caused chromium builds to fail.
2297
2298         * platform/graphics/skia/ImageBufferSkia.cpp:
2299         (WebCore::ImageBuffer::ImageBuffer):
2300
2301 2011-09-15  Yuta Kitamura  <yutak@chromium.org>
2302
2303         ThreadableWebSocketChannelClientWrapper shouldn't have a String in it.
2304         https://bugs.webkit.org/show_bug.cgi?id=67908
2305
2306         Reviewed by David Levin.
2307
2308         Replace a String member variable in ThreadableWebSocketChannelClientWrapper with Vector<UChar>.
2309
2310         ThreadableWebSocketChannelClientWrapper is derived from ThreadSafeRefCounted. It may be
2311         destroyed on different threads, which will affect String's refcounting. Therefore, classes
2312         derived from ThreadSafeRefCounted must not have a String member variable.
2313
2314         No change in functionality, thus no new tests. WebSocket worker tests
2315         (tests under http/tests/websocket/tests/{hixie76,hybi}/workers/) should keep passing.
2316
2317         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2318         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2319         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
2320         Create a String from Vector<UChar>. Note that String constructor taking an empty vector returns
2321         a null string, not an empty string. We want an empty string in that case, so I had to add
2322         special-case handling for an empty vector.
2323         (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
2324         Copy the content of the given String into Vector.
2325         * websockets/ThreadableWebSocketChannelClientWrapper.h:
2326
2327 2011-09-14  Matthew Delaney  <mdelaney@apple.com>
2328
2329         Use isAcceleratedContext() on the GraphicsContext instead of flags in ImageBuffer
2330         https://bugs.webkit.org/show_bug.cgi?id=68137
2331
2332         Reviewed by Simon Fraser.
2333
2334         No new tests. No change in behavior.
2335
2336         * html/canvas/CanvasRenderingContext2D.cpp:
2337         (WebCore::CanvasRenderingContext2D::isAccelerated): Have all just query the context directly.
2338         (WebCore::CanvasRenderingContext2D::fillAndDisplayTransparencyElsewhere): just use isAccelerated directly
2339         * platform/graphics/ImageBuffer.h:
2340         * platform/graphics/cg/ImageBufferCG.cpp:
2341         (WebCore::ImageBuffer::ImageBuffer): Set isAcceleratedContext on the GraphicsContext instead of carrying the
2342             bit around on the ImageBuffer itself.
2343         (WebCore::ImageBuffer::copyNativeImage): Update the check. Same for all below...
2344         (WebCore::ImageBuffer::drawPattern):
2345         (WebCore::ImageBuffer::getUnmultipliedImageData):
2346         (WebCore::ImageBuffer::getPremultipliedImageData):
2347         (WebCore::ImageBuffer::putUnmultipliedImageData):
2348         (WebCore::ImageBuffer::putPremultipliedImageData):
2349         * platform/graphics/skia/ImageBufferSkia.cpp: Set isAcceleratedContext on the GraphicsContext instead of carrying the
2350             bit around on the ImageBuffer itself.
2351         (WebCore::ImageBuffer::ImageBuffer): Remove m_acceleratesRendering flag and getter.
2352
2353 2011-09-14  Jeffrey Pfau  <jeffrey@endrift.com>
2354
2355         libxml2 fragment parser loses prefix namespaces
2356         https://bugs.webkit.org/show_bug.cgi?id=66423
2357
2358         This makes the loop over the elements outside of the context actually update the element it's processing.
2359
2360         Reviewed by Eric Seidel.
2361
2362         Test: fast/parser/innerhtml-with-prefixed-elements.xhtml
2363
2364         * xml/parser/XMLDocumentParserLibxml2.cpp:
2365         (WebCore::XMLDocumentParser::XMLDocumentParser):
2366
2367 2011-09-14  Nate Chapin  <japhet@chromium.org>
2368
2369         [V8] Null-check the v8::Context in 
2370         V8DOMWindowShell:namedItemAdded() before using it.
2371         Also, add some logging to figure out how we're getting
2372         into this bad state.
2373         https://bugs.webkit.org/show_bug.cgi?id=68099
2374
2375         Reviewed by Adam Barth.
2376
2377         No new tests, no known repro.
2378
2379         * bindings/v8/V8DOMWindowShell.cpp:
2380         (WebCore::V8DOMWindowShell::namedItemAdded):
2381
2382 2011-09-14  Patrick Gansterer  <paroga@webkit.org>
2383
2384         Replace ENABLE_XHR_RESPONSE_BLOB preprocessor statements in IDL files with Conditional attribute
2385         https://bugs.webkit.org/show_bug.cgi?id=64960
2386
2387         Reviewed by Ryosuke Niwa.
2388
2389         * xml/XMLHttpRequest.idl:
2390
2391 2011-09-14  Alexei Svitkine  <asvitkine@chromium.org>
2392
2393         Chromium: Add a layer for rubber-band overhang painting to the hardware path.
2394         https://bugs.webkit.org/show_bug.cgi?id=66969
2395
2396         Also, add layout tests for rubber-band overhang drawing for compositing path.
2397
2398         Reviewed by James Robinson.
2399
2400         * page/FrameView.cpp:
2401         (WebCore::FrameView::layerForOverhangAreas):
2402         * page/FrameView.h:
2403         * platform/ScrollView.cpp:
2404         (WebCore::ScrollView::scrollContents):
2405         (WebCore::ScrollView::wheelEvent):
2406         * platform/ScrollView.h:
2407         * platform/ScrollableArea.h:
2408         (WebCore::ScrollableArea::layerForOverhangAreas):
2409         * rendering/RenderLayerCompositor.cpp:
2410         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
2411         (WebCore::RenderLayerCompositor::paintContents):
2412         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2413         (WebCore::RenderLayerCompositor::destroyRootLayer):
2414         * rendering/RenderLayerCompositor.h:
2415         (WebCore::RenderLayerCompositor::layerForOverhangAreas):
2416
2417 2011-09-14  Antoine Labour  <piman@chromium.org>
2418
2419         Remove the dependency on GraphicsLayer from CCLayerTreeHost.
2420         Move root layer management into the NonCompositedContentHost.
2421         Have WebViewImpl create a NonCompositedContentHost explicitly.
2422         https://bugs.webkit.org/show_bug.cgi?id=67883
2423
2424         Reviewed by James Robinson.
2425
2426         Covered by compositing/ layout tests.
2427
2428         * platform/graphics/chromium/NonCompositedContentHost.cpp:
2429         (WebCore::NonCompositedContentHost::setRootLayer):
2430         (WebCore::NonCompositedContentHost::setViewport):
2431         (WebCore::NonCompositedContentHost::setVisible):
2432         (WebCore::NonCompositedContentHost::clearRenderSurfacesRecursive):
2433         (WebCore::NonCompositedContentHost::invalidateRect):
2434         * platform/graphics/chromium/NonCompositedContentHost.h:
2435         (WebCore::NonCompositedContentHost::topLevelRootLayer):
2436         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2437         (WebCore::CCLayerTreeHost::create):
2438         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2439         (WebCore::CCLayerTreeHost::initialize):
2440         (WebCore::CCLayerTreeHost::commitTo):
2441         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
2442         (WebCore::CCLayerTreeHost::setViewport):
2443         (WebCore::CCLayerTreeHost::setVisible):
2444         (WebCore::CCLayerTreeHost::updateLayers):
2445         (WebCore::CCLayerTreeHost::paintLayerContents):
2446         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2447         (WebCore::CCLayerTreeHost::rootLayer):
2448
2449 2011-09-14  Henrik Grunell  <grunell@google.com>
2450
2451         MediaStream API: Change PeerConnection constructor name to webkitPeerConnection
2452         https://bugs.webkit.org/show_bug.cgi?id=67843
2453
2454         Reviewed by Tony Gentilcore.
2455
2456         Tests for the MediaStream API will be provided by the bug 56587, pending enough landed code.
2457
2458         * bindings/generic/RuntimeEnabledFeatures.h:
2459         (WebCore::RuntimeEnabledFeatures::webkitPeerConnectionEnabled):
2460         * page/DOMWindow.idl:
2461
2462 2011-09-14  John Bauman  <jbauman@chromium.org>
2463
2464         Make sure to GC decoded images that are only used with WebGL
2465         https://bugs.webkit.org/show_bug.cgi?id=67899
2466
2467         Reviewed by James Robinson.
2468
2469         Tell CachedImage that the WebGL image was drawn so WebGL-only
2470         content will have decoded images collected.
2471
2472         * platform/graphics/GraphicsContext3D.cpp:
2473         (WebCore::GraphicsContext3D::extractImageData):
2474
2475 2011-09-14  Antoine Labour  <piman@chromium.org>
2476
2477         Added a pure virtual class CCLayerDelegate which helps to isolate
2478         the chromium compositor from the rest of WebCore, and aids unit
2479         testing by being easily mockable.  The compositor layers no longer
2480         directly see instances of GraphicsLayerChromium, instead they use
2481         this interface.
2482         https://bugs.webkit.org/show_bug.cgi?id=67750
2483
2484         Reviewed by James Robinson.
2485
2486         No new tests: changes already covered by existing compositing layout
2487         tests.
2488
2489         * platform/graphics/chromium/CanvasLayerChromium.cpp:
2490         (WebCore::CanvasLayerChromium::CanvasLayerChromium):
2491         * platform/graphics/chromium/CanvasLayerChromium.h:
2492         * platform/graphics/chromium/ContentLayerChromium.cpp:
2493         (WebCore::ContentLayerPainter::create):
2494         (WebCore::ContentLayerPainter::paint):
2495         (WebCore::ContentLayerPainter::ContentLayerPainter):
2496         (WebCore::ContentLayerChromium::create):
2497         (WebCore::ContentLayerChromium::ContentLayerChromium):
2498         (WebCore::ContentLayerChromium::drawsContent):
2499         * platform/graphics/chromium/ContentLayerChromium.h:
2500         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2501         (WebCore::GraphicsLayerChromium::getDrawsContent):
2502         (WebCore::GraphicsLayerChromium::getPreserves3D):
2503         (WebCore::GraphicsLayerChromium::paintingGoesToWindow):
2504         (WebCore::GraphicsLayerChromium::doPaintGraphicsLayerContents):
2505         (WebCore::GraphicsLayerChromium::notifySyncRequired):
2506         * platform/graphics/chromium/GraphicsLayerChromium.h:
2507         * platform/graphics/chromium/ImageLayerChromium.cpp:
2508         (WebCore::ImageLayerChromium::create):
2509         (WebCore::ImageLayerChromium::ImageLayerChromium):
2510         * platform/graphics/chromium/ImageLayerChromium.h:
2511         * platform/graphics/chromium/LayerChromium.cpp:
2512         (WebCore::LayerChromium::create):
2513         (WebCore::LayerChromium::LayerChromium):
2514         * platform/graphics/chromium/LayerChromium.h:
2515         (WebCore::CCLayerDelegate::~CCLayerDelegate):
2516         (WebCore::LayerChromium::preserves3D):
2517         (WebCore::LayerChromium::setOwner):
2518         * platform/graphics/chromium/PluginLayerChromium.cpp:
2519         (WebCore::PluginLayerChromium::create):
2520         (WebCore::PluginLayerChromium::PluginLayerChromium):
2521         * platform/graphics/chromium/PluginLayerChromium.h:
2522         * platform/graphics/chromium/TiledLayerChromium.cpp:
2523         (WebCore::TiledLayerChromium::TiledLayerChromium):
2524         * platform/graphics/chromium/TiledLayerChromium.h:
2525         * platform/graphics/chromium/VideoLayerChromium.cpp:
2526         (WebCore::VideoLayerChromium::create):
2527         (WebCore::VideoLayerChromium::VideoLayerChromium):
2528         (WebCore::VideoLayerChromium::updateCompositorResources):
2529         * platform/graphics/chromium/VideoLayerChromium.h:
2530         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2531         (WebCore::WebGLLayerChromium::create):
2532         (WebCore::WebGLLayerChromium::WebGLLayerChromium):
2533         * platform/graphics/chromium/WebGLLayerChromium.h:
2534
2535 2011-09-14  Anders Carlsson  <andersca@apple.com>
2536
2537         Try to fix GTK+ build.
2538         
2539         * GNUmakefile.list.am:
2540
2541 2011-09-14  James Robinson  <jamesr@chromium.org>
2542
2543         [chromium] LayerRendererChromium shouldn't be RefCounted
2544         https://bugs.webkit.org/show_bug.cgi?id=68121
2545
2546         Reviewed by Kenneth Russell.
2547
2548         LayerRendererChromium is owned exclusively by CCLayerTreeHostImpl, so there's no reason to have it be
2549         refcounted. Making it an OwnPtr<> makes the lifecycle for these objects much cleaner and reduces the chance of
2550         introducing accidental reference cycles.  This also removes the LayerRendererChromium pointers from CCLayerImpls
2551         since it only needed at draw time.
2552
2553         Covered by compositing/ tests.
2554
2555         * platform/graphics/chromium/LayerRendererChromium.cpp:
2556         (WebCore::LayerRendererChromium::create):
2557         (WebCore::LayerRendererChromium::drawLayers):
2558         (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay):
2559         (WebCore::LayerRendererChromium::useRenderSurface):
2560         (WebCore::LayerRendererChromium::drawLayer):
2561         * platform/graphics/chromium/LayerRendererChromium.h:
2562         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2563         (WebCore::CCCanvasLayerImpl::draw):
2564         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
2565         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2566         (WebCore::CCLayerImpl::CCLayerImpl):
2567         (WebCore::CCLayerImpl::draw):
2568         (WebCore::CCLayerImpl::bindContentsTexture):
2569         (WebCore::CCLayerImpl::drawDebugBorder):
2570         * platform/graphics/chromium/cc/CCLayerImpl.h:
2571         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2572         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2573         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2574         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2575         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2576         (WebCore::CCPluginLayerImpl::draw):
2577         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
2578         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2579         (WebCore::CCRenderSurface::cleanupResources):
2580         (WebCore::CCRenderSurface::prepareContentsTexture):
2581         (WebCore::CCRenderSurface::draw):
2582         (WebCore::CCRenderSurface::drawLayer):
2583         (WebCore::CCRenderSurface::drawSurface):
2584         * platform/graphics/chromium/cc/CCRenderSurface.h:
2585         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2586         (WebCore::CCTiledLayerImpl::bindContentsTexture):
2587         (WebCore::CCTiledLayerImpl::draw):
2588         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2589         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2590         (WebCore::CCVideoLayerImpl::draw):
2591         (WebCore::CCVideoLayerImpl::drawYUV):
2592         (WebCore::CCVideoLayerImpl::drawRGBA):
2593         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2594
2595 2011-09-14  Anders Carlsson  <andersca@apple.com>
2596
2597         Get rid of WebCoreViewFactory and its WebViewFactory subclass
2598         https://bugs.webkit.org/show_bug.cgi?id=68124
2599
2600         Reviewed by Sam Weinig.
2601
2602         * WebCore.exp.in:
2603         * WebCore.xcodeproj/project.pbxproj:
2604         * editing/mac/FrameSelectionMac.mm:
2605         * page/mac/FrameMac.mm:
2606         * page/mac/WebCoreViewFactory.h: Removed.
2607         * page/mac/WebCoreViewFactory.m: Removed.
2608
2609 2011-09-14  David Hyatt  <hyatt@apple.com>
2610
2611         https://bugs.webkit.org/show_bug.cgi?id=52736
2612
2613         Tiles were not being properly centered within border image sides for the "repeat"
2614         keyword. This patch fixes the buggy math behind the pattern tiling to actually get
2615         the initial phases correct.
2616
2617         Reviewed by Sam Weinig.
2618         
2619         Added new tests in fast/borders and updated broken existing tests.
2620
2621         * platform/graphics/Image.cpp:
2622         (WebCore::Image::drawTiled):
2623
2624 2011-09-14  Anders Carlsson  <andersca@apple.com>
2625
2626         Remove DocTypeStrings.gperf
2627         https://bugs.webkit.org/show_bug.cgi?id=68119
2628
2629         Reviewed by Sam Weinig.
2630
2631         * CMakeLists.txt:
2632         * CodeGenerators.pri:
2633         * DerivedSources.make:
2634         * GNUmakefile.am:
2635         * WebCore.gyp/WebCore.gyp:
2636         * WebCore.vcproj/WebCore.vcproj:
2637         * WebCore.xcodeproj/project.pbxproj:
2638         * html/DocTypeStrings.gperf: Removed.
2639         * make-hash-tools.pl:
2640         * platform/HashTools.h:
2641
2642 2011-09-14  Chris Rogers  <crogers@google.com>
2643
2644         Address lifetime issues in OfflineAudioDestinationNode (take 2)
2645         https://bugs.webkit.org/show_bug.cgi?id=68111
2646
2647         Reviewed by Kenneth Russell.
2648
2649         No new tests.  This fixes existing layout tests.
2650
2651         * webaudio/OfflineAudioDestinationNode.cpp:
2652         (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
2653         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
2654         (WebCore::OfflineAudioDestinationNode::startRendering):
2655         (WebCore::OfflineAudioDestinationNode::render):
2656
2657 2011-09-14  David Hyatt  <hyatt@apple.com>
2658
2659         https://bugs.webkit.org/show_bug.cgi?id=68103
2660         
2661         Centered portions of border images don't render correctly. Make the tile scale factor have to be
2662         explicitly passed in and modify paintNinePieceImage to compute it for all sides. The attempts to
2663         implicitly compute the scale for the pattern based off the source and destination rects just don't
2664         work, since the center image rects don't provide the right information to be able to infer the
2665         scale factor.
2666
2667         Reviewed by Sam Weinig.
2668
2669         Reset all the existing fast/borders pixel results to Lion for these changes.
2670
2671         * platform/graphics/GraphicsContext.cpp:
2672         (WebCore::GraphicsContext::drawTiledImage):
2673         * platform/graphics/GraphicsContext.h:
2674         * platform/graphics/Image.cpp:
2675         (WebCore::Image::drawTiled):
2676         * platform/graphics/Image.h:
2677         * rendering/RenderBoxModelObject.cpp:
2678         (WebCore::RenderBoxModelObject::paintNinePieceImage):
2679
2680 2011-09-14  Anders Carlsson  <andersca@apple.com>
2681
2682         Get rid of ResourceHandle::bufferedData()
2683         https://bugs.webkit.org/show_bug.cgi?id=68112
2684
2685         Reviewed by David Hyatt.
2686
2687         ResourceHandle::bufferedData() was only implemented on Mac, and the support in the underlying
2688         NSURLConnection class hasn't been there for several OS releases.
2689
2690         * loader/ResourceLoader.cpp:
2691         (WebCore::ResourceLoader::resourceData):
2692         (WebCore::ResourceLoader::addData):
2693         * platform/network/ResourceHandle.h:
2694         * platform/network/cf/ResourceHandleCFNet.cpp:
2695         * platform/network/curl/ResourceHandleCurl.cpp:
2696         * platform/network/mac/ResourceHandleMac.mm:
2697         * platform/network/qt/ResourceHandleQt.cpp:
2698         * platform/network/soup/ResourceHandleSoup.cpp:
2699         * platform/network/win/ResourceHandleWin.cpp:
2700
2701 2011-09-14  Mark Hahnenberg  <mhahnenberg@apple.com>
2702
2703         REGRESSION: r95108 broke Qt Linux tests
2704         https://bugs.webkit.org/show_bug.cgi?id=68104
2705
2706         Reviewed by Csaba Osztrogonác.
2707
2708         No new tests.
2709
2710         Build fix for Qt tests broken in r95108.
2711
2712         * bridge/qt/qt_runtime.cpp:
2713         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
2714         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
2715         (JSC::Bindings::QtRuntimeConnectionMethod::QtRuntimeConnectionMethod):
2716         * bridge/qt/qt_runtime.h:
2717
2718 2011-09-14  James Robinson  <jamesr@chromium.org>
2719
2720         [skia] fast/canvas/setWidthResetAfterForcedRender is flaky
2721         https://bugs.webkit.org/show_bug.cgi?id=67955
2722
2723         Reviewed by Stephen White.
2724
2725         When destroying an ImageBuffer due to a canvas resize, we weren't clearing the texture ID on the layer,
2726         resulting in future compositor draw calls binding an invalid texture.  This results in the test failing and
2727         possibly drawing from a bad texture.
2728
2729         Covered by fast/canvas/setWidthResetAfterForcedRender.html in the GPU configuration.
2730
2731         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2732         (WebCore::Canvas2DLayerChromium::drawsContent)
2733         * platform/graphics/skia/ImageBufferSkia.cpp:
2734         (WebCore::ImageBuffer::~ImageBuffer):
2735
2736 2011-09-14  Eric Seidel  <eric@webkit.org>
2737
2738         Remove ENABLE_SVG_USE as <use> is required by HTML5
2739         https://bugs.webkit.org/show_bug.cgi?id=68019
2740
2741         Reviewed by Ryosuke Niwa.
2742
2743         I missed a couple uses of SVG_USE in my previous patch.
2744
2745         * dom/DOMImplementation.cpp:
2746         (WebCore::isSVG10Feature):
2747         (WebCore::isSVG11Feature):
2748         * svg/SVGUseElement.cpp:
2749         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2750         * svg/SVGUseElement.h:
2751
2752 2011-09-14  Mark Hahnenberg  <mhahnenberg@apple.com>
2753
2754         Unzip initialization lists and constructors in JSCell hierarchy (6/7)
2755         https://bugs.webkit.org/show_bug.cgi?id=67692
2756
2757         Reviewed by Geoffrey Garen.
2758
2759         No new tests.
2760
2761         Completed the sixth level of the refactoring to add finishCreation() 
2762         methods to all classes within the JSCell hierarchy with non-trivial 
2763         constructor bodies.
2764
2765         This primarily consists of pushing the calls to finishCreation() down 
2766         into the constructors of the subclasses of the fifth level of the hierarchy 
2767         as well as pulling the finishCreation() calls out into the class's corresponding
2768         create() method if it has one.  Doing both simultaneously allows us to 
2769         maintain the invariant that the finishCreation() method chain is called exactly 
2770         once during the creation of an object, since calling it any other number of 
2771         times (0, 2, or more) will cause an assertion failure.
2772
2773         * WebCore.exp.in:
2774         * bindings/js/JSDOMBinding.h:
2775         (WebCore::DOMConstructorObject::DOMConstructorObject):
2776         (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument):
2777         (WebCore::DOMConstructorWithDocument::finishCreation):
2778         * bindings/js/JSDOMGlobalObject.cpp:
2779         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
2780         * bindings/js/JSDOMGlobalObject.h:
2781         * bindings/js/JSDOMWindowBase.cpp:
2782         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2783         (WebCore::JSDOMWindowBase::finishCreation):
2784         * bindings/js/JSDOMWindowBase.h:
2785         * bindings/js/JSWorkerContextBase.cpp:
2786         (WebCore::JSWorkerContextBase::JSWorkerContextBase):
2787         (WebCore::JSWorkerContextBase::finishCreation):
2788         * bindings/js/JSWorkerContextBase.h:
2789         * bindings/scripts/CodeGeneratorJS.pm:
2790
2791         Added a finishCreation declaration and Moved the finishCreation call into the 
2792         create method for all classes except for subclasses of JSWorkerContextBase and 
2793         JSDOMWindowBase because those classes are on the next level, and it's easier 
2794         to do all of these classes in one fell swoop rather than level by level.
2795         (GenerateHeader):
2796         Added the implementation of the finishCreation method for the classes described above.
2797         (GenerateImplementation):
2798         Also added the finishCreation calls to the autogenerated DOM constructor classes.
2799         (GenerateConstructorDeclaration):
2800         (GenerateConstructorDefinition):
2801
2802         * bindings/scripts/test/JS/JSTestInterface.cpp:
2803         (WebCore::JSTestInterfaceConstructor::create):
2804         (WebCore::JSTestInterfaceConstructor::JSTestInterfaceConstructor):
2805         (WebCore::JSTestInterfaceConstructor::finishCreation):
2806         (WebCore::JSTestInterface::JSTestInterface):
2807         (WebCore::JSTestInterface::finishCreation):
2808         * bindings/scripts/test/JS/JSTestInterface.h:
2809         (WebCore::JSTestInterface::create):
2810         (WebCore::JSTestInterfacePrototype::create):
2811         (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
2812         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2813         (WebCore::JSTestMediaQueryListListenerConstructor::create):
2814         (WebCore::JSTestMediaQueryListListenerConstructor::JSTestMediaQueryListListenerConstructor):
2815         (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
2816         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
2817         (WebCore::JSTestMediaQueryListListener::finishCreation):
2818         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
2819         (WebCore::JSTestMediaQueryListListener::create):
2820         (WebCore::JSTestMediaQueryListListenerPrototype::create):
2821         (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
2822         * bindings/scripts/test/JS/JSTestObj.cpp:
2823         (WebCore::JSTestObjConstructor::create):
2824         (WebCore::JSTestObjConstructor::JSTestObjConstructor):
2825         (WebCore::JSTestObjConstructor::finishCreation):
2826         (WebCore::JSTestObj::JSTestObj):
2827         (WebCore::JSTestObj::finishCreation):
2828         * bindings/scripts/test/JS/JSTestObj.h:
2829         (WebCore::JSTestObj::create):
2830         (WebCore::JSTestObjPrototype::create):
2831         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
2832         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2833         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::create):
2834         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::JSTestSerializedScriptValueInterfaceConstructor):
2835         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2836         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
2837         (WebCore::JSTestSerializedScriptValueInterface::finishCreation):
2838         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2839         (WebCore::JSTestSerializedScriptValueInterface::create):
2840         (WebCore::JSTestSerializedScriptValueInterfacePrototype::create):
2841         (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
2842         * bridge/c/CRuntimeObject.cpp:
2843         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
2844         * bridge/c/CRuntimeObject.h:
2845         (JSC::Bindings::CRuntimeObject::create):
2846         * bridge/c/c_instance.cpp:
2847         (JSC::Bindings::CRuntimeMethod::CRuntimeMethod):
2848         (JSC::Bindings::CRuntimeMethod::finishCreation):
2849         * bridge/jni/jsc/JavaInstanceJSC.cpp:
2850         (JavaRuntimeMethod::JavaRuntimeMethod):
2851         (JavaRuntimeMethod::finishCreation):
2852         * bridge/jni/jsc/JavaRuntimeObject.cpp:
2853         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
2854         * bridge/jni/jsc/JavaRuntimeObject.h:
2855         (JSC::Bindings::JavaRuntimeObject::create):
2856         * bridge/objc/ObjCRuntimeObject.h:
2857         (JSC::Bindings::ObjCRuntimeObject::create):
2858         * bridge/objc/ObjCRuntimeObject.mm:
2859         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
2860         * bridge/objc/objc_instance.mm:
2861         (ObjCRuntimeMethod::ObjCRuntimeMethod):
2862         (ObjCRuntimeMethod::finishCreation):
2863         * bridge/qt/qt_instance.cpp:
2864         (JSC::Bindings::QtRuntimeObject::create):
2865         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
2866         * bridge/qt/qt_pixmapruntime.cpp:
2867         (JSC::Bindings::QtPixmapRuntimeObject::create):
2868         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
2869         * bridge/qt/qt_runtime.cpp:
2870         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
2871         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
2872         (JSC::Bindings::QtRuntimeMetaMethod::finishCreation):
2873         (JSC::Bindings::QtRuntimeConnectionMethod::QtRuntimeConnectionMethod):
2874         (JSC::Bindings::QtRuntimeConnectionMethod::finishCreation):
2875         * bridge/qt/qt_runtime.h:
2876         (JSC::Bindings::QtRuntimeMetaMethod::create):
2877         * bridge/runtime_method.cpp:
2878         (JSC::RuntimeMethod::RuntimeMethod):
2879         * bridge/runtime_method.h:
2880         (JSC::RuntimeMethod::create):
2881
2882 2011-09-13  Eric Seidel  <eric@webkit.org>
2883
2884         Remove ENABLE_SVG_USE as <use> is required by HTML5
2885         https://bugs.webkit.org/show_bug.cgi?id=68019
2886
2887         Reviewed by Ryosuke Niwa.
2888
2889         * Configurations/FeatureDefines.xcconfig:
2890         * DerivedSources.make:
2891         * GNUmakefile.am:
2892         * features.pri:
2893
2894 2011-09-14  Eric Carlson  <eric.carlson@apple.com>
2895
2896         MediaPlayerPrivateAVFoundationObjC's "periodic time observer" is unnecessary
2897         https://bugs.webkit.org/show_bug.cgi?id=68056
2898
2899         MediaPlayerPrivateAVFoundationObjC creates a "periodic time observer" not because it wants
2900         periodic callbacks, but because a time observer also fires whenever a seek completes. This is 
2901         no longer necessary because it now uses but AVPlayerItem's 
2902         -seekToTime:toleranceBefore:toleranceAfter:completionHandler to seek, so seek completions are
2903         always notified.
2904
2905         Reviewed by Darin Adler.
2906
2907         No new tests, code removed is tested by existing tests.
2908
2909         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2910         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
2911
2912 2011-09-14  Beth Dakin  <bdakin@apple.com>
2913
2914         https://bugs.webkit.org/show_bug.cgi?id=68054
2915         Return an image scale factor as well as an Image* from CachedImage::brokenImage()
2916
2917         Reviewed by Darin Adler.
2918
2919         CachedImage::brokenImage() now returns a pair<Image*, float> where the float 
2920         represents the image's scale factor. This is important because currently, the 
2921         broken image will either be only 1x or 2x, but a deviceScaleFactor could 
2922         theoretically be something different (1.5, 3, etc). So it is not safe to assume 
2923         that the image's scale factor is equivalent to the deviceScaleFactor, and 
2924         hardcoding 2 for now is lame.
2925         * loader/cache/CachedImage.cpp:
2926         (WebCore::CachedImage::brokenImage):
2927         (WebCore::CachedImage::image):
2928         * loader/cache/CachedImage.h:
2929         * rendering/RenderImage.cpp:
2930         (WebCore::RenderImage::imageSizeForError):
2931         (WebCore::RenderImage::paintReplaced):
2932
2933 2011-09-14  James Robinson  <jamesr@chromium.org>
2934
2935         [chromium] Move contents texture manager from LayerRendererChromium to CCLayerTreeHost
2936         https://bugs.webkit.org/show_bug.cgi?id=67440
2937
2938         Reviewed by Kenneth Russell.
2939
2940         This moves the contents TextureManager over to the CCLayerTreeHost, where it belongs, and adds in a commit path
2941         to make sure that textures are deleted even if the page is not visible.  This move also removed the need for
2942         LayerRendererChromium's CCLayerTreeHost pointer, so I removed that as well.  That meant moving the
2943         layerTreeAsText() logic over to the CCLayerImpl side, which is where it really belonged anyway.
2944
2945         Covered by existing compositing/ tests and
2946         platform/chromium/compositor/lost-compositor-context-with-rendersurface.html
2947
2948         * platform/graphics/chromium/LayerRendererChromium.cpp:
2949         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
2950         (WebCore::LayerRendererChromium::drawLayers):
2951         (WebCore::LayerRendererChromium::initializeSharedObjects):
2952         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2953         * platform/graphics/chromium/LayerRendererChromium.h:
2954         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
2955         * platform/graphics/chromium/TextureManager.cpp:
2956         (WebCore::TextureManager::highLimitBytes):
2957         (WebCore::TextureManager::reclaimLimitBytes):
2958         (WebCore::TextureManager::lowLimitBytes):
2959         * platform/graphics/chromium/TextureManager.h:
2960         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2961         (WebCore::CCLayerTreeHost::initialize):
2962         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
2963         (WebCore::CCLayerTreeHost::deleteContentsTextures):
2964         (WebCore::CCLayerTreeHost::commitTo):
2965         (WebCore::CCLayerTreeHost::setVisible):
2966         (WebCore::CCLayerTreeHost::contentsTextureManager):
2967         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2968         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2969         (WebCore::CCLayerTreeHostImpl::setVisible):
2970         * platform/graphics/chromium/cc/CCProxy.h:
2971         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2972         (WebCore::CCSingleThreadProxy::setNeedsCommit):
2973         (WebCore::CCSingleThreadProxy::stop):
2974         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2975         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2976         (WebCore::CCThreadProxy::setNeedsCommit):
2977         (WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
2978         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
2979         * platform/graphics/chromium/cc/CCThreadProxy.h:
2980
2981 2011-09-14  David Hyatt  <hyatt@apple.com>
2982
2983         https://bugs.webkit.org/show_bug.cgi?id=68040
2984         
2985         Make sure border image sub-properties can be specified in any order.
2986
2987         Reviewed by Beth Dakin.
2988
2989         New tests in fast/borders.
2990
2991         * css/CSSParser.cpp:
2992         (WebCore::BorderImageParseContext::BorderImageParseContext):
2993         (WebCore::BorderImageParseContext::canAdvance):
2994         (WebCore::BorderImageParseContext::setCanAdvance):
2995         (WebCore::BorderImageParseContext::allowCommit):
2996         (WebCore::BorderImageParseContext::allowImage):
2997         (WebCore::BorderImageParseContext::allowImageSlice):
2998         (WebCore::BorderImageParseContext::allowSlash):
2999         (WebCore::BorderImageParseContext::requireWidth):
3000         (WebCore::BorderImageParseContext::requireOutset):
3001         (WebCore::BorderImageParseContext::commitImage):
3002         (WebCore::BorderImageParseContext::commitImageSlice):
3003         (WebCore::BorderImageParseContext::commitSlash):
3004         (WebCore::BorderImageParseContext::commitBorderWidth):
3005         (WebCore::BorderImageParseContext::commitBorderOutset):
3006         (WebCore::BorderImageParseContext::commitRepeat):
3007         (WebCore::CSSParser::parseBorderImage):
3008         (WebCore::CSSParser::parseBorderImageRepeat):
3009         (WebCore::CSSParser::parseBorderImageSlice):
3010         (WebCore::CSSParser::parseBorderImageQuad):
3011         * css/CSSParserValues.h:
3012         (WebCore::CSSParserValueList::previous):
3013
3014 2011-09-14  Mike Reed  <reed@google.com>
3015
3016         query SystemParametersInfo for GDI font smoothing settings
3017         https://bugs.webkit.org/show_bug.cgi?id=68080
3018
3019         Reviewed by Stephen White.
3020
3021         No new tests. fixes antialiasing issues based on User settings
3022
3023         * platform/graphics/skia/SkiaFontWin.cpp:
3024         (WebCore::getDefaultGDITextFlags):
3025         (WebCore::setupPaintForFont):
3026
3027 2011-09-13  David Hyatt  <hyatt@apple.com>
3028
3029         https://bugs.webkit.org/show_bug.cgi?id=68050
3030         
3031         Regressions in some layout tests from making border/mask/reflection nine-piece-image
3032         parsing match the spec, which allows any of the pieces to be omitted and to also be
3033         specifiable in any order.
3034         
3035         When the higher level code suddenly allowed the image slices to be omitted, the fixup
3036         for legacy compatibility for reflections and masks in the parseBorderImageSlice function
3037         no longer happened because that function no longer got called.
3038         
3039         The fix is to properly set the defaults to include the "fill" keyword, so the fixup is
3040         applied to the NinePieceImages you create before you ever map anything in from the rules.
3041         
3042         This also has the side effect of fixing -webkit-max-box-image-slice to actually dump as
3043         "0 fill" instead of just "0", which is the correct initial value for this property.
3044
3045         Reviewed by Adam Roben.
3046
3047         * css/CSSParser.cpp:
3048         (WebCore::CSSParser::parseBorderImageSlice):
3049         * css/CSSStyleSelector.cpp:
3050         (WebCore::CSSStyleSelector::applyProperty):
3051         * rendering/style/StyleRareNonInheritedData.cpp:
3052         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3053         * rendering/style/StyleReflection.h:
3054         (WebCore::StyleReflection::StyleReflection):
3055
3056 2011-09-13  Pavel Feldman  <pfeldman@google.com>
3057
3058         Web Inspector: InspectorInstrumentation::frameDestroyed is called after m_page has been reset.
3059         https://bugs.webkit.org/show_bug.cgi?id=67997
3060
3061         We should not instrument frameDestroyed event from within Frame's destructor
3062         since frame's m_page pointer is likely to be 0 by that time and appropriate
3063         instrumenting agent won't be found. As a result, stale frame with its id
3064         end up in the inspector.
3065
3066         This change wipes out frame binding from the inspector upon detach rather
3067         than destroy.
3068
3069         Reviewed by Tony Gentilcore.
3070
3071         * inspector/InspectorInstrumentation.cpp:
3072         (WebCore::InspectorInstrumentation::frameDetachedImpl):
3073         * inspector/InspectorInstrumentation.h:
3074         * inspector/InspectorPageAgent.cpp:
3075         (WebCore::InspectorPageAgent::frameDetached):
3076         * inspector/InspectorPageAgent.h:
3077         * loader/FrameLoader.cpp:
3078         (WebCore::FrameLoader::detachFromParent):
3079         * page/Frame.cpp:
3080         (WebCore::Frame::~Frame):
3081         (WebCore::Frame::detachFromPage):
3082         * page/Frame.h:
3083
3084 2011-09-14  Pavel Feldman  <pfeldman@google.com>
3085
3086         Not reviewed: rolling out r95089.
3087
3088         * inspector/InspectorInstrumentation.cpp:
3089         (WebCore::InspectorInstrumentation::frameDestroyedImpl):
3090         (WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
3091         * inspector/InspectorInstrumentation.h:
3092         (WebCore::InspectorInstrumentation::frameWindowDiscarded):
3093         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
3094         (WebCore::InspectorInstrumentation::loadEventFired):
3095         (WebCore::InspectorInstrumentation::didCommitLoad):
3096         (WebCore::InspectorInstrumentation::frameDestroyed):
3097         * inspector/InspectorPageAgent.cpp:
3098         (WebCore::InspectorPageAgent::frameDetached):
3099         (WebCore::InspectorPageAgent::frameDestroyed):
3100         * inspector/InspectorPageAgent.h:
3101         * page/Frame.cpp:
3102         (WebCore::Frame::~Frame):
3103
3104 2011-09-14  Ilya Tikhonovsky  <loislo@chromium.org>
3105
3106         Web Inspector: requestAnimationFrame callbacks don't show up in the timeline panel.
3107         https://bugs.webkit.org/show_bug.cgi?id=67986
3108
3109         Reviewed by Pavel Feldman.
3110
3111         Test: inspector/timeline/timeline-animation-frame.html
3112
3113         * English.lproj/localizedStrings.js:
3114         * bindings/v8/V8Proxy.cpp:
3115         (WebCore::V8Proxy::callFunction):
3116         (WebCore::V8Proxy::callFunctionWithoutFrame):
3117         (WebCore::V8Proxy::instrumentedCallFunction):
3118         * bindings/v8/V8Proxy.h:
3119         * bindings/v8/custom/V8CustomVoidCallback.cpp:
3120         (WebCore::invokeCallback):
3121         * dom/ScriptedAnimationController.cpp:
3122         (WebCore::ScriptedAnimationController::registerCallback):
3123         (WebCore::ScriptedAnimationController::cancelCallback):
3124         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
3125         * inspector/InspectorInstrumentation.cpp:
3126         (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallbackImpl):
3127         (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallbackImpl):
3128         (WebCore::InspectorInstrumentation::willFireAnimationFrameEventImpl):
3129         (WebCore::InspectorInstrumentation::didFireAnimationFrameEventImpl):
3130         * inspector/InspectorInstrumentation.h:
3131         (WebCore::InspectorInstrumentation::willCallFunction):
3132         (WebCore::InspectorInstrumentation::didRegisterAnimationFrameCallback):
3133         (WebCore::InspectorInstrumentation::didCancelAnimationFrameCallback):
3134         (WebCore::InspectorInstrumentation::willFireAnimationFrameEvent):
3135         (WebCore::InspectorInstrumentation::didFireAnimationFrameEvent):
3136         * inspector/InspectorTimelineAgent.cpp:
3137         (WebCore::InspectorTimelineAgent::didRegisterAnimationFrameCallback):
3138         (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback):
3139         (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent):
3140         (WebCore::InspectorTimelineAgent::didFireAnimationFrameEvent):
3141         * inspector/InspectorTimelineAgent.h:
3142         * inspector/TimelineRecordFactory.cpp:
3143         (WebCore::TimelineRecordFactory::createAnimationFrameCallbackData):
3144         * inspector/TimelineRecordFactory.h:
3145         * inspector/front-end/TimelineAgent.js:
3146         * inspector/front-end/TimelinePanel.js:
3147         (WebInspector.TimelinePanel):
3148         (WebInspector.TimelinePanel.prototype.get _recordStyles):
3149         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
3150         (WebInspector.TimelinePanel.prototype._clearPanel):
3151         (WebInspector.TimelinePanel.FormattedRecord):
3152         (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
3153         (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
3154
3155 2011-09-13  Pavel Feldman  <pfeldman@google.com>
3156
3157         Web Inspector: InspectorInstrumentation::frameDestroyed is called after m_page has been reset.
3158         https://bugs.webkit.org/show_bug.cgi?id=67997
3159
3160         We should not instrument frameDestroyed event from within Frame's destructor
3161         since frame's m_page pointer is likely to be 0 by that time and appropriate
3162         instrumenting agent won't be found. As a result, stale frame with its id
3163         end up in the inspector.
3164
3165         This change wipes out frame binding from the inspector upon detach rather
3166         than destroy + adds an assertion into the inspector agents lookup with 0 page.
3167
3168         Reviewed by Tony Gentilcore.
3169
3170         * inspector/InspectorInstrumentation.cpp:
3171         (WebCore::InspectorInstrumentation::frameDetachedImpl):
3172         (WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
3173         * inspector/InspectorInstrumentation.h:
3174         (WebCore::InspectorInstrumentation::frameWindowDiscarded):
3175         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
3176         (WebCore::InspectorInstrumentation::loadEventFired):
3177         (WebCore::InspectorInstrumentation::frameDetached):
3178         (WebCore::InspectorInstrumentation::didCommitLoad):
3179         * inspector/InspectorPageAgent.cpp:
3180         (WebCore::InspectorPageAgent::frameDetached):
3181         * inspector/InspectorPageAgent.h:
3182         * loader/FrameLoader.cpp:
3183         (WebCore::FrameLoader::detachFromParent):
3184         * page/Frame.cpp:
3185         (WebCore::Frame::~Frame):
3186         (WebCore::Frame::detachFromPage):
3187         (WebCore::Frame::transferChildFrameToNewDocument):
3188         * page/Frame.h:
3189
3190 2011-09-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3191
3192         Unreviewed, rolling out r95080.
3193         http://trac.webkit.org/changeset/95080
3194         https://bugs.webkit.org/show_bug.cgi?id=68070
3195
3196         It caused some 2d.composite.uncovered tests fail (Requested by
3197         rgabor on #webkit).
3198
3199         * html/canvas/CanvasRenderingContext2D.cpp:
3200         (WebCore::CanvasRenderingContext2D::clearCanvas):
3201         (WebCore::CanvasRenderingContext2D::fillAndDisplayTransparencyElsewhere):
3202
3203 2011-09-13  Pavel Feldman  <pfeldman@google.com>
3204
3205         Web Inspector: [v8] building call frame info for location-less internal script function crashes.
3206         https://bugs.webkit.org/show_bug.cgi?id=67991
3207
3208         Reviewed by Yury Semikhatsky.
3209
3210         Test: inspector/debugger/debugger-pause-in-internal.html
3211
3212         * bindings/v8/DebuggerScript.js:
3213         ():
3214         * bindings/v8/ScriptDebugServer.cpp:
3215         (WebCore::ScriptDebugServer::currentCallFrame):
3216
3217 2011-09-14  Ben Wells  <benwells@chromium.org>
3218
3219         Large canvas fills should not crash or create unnecessarily large image buffers
3220         https://bugs.webkit.org/show_bug.cgi?id=67988
3221
3222         When using source-in, destination-in, source-out, or destination-atop a temporary
3223         buffer is created. This buffer only needs to be big enough to cover the intersection
3224         of the path and the canvas.
3225
3226         This change also adds some null checks for failures to create contexts or buffers.
3227
3228         Reviewed by Stephen White.
3229
3230         Test: fast/canvas/canvas-large-fills.html
3231
3232         * html/canvas/CanvasRenderingContext2D.cpp:
3233         (WebCore::CanvasRenderingContext2D::clearCanvas):
3234         (WebCore::CanvasRenderingContext2D::fillAndDisplayTransparencyElsewhere):
3235
3236 2011-09-14  Kentaro Hara  <haraken@google.com>
3237
3238         Implement a PageTransitionEvent constructor for JSC
3239         https://bugs.webkit.org/show_bug.cgi?id=68048
3240
3241         Reviewed by Sam Weinig.
3242
3243         The spec for the PageTransitionEvent constructor is here:
3244         http://www.whatwg.org/specs/web-apps/current-work/#pagetransitionevent
3245
3246         Test: fast/events/constructors/page-transition-event-constructor.html
3247
3248         * bindings/generic/EventConstructors.h: Added a definition for the PageTransitionEvent constructor.
3249         * bindings/js/JSEventConstructors.cpp: Added #includes for PageTransitionEvent.
3250         * dom/PageTransitionEvent.cpp:
3251         (WebCore::PageTransitionEventInit::PageTransitionEventInit):
3252         (WebCore::PageTransitionEvent::PageTransitionEvent):
3253         (WebCore::PageTransitionEvent::initPageTransitionEvent):
3254         * dom/PageTransitionEvent.h: Added a definition for PageTransitionEventInit.
3255         (WebCore::PageTransitionEvent::create):
3256         (WebCore::PageTransitionEvent::isPageTransitionEvent):
3257         (WebCore::PageTransitionEvent::persisted):
3258         * dom/PageTransitionEvent.idl: Makes PageTransitionEvent constructible.
3259
3260 2011-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3261
3262         Unreviewed, rolling out r95058.
3263         http://trac.webkit.org/changeset/95058
3264         https://bugs.webkit.org/show_bug.cgi?id=68058
3265
3266         It made css3/calc/regression-62276.html crash (Requested by
3267         Ossy on #webkit).
3268
3269         * css/CSSParser.cpp:
3270         (WebCore::BorderImageParseContext::BorderImageParseContext):
3271         (WebCore::BorderImageParseContext::allowBreak):
3272         (WebCore::BorderImageParseContext::allowWidth):
3273         (WebCore::BorderImageParseContext::allowOutset):
3274         (WebCore::BorderImageParseContext::allowRepeat):
3275         (WebCore::BorderImageParseContext::commitImage):
3276         (WebCore::BorderImageParseContext::commitImageSlice):
3277         (WebCore::BorderImageParseContext::commitSlash):
3278         (WebCore::BorderImageParseContext::commitBorderWidth):
3279         (WebCore::BorderImageParseContext::commitBorderOutset):
3280         (WebCore::BorderImageParseContext::commitRepeat):
3281         (WebCore::CSSParser::parseBorderImage):
3282         (WebCore::CSSParser::parseBorderImageRepeat):
3283         (WebCore::CSSParser::parseBorderImageSlice):
3284         (WebCore::CSSParser::parseBorderImageQuad):
3285         * css/CSSParserValues.h:
3286
3287 2011-09-13  Abhishek Arya  <inferno@chromium.org>
3288
3289         Crash in RenderScrollbarPart::imageChanged.
3290         https://bugs.webkit.org/show_bug.cgi?id=68009
3291
3292         Reviewed by Simon Fraser.
3293
3294         When a custom scrollbar is removed from its FrameView, its destruction
3295         can be delayed because of RefPtr maintained in EventHandler class
3296         (m_lastScrollbarUnderMouse). Upon removal, we delete all the scrollbar
3297         parts so that they don't link back to scrollbar. However, because of the
3298         delay, we can have a call to updateScrollbarPart which recreates it.
3299         When scrollbar is getting destroyed, we just check to see if there are
3300         remaining scrollbar parts and if yes, we destroy them.
3301
3302         Test: scrollbars/scrollbar-part-created-with-no-parent-crash.html
3303
3304         * rendering/RenderScrollbar.cpp:
3305         (WebCore::RenderScrollbar::~RenderScrollbar):
3306
3307 2011-09-13  Adam Klein  <adamk@chromium.org>
3308
3309         Fix cssText property of counter-valued CSSPrimitiveValue and avoid uninitialized read
3310         https://bugs.webkit.org/show_bug.cgi?id=68021
3311
3312         Reviewed by Tony Chang.
3313
3314         Reported by valgrind in http://crbug.com/60653.
3315
3316         Besides fixing the uninitialized read, add support for outputting the
3317         list separator for counters() calls and the list-style name.
3318
3319         Test: fast/css/counters/counter-cssText.html
3320
3321         * css/CSSPrimitiveValue.cpp:
3322         (WebCore::CSSPrimitiveValue::cssText):
3323
3324 2011-09-13  Kenichi Ishibashi  <bashi@chromium.org>
3325
3326         WebFont followed tiny monospace text displays weird
3327         https://bugs.webkit.org/show_bug.cgi?id=67996
3328
3329         Reviewed by Darin Adler.
3330
3331         Always call wkSetCGFontRenderingMode() in Font::drawGlyphs() so that the rendering mode is set correctly.
3332
3333         Test: platform/mac/fast/text/webfont-after-tiny-monospace-text.html
3334
3335         * platform/graphics/mac/FontMac.mm:
3336         (WebCore::Font::drawGlyphs):
3337
3338 2011-09-13  Tom Sepez  <tsepez@chromium.org>
3339
3340         Fix XSS auditor bypass when inline handlers contain comments.
3341         https://bugs.webkit.org/show_bug.cgi?id=27895
3342
3343         Reviewed by Adam Barth.
3344
3345         Tests: http/tests/security/xssAuditor/property-escape-comment.html
3346                http/tests/security/xssAuditor/property-escape-entity.html
3347                http/tests/security/xssAuditor/property-escape-quote.html
3348
3349         * html/parser/XSSAuditor.cpp:
3350         (WebCore::XSSAuditor::snippetForAttribute):
3351
3352 2011-09-13  Kentaro Hara  <haraken@google.com>
3353
3354         Implement a HashChangeEvent constructor for V8
3355         https://bugs.webkit.org/show_bug.cgi?id=67969
3356
3357         Reviewed by Nate Chapin.
3358
3359         Test: fast/events/constructors/hash-change-event-constructor.html
3360
3361         * bindings/v8/custom/V8EventConstructors.cpp: Added the HashChangeEvent constructor.
3362         * dom/HashChangeEvent.idl: Added a 'V8CustomConstructor' attribute.
3363
3364 2011-09-13  Jeremy Apthorp  <jeremya@google.com>
3365
3366         Fix crash when an iframe element is removed during a transition to
3367         fullscreen.
3368         https://bugs.webkit.org/show_bug.cgi?id=67960
3369
3370         Reviewed by Adam Barth.
3371
3372         Test: fullscreen/full-screen-remove-ancestor-during-transition.html
3373
3374         * dom/Document.cpp:
3375         (WebCore::Document::~Document):
3376         Clear the list of elements to which we need to send a fullscreenchange
3377         event.
3378
3379 2011-09-13  David Hyatt  <hyatt@apple.com>
3380
3381         https://bugs.webkit.org/show_bug.cgi?id=68040
3382         
3383         Make sure border image sub-properties can be specified in any order.
3384
3385         Reviewed by Beth Dakin.
3386
3387         New tests in fast/borders.
3388
3389         * css/CSSParser.cpp:
3390         (WebCore::BorderImageParseContext::BorderImageParseContext):
3391         (WebCore::BorderImageParseContext::canAdvance):
3392         (WebCore::BorderImageParseContext::setCanAdvance):
3393         (WebCore::BorderImageParseContext::allowCommit):
3394         (WebCore::BorderImageParseContext::allowImage):
3395         (WebCore::BorderImageParseContext::allowImageSlice):
3396         (WebCore::BorderImageParseContext::allowSlash):
3397         (WebCore::BorderImageParseContext::requireWidth):
3398         (WebCore::BorderImageParseContext::requireOutset):
3399         (WebCore::BorderImageParseContext::commitImage):
3400         (WebCore::BorderImageParseContext::commitImageSlice):
3401         (WebCore::BorderImageParseContext::commitSlash):
3402         (WebCore::BorderImageParseContext::commitBorderWidth):
3403         (WebCore::BorderImageParseContext::commitBorderOutset):
3404         (WebCore::BorderImageParseContext::commitRepeat):
3405         (WebCore::CSSParser::parseBorderImage):
3406         (WebCore::CSSParser::parseBorderImageRepeat):
3407         (WebCore::CSSParser::parseBorderImageSlice):
3408         (WebCore::CSSParser::parseBorderImageQuad):
3409         * css/CSSParserValues.h:
3410         (WebCore::CSSParserValueList::previous):
3411
3412 2011-09-13  Jeff Miller  <jeffm@apple.com>
3413
3414         WebCore::Cursor::ensurePlatformCursor() should always set a valid platform cursor on Windows
3415         https://bugs.webkit.org/show_bug.cgi?id=68043
3416         
3417         Make sure we set a valid platform cursor in the Cursor::NoDrop case, and add a default
3418         clause that uses the arrow cursor in case another cursor type is added in the future
3419         and we forget to update ensurePlatformCursor().
3420
3421         Reviewed by Anders Carlsson.
3422
3423         * platform/win/CursorWin.cpp:
3424         (WebCore::Cursor::ensurePlatformCursor): Always set a valid platform cursor.
3425
3426 2011-09-12  Jon Honeycutt  <jhoneycutt@apple.com>
3427
3428         MSAA: WebKit reports the document state as disabled
3429         https://bugs.webkit.org/show_bug.cgi?id=67974
3430         <rdar://problem/10095898>
3431
3432         Reviewed by Brian Weinstein.
3433
3434         Test: platform/win/accessibility/document-enabled-state.html
3435
3436         * accessibility/AccessibilityScrollView.h:
3437         (WebCore::AccessibilityScrollView::isEnabled):
3438         This object backs the AccessibleDocument on Windows - always return
3439         true for its enabled state.
3440
3441 2011-08-11  Cris Neckar  <cdn@chromium.org>
3442
3443         Fixes several bugs when adding CounterNodes to a tree which can cause asymetrical relationships.
3444         https://bugs.webkit.org/show_bug.cgi?id=65996
3445
3446         Reviewed by Eric Seidel.
3447
3448         Test: fast/css/counters/counter-reparent-table-children-crash.html
3449
3450         * rendering/CounterNode.cpp:
3451         (WebCore::CounterNode::insertAfter):
3452         * rendering/RenderCounter.cpp:
3453         (WebCore::findPlaceForCounter):
3454         (WebCore::makeCounterNode):
3455
3456 2011-09-13  Beth Dakin  <bdakin@apple.com>
3457
3458         Adding a comment I forgot to add before.
3459
3460         * rendering/RenderImage.cpp:
3461         (WebCore::RenderImage::imageSizeForError):
3462
3463 2011-09-13  Antti Koivisto  <antti@apple.com>
3464
3465         Move identifier filter from CSSStyleSelector to SelectorChecker
3466         https://bugs.webkit.org/show_bug.cgi?id=68025
3467
3468         Reviewed by Sam Weinig.
3469
3470         This is a more logical place for this code. It also makes CSSStyleSelector slightly less bloated. 
3471         It will make it possible to use fastRejectSelector for querySelectorAll in the future.
3472
3473         * css/CSSStyleSelector.cpp:
3474         (WebCore::loadViewSourceStyle):
3475         (WebCore::CSSStyleSelector::matchRulesForList):
3476         (WebCore::RuleData::RuleData):
3477         * css/CSSStyleSelector.h:
3478         (WebCore::CSSStyleSelector::pushParent):
3479         (WebCore::CSSStyleSelector::popParent):
3480         * css/SelectorChecker.cpp:
3481         (WebCore::collectElementIdentifierHashes):
3482         (WebCore::SelectorChecker::pushParentStackFrame):
3483         (WebCore::SelectorChecker::popParentStackFrame):
3484         (WebCore::SelectorChecker::pushParent):
3485         (WebCore::SelectorChecker::popParent):
3486         (WebCore::collectDescendantSelectorIdentifierHashes):
3487         (WebCore::SelectorChecker::collectIdentifierHashes):
3488         * css/SelectorChecker.h:
3489         (WebCore::SelectorChecker::parentStackIsConsistent):
3490         (WebCore::SelectorChecker::ParentStackFrame::ParentStackFrame):
3491         (WebCore::SelectorChecker::fastRejectSelector):
3492
3493 2011-09-13  Kiyoto Tamura  <owenestea@gmail.com>
3494
3495         For compatibility, execCommand should support deprecated 'useCSS' alias for 'styleWithCSS'
3496         https://bugs.webkit.org/show_bug.cgi?id=36683
3497
3498         Reviewed by Ryosuke Niwa.
3499
3500         In addition to supporting the deprecated 'useCSS', 'styleWithCSS' now accepts any argument other than
3501         the boolean false or the case-insensitive string "false". This is per
3502         http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command
3503
3504         Tests: editing/execCommand/style-with-css.html
3505                editing/execCommand/use-css.html
3506
3507         * editing/EditorCommand.cpp:
3508         (WebCore::executeStyleWithCSS):
3509         (WebCore::executeUseCSS):
3510         (WebCore::createCommandMap):
3511
3512 2011-09-13  Anders Carlsson  <andersca@apple.com>
3513
3514         Disable C++ exceptions when building with clang
3515         https://bugs.webkit.org/show_bug.cgi?id=68031
3516         <rdar://problem/9556880>
3517
3518         Reviewed by Mark Rowe.
3519
3520         * Configurations/Base.xcconfig:
3521
3522 2011-09-13  Beth Dakin  <bdakin@apple.com>
3523
3524         https://bugs.webkit.org/show_bug.cgi?id=67885
3525         Outline for the high-resolution broken image icon draws at 2x
3526         -and corresponding-
3527         <rdar://problem/10104637>
3528
3529         Reviewed by Dan Bernstein.
3530
3531         Scaled the image size to account for the deviceScaleFactor. 
3532         * rendering/RenderImage.cpp:
3533         (WebCore::RenderImage::imageSizeForError):
3534
3535 2011-09-13  Tim Horton  <timothy_horton@apple.com>
3536
3537         REGRESSION (64275): Shape pattern-image fill turns black
3538         https://bugs.webkit.org/show_bug.cgi?id=51061
3539         <rdar://problem/8504705>
3540
3541         Reviewed by Simon Fraser.
3542
3543         When destroying a resource, register clients who are losing their
3544         resource as having pending resources, so they can be resolved in the case a
3545         resource with that id is re-registered.
3546
3547         Test: svg/custom/pending-resource-after-removal.xhtml
3548
3549         * rendering/svg/SVGResourcesCache.cpp:
3550         (WebCore::SVGResourcesCache::resourceDestroyed):
3551         * svg/SVGStyledElement.h:
3552         (WebCore::toSVGStyledElement): Added.
3553
3554 2011-09-13  Eric Seidel  <eric@webkit.org>
3555
3556         Remove ENABLE_SVG_FOREIGN_OBJECT as it is a required part of HTML5
3557         https://bugs.webkit.org/show_bug.cgi?id=68018
3558
3559         Reviewed by Ryosuke Niwa.
3560
3561         * Configurations/FeatureDefines.xcconfig:
3562         * DerivedSources.make:
3563         * GNUmakefile.am:
3564         * WebCore.exp.in:
3565         * dom/DOMImplementation.cpp:
3566         (WebCore::isSVG10Feature):
3567         (WebCore::isSVG11Feature):
3568         * dom/Text.cpp:
3569         (WebCore::Text::createRenderer):
3570         * features.pri:
3571         * page/DOMWindow.idl:
3572         * rendering/svg/RenderSVGForeignObject.cpp:
3573         * rendering/svg/RenderSVGForeignObject.h:
3574         * svg/SVGAnimateMotionElement.cpp:
3575         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
3576         * svg/SVGForeignObjectElement.cpp:
3577         * svg/SVGForeignObjectElement.h:
3578         * svg/SVGForeignObjectElement.idl:
3579         * svg/SVGLocatable.cpp:
3580         (WebCore::isViewportElement):
3581         * svg/SVGSVGElement.cpp:
3582         (WebCore::SVGSVGElement::isOutermostSVG):
3583         * svg/SVGUseElement.cpp:
3584         (WebCore::isDisallowedElement):
3585         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
3586         * svg/svgtags.in:
3587
3588 2011-09-13  Joseph Pecoraro  <joepeck@webkit.org>
3589
3590         CRASH under WebCore::ArchiveResourceCollection::addAllResources loading WebArchive
3591         https://bugs.webkit.org/show_bug.cgi?id=67983
3592
3593         Reviewed by Darin Adler.
3594
3595         Null mimetypes are okay for subresources, but as previously discovered
3596         in bug 41082 they were required for main resources. Here we ensure
3597         that they are required for main resources, but we allow null mimetypes
3598         for subresources.
3599
3600         To fix a crash for bad input we never add a null ArchiveResource to the
3601         Archive's subresource collection. It is useless and causes crashes whenever
3602         someone iterates the Archive's subresource collection.
3603
3604         Test: webarchive/loading/test-loading-archive-subresource-null-mimetype.html
3605
3606         * loader/archive/cf/LegacyWebArchive.cpp:
3607         (WebCore::LegacyWebArchive::createResource):
3608         Allow a null mimetype, just type check from the dictionary.
3609
3610         (WebCore::LegacyWebArchive::extract):
3611         Require a mimetype for the main resource. Do not add null
3612         subresources to the subresource list.
3613
3614 2011-09-13  Mihai Parparita  <mihaip@chromium.org>
3615
3616         [Chromium] Remove javascript_engine from WebCore.gyp
3617         https://bugs.webkit.org/show_bug.cgi?id=68001
3618
3619         Reviewed by Tony Chang.
3620
3621         Remove javascript_engine GYP variable (similar to the removal done on
3622         the Chromium side with http://crrev.com/100692)
3623
3624         * WebCore.gyp/WebCore.gyp:
3625
3626 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
3627
3628         [CSS3 Backgrounds and Borders] Add unprefixed border-image shorthand.
3629         https://bugs.webkit.org/show_bug.cgi?id=67970
3630
3631         Reviewed by David Hyatt.
3632
3633         Also update CSSStyleSelector.cpp to support border-image to suppress assertion in
3634         fast/borders/border-image-omit-right-slice.html
3635
3636         * css/CSSStyleSelector.cpp:
3637         (WebCore::CSSStyleSelector::applyProperty):
3638         (WebCore::CSSStyleSelector::mapNinePieceImage):
3639
3640 2011-09-13  Xianzhu Wang  <wangxianzhu@chromium.org>
3641
3642         Reviewed by Darin Adler.
3643
3644         Webkit wraps between hyphen-minus and numeric characters 
3645         https://bugs.webkit.org/show_bug.cgi?id=20677
3646
3647         Disallow wrapping between a hyphen-minus and a digit if the hyphen-minus
3648         is not directly after a digit or a letter.
3649
3650         Test: fast/text/line-breaks-after-hyphen-before-number.html
3651
3652         * rendering/break_lines.cpp:
3653         (WebCore::asciiLineBreakTable): Disabled line-breaking after '-' and before '.', '0'-'9'. Note: the change for '0'-'9' doesn't really matter because the case is handled hard-coded in shouldBreakAfter().
3654         (WebCore::shouldBreakAfter): Changed line-breaking behavior after '-'.
3655         (WebCore::nextBreakablePosition): Passes lastLastCh to shouldBreakAfter. 
3656
3657 2011-09-13  Erik Wright  <erikwright@chromium.org>
3658
3659         platform/graphics/gtk/FontGtk.cpp was renamed to platform/graphics/pango/FontPango.cpp . Reflect this change in WebCore.gypi to fix a Chromium build breakage.
3660         https://bugs.webkit.org/show_bug.cgi?id=68000
3661
3662         Reviewed by Tony Gentilcore.
3663
3664         No change in functionality, thus no new tests.
3665
3666         * WebCore.gypi:
3667
3668 2011-09-10  Mikhail Naganov  <mnaganov@chromium.org>
3669
3670         Web Inspector: Profiler: Fix overlapping data in function names column.
3671         https://bugs.webkit.org/show_bug.cgi?id=67896
3672
3673         Reviewed by Pavel Feldman.
3674
3675         * inspector/front-end/ProfileDataGridTree.js:
3676         (WebInspector.ProfileDataGridNode.prototype.createCell):
3677         * inspector/front-end/dataGrid.css:
3678         (.data-grid table.data):
3679         (.data-grid td):
3680
3681 2011-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3682
3683         Unreviewed, rolling out r95025.
3684         http://trac.webkit.org/changeset/95025
3685         https://bugs.webkit.org/show_bug.cgi?id=68005
3686
3687         Test failed on Snow Leopard bots. (Requested by yutak_home on
3688         #webkit).
3689
3690         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3691         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
3692         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
3693         (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
3694         * websockets/ThreadableWebSocketChannelClientWrapper.h:
3695
3696 2011-09-13  Yuta Kitamura  <yutak@chromium.org>
3697
3698         ThreadableWebSocketChannelClientWrapper shouldn't have a String in it.
3699         https://bugs.webkit.org/show_bug.cgi?id=67908
3700
3701         Reviewed by David Levin.
3702
3703         Replace a String member variable in ThreadableWebSocketChannelClientWrapper with Vector<UChar>.
3704
3705         No change in functionality, thus no new tests. WebSocket worker tests
3706         (tests under http/tests/websocket/tests/{hixie76,hybi}/workers/) should keep passing.
3707
3708         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3709         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
3710         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
3711         Create a String from Vector<UChar>.
3712         (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
3713         Copy the content of the given String into Vector.
3714         * websockets/ThreadableWebSocketChannelClientWrapper.h:
3715
3716 2011-09-13  Fumitoshi Ukai  <ukai@chromium.org>
3717
3718         Unreviewed, build fix.
3719
3720         CSSPropertyBorderImage was added in r94989, but not yet added in
3721         WebCore::CSSStyleSelector::applyProperty
3722
3723         CSSStyleSelector.cpp:2481: warning: enumeration value 'CSSPropertyBorderImage' not handled in switch
3724
3725         * css/CSSStyleSelector.cpp:
3726         (WebCore::CSSStyleSelector::applyProperty):
3727
3728 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
3729
3730         Crashes in WebCore::InsertListCommand::unlistifyParagraph.
3731         https://bugs.webkit.org/show_bug.cgi?id=67918
3732
3733         Reviewed by Ryosuke Niwa.
3734
3735         execCommand("InsertUnorderedList") was crashing if the parent node of the target is
3736         a kind of list element and it is not contenteditable.
3737         This patch checks the parent node is contenteditable.
3738
3739         Test: editing/execCommand/insert-list-in-noneditable-list-parent.html
3740
3741         * editing/htmlediting.cpp:
3742         (WebCore::enclosingListChild): Checks the parent node is contenteditable.
3743
3744 2011-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
3745
3746         Unreviewed, rolling out r94975.
3747         http://trac.webkit.org/changeset/94975
3748         https://bugs.webkit.org/show_bug.cgi?id=67984
3749
3750         crash in PrerenderBrowserTest.PrerenderHTML5VideoJs (Requested
3751         by ukai on #webkit).
3752
3753         * platform/graphics/chromium/CanvasLayerChromium.h:
3754         (WebCore::CanvasLayerChromium::layerTypeAsString):
3755         * platform/graphics/chromium/ContentLayerChromium.h:
3756         (WebCore::ContentLayerChromium::layerTypeAsString):
3757         * platform/graphics/chromium/ImageLayerChromium.h:
3758         (WebCore::ImageLayerChromium::layerTypeAsString):
3759         * platform/graphics/chromium/LayerChromium.cpp:
3760         (WebCore::LayerChromium::layerTreeAsText):
3761         (WebCore::writeIndent):
3762         (WebCore::LayerChromium::dumpLayer):
3763         (WebCore::LayerChromium::dumpLayerProperties):
3764         * platform/graphics/chromium/LayerChromium.h:
3765         (WebCore::LayerChromium::layerTypeAsString):
3766         * platform/graphics/chromium/LayerRendererChromium.cpp:
3767         (WebCore::LayerRendererChromium::textureMemoryReclaimLimit):
3768         (WebCore::LayerRendererChromium::create):
3769         (WebCore::LayerRendererChromium::LayerRendererChromium):
3770         (WebCore::LayerRendererChromium::close):
3771         (WebCore::LayerRendererChromium::releaseTextures):
3772         (WebCore::LayerRendererChromium::drawLayers):
3773         (WebCore::LayerRendererChromium::drawLayersInternal):
3774         (WebCore::LayerRendererChromium::getOffscreenLayerTexture):
3775         (WebCore::LayerRendererChromium::initializeSharedObjects):
3776         (WebCore::LayerRendererChromium::cleanupSharedObjects):
3777         (WebCore::LayerRendererChromium::layerTreeAsText):
3778         (WebCore::LayerRendererChromium::dumpRenderSurfaces):
3779         * platform/graphics/chromium/LayerRendererChromium.h:
3780         (WebCore::LayerRendererChromium::owner):
3781         (WebCore::LayerRendererChromium::rootLayer):
3782         (WebCore::LayerRendererChromium::rootLayerImpl):
3783         (WebCore::LayerRendererChromium::viewportSize):
3784         (WebCore::LayerRendererChromium::contentsTextureManager):
3785         * platform/graphics/chromium/ManagedTexture.cpp:
3786         (WebCore::ManagedTexture::bindTexture):
3787         (WebCore::ManagedTexture::framebufferTexture2D):
3788         * platform/graphics/chromium/PluginLayerChromium.h:
3789         (WebCore::PluginLayerChromium::layerTypeAsString):
3790         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
3791         (WebCore::RenderSurfaceChromium::name):
3792         (WebCore::writeIndent):
3793         (WebCore::RenderSurfaceChromium::dumpSurface):
3794         * platform/graphics/chromium/RenderSurfaceChromium.h:
3795         * platform/graphics/chromium/TextureManager.cpp:
3796         (WebCore::TextureManager::deleteEvictedTextures):
3797         (WebCore::TextureManager::removeTexture):
3798         (WebCore::TextureManager::allocateTexture):
3799         (WebCore::TextureManager::requestTexture):
3800         * platform/graphics/chromium/TextureManager.h:
3801         (WebCore::TextureManager::setAssociatedContextDebugOnly):
3802         (WebCore::TextureManager::associatedContextDebugOnly):
3803         * platform/graphics/chromium/TiledLayerChromium.cpp:
3804         (WebCore::writeIndent):
3805         (WebCore::TiledLayerChromium::dumpLayerProperties):
3806         * platform/graphics/chromium/TiledLayerChromium.h:
3807         * platform/graphics/chromium/VideoLayerChromium.h:
3808         (WebCore::VideoLayerChromium::layerTypeAsString):
3809         * platform/graphics/chromium/WebGLLayerChromium.h:
3810         (WebCore::WebGLLayerChromium::layerTypeAsString):
3811         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
3812         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
3813         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3814         * platform/graphics/chromium/cc/CCLayerImpl.h:
3815         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3816         (WebCore::CCLayerTreeHost::initialize):
3817         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
3818         (WebCore::CCLayerTreeHost::commitTo):
3819         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
3820         (WebCore::CCLayerTreeHost::setVisible):
3821         (WebCore::CCLayerTreeHost::contentsTextureManager):
3822         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3823         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3824         (WebCore::CCLayerTreeHostImpl::drawLayers):
3825         (WebCore::CCLayerTreeHostImpl::setVisible):
3826         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
3827         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3828         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
3829         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
3830         * platform/graphics/chromium/cc/CCProxy.h:
3831         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3832         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
3833         (WebCore::CCSingleThreadProxy::stop):
3834         (WebCore::CCSingleThreadProxy::contentsTextureManager):
3835         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
3836         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3837         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3838         (WebCore::CCThreadProxy::initializeLayerRenderer):
3839         (WebCore::CCThreadProxy::contentsTextureManager):
3840         (WebCore::CCThreadProxy::initializeLayerRendererOnCCThread):
3841         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
3842         * platform/graphics/chromium/cc/CCThreadProxy.h:
3843         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3844         (WebCore::CCTiledLayerImpl::dumpLayerProperties):
3845         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
3846         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
3847         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
3848
3849 2011-09-12  Joseph Pecoraro  <joepeck@webkit.org>
3850
3851         Possible ASSERT(!storageTracker) in Lazily Initialized StorageTracker
3852         https://bugs.webkit.org/show_bug.cgi?id=67957
3853
3854         Reviewed by Darin Adler.
3855
3856         The storageTracker singleton may already have been created
3857         through StorageTracker::tracker before initializeTracker
3858         gets called. Update the ASSERT in this case to check that
3859         there is no client for the tracker.
3860
3861         No test, this depends on how the port initializes the tracker.
3862
3863         * storage/StorageTracker.cpp:
3864         (WebCore::StorageTracker::initializeTracker):
3865
3866 2011-09-12  Adam Klein  <adamk@chromium.org>
3867
3868         Fix out-of-bounds access in Gradient::sortStopsIfNecessary
3869         https://bugs.webkit.org/show_bug.cgi?id=67958
3870
3871         Reviewed by Darin Adler.
3872
3873         Reported by Valgrind in http://crbug.com/77049.
3874
3875         The errant code was added as an optimization in r67804.
3876         This patch reverts that one, as all parties agree that the optimization
3877         doesn't seem worthwhile, and there clearly aren't any tests covering
3878         the special case.
3879
3880         No new tests, as existing tests should cover the remaining call to
3881         |std::stable_sort|.
3882
3883         * platform/graphics/Gradient.cpp:
3884         (WebCore::Gradient::sortStopsIfNecessary):
3885
3886 2011-09-12  Jacky Jiang  <zhajiang@rim.com>
3887
3888         Setting document.title doesn't affect contents of title tag of XHTML documents
3889         https://bugs.webkit.org/show_bug.cgi?id=57537
3890
3891         Reviewed by Alexey Proskuryakov.
3892
3893         Update the contents of the <title> tag of XHTML documents when setting
3894         document.title.
3895
3896         Test: fast/dom/title-content-set-innerText-get.xhtml
3897
3898         * dom/Document.cpp:
3899         (WebCore::Document::setTitle):
3900
3901 2011-09-12  Raphael Kubo da Costa  <kubo@profusion.mobi>
3902
3903         [EFL] Initialize m_unmodifiedText in PlatformKeyboardEventEfl.
3904         https://bugs.webkit.org/show_bug.cgi?id=67038
3905
3906         Reviewed by Kenneth Rohde Christiansen.
3907
3908         Since most of the time it will return the same thing as text(), we
3909         initialize it the same way we initialize m_text. The other case (what
3910         would have been generated if no modifiers were pressed) should be
3911         covered by this as well.
3912
3913         As this method is used when handling access keys, tests such as
3914         fast/events/access-key-self-destruct.html should now pass.
3915
3916         No new tests, as this fixes a problem uncovered by the existing ones.
3917
3918         * platform/efl/PlatformKeyboardEventEfl.cpp:
3919         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3920
3921 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
3922
3923         Reviewed by Eric Seidel.
3924
3925         [EFL] Add GraphicsContext3DEfl for WebGL and accelerated compositing
3926         https://bugs.webkit.org/show_bug.cgi?id=62709
3927
3928         Add GraphicsContext3D implementation for EFL port.
3929         GraphicsContext3D delegates to GraphicsContext3DInternal.
3930
3931         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Added.
3932         (WebCore::GraphicsContext3D::create):
3933         (WebCore::GraphicsContext3D::GraphicsContext3D):
3934         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3935         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
3936         (WebCore::GraphicsContext3D::platformLayer):
3937         (WebCore::GraphicsContext3D::makeContextCurrent):
3938         (WebCore::GraphicsContext3D::isGLES2Compliant):
3939         (WebCore::GraphicsContext3D::activeTexture):
3940         (WebCore::GraphicsContext3D::attachShader):
3941         (WebCore::GraphicsContext3D::bindAttribLocation):
3942         (WebCore::GraphicsContext3D::bindBuffer):
3943         (WebCore::GraphicsContext3D::bindFramebuffer):
3944         (WebCore::GraphicsContext3D::bindRenderbuffer):
3945         (WebCore::GraphicsContext3D::bindTexture):
3946         (WebCore::GraphicsContext3D::blendColor):
3947         (WebCore::GraphicsContext3D::blendEquation):
3948         (WebCore::GraphicsContext3D::blendEquationSeparate):
3949         (WebCore::GraphicsContext3D::blendFunc):
3950         (WebCore::GraphicsContext3D::blendFuncSeparate):
3951         (WebCore::GraphicsContext3D::bufferData):
3952         (WebCore::GraphicsContext3D::bufferSubData):
3953         (WebCore::GraphicsContext3D::checkFramebufferStatus):
3954         (WebCore::GraphicsContext3D::clear):
3955         (WebCore::GraphicsContext3D::clearColor):
3956         (WebCore::GraphicsContext3D::clearDepth):
3957         (WebCore::GraphicsContext3D::clearStencil):
3958         (WebCore::GraphicsContext3D::colorMask):
3959         (WebCore::GraphicsContext3D::compileShader):
3960         (WebCore::GraphicsContext3D::copyTexImage2D):
3961         (WebCore::GraphicsContext3D::copyTexSubImage2D):
3962         (WebCore::GraphicsContext3D::cullFace):
3963         (WebCore::GraphicsContext3D::depthFunc):
3964         (WebCore::GraphicsContext3D::depthMask):
3965         (WebCore::GraphicsContext3D::depthRange):
3966         (WebCore::GraphicsContext3D::detachShader):
3967         (WebCore::GraphicsContext3D::disable):
3968         (WebCore::GraphicsContext3D::disableVertexAttribArray):
3969         (WebCore::GraphicsContext3D::drawArrays):
3970         (WebCore::GraphicsContext3D::drawElements):
3971         (WebCore::GraphicsContext3D::enable):
3972         (WebCore::GraphicsContext3D::enableVertexAttribArray):
3973         (WebCore::GraphicsContext3D::finish):
3974         (WebCore::GraphicsContext3D::flush):
3975         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
3976         (WebCore::GraphicsContext3D::framebufferTexture2D):
3977         (WebCore::GraphicsContext3D::frontFace):
3978         (WebCore::GraphicsContext3D::generateMipmap):
3979         (WebCore::GraphicsContext3D::getActiveAttrib):
3980         (WebCore::GraphicsContext3D::getActiveUniform):
3981         (WebCore::GraphicsContext3D::getAttachedShaders):
3982         (WebCore::GraphicsContext3D::getAttribLocation):
3983         (WebCore::GraphicsContext3D::getBooleanv):
3984         (WebCore::GraphicsContext3D::getBufferParameteriv):
3985         (WebCore::GraphicsContext3D::getContextAttributes):
3986         (WebCore::GraphicsContext3D::getError):
3987         (WebCore::GraphicsContext3D::getFloatv):
3988         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
3989         (WebCore::GraphicsContext3D::getIntegerv):
3990         (WebCore::GraphicsContext3D::getProgramiv):
3991         (WebCore::GraphicsContext3D::getProgramInfoLog):
3992         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
3993         (WebCore::GraphicsContext3D::getShaderiv):
3994         (WebCore::GraphicsContext3D::getShaderInfoLog):
3995         (WebCore::GraphicsContext3D::getShaderSource):
3996         (WebCore::GraphicsContext3D::getString):
3997         (WebCore::GraphicsContext3D::getTexParameterfv):
3998         (WebCore::GraphicsContext3D::getTexParameteriv):
3999         (WebCore::GraphicsContext3D::getUniformfv):
4000         (WebCore::GraphicsContext3D::getUniformiv):
4001         (WebCore::GraphicsContext3D::getUniformLocation):
4002         (WebCore::GraphicsContext3D::getVertexAttribfv):
4003         (WebCore::GraphicsContext3D::getVertexAttribiv):
4004         (WebCore::GraphicsContext3D::getVertexAttribOffset):
4005         (WebCore::GraphicsContext3D::hint):
4006         (WebCore::GraphicsContext3D::isBuffer):
4007         (WebCore::GraphicsContext3D::isEnabled):
4008         (WebCore::GraphicsContext3D::isFramebuffer):
4009         (WebCore::GraphicsContext3D::isProgram):
4010         (WebCore::GraphicsContext3D::isRenderbuffer):
4011         (WebCore::GraphicsContext3D::isShader):
4012         (WebCore::GraphicsContext3D::isTexture):
4013         (WebCore::GraphicsContext3D::lineWidth):
4014         (WebCore::GraphicsContext3D::linkProgram):
4015         (WebCore::GraphicsContext3D::pixelStorei):
4016         (WebCore::GraphicsContext3D::polygonOffset):
4017         (WebCore::GraphicsContext3D::readPixels):
4018         (WebCore::GraphicsContext3D::releaseShaderCompiler):
4019         (WebCore::GraphicsContext3D::renderbufferStorage):
4020         (WebCore::GraphicsContext3D::sampleCoverage):
4021         (WebCore::GraphicsContext3D::scissor):
4022         (WebCore::GraphicsContext3D::shaderSource):
4023         (WebCore::GraphicsContext3D::stencilFunc):
4024         (WebCore::GraphicsContext3D::stencilFuncSeparate):
4025         (WebCore::GraphicsContext3D::stencilMask):
4026         (WebCore::GraphicsContext3D::stencilMaskSeparate):
4027         (WebCore::GraphicsContext3D::stencilOp):
4028         (WebCore::GraphicsContext3D::stencilOpSeparate):
4029         (WebCore::GraphicsContext3D::texImage2D):
4030         (WebCore::GraphicsContext3D::texParameterf):
4031         (WebCore::GraphicsContext3D::texParameteri):
4032         (WebCore::GraphicsContext3D::texSubImage2D):
4033         (WebCore::GraphicsContext3D::uniform1f):
4034         (WebCore::GraphicsContext3D::uniform1fv):
4035         (WebCore::GraphicsContext3D::uniform1i):
4036         (WebCore::GraphicsContext3D::uniform1iv):
4037         (WebCore::GraphicsContext3D::uniform2f):
4038         (WebCore::GraphicsContext3D::uniform2fv):
4039         (WebCore::GraphicsContext3D::uniform2i):
4040         (WebCore::GraphicsContext3D::uniform2iv):
4041         (WebCore::GraphicsContext3D::uniform3f):
4042         (WebCore::GraphicsContext3D::uniform3fv):
4043         (WebCore::GraphicsContext3D::uniform3i):
4044         (WebCore::GraphicsContext3D::uniform3iv):
4045         (WebCore::GraphicsContext3D::uniform4f):
4046         (WebCore::GraphicsContext3D::uniform4fv):
4047         (WebCore::GraphicsContext3D::uniform4i):
4048         (WebCore::GraphicsContext3D::uniform4iv):
4049         (WebCore::GraphicsContext3D::uniformMatrix2fv):
4050         (WebCore::GraphicsContext3D::uniformMatrix3fv):
4051         (WebCore::GraphicsContext3D::uniformMatrix4fv):
4052         (WebCore::GraphicsContext3D::useProgram):
4053         (WebCore::GraphicsContext3D::validateProgram):
4054         (WebCore::GraphicsContext3D::vertexAttrib1f):
4055         (WebCore::GraphicsContext3D::vertexAttrib1fv):
4056         (WebCore::GraphicsContext3D::vertexAttrib2f):
4057         (WebCore::GraphicsContext3D::vertexAttrib2fv):
4058         (WebCore::GraphicsContext3D::vertexAttrib3f):
4059         (WebCore::GraphicsContext3D::vertexAttrib3fv):
4060         (WebCore::GraphicsContext3D::vertexAttrib4f):
4061         (WebCore::GraphicsContext3D::vertexAttrib4fv):
4062         (WebCore::GraphicsContext3D::vertexAttribPointer):
4063         (WebCore::GraphicsContext3D::viewport):
4064         (WebCore::GraphicsContext3D::reshape):
4065         (WebCore::GraphicsContext3D::markContextChanged):
4066         (WebCore::GraphicsContext3D::markLayerComposited):
4067         (WebCore::GraphicsContext3D::layerComposited):
4068         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
4069         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
4070         (WebCore::GraphicsContext3D::createBuffer):
4071         (WebCore::GraphicsContext3D::createFramebuffer):
4072         (WebCore::GraphicsContext3D::createProgram):
4073         (WebCore::GraphicsContext3D::createRenderbuffer):
4074         (WebCore::GraphicsContext3D::createShader):
4075         (WebCore::GraphicsContext3D::createTexture):
4076         (WebCore::GraphicsContext3D::deleteBuffer):
4077         (WebCore::GraphicsContext3D::deleteFramebuffer):
4078         (WebCore::GraphicsContext3D::deleteProgram):
4079         (WebCore::GraphicsContext3D::deleteRenderbuffer):
4080         (WebCore::GraphicsContext3D::deleteShader):
4081         (WebCore::GraphicsContext3D::deleteTexture):
4082         (WebCore::GraphicsContext3D::synthesizeGLError):
4083         (WebCore::GraphicsContext3D::getExtensions):
4084         (WebCore::GraphicsContext3D::getInternalFramebufferSize):
4085         (WebCore::GraphicsContext3D::setContextLostCallback):
4086         (WebCore::GraphicsContext3D::getImageData):
4087
4088 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
4089
4090         Reviewed by Eric Seidel.
4091
4092         [CMAKE] Remove platform/graphics/opengl/*OpenGL.cpp files in CMakeLists.txt
4093         https://bugs.webkit.org/show_bug.cgi?id=62707
4094
4095         No change in fuctionality so no new tests.
4096
4097         Bug 62376 makes all ports use GraphicsContext3DOpenGL and
4098         Extensions3DOpenGL when enabling WebGL.
4099         However, some ports already have their own GC3D implementation.
4100         In QT and chromium, for example, GC3D delegates to GC3DInternal.
4101         So, it would be better to allow each port to decide whether or not
4102         to include files in platform/graphics/opengl. 
4103
4104         * CMakeLists.txt:
4105
4106 2011-09-12  Dan Bernstein  <mitz@apple.com>
4107
4108         <rdar://problem/10054615> Floats in ruby text intrude into the base
4109
4110         Reviewed by Darin Adler.
4111
4112         Test: fast/ruby/float-overhang-from-ruby-text.html
4113
4114         * rendering/RenderRubyText.cpp:
4115         (WebCore::RenderRubyText::avoidsFloats): Added. Returns true. This ensures that
4116         RenderBlock::clearFloats() will not consider ruby text as having intruding floats.
4117         * rendering/RenderRubyText.h:
4118
4119 2011-09-12  David Hyatt  <hyatt@apple.com>
4120
4121         https://bugs.webkit.org/show_bug.cgi?id=67970
4122
4123         Add unprefixed border-image property.
4124
4125         Reviewed by Beth Dakin.
4126
4127         * css/CSSComputedStyleDeclaration.cpp:
4128         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
4129         * css/CSSParser.cpp:
4130         (WebCore::CSSParser::parseValue):
4131         * css/CSSPropertyNames.in:
4132
4133 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
4134
4135         REGRESSION: Moving up doesn't work in some cases
4136         https://bugs.webkit.org/show_bug.cgi?id=67522
4137
4138         Reviewed by Eric Seidel.
4139
4140         The bug was caused by previousLinePosition's attempting to obtain the last root line box using
4141         a position at minCaretOffset (which is, in practice, located at the beginning of wrapped lines).
4142
4143         Fix the bug by calling maxCaretOffset instead. Because isCandidate returns false at (br, 1),
4144         use the positionBeforeNode for br elements.
4145
4146         Test: editing/selection/move-up-into-wrapped-line.html
4147
4148         * editing/visible_units.cpp:
4149         (WebCore::previousLinePosition):
4150
4151 2011-09-12  David Levin  <levin@chromium.org>
4152
4153         Make the ThreadSafeRefCounted support in CrossThreadCopier work for T*.
4154         https://bugs.webkit.org/show_bug.cgi?id=67947
4155
4156         Reviewed by Adam Barth.
4157
4158         The changes are tested by compiling and added compile asserts to do some verification as well.
4159
4160         * platform/CrossThreadCopier.cpp:
4161         Added some compile asserts to verify various match and non-matches for CrossThreadCopier.
4162         * platform/CrossThreadCopier.h:
4163         Added a typedef to convert T* to T, just like the typedef's to remove RefPtr and PassRefPtr.
4164         Added a compile assert to verify that only one of the typedef did anything.
4165         (CrossThreadCopierBase<false, true, T>::copy): Remove "get" as it is unnecessary.
4166         It shouldn't have been here (PassRefPtr and RefPtr easily and sometimes more efficiently
4167         convert to PassRefPtr without get). Also, a raw pointer doesn't have a get() method.
4168
4169 2011-09-12  Chris Rogers  <crogers@google.com>
4170
4171         Address lifetime issues in OfflineAudioDestinationNode
4172         https://bugs.webkit.org/show_bug.cgi?id=67949
4173
4174         Reviewed by Kenneth Russell.
4175
4176         No new tests.  This does not change JavaScript API.
4177
4178         * webaudio/OfflineAudioDestinationNode.cpp:
4179         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
4180         (WebCore::OfflineAudioDestinationNode::render):
4181         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
4182
4183 2011-09-12  Jeff Timanus  <twiz@chromium.org>
4184
4185         [chromium]  Prevent a crash when tearing down an ImageBuffer that was not successfully initialized.
4186         https://bugs.webkit.org/show_bug.cgi?id=67944
4187
4188         Reviewed by Stephen White.
4189