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