266904365adc262b5838c29ffcc3c9f91a494d19
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-21  Simon Fraser  <simon.fraser@apple.com>
2
3         Reviewed by Sam Weinig.
4
5         Report the sized used by canvases and types arrays
6         https://bugs.webkit.org/show_bug.cgi?id=52856
7
8         Report the memory cost associated with canvas elements,
9         and typed arrays to JavaScript as extraCost, so that it
10         can figure this into its GC behavior.
11
12         * bindings/js/JSArrayBufferViewHelper.h:
13         (WebCore::toJSArrayBufferView): New templatized function, similar
14         to getDOMObjectWrapper() but calls reportExtraMemoryCost() with
15         the byteLength of the array.
16         
17         * bindings/js/JSFloat32ArrayCustom.cpp:
18         (WebCore::toJS): Use toJSArrayBufferView.
19         * bindings/js/JSInt16ArrayCustom.cpp:
20         (WebCore::toJS): Use toJSArrayBufferView.
21         * bindings/js/JSInt32ArrayCustom.cpp:
22         (WebCore::toJS): Use toJSArrayBufferView.
23         * bindings/js/JSInt8ArrayCustom.cpp:
24         (WebCore::toJS): Use toJSArrayBufferView.
25         * bindings/js/JSUint16ArrayCustom.cpp:
26         (WebCore::toJS): Use toJSArrayBufferView.
27         * bindings/js/JSUint32ArrayCustom.cpp:
28         (WebCore::toJS): Use toJSArrayBufferView.
29         * bindings/js/JSUint8ArrayCustom.cpp:
30         (WebCore::toJS): Use toJSArrayBufferView.
31
32         * html/HTMLCanvasElement.cpp:
33         (WebCore::HTMLCanvasElement::createImageBuffer): Call heap.reportExtraMemoryCost()
34         with the size of the canvas backing store.
35         
36         * html/canvas/TypedArrayBase.h:
37         (WebCore::TypedArrayBase::byteLength): byteLength needs to
38         be public.
39         
40         * platform/graphics/ImageBuffer.h: Add dataSize() method.
41         
42         * platform/graphics/cairo/ImageBufferCairo.cpp:
43         (WebCore::ImageBuffer::dataSize): Implement dataSize().
44         * platform/graphics/cg/ImageBufferCG.cpp:
45         (WebCore::ImageBuffer::dataSize): Implement dataSize().
46         * platform/graphics/haiku/ImageBufferHaiku.cpp:
47         (WebCore::ImageBuffer::dataSize): Implement dataSize().
48         * platform/graphics/qt/ImageBufferQt.cpp:
49         (WebCore::ImageBuffer::dataSize): Implement dataSize().
50         * platform/graphics/skia/ImageBufferSkia.cpp:
51         (WebCore::ImageBuffer::dataSize): Implement dataSize().
52         * platform/graphics/wince/ImageBufferWinCE.cpp:
53         (WebCore::ImageBuffer::dataSize): Implement dataSize().
54         * platform/graphics/wx/ImageBufferWx.cpp:
55         (WebCore::ImageBuffer::dataSize): Implement dataSize().
56
57 2011-01-21  Adam Roben  <aroben@apple.com>
58
59         Rename WKCACFLayerRenderer[Client] to CACFLayerTreeHost[Client]
60
61         Also renamed a few functions and data members to match.
62
63         Fixes <http://webkit.org/b/52898> WKCACFLayerRenderer sounds like a render object, but isn't
64
65         Reviewed by Simon Fraser.
66
67         * WebCore.vcproj/WebCore.vcproj: Updated files' names and paths.
68
69         * WebCore.vcproj/WebCoreQuartzCore.vsprops: Added platform/graphics/ca/win to the include
70         path.
71
72         * WebCore.vcproj/copyForwardingHeaders.cmd: Copy headers from platform/graphics/ca/win, too.
73
74         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Renamed from Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp.
75         * platform/graphics/ca/win/CACFLayerTreeHost.h: Renamed from Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h.
76
77         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
78         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
79         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
80         Updated for renames.
81
82 2011-01-21  Patrick Gansterer  <paroga@paroga.com>
83
84         Original patch from François Sausset  <sausset@gmail.com>
85
86         Reviewed by Darin Adler.
87
88         Code cleaning in rendering/mathml/RenderMathMLFraction.cpp
89         https://bugs.webkit.org/show_bug.cgi?id=52201
90
91         Replace unneeded doubles by floats and remove unneeded casts.
92
93         * rendering/mathml/RenderMathMLFraction.cpp:
94         (WebCore::RenderMathMLFraction::paint):
95         * rendering/mathml/RenderMathMLFraction.h:
96
97 2011-01-21  Dimitri Glazkov  <dglazkov@chromium.org>
98
99         Reviewed by Darin Adler.
100
101         REGRESSION(r73618): Clicking on a search input causes a crash.
102         https://bugs.webkit.org/show_bug.cgi?id=52905
103
104         The problem is caused by TextControlInnerElement being used both as
105         shadow root and an element in a shadow subtree. The code assumed it is
106         only used as a shadow root.
107
108         Since this code is all just workaround for in-progress conversion to
109         new shadow DOM, I am just adding a check. This code will disappear
110         completely once bug 52788 is fixed.
111
112         Test: fast/dom/search-shadow-host-crash.html
113
114         * dom/Node.cpp:
115         (WebCore::Node::setShadowHost): Added an ASSERT for early detection
116             of attempting to stomp on the parentNode.
117         * rendering/TextControlInnerElements.cpp:
118         (WebCore::TextControlInnerElement::detach): Added a check to only
119             clear shadow host if we have one.
120
121 2011-01-21  Adam Roben  <aroben@apple.com>
122
123         Replace some "sync compositing state" terminology with "flush pending GraphicsLayer changes"
124
125         This seems to be the direction in which our code is moving. I chose "GraphicsLayer" as
126         opposed to just "layer" because there are cases where we flush changes to CACFLayers that
127         don't have a corresponding GraphicsLayer.
128
129         Fixes <http://webkit.org/b/52894> "Sync compositing state" terminology in
130         WKCACFLayerRenderer and friends is confusing
131
132         Reviewed by Simon Fraser.
133
134         * platform/graphics/win/WKCACFLayerRenderer.cpp:
135         (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
136         (WebCore::WKCACFLayerRenderer::render):
137         Updated for renames.
138
139         (WebCore::WKCACFLayerRenderer::flushPendingGraphicsLayerChangesSoon): Renamed from
140         syncCompositingStateSoon, and updated for other renames.
141
142         * platform/graphics/win/WKCACFLayerRenderer.h: Renamed m_syncLayerChanges to
143         * m_shouldFlushPendingGraphicsLayerChanges.
144         (WebCore::WKCACFLayerRendererClient::flushPendingGraphicsLayerChanges): Renamed from
145         syncCompositingState.
146
147 2011-01-21  Adam Roben  <aroben@apple.com>
148
149         Clean up PlatformCAAnimationWin
150
151         Fixes <http://webkit.org/b/52904> PlatformCAAnimationWin is leaky and inefficient
152
153         Reviewed by Simon Fraser.
154
155         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
156         (toCACFFillModeType):
157         (fromCACFFillModeType):
158         (toCACFValueFunctionType):
159         (fromCACFValueFunctionType):
160         Changed to take and return CFStringRefs. There's no need to convert to WebCore::String just
161         so we can later convert back to CFStringRef.
162
163         (toCACFTimingFunction): Fixed leaks by changing this to return a RetainPtr and adopting the
164         results of CACFTimingFunctionCreate.
165         (PlatformCAAnimation::PlatformCAAnimation): Changed not to needlessly roundtrip through
166         WebCore::String. Also changed an ASSERT(0) to ASSERT_NOT_REACHED().
167
168         (PlatformCAAnimation::setFillMode):
169         (PlatformCAAnimation::setTimingFunction):
170         (PlatformCAAnimation::setValueFunction):
171         (PlatformCAAnimation::setTimingFunctions):
172         Updated for changes to the above conversion functions.
173
174 2011-01-21  Charlie Reis  <creis@chromium.org>
175
176         Reviewed by Darin Fisher.
177
178         FrameLoader::checkLoadCompleteForThisFrame uses wrong history item
179         https://bugs.webkit.org/show_bug.cgi?id=48812
180
181         Most calls to stopAllLoaders now clear the history's provisional item(s).
182         We can now avoid resetting the back/forward state if a new navigation
183         is in progress.
184
185         Test: http/tests/navigation/back-twice-without-commit.html
186         Test: http/tests/navigation/forward-and-cancel.html
187
188         * loader/FrameLoader.cpp:
189         * loader/FrameLoader.h:
190         * loader/FrameLoaderTypes.h:
191         * WebCore.exp.in: Update stopAllLoaders signature.
192
193 2011-01-21  Carlos Garcia Campos  <cgarcia@igalia.com>
194
195         Reviewed by Martin Robinson.
196
197         [GTK] Show caps lock indicator in password fields
198         https://bugs.webkit.org/show_bug.cgi?id=52878
199
200         Test: manual-tests/password-caps-lock.html
201
202         * platform/gtk/KeyEventGtk.cpp:
203         (WebCore::PlatformKeyboardEvent::currentCapsLockState): Implement
204         currentCapsLockState() using GDK API.
205         * platform/gtk/RenderThemeGtk.cpp:
206         (WebCore::RenderThemeGtk::paintCapsLockIndicator): Paint an icon
207         in the password field when the caps lock modifier is locked.
208         * platform/gtk/RenderThemeGtk.h:
209
210 2011-01-21  Pavel Podivilov  <podivilov@chromium.org>
211
212         Reviewed by Pavel Feldman.
213
214         Web Inspector: move sticky breakpoints management from InspectorController to InspectorBrowserDebuggerAgent.
215         https://bugs.webkit.org/show_bug.cgi?id=52874
216
217         This is the first step of debugger api refactoring (see bug 52879).
218         JavaScript breakpoints are still in the same list as native breakpoints and are restored by InspectorBrowserDebuggerAgent.
219         The second step will be to move sticky JavaScript breakpoints to InspectorDebuggerAgent.
220
221         * inspector/Inspector.idl:
222         * inspector/InspectorBrowserDebuggerAgent.cpp:
223         (WebCore::InspectorBrowserDebuggerAgent::setAllBrowserBreakpoints):
224         (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged):
225         (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
226         (WebCore::InspectorBrowserDebuggerAgent::discardBindings):
227         (WebCore::InspectorBrowserDebuggerAgent::didInsertDOMNode):
228         (WebCore::InspectorBrowserDebuggerAgent::didRemoveDOMNode):
229         (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
230         (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
231         (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
232         (WebCore::InspectorBrowserDebuggerAgent::hasBreakpoint):
233         (WebCore::InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints):
234         * inspector/InspectorBrowserDebuggerAgent.h:
235         * inspector/InspectorController.cpp:
236         (WebCore::InspectorController::restoreInspectorStateFromCookie):
237         (WebCore::InspectorController::connectFrontend):
238         (WebCore::InspectorController::didCommitLoad):
239         (WebCore::InspectorController::enableDebugger):
240         (WebCore::InspectorController::resume):
241         (WebCore::InspectorController::inspectedURL):
242         * inspector/InspectorController.h:
243         * inspector/InspectorState.cpp:
244         (WebCore::InspectorState::InspectorState):
245         * inspector/InspectorState.h:
246         * inspector/front-end/BreakpointManager.js:
247         (WebInspector.BreakpointManager):
248         (WebInspector.BreakpointManager.prototype._saveBreakpoints):
249
250 2011-01-21  John Knottenbelt  <jknotten@chromium.org>
251
252         Reviewed by Jeremy Orlow.
253
254         Turn off uninitialized errors for ARM linux build.
255         https://bugs.webkit.org/show_bug.cgi?id=52893
256
257         Fix ARM compiler breakage.
258
259         * WebCore.gyp/WebCore.gyp:
260
261 2011-01-21  Mikhail Naganov  <mnaganov@chromium.org>
262
263         Reviewed by Yury Semikhatsky.
264
265         Web Inspector: [Chromium] REGRESSION: Using the "Back" button
266         while profiling causes renderer crash.
267
268         https://bugs.webkit.org/show_bug.cgi?id=52808
269
270         * inspector/InspectorProfilerAgent.cpp:
271         (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
272         (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
273
274 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
275
276         Reviewed by Pavel Feldman.
277
278         Web Inspector: switch page/Console implementation from InspectorController to InspectorInstrumentation.
279
280         There are some places in WebCore where we still using direct InspectorController calls.
281         The idea is to pass all the Inspector related calls via InspectorInstrumentaion which is the
282         Inspector facade for WebCore.
283
284         https://bugs.webkit.org/show_bug.cgi?id=52869
285
286         * inspector/InspectorController.cpp:
287         * inspector/InspectorController.h:
288         * inspector/InspectorInstrumentation.cpp:
289         (WebCore::InspectorInstrumentation::addProfileImpl):
290         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
291         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl):
292         * inspector/InspectorInstrumentation.h:
293         (WebCore::InspectorInstrumentation::addProfile):
294         (WebCore::InspectorInstrumentation::profilerEnabled):
295         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
296         * page/Console.cpp:
297         (WebCore::Console::profile):
298         (WebCore::Console::profileEnd):
299
300 2011-01-12  Pavel Podivilov  <podivilov@chromium.org>
301
302         Reviewed by Pavel Feldman.
303
304         Web Inspector: breakpoints are restored incorrectly when reverting live edit.
305         https://bugs.webkit.org/show_bug.cgi?id=52300
306
307         Fix breakpoints restoring when reverting to old revision by using text diff.
308         Move live edit logic from ScriptsPanel to DebuggerModel.
309         Eliminate unnecessary editLine delegate in TextViewer.
310
311         * inspector/front-end/DebuggerModel.js:
312         (WebInspector.DebuggerModel):
313         (WebInspector.DebuggerModel.prototype.reset):
314         (WebInspector.DebuggerModel.prototype.editScriptSource):
315         (WebInspector.DebuggerModel.prototype._updateScriptSource):
316         (WebInspector.DebuggerModel.prototype.get callFrames):
317         (WebInspector.DebuggerModel.prototype.pausedScript):
318         (WebInspector.DebuggerModel.prototype.resumedScript):
319         * inspector/front-end/Script.js:
320         (WebInspector.Script.prototype.get source):
321         * inspector/front-end/ScriptView.js:
322         (WebInspector.ScriptView):
323         * inspector/front-end/ScriptsPanel.js:
324         (WebInspector.ScriptsPanel):
325         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
326         * inspector/front-end/SourceFrame.js:
327         (WebInspector.SourceFrame):
328         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
329         (WebInspector.SourceFrame.prototype._doubleClick.didEditLine):
330         (WebInspector.SourceFrame.prototype._doubleClick):
331         * inspector/front-end/SourceView.js:
332         (WebInspector.SourceView):
333         * inspector/front-end/TextViewer.js:
334         (WebInspector.TextViewer):
335         (WebInspector.TextViewer.prototype._handleKeyDown):
336         (WebInspector.TextViewer.prototype.editLine.finishEditing):
337         (WebInspector.TextViewer.prototype.editLine):
338         (WebInspector.TextChunk.prototype._createRow):
339
340 2011-01-21  Adam Klein  <adamk@chromium.org>
341
342         Reviewed by Eric Seidel.
343
344         [chromium] Rename ChromiumBridge to PlatformBridge
345         https://bugs.webkit.org/show_bug.cgi?id=52471
346
347         No tests added as this is a rename; no change in behavior.
348
349         * WebCore.gypi:
350         * bindings/v8/V8DOMWindowShell.cpp:
351         (WebCore::reportFatalErrorInV8):
352         * page/PageGroup.cpp:
353         (WebCore::PageGroup::isLinkVisited):
354         * platform/android/PlatformBridge.h:
355         * platform/audio/chromium/AudioBusChromium.cpp:
356         (WebCore::createBusFromInMemoryAudioFile):
357         * platform/chromium/ChromiumBridge.h: Removed.
358         * platform/chromium/ChromiumDataObjectLegacy.cpp:
359         (WebCore::ChromiumDataObjectLegacy::getData):
360         * platform/chromium/DragDataChromium.cpp:
361         (WebCore::DragData::asURL):
362         * platform/chromium/FileSystemChromium.cpp:
363         (WebCore::deleteFile):
364         (WebCore::deleteEmptyDirectory):
365         (WebCore::getFileSize):
366         (WebCore::getFileModificationTime):
367         (WebCore::revealFolderInOS):
368         (WebCore::directoryName):
369         (WebCore::pathByAppendingComponent):
370         (WebCore::makeAllDirectories):
371         (WebCore::fileExists):
372         (WebCore::openFile):
373         (WebCore::closeFile):
374         (WebCore::seekFile):
375         (WebCore::truncateFile):
376         (WebCore::readFromFile):
377         (WebCore::writeToFile):
378         * platform/chromium/LanguageChromium.cpp:
379         (WebCore::platformDefaultLanguage):
380         * platform/chromium/LinkHashChromium.cpp:
381         (WebCore::visitedLinkHash):
382         * platform/chromium/MIMETypeRegistryChromium.cpp:
383         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
384         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
385         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
386         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
387         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
388         * platform/chromium/PasteboardChromium.cpp:
389         (WebCore::Pasteboard::writeSelection):
390         (WebCore::Pasteboard::writePlainText):
391         (WebCore::Pasteboard::writeURL):
392         (WebCore::Pasteboard::writeImage):
393         (WebCore::Pasteboard::canSmartReplace):
394         (WebCore::Pasteboard::plainText):
395         (WebCore::Pasteboard::documentFragment):
396         * platform/chromium/PlatformBridge.h:
397         * platform/chromium/PlatformScreenChromium.cpp:
398         (WebCore::screenDepth):
399         (WebCore::screenDepthPerComponent):
400         (WebCore::screenIsMonochrome):
401         (WebCore::screenRect):
402         (WebCore::screenAvailableRect):
403         * platform/chromium/ReadableDataObject.cpp:
404         (WebCore::ReadableDataObject::getData):
405         (WebCore::ReadableDataObject::urlTitle):
406         (WebCore::ReadableDataObject::htmlBaseUrl):
407         (WebCore::ReadableDataObject::filenames):
408         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
409         * platform/chromium/SSLKeyGeneratorChromium.cpp:
410         (WebCore::signedPublicKeyAndChallengeString):
411         * platform/chromium/ScrollbarThemeChromium.cpp:
412         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
413         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
414         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
415         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
416         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
417         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
418         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
419         * platform/chromium/ScrollbarThemeChromiumMac.mm:
420         (WebCore::scrollbarStateToThemeState):
421         (WebCore::ScrollbarThemeChromiumMac::paint):
422         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
423         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
424         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
425         (WebCore::ScrollbarThemeChromiumWin::paintButton):
426         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
427         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
428         * platform/chromium/SharedTimerChromium.cpp:
429         (WebCore::setSharedTimerFiredFunction):
430         (WebCore::setSharedTimerFireTime):
431         (WebCore::stopSharedTimer):
432         * platform/chromium/SuddenTerminationChromium.cpp:
433         (WebCore::disableSuddenTermination):
434         (WebCore::enableSuddenTermination):
435         * platform/chromium/SystemTimeChromium.cpp:
436         (WebCore::currentTime):
437         * platform/chromium/WritableDataObject.cpp:
438         (WebCore::WritableDataObject::setData):
439         * platform/graphics/chromium/CrossProcessFontLoading.mm:
440         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
441         (WebCore::fontContainsCharacter):
442         (WebCore::FillLogFont):
443         * platform/graphics/chromium/FontCacheLinux.cpp:
444         (WebCore::FontCache::getFontDataForCharacters):
445         * platform/graphics/chromium/FontChromiumWin.cpp:
446         (WebCore::Font::drawGlyphs):
447         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
448         (WebCore::FontPlatformData::scriptFontProperties):
449         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
450         (WebCore::FontPlatformData::querySystemForRenderStyle):
451         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
452         (WebCore::fillBMPGlyphs):
453         * platform/graphics/chromium/ImageChromium.cpp:
454         (WebCore::Image::loadPlatformResource):
455         * platform/graphics/chromium/ImageChromiumMac.mm:
456         (WebCore::Image::loadPlatformResource):
457         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
458         (WebCore::SimpleFontData::platformInit):
459         (WebCore::SimpleFontData::determinePitch):
460         (WebCore::SimpleFontData::platformWidthForGlyph):
461         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
462         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
463         * platform/graphics/skia/FontCustomPlatformData.cpp:
464         (WebCore::FontCustomPlatformData::fontPlatformData):
465         * platform/network/chromium/CookieJarChromium.cpp:
466         (WebCore::setCookies):
467         (WebCore::cookies):
468         (WebCore::cookieRequestHeaderFieldValue):
469         (WebCore::cookiesEnabled):
470         (WebCore::getRawCookies):
471         (WebCore::deleteCookie):
472         * platform/network/chromium/DNSChromium.cpp:
473         (WebCore::prefetchDNS):
474         * platform/qt/PlatformBridge.h:
475         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
476         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
477         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
478         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
479         (chromiumOpen):
480         (chromiumDelete):
481         (chromiumAccess):
482         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
483         * plugins/chromium/PluginDataChromium.cpp:
484         (WebCore::PluginCache::plugins):
485         * rendering/RenderThemeChromiumMac.mm:
486         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
487         * rendering/RenderThemeChromiumSkia.cpp:
488         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
489         * rendering/RenderThemeChromiumWin.cpp:
490         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
491         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
492         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
493         (WebCore::RenderThemeChromiumWin::systemColor):
494         (WebCore::RenderThemeChromiumWin::paintButton):
495         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
496         (WebCore::menuListButtonWidth):
497         (WebCore::RenderThemeChromiumWin::paintMenuList):
498         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
499         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
500         (WebCore::RenderThemeChromiumWin::paintProgressBar):
501         * storage/chromium/IDBFactoryBackendInterface.cpp:
502         (WebCore::IDBFactoryBackendInterface::create):
503         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
504         * storage/chromium/IDBKeyPathBackendImpl.cpp:
505         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
506
507 2011-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>
508
509         Unreviewed, rolling out r76335.
510         http://trac.webkit.org/changeset/76335
511         https://bugs.webkit.org/show_bug.cgi?id=52875
512
513         profiler tests were broken (Requested by loislo on #webkit).
514
515         * inspector/InspectorController.cpp:
516         (WebCore::InspectorController::addProfile):
517         (WebCore::InspectorController::getCurrentUserInitiatedProfileName):
518         * inspector/InspectorController.h:
519         * inspector/InspectorInstrumentation.cpp:
520         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
521         * inspector/InspectorInstrumentation.h:
522         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
523         (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForPage):
524         * page/Console.cpp:
525         (WebCore::Console::profile):
526         (WebCore::Console::profileEnd):
527
528 2011-01-21  Ilya Tikhonovsky  <loislo@chromium.org>
529
530         Reviewed by Yury Semikhatsky.
531
532         Web Inspector: switch page/Console implementation from InspectorController to InspectorInstrumentation.
533
534         There are some places in WebCore where we still using direct InspectorController calls.
535         The idea is to pass all the Inspector related calls via InspectorInstrumentaion which is the
536         Inspector facade for WebCore.
537
538         https://bugs.webkit.org/show_bug.cgi?id=52869
539
540         * inspector/InspectorController.cpp:
541         * inspector/InspectorController.h:
542         * inspector/InspectorInstrumentation.cpp:
543         (WebCore::InspectorInstrumentation::addProfileImpl):
544         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
545         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl):
546         * inspector/InspectorInstrumentation.h:
547         (WebCore::InspectorInstrumentation::addProfile):
548         (WebCore::InspectorInstrumentation::profilerEnabled):
549         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
550         * page/Console.cpp:
551         (WebCore::Console::profile):
552         (WebCore::Console::profileEnd):
553
554 2011-01-20  Sam Weinig  <sam@webkit.org>
555
556         Reviewed by Gavin Barraclough.
557
558         Fix failing tests from r76291.
559
560         * platform/ScrollView.cpp:
561         (WebCore::ScrollView::scrollPosition):
562         (WebCore::ScrollView::updateScrollbars):
563         Take the scroll origin into account in more places.
564
565 2011-01-20  Kent Tamura  <tkent@chromium.org>
566
567         Unreviewed, sorting an Xcode project file.
568
569         * WebCore.xcodeproj/project.pbxproj:
570
571 2011-01-20  Ben Vanik  <ben.vanik@gmail.com>
572
573         Reviewed by Kenneth Russell.
574
575         Implementation of the OES_standard_derivatives WebGL extension.
576         https://bugs.webkit.org/show_bug.cgi?id=51678
577
578         Changes are modeled off of the existing OESTextureFloat extension. New files,
579         extension retrieval, etc all match the existing code.
580
581         Changed ANGLEWebKitBridge to allow for multiple sets of the ANGLE shader compiler
582         options. This supports the enabling of the standard derivatives flag when the
583         extension is enabled. Refactored the cleanup code to make the destruction of the
584         compilers (if they had been created) cleaner.
585
586         Tested with the WebGL conformance test:
587         https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/oes-standard-derivatives.html
588         Passes on WebKit/OSX, Chromium/OSX, and Chromium/Windows.
589
590         * CMakeLists.txt:
591         * DerivedSources.make:
592         * GNUmakefile.am:
593         * WebCore.gypi:
594         * WebCore.pri:
595         * WebCore.pro:
596         * WebCore.xcodeproj/project.pbxproj:
597         * bindings/js/JSWebGLRenderingContextCustom.cpp:
598         (WebCore::toJS):
599         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
600         (WebCore::toV8Object):
601         * html/canvas/OESStandardDerivatives.cpp: Added.
602         (WebCore::OESStandardDerivatives::OESStandardDerivatives):
603         (WebCore::OESStandardDerivatives::~OESStandardDerivatives):
604         (WebCore::OESStandardDerivatives::getName):
605         (WebCore::OESStandardDerivatives::create):
606         * html/canvas/OESStandardDerivatives.h: Added.
607         * html/canvas/OESStandardDerivatives.idl: Added.
608         * html/canvas/WebGLExtension.h:
609         * html/canvas/WebGLRenderingContext.cpp:
610         (WebCore::WebGLRenderingContext::getExtension): Enable and return the new extension.
611         (WebCore::WebGLRenderingContext::getParameter): Support extension enum when enabled.
612         (WebCore::WebGLRenderingContext::getSupportedExtensions): 
613         (WebCore::WebGLRenderingContext::hint): Validate extension enum when enabled.
614         (WebCore::WebGLRenderingContext::getNumberOfExtensions):
615         (WebCore::WebGLRenderingContext::getExtensionNumber):
616         * html/canvas/WebGLRenderingContext.h:
617         * platform/graphics/ANGLEWebKitBridge.cpp:
618         (WebCore::ANGLEWebKitBridge::~ANGLEWebKitBridge): Cleaned up compiler cleanup.
619         (WebCore::ANGLEWebKitBridge::cleanupCompilers): Destruct compilers.
620         (WebCore::ANGLEWebKitBridge::setResources): Cleanup existing compilers when changing
621         ANGLE settings.
622         (WebCore::ANGLEWebKitBridge::validateShaderSource): Cleaned up compiler cleanup on error.
623         * platform/graphics/ANGLEWebKitBridge.h:
624         (WebCore::ANGLEWebKitBridge::getResources):
625         * platform/graphics/Extensions3D.h: Added enumeration for the extension.
626         * platform/graphics/GraphicsContext3D.h: lumbing for GraphicsContext3D.
627         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
628         (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Plumbed through a pointer to the
629         GraphicsContext3D to handle resetting the shader compilers.
630         (WebCore::Extensions3DOpenGL::supports): Desktop GL always supports this extension,
631         so always return true.
632         (WebCore::Extensions3DOpenGL::ensureEnabled): Reset shader compilers as required.
633         * platform/graphics/opengl/Extensions3DOpenGL.h: Plumbing for GraphicsContext3D.
634         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
635         (WebCore::GraphicsContext3D::getExtensions): Plumbing for GraphicsContext3D to
636         Extensions3DOpenGL.
637
638 2011-01-20  Xiaomei Ji  <xji@chromium.org>
639
640         Reviewed by Dan Bernstein.
641
642         Fix regression(r71566): PDF in RTL block might messes up text directionality.
643         https://bugs.webkit.org/show_bug.cgi?id=52776
644
645         Test: fast/dom/52776.html
646
647         * platform/text/BidiResolver.h:
648         (WebCore::::checkDirectionInLowerRaiseEmbeddingLevel):
649         (WebCore::::lowerExplicitEmbeddingLevel):
650         (WebCore::::raiseExplicitEmbeddingLevel):
651         (WebCore::::createBidiRunsForLine):
652
653 2011-01-20  Beth Dakin  <bdakin@apple.com>
654
655         Reviewed by Anders Carlsson.
656
657         Follow-on for <rdar://problem/8890255>
658
659         This fixes a painting error with ScrollbarPainter scrollers
660         and the new drawing area code path.
661         * platform/mac/ScrollbarThemeMac.mm:
662         (WebCore::updateArrowPlacement):
663
664 2011-01-20  Levi Weintraub  <leviw@chromium.org>
665
666         Unreviewed.
667
668         Fixing build breakage.
669
670         * editing/SelectionController.cpp:
671         (WebCore::SelectionController::willBeModified):
672
673 2011-01-20  Levi Weintraub  <leviw@chromium.org>
674
675         Reviewed by Ryosuke Niwa.
676
677         RTL: Caret goes to the opposite direction when pressing an arrow key after selection is made
678         https://bugs.webkit.org/show_bug.cgi?id=49511
679
680         Test: editing/selection/rtl-move-selection-right-left.html
681
682         * editing/SelectionController.cpp:
683         (WebCore::SelectionController::willBeModified):
684         Respecting the direction of the containing block when switching selection base and extent in
685         RTL content.
686
687         (WebCore::SelectionController::modifyMovingRight):
688         (WebCore::SelectionController::modifyMovingLeft):
689         Using directionOfEnclosingBlock when deciding to use the selection start or end to do the
690         correct thing for RTL.
691
692 2011-01-20  Nate Chapin  <japhet@chromium.org>
693
694         Reviewed by Adam Barth.
695
696         Null-check m_frame in DOMWindow::setLocation(), since it's
697         possible to reach this point without it having been checked
698         already.
699         https://bugs.webkit.org/show_bug.cgi?id=52769
700
701         Test: fast/dom/Window/Location/set-location-after-close.html
702
703         * page/DOMWindow.cpp:
704         (WebCore::DOMWindow::setLocation):
705
706 2011-01-20  Chang Shu  <chang.shu@nokia.com>
707
708         Reviewed by Darin Adler.
709
710         setContentEditable with invalid string should throw exception.
711         https://bugs.webkit.org/show_bug.cgi?id=52057
712
713         Implemented exception throwing for setContentEditable according to the following spec:
714         http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#attr-contenteditable
715         Related quotas: "On setting, if the new value is an ASCII case-insensitive match for the 
716         string 'inherit' then the content attribute must be removed, if the new value is an ASCII 
717         case-insensitive match for the string 'true' then the content attribute must be set to the 
718         string 'true', if the new value is an ASCII case-insensitive match for the string 'false' 
719         then the content attribute must be set to the string 'false', and otherwise the attribute 
720         setter must raise a SYNTAX_ERR exception."
721
722         * html/HTMLElement.cpp:
723         (WebCore::HTMLElement::setContentEditable): Throw exception on invalid input strings; Make setting values case-insensitive and also convert them to lower cases according to the spec.
724         * html/HTMLElement.h: Add additional parameter ExceptionCode& for function setContentEditable.
725         * html/HTMLElement.idl: Add exception throwing support for contentEditable setter.
726
727 2011-01-19  Adrienne Walker  <enne@google.com>
728
729         Reviewed by James Robinson.
730
731         [chromium] Composited render surfaces should allow writes to alpha channel.
732         https://bugs.webkit.org/show_bug.cgi?id=52766
733
734         Test: LayoutTests/platform/chromium/compositing
735
736         * platform/graphics/chromium/LayerRendererChromium.cpp:
737         (WebCore::LayerRendererChromium::drawLayers):
738
739 2011-01-14  Jer Noble  <jer.noble@apple.com>
740
741         Reviewed by Eric Carlson.
742
743         REGRESSION (r71842): Compass video is not playing in Safari welcome page
744         https://bugs.webkit.org/show_bug.cgi?id=52506
745
746         New test: LayoutTests/media/video-currentTime-delay.html
747
748         Call invalidateCachedTime() every time one of the cached property dependencies changes,
749         i.e. m_paused and m_playbackRate.
750
751         * html/HTMLMediaElement.cpp:
752         (WebCore::HTMLMediaElement::prepareForLoad):
753         (WebCore::HTMLMediaElement::setReadyState):
754         (WebCore::HTMLMediaElement::setPlaybackRate):
755         (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
756
757 2011-01-20  Beth Dakin  <bdakin@apple.com>
758
759         Reviewed by Geoffrey Garen.
760
761         Fix for <rdar://problem/8890255>
762
763         Allow WebKitSystemInterface to draw scrollbars 
764         when appropriate.
765         * WebCore.exp.in:
766         * platform/mac/ScrollbarThemeMac.mm:
767         (WebCore::scrollbarMap):
768         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
769         (WebCore::ScrollbarThemeMac::registerScrollbar):
770         (WebCore::ScrollbarThemeMac::unregisterScrollbar):
771         (WebCore::ScrollbarThemeMac::paint):
772         * platform/mac/WebCoreSystemInterface.h:
773         * platform/mac/WebCoreSystemInterface.mm:
774
775 2011-01-20  Sam Weinig  <sam@webkit.org>
776
777         Reviewed by Dave Hyatt.
778
779         Cleanup Scrollbar/ScrollbarClient relationship
780         https://bugs.webkit.org/show_bug.cgi?id=52779
781
782         Pipe all scrolling through the ScrollbarClient/ScrollAnimator
783         rather than through the Scrollbar. The Scrollbar now is just
784         a "view" on the scroll position of the scrollable area it is
785         attached to.
786
787         There are now two ways to scroll a scrollable area:
788         - ScrollbarClient::scroll()
789         - ScrollbarClient::scrollToOffsetWithoutAnimation()
790
791         Both of these go through the ScrollAnimator (updating its state
792         or starting an animation). The ScrollAnimator, in turn, now calls
793         ScrollbarClient::setScrollOffsetFromAnimation, which tells the
794         Scrollbars to pull a new offset (via Scrollbar::offsetDidChange)
795         and tells the class that derives from ScrollbarClient to scroll
796         its contents (via ScrollbarClient::setScrollOffset).
797
798         * WebCore.xcodeproj/project.pbxproj:
799         Move Scrollbar.cpp to the right place.
800
801         * accessibility/AccessibilityScrollbar.cpp:
802         (WebCore::AccessibilityScrollbar::setValue):
803         Initiate the scroll through the scrollbar client, rather than the
804         scrollbar itself.
805
806         * page/FrameView.cpp:
807         (WebCore::FrameView::scrollTo):
808         * page/FrameView.h:
809         Condense the two valueChanged overrides to a single override of the
810         scrollTo function.
811
812         * platform/ScrollAnimator.cpp:
813         (WebCore::ScrollAnimator::scroll):
814         (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
815         (WebCore::ScrollAnimator::currentPosition):
816         (WebCore::ScrollAnimator::notityPositionChanged):
817         * platform/ScrollAnimator.h:
818         * platform/ScrollAnimatorWin.cpp:
819         (WebCore::ScrollAnimatorWin::scrollToOffsetWithoutAnimation):
820         (WebCore::ScrollAnimatorWin::animateScroll):
821         * platform/ScrollAnimatorWin.h:
822         * platform/mac/ScrollAnimatorMac.h:
823         * platform/mac/ScrollAnimatorMac.mm:
824         (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation):
825         (WebCore::ScrollAnimatorMac::immediateScrollToPoint):
826         Change setScrollPositionAndStopAnimation to scrollToOffsetWithoutAnimation
827         and bottleneck all client notification of changed position through a new
828         notityPositionChanged() function.
829
830         * platform/ScrollView.cpp:
831         (WebCore::ScrollView::setScrollOffset):
832         (WebCore::ScrollView::scrollTo):
833         (WebCore::ScrollView::scrollPosition):
834         (WebCore::ScrollView::scroll):
835         (WebCore::ScrollView::updateScrollbars):
836         (WebCore::ScrollView::wheelEvent):
837         * platform/ScrollView.h:
838         (WebCore::ScrollView::horizontalScrollbar):
839         (WebCore::ScrollView::verticalScrollbar):
840         Update to scroll via the ScrollbarClient rather than the Scrollbar.
841
842         * platform/Scrollbar.cpp:
843         (WebCore::Scrollbar::offsetDidChange):
844         (WebCore::Scrollbar::autoscrollPressedPart):
845         (WebCore::Scrollbar::moveThumb):
846         (WebCore::Scrollbar::mouseMoved):
847         * platform/Scrollbar.h:
848         (WebCore::Scrollbar::setPressedPos):
849         Change the scrollbar to only updates its offset in response to
850         an offsetDidChange call.
851
852         * platform/ScrollbarClient.cpp:
853         (WebCore::ScrollbarClient::scroll):
854         (WebCore::ScrollbarClient::scrollToOffsetWithoutAnimation):
855         (WebCore::ScrollbarClient::scrollToXOffsetWithoutAnimation):
856         (WebCore::ScrollbarClient::scrollToYOffsetWithoutAnimation):
857         (WebCore::ScrollbarClient::setScrollOffsetFromAnimation):
858         * platform/ScrollbarClient.h:
859         (WebCore::ScrollbarClient::horizontalScrollbar):
860         (WebCore::ScrollbarClient::verticalScrollbar):
861         Make the increasingly misnamed ScrollbarClient responsible for
862         scrolling.
863
864         * platform/efl/ScrollbarEfl.cpp:
865         (scrollbarEflEdjeMessage):
866         * platform/gtk/MainFrameScrollbarGtk.cpp:
867         (MainFrameScrollbarGtk::gtkValueChanged):
868         * platform/qt/ScrollbarQt.cpp:
869         (WebCore::Scrollbar::contextMenu):
870         Update to move scrolling through the client.
871
872         * platform/win/PopupMenuWin.cpp:
873         (WebCore::PopupMenuWin::scrollToRevealSelection):
874         (WebCore::PopupMenuWin::scrollPosition):
875         (WebCore::PopupMenuWin::setScrollOffset):
876         (WebCore::PopupMenuWin::scrollTo):
877         (WebCore::PopupMenuWin::wndProc):
878         * platform/win/PopupMenuWin.h:
879         (WebCore::PopupMenuWin::verticalScrollbar):
880         * rendering/RenderLayer.cpp:
881         (WebCore::RenderLayer::scrollToOffset):
882         (WebCore::RenderLayer::scrollTo):
883         (WebCore::RenderLayer::setScrollOffset):
884         (WebCore::RenderLayer::scrollPosition):
885         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
886         (WebCore::RenderLayer::scroll):
887         * rendering/RenderLayer.h:
888         * rendering/RenderListBox.cpp:
889         (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
890         (WebCore::RenderListBox::scroll):
891         (WebCore::RenderListBox::logicalScroll):
892         (WebCore::RenderListBox::scrollPosition):
893         (WebCore::RenderListBox::setScrollOffset):
894         (WebCore::RenderListBox::scrollTo):
895         (WebCore::RenderListBox::setScrollTop):
896         * rendering/RenderListBox.h:
897         (WebCore::RenderListBox::verticalScrollbar):
898         Update to scroll via the ScrollbarClient rather than the Scrollbar.
899
900         * rendering/RenderMarquee.cpp:
901         (WebCore::RenderMarquee::start):
902         Simplify initial paint to just do an immediate scroll to the position.
903
904 2011-01-20  Patrick Gansterer  <paroga@webkit.org>
905
906         Unreviewed WinCE build fix for r76170.
907
908         * platform/graphics/wince/FontWinCE.cpp: Added a missing include.
909         * platform/graphics/wince/ImageBufferData.h: Added a missing include and fixed style.
910
911 2011-01-20  James Robinson  <jamesr@chromium.org>
912
913         Reviewed by Darin Fisher.
914
915         Implement mozilla's requestAnimationFrame API
916         https://bugs.webkit.org/show_bug.cgi?id=51218
917
918         This implements mozilla's proposed requestAnimationFrame API.  The idea with this API is that
919         an author driving an animation from script could use window.requestAnimationFrame(callback)
920         instead of window.setTimeout(callback, 0) to schedule their update logic and let the browser
921         decide when to update the animations.  This avoids doing unnecessary work when the page content
922         is offscreen or is being displayed at a different framerate than what the page author expects.
923
924         Mozilla's proposal is here: https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame
925         This implements window.mozRequestAnimationFrame as window.webkitRequestAnimationFrame with the
926         following changes:
927         *) Only the callback syntax is supported, there is no before paint event
928         *) webkitRequestAnimationFrame supports a second parameter Element to let the author indicate
929             what content they intend to animate.  That way if the page is being displayed but the element
930             in question is offscreen, we can avoid invoking the callback.
931         *) No timestamp is provided to the caller and there is no window.animationStartTime property
932             (see https://bugs.webkit.org/show_bug.cgi?id=51952 for discussion of this property)
933         *) window.webkitRequestAnimationFrame returns a numerical id that can be used to cancel the callback
934             using window.cancelWebkitRequestAnimationFrame, to parallel window.setTimeout()/window.clearTime().
935
936         The implementation depends on the embedder scheduling the callbacks since the callback invocation
937         depends on the page's visibility and the embedder's paint scheduling, neither of which are exposed
938         to WebCore.  The expectation for the embedder is that at some point Chrome::scheduleAnimation() is
939         called FrameView::serviceScriptedAnimations() should be called for the associated Page's main frame.
940         Ideally serviceScriptedAnimations() would be called prior to rendering - although in practice the
941         embedder has to rate limit callbacks and may not be able to tie the callback directly to the
942         rendering loop.
943
944         Tests: fast/animation/request-animation-frame-cancel.html
945                fast/animation/request-animation-frame-cancel2.html
946                fast/animation/request-animation-frame-display.html
947                fast/animation/request-animation-frame-within-callback.html
948                fast/animation/request-animation-frame.html
949
950         * WebCore.gypi:
951         * dom/Document.cpp:
952         (WebCore::Document::Document):
953         (WebCore::Document::webkitRequestAnimationFrame):
954         (WebCore::Document::webkitCancelRequestAnimationFrame):
955         (WebCore::Document::serviceScriptedAnimations):
956         * dom/Document.h:
957         * dom/RequestAnimationFrameCallback.h: Added.
958         (WebCore::RequestAnimationFrameCallback::~RequestAnimationFrameCallback):
959         * dom/RequestAnimationFrameCallback.idl: Added.
960         * loader/EmptyClients.h:
961         (WebCore::EmptyChromeClient::scheduleAnimation):
962         * page/Chrome.cpp:
963         (WebCore::Chrome::scheduleAnimation):
964         * page/Chrome.h:
965         * page/ChromeClient.h:
966         * page/DOMWindow.cpp:
967         (WebCore::DOMWindow::webkitRequestAnimationFrame):
968         (WebCore::DOMWindow::webkitCancelRequestAnimationFrame):
969         * page/DOMWindow.h:
970         * page/DOMWindow.idl:
971         * page/FrameView.cpp:
972         (WebCore::FrameView::scheduleAnimation):
973         (WebCore::FrameView::serviceScriptedAnimations):
974         * page/FrameView.h:
975         * platform/HostWindow.h:
976
977 2011-01-20  James Robinson  <jamesr@chromium.org>
978
979         Reviewed by Nate Chapin.
980
981         [v8] CodeGeneratorV8 generates incorrect code for callbacks with no parameters
982         https://bugs.webkit.org/show_bug.cgi?id=52837
983
984         When generating code to invoke a callback with no parameters CodeGeneratorV8.pm was generating the following:
985         v8::Handle<v8::Value> argv[] = {}; which does not compile in visual studio.  Instead, if the argument count
986         is 0, we can just pass a NULL pointer for the argv parameter.
987
988         Test added to bindings/scripts/test/TestCallback.idl and covered by run-bindings-tests.  This
989         patch also includes some spurious changes to the bindings tests golden files (mostly GObject)
990         because the old golden files were out of date.
991
992         * bindings/scripts/CodeGeneratorV8.pm:
993         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
994         (WebDOMTestCallback::callbackWithNoParam):
995         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
996         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
997         (webkit_dom_test_callback_callback_with_no_param):
998         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
999         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
1000         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
1001         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1002         * bindings/scripts/test/JS/JSTestCallback.cpp:
1003         (WebCore::JSTestCallback::callbackWithNoParam):
1004         * bindings/scripts/test/JS/JSTestCallback.h:
1005         * bindings/scripts/test/JS/JSTestInterface.cpp:
1006         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1007         * bindings/scripts/test/JS/JSTestObj.cpp:
1008         * bindings/scripts/test/ObjC/DOMTestCallback.h:
1009         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
1010         (-[DOMTestCallback callbackWithNoParam]):
1011         * bindings/scripts/test/TestCallback.idl:
1012         * bindings/scripts/test/V8/V8TestCallback.cpp:
1013         (WebCore::V8TestCallback::callbackWithNoParam):
1014         * bindings/scripts/test/V8/V8TestCallback.h:
1015         * bindings/scripts/test/V8/V8TestObj.cpp:
1016         (WebCore::TestObjInternal::reflectedUnsignedIntegralAttrAttrGetter):
1017
1018 2011-01-20  James Robinson  <jamesr@chromium.org>
1019
1020         Reviewed by Eric "Baller" Seidel.
1021
1022         RenderTableSection's setNeedsCellRecalc needs to null check table()
1023         https://bugs.webkit.org/show_bug.cgi?id=52770
1024
1025         Null checks table() before deferencing it in RenderTableSection::setNeedsCellRecalc.
1026         This can be null during detach().  Test constructed by Eric Seidel.
1027
1028         Test: fast/css-generated-content/table-with-scrollbar-corner.html
1029
1030         * rendering/RenderTableSection.cpp:
1031         (WebCore::RenderTableSection::setNeedsCellRecalc):
1032         * rendering/RenderTableSection.h:
1033
1034 2011-01-20  Dirk Schulze  <krit@webkit.org>
1035
1036         Reviewed by Rob Buis.
1037
1038         SVG Pattern doesn't take preserveAspectRatio of references Pattern
1039         https://bugs.webkit.org/show_bug.cgi?id=52802
1040
1041         SVGPattern didn't take preserveAspectRatio of a referenced SVGPattern into account. Store preserveAspectRatio
1042         in PatternAttributes as well, if the attribute was set on the referenced SVGPattern element.
1043
1044         Test: svg/custom/pattern-referencing-preserve-aspect-ratio.svg
1045
1046         * rendering/svg/RenderSVGResourcePattern.cpp:
1047         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
1048         * svg/PatternAttributes.h:
1049         (WebCore::PatternAttributes::PatternAttributes):
1050         (WebCore::PatternAttributes::preserveAspectRatio):
1051         (WebCore::PatternAttributes::setPreserveAspectRatio):
1052         (WebCore::PatternAttributes::hasPreserveAspectRatio):
1053         * svg/SVGPatternElement.cpp:
1054         (WebCore::SVGPatternElement::collectPatternAttributes):
1055
1056 2011-01-20  Dan Bernstein  <mitz@apple.com>
1057
1058         Reviewed by Adele Peterson.
1059
1060         <rdar://problem/8765498> REGRESSION (r72141): Cannot order prints with Aperture 3.1
1061
1062         <rdar://problem/8884648> REGRESSION (r72141): Safari hangs when visiting a page on www.bfmtv.com
1063         https://bugs.webkit.org/show_bug.cgi?id=52765
1064
1065         <rdar://problem/8890909> REGRESSION (r72141): Very Slow Rendering With Certain Markup
1066         https://bugs.webkit.org/show_bug.cgi?id=52265
1067
1068         Test: fast/block/line-layout/negative-max-height.html
1069
1070         Integer overflow detection led to a block having a huge height. This manifested as broken layout
1071         in the first bug and as extreme slowness in the latter bugs because of
1072         https://bugs.webkit.org/show_bug.cgi?id=52832
1073
1074         * rendering/RootInlineBox.cpp:
1075         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Clamp maxHeight to 0 so the next line
1076         cannot start above this line. The negative maxHeight also caused the integer overflow detection
1077         logic to give the block a huge height.
1078
1079 2011-01-20  Yi Shen  <yi.4.shen@nokia.com>
1080
1081         Reviewed by Eric Carlson.
1082
1083         Clean up the Media Controls CSS for Qt
1084         https://bugs.webkit.org/show_bug.cgi?id=52822
1085
1086         Split the audio::-webkit-media-xxx and video::-webkit-media-xxx rules 
1087         in mediaControlsQt.css, and remove the duplicate audio::-webkit-media-xxx
1088         rules from mediaControlsQtFullscreen.css.
1089
1090         * css/mediaControlsQt.css:
1091         (audio::-webkit-media-controls-panel):
1092         (video::-webkit-media-controls-panel):
1093         (audio::-webkit-media-controls-mute-button):
1094         (video::-webkit-media-controls-mute-button):
1095         (audio::-webkit-media-controls-play-button):
1096         (video::-webkit-media-controls-play-button):
1097         (audio::-webkit-media-controls-timeline-container):
1098         (video::-webkit-media-controls-timeline-container):
1099         (audio::-webkit-media-controls-current-time-display):
1100         (video::-webkit-media-controls-current-time-display):
1101         (audio::-webkit-media-controls-time-remaining-display):
1102         (video::-webkit-media-controls-time-remaining-display):
1103         (audio::-webkit-media-controls-timeline):
1104         (video::-webkit-media-controls-timeline):
1105         (audio::-webkit-media-controls-volume-slider-container):
1106         (video::-webkit-media-controls-volume-slider-container):
1107         (audio::-webkit-media-controls-volume-slider):
1108         (video::-webkit-media-controls-volume-slider):
1109         (audio::-webkit-media-controls-seek-back-button):
1110         (video::-webkit-media-controls-seek-back-button):
1111         (audio::-webkit-media-controls-seek-forward-button):
1112         (video::-webkit-media-controls-seek-forward-button):
1113         (audio::-webkit-media-controls-fullscreen-button):
1114         (video::-webkit-media-controls-fullscreen-button):
1115         (audio::-webkit-media-controls-rewind-button):
1116         (video::-webkit-media-controls-rewind-button):
1117         (audio::-webkit-media-controls-return-to-realtime-button):
1118         (video::-webkit-media-controls-return-to-realtime-button):
1119         (audio::-webkit-media-controls-toggle-closed-captions-button):
1120         (video::-webkit-media-controls-toggle-closed-captions-button):
1121         * css/mediaControlsQtFullscreen.css:
1122         (video::-webkit-media-controls-time-remaining-display):
1123         (video::-webkit-media-controls-seek-back-button):
1124         (video::-webkit-media-controls-seek-forward-button):
1125         (video::-webkit-media-controls-rewind-button):
1126         (video::-webkit-media-controls-return-to-realtime-button):
1127         (video::-webkit-media-controls-toggle-closed-captions-button):
1128
1129 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
1130
1131         Reviewed by Pavel Feldman.
1132
1133         Web Inspector: [REGRESSION] Canceling of CSS numeric values increment/decrement is broken
1134         https://bugs.webkit.org/show_bug.cgi?id=52816
1135
1136         * inspector/front-end/StylesSidebarPane.js:
1137         (WebInspector.StylePropertyTreeElement.prototype):
1138
1139 2011-01-20  Dawit Alemayehu  <adawit@kde.org>
1140
1141         Reviewed by Andreas Kling.
1142
1143         [Qt] Fix Layering violation in MediaPlayerPrivateQt.
1144         https://bugs.webkit.org/show_bug.cgi?id=52733
1145
1146         No new tests. no behavioral change.
1147
1148        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
1149         (WebCore::MediaPlayerPrivateQt::commitLoad):
1150
1151 2011-01-20  Nate Chapin  <japhet@chromium.org>
1152
1153         Reviewed by Darin Fisher.
1154
1155         [V8] Call malloc and memcpy directly instead of
1156         of strdup in convertV8ObjectToNPVariant() when
1157         converting strings. If there is a null character
1158         in the string, our use of strdup causes us to allocate
1159         too little memory, leading to out of bounds reads.
1160
1161         https://bugs.webkit.org/show_bug.cgi?id=52631
1162
1163         * bindings/v8/V8NPUtils.cpp:
1164         (WebCore::convertV8ObjectToNPVariant):
1165
1166 2011-01-20  Andreas Kling  <kling@webkit.org>
1167
1168         Reviewed by Ariya Hidayat.
1169
1170         [Qt] Fill shadow scratch buffer with proper transparent pixels
1171
1172         QImage::fill() has no Qt::GlobalColor overload in Qt 4.7 (coming in 4.8)
1173         so doing QImage::fill(Qt::transparent) will actually fill all pixels with
1174         the RGBA value 0x00000013.
1175
1176         * platform/graphics/qt/ContextShadowQt.cpp:
1177         (WebCore::ShadowBuffer::scratchImage):
1178
1179 2011-01-19  Adam Roben  <aroben@apple.com>
1180
1181         Remove WKCACFContextFlusher
1182
1183         It wasn't doing anything.
1184
1185         Fixes <http://webkit.org/b/52752> WKCACFContextFlusher is unused
1186
1187         Reviewed by Simon Fraser.
1188
1189         * WebCore.vcproj/WebCore.vcproj: Removed WKCACFContextFlusher. Also let VS have its way with
1190         the file.
1191
1192         * platform/graphics/win/WKCACFContextFlusher.cpp: Removed.
1193         * platform/graphics/win/WKCACFContextFlusher.h: Removed.
1194
1195         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1196         (WebCore::WKCACFLayerRenderer::~WKCACFLayerRenderer):
1197         (WebCore::WKCACFLayerRenderer::layerTreeDidChange):
1198         Stop telling WKCACFContextFlusher about our context, since it never did anything with it.
1199
1200 2011-01-19  Adam Roben  <aroben@apple.com>
1201
1202         Only flush our own context when we get resized
1203
1204         Fixes <http://webkit.org/b/52751> All WKCACFContexts with uncommitted
1205         changes get flushed whenever any composited page is resized
1206
1207         Reviewed by Simon Fraser.
1208
1209         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1210         (WebCore::WKCACFLayerRenderer::resize): Just flush our own context, not all contexts
1211         WKCACFContextFlusher knows about. After all, ours is the only one that just got resized!
1212
1213 2011-01-19  Adam Roben  <aroben@apple.com>
1214
1215         Make WKCACFLayerRenderer ref-counted
1216
1217         This will be needed to handle cases where the client might release its reference to us while
1218         we're calling out to it.
1219
1220         WKCACFLayerRenderer now has a setClient function, which is used rather than passing the
1221         client to create(). This allows clients to null out the client pointer when they're done
1222         with the renderer.
1223
1224         Fixes <http://webkit.org/b/52749> WKCACFLayerRenderer should be
1225         ref-counted
1226
1227         Reviewed by Simon Fraser.
1228
1229         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
1230         (WebCore::MediaPlayerPrivateFullscreenWindow::MediaPlayerPrivateFullscreenWindow):
1231         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
1232         Updated for WKCACFLayerRenderer changes.
1233
1234         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1235         (WebCore::WKCACFLayerRenderer::acceleratedCompositingAvailable): Updated for changes to
1236         create().
1237         (WebCore::WKCACFLayerRenderer::create): No longer takes a WKCACFLayerRendererClient. Now
1238         returns a PassOwnPtr.
1239         (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer): No longer takes a
1240         WKCACFLayerRendererClient.
1241
1242         * platform/graphics/win/WKCACFLayerRenderer.h: Made WKCACFLayerRenderer inherit from
1243         RefCounted.
1244         (WebCore::WKCACFLayerRenderer::setClient): Added this simple setter.
1245
1246 2011-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1247
1248         [Qt][V8] Unreviewed buildfix after r76248.
1249
1250         * bindings/v8/ScriptCachedFrameData.h: Add missing include.
1251
1252 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
1253
1254         Reviewed by Yury Semikhatsky.
1255
1256         Web Inspector: enable resource agent upon request.
1257         https://bugs.webkit.org/show_bug.cgi?id=52815
1258
1259         We should not send network-related notifications unless front-end
1260         is interested.
1261
1262         * inspector/Inspector.idl:
1263         * inspector/InspectorController.cpp:
1264         (WebCore::InspectorController::restoreInspectorStateFromCookie):
1265         (WebCore::InspectorController::connectFrontend):
1266         (WebCore::InspectorController::resourceAgent):
1267         * inspector/InspectorController.h:
1268         (WebCore::InspectorController::consoleAgent):
1269         (WebCore::InspectorController::cssAgent):
1270         (WebCore::InspectorController::domAgent):
1271         (WebCore::InspectorController::injectedScriptAgent):
1272         (WebCore::InspectorController::runtimeAgent):
1273         (WebCore::InspectorController::databaseAgent):
1274         (WebCore::InspectorController::domStorageAgent):
1275         (WebCore::InspectorController::fileSystemAgent):
1276         * inspector/InspectorInstrumentation.cpp:
1277         (WebCore::InspectorInstrumentation::retrieveResourceAgent):
1278         * inspector/InspectorResourceAgent.cpp:
1279         (WebCore::InspectorResourceAgent::restore):
1280         (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
1281         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
1282         * inspector/InspectorResourceAgent.h:
1283         (WebCore::InspectorResourceAgent::create):
1284         * inspector/InspectorState.cpp:
1285         (WebCore::InspectorState::InspectorState):
1286         * inspector/InspectorState.h:
1287
1288 2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
1289
1290         Reviewed by Csaba Osztrogonác.
1291
1292         Refactoring of the custom allocation framework
1293         https://bugs.webkit.org/show_bug.cgi?id=49897
1294
1295         Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
1296         The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
1297         equivalent macro implementation at the necessary places.
1298
1299 2011-01-20  Mikhail Naganov  <mnaganov@chromium.org>
1300
1301         Reviewed by Pavel Feldman.
1302
1303         Web Inspector: [Chromium] CPU Profiles are cleared when navigating back and forth.
1304
1305         Profiles are now not cleared unless renderer instance was changed.
1306
1307         https://bugs.webkit.org/show_bug.cgi?id=52807
1308
1309         * inspector/InspectorController.cpp:
1310         (WebCore::InspectorController::restoreProfiler):
1311         * inspector/InspectorProfilerAgent.cpp:
1312         (WebCore::InspectorProfilerAgent::resetState):
1313         (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
1314         * inspector/InspectorProfilerAgent.h:
1315
1316 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
1317
1318         Unreviewed, add new JS file refs missing from r76116.
1319
1320         * WebCore.gypi:
1321         * WebCore.vcproj/WebCore.vcproj:
1322         * inspector/front-end/WebKit.qrc:
1323
1324 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
1325
1326         Reviewed by Pavel Feldman.
1327
1328         Web Inspector: Crash when adding a rule for an ImageDocument
1329         https://bugs.webkit.org/show_bug.cgi?id=52811
1330
1331         * inspector/InspectorCSSAgent.cpp:
1332         (WebCore::InspectorCSSAgent::addRule2):
1333         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
1334
1335 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
1336
1337         Reviewed by Pavel Feldman.
1338
1339         Web Inspector: cleanup InspectorController's friends list.
1340         We have a plan to extract InspectorAgent from InspectorController.
1341         InspectorAgent will be accessible only from InspectorController.
1342         As result we can simply made some methods public and remove long
1343         friends list.
1344
1345         https://bugs.webkit.org/show_bug.cgi?id=52806
1346
1347         * inspector/InjectedScriptHost.cpp:
1348         (WebCore::InjectedScriptHost::databaseForId):
1349         (WebCore::InjectedScriptHost::selectDatabase):
1350         (WebCore::InjectedScriptHost::selectDOMStorage):
1351         (WebCore::InjectedScriptHost::inspectorDOMAgent):
1352         (WebCore::InjectedScriptHost::frontend):
1353         * inspector/InspectorBrowserDebuggerAgent.cpp:
1354         (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
1355         (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
1356         (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
1357         (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
1358         (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
1359         (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
1360         (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
1361         (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
1362         * inspector/InspectorController.h:
1363         (WebCore::InspectorController::frontend):
1364         * inspector/InspectorInstrumentation.cpp:
1365         (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
1366         (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
1367         (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
1368         (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
1369         (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
1370         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
1371         (WebCore::InspectorInstrumentation::characterDataModifiedImpl):
1372         (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
1373         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
1374         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
1375         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
1376         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
1377         (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
1378         (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent):
1379         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
1380         (WebCore::InspectorInstrumentation::retrieveResourceAgent):
1381
1382 2011-01-19  Pavel Podivilov  <podivilov@chromium.org>
1383
1384         Reviewed by Yury Semikhatsky.
1385
1386         Web Inspector: implement JavaScriptBreakpointsSidebarPane based on events from debugger model.
1387         https://bugs.webkit.org/show_bug.cgi?id=52723
1388
1389         Extract all breakpoints-related presentation code from debugger model to JavaScriptBreakpointSidebarPane.
1390
1391         * inspector/front-end/Breakpoint.js:
1392         (WebInspector.Breakpoint):
1393         (WebInspector.Breakpoint.prototype.get data):
1394         (WebInspector.Breakpoint.prototype.remove):
1395         * inspector/front-end/BreakpointsSidebarPane.js:
1396         (WebInspector.JavaScriptBreakpointsSidebarPane):
1397         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
1398         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointRemoved):
1399         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointEnableChanged):
1400         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointItemCheckboxClicked):
1401         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._contextMenuEventFired):
1402         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._debuggerPaused):
1403         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._debuggerResumed):
1404         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._addListElement):
1405         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._removeListElement):
1406         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._projectChanged):
1407         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compare):
1408         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
1409         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setupBreakpointElement.didGetSourceLine):
1410         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setupBreakpointElement):
1411         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointIdForDebuggerPausedEvent):
1412         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setBreakpointEnabled):
1413         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._removeBreakpoint):
1414         (WebInspector.NativeBreakpointsSidebarPane):
1415         (WebInspector.XHRBreakpointsSidebarPane.prototype.addBreakpointItem):
1416         * inspector/front-end/DebuggerModel.js:
1417         (WebInspector.DebuggerModel.prototype.removeBreakpoint):
1418         (WebInspector.DebuggerModel.prototype.breakpointForId):
1419         (WebInspector.DebuggerModel.prototype._pausedScript):
1420         (WebInspector.DebuggerModel.prototype._resumedScript):
1421         * inspector/front-end/ScriptsPanel.js:
1422         (WebInspector.ScriptsPanel):
1423         * inspector/front-end/inspector.js:
1424
1425 2011-01-20  Dirk Schulze  <krit@webkit.org>
1426
1427         Reviewed by Andreas Kling.
1428
1429         SVG Pattern doesn't take the viewBox of a referenced Pattern
1430         https://bugs.webkit.org/show_bug.cgi?id=52804
1431         
1432         SVGPattern element didn't use the viewBox of another SVGPattern element, referenced
1433         by xlink:href. Modified PatternAttributes, to take the value of the viewBox of the
1434         SVGPattern element as well, if the attribute was set.
1435         This gets checked by a W3C SVG test case.        
1436
1437         Test: svg/W3C-SVG-1.1-SE/pservers-pattern-04-f.svg
1438
1439         * rendering/svg/RenderSVGResourcePattern.cpp:
1440         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
1441         * svg/PatternAttributes.h:
1442         (WebCore::PatternAttributes::PatternAttributes):
1443         (WebCore::PatternAttributes::viewBox):
1444         (WebCore::PatternAttributes::setViewBox):
1445         (WebCore::PatternAttributes::hasViewBox):
1446         * svg/SVGPatternElement.cpp:
1447         (WebCore::SVGPatternElement::collectPatternAttributes):
1448
1449 2011-01-19  Stephen White  <senorblanco@chromium.org>
1450
1451         [Re-land of r76159 with a compile fix for the Chromium linux shlib
1452         build.]
1453
1454         Reviewed by James Robinson.
1455
1456         Implement accelerated path drawing and clipping for the Canvas2D GPU
1457         path.
1458         https://bugs.webkit.org/show_bug.cgi?id=52627
1459         
1460         This is done with a simple curve interpolator and the GLU tesselator,
1461         which is good enough for a 3-5X speedup on
1462         http://ie.microsoft.com/testdrive/Performance/Galactic/Default.html.
1463
1464         Covered by canvas/philip/2d.path.clip.basic.html, and many, many more.
1465         All tests canvas/philip and fast/canvas paths pass with no
1466         regressions, although two have minor pixel differences which require
1467         rebaselining.
1468
1469         * WebCore.gyp/WebCore.gyp:
1470         Add internal_glu include path to chromium build.
1471         * WebCore.gypi:
1472         Add internal_glu files to chromium build.
1473         * html/canvas/CanvasRenderingContext2D.cpp:
1474         (WebCore::CanvasRenderingContext2D::reset):
1475         (WebCore::CanvasRenderingContext2D::platformLayer):
1476         Make CanvasRenderingContext2D more robust against failure to create
1477         a DrawingBuffer.
1478         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1479         (WebCore::DrawingBuffer::DrawingBuffer):
1480         As in DrawingBufferMac.cpp, call reset() from the constructor.
1481         Also initialize size to (-1, -1), so reset() doesn't early-out.
1482         Add initializers for depthBuffer and stencilBuffer, and remove
1483         multisampleDepthStencilBuffer.
1484         * platform/graphics/chromium/GLES2Canvas.cpp:
1485         Remove some unused #includes.
1486         (WebCore::GLES2Canvas::State::State):
1487         Add clipping state, and implement save/restore via the copy constructor.
1488         (WebCore::operator*):
1489         (WebCore::Quadratic::Quadratic):
1490         (WebCore::Quadratic::fromBezier):
1491         (WebCore::Quadratic::evaluate):
1492         Quadratic Bezier curve class.
1493         (WebCore::Cubic::Cubic):
1494         (WebCore::Cubic::fromBezier):
1495         (WebCore::Cubic::evaluate):
1496         Cubic Bezier curve class.
1497         (WebCore::GLES2Canvas::clearRect):
1498         Add clipping support to clearRect().
1499         (WebCore::GLES2Canvas::fillPath):
1500         Implement fillPath().
1501         (WebCore::GLES2Canvas::fillRect):
1502         Add clipping support to fillRect().
1503         (WebCore::GLES2Canvas::clipPath):
1504         Implement clipPath().
1505         (WebCore::GLES2Canvas::clipOut):
1506         Stub out clipOut() (not called by Canvas 2D).
1507         (WebCore::GLES2Canvas::restore):
1508         When restoring, draw any remaining clipping paths to the stencil buffer.
1509         (WebCore::GLES2Canvas::drawTexturedRect):
1510         Add clipping support.
1511         (WebCore::interpolateQuadratic):
1512         (WebCore::interpolateCubic):
1513         Simple curve interpolation, using the Cubic and Quadratic classes.
1514         (WebCore::PolygonData::PolygonData):
1515         A struct to hold the tesselation data for callbacks.
1516         (WebCore::beginData):
1517         (WebCore::edgeFlagData):
1518         (WebCore::vertexData):
1519         (WebCore::endData):
1520         (WebCore::combineData):
1521         internal_glu tesselation callbacks.
1522         (WebCore::GLES2Canvas::createVertexBufferFromPath):
1523         Build an interpolated, tesselated vertex buffer and element array buffer from a given path, suitable for filling.
1524         (WebCore::GLES2Canvas::beginStencilDraw):
1525         Enable stencilling, and disable draws to the color buffer.
1526         (WebCore::GLES2Canvas::applyClipping):
1527         If clipping is enabled, set the appropriate GL state.
1528         * platform/graphics/chromium/GLES2Canvas.h:
1529         Document the flavours of drawTexturedRect() a bit, so I don't get confused.
1530         * platform/graphics/gpu/DrawingBuffer.cpp:
1531         (WebCore::DrawingBuffer::clear):
1532         (WebCore::DrawingBuffer::createSecondaryBuffers):
1533         (WebCore::DrawingBuffer::resizeDepthStencil):
1534         (WebCore::DrawingBuffer::reset):
1535         * platform/graphics/gpu/DrawingBuffer.h:
1536         Unify m_multisampleDepthStencilBuffer with m_depthStencilBuffer. 
1537         Implement separate depth and stencil buffers for when
1538         OES_packed_depth_stencil is not available.  Refactor creation of
1539         multisampled and non-multisampled depth and stencil buffers into
1540         resizeDepthStencil().
1541         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
1542         (WebCore::SharedGraphicsContext3D::create):
1543         Turn on stencil, turn off depth, turn off antialiasing (for now).
1544         (WebCore::SharedGraphicsContext3D::enableStencil):
1545         * platform/graphics/gpu/SharedGraphicsContext3D.h:
1546         Implement stencil enable/disable.
1547         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
1548         (WebCore::DrawingBuffer::DrawingBuffer):
1549         Remove m_multisampleDepthStencilBuffer.  Set the size to (-1, -1)
1550         on creation, so reset() doesn't early-out.  Initialize m_depthBuffer
1551         and m_stencilBuffer.
1552         * platform/graphics/skia/GraphicsContextSkia.cpp:
1553         (WebCore::GraphicsContext::canvasClip):
1554         (WebCore::GraphicsContext::clipOut):
1555         (WebCore::GraphicsContext::clipPath):
1556         (WebCore::GraphicsContext::fillPath):
1557         Put in GPU hooks for path clipping, and path drawing.
1558         * platform/graphics/skia/PlatformContextSkia.cpp:
1559         (WebCore::PlatformContextSkia::canAccelerate):
1560         Don't check for clipping paths in canAccelerate() (since we can
1561         now accelerate them).
1562         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
1563         Don't do clipping when uploading software draws to hardware.
1564         * thirdparty/glu/README.webkit:
1565         * thirdparty/glu/gluos.h:
1566         #undef MIN and MAX, to fix warnings-as-errors in Chrome/Mac build.
1567         * thirdparty/glu/libtess/geom.c:
1568         * thirdparty/glu/libtess/priorityq.c:
1569         * thirdparty/glu/libtess/render.c:
1570         Use do{}while(0) instead of if(1)else construct in macro.
1571         * thirdparty/glu/libtess/sweep.c:
1572         (IsWindingInside):
1573         (DoneEdgeDict):
1574         Fix some warnings treated as errors for the Linux Release build.
1575
1576
1577 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
1578
1579         Web Inspector: move releaseObjectGroup to the new Runtime agent.
1580         https://bugs.webkit.org/show_bug.cgi?id=52803
1581         (accedentally landed as r76231)
1582
1583         * inspector/InspectorContorller.h:
1584         * inspector/InspectorContorller.cpp:
1585         * inspector/InspectorRuntimeAgent.h:
1586         * inspector/InspectorRuntimeAgent.cpp:
1587
1588 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
1589
1590         Not reviewed: build fix.
1591
1592         * inspector/InspectorState.h:
1593         (WebCore::InspectorState::setBoolean):
1594         (WebCore::InspectorState::setString):
1595         (WebCore::InspectorState::setLong):
1596
1597 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
1598
1599         Reviewed by Yury Semikhatsky.
1600
1601         Web Inspector: further simplify InspectorState.
1602         https://bugs.webkit.org/show_bug.cgi?id=52731
1603
1604         This change moves XHR logging flag into console agent,
1605         removes InspectorState pushing to the front-end.
1606
1607         * inspector/Inspector.idl:
1608         * inspector/InspectorConsoleAgent.cpp:
1609         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
1610         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
1611         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1612         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1613         (WebCore::InspectorConsoleAgent::addConsoleMessage):
1614         * inspector/InspectorConsoleAgent.h:
1615         * inspector/InspectorController.cpp:
1616         (WebCore::InspectorController::InspectorController):
1617         * inspector/InspectorController.h:
1618         (WebCore::InspectorController::state):
1619         (WebCore::InspectorController::settings):
1620         * inspector/InspectorState.cpp:
1621         (WebCore::InspectorState::InspectorState):
1622         (WebCore::InspectorState::registerBoolean):
1623         (WebCore::InspectorState::registerString):
1624         (WebCore::InspectorState::registerLong):
1625         (WebCore::InspectorState::registerObject):
1626         (WebCore::InspectorState::Property::create):
1627         * inspector/InspectorState.h:
1628         * inspector/front-end/ConsoleView.js:
1629         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1630         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
1631         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1632         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1633         * inspector/front-end/inspector.js:
1634
1635 2011-01-20  Csaba Osztrogonác  <ossy@webkit.org>
1636
1637         Unreviewed buildfix.
1638
1639         [Qt][V8] Remove unnecessary files after r76224.
1640
1641         * WebCore.pro:
1642
1643 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
1644
1645         Reviewed by Yury Semikhatsky.
1646
1647         Web Inspector: prepare for extracting InspectorAgent from InspectorController.
1648         https://bugs.webkit.org/show_bug.cgi?id=52797
1649
1650         * inspector/CodeGeneratorInspector.pm:
1651         * inspector/InspectorController.h:
1652         (WebCore::InspectorController::inspectorAgent):
1653         (WebCore::InspectorController::cssAgent):
1654         (WebCore::InspectorController::injectedScriptAgent):
1655         (WebCore::InspectorController::resourceAgent):
1656         (WebCore::InspectorController::runtimeAgent):
1657         (WebCore::InspectorController::timelineAgent):
1658         (WebCore::InspectorController::databaseAgent):
1659         (WebCore::InspectorController::domStorageAgent):
1660         (WebCore::InspectorController::fileSystemAgent):
1661         (WebCore::InspectorController::browserDebuggerAgent):
1662         (WebCore::InspectorController::debuggerAgent):
1663         (WebCore::InspectorController::profilerAgent):
1664         (WebCore::InspectorController::applicationCacheAgent):
1665
1666 2011-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1667
1668         Unreviewed, rolling out r76215.
1669         http://trac.webkit.org/changeset/76215
1670         https://bugs.webkit.org/show_bug.cgi?id=52799
1671
1672         Caused regressions in Chromium; morrita is going to look at it
1673         tomrorow (Requested by jorlow on #webkit).
1674
1675         * dom/TextEvent.h:
1676         * dom/TextEventInputType.h:
1677         * editing/CompositeEditCommand.cpp:
1678         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
1679         * editing/CompositeEditCommand.h:
1680         * editing/Editor.cpp:
1681         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1682         (WebCore::Editor::confirmComposition):
1683         (WebCore::Editor::setComposition):
1684         * editing/Editor.h:
1685         * editing/InsertTextCommand.cpp:
1686         (WebCore::InsertTextCommand::input):
1687         * editing/InsertTextCommand.h:
1688         * editing/TypingCommand.cpp:
1689         (WebCore::TypingCommand::TypingCommand):
1690         (WebCore::TypingCommand::insertText):
1691         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
1692         * editing/TypingCommand.h:
1693         (WebCore::TypingCommand::create):
1694
1695 2010-12-14  Yury Semikhatsky  <yurys@chromium.org>
1696
1697         Reviewed by Adam Barth.
1698
1699         [V8] Get rid of delayed exception reporting in V8ConsoleMessage.cpp
1700         https://bugs.webkit.org/show_bug.cgi?id=51044
1701
1702         * WebCore.gypi:
1703         * bindings/v8/V8ConsoleMessage.cpp: Removed.
1704         * bindings/v8/V8ConsoleMessage.h: Removed.
1705         * bindings/v8/V8DOMWindowShell.cpp:
1706         (WebCore::v8UncaughtExceptionHandler):
1707         (WebCore::reportUnsafeJavaScriptAccess):
1708         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1709         * bindings/v8/V8Proxy.cpp:
1710         (WebCore::addMessageToConsole):
1711         (WebCore::logInfo):
1712         (WebCore::V8Proxy::reportUnsafeAccessTo):
1713         (WebCore::V8Proxy::runScript):
1714         (WebCore::V8Proxy::callFunction):
1715         (WebCore::V8Proxy::newInstance):
1716         * bindings/v8/V8Proxy.h:
1717         * bindings/v8/WorkerContextExecutionProxy.cpp:
1718         * bindings/v8/specialization/V8BindingState.cpp:
1719         (WebCore::::immediatelyReportUnsafeAccessTo):
1720
1721 2011-01-19  MORITA Hajime  <morrita@google.com>
1722
1723         Reviewed by Eric Seidel.
1724
1725         ShadowElement::m_shadowParent should be removed
1726         https://bugs.webkit.org/show_bug.cgi?id=52558
1727
1728         No new tests. No behavioral change.
1729
1730         * rendering/ShadowElement.h:
1731         (WebCore::ShadowElement::ShadowElement):
1732
1733 2011-01-20  Hans Wennborg  <hans@chromium.org>
1734
1735         Reviewed by Jeremy Orlow.
1736
1737         IndexedDB: IDBObjectStore.get should fire onsuccess rather than onerror
1738         https://bugs.webkit.org/show_bug.cgi?id=52725
1739
1740         Let IDBObjectStore.get() fire the onsuccess handler with the value
1741         'undefined' for when an object does not exist in the store.
1742
1743         Update SerializedScriptValue to provide such an undefined value.
1744
1745         * bindings/v8/SerializedScriptValue.cpp:
1746         (WebCore::SerializedScriptValue::nullValue):
1747         (WebCore::SerializedScriptValue::undefinedValue):
1748         * bindings/v8/SerializedScriptValue.h:
1749         * storage/IDBObjectStoreBackendImpl.cpp:
1750         (WebCore::IDBObjectStoreBackendImpl::getInternal):
1751
1752 2010-12-27  Yury Semikhatsky  <yurys@chromium.org>
1753
1754         Reviewed by Pavel Feldman.
1755
1756         WebCore doesn't fire window.onerror event when uncaught JavaScript exceptions are thrown
1757         https://bugs.webkit.org/show_bug.cgi?id=8519
1758
1759         Uncaught exceptions are propagated to window.onerror hander if one is present.
1760         The handler is expected to be a function accepting three arguments: error message,
1761         resource url and line number where the exception occured.
1762
1763         It was decided to dispatch ErrorEvent to all listeners/handlers no matter if they
1764         were created in the same isolated world where the exception occured or not.
1765
1766         Tests: fast/events/window-onerror1.html
1767                fast/events/window-onerror10.html
1768                fast/events/window-onerror11.html
1769                fast/events/window-onerror12.html
1770                fast/events/window-onerror2.html
1771                fast/events/window-onerror3.html
1772                fast/events/window-onerror4.html
1773                fast/events/window-onerror5.html
1774                fast/events/window-onerror6.html
1775                fast/events/window-onerror7.html
1776                fast/events/window-onerror8.html
1777                fast/events/window-onerror9.html
1778                http/tests/security/window-onerror-exception-in-iframe.html
1779                userscripts/window-onerror-for-isolated-world-1.html
1780                userscripts/window-onerror-for-isolated-world-2.html
1781
1782         * Android.jscbindings.mk:
1783         * CMakeLists.txt:
1784         * GNUmakefile.am:
1785         * WebCore.gypi:
1786         * WebCore.order:
1787         * WebCore.pro:
1788         * WebCore.vcproj/WebCore.vcproj:
1789         * WebCore.xcodeproj/project.pbxproj:
1790         * bindings/js/JSBindingsAllInOne.cpp:
1791         * bindings/js/JSDOMBinding.cpp:
1792         (WebCore::reportException):
1793         * bindings/js/JSErrorHandler.cpp: Renamed from WebCore/bindings/js/JSWorkerContextErrorHandler.cpp.
1794         (WebCore::JSErrorHandler::JSErrorHandler):
1795         (WebCore::JSErrorHandler::~JSErrorHandler):
1796         (WebCore::JSErrorHandler::handleEvent):
1797         * bindings/js/JSErrorHandler.h: Copied from WebCore/bindings/js/JSWorkerContextErrorHandler.h.
1798         (WebCore::JSErrorHandler::create):
1799         (WebCore::createJSErrorHandler):
1800         * bindings/js/JSEventListener.h:
1801         * bindings/scripts/CodeGeneratorJS.pm:
1802         * bindings/scripts/CodeGeneratorV8.pm:
1803         * bindings/v8/V8ConsoleMessage.cpp:
1804         (WebCore::V8ConsoleMessage::dispatchNow):
1805         (WebCore::V8ConsoleMessage::handler): the method was changed to use generic WebCore exception
1806         reporting mechanism which is also used by JSC bindings.
1807         * bindings/v8/V8ConsoleMessage.h:
1808         * bindings/v8/V8EventListener.h:
1809         * bindings/v8/V8WindowErrorHandler.cpp: Renamed from WebCore/bindings/js/JSWorkerContextErrorHandler.h.
1810         (WebCore::V8WindowErrorHandler::V8WindowErrorHandler):
1811         (WebCore::V8WindowErrorHandler::callListenerFunction):
1812         * bindings/v8/V8WindowErrorHandler.h: Copied from WebCore/dom/ErrorEvent.cpp.
1813         (WebCore::V8WindowErrorHandler::create):
1814         * bindings/v8/WorkerContextExecutionProxy.cpp:
1815         (WebCore::v8MessageHandler):
1816         * bindings/v8/WorkerScriptController.cpp:
1817         (WebCore::WorkerScriptController::evaluate):
1818         * dom/Document.cpp:
1819         (WebCore::Document::errorEventTarget):
1820         (WebCore::Document::logExceptionToConsole):
1821         (WebCore::Document::addMessage):
1822         * dom/Document.h:
1823         * dom/ErrorEvent.cpp:
1824         * dom/ErrorEvent.h:
1825         * dom/Event.cpp:
1826         (WebCore::Event::isErrorEvent):
1827         * dom/Event.h:
1828         * dom/ScriptExecutionContext.cpp:
1829         (WebCore::ScriptExecutionContext::PendingException::PendingException):
1830         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
1831         (WebCore::ScriptExecutionContext::reportException): this method is not virtual anymore to
1832         ensure that error event dispatching algorithm is the same in WorkerContext and in Document.
1833         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
1834         * dom/ScriptExecutionContext.h:
1835         * websockets/WebSocket.cpp:
1836         (WebCore::WebSocket::connect):
1837         * websockets/WebSocketChannel.cpp:
1838         (WebCore::WebSocketChannel::didOpen):
1839         (WebCore::WebSocketChannel::didFail):
1840         (WebCore::WebSocketChannel::appendToBuffer):
1841         * websockets/WebSocketHandshake.cpp:
1842         (WebCore::WebSocketHandshake::readServerHandshake):
1843         (WebCore::WebSocketHandshake::readStatusLine):
1844         (WebCore::WebSocketHandshake::readHTTPHeaders):
1845         (WebCore::WebSocketHandshake::checkResponseHeaders):
1846         * workers/DefaultSharedWorkerRepository.cpp:
1847         (WebCore::postExceptionTask):
1848         (WebCore::postConsoleMessageTask):
1849         * workers/WorkerContext.cpp:
1850         (WebCore::WorkerContext::WorkerContext):
1851         (WebCore::WorkerContext::errorEventTarget):
1852         (WebCore::WorkerContext::logExceptionToConsole):
1853         (WebCore::WorkerContext::addMessage):
1854         * workers/WorkerContext.h:
1855         * workers/WorkerMessagingProxy.cpp:
1856         (WebCore::WorkerExceptionTask::performTask):
1857         (WebCore::postConsoleMessageTask):
1858         * xml/XMLHttpRequest.cpp:
1859         (WebCore::reportUnsafeUsage):
1860
1861 2011-01-19  MORITA Hajime  <morrita@google.com>
1862
1863         Reviewed by Ryosuke Niwa.
1864
1865         Space and tab characters "sent" by an input method give totally different results than typing them directly
1866         https://bugs.webkit.org/show_bug.cgi?id=5241
1867         
1868         * Introduced TextEvent::InputTypeComposition and TypingCommand::TextCompositionType to 
1869           distinguish text input which is originated by composition.
1870         * Generalized rebalanceWhitespaceAt() to rebalanceWhitespaceOnTextSubstring() to rebalancing 
1871           range of string on text node, instead of surrounding part of that.
1872
1873         Test: editing/inserting/insert-composition-whitespace.html
1874
1875         * dom/TextEvent.h:
1876         (WebCore::TextEvent::isComposition):
1877         * dom/TextEventInputType.h: Added TextEventInputComposition as a member of TextEvent::InputType
1878         * editing/CompositeEditCommand.cpp:
1879         (WebCore::containsOnlyWhitespace):
1880         (WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor):
1881         (WebCore::CompositeEditCommand::canRebalance):
1882         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
1883         (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Added: A generalized version of rebalanceWhitespaceAt(), which takes a range inside Text string.
1884         * editing/CompositeEditCommand.h:
1885         * editing/Editor.cpp:
1886         (WebCore::Editor::insertTextForConfirmedComposition): Added.
1887         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1888         (WebCore::Editor::confirmComposition): Now uses insertTextForConfirmedComposition().
1889         (WebCore::Editor::setComposition):
1890         * editing/Editor.h:
1891         * editing/InsertTextCommand.cpp:
1892         (WebCore::InsertTextCommand::input):
1893         * editing/InsertTextCommand.h:
1894         * editing/TypingCommand.cpp:
1895         (WebCore::TypingCommand::TypingCommand):
1896         (WebCore::TypingCommand::insertText):
1897         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
1898         * editing/TypingCommand.h: Added TypingCommand::m_compositionType and TypingCommand::TextCompositionType
1899         (WebCore::TypingCommand::setCompositionType): Added.
1900         (WebCore::TypingCommand::create):
1901
1902 2011-01-19  Dominic Cooney  <dominicc@google.com>
1903
1904         Reviewed by Kent Tamura.
1905
1906         Make <keygen> no longer appear to be a <select> element to script.
1907         https://bugs.webkit.org/show_bug.cgi?id=52557
1908
1909         The intent is to put <keygen> options into shadow DOM. This change
1910         takes the first step by hiding the <select> element from
1911         JavaScript.
1912
1913         Test: fast/dom/HTMLKeygenElement/keygen.html
1914
1915         * CMakeLists.txt: Adds new IDL-derived wrapper.
1916         * DerivedSources.cpp:
1917         * DerivedSources.make:
1918         * GNUmakefile.am:
1919         * WebCore.gypi:
1920         * WebCore.pri:
1921         * WebCore.vcproj/WebCore.vcproj:
1922         * WebCore.xcodeproj/project.pbxproj:
1923         * bindings/gobject/GNUmakefile.am:
1924         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
1925         (WebKit::createKeygenWrapper):
1926         (WebKit::createHTMLElementWrapper):
1927         * bindings/objc/DOM.mm:
1928         (WebCore::createElementClassMap): Keygen no longer DOMHTMLSelectElement
1929         * html/HTMLKeygenElement.h:
1930         (WebCore::HTMLKeygenElement::willValidate): Now public.
1931         * html/HTMLKeygenElement.idl: Added.
1932         * html/HTMLTagNames.in: Keygen's wrapper is HTMLKeygenElement.
1933         * page/DOMWindow.idl: Add HTMLKeygenElement constructor.
1934
1935 2011-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1936
1937         Unreviewed, rolling out r76203.
1938         http://trac.webkit.org/changeset/76203
1939         https://bugs.webkit.org/show_bug.cgi?id=52784
1940
1941         Broke Win compile on Chromium bots (Requested by dimich on
1942         #webkit).
1943
1944         * WebCore.gypi:
1945         * bindings/v8/V8DOMWindowShell.cpp:
1946         (WebCore::reportFatalErrorInV8):
1947         * page/PageGroup.cpp:
1948         (WebCore::PageGroup::isLinkVisited):
1949         * platform/android/PlatformBridge.h:
1950         * platform/audio/chromium/AudioBusChromium.cpp:
1951         (WebCore::createBusFromInMemoryAudioFile):
1952         * platform/chromium/ChromiumBridge.h: Added.
1953         * platform/chromium/ChromiumDataObjectLegacy.cpp:
1954         (WebCore::ChromiumDataObjectLegacy::getData):
1955         * platform/chromium/DragDataChromium.cpp:
1956         (WebCore::DragData::asURL):
1957         * platform/chromium/FileSystemChromium.cpp:
1958         (WebCore::deleteFile):
1959         (WebCore::deleteEmptyDirectory):
1960         (WebCore::getFileSize):
1961         (WebCore::getFileModificationTime):
1962         (WebCore::revealFolderInOS):
1963         (WebCore::directoryName):
1964         (WebCore::pathByAppendingComponent):
1965         (WebCore::makeAllDirectories):
1966         (WebCore::fileExists):
1967         (WebCore::openFile):
1968         (WebCore::closeFile):
1969         (WebCore::seekFile):
1970         (WebCore::truncateFile):
1971         (WebCore::readFromFile):
1972         (WebCore::writeToFile):
1973         * platform/chromium/LanguageChromium.cpp:
1974         (WebCore::platformDefaultLanguage):
1975         * platform/chromium/LinkHashChromium.cpp:
1976         (WebCore::visitedLinkHash):
1977         * platform/chromium/MIMETypeRegistryChromium.cpp:
1978         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
1979         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1980         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
1981         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
1982         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
1983         * platform/chromium/PasteboardChromium.cpp:
1984         (WebCore::Pasteboard::writeSelection):
1985         (WebCore::Pasteboard::writePlainText):
1986         (WebCore::Pasteboard::writeURL):
1987         (WebCore::Pasteboard::writeImage):
1988         (WebCore::Pasteboard::canSmartReplace):
1989         (WebCore::Pasteboard::plainText):
1990         (WebCore::Pasteboard::documentFragment):
1991         * platform/chromium/PlatformBridge.h:
1992         * platform/chromium/PlatformScreenChromium.cpp:
1993         (WebCore::screenDepth):
1994         (WebCore::screenDepthPerComponent):
1995         (WebCore::screenIsMonochrome):
1996         (WebCore::screenRect):
1997         (WebCore::screenAvailableRect):
1998         * platform/chromium/ReadableDataObject.cpp:
1999         (WebCore::ReadableDataObject::getData):
2000         (WebCore::ReadableDataObject::urlTitle):
2001         (WebCore::ReadableDataObject::htmlBaseUrl):
2002         (WebCore::ReadableDataObject::filenames):
2003         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
2004         * platform/chromium/SSLKeyGeneratorChromium.cpp:
2005         (WebCore::signedPublicKeyAndChallengeString):
2006         * platform/chromium/ScrollbarThemeChromium.cpp:
2007         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
2008         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
2009         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
2010         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
2011         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
2012         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
2013         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
2014         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2015         (WebCore::scrollbarStateToThemeState):
2016         (WebCore::ScrollbarThemeChromiumMac::paint):
2017         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
2018         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
2019         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
2020         (WebCore::ScrollbarThemeChromiumWin::paintButton):
2021         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
2022         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
2023         * platform/chromium/SharedTimerChromium.cpp:
2024         (WebCore::setSharedTimerFiredFunction):
2025         (WebCore::setSharedTimerFireTime):
2026         (WebCore::stopSharedTimer):
2027         * platform/chromium/SuddenTerminationChromium.cpp:
2028         (WebCore::disableSuddenTermination):
2029         (WebCore::enableSuddenTermination):
2030         * platform/chromium/SystemTimeChromium.cpp:
2031         (WebCore::currentTime):
2032         * platform/chromium/WritableDataObject.cpp:
2033         (WebCore::WritableDataObject::setData):
2034         * platform/graphics/chromium/CrossProcessFontLoading.mm:
2035         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2036         (WebCore::fontContainsCharacter):
2037         (WebCore::FillLogFont):
2038         * platform/graphics/chromium/FontCacheLinux.cpp:
2039         (WebCore::FontCache::getFontDataForCharacters):
2040         * platform/graphics/chromium/FontChromiumWin.cpp:
2041         (WebCore::Font::drawGlyphs):
2042         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2043         (WebCore::FontPlatformData::scriptFontProperties):
2044         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2045         (WebCore::FontPlatformData::querySystemForRenderStyle):
2046         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
2047         (WebCore::fillBMPGlyphs):
2048         * platform/graphics/chromium/ImageChromium.cpp:
2049         (WebCore::Image::loadPlatformResource):
2050         * platform/graphics/chromium/ImageChromiumMac.mm:
2051         (WebCore::Image::loadPlatformResource):
2052         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2053         (WebCore::SimpleFontData::platformInit):
2054         (WebCore::SimpleFontData::determinePitch):
2055         (WebCore::SimpleFontData::platformWidthForGlyph):
2056         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
2057         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
2058         * platform/graphics/skia/FontCustomPlatformData.cpp:
2059         (WebCore::FontCustomPlatformData::fontPlatformData):
2060         * platform/network/chromium/CookieJarChromium.cpp:
2061         (WebCore::setCookies):
2062         (WebCore::cookies):
2063         (WebCore::cookieRequestHeaderFieldValue):
2064         (WebCore::cookiesEnabled):
2065         (WebCore::getRawCookies):
2066         (WebCore::deleteCookie):
2067         * platform/network/chromium/DNSChromium.cpp:
2068         (WebCore::prefetchDNS):
2069         * platform/qt/PlatformBridge.h:
2070         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
2071         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
2072         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
2073         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
2074         (chromiumOpen):
2075         (chromiumDelete):
2076         (chromiumAccess):
2077         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
2078         * plugins/chromium/PluginDataChromium.cpp:
2079         (WebCore::PluginCache::plugins):
2080         * rendering/RenderThemeChromiumMac.mm:
2081         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
2082         * rendering/RenderThemeChromiumSkia.cpp:
2083         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
2084         * rendering/RenderThemeChromiumWin.cpp:
2085         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
2086         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
2087         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
2088         (WebCore::RenderThemeChromiumWin::systemColor):
2089         (WebCore::RenderThemeChromiumWin::paintButton):
2090         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2091         (WebCore::menuListButtonWidth):
2092         (WebCore::RenderThemeChromiumWin::paintMenuList):
2093         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
2094         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
2095         (WebCore::RenderThemeChromiumWin::paintProgressBar):
2096         * storage/chromium/IDBFactoryBackendInterface.cpp:
2097         (WebCore::IDBFactoryBackendInterface::create):
2098         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
2099         * storage/chromium/IDBKeyPathBackendImpl.cpp:
2100         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2101
2102 2011-01-19  Helder Correia  <helder@sencha.com>
2103
2104         Reviewed by Andreas Kling.
2105
2106         [Qt] GraphicsContext::strokePath() paints solid shadows with incorrect alpha
2107         https://bugs.webkit.org/show_bug.cgi?id=52705
2108
2109         This is related to bug 52611. The shadow color alpha must be multiplied
2110         by the context pen alpha. Fixing this results in correct behavior for
2111         Canvas path stroke() and strokeRect() [which relies on stroke()].
2112
2113         Tests: fast/canvas/canvas-strokePath-alpha-shadow.html
2114                fast/canvas/canvas-strokeRect-alpha-shadow.html
2115
2116         * platform/graphics/qt/GraphicsContextQt.cpp:
2117         (WebCore::GraphicsContext::strokePath):
2118
2119 2011-01-19  Darin Fisher  <darin@chromium.org>
2120
2121         Reviewed by Mihai Parparita.
2122
2123         Re-initialize the HistoryItem fully when navigating to a HistoryItem,
2124         or replacing a HistoryItem, results in a different URL.
2125
2126         https://bugs.webkit.org/show_bug.cgi?id=49654
2127
2128         This patch also forces all HistoryItems to record the post-redirect
2129         URL.  Previously, frames would remember the pre-redirect URL.  This is
2130         problematic since other members of the HistoryItem correspond to the
2131         post-redirect URL.
2132
2133         Tests: fast/history/history-replace-updates-current-item.html
2134                http/tests/navigation/redirect-on-back-updates-history-item.html
2135                http/tests/navigation/redirect-on-reload-updates-history-item.html
2136
2137         * history/HistoryItem.cpp:
2138         (WebCore::HistoryItem::HistoryItem):
2139         (WebCore::HistoryItem::reset):
2140         * history/HistoryItem.h:
2141         * loader/HistoryController.cpp:
2142         (WebCore::HistoryController::updateForBackForwardNavigation):
2143         (WebCore::HistoryController::updateForReload):
2144         (WebCore::HistoryController::updateForStandardLoad):
2145         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
2146         (WebCore::HistoryController::initializeItem):
2147         (WebCore::HistoryController::createItem):
2148         (WebCore::HistoryController::createItemTree):
2149         (WebCore::HistoryController::updateCurrentItem):
2150         * loader/HistoryController.h:
2151
2152 2011-01-19  Adam Klein  <adamk@chromium.org>
2153
2154         Reviewed by Darin Fisher.
2155
2156         [chromium] Rename ChromiumBridge to PlatformBridge
2157         https://bugs.webkit.org/show_bug.cgi?id=52471
2158
2159         No tests added as this is a rename; no change in behavior.
2160
2161         * WebCore.gypi:
2162         * bindings/v8/V8DOMWindowShell.cpp:
2163         (WebCore::reportFatalErrorInV8):
2164         * page/PageGroup.cpp:
2165         (WebCore::PageGroup::isLinkVisited):
2166         * platform/android/PlatformBridge.h:
2167         * platform/audio/chromium/AudioBusChromium.cpp:
2168         (WebCore::createBusFromInMemoryAudioFile):
2169         * platform/chromium/ChromiumBridge.h: Removed.
2170         * platform/chromium/ChromiumDataObjectLegacy.cpp:
2171         (WebCore::ChromiumDataObjectLegacy::getData):
2172         * platform/chromium/DragDataChromium.cpp:
2173         (WebCore::DragData::asURL):
2174         * platform/chromium/FileSystemChromium.cpp:
2175         (WebCore::deleteFile):
2176         (WebCore::deleteEmptyDirectory):
2177         (WebCore::getFileSize):
2178         (WebCore::getFileModificationTime):
2179         (WebCore::revealFolderInOS):
2180         (WebCore::directoryName):
2181         (WebCore::pathByAppendingComponent):
2182         (WebCore::makeAllDirectories):
2183         (WebCore::fileExists):
2184         (WebCore::openFile):
2185         (WebCore::closeFile):
2186         (WebCore::seekFile):
2187         (WebCore::truncateFile):
2188         (WebCore::readFromFile):
2189         (WebCore::writeToFile):
2190         * platform/chromium/LanguageChromium.cpp:
2191         (WebCore::platformDefaultLanguage):
2192         * platform/chromium/LinkHashChromium.cpp:
2193         (WebCore::visitedLinkHash):
2194         * platform/chromium/MIMETypeRegistryChromium.cpp:
2195         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
2196         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
2197         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
2198         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
2199         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
2200         * platform/chromium/PasteboardChromium.cpp:
2201         (WebCore::Pasteboard::writeSelection):
2202         (WebCore::Pasteboard::writePlainText):
2203         (WebCore::Pasteboard::writeURL):
2204         (WebCore::Pasteboard::writeImage):
2205         (WebCore::Pasteboard::canSmartReplace):
2206         (WebCore::Pasteboard::plainText):
2207         (WebCore::Pasteboard::documentFragment):
2208         * platform/chromium/PlatformBridge.h:
2209         * platform/chromium/PlatformScreenChromium.cpp:
2210         (WebCore::screenDepth):
2211         (WebCore::screenDepthPerComponent):
2212         (WebCore::screenIsMonochrome):
2213         (WebCore::screenRect):
2214         (WebCore::screenAvailableRect):
2215         * platform/chromium/ReadableDataObject.cpp:
2216         (WebCore::ReadableDataObject::getData):
2217         (WebCore::ReadableDataObject::urlTitle):
2218         (WebCore::ReadableDataObject::htmlBaseUrl):
2219         (WebCore::ReadableDataObject::filenames):
2220         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
2221         * platform/chromium/SSLKeyGeneratorChromium.cpp:
2222         (WebCore::signedPublicKeyAndChallengeString):
2223         * platform/chromium/ScrollbarThemeChromium.cpp:
2224         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
2225         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
2226         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
2227         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
2228         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
2229         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
2230         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
2231         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2232         (WebCore::scrollbarStateToThemeState):
2233         (WebCore::ScrollbarThemeChromiumMac::paint):
2234         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
2235         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
2236         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
2237         (WebCore::ScrollbarThemeChromiumWin::paintButton):
2238         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
2239         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
2240         * platform/chromium/SharedTimerChromium.cpp:
2241         (WebCore::setSharedTimerFiredFunction):
2242         (WebCore::setSharedTimerFireTime):
2243         (WebCore::stopSharedTimer):
2244         * platform/chromium/SuddenTerminationChromium.cpp:
2245         (WebCore::disableSuddenTermination):
2246         (WebCore::enableSuddenTermination):
2247         * platform/chromium/SystemTimeChromium.cpp:
2248         (WebCore::currentTime):
2249         * platform/chromium/WritableDataObject.cpp:
2250         (WebCore::WritableDataObject::setData):
2251         * platform/graphics/chromium/CrossProcessFontLoading.mm:
2252         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2253         (WebCore::fontContainsCharacter):
2254         (WebCore::FillLogFont):
2255         * platform/graphics/chromium/FontCacheLinux.cpp:
2256         (WebCore::FontCache::getFontDataForCharacters):
2257         * platform/graphics/chromium/FontChromiumWin.cpp:
2258         (WebCore::Font::drawGlyphs):
2259         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2260         (WebCore::FontPlatformData::scriptFontProperties):
2261         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2262         (WebCore::FontPlatformData::querySystemForRenderStyle):
2263         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
2264         (WebCore::fillBMPGlyphs):
2265         * platform/graphics/chromium/ImageChromium.cpp:
2266         (WebCore::Image::loadPlatformResource):
2267         * platform/graphics/chromium/ImageChromiumMac.mm:
2268         (WebCore::Image::loadPlatformResource):
2269         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2270         (WebCore::SimpleFontData::platformInit):
2271         (WebCore::SimpleFontData::determinePitch):
2272         (WebCore::SimpleFontData::platformWidthForGlyph):
2273         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
2274         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
2275         * platform/graphics/skia/FontCustomPlatformData.cpp:
2276         (WebCore::FontCustomPlatformData::fontPlatformData):
2277         * platform/network/chromium/CookieJarChromium.cpp:
2278         (WebCore::setCookies):
2279         (WebCore::cookies):
2280         (WebCore::cookieRequestHeaderFieldValue):
2281         (WebCore::cookiesEnabled):
2282         (WebCore::getRawCookies):
2283         (WebCore::deleteCookie):
2284         * platform/network/chromium/DNSChromium.cpp:
2285         (WebCore::prefetchDNS):
2286         * platform/qt/PlatformBridge.h:
2287         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
2288         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
2289         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
2290         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
2291         (chromiumOpen):
2292         (chromiumDelete):
2293         (chromiumAccess):
2294         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
2295         * plugins/chromium/PluginDataChromium.cpp:
2296         (WebCore::PluginCache::plugins):
2297         * rendering/RenderThemeChromiumMac.mm:
2298         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
2299         * rendering/RenderThemeChromiumSkia.cpp:
2300         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
2301         * rendering/RenderThemeChromiumWin.cpp:
2302         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
2303         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
2304         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
2305         (WebCore::RenderThemeChromiumWin::systemColor):
2306         (WebCore::RenderThemeChromiumWin::paintButton):
2307         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2308         (WebCore::menuListButtonWidth):
2309         (WebCore::RenderThemeChromiumWin::paintMenuList):
2310         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
2311         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
2312         (WebCore::RenderThemeChromiumWin::paintProgressBar):
2313         * storage/chromium/IDBFactoryBackendInterface.cpp:
2314         (WebCore::IDBFactoryBackendInterface::create):
2315         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
2316         * storage/chromium/IDBKeyPathBackendImpl.cpp:
2317         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2318
2319 2011-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2320
2321         Unreviewed, rolling out r76187.
2322         http://trac.webkit.org/changeset/76187
2323         https://bugs.webkit.org/show_bug.cgi?id=52778
2324
2325         Broke caret-showing tests on SnowLeopard and Chromium
2326         (Requested by dimich on #webkit).
2327
2328         * rendering/RenderText.cpp:
2329         (WebCore::RenderText::localCaretRect):
2330
2331 2011-01-19  Yuzo Fujishima  <yuzo@google.com>
2332
2333         Reviewed by Kent Tamura.
2334
2335         Fix for Bug 52279 - WebCore::RenderBlock::updateFirstLetter crashes for anonymous blocks
2336         https://bugs.webkit.org/show_bug.cgi?id=52279
2337
2338         In constructing text fragments to handle first-letter rule, first add
2339         the text for the non-first letters and then remove the original text,
2340         rather than the other way around. Otherwise, the text can be added to
2341         an anoymous block that is different from the original one. This breaks
2342         the assumption that a first letter render object has a non-null sibling
2343         for the non-first letters and causes a crash.
2344
2345         Test: fast/css/first-letter-anonymous-block-crash.html
2346
2347         * rendering/RenderBlock.cpp:
2348         (WebCore::RenderBlock::updateFirstLetter):
2349
2350 2011-01-19  James Robinson  <jamesr@chromium.org>
2351
2352         Unreviewed, rolling out r76194.
2353         http://trac.webkit.org/changeset/76194
2354         https://bugs.webkit.org/show_bug.cgi?id=51218
2355
2356         Caused mysterious compile failure on the chromium win
2357         build.webkit.org bots
2358
2359         * WebCore.gypi:
2360         * dom/Document.cpp:
2361         (WebCore::Document::Document):
2362         * dom/Document.h:
2363         * dom/RequestAnimationFrameCallback.h: Removed.
2364         * dom/RequestAnimationFrameCallback.idl: Removed.
2365         * loader/EmptyClients.h:
2366         * page/Chrome.cpp:
2367         * page/Chrome.h:
2368         * page/ChromeClient.h:
2369         * page/DOMWindow.cpp:
2370         * page/DOMWindow.h:
2371         * page/DOMWindow.idl:
2372         * page/FrameView.cpp:
2373         * page/FrameView.h:
2374         * platform/HostWindow.h:
2375
2376 2011-01-19  Simon Fraser  <simon.fraser@apple.com>
2377
2378         Reviewed by Sam Weinig.
2379
2380         GraphicsLayers in subframes can get sync'd multiple times
2381         https://bugs.webkit.org/show_bug.cgi?id=52489
2382
2383         Some cleanup that will work towards fixing this bug.
2384         
2385         Tested by existing iframe compositing tests.
2386
2387         * WebCore.exp.in: syncCompositingStateRecursive()
2388         was renamed to syncCompositingStateIncludingSubframes().
2389
2390         * page/FrameView.h:
2391         * page/FrameView.cpp:
2392         (WebCore::FrameView::syncCompositingStateForThisFrame): Some
2393         code cleanup: do all the word we need to do for this frame,
2394         including the needsLayout() check.
2395         (WebCore::FrameView::syncCompositingStateIncludingSubframes):
2396         This is no longer recursive; instead, it iterates over descendant
2397         frames via the frame tree, calling syncCompositingStateForThisFrame()
2398         on each Frame's view.
2399
2400         * rendering/RenderLayerCompositor.h:
2401         (WebCore::RenderLayerCompositor::isFlushingLayers): Getter for the flag.
2402         * rendering/RenderLayerCompositor.cpp: 
2403         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2404         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Maintain
2405         a flag to say if we're flushing, which allows us to assert on re-entrant flushes.
2406         (WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers):
2407         Add the ability to get the rootmost compositor that is in the middle
2408         of a flush.
2409
2410 2011-01-19  James Robinson  <jamesr@chromium.org>
2411
2412         Reviewed by Darin Fisher.
2413
2414         Implement mozilla's requestAnimationFrame API
2415         https://bugs.webkit.org/show_bug.cgi?id=51218
2416
2417         This implements mozilla's proposed requestAnimationFrame API.  The idea with this API is that
2418         an author driving an animation from script could use window.requestAnimationFrame(callback)
2419         instead of window.setTimeout(callback, 0) to schedule their update logic and let the browser
2420         decide when to update the animations.  This avoids doing unnecessary work when the page content
2421         is offscreen or is being displayed at a different framerate than what the page author expects.
2422
2423         Mozilla's proposal is here: https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame
2424         This implements window.mozRequestAnimationFrame as window.webkitRequestAnimationFrame with the
2425         following changes:
2426         *) Only the callback syntax is supported, there is no before paint event
2427         *) webkitRequestAnimationFrame supports a second parameter Element to let the author indicate
2428             what content they intend to animate.  That way if the page is being displayed but the element
2429             in question is offscreen, we can avoid invoking the callback.
2430         *) No timestamp is provided to the caller and there is no window.animationStartTime property
2431             (see https://bugs.webkit.org/show_bug.cgi?id=51952 for discussion of this property)
2432         *) window.webkitRequestAnimationFrame returns a numerical id that can be used to cancel the callback
2433             using window.cancelWebkitRequestAnimationFrame, to parallel window.setTimeout()/window.clearTime().
2434
2435         The implementation depends on the embedder scheduling the callbacks since the callback invocation
2436         depends on the page's visibility and the embedder's paint scheduling, neither of which are exposed
2437         to WebCore.  The expectation for the embedder is that at some point Chrome::scheduleAnimation() is
2438         called FrameView::serviceScriptedAnimations() should be called for the associated Page's main frame.
2439         Ideally serviceScriptedAnimations() would be called prior to rendering - although in practice the
2440         embedder has to rate limit callbacks and may not be able to tie the callback directly to the
2441         rendering loop.
2442
2443         Tests: fast/animation/request-animation-frame-cancel.html
2444                fast/animation/request-animation-frame-cancel2.html
2445                fast/animation/request-animation-frame-display.html
2446                fast/animation/request-animation-frame-within-callback.html
2447                fast/animation/request-animation-frame.html
2448
2449         * WebCore.gypi:
2450         * dom/Document.cpp:
2451         (WebCore::Document::Document):
2452         (WebCore::Document::webkitRequestAnimationFrame):
2453         (WebCore::Document::webkitCancelRequestAnimationFrame):
2454         (WebCore::Document::serviceScriptedAnimations):
2455         * dom/Document.h:
2456         * dom/RequestAnimationFrameCallback.h: Added.
2457         (WebCore::RequestAnimationFrameCallback::~RequestAnimationFrameCallback):
2458         * dom/RequestAnimationFrameCallback.idl: Added.
2459         * loader/EmptyClients.h:
2460         (WebCore::EmptyChromeClient::scheduleAnimation):
2461         * page/Chrome.cpp:
2462         (WebCore::Chrome::scheduleAnimation):
2463         * page/Chrome.h:
2464         * page/ChromeClient.h:
2465         * page/DOMWindow.cpp:
2466         (WebCore::DOMWindow::webkitRequestAnimationFrame):
2467         (WebCore::DOMWindow::webkitCancelRequestAnimationFrame):
2468         * page/DOMWindow.h:
2469         * page/DOMWindow.idl:
2470         * page/FrameView.cpp:
2471         (WebCore::FrameView::scheduleAnimation):
2472         (WebCore::FrameView::serviceScriptedAnimations):
2473         * page/FrameView.h:
2474         * platform/HostWindow.h:
2475
2476 2011-01-13  Martin Robinson  <mrobinson@igalia.com>
2477
2478         Reviewed by Daniel Bates.
2479
2480         [GTK] Move progress bar painting out of gtk2drawing.c
2481         https://bugs.webkit.org/show_bug.cgi?id=52385
2482
2483         Move progress bar painting to RenderThemeGtk2 and share some animation
2484         logic between the GTK+ 2.x and GTK+ 3.x port.
2485
2486         No new tests. This should not change functionality.
2487
2488         * platform/gtk/RenderThemeGtk.cpp:
2489         (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar): Moved from RenderThemeGtk3.
2490         (WebCore::RenderThemeGtk::animationDurationForProgressBar): Ditto.
2491         (WebCore::RenderThemeGtk::calculateProgressRect): Calculate the proper rectangle for the
2492         progress indicator given the rect for the maximum size of the indicator.
2493         * platform/gtk/RenderThemeGtk.h: Added calculateProgressRect declaration and
2494         a new widget member for GTK+ 2.x
2495         * platform/gtk/RenderThemeGtk2.cpp:
2496         (WebCore::RenderThemeGtk::platformInit): Added initialization for the new widget member.
2497         (WebCore::RenderThemeGtk::paintProgressBar): Paint the progress bar manually instead of
2498         calling the old Mozilla code.
2499         (WebCore::RenderThemeGtk::gtkProgressBar): Added.
2500         * platform/gtk/RenderThemeGtk3.cpp:
2501         (WebCore::RenderThemeGtk::paintProgressBar): Call calculateProgressRect now to get
2502         the area of the progress indicator.
2503         * platform/gtk/gtk2drawing.c: Remove unused code.
2504         (moz_gtk_get_widget_border):
2505         (moz_gtk_widget_paint):
2506         * platform/gtk/gtkdrawing.h: Ditto.
2507
2508 2011-01-19  Dmitry Titov  <dimich@chromium.org>
2509
2510         [Chromium] Not reviewed, reverts the following changes:
2511         http://trac.webkit.org/changeset/76164 (build fix)
2512         http://trac.webkit.org/changeset/76159 (main change)
2513
2514         The change broke Chromium Linux-shlib build.
2515
2516         Original issue:
2517         Accelerated canvas2D has bad clipping performance.
2518         https://bugs.webkit.org/show_bug.cgi?id=52627
2519
2520         * WebCore.gyp/WebCore.gyp:
2521         * WebCore.gypi:
2522         * html/canvas/CanvasRenderingContext2D.cpp:
2523         (WebCore::CanvasRenderingContext2D::reset):
2524         (WebCore::CanvasRenderingContext2D::platformLayer):
2525         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2526         (WebCore::DrawingBuffer::DrawingBuffer):
2527         * platform/graphics/chromium/GLES2Canvas.cpp:
2528         (WebCore::GLES2Canvas::State::State):
2529         (WebCore::GLES2Canvas::clearRect):
2530         (WebCore::GLES2Canvas::fillRect):
2531         (WebCore::GLES2Canvas::restore):
2532         (WebCore::GLES2Canvas::drawTexturedRect):
2533         * platform/graphics/chromium/GLES2Canvas.h:
2534         * platform/graphics/gpu/DrawingBuffer.cpp:
2535         (WebCore::DrawingBuffer::clear):
2536         (WebCore::DrawingBuffer::createSecondaryBuffers):
2537         (WebCore::DrawingBuffer::reset):
2538         * platform/graphics/gpu/DrawingBuffer.h:
2539         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
2540         (WebCore::SharedGraphicsContext3D::create):
2541         * platform/graphics/gpu/SharedGraphicsContext3D.h:
2542         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
2543         (WebCore::DrawingBuffer::DrawingBuffer):
2544         * platform/graphics/skia/GraphicsContextSkia.cpp:
2545         (WebCore::GraphicsContext::canvasClip):
2546         (WebCore::GraphicsContext::clipOut):
2547         (WebCore::GraphicsContext::clipPath):
2548         (WebCore::GraphicsContext::fillPath):
2549         * platform/graphics/skia/PlatformContextSkia.cpp:
2550         (WebCore::PlatformContextSkia::canAccelerate):
2551         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
2552         * thirdparty/glu/README.webkit:
2553         * thirdparty/glu/gluos.h:
2554         * thirdparty/glu/libtess/geom.c:
2555         * thirdparty/glu/libtess/priorityq.c:
2556         * thirdparty/glu/libtess/render.c:
2557         * thirdparty/glu/libtess/sweep.c:
2558         (IsWindingInside):
2559         (DoneEdgeDict):
2560
2561 2011-01-19  Levi Weintraub  <leviw@google.com>
2562
2563         Reviewed by Darin Adler.
2564
2565         Re-committing this with the proper expected results.
2566
2567         Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
2568         logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
2569         resulted in the caret being placed incorrectly in overflowing editable IFrame content.
2570
2571         Long lines in non-white-space-pre editable documents show cursor in wrong place
2572         https://bugs.webkit.org/show_bug.cgi?id=48132
2573
2574         Test: editing/selection/caret-painting-in-overflowing-autowrap-content.html
2575
2576         * rendering/RenderText.cpp:
2577         (WebCore::RenderText::localCaretRect):
2578
2579 2011-01-18 MORITA Hajime <morrita@google.com>
2580
2581         Reviewed by David Levin.
2582
2583         ElementRareData::m_shadowRoot should not be RefPtr.
2584         https://bugs.webkit.org/show_bug.cgi?id=51914
2585
2586         Makes ElementRareData::m_shadowRoot a raw pointer because
2587         ElementRareData::m_shadowRoot should be like a
2588         ContaineNode::m_firstChild, which is also a raw pointer.
2589         pointer. Which also means that both the shadow root and the shadow
2590         host reference each other as a parent-and-child relationship, via
2591         a raw pointer.
2592         
2593         Note that it is safe not to manipulate the ref-count of
2594         m_shadowRoot because Node::m_parent of the shadow root points its
2595         shadow host, and the object isn't deleted even if the refcount is
2596         zero, as long as the node has non-null m_parent. (See TreeShared.)
2597         
2598         The shadow root node is finally destroyed inside
2599         removeShadowRoot(), where we store the root node into a local
2600         RefPtr, then make the node's m_parent null, which results the
2601         destroy the node, at the end of the function, by RefPtr::~RefPtr.
2602         
2603         No new tests. No behavioral change.
2604
2605         * dom/Element.cpp:
2606         (WebCore::Element::~Element):
2607         (WebCore::Element::shadowRoot):
2608         (WebCore::Element::setShadowRoot):
2609         (WebCore::Element::removeShadowRoot):
2610         * dom/ElementRareData.h:
2611         (WebCore::ElementRareData::ElementRareData):
2612         (WebCore::ElementRareData::~ElementRareData):
2613
2614 2011-01-12  Martin Robinson  <mrobinson@igalia.com>
2615
2616         Reviewed by Gustavo Noronha Silva.
2617
2618         [GTK] Move text field painting out of gtk2drawing.c
2619         https://bugs.webkit.org/show_bug.cgi?id=52327
2620
2621         No new tests. This should not change behavior.
2622
2623         * platform/gtk/RenderThemeGtk2.cpp:
2624         (WebCore::RenderThemeGtk::paintButton): Use the setWidgetHasFocus helper.
2625         (WebCore::RenderThemeGtk::paintTextField): Do this manually now instead
2626         of calling into the Mozilla code.
2627         * platform/gtk/WidgetRenderingContext.cpp: Added a couple more wrappers
2628         for GTK+ theme functions.
2629         (WebCore::WidgetRenderingContext::gtkPaintFlatBox):
2630         (WebCore::WidgetRenderingContext::gtkPaintShadow):
2631         * platform/gtk/WidgetRenderingContext.h: Added new method declarations.
2632         * platform/gtk/gtk2drawing.c: Remove unused code.
2633         (moz_gtk_get_widget_border):
2634         (moz_gtk_widget_paint):
2635         * platform/gtk/gtkdrawing.h:
2636
2637 2011-01-19  Antti Koivisto  <antti@apple.com>
2638
2639         Reviewed by Oliver Hunt.
2640
2641         Cache function offsets to speed up javascript parsing
2642         https://bugs.webkit.org/show_bug.cgi?id=52622
2643         
2644         Use cache to save function offsets and some other info.
2645         This avoids quite a bit of work when reparsing the source.
2646
2647         * bindings/js/CachedScriptSourceProvider.h:
2648         (WebCore::CachedScriptSourceProvider::cache):
2649         (WebCore::CachedScriptSourceProvider::cacheSizeChanged):
2650         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
2651         * bindings/js/ScriptSourceProvider.h:
2652         (WebCore::ScriptSourceProvider::ScriptSourceProvider):
2653         * loader/cache/CachedScript.cpp:
2654         (WebCore::CachedScript::destroyDecodedData):
2655         (WebCore::CachedScript::sourceProviderCache):
2656         (WebCore::CachedScript::sourceProviderCacheSizeChanged):
2657         * loader/cache/CachedScript.h:
2658
2659 2011-01-11  Martin Robinson  <mrobinson@igalia.com>
2660
2661         Reviewed by Gustavo Noronha Silva.
2662
2663         [GTK] Move toggle button rendering out of gtk2drawing.c
2664         https://bugs.webkit.org/show_bug.cgi?id=52258
2665
2666         * platform/gtk/RenderThemeGtk.h:
2667         * platform/gtk/RenderThemeGtk2.cpp:
2668         (WebCore::RenderThemeGtk::platformInit): Initialize new button members.
2669         (WebCore::adjustRectForFocus): Added this function which inflates a rect based
2670         on a widget's exterior focus.
2671         (WebCore::RenderThemeGtk::adjustRepaintRect): Account for exterior focus.
2672         (WebCore::setToggleSize): Only listen to indicator-size to properly size
2673         checkboxes and radio buttons.
2674         (WebCore::RenderThemeGtk::setCheckboxSize): Call new setToggleSize properly.
2675         (WebCore::paintToggle): Added.
2676         (WebCore::RenderThemeGtk::paintCheckbox): Call paintToggle.
2677         (WebCore::RenderThemeGtk::setRadioSize): Call new setToggleSize properly.
2678         (WebCore::RenderThemeGtk::paintRadio): Call paintToggle.
2679         (WebCore::RenderThemeGtk::gtkRadioButton): Added.
2680         (WebCore::RenderThemeGtk::gtkCheckButton): Added.
2681         * platform/gtk/WidgetRenderingContext.cpp:
2682         (WebCore::WidgetRenderingContext::WidgetRenderingContext): Use a static extra space
2683         variable. This is good enough for all themes that I've tested and prevents having to
2684         pass information from RenderThemeGtk about every single type of widget.
2685         (WebCore::WidgetRenderingContext::gtkPaintFocus): Use the paintRect
2686         to draw instead of m_paintRect. This is important when we're painting
2687         something that isn't the size of the total rect.
2688         (WebCore::WidgetRenderingContext::gtkPaintCheck): Added.
2689         (WebCore::WidgetRenderingContext::gtkPaintOption): Added.
2690         * platform/gtk/WidgetRenderingContext.h: Updated to reflect new methods.
2691         * platform/gtk/gtkdrawing.h: Remove newly unused code.
2692         * platform/gtk/gtk2drawing.c: Ditto.
2693
2694 2011-01-19  Tony Gentilcore  <tonyg@chromium.org>
2695
2696         Unreviewed build fix.
2697
2698         Build fix for r76170
2699         https://bugs.webkit.org/show_bug.cgi?id=52758
2700
2701         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
2702
2703 2011-01-19  David D. Kilzer  <ddkilzer@apple.com>
2704
2705         <http://webkit.org/b/52687> Clean up FrameLoader methods for PLUGIN_PROXY_FOR_VIDEO
2706
2707         Reviewed by Eric Carlson.
2708
2709         * loader/FrameLoader.cpp: Declare the methods here.
2710         (WebCore::FrameLoader::hideMediaPlayerProxyPlugin):
2711         (WebCore::FrameLoader::showMediaPlayerProxyPlugin):
2712         * loader/FrameLoader.cpp: Moved methods to here...
2713         (WebCore::FrameLoader::hideMediaPlayerProxyPlugin):
2714         (WebCore::FrameLoader::showMediaPlayerProxyPlugin):
2715         * loader/SubframeLoader.cpp: ...from here.
2716         (WebCore::FrameLoader::hideMediaPlayerProxyPlugin):
2717         (WebCore::FrameLoader::showMediaPlayerProxyPlugin):
2718
2719 2011-01-19  Tony Gentilcore  <tonyg@chromium.org>
2720
2721         Reviewed by Mihai Parparita.
2722
2723         Perform some forward declaration
2724         https://bugs.webkit.org/show_bug.cgi?id=52522
2725
2726         No new tests because no new functionality.
2727
2728         * accessibility/AccessibilityObject.h:
2729         * css/WebKitCSSMatrix.cpp:
2730         * html/HTMLAreaElement.cpp:
2731         * html/canvas/CanvasRenderingContext2D.cpp:
2732         * inspector/InspectorController.cpp:
2733         * platform/graphics/FloatPoint.cpp:
2734         * platform/graphics/Font.cpp:
2735         * platform/graphics/Font.h:
2736         * platform/graphics/FontFastPath.cpp:
2737         * platform/graphics/GraphicsContext.cpp:
2738         * platform/graphics/ImageBuffer.h:
2739         * platform/graphics/StringTruncator.cpp:
2740         * platform/graphics/WidthIterator.cpp:
2741         * platform/graphics/mac/ComplexTextController.cpp:
2742         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
2743         * platform/graphics/mac/FontComplexTextMac.cpp:
2744         * platform/graphics/transforms/TransformationMatrix.cpp:
2745         * platform/graphics/transforms/TransformationMatrix.h:
2746         * rendering/EllipsisBox.cpp:
2747         * rendering/InlineTextBox.cpp:
2748         * rendering/RenderBlock.cpp:
2749         * rendering/RenderBlockLineLayout.cpp:
2750         * rendering/RenderEmbeddedObject.cpp:
2751         * rendering/RenderFileUploadControl.cpp:
2752         * rendering/RenderFlexibleBox.cpp:
2753         * rendering/RenderImage.cpp:
2754         * rendering/RenderListBox.cpp:
2755         * rendering/RenderListMarker.cpp:
2756         * rendering/RenderMenuList.cpp:
2757         * rendering/RenderObject.h:
2758         * rendering/RenderText.cpp:
2759         * rendering/RenderTextControl.cpp:
2760         * rendering/svg/SVGInlineTextBox.cpp:
2761         * rendering/svg/SVGMarkerLayoutInfo.h:
2762         * rendering/svg/SVGTextMetrics.cpp:
2763         * svg/SVGFont.cpp:
2764
2765 2011-01-19  Adrienne Walker  <enne@google.com>
2766
2767         Reviewed by Kenneth Russell.
2768
2769         [chromium] Tiled compositor should use texture manager
2770         https://bugs.webkit.org/show_bug.cgi?id=52418
2771
2772         Test: compositing/
2773
2774         * platform/graphics/chromium/LayerRendererChromium.cpp:
2775         (WebCore::LayerRendererChromium::~LayerRendererChromium):
2776         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2777         * platform/graphics/chromium/LayerTilerChromium.cpp:
2778         (WebCore::LayerTilerChromium::LayerTilerChromium):
2779         (WebCore::LayerTilerChromium::reset):
2780         (WebCore::LayerTilerChromium::createTile):
2781         (WebCore::LayerTilerChromium::update):
2782         (WebCore::LayerTilerChromium::draw):
2783         * platform/graphics/chromium/LayerTilerChromium.h:
2784         (WebCore::LayerTilerChromium::Tile::Tile):
2785         (WebCore::LayerTilerChromium::Tile::texture):
2786
2787 2011-01-19  Stephen White  <senorblanco@chromium.org>
2788
2789         Unreviewed; build fix for chromium.
2790
2791         * platform/graphics/chromium/GLES2Canvas.cpp:
2792         (WebCore::GLES2Canvas::fillPath):
2793
2794 2011-01-18  Stephen White  <senorblanco@chromium.org>
2795
2796         Reviewed by James Robinson.
2797
2798         Implement accelerated path drawing and clipping for the Canvas2D GPU
2799         path.
2800         https://bugs.webkit.org/show_bug.cgi?id=52627
2801         
2802         This is done with a simple curve interpolator and the GLU tesselator,
2803         which is good enough for a 3-5X speedup on
2804         http://ie.microsoft.com/testdrive/Performance/Galactic/Default.html.
2805
2806         Covered by canvas/philip/2d.path.clip.basic.html, and many, many more.
2807         All tests canvas/philip and fast/canvas paths pass with no
2808         regressions, although two have minor pixel differences which require
2809         rebaselining.
2810
2811         * WebCore.gyp/WebCore.gyp:
2812         Add internal_glu include path to chromium build.
2813         * WebCore.gypi:
2814         Add internal_glu files to chromium build.
2815         * html/canvas/CanvasRenderingContext2D.cpp:
2816         (WebCore::CanvasRenderingContext2D::reset):
2817         (WebCore::CanvasRenderingContext2D::platformLayer):
2818         Make CanvasRenderingContext2D more robust against failure to create
2819         a DrawingBuffer.
2820         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2821         (WebCore::DrawingBuffer::DrawingBuffer):
2822         As in DrawingBufferMac.cpp, call reset() from the constructor.
2823         Also initialize size to (-1, -1), so reset() doesn't early-out.
2824         Add initializers for depthBuffer and stencilBuffer, and remove
2825         multisampleDepthStencilBuffer.
2826         * platform/graphics/chromium/GLES2Canvas.cpp:
2827         Remove some unused #includes.
2828         (WebCore::GLES2Canvas::State::State):
2829         Add clipping state, and implement save/restore via the copy constructor.
2830         (WebCore::operator*):
2831         (WebCore::Quadratic::Quadratic):
2832         (WebCore::Quadratic::fromBezier):
2833         (WebCore::Quadratic::evaluate):
2834         Quadratic Bezier curve class.
2835         (WebCore::Cubic::Cubic):
2836         (WebCore::Cubic::fromBezier):
2837         (WebCore::Cubic::evaluate):
2838         Cubic Bezier curve class.
2839         (WebCore::GLES2Canvas::clearRect):
2840         Add clipping support to clearRect().
2841         (WebCore::GLES2Canvas::fillPath):
2842         Implement fillPath().
2843         (WebCore::GLES2Canvas::fillRect):
2844         Add clipping support to fillRect().
2845         (WebCore::GLES2Canvas::clipPath):
2846         Implement clipPath().
2847         (WebCore::GLES2Canvas::clipOut):
2848         Stub out clipOut() (not called by Canvas 2D).
2849         (WebCore::GLES2Canvas::restore):
2850         When restoring, draw any remaining clipping paths to the stencil buffer.
2851         (WebCore::GLES2Canvas::drawTexturedRect):
2852         Add clipping support.
2853         (WebCore::interpolateQuadratic):
2854         (WebCore::interpolateCubic):
2855         Simple curve interpolation, using the Cubic and Quadratic classes.
2856         (WebCore::PolygonData::PolygonData):
2857         A struct to hold the tesselation data for callbacks.
2858         (WebCore::beginData):
2859         (WebCore::edgeFlagData):
2860         (WebCore::vertexData):
2861         (WebCore::endData):
2862         (WebCore::combineData):
2863         internal_glu tesselation callbacks.
2864         (WebCore::GLES2Canvas::createVertexBufferFromPath):
2865         Build an interpolated, tesselated vertex buffer and element array buffer from a given path, suitable for filling.
2866         (WebCore::GLES2Canvas::beginStencilDraw):
2867         Enable stencilling, and disable draws to the color buffer.
2868         (WebCore::GLES2Canvas::applyClipping):
2869         If clipping is enabled, set the appropriate GL state.
2870         * platform/graphics/chromium/GLES2Canvas.h:
2871         Document the flavours of drawTexturedRect() a bit, so I don't get confused.
2872         * platform/graphics/gpu/DrawingBuffer.cpp:
2873         (WebCore::DrawingBuffer::clear):
2874         (WebCore::DrawingBuffer::createSecondaryBuffers):
2875         (WebCore::DrawingBuffer::resizeDepthStencil):
2876         (WebCore::DrawingBuffer::reset):
2877         * platform/graphics/gpu/DrawingBuffer.h:
2878         Unify m_multisampleDepthStencilBuffer with m_depthStencilBuffer. 
2879         Implement separate depth and stencil buffers for when
2880         OES_packed_depth_stencil is not available.  Refactor creation of
2881         multisampled and non-multisampled depth and stencil buffers into
2882         resizeDepthStencil().
2883         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
2884         (WebCore::SharedGraphicsContext3D::create):
2885         Turn on stencil, turn off depth, turn off antialiasing (for now).
2886         (WebCore::SharedGraphicsContext3D::enableStencil):
2887         * platform/graphics/gpu/SharedGraphicsContext3D.h:
2888         Implement stencil enable/disable.
2889         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
2890         (WebCore::DrawingBuffer::DrawingBuffer):
2891         Remove m_multisampleDepthStencilBuffer.  Set the size to (-1, -1)
2892         on creation, so reset() doesn't early-out.  Initialize m_depthBuffer
2893         and m_stencilBuffer.
2894         * platform/graphics/skia/GraphicsContextSkia.cpp:
2895         (WebCore::GraphicsContext::canvasClip):
2896         (WebCore::GraphicsContext::clipOut):
2897         (WebCore::GraphicsContext::clipPath):
2898         (WebCore::GraphicsContext::fillPath):
2899         Put in GPU hooks for path clipping, and path drawing.
2900         * platform/graphics/skia/PlatformContextSkia.cpp:
2901         (WebCore::PlatformContextSkia::canAccelerate):
2902         Don't check for clipping paths in canAccelerate() (since we can
2903         now accelerate them).
2904         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
2905         Don't do clipping when uploading software draws to hardware.
2906         * thirdparty/glu/README.webkit:
2907         * thirdparty/glu/gluos.h:
2908         #undef MIN and MAX, to fix warnings-as-errors in Chrome/Mac build.
2909         * thirdparty/glu/libtess/geom.c:
2910         * thirdparty/glu/libtess/priorityq.c:
2911         * thirdparty/glu/libtess/render.c:
2912         Use do{}while(0) instead of if(1)else construct in macro.
2913         * thirdparty/glu/libtess/sweep.c:
2914         (IsWindingInside):
2915         (DoneEdgeDict):
2916         Fix some warnings treated as errors for the Linux Release build.
2917
2918 2011-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2919
2920         Unreviewed, rolling out r76144.
2921         http://trac.webkit.org/changeset/76144
2922         https://bugs.webkit.org/show_bug.cgi?id=52737
2923
2924         Broke tests on multiple bots, mostly Chromium Canaries
2925         (Requested by dimich on #webkit).
2926
2927         * rendering/RenderText.cpp:
2928         (WebCore::RenderText::localCaretRect):
2929
2930 2011-01-19  Simon Fraser  <simon.fraser@apple.com>
2931
2932         Reviewed by Adam Roben.
2933
2934         [CSS Gradients] Crash due to out-of-memory with repeating-linear-gradient and latter stop positioned before former
2935         https://bugs.webkit.org/show_bug.cgi?id=52732
2936         
2937         When repeating gradient stops, make sure that the first and last stops are not at the same
2938         place, otherwise we'll add stops indefinitely and run out of memory.
2939
2940         Test: fast/gradients/zero-range-repeating-gradient-hang.html
2941
2942         * css/CSSGradientValue.cpp:
2943         (WebCore::CSSGradientValue::addStops):
2944
2945 2011-01-14  Dimitri Glazkov  <dglazkov@chromium.org>
2946
2947         Reviewed by Darin Adler.
2948
2949         Remove event forwarding logic from input[type=range], simplify event flow and thumb positioning logic.
2950         https://bugs.webkit.org/show_bug.cgi?id=52464
2951
2952         This change has two parts:
2953
2954         1) Utilize shadow DOM event retargeting to get rid of forwarding events
2955            via render tree;
2956         2) Move thumb positioning logic from RenderSlider to SliderThumbElement.
2957
2958         These two are highly co-dependent. It looked ugly when I tried to
2959         separate them.
2960
2961         No change in behavior, covered by existing tests.
2962
2963         * html/HTMLInputElement.cpp:
2964         (WebCore::HTMLInputElement::defaultEventHandler): Added invocation of
2965             InputType::handleMouseDownEvent.
2966         * html/InputType.cpp:
2967         (WebCore::InputType::handleMouseDownEvent): Added empty decl.
2968         * html/InputType.h: Added def.
2969         * html/RangeInputType.cpp:
2970         (WebCore::RangeInputType::handleMouseDownEvent): Added to handle the case
2971             when the user clicks on the track of the slider. Also removed the
2972             forwardEvent method.
2973         * html/RangeInputType.h: Added/removed defs.
2974         * html/shadow/SliderThumbElement.cpp:
2975         (WebCore::SliderThumbElement::dragFrom): Added a helper method to start
2976             dragging from any position.
2977         (WebCore::SliderThumbElement::dragTo): Added a helper method to drag to
2978             specified position.
2979         (WebCore::SliderThumbElement::setPosition): Collapsed most of the positioning
2980             logic in RenderSlider into this method, which is now a simple calculation
2981             and adjusting of thumb position based on supplied coordinates.
2982         (WebCore::SliderThumbElement::startDragging): Added.
2983         (WebCore::SliderThumbElement::stopDragging): Added.
2984         (WebCore::SliderThumbElement::defaultEventHandler): Removed most of the
2985             old position-sniffing logic and replaced with simple calls to start,
2986             stop, and drag the thumb.
2987         * html/shadow/SliderThumbElement.h: Added defs.
2988         * rendering/RenderSlider.cpp: Removed a bunch of code that is no longer
2989             necessary.
2990         * rendering/RenderSlider.h: Removed defs, removed now-unnecessary friendliness.
2991
2992 2011-01-19  Shane Stephens  <shanestephens@google.com>
2993
2994         Reviewed by Chris Marrin.
2995
2996         Make AffineTransform and TransformationMatrix do matrix multiplication in the correct order (Column Major)
2997         https://bugs.webkit.org/show_bug.cgi?id=48031
2998
2999         Fixed reversal, renamed matrix methods to be clearer, found all examples of operator* and
3000         operator*= usage and switched operand order.
3001
3002         No new tests as this refactor doesn't add functionality.
3003
3004         * html/HTMLCanvasElement.cpp:
3005         (WebCore::HTMLCanvasElement::baseTransform):
3006         * html/canvas/CanvasRenderingContext2D.cpp:
3007         (WebCore::CanvasRenderingContext2D::transform):
3008         (WebCore::CanvasRenderingContext2D::setTransform):
3009         * platform/graphics/cg/PatternCG.cpp:
3010         (WebCore::Pattern::createPlatformPattern):
3011         * platform/graphics/chromium/GLES2Canvas.cpp:
3012         (WebCore::GLES2Canvas::fillRect):
3013         (WebCore::GLES2Canvas::concatCTM):
3014         (WebCore::GLES2Canvas::drawQuad):
3015         * platform/graphics/chromium/TransparencyWin.cpp:
3016         (WebCore::TransparencyWin::setupLayerForOpaqueCompositeLayer):
3017         (WebCore::TransparencyWin::setupTransformForKeepTransform):
3018         * platform/graphics/transforms/AffineTransform.cpp:
3019         (WebCore::AffineTransform::multiply):
3020         (WebCore::AffineTransform::rotate):
3021         * platform/graphics/transforms/AffineTransform.h:
3022         (WebCore::AffineTransform::operator*=):
3023         (WebCore::AffineTransform::operator*):
3024         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3025         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
3026         * platform/graphics/wince/SharedBitmap.cpp:
3027         (WebCore::SharedBitmap::drawPattern):
3028         * rendering/svg/RenderSVGResourceContainer.cpp:
3029         (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
3030         * rendering/svg/RenderSVGResourceGradient.cpp:
3031         (WebCore::clipToTextMask):
3032         (WebCore::RenderSVGResourceGradient::applyResource):
3033         * rendering/svg/RenderSVGResourcePattern.cpp:
3034         (WebCore::RenderSVGResourcePattern::applyResource):
3035         * rendering/svg/RenderSVGRoot.cpp:
3036         (WebCore::RenderSVGRoot::localToBorderBoxTransform):
3037         * rendering/svg/SVGImageBufferTools.cpp:
3038         (WebCore::SVGImageBufferTools::calculateTransformationToOutermostSVGCoordinateSystem):
3039         (WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
3040         * rendering/svg/SVGTextLayoutEngine.cpp:
3041         (WebCore::SVGTextLayoutEngine::finalizeTransformMatrices):
3042         * svg/SVGLocatable.cpp:
3043         (WebCore::SVGLocatable::computeCTM):
3044         (WebCore::SVGLocatable::getTransformToElement):
3045         * svg/SVGMatrix.h:
3046         (WebCore::SVGMatrix::multiply):
3047         * svg/SVGSVGElement.cpp:
3048         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
3049         (WebCore::SVGSVGElement::viewBoxToViewTransform):
3050         * svg/SVGStyledTransformableElement.cpp:
3051         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
3052         * svg/SVGTextElement.cpp:
3053         (WebCore::SVGTextElement::animatedLocalTransform):
3054         * svg/SVGTransformList.cpp:
3055         (WebCore::SVGTransformList::concatenate):
3056
3057 2011-01-19  Chang Shu  <chang.shu@nokia.com>
3058
3059         Reviewed by Darin Adler.
3060
3061         The return value of contentEditable() function should depend on the DOM attribute
3062         instead of render style userModify. The code change fixed test cases in the bug
3063         and partially fixed test cases in other contentEditable bugs;
3064
3065         https://bugs.webkit.org/show_bug.cgi?id=52056
3066
3067         * html/HTMLElement.cpp:
3068         (WebCore::HTMLElement::contentEditable):
3069
3070 2011-01-19  Levi Weintraub  <leviw@chromium.org>
3071
3072         Reviewed by Darin Adler.
3073
3074         Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
3075         logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
3076         resulted in the caret being placed incorrectly in overflowing editable IFrame content.
3077
3078         Long lines in non-white-space-pre editable documents show cursor in wrong place
3079         https://bugs.webkit.org/show_bug.cgi?id=48132
3080
3081         Test: editing/selection/caret-painting-in-overflowing-autowrap-content.html
3082
3083         * rendering/RenderText.cpp:
3084         (WebCore::RenderText::localCaretRect):
3085
3086 2011-01-19  Chris Marrin  <cmarrin@apple.com>
3087
3088         Reviewed by Simon Fraser.
3089
3090         WK2 - Multiple crashes in PlatformCALayer::replaceSublayer
3091         https://bugs.webkit.org/show_bug.cgi?id=52695
3092
3093         Added ASSERTs to the places we assume a non-null superlayer.
3094
3095         * platform/graphics/ca/GraphicsLayerCA.cpp:
3096         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
3097         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
3098
3099 2011-01-18  Beth Dakin  <bdakin@apple.com>
3100
3101         Reviewed by Maciej Stachowiak.
3102
3103         Fix for <rdar://problem/8882916> Overlay scrollers require 
3104         content to layout underneath the scrollbar area
3105
3106         The render tree should not include scrollbar size for
3107         overlay scrollers. This patch will allow scrollers on
3108         the WebView to behave like overflow:overlay.
3109
3110         Treat overlay scrollers the same way as the !includeScrollbars
3111         case.
3112         * platform/ScrollView.cpp:
3113         (WebCore::ScrollView::visibleContentRect):
3114
3115         No corner rect for overlay scrollers.
3116         (WebCore::ScrollView::scrollCornerRect):
3117
3118         usesOverlayScrollbars() currently always returns no.
3119         * platform/ScrollbarTheme.h:
3120         (WebCore::ScrollbarTheme::usesOverlayScrollbars):
3121         * platform/mac/ScrollbarThemeMac.h:
3122         * platform/mac/ScrollbarThemeMac.mm:
3123         (WebCore::ScrollbarThemeMac::usesOverlayScrollbars):
3124
3125         includeVerticalScrollbarSize() and includeHorizontalScrollbarSize()
3126         should return false for overlay scrollers. They already return
3127         false for overflow:overlay.
3128         * rendering/RenderBox.cpp:
3129         (WebCore::RenderBox::includeVerticalScrollbarSize):
3130         (WebCore::RenderBox::includeHorizontalScrollbarSize):
3131         * rendering/RenderBox.h:
3132
3133         In the render tree, always treat overlay scrollers like
3134         they have a width and height of 0.
3135         * rendering/RenderLayer.cpp:
3136         (WebCore::RenderLayer::verticalScrollbarWidth):
3137         (WebCore::RenderLayer::horizontalScrollbarHeight):
3138         * rendering/RenderListBox.cpp:
3139         (WebCore::RenderListBox::verticalScrollbarWidth):
3140
3141 2011-01-18  Evan Martin  <evan@chromium.org>
3142
3143         Reviewed by Tony Chang.
3144
3145         [chromium] simplify complex text code, fixing a handful of layout tests
3146         https://bugs.webkit.org/show_bug.cgi?id=52661
3147
3148         Change ComplexTextControllerLinux to lay out RTL text to the left from
3149         the starting point.  (Previously it always went to the right.)  This allows
3150         us to map pixel offsets more directly into offsets within the text runs,
3151         simplifying a few of the text-fiddling functions (they no longer need to
3152         track the current position, as ComplexTextController now does it).
3153
3154         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
3155         (WebCore::ComplexTextController::ComplexTextController):
3156         (WebCore::ComplexTextController::reset):
3157         (WebCore::ComplexTextController::setGlyphXPositions):
3158         * platform/graphics/chromium/ComplexTextControllerLinux.h:
3159         (WebCore::ComplexTextController::offsetX):
3160         * platform/graphics/chromium/FontLinux.cpp:
3161         (WebCore::Font::drawComplexText):
3162         (WebCore::Font::floatWidthForComplexText):
3163         (WebCore::glyphIndexForXPositionInScriptRun):
3164         (WebCore::Font::offsetForPositionForComplexText):
3165         (WebCore::Font::selectionRectForComplexText):
3166
3167 2011-01-19  Pavel Feldman  <pfeldman@chromium.org>
3168
3169         Reviewed by Yury Semikhatsky.
3170
3171         Web Inspector: move methods from InjectedScript domain into DOM,
3172         Runtime and Debugger domains. Introduce InspectorRuntimeAgent.
3173         https://bugs.webkit.org/show_bug.cgi?id=52717
3174
3175         * CMakeLists.txt:
3176         * GNUmakefile.am:
3177         * WebCore.gypi:
3178         * WebCore.pro:
3179         * WebCore.vcproj/WebCore.vcproj:
3180         * WebCore.xcodeproj/project.pbxproj:
3181         * inspector/CodeGeneratorInspector.pm:
3182         * inspector/InjectedScript.cpp:
3183         (WebCore::InjectedScript::evaluateOnCallFrame):
3184         (WebCore::InjectedScript::getCompletions):
3185         (WebCore::InjectedScript::getCompletionsOnCallFrame):
3186         * inspector/InjectedScript.h:
3187         * inspector/InjectedScriptHost.cpp:
3188         (WebCore::InjectedScriptHost::injectedScriptForMainWorld):
3189         * inspector/InjectedScriptHost.h:
3190         * inspector/InjectedScriptSource.js:
3191         (.):
3192         ():
3193         * inspector/Inspector.idl:
3194         * inspector/InspectorController.cpp:
3195         (WebCore::InspectorController::connectFrontend):
3196         (WebCore::InspectorController::releaseFrontendLifetimeAgents):
3197         * inspector/InspectorController.h:
3198         * inspector/InspectorDOMAgent.cpp:
3199         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
3200         (WebCore::InspectorDOMAgent::resolveNode):
3201         (WebCore::InspectorDOMAgent::getNodeProperties):
3202         (WebCore::InspectorDOMAgent::getNodePrototypes):
3203         (WebCore::InspectorDOMAgent::injectedScriptForNodeId):
3204         * inspector/InspectorDOMAgent.h:
3205         (WebCore::EventListenerInfo::EventListenerInfo):
3206         (WebCore::InspectorDOMAgent::DOMListener::~DOMListener):
3207         (WebCore::InspectorDOMAgent::create):
3208         (WebCore::InspectorDOMAgent::cast):
3209         (WebCore::InspectorDOMAgent::documents):
3210         * inspector/InspectorDebuggerAgent.cpp:
3211         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
3212         (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
3213         (WebCore::InspectorDebuggerAgent::injectedScriptForCallFrameId):
3214         * inspector/InspectorDebuggerAgent.h:
3215         * inspector/InspectorRuntimeAgent.cpp: Added.
3216         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
3217         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
3218         (WebCore::InspectorRuntimeAgent::evaluate):
3219         (WebCore::InspectorRuntimeAgent::getCompletions):
3220         (WebCore::InspectorRuntimeAgent::getProperties):
3221         (WebCore::InspectorRuntimeAgent::setPropertyValue):
3222         (WebCore::InspectorRuntimeAgent::pushNodeToFrontend):
3223         (WebCore::InspectorRuntimeAgent::injectedScriptForObjectId):
3224         * inspector/InspectorRuntimeAgent.h: Copied from Source/WebCore/inspector/InjectedScript.h.
3225         (WebCore::InspectorRuntimeAgent::create):
3226         * inspector/front-end/ConsoleView.js:
3227         (WebInspector.ConsoleView.prototype.completions):
3228         * inspector/front-end/ScriptsPanel.js:
3229         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
3230
3231 2011-01-18  Pavel Podivilov  <podivilov@chromium.org>
3232
3233         Reviewed by Yury Semikhatsky.
3234
3235         Web Inspector: add UglifyJS parser and formatter files
3236         https://bugs.webkit.org/show_bug.cgi?id=51702
3237
3238         * WebCore.gypi:
3239         * WebCore.vcproj/WebCore.vcproj:
3240         * inspector/front-end/ScriptFormatter.js:
3241         (WebInspector.ScriptFormatter.positionToLocation):
3242         (WebInspector.ScriptFormatter.prototype.format.messageHandler):
3243         (WebInspector.ScriptFormatter.prototype.format):
3244         (WebInspector.ScriptFormatter.prototype._buildMapping):
3245         (WebInspector.ScriptFormatter.prototype._convertPosition):
3246         * inspector/front-end/SourceFrame.js:
3247         (WebInspector.SourceFrame.prototype.formatSource.didFormat):
3248         (WebInspector.SourceFrame.prototype.formatSource):
3249         * inspector/front-end/WebKit.qrc:
3250         * inspector/front-end/parse-js.js: Added. UglifyJS parser.
3251         * inspector/front-end/process.js: Added. UglifyJS formatter.
3252         * inspector/front-end/scriptFormatterWorker.js: Added. Worker script that wraps UglifyJS code.
3253         (onmessage):
3254         (beautify):
3255         (loadModule):
3256         (require):
3257         * inspector/front-end/utilities.js:
3258         ():
3259
3260 2011-01-19  Pavel Podivilov  <podivilov@chromium.org>
3261
3262         Reviewed by Yury Semikhatsky.
3263
3264         Web Inspector: [JSC] scripts have incorrect starting line (always 1).
3265         https://bugs.webkit.org/show_bug.cgi?id=52721
3266
3267         Test: inspector/debugger-scripts.html
3268
3269         * bindings/js/ScriptDebugServer.cpp:
3270         (WebCore::ScriptDebugServer::dispatchDidParseSource):
3271         (WebCore::ScriptDebugServer::dispatchFailedToParseSource):
3272         (WebCore::ScriptDebugServer::sourceParsed):
3273         * bindings/js/ScriptDebugServer.h:
3274         * bindings/js/ScriptSourceCode.h:
3275         (WebCore::ScriptSourceCode::ScriptSourceCode):
3276         * bindings/js/StringSourceProvider.h:
3277         (WebCore::StringSourceProvider::create):
3278         (WebCore::StringSourceProvider::startPosition):
3279         (WebCore::StringSourceProvider::StringSourceProvider):
3280
3281 2011-01-19  Satish Sampath  <satish@chromium.org>
3282
3283         Reviewed by Jeremy Orlow.
3284
3285         Send origin/url as part of speech input requests to the embedder.
3286         https://bugs.webkit.org/show_bug.cgi?id=52718
3287
3288         * page/SpeechInput.cpp:
3289         (WebCore::SpeechInput::startRecognition): Pass up additional origin parameter.
3290         * page/SpeechInput.h:
3291         * page/SpeechInputClient.h:
3292         * platform/mock/SpeechInputClientMock.cpp:
3293         (WebCore::SpeechInputClientMock::startRecognition): Updated prototype.
3294         * platform/mock/SpeechInputClientMock.h:
3295         * rendering/TextControlInnerElements.cpp:
3296         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Pass the frame origin to speech input request.
3297
3298 2011-01-19  Hans Wennborg  <hans@chromium.org>
3299
3300         Reviewed by Jeremy Orlow.
3301
3302         IndexedDB: Support auto-increment keys
3303         https://bugs.webkit.org/show_bug.cgi?id=52576
3304
3305         Add support for auto-increment keys.
3306
3307         Test: storage/indexeddb/objectstore-autoincrement.html
3308
3309         * storage/IDBDatabase.cpp:
3310         (WebCore::IDBDatabase::createObjectStore):
3311         * storage/IDBObjectStoreBackendImpl.cpp:
3312         (WebCore::genAutoIncrementKey):
3313         (WebCore::IDBObjectStoreBackendImpl::putInternal):
3314
3315 2011-01-19  Csaba Osztrogonác  <ossy@webkit.org>
3316
3317         Reviewed by Laszlo Gombos and Tor Arne Vestbø.
3318
3319         [Qt] Remove unnecessary "../Source" from paths
3320         after moving source files into Source is finished.
3321
3322         * WebCore.pri:
3323         * WebCore.pro:
3324
3325 2011-01-19  Alexander Pavlov  <apavlov@chromium.org>
3326
3327         Reviewed by Pavel Feldman.
3328
3329         Web Inspector: Employ TextPrompt for CSS property name/value autocompletion
3330         https://bugs.webkit.org/show_bug.cgi?id=52212
3331
3332         WebInspector.CSSKeywordCompletions contains a hand-written list of accepted CSS property value keywords
3333         for each property. WebInspector.TextPrompt is used to suggest both the name and value keywords while
3334         editing styles, in place of the old custom suggestion code.
3335
3336         * inspector/front-end/CSSCompletions.js:
3337         (WebInspector.CSSCompletions.prototype.startsWith): Fix array-out-of-bounds error.
3338         * inspector/front-end/CSSKeywordCompletions.js: Added.
3339         (WebInspector.CSSKeywordCompletions.forProperty):
3340         * inspector/front-end/StylesSidebarPane.js:
3341         (WebInspector.StylePropertyTreeElement.prototype.updateTitle):
3342         (WebInspector.StylePropertyTreeElement.prototype):
3343         ():
3344         * inspector/front-end/TextPrompt.js:
3345         (WebInspector.TextPrompt):
3346         (WebInspector.TextPrompt.prototype.removeFromElement):
3347         (WebInspector.TextPrompt.prototype._onKeyDown):
3348         (WebInspector.TextPrompt.prototype.tabKeyPressed):
3349         (WebInspector.TextPrompt.prototype.upKeyPressed):
3350         (WebInspector.TextPrompt.prototype.downKeyPressed):
3351         (WebInspector.TextPrompt.prototype._moveBackInHistory):
3352         (WebInspector.TextPrompt.prototype._moveForwardInHistory):
3353         * inspector/front-end/inspector.css:
3354         (.auto-complete-text, .editing .auto-complete-text):
3355         * inspector/front-end/inspector.html:
3356
3357 2011-01-19  Dai Mikurube  <dmikurube@google.com>
3358
3359         Reviewed by Kent Tamura.
3360
3361         Implement onformchange and onforminput event handlers
3362         https://bugs.webkit.org/show_bug.cgi?id=26141
3363
3364         Tests: fast/forms/formchange-event.html
3365                fast/forms/forminput-event.html
3366
3367         * bindings/scripts/CodeGeneratorGObject.pm: Added event names.
3368         * dom/Document.h: Added event definitions.
3369         * dom/Document.idl: Added event definitions.
3370         * dom/Element.h: Added event definitions.
3371         * dom/Element.idl: Added event definitions.
3372         * dom/Event.cpp:
3373         (WebCore::Event::fromUserGesture): Added a condition for a formchange event in handling user gestures.
3374         * dom/EventNames.h: Added event definitions.
3375         * dom/InputElement.cpp:
3376         (WebCore::InputElement::setValueFromRenderer): Replaced a direct dispatchEvent() call into dispatchInputEvents(), a virtual function which broadcasts forminput events for HTML elements.
3377         * dom/Node.cpp:
3378         (WebCore::Node::dispatchInputEvents): Defined basic dispatchInputEvents() described above.
3379         (WebCore::Node::dispatchChangeEvents): Defined basic dispatchChangeEvents() described above.
3380         (WebCore::Node::defaultEventHandler): Replaced a direct dispatchEvent() call into dispatchInputEvents().
3381         * dom/Node.h:
3382         * html/FormAssociatedElement.h: Added isResettable() to check the element is resettable or not.
3383         * html/HTMLAttributeNames.in: Added event names.
3384         * html/HTMLElement.cpp:
3385         (WebCore::HTMLElement::parseMappedAttribute): Added event handling.
3386         (WebCore::HTMLElement::shadowAncestorOwnerForm): Added to get an ancestor <form> element from a shadow element.
3387         (WebCore::HTMLElement::dispatchChangeEvents): Defined dispatchChangeEvents() for HTML elements described above.
3388         (WebCore::HTMLElement::dispatchInputEvents): Defined dispatchInputEvents() for HTML elements described above.
3389         * html/HTMLElement.h:
3390         * html/HTMLFormControlElement.cpp:
3391         (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent): Added calling dispatchFormChange() to broadcast formchange events.
3392         (WebCore::HTMLFormControlElement::dispatchFormControlInputEvent): Defined newly to dispatch an input event with broadcasting forminput events.
3393         * html/HTMLFormControlElement.h: Added isResettable().
3394         * html/HTMLFormElement.cpp:
3395         (WebCore::HTMLFormElement::broadcastFormEvent): Added to broadcast forminput or formchange events.
3396         (WebCore::HTMLFormElement::dispatchFormInput): Defined newly to broadcast forminput events.
3397         (WebCore::HTMLFormElement::dispatchFormChange): Defined newly to broadcast formchange events.
3398         * html/HTMLFormElement.h:
3399         * html/HTMLFormElement.idl: Added dispatchFormInput() and dispatchFormChange() DOM API definitions.
3400         * html/HTMLInputElement.cpp:
3401         (WebCore::HTMLInputElement::stepUpFromRenderer): Replaced a direct dispatchEvent() call into dispatchInputEvents().
3402         * html/HTMLInputElement.h: Added isResettable().
3403         * html/HTMLKeygenElement.h: Added isResettable().
3404         * html/HTMLObjectElement.h: Added isResettable().
3405         * html/HTMLOutputElement.h: Added isResettable().
3406         * html/HTMLSelectElement.h: Added isResettable().
3407         * html/HTMLTextAreaElement.h: Added isResettable().
3408         * page/DOMWindow.h: Added event definitions.
3409         * page/DOMWindow.idl: Added event definitions.
3410         * rendering/TextControlInnerElements.cpp:
3411         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Replaced a direct dispatchEvent() call into dispatchInputEvents().
3412
3413 2011-01-19  Andrey Kosyakov  <caseq@chromium.org>
3414
3415         Reviewed by Pavel Feldman.
3416
3417         Web Inspector: [Extensions API] delete pending callback from callback map before invoking it
3418         https://bugs.webkit.org/show_bug.cgi?id=52707
3419
3420         * inspector/front-end/ExtensionAPI.js:
3421         (WebInspector.injectedExtensionAPI.ExtensionServerClient.prototype._onCallback):
3422
3423 2011-01-19  Levi Weintraub  <leviw@google.com>
3424
3425         Reviewed by Ryosuke Niwa.
3426
3427         Replaced rangeCompliantEquivalent with Position::parentAnchoredEquivalent
3428         and simplified the logic a bit. Unfortunately, Tables and some legacy
3429         editing positions still need to be handled specifically.
3430
3431         remove rangeCompliantEquivalent and replace it with Position methods
3432         https://bugs.webkit.org/show_bug.cgi?id=25057
3433
3434         No new tests as this is a refactor that doesn't change behavior.
3435
3436         * WebCore.exp.in:
3437         * dom/Document.cpp:
3438         (WebCore::Document::caretRangeFromPoint):
3439         * dom/Position.cpp:
3440         (WebCore::Position::parentAnchoredEquivalent):
3441         * dom/Position.h:
3442         * editing/ApplyStyleCommand.cpp:
3443         (WebCore::ApplyStyleCommand::applyBlockStyle):
3444         * editing/CompositeEditCommand.cpp:
3445         (WebCore::CompositeEditCommand::insertNodeAt):
3446         (WebCore::CompositeEditCommand::moveParagraphs):
3447         * editing/DeleteSelectionCommand.cpp:
3448         (WebCore::DeleteSelectionCommand::initializePositionData):
3449         (WebCore::DeleteSelectionCommand::mergeParagraphs):
3450         * editing/Editor.cpp:
3451         (WebCore::Editor::textDirectionForSelection):
3452         (WebCore::Editor::advanceToNextMisspelling):
3453         * editing/InsertLineBreakCommand.cpp:
3454         (WebCore::InsertLineBreakCommand::shouldUseBreakElement):
3455         * editing/InsertParagraphSeparatorCommand.cpp:
3456         (WebCore::InsertParagraphSeparatorCommand::doApply):
3457         * editing/ReplaceSelectionCommand.cpp:
3458         (WebCore::handleStyleSpansBeforeInsertion):
3459         * editing/VisiblePosition.cpp:
3460         (WebCore::makeRange):
3461         (WebCore::setStart):
3462         (WebCore::setEnd):
3463         * editing/VisibleSelection.cpp:
3464         (WebCore::VisibleSelection::firstRange):
3465         (WebCore::VisibleSelection::toNormalizedRange):
3466         (WebCore::makeSearchRange):
3467         * editing/htmlediting.cpp:
3468         (WebCore::indexForVisiblePosition):
3469         * editing/htmlediting.h:
3470         * editing/visible_units.cpp:
3471         (WebCore::previousBoundary):
3472         (WebCore::nextBoundary):
3473         * page/DOMSelection.cpp:
3474         (WebCore::anchorPosition):
3475         (WebCore::focusPosition):
3476         (WebCore::basePosition):
3477         (WebCore::extentPosition):
3478
3479 2011-01-19  Peter Rybin  <peter.rybin@gmail.com>
3480
3481         Reviewed by Yury Semikhatsky.
3482
3483         Web Inspector: script column offset is incorrect
3484         https://bugs.webkit.org/show_bug.cgi?id=52580
3485
3486         Column is updated in 3 places, 2 less probable places contained error.
3487         Fixed now.
3488
3489         * platform/text/SegmentedString.cpp:
3490         (WebCore::SegmentedString::advanceSlowCase):
3491         * platform/text/SegmentedString.h:
3492         (WebCore::SegmentedString::advancePastNewline):
3493
3494 2011-01-18  Pavel Feldman  <pfeldman@chromium.org>
3495
3496         Reviewed by Yury Semikhatsky.
3497
3498         Web Inspector: make InjectedScriptAccess API a part of Web Inspector protocol.
3499         https://bugs.webkit.org/show_bug.cgi?id=52652
3500
3501         Calls served by the InjectedScript should be first class protocol
3502         citizens, not dispatched via single protocol message.
3503
3504         * WebCore.gypi:
3505         * WebCore.vcproj/WebCore.vcproj:
3506         * inspector/CodeGeneratorInspector.pm:
3507         * inspector/InjectedScript.cpp:
3508         (WebCore::InjectedScript::evaluate):
3509         (WebCore::InjectedScript::evaluateInCallFrame):
3510         (WebCore::InjectedScript::evaluateOnSelf):
3511         (WebCore::InjectedScript::getCompletions):
3512         (WebCore::InjectedScript::getProperties):
3513         (WebCore::InjectedScript::pushNodeToFrontend):
3514         (WebCore::InjectedScript::resolveNode):
3515         (WebCore::InjectedScript::getNodeProperties):
3516         (WebCore::InjectedScript::getNodePrototypes):
3517         (WebCore::InjectedScript::setPropertyValue):
3518         (WebCore::InjectedScript::makeCall):
3519         * inspector/InjectedScript.h:
3520         * inspector/InjectedScriptHost.cpp:
3521         (WebCore::InjectedScriptHost::evaluate):
3522         (WebCore::InjectedScriptHost::evaluateInCallFrame):
3523         (WebCore::InjectedScriptHost::evaluateOnSelf):
3524         (WebCore::InjectedScriptHost::getCompletions):
3525         (WebCore::InjectedScriptHost::getProperties):
3526         (WebCore::InjectedScriptHost::pushNodeToFrontend):
3527         (WebCore::InjectedScriptHost::resolveNode):
3528         (WebCore::InjectedScriptHost::getNodeProperties):
3529         (WebCore::InjectedScriptHost::getNodePrototypes):
3530         (WebCore::InjectedScriptHost::setPropertyValue):
3531         (WebCore::InjectedScriptHost::injectedScriptForObjectId):
3532         (WebCore::InjectedScriptHost::injectedScriptForNodeId):
3533         (WebCore::InjectedScriptHost::injectedScriptForMainWorld):
3534         * inspector/InjectedScriptHost.h:
3535         * inspector/InjectedScriptSource.js:
3536         (.):
3537         * inspector/Inspector.idl:
3538         * inspector/InspectorController.cpp:
3539         * inspector/InspectorController.h:
3540         * inspector/InspectorValues.cpp:
3541         (WebCore::InspectorObject::getNumber):
3542         * inspector/InspectorValues.h:
3543         * inspector/front-end/AuditRules.js:
3544         (WebInspector.AuditRules.evaluateInTargetWindow):
3545         * inspector/front-end/ConsoleView.js:
3546         (WebInspector.ConsoleView.prototype.completions):
3547         (WebInspector.ConsoleView.prototype.doEvalInWindow):
3548         * inspector/front-end/ElementsTreeOutline.js:
3549         (WebInspector.ElementsTreeElement.prototype._createTooltipForNode):
3550         * inspector/front-end/ExtensionPanel.js:
3551         (WebInspector.ExtensionWatchSidebarPane.prototype.setExpression):
3552         * inspector/front-end/ExtensionServer.js:
3553         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
3554         * inspector/front-end/InjectedScriptAccess.js: Removed.
3555         * inspector/front-end/PropertiesSidebarPane.js:
3556         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
3557         (WebInspector.PropertiesSidebarPane.prototype.update):
3558         * inspector/front-end/RemoteObject.js:
3559         (WebInspector.RemoteObject.resolveNode):
3560         (WebInspector.RemoteObject.prototype.getProperties):
3561         (WebInspector.RemoteObject.prototype.setPropertyValue):
3562         (WebInspector.RemoteObject.prototype.pushNodeToFrontend):
3563         * inspector/front-end/ScriptsPanel.js:
3564         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
3565         * inspector/front-end/WebKit.qrc:
3566         * inspector/front-end/inspector.html:
3567
3568 2011-01-18  Anton Muhin  <antonm@chromium.org>
3569
3570         Reviewed by Adam Barth.
3571
3572         [v8] Minor cleanup: make 2nd argument of removeIfPresnt accept only a value type stored in the DOM map
3573         https://bugs.webkit.org/show_bug.cgi?id=51683
3574
3575         Covered by the existing tests.
3576
3577         * bindings/v8/DOMDataStore.cpp:
3578         (WebCore::DOMDataStore::weakNodeCallback):
3579         (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::removeIfPresent):
3580         * bindings/v8/DOMDataStore.h:
3581         * bindings/v8/V8DOMMap.h:
3582         (WebCore::WeakReferenceMap::removeIfPresent):
3583
3584 2011-01-18 MORITA Hajime  <morrita@google.com>
3585
3586         Reviewed by Ryosuke Niwa.
3587         
3588         Refactoring: EventHandler::handleTextInputEvent should accept an enum instead of bools.
3589         https://bugs.webkit.org/show_bug.cgi?id=52608
3590
3591         No new tests. no behavioral change.
3592
3593         * GNUmakefile.am:
3594         * WebCore.gypi:
3595         * WebCore.pro:
3596         * WebCore.vcproj/WebCore.vcproj:
3597         * WebCore.xcodeproj/project.pbxproj:
3598         * dom/TextEvent.cpp:
3599         (WebCore::TextEvent::create):
3600         (WebCore::TextEvent::createForDrop):
3601         (WebCore::TextEvent::TextEvent):
3602         * dom/TextEvent.h:
3603         (WebCore::TextEvent::isLineBreak):
3604         (WebCore::TextEvent::isBackTab):
3605         (WebCore::TextEvent::isPaste):
3606         (WebCore::TextEvent::isDrop):
3607         * dom/TextEventInputType.h: Added. Extracted from TextEvent::TextInputType.
3608         * editing/EditorCommand.cpp:
3609         (WebCore::executeInsertBacktab):
3610         (WebCore::executeInsertLineBreak):
3611         (WebCore::executeInsertNewline):
3612         (WebCore::executeInsertTab):
3613         * page/EventHandler.cpp:
3614         (WebCore::EventHandler::handleTextInputEvent):
3615         * page/EventHandler.h:
3616
3617 2011-01-18  Ben Vanik  <ben.vanik@gmail.com>
3618
3619         Reviewed by Kenneth Russell.
3620
3621         Updating ANGLE in WebKit to r533.
3622         https://bugs.webkit.org/show_bug.cgi?id=47194
3623
3624         * platform/graphics/ANGLEWebKitBridge.cpp:
3625         (WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
3626         (WebCore::ANGLEWebKitBridge::~ANGLEWebKitBridge):
3627         (WebCore::ANGLEWebKitBridge::validateShaderSource):
3628         Update to new ANGLE API for shader validation.
3629         * platform/graphics/ANGLEWebKitBridge.h:
3630         (WebCore::ANGLEWebKitBridge::setResources): 
3631         Renaming types to new names.
3632         * platform/graphics/mac/GraphicsContext3DMac.mm:
3633         (WebCore::GraphicsContext3D::GraphicsContext3D):
3634         Initialize ANGLEResources with ANGLE init call to prevent uninitialized variables.
3635
3636 2011-01-18  MORITA Hajime  <morrita@google.com>
3637
3638         Reviewed by Simon Fraser.
3639
3640         Refactoring: Extract RoundedIntRect class
3641         https://bugs.webkit.org/show_bug.cgi?id=51664
3642
3643         RoundedIntRect is a pair of rect and four IntSize objects which represent
3644         corner radii of the rectangle. IntSize is grouped into RoundedIntRect::Radii.
3645         Now RenderStyle::getRoundedBorderFor() and RenderStyle::getRoundedInnerBorderWithBorderWidths()
3646         return RoundedIntRect and GraphicsContext::addRoundedRectClip(), GraphicsContext::fillRoundedRect()
3647         and other functions accept RoundedIntRect as an argument.
3648
3649         * Android.mk:
3650         * CMakeLists.txt:
3651         * GNUmakefile.am:
3652         * WebCore.gypi:
3653         * WebCore.pro:
3654         * WebCore.vcproj/WebCore.vcproj:
3655         * WebCore.xcodeproj/project.pbxproj:
3656         * platform/graphics/GraphicsContext.cpp:
3657         (WebCore::GraphicsContext::addRoundedRectClip):
3658         (WebCore::GraphicsContext::clipOutRoundedRect):
3659         (WebCore::GraphicsContext::fillRoundedRect):
3660         * platform/graphics/GraphicsContext.h:
3661         * platform/graphics/RoundedIntRect.cpp: Added.
3662         (WebCore::RoundedIntRect::Radii::isZero):
3663         (WebCore::RoundedIntRect::Radii::scale):
3664         (WebCore::RoundedIntRect::Radii::expand):
3665         (WebCore::RoundedIntRect::Radii::includeLogicalEdges):
3666         (WebCore::RoundedIntRect::Radii::excludeLogicalEdges):
3667         (WebCore::RoundedIntRect::RoundedIntRect):
3668         (WebCore::RoundedIntRect::includeLogicalEdges):
3669         (WebCore::RoundedIntRect::excludeLogicalEdges):
3670         * platform/graphics/RoundedIntRect.h: Added.
3671         (WebCore::RoundedIntRect::Radii::Radii):
3672         (WebCore::RoundedIntRect::Radii::setTopLeft):
3673         (WebCore::RoundedIntRect::Radii::setTopRight):
3674         (WebCore::RoundedIntRect::Radii::setBottomLeft):
3675         (WebCore::RoundedIntRect::Radii::setBottomRight):
3676         (WebCore::RoundedIntRect::Radii::topLeft):
3677         (WebCore::RoundedIntRect::Radii::topRight):
3678         (WebCore::RoundedIntRect::Radii::bottomLeft):
3679         (WebCore::RoundedIntRect::Radii::bottomRight):
3680         (WebCore::RoundedIntRect::Radii::expand):
3681         (WebCore::RoundedIntRect::Radii::shrink):
3682         (WebCore::RoundedIntRect::rect):
3683         (WebCore::RoundedIntRect::radii):
3684         (WebCore::RoundedIntRect::isRounded):
3685         (WebCore::RoundedIntRect::isEmpty):
3686         (WebCore::RoundedIntRect::setRect):
3687         (WebCore::RoundedIntRect::setRadii):
3688         (WebCore::RoundedIntRect::move):
3689         (WebCore::RoundedIntRect::inflate):
3690         (WebCore::RoundedIntRect::inflateWithRadii):
3691         (WebCore::RoundedIntRect::expandRadii):
3692         (WebCore::RoundedIntRect::shrinkRadii):
3693         * rendering/RenderBox.cpp:
3694         (WebCore::RenderBox::pushContentsClip):
3695         * rendering/RenderBoxModelObject.cpp:
3696         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3697         (WebCore::RenderBoxModelObject::paintBorder):
3698         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
3699         (WebCore::RenderBoxModelObject::paintBoxShadow):
3700         * rendering/RenderBoxModelObject.h:
3701         * rendering/RenderObject.cpp:
3702         (WebCore::RenderObject::drawBoxSideFromPath):
3703         * rendering/RenderReplaced.cpp:
3704         (WebCore::RenderReplaced::paint):
3705         * rendering/RenderThemeChromiumWin.cpp:
3706         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
3707         * rendering/RenderThemeMac.mm:
3708         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
3709         (WebCore::RenderThemeMac::paintSliderTrack):
3710         * rendering/RenderThemeSafari.cpp:
3711         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
3712         (WebCore::RenderThemeSafari::paintSliderTrack):
3713         * rendering/RenderThemeWinCE.cpp:
3714         (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):
3715         * rendering/RenderWidget.cpp:
3716         (WebCore::RenderWidget::paint):
3717         * rendering/style/BorderData.h:
3718         * rendering/style/RenderStyle.cpp:
3719         (WebCore::calcRadiiFor):
3720         (WebCore::calcConstraintScaleFor):
3721         (WebCore::RenderStyle::getRoundedBorderFor):
3722         (WebCore::RenderStyle::getRoundedInnerBorderWithBorderWidths):
3723         * rendering/style/RenderStyle.h:
3724         (WebCore::InheritedFlags::setBorderRadius):
3725
3726 2011-01-18  MORITA Hajime  <morrita@google.com>
3727
3728         Reviewed by Simon Fraser.
3729
3730         Refactoring: Extract RoundedIntRect class
3731         https://bugs.webkit.org/show_bug.cgi?id=51664
3732
3733         RoundedIntRect is a pair of rect and four IntSize objects which represent
3734         corner radii of the rectangle. IntSize is grouped into RoundedIntRect::Radii.
3735         Now RenderStyle::getRoundedBorderFor() and RenderStyle::getRoundedInnerBorderWithBorderWidths()
3736         return RoundedIntRect and GraphicsContext::addRoundedRectClip(), GraphicsContext::fillRoundedRect()
3737         and other functions accept RoundedIntRect as an argument.
3738
3739         No new tests. No behavioral change.
3740
3741         * Android.mk:
3742         * CMakeLists.txt:
3743         * WebCore.gypi:
3744         * WebCore.pro:
3745         * WebCore.xcodeproj/project.pbxproj:
3746         * platform/graphics/GraphicsContext.cpp:
3747         (WebCore::GraphicsContext::addRoundedRectClip):
3748         (WebCore::GraphicsContext::clipOutRoundedRect):
3749         (WebCore::GraphicsContext::fillRoundedRect):
3750         * platform/graphics/GraphicsContext.h:
3751         * platform/graphics/RoundedIntRect.cpp: Added.
3752         (WebCore::RoundedIntRect::Radii::isZero):
3753         (WebCore::RoundedIntRect::Radii::scale):
3754         (WebCore::RoundedIntRect::Radii::expand):
3755         (WebCore::RoundedIntRect::Radii::includeLogicalEdges):
3756         (WebCore::RoundedIntRect::Radii::excludeLogicalEdges):
3757         (WebCore::RoundedIntRect::RoundedIntRect):
3758         (WebCore::RoundedIntRect::includeLogicalEdges):
3759         (WebCore::RoundedIntRect::excludeLogicalEdges):
3760         * platform/graphics/RoundedIntRect.h: Added.
3761         (WebCore::RoundedIntRect::Radii::Radii):
3762         (WebCore::RoundedIntRect::Radii::setTopLeft):
3763         (WebCore::RoundedIntRect::Radii::setTopRight):
3764         (WebCore::RoundedIntRect::Radii::setBottomLeft):
3765         (WebCore::RoundedIntRect::Radii::setBottomRight):
3766         (WebCore::RoundedIntRect::Radii::topLeft):
3767         (WebCore::RoundedIntRect::Radii::topRight):
3768         (WebCore::RoundedIntRect::Radii::bottomLeft):
3769         (WebCore::RoundedIntRect::Radii::bottomRight):
3770         (WebCore::RoundedIntRect::Radii::expand):
3771         (WebCore::RoundedIntRect::Radii::shrink):
3772         (WebCore::RoundedIntRect::rect):
3773         (WebCore::RoundedIntRect::radii):
3774         (WebCore::RoundedIntRect::isRounded):
3775         (WebCore::RoundedIntRect::isEmpty):
3776         (WebCore::RoundedIntRect::setRect):
3777         (WebCore::RoundedIntRect::setRadii):
3778         (WebCore::RoundedIntRect::move):
3779         (WebCore::RoundedIntRect::inflate):
3780         (WebCore::RoundedIntRect::inflateWithRadii):
3781         (WebCore::RoundedIntRect::expandRadii):
3782         (WebCore::RoundedIntRect::shrinkRadii):
3783         * rendering/RenderBox.cpp:
3784         (WebCore::RenderBox::pushContentsClip):
3785         * rendering/RenderBoxModelObject.cpp:
3786         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3787         (WebCore::RenderBoxModelObject::paintBorder):
3788         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
3789         (WebCore::RenderBoxModelObject::paintBoxShadow):
3790         * rendering/RenderBoxModelObject.h:
3791         * rendering/RenderObject.cpp:
3792         (WebCore::RenderObject::drawBoxSideFromPath):
3793         * rendering/RenderReplaced.cpp:
3794         (WebCore::RenderReplaced::paint):
3795         * rendering/RenderThemeChromiumWin.cpp:
3796         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
3797         * rendering/RenderThemeMac.mm:
3798         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
3799         (WebCore::RenderThemeMac::paintSliderTrack):
3800         * rendering/RenderThemeSafari.cpp:
3801         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
3802         (WebCore::RenderThemeSafari::paintSliderTrack):
3803         * rendering/RenderThemeWinCE.cpp:
3804         (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):
3805         * rendering/RenderWidget.cpp:
3806         (WebCore::RenderWidget::paint):
3807         * rendering/style/BorderData.h:
3808         * rendering/style/RenderStyle.cpp:
3809         (WebCore::calcRadiiFor):
3810         (WebCore::calcConstraintScaleFor):
3811         (WebCore::RenderStyle::getRoundedBorderFor):
3812         (WebCore::RenderStyle::getRoundedInnerBorderWithBorderWidths):
3813         * rendering/style/RenderStyle.h:
3814         (WebCore::InheritedFlags::setBorderRadius):
3815
3816 2011-01-18  Victoria Kirst  <vrk@chromium.org>
3817
3818         Reviewed by Kenneth Russell.
3819
3820         [chromium] Adding support for YV16 video frame formats.
3821         https://bugs.webkit.org/show_bug.cgi?id=52345
3822
3823         * platform/graphics/chromium/VideoLayerChromium.cpp:
3824         (WebCore::VideoLayerChromium::determineTextureFormat):
3825         (WebCore::VideoLayerChromium::draw):
3826
3827 2011-01-18  David Hyatt  <hyatt@apple.com>
3828
3829         Reviewed by Dan Bernstein.
3830
3831         <rdar://problem/8479998> REGRESSION (r67660): broken button layout at devforums.apple.com
3832         
3833         Exclude floating objects from shrinking to avoid floats.  They should never do this.  Timing-related bugs could
3834         occur as a result of this mistake, and the change to rewrite pagination to defer layout of floats until they
3835         got encountered on the correct line exposed this issue.
3836
3837         Added /fast/block/float/float-overflow-hidden-containing-block-width.html.
3838
3839         * rendering/RenderBox.cpp:
3840         (WebCore::RenderBox::shrinkToAvoidFloats):
3841
3842 2011-01-18  Zhenyao Mo  <zmo@google.com>
3843
3844         Reviewed by Kenneth Russell.
3845
3846         Make CheckedInt<long> and CheckedInt<unsigned long> work
3847         https://bugs.webkit.org/show_bug.cgi?id=52401
3848
3849         * html/canvas/CheckedInt.h:
3850         (WebCore::CheckedInt::CheckedInt): Merge with the patch provided by Benoit Jacob.
3851         * html/canvas/WebGLBuffer.cpp:
3852         (WebCore::WebGLBuffer::associateBufferDataImpl): Use CheckedInt<long> instead of CheckedInt<int>.
3853         (WebCore::WebGLBuffer::associateBufferSubDataImpl): Ditto.
3854
3855 2011-01-18  Kenneth Russell  <kbr@google.com>
3856
3857         Reviewed by David Levin.
3858
3859         Must strip comments from WebGL shaders before enforcing character set
3860         https://bugs.webkit.org/show_bug.cgi?id=52390
3861
3862         Strip comments from incoming shaders, preserving line numbers,
3863         before validating that they conform to the ESSL character set.
3864         Revert changes from http://trac.webkit.org/changeset/75735 which
3865         allowed invalid characters to be passed to certain APIs.
3866
3867         Tested with WebGL layout tests, conformance test suite and several
3868         WebGL demos in both Safari and Chromium.
3869
3870         * html/canvas/WebGLRenderingContext.cpp:
3871         (WebCore::StripComments::StripComments::process):
3872         (WebCore::WebGLRenderingContext::shaderSource):
3873
3874 2011-01-18  Ryosuke Niwa  <rniwa@webkit.org>
3875
3876         Reviewed by Eric Seidel.
3877
3878         Stop instantiating legacy editing positions in DeleteSelectionCommand, IndentOudentCommand,
3879         InsertLineBreakCommand, InsertListCOmmand.cpp, InsertParagraphSeparatorCommand, and htmlediting.cpp
3880         https://bugs.webkit.org/show_bug.cgi?id=52644
3881
3882         This is a cleanup to stop instantiating legacy editing positions in the following tests.
3883         firstDeepEditingPositionForNode and lastDeepEditingPositionForNode in htmlediting.h are not updated
3884         because doing so requires significant code changes. They are tracked on the bug 52642.
3885
3886         * editing/DeleteSelectionCommand.cpp:
3887         (WebCore::DeleteSelectionCommand::initializeStartEnd):
3888         (WebCore::updatePositionForNodeRemoval):
3889         (WebCore::DeleteSelectionCommand::removeNode):
3890         (WebCore::updatePositionForTextRemoval):
3891         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
3892         * editing/IndentOutdentCommand.cpp:
3893         (WebCore::IndentOutdentCommand::outdentParagraph):
3894         * editing/InsertLineBreakCommand.cpp:
3895         (WebCore::InsertLineBreakCommand::doApply):
3896         * editing/InsertListCommand.cpp:
3897         (WebCore::InsertListCommand::doApplyForSingleParagraph):
3898         (WebCore::InsertListCommand::unlistifyParagraph):
3899         (WebCore::InsertListCommand::listifyParagraph):
3900         * editing/InsertParagraphSeparatorCommand.cpp:
3901         (WebCore::InsertParagraphSeparatorCommand::doApply):
3902         * editing/htmlediting.cpp:
3903         (WebCore::enclosingBlock):
3904         (WebCore::enclosingList):
3905         (WebCore::enclosingListChild):
3906         (WebCore::indexForVisiblePosition):
3907         (WebCore::isNodeVisiblyContainedWithin):
3908         (WebCore::avoidIntersectionWithNode):
3909
3910 2011-01-18  Benjamin Kalman  <kalman@chromium.org>
3911
3912         Reviewed by Ryosuke Niwa.
3913
3914         Tweak style in visible_units.cpp and TextIterator.cpp in preparation for another patch
3915         https://bugs.webkit.org/show_bug.cgi?id=52610
3916
3917         This is a purely aesthetic change.
3918
3919         * editing/TextIterator.cpp:
3920         (WebCore::SimplifiedBackwardsTextIterator::advance):
3921         * editing/visible_units.cpp:
3922         (WebCore::previousBoundary):
3923
3924 2011-01-18  Adam Klein  <adamk@chromium.org>
3925
3926         Reviewed by Darin Fisher.
3927
3928         [Chromium] Replace ChromiumBridge::widgetSetCursor with ChromeClient::setCursor
3929         https://bugs.webkit.org/show_bug.cgi?id=42236
3930
3931         * platform/chromium/ChromiumBridge.h:
3932         * platform/chromium/WidgetChromium.cpp:
3933         (WebCore::Widget::setCursor):
3934
3935 2011-01-18  Chris Fleizach  <cfleizach@apple.com>
3936
3937         Reviewed by Darin Adler.
3938
3939         REGRESSION: A problem with Voiceover and finding links
3940         https://bugs.webkit.org/show_bug.cgi?id=52324
3941
3942         Fallout from recent change to make WebCore return its own scroll view.
3943            1) There were two scroll views in the hierarchy, one which no needed to be ignored.
3944            2) Hit tests for sub frames needed to be offset.
3945            3) The check for whether an attachment is ignored must happen earlier than using
3946               the helpText to determine if an element should be ignored.
3947
3948         Test: platform/mac/accessibility/iframe-with-title-correct-hierarchy.html
3949
3950         * accessibility/AccessibilityObject.cpp:
3951         (WebCore::AccessibilityObject::elementAccessibilityHitTest):
3952         * accessibility/AccessibilityRenderObject.cpp:
3953         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
3954         * accessibility/mac/AccessibilityObjectWrapper.mm:
3955         (-[AccessibilityObjectWrapper scrollViewParent]):
3956
3957 2011-01-18  Adam Roben  <aroben@apple.com>
3958
3959         Call alternate CFHTTPCookie functions if available
3960
3961         Fixes <http://webkit.org/b/52637> <rdar://problem/8878984>.
3962
3963         Reviewed by Darin Adler.
3964
3965         * platform/network/cf/CookieJarCFNet.cpp: Added soft-linking macros to
3966         pull in the alternate CFHTTPCookie functions.
3967
3968         (WebCore::cookieDomain):
3969         (WebCore::cookieExpirationTime):
3970         (WebCore::cookieName):
3971         (WebCore::cookiePath):
3972         (WebCore::cookieValue):
3973         Added these wrappers around the CFHTTPCookie functions. We call the
3974         alternate functions if they exist, otherwise fall back to the current
3975         functions.
3976
3977         (WebCore::filterCookies):
3978         (WebCore::getRawCookies):
3979         (WebCore::deleteCookie):
3980         Changed to use the wrapper functions.
3981
3982 2011-01-18  Martin Robinson  <mrobinson@igalia.com>
3983
3984         Reviewed by Eric Seidel.
3985
3986         [GTK] Filenames are converted to URLs during edit drags
3987         https://bugs.webkit.org/show_bug.cgi?id=52096
3988
3989         * platform/gtk/DragDataGtk.cpp: Only advertise and deliver filenames as URLs if the
3990         conversion policy allows it.
3991         (WebCore::DragData::containsURL): Ditto.
3992         (WebCore::DragData::asURL): Ditto.
3993
3994 2011-01-18  Helder Correia  <helder@sencha.com>
3995
3996         Reviewed by Kenneth Rohde Christiansen.
3997
3998         [Qt] Incorrect shadow alpha with semi-transparent solid fillStyle
3999         https://bugs.webkit.org/show_bug.cgi?id=52611
4000
4001         This is related to bug 52559. The shadow color alpha must be multiplied
4002         by the context brush alpha.
4003
4004         Test: fast/canvas/canvas-fillPath-alpha-shadow.html
4005
4006         * platform/graphics/qt/GraphicsContextQt.cpp:
4007         (WebCore::GraphicsContext::fillPath):
4008
4009 2011-01-18  Andrey Kosyakov  <caseq@chromium.org>
4010
4011         Reviewed by Yury Semikhatsky.
4012
4013         Web Inspector: fail resource.requestContent() immediately for WebSocket resources
4014         https://bugs.webkit.org/show_bug.cgi?id=52628
4015
4016         * English.lproj/localizedStrings.js: Rename WebSocket -> WebSockets in resource catetegories (rest are in plural, too)
4017         * inspector/front-end/ExtensionServer.js: Do not expose webInspector.resources.Types in extensions API (obsolete)
4018         (WebInspector.ExtensionServer.prototype._buildExtensionAPIInjectedScript):
4019         * inspector/front-end/Resource.js:
4020         (WebInspector.Resource.Type.toUIString): Remove ResourceType.Media as it's not used.
4021         (WebInspector.Resource.Type.toString): ditto.
4022         (WebInspector.Resource.prototype.requestContent): Fail immediately for WebSocket resources.
4023         * inspector/front-end/inspector.js: Rename WebSocket -> WebSockets in resource catetegories (rest are in plural, too)
4024
4025 2011-01-18  Helder Correia  <helder@sencha.com>
4026
4027         Reviewed by Dirk Schulze.
4028
4029         REGRESSION(75139): SVG gradients are not applied to texts
4030         https://bugs.webkit.org/show_bug.cgi?id=52531
4031 </