2011-01-24 Andreas Kling <kling@webkit.org>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-24  Andreas Kling  <kling@webkit.org>
2
3         Reviewed by Kenneth Rohde Christiansen.
4
5         [Qt] Fix warnings about unregistering an invalid timer
6         https://bugs.webkit.org/show_bug.cgi?id=53006
7
8         The ShadowBuffer's purge timer ID was initialized with 0 which lead
9         to us calling QObject::killTimer(0), causing some qWarnings.
10
11         * platform/graphics/qt/ContextShadowQt.cpp:
12         (WebCore::ShadowBuffer::ShadowBuffer):
13         (WebCore::ShadowBuffer::schedulePurge):
14
15 2011-01-21  Mikhail Naganov  <mnaganov@chromium.org>
16
17         Reviewed by Pavel Feldman.
18
19         Web Inspector: [Chromium] Fix heap snapshot table sorting.
20
21         Fix table sorting to avoid qsort instability artefacts.
22
23         https://bugs.webkit.org/show_bug.cgi?id=52914
24
25         * inspector/front-end/HeapSnapshotView.js:
26         (WebInspector.HeapSnapshotView.prototype._sortData):
27         (WebInspector.HeapSnapshotDataGridList.propertyComparator.comparator):
28         (WebInspector.HeapSnapshotDataGridList.propertyComparator):
29
30 2011-01-24  Mikhail Naganov  <mnaganov@chromium.org>
31
32         Reviewed by Yury Semikhatsky.
33
34         Web Inspector: Find duplicate strings in localizedStrings.js, update it.
35
36         https://bugs.webkit.org/show_bug.cgi?id=53005
37
38         * English.lproj/localizedStrings.js:
39
40 2011-01-24  Pavel Podivilov  <podivilov@chromium.org>
41
42         Unreviewed, build fix  for r76509.
43
44         * inspector/InspectorDebuggerAgent.cpp:
45         (WebCore::InspectorDebuggerAgent::setBreakpoint):
46
47 2011-01-24  Pavel Podivilov  <podivilov@chromium.org>
48
49         Unreviewed, build fix  for r76509.
50
51         * bindings/js/ScriptDebugServer.h:
52
53 2011-01-24  Pavel Podivilov  <podivilov@chromium.org>
54
55         Reviewed by Yury Semikhatsky.
56
57         Web Inspector: set breakpoints by line:column.
58         https://bugs.webkit.org/show_bug.cgi?id=52615
59
60         * CMakeLists.txt:
61         * GNUmakefile.am:
62         * WebCore.gypi:
63         * WebCore.pro:
64         * WebCore.vcproj/WebCore.vcproj:
65         * WebCore.xcodeproj/project.pbxproj:
66         * bindings/js/ScriptDebugServer.cpp:
67         (WebCore::ScriptDebugServer::setBreakpoint):
68         (WebCore::ScriptDebugServer::removeBreakpoint):
69         (WebCore::ScriptDebugServer::hasBreakpoint):
70         (WebCore::ScriptDebugServer::clearBreakpoints):
71         * bindings/js/ScriptDebugServer.h:
72         * bindings/v8/DebuggerScript.js:
73         ():
74         * bindings/v8/ScriptDebugServer.cpp:
75         (WebCore::ScriptDebugServer::setBreakpoint):
76         * bindings/v8/ScriptDebugServer.h:
77         * inspector/Inspector.idl:
78         * inspector/InspectorBrowserDebuggerAgent.cpp:
79         (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
80         * inspector/InspectorDebuggerAgent.cpp:
81         (WebCore::InspectorDebuggerAgent::setStickyBreakpoint):
82         (WebCore::InspectorDebuggerAgent::setBreakpoint):
83         (WebCore::InspectorDebuggerAgent::restoreBreakpoint):
84         (WebCore::InspectorDebuggerAgent::didParseSource):
85         * inspector/InspectorDebuggerAgent.h:
86         * inspector/ScriptBreakpoint.cpp: Removed.
87         * inspector/ScriptBreakpoint.h:
88         (WebCore::ScriptBreakpoint::ScriptBreakpoint):
89         * inspector/front-end/Breakpoint.js:
90         (WebInspector.Breakpoint):
91         (WebInspector.Breakpoint.prototype.get url):
92         * inspector/front-end/BreakpointManager.js:
93         (WebInspector.JavaScriptBreakpoint.prototype._serializeToJSON):
94         * inspector/front-end/DebuggerModel.js:
95         (WebInspector.DebuggerModel.prototype.continueToLine):
96         (WebInspector.DebuggerModel.prototype.setBreakpoint):
97         (WebInspector.DebuggerModel.prototype._breakpointSetOnBackend):
98         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
99
100 2011-01-24  Peter Beverloo  <peter@chromium.org>
101
102         Reviewed by Pavel Feldman.
103
104         Web Inspector: recognize application/x-font-woff as a valid mime-type.
105         https://bugs.webkit.org/show_bug.cgi?id=52977
106
107         No new tests.
108
109         * inspector/front-end/inspector.js:
110
111 2011-01-24  Pavel Podivilov  <podivilov@chromium.org>
112
113         Unreviewed, fix for r76497.
114
115         * inspector/front-end/ResourcesPanel.js:
116         (WebInspector.ResourcesPanel.prototype.show):
117
118 2011-01-24  Andreas Kling  <kling@webkit.org>
119
120         Reviewed by Tor Arne Vestbø.
121
122         [Qt] Use rad2deg() from WTF instead of rolling our own.
123         https://bugs.webkit.org/show_bug.cgi?id=52993
124
125         * platform/graphics/qt/GraphicsContextQt.cpp:
126         (WebCore::GraphicsContext::rotate):
127         * platform/graphics/qt/PathQt.cpp:
128         (WebCore::Path::addArc):
129
130 2011-01-24  Sergio Villar Senin  <svillar@igalia.com>
131
132         Reviewed by Martin Robinson.
133
134         [Gtk] ResourceHandleSoup: do not wait for streams to close to issue didFinishLoading
135         https://bugs.webkit.org/show_bug.cgi?id=52885
136
137         No new tests as it does not change functionality. We will not wait for
138         the the input stream to close to issue didFinishLoading to
139         WebCore. We expect a subtle performance improvement with this
140         patch when loading complex web pages, as we wouldn't have to wait
141         for the stream to close (which involves creating a thread among
142         other things).
143
144         * platform/network/soup/ResourceHandleSoup.cpp:
145         (WebCore::closeCallback):
146         (WebCore::readCallback):
147
148 2011-01-21  Pavel Podivilov  <podivilov@chromium.org>
149
150         Reviewed by Pavel Feldman.
151
152         Web Inspector: eliminate SourceView and ScriptView classes.
153         https://bugs.webkit.org/show_bug.cgi?id=52896
154
155         SourceView and ScriptView delegate everything to SourceFrame and should be eliminated.
156
157         * WebCore.gypi:
158         * WebCore.vcproj/WebCore.vcproj:
159         * inspector/front-end/GoToLineDialog.js:
160         (WebInspector.GoToLineDialog.prototype._highlightSelectedLine):
161         * inspector/front-end/ResourceView.js:
162         (WebInspector.ResourceView.createResourceView):
163         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
164         (WebInspector.SourceFrameContentProviderForResource):  Moved from SourceView.
165         * inspector/front-end/ResourcesPanel.js:
166         (WebInspector.ResourcesPanel.prototype.show):
167         (WebInspector.ResourcesPanel.prototype._applyDiffMarkup):
168         (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsUpdated):
169         * inspector/front-end/ScriptView.js: Removed.
170         * inspector/front-end/ScriptsPanel.js:
171         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
172         (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource):
173         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
174         (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions):
175         (WebInspector.ScriptsPanel.prototype._formatScript):
176         (WebInspector.SourceFrameContentProviderForScript): Moved from ScriptView.
177         * inspector/front-end/SourceFrame.js:
178         (WebInspector.SourceFrame):
179         (WebInspector.SourceFrame.prototype.show):
180         (WebInspector.SourceFrame.prototype.hide):
181         (WebInspector.SourceFrame.prototype.hasContent):
182         (WebInspector.SourceFrame.prototype._createTextViewer):
183         (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
184         (WebInspector.SourceFrame.prototype.performSearch):
185         * inspector/front-end/SourceView.js: Removed.
186         * inspector/front-end/WebKit.qrc:
187         * inspector/front-end/inspector.html:
188
189 2011-01-24  Andras Becsi  <abecsi@webkit.org>
190
191         Reviewed by Csaba Osztrogonác.
192
193         [Qt] Move project files into Source
194         https://bugs.webkit.org/show_bug.cgi?id=52891
195
196         No new tests needed.
197
198         * WebCore.pri:
199         * WebCore.pro:
200
201 2011-01-24  Kent Tamura  <tkent@chromium.org>
202
203         Unreviewed, trivial fix.
204
205         Fix a Chromium-only assertion failure by r76491.
206         https://bugs.webkit.org/show_bug.cgi?id=38982
207
208         Separate icon loading from the FileChooser constructor in order to avoid
209         ref() before adoptRef().
210
211         * platform/FileChooser.cpp:
212         (WebCore::FileChooser::FileChooser):
213         (WebCore::FileChooser::initialize):
214         (WebCore::FileChooser::create):
215         * platform/FileChooser.h:
216
217 2011-01-24  MORITA Hajime  <morrita@google.com>
218
219         Reviewed by Kent Tamura.
220
221         TextControlInnerElement::m_shadowParent should be removed.
222         https://bugs.webkit.org/show_bug.cgi?id=52998
223
224         No new tests. No behavioral change.
225
226         * rendering/TextControlInnerElements.cpp:
227         (WebCore::TextControlInnerElement::TextControlInnerElement):
228         * rendering/TextControlInnerElements.h:
229
230 2011-01-24  Yury Semikhatsky  <yurys@chromium.org>
231
232         Reviewed by Pavel Feldman.
233
234         REGRESSION (r72895): console.trace crashes
235         https://bugs.webkit.org/show_bug.cgi?id=52981
236
237         - Use local RefPtr variable for accessing PassRefPtr arguments to make sure the PassRefPtr has
238         non-null value.
239         - Use PassRefPtr for objects whos ownership is passed to the inspector.
240
241         * GNUmakefile.am:
242         * WebCore.gypi:
243         * WebCore.pro:
244         * WebCore.vcproj/WebCore.vcproj:
245         * WebCore.xcodeproj/project.pbxproj:
246         * inspector/InspectorConsoleInstrumentation.h: Added. Extract inline methods called from the console into their
247         own header to reduce compilation time of other classes that depend on the inspector instrumentation.
248         (WebCore::InspectorInstrumentation::addMessageToConsole):
249         (WebCore::InspectorInstrumentation::consoleCount):
250         (WebCore::InspectorInstrumentation::startConsoleTiming):
251         (WebCore::InspectorInstrumentation::stopConsoleTiming):
252         (WebCore::InspectorInstrumentation::consoleMarkTimeline):
253         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
254         (WebCore::InspectorInstrumentation::addProfile):
255         (WebCore::InspectorInstrumentation::profilerEnabled):
256         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
257         * inspector/InspectorDatabaseInstrumentation.h: Added. Extract inline methods called from the datanase code into their
258         own header to reduce compilation time of other classes that depend on the inspector instrumentation.
259         (WebCore::InspectorInstrumentation::didOpenDatabase):
260         * inspector/InspectorInstrumentation.cpp:
261         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
262         (WebCore::InspectorInstrumentation::consoleCountImpl):
263         (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
264         (WebCore::InspectorInstrumentation::consoleMarkTimelineImpl):
265         (WebCore::InspectorInstrumentation::addProfileImpl):
266         (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
267         * inspector/InspectorInstrumentation.h:
268         * page/Console.cpp: use RefPtr local variable instead of accessing PassRefPtr argument directly.
269         (WebCore::Console::addMessage):
270         (WebCore::Console::trace):
271         (WebCore::Console::count):
272         (WebCore::Console::markTimeline):
273         (WebCore::Console::profileEnd):
274         (WebCore::Console::timeEnd):
275         (WebCore::Console::group):
276         (WebCore::Console::groupCollapsed):
277         * storage/Database.cpp:
278         (WebCore::Database::openDatabase):
279
280 2010-01-24  Kent Tamura  <tkent@chromium.org>
281
282         Reviewed by Darin Fisher.
283
284         [Chromium] Support icon loading for <input type=file>
285         https://bugs.webkit.org/show_bug.cgi?id=38982
286
287         An icon data in Chromium port is represented as WebCore::Image. We
288         don't need OS-specific code anymore.
289
290         * WebCore.gypi:
291         * platform/graphics/Icon.h:
292         (WebCore::Icon::create): Add Chromium-specific factory.
293         * platform/graphics/chromium/IconChromium.cpp: Added.
294         * platform/graphics/chromium/IconChromiumLinux.cpp: Removed.
295         * platform/graphics/chromium/IconChromiumMac.cpp: Removed.
296         * platform/graphics/chromium/IconChromiumWin.cpp: Removed.
297         * platform/graphics/chromium/PlatformIcon.h:
298
299 2011-01-21  Pavel Podivilov  <podivilov@chromium.org>
300
301         Reviewed by Pavel Feldman.
302
303         Web Inspector: move search functions from SourceView to SourceFrame.
304         https://bugs.webkit.org/show_bug.cgi?id=52895
305
306         This is the last step before eliminating SourceView and ScriptView since
307         this classes just delegate everything to SourceFrame.
308
309         * inspector/front-end/SourceFrame.js:
310         (WebInspector.SourceFrame.prototype.set visible):
311         (WebInspector.SourceFrame.prototype._clearLineHighlight):
312         (WebInspector.SourceFrame.prototype._createTextViewer):
313         (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
314         (WebInspector.SourceFrame.prototype.performSearch):
315         (WebInspector.SourceFrame.prototype.searchCanceled):
316         (WebInspector.SourceFrame.prototype.jumpToFirstSearchResult):
317         (WebInspector.SourceFrame.prototype.jumpToLastSearchResult):
318         (WebInspector.SourceFrame.prototype.jumpToNextSearchResult):
319         (WebInspector.SourceFrame.prototype.jumpToPreviousSearchResult):
320         (WebInspector.SourceFrame.prototype.showingFirstSearchResult):
321         (WebInspector.SourceFrame.prototype.showingLastSearchResult):
322         (WebInspector.SourceFrame.prototype._jumpToSearchResult):
323         * inspector/front-end/SourceView.js:
324         (WebInspector.SourceView.prototype.hide):
325         (WebInspector.SourceView.prototype.searchCanceled):
326         (WebInspector.SourceView.prototype.performSearch):
327         (WebInspector.SourceView.prototype.jumpToFirstSearchResult):
328         (WebInspector.SourceView.prototype.jumpToLastSearchResult):
329         (WebInspector.SourceView.prototype.jumpToNextSearchResult):
330         (WebInspector.SourceView.prototype.jumpToPreviousSearchResult):
331         (WebInspector.SourceView.prototype.showingFirstSearchResult):
332         (WebInspector.SourceView.prototype.showingLastSearchResult):
333         (WebInspector.SourceView.prototype.clearMessages):
334
335 2011-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>
336
337         Unreviewed, rolling out r76463.
338         http://trac.webkit.org/changeset/76463
339         https://bugs.webkit.org/show_bug.cgi?id=52993
340
341         It broke canvas/philip/tests/2d.path.stroke.skew.html
342         (Requested by Ossy on #webkit).
343
344         * platform/graphics/qt/GraphicsContextQt.cpp:
345         (WebCore::GraphicsContext::rotate):
346         * platform/graphics/qt/PathQt.cpp:
347         (WebCore::Path::addArc):
348
349 2011-01-23  Andrey Kosyakov  <caseq@chromium.org>
350
351         Reviewed by Pavel Feldman.
352
353         Web Inspector: summary bar is not resized properly with the rest of network panel
354         https://bugs.webkit.org/show_bug.cgi?id=52881
355
356         * inspector/front-end/NetworkPanel.js:
357         (WebInspector.NetworkPanel.prototype.updateSidebarWidth):
358         (WebInspector.NetworkPanel.prototype._positionSummaryBar):
359         (WebInspector.NetworkPanel.prototype._toggleGridMode):
360
361 2011-01-19  MORITA Hajime  <morrita@google.com>
362
363         Reviewed by Ryosuke Niwa.
364
365         Space and tab characters "sent" by an input method give totally different results than typing them directly
366         https://bugs.webkit.org/show_bug.cgi?id=5241
367         
368         * Introduced TextEvent::InputTypeComposition and TypingCommand::TextCompositionType to 
369           distinguish text input which is originated by composition.
370         * Generalized rebalanceWhitespaceAt() to rebalanceWhitespaceOnTextSubstring() to rebalancing 
371           range of string on text node, instead of surrounding part of that.
372
373         Test: editing/inserting/insert-composition-whitespace.html
374
375         * dom/TextEvent.h:
376         (WebCore::TextEvent::isComposition):
377         * dom/TextEventInputType.h: Added TextEventInputComposition as a member of TextEvent::InputType
378         * editing/CompositeEditCommand.cpp:
379         (WebCore::containsOnlyWhitespace):
380         (WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor):
381         (WebCore::CompositeEditCommand::canRebalance):
382         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
383         (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Added: A generalized version of rebalanceWhitespaceAt(), which takes a range inside Text string.
384         * editing/CompositeEditCommand.h:
385         * editing/Editor.cpp:
386         (WebCore::Editor::insertTextForConfirmedComposition): Added.
387         (WebCore::Editor::insertTextWithoutSendingTextEvent):
388         (WebCore::Editor::confirmComposition): Now uses insertTextForConfirmedComposition().
389         (WebCore::Editor::setComposition):
390         * editing/Editor.h:
391         * editing/InsertTextCommand.cpp:
392         (WebCore::InsertTextCommand::input):
393         * editing/InsertTextCommand.h:
394         * editing/TypingCommand.cpp:
395         (WebCore::TypingCommand::TypingCommand):
396         (WebCore::TypingCommand::insertText):
397         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
398         * editing/TypingCommand.h: Added TypingCommand::m_compositionType and TypingCommand::TextCompositionType
399         (WebCore::TypingCommand::setCompositionType): Added.
400         (WebCore::TypingCommand::create):
401
402 2011-01-23  Mark Rowe  <mrowe@apple.com>
403
404         Follow-up to r76477.
405
406         Fix the scripts that detect problematic code such as static initializers
407         and destructors, weak vtables, inappropriate files in the framework wrappers,
408         and public headers including private headers. These had all been broken
409         since the projects were moved in to the Source directory as the paths to the
410         scripts were not updated at that time.
411
412         Stop copying an IDL file in to the framework wrapper. Doing that doesn't even make sense.
413
414         * WebCore.xcodeproj/project.pbxproj:
415
416 2011-01-23  Mark Rowe  <mrowe@apple.com>
417
418         Build fix after r76459.
419
420         Static member variables or globals of types that have constructors or destructors are bad as
421         they generate static initializers and destructors. This is code that is run either at link time
422         when the library is loaded in to memory or at application termination time. Both of these are
423         terrible for performance and are thus outlawed in WebKit code.
424
425         The typical solution is to replace the static member or global with a function that allocates
426         the necessary variable on the heap. The variable is leaked to prevent it from being destroyed
427         at application termination time. The DEFINE_STATIC_LOCAL macro wraps this in to a concise little
428         package, but sadly fails to work in this case due to the type containing multiple template
429         parameters.
430         
431         * inspector/InspectorInstrumentation.cpp:
432         (WebCore::InspectorInstrumentation::inspectorAgents):
433         * inspector/InspectorInstrumentation.h:
434         (WebCore::InspectorInstrumentation::bindInspectorAgent):
435         (WebCore::InspectorInstrumentation::unbindInspectorAgent):
436         (WebCore::InspectorInstrumentation::inspectorAgentForPage):
437
438 2011-01-21  Vangelis Kokkevis  <vangelis@chromium.org>
439
440         Reviewed by Kenneth Russell.
441
442         [chromium] Add support for -webkit-mask properties to the
443         accelerated compositing path.
444         https://bugs.webkit.org/show_bug.cgi?id=49780
445          
446         Tests: Existing tests in LayoutTests/compositing/masks
447
448         * platform/graphics/chromium/ContentLayerChromium.cpp:
449         (WebCore::ContentLayerChromium::draw):
450         (WebCore::ContentLayerChromium::unreserveContentsTexture):
451         (WebCore::ContentLayerChromium::bindContentsTexture):
452         * platform/graphics/chromium/ContentLayerChromium.h:
453         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
454         (WebCore::GraphicsLayerChromium::setMaskLayer):
455         * platform/graphics/chromium/GraphicsLayerChromium.h:
456         * platform/graphics/chromium/LayerChromium.cpp:
457         (WebCore::LayerChromium::LayerChromium):
458         * platform/graphics/chromium/LayerChromium.h:
459         (WebCore::LayerChromium::setMaskLayer):
460         (WebCore::LayerChromium::maskLayer):
461         (WebCore::LayerChromium::unreserveContentsTexture):
462         (WebCore::LayerChromium::bindContentsTexture):
463         * platform/graphics/chromium/LayerRendererChromium.cpp:
464         (WebCore::LayerRendererChromium::updateLayersRecursive):
465         * platform/graphics/chromium/LayerTexture.cpp:
466         (WebCore::LayerTexture::bindTexture):
467         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
468         (WebCore::RenderSurfaceChromium::SharedValues::SharedValues):
469         (WebCore::RenderSurfaceChromium::SharedValues::~SharedValues):
470         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
471         (WebCore::RenderSurfaceChromium::draw):
472         * platform/graphics/chromium/RenderSurfaceChromium.h:
473         (WebCore::RenderSurfaceChromium::SharedValues::maskShaderProgram):
474         (WebCore::RenderSurfaceChromium::SharedValues::maskShaderSamplerLocation):
475         (WebCore::RenderSurfaceChromium::SharedValues::maskShaderMaskSamplerLocation):
476         (WebCore::RenderSurfaceChromium::SharedValues::maskShaderMatrixLocation):
477         (WebCore::RenderSurfaceChromium::SharedValues::maskShaderAlphaLocation):
478
479 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
480
481         Reviewed by Darin Adler.
482
483         Use WTF::StringHasher in WebCore
484         https://bugs.webkit.org/show_bug.cgi?id=52934
485
486         * loader/appcache/ApplicationCacheStorage.cpp:
487         (WebCore::urlHostHash):
488         * platform/LinkHash.cpp:
489         (WebCore::visitedLinkHashInline):
490         * platform/cf/BinaryPropertyList.cpp:
491         (WebCore::IntegerArrayHash::hash):
492         * platform/graphics/wx/FontPlatformDataWx.cpp:
493         (WebCore::FontPlatformData::computeHash):
494         * platform/network/ProtectionSpaceHash.h:
495         (WebCore::ProtectionSpaceHash::hash):
496
497 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
498
499         Reviewed by David Kilzer.
500
501         Add an overload to base64Encode with String output
502         https://bugs.webkit.org/show_bug.cgi?id=50122
503
504         This change removes duplicated code.
505
506         * inspector/InspectorResourceAgent.cpp:
507         (WebCore::InspectorResourceAgent::resourceContentBase64):
508         * page/DOMWindow.cpp:
509         (WebCore::DOMWindow::btoa):
510         * platform/graphics/skia/FontCustomPlatformData.cpp:
511         (WebCore::createUniqueFontName):
512         * platform/graphics/win/FontCustomPlatformData.cpp:
513         (WebCore::createUniqueFontName):
514         * platform/graphics/wince/FontCustomPlatformData.cpp:
515         (WebCore::createUniqueFontName):
516         * platform/network/cf/ResourceHandleCFNet.cpp:
517         (WebCore::encodeBasicAuthorization):
518         * platform/network/mac/ResourceHandleMac.mm:
519         (WebCore::encodeBasicAuthorization):
520         * platform/text/Base64.cpp:
521         (WebCore::base64Encode):
522         * platform/text/Base64.h:
523         (WebCore::base64Encode):
524         * platform/wince/KeygenWinCE.cpp:
525         (WebCore::WebCore::signedPublicKeyAndChallengeString):
526
527 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
528
529         Reviewed by David Kilzer.
530
531         Add String::containsOnlyLatin1()
532         https://bugs.webkit.org/show_bug.cgi?id=52979
533
534         Use String::containsOnlyLatin1() instead of isSafeToConvertCharList().
535
536         * page/DOMWindow.cpp:
537         (WebCore::DOMWindow::btoa):
538         (WebCore::DOMWindow::atob):
539
540 2011-01-23  Patrick Gansterer  <paroga@webkit.org>
541
542         Reviewed by Andreas Kling.
543
544         [CMake] Add missing CodeGenerator dependencies
545         https://bugs.webkit.org/show_bug.cgi?id=52976
546
547         * CMakeLists.txt:
548
549 2011-01-23  Yael Aharon  <yael.aharon@nokia.com>
550
551         Reviewed by Kenneth Rohde Christiansen.
552
553         [Qt][Symbian] Fix --minimal build
554         https://bugs.webkit.org/show_bug.cgi?id=52839
555
556         Some of the plugins' functionality is reimplemented in
557         Symbian specific files.
558         Some of this functionality should be compiled in even if 
559         the guard NETSCAPE_PLUGIN_API is turned off.
560         This patch moves that functionality out of the
561         NETSCAPE_PLUGIN_API guard.
562
563         Build fix so no new tests.
564
565         * WebCore.pro:
566         * plugins/symbian/PluginPackageSymbian.cpp:
567
568 2011-01-23  Andreas Kling  <kling@webkit.org>
569
570         Reviewed by Tor Arne Vestbø.
571
572         [Qt] Use rad2deg() from WTF instead of rolling our own.
573
574         * platform/graphics/qt/GraphicsContextQt.cpp:
575         (WebCore::GraphicsContext::rotate):
576         * platform/graphics/qt/PathQt.cpp:
577         (WebCore::Path::addArc):
578
579 2011-01-23  Kenneth Rohde Christiansen <kenneth@webkit.org>
580
581         Reviewed by Andreas Kling.
582
583         Viewport meta: Always adjust device dimensions to the device pixel ratio.
584
585         * dom/ViewportArguments.cpp:
586         (WebCore::computeViewportAttributes):
587
588 2011-01-23  Andreas Kling  <kling@webkit.org>
589
590         Reviewed by Kenneth Rohde Christiansen.
591
592         Don't scale absolute geometry specified by viewport meta tag.
593
594         * dom/ViewportArguments.cpp:
595         (WebCore::computeViewportAttributes):
596
597 2011-01-23  Ilya Tikhonovsky  <loislo@chromium.org>
598
599         Unreviewed build fix.
600
601         Web Inspector: looks like efl doesn't regenerate InspectorBackendDispatcher.
602
603         Touch Inspector.idl.
604
605         * inspector/Inspector.idl:
606
607 2011-01-22  Ilya Tikhonovsky  <loislo@chromium.org>
608
609         Reviewed by Pavel Feldman.
610
611         Web Inspector: next step in splitting InspectorController.
612
613         Splitting InspectorController is a bit tricky process.
614
615         As a first step I'll do the next things:
616         1) rename existing InspectorController to InspectorAgent;
617         2) s/nspectorController/nspectorAgent/g everywhere in WebCore/inspector but InspectorInstrumentation;
618         3) create a fake InspectorController derived from the InspectorAgent for the rest of WebCore and WebKit;
619
620         The second step is a migration of a small set of functions described in bug 52510 from InspectorAgent to InspectorController.
621
622         As far as the second step will have significant changes in the functions' implementation I'll do it as a separate patch.
623
624         https://bugs.webkit.org/show_bug.cgi?id=52955
625
626         * CMakeLists.txt:
627         * GNUmakefile.am:
628         * WebCore.exp.in:
629         * WebCore.gypi:
630         * WebCore.pro:
631         * WebCore.vcproj/WebCore.vcproj:
632         * WebCore.xcodeproj/project.pbxproj:
633         * bindings/js/JSInjectedScriptHostCustom.cpp:
634         (WebCore::JSInjectedScriptHost::nodeForId):
635         (WebCore::JSInjectedScriptHost::selectDOMStorage):
636         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
637         (WebCore::V8InjectedScriptHost::nodeForIdCallback):
638         * inspector/CodeGeneratorInspector.pm:
639         * inspector/InjectedScriptHost.cpp:
640         (WebCore::InjectedScriptHost::InjectedScriptHost):
641         (WebCore::InjectedScriptHost::clearConsoleMessages):
642         (WebCore::InjectedScriptHost::databaseForId):
643         (WebCore::InjectedScriptHost::selectDatabase):
644         (WebCore::InjectedScriptHost::selectDOMStorage):
645         (WebCore::InjectedScriptHost::injectedScriptForMainFrame):
646         (WebCore::InjectedScriptHost::inspectorDOMAgent):
647         (WebCore::InjectedScriptHost::frontend):
648         (WebCore::InjectedScriptHost::didCreateWorker):
649         (WebCore::InjectedScriptHost::didDestroyWorker):
650         * inspector/InjectedScriptHost.h:
651         (WebCore::InjectedScriptHost::create):
652         (WebCore::InjectedScriptHost::inspectorAgent):
653         (WebCore::InjectedScriptHost::disconnectController):
654         * inspector/InspectorAgent.cpp: Copied from Source/WebCore/inspector/InspectorController.cpp.
655         (WebCore::InspectorAgent::InspectorAgent):
656         (WebCore::InspectorAgent::~InspectorAgent):
657         (WebCore::InspectorAgent::inspectedPageDestroyed):
658         (WebCore::InspectorAgent::enabled):
659         (WebCore::InspectorAgent::inspectorStartsAttached):
660         (WebCore::InspectorAgent::setInspectorStartsAttached):
661         (WebCore::InspectorAgent::setInspectorAttachedHeight):
662         (WebCore::InspectorAgent::inspectorAttachedHeight):
663         (WebCore::InspectorAgent::searchingForNodeInPage):
664         (WebCore::InspectorAgent::restoreInspectorStateFromCookie):
665         (WebCore::InspectorAgent::inspect):
666         (WebCore::InspectorAgent::focusNode):
667         (WebCore::InspectorAgent::highlight):
668         (WebCore::InspectorAgent::highlightDOMNode):
669         (WebCore::InspectorAgent::highlightFrame):
670         (WebCore::InspectorAgent::hideHighlight):
671         (WebCore::InspectorAgent::mouseDidMoveOverElement):
672         (WebCore::InspectorAgent::handleMousePress):
673         (WebCore::InspectorAgent::setInspectorFrontendClient):
674         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
675         (WebCore::InspectorAgent::setSearchingForNode):
676         (WebCore::InspectorAgent::connectFrontend):
677         (WebCore::InspectorAgent::show):
678         (WebCore::InspectorAgent::showPanel):
679         (WebCore::InspectorAgent::close):
680         (WebCore::InspectorAgent::disconnectFrontend):
681         (WebCore::InspectorAgent::resourceAgent):
682         (WebCore::InspectorAgent::releaseFrontendLifetimeAgents):
683         (WebCore::InspectorAgent::populateScriptObjects):
684         (WebCore::InspectorAgent::pushDataCollectedOffline):
685         (WebCore::InspectorAgent::restoreDebugger):
686         (WebCore::InspectorAgent::restoreProfiler):
687         (WebCore::InspectorAgent::unbindAllResources):
688         (WebCore::InspectorAgent::didCommitLoad):
689         (WebCore::InspectorAgent::mainResourceFiredDOMContentEvent):
690         (WebCore::InspectorAgent::mainResourceFiredLoadEvent):
691         (WebCore::InspectorAgent::isMainResourceLoader):
692         (WebCore::InspectorAgent::willSendRequest):
693         (WebCore::InspectorAgent::ensureSettingsLoaded):
694         (WebCore::InspectorAgent::startTimelineProfiler):
695         (WebCore::InspectorAgent::stopTimelineProfiler):
696         (WebCore::PostWorkerNotificationToFrontendTask::create):
697         (WebCore::PostWorkerNotificationToFrontendTask::PostWorkerNotificationToFrontendTask):
698         (WebCore::PostWorkerNotificationToFrontendTask::performTask):
699         (WebCore::InspectorAgent::postWorkerNotificationToFrontend):
700         (WebCore::InspectorAgent::didCreateWorker):
701         (WebCore::InspectorAgent::didDestroyWorker):
702         (WebCore::InspectorAgent::didOpenDatabase):
703         (WebCore::InspectorAgent::getCookies):
704         (WebCore::InspectorAgent::buildArrayForCookies):
705         (WebCore::InspectorAgent::buildObjectForCookie):
706         (WebCore::InspectorAgent::deleteCookie):
707         (WebCore::InspectorAgent::didUseDOMStorage):
708         (WebCore::InspectorAgent::didCreateWebSocket):
709         (WebCore::InspectorAgent::willSendWebSocketHandshakeRequest):
710         (WebCore::InspectorAgent::didReceiveWebSocketHandshakeResponse):
711         (WebCore::InspectorAgent::didCloseWebSocket):
712         (WebCore::InspectorAgent::isRecordingUserInitiatedProfile):
713         (WebCore::InspectorAgent::startUserInitiatedProfiling):
714         (WebCore::InspectorAgent::stopUserInitiatedProfiling):
715         (WebCore::InspectorAgent::profilerEnabled):
716         (WebCore::InspectorAgent::enableProfiler):
717         (WebCore::InspectorAgent::disableProfiler):
718         (WebCore::InspectorAgent::showAndEnableDebugger):
719         (WebCore::InspectorAgent::enableDebugger):
720         (WebCore::InspectorAgent::disableDebugger):
721         (WebCore::InspectorAgent::resume):
722         (WebCore::InspectorAgent::setAllBrowserBreakpoints):
723         (WebCore::InspectorAgent::evaluateForTestInFrontend):
724         (WebCore::InspectorAgent::didEvaluateForTestInFrontend):
725         (WebCore::quadToPath):
726         (WebCore::drawOutlinedQuad):
727         (WebCore::drawOutlinedQuadWithClip):
728         (WebCore::drawHighlightForBox):
729         (WebCore::drawHighlightForLineBoxesOrSVGRenderer):
730         (WebCore::convertFromFrameToMainFrame):
731         (WebCore::frameToMainFrameOffset):
732         (WebCore::InspectorAgent::drawNodeHighlight):
733         (WebCore::InspectorAgent::drawElementTitle):
734         (WebCore::InspectorAgent::openInInspectedWindow):
735         (WebCore::InspectorAgent::addScriptToEvaluateOnLoad):
736         (WebCore::InspectorAgent::removeAllScriptsToEvaluateOnLoad):
737         (WebCore::InspectorAgent::setInspectorExtensionAPI):
738         (WebCore::InspectorAgent::inspectedURL):
739         (WebCore::InspectorAgent::reloadPage):
740         (WebCore::InspectorAgent::setExtraHeaders):
741         * inspector/InspectorAgent.h: Copied from Source/WebCore/inspector/InspectorController.h.
742         (WebCore::InspectorAgent::inspectorBackendDispatcher):
743         (WebCore::InspectorAgent::inspectorClient):
744         (WebCore::InspectorAgent::injectedScriptHost):
745         (WebCore::InspectorAgent::inspectedPage):
746         (WebCore::InspectorAgent::hideDOMNodeHighlight):
747         (WebCore::InspectorAgent::hideFrameHighlight):
748         (WebCore::InspectorAgent::frontend):
749         (WebCore::InspectorAgent::inspectorController):
750         (WebCore::InspectorAgent::inspectorAgent):
751         (WebCore::InspectorAgent::consoleAgent):
752         (WebCore::InspectorAgent::cssAgent):
753         (WebCore::InspectorAgent::domAgent):
754         (WebCore::InspectorAgent::injectedScriptAgent):
755         (WebCore::InspectorAgent::runtimeAgent):
756         (WebCore::InspectorAgent::timelineAgent):
757         (WebCore::InspectorAgent::databaseAgent):
758         (WebCore::InspectorAgent::domStorageAgent):
759         (WebCore::InspectorAgent::fileSystemAgent):
760         (WebCore::InspectorAgent::browserDebuggerAgent):
761         (WebCore::InspectorAgent::debuggerAgent):
762         (WebCore::InspectorAgent::profilerAgent):
763         (WebCore::InspectorAgent::applicationCacheAgent):
764         (WebCore::InspectorAgent::hasInspectorFrontendClient):
765         (WebCore::InspectorAgent::hasFrontend):
766         (WebCore::InspectorAgent::startProfiling):
767         (WebCore::InspectorAgent::stopProfiling):
768         (WebCore::InspectorAgent::debuggerEnabled):
769         (WebCore::InspectorAgent::state):
770         (WebCore::InspectorAgent::settings):
771         * inspector/InspectorApplicationCacheAgent.cpp:
772         (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
773         (WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
774         * inspector/InspectorApplicationCacheAgent.h:
775         * inspector/InspectorBrowserDebuggerAgent.cpp:
776         (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent):
777         (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged):
778         (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
779         (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
780         (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
781         (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
782         (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
783         (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
784         (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
785         (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
786         (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
787         * inspector/InspectorBrowserDebuggerAgent.h:
788         (WebCore::InspectorBrowserDebuggerAgent::create):
789         * inspector/InspectorConsoleAgent.cpp:
790         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
791         (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
792         (WebCore::InspectorConsoleAgent::clearConsoleMessages):
793         (WebCore::InspectorConsoleAgent::addMessageToConsole):
794         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
795         (WebCore::InspectorConsoleAgent::didReceiveResponse):
796         (WebCore::InspectorConsoleAgent::didFailLoading):
797         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
798         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
799         (WebCore::InspectorConsoleAgent::addConsoleMessage):
800         * inspector/InspectorConsoleAgent.h:
801         * inspector/InspectorController.cpp:
802         (WebCore::InspectorController::InspectorController):
803         * inspector/InspectorController.h:
804         * inspector/InspectorDatabaseAgent.cpp:
805         * inspector/InspectorDebuggerAgent.cpp:
806         (WebCore::InspectorDebuggerAgent::create):
807         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
808         (WebCore::InspectorDebuggerAgent::~InspectorDebuggerAgent):
809         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
810         (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
811         (WebCore::InspectorDebuggerAgent::currentCallFrames):
812         * inspector/InspectorDebuggerAgent.h:
813         * inspector/InspectorFileSystemAgent.cpp:
814         (WebCore::InspectorFileSystemAgentCallbacks::didOpenFileSystem):
815         (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
816         (WebCore::InspectorFileSystemAgent::stop):
817         (WebCore::InspectorFileSystemAgent::getFileSystemPathAsync):
818         (WebCore::InspectorFileSystemAgent::didGetFileSystemPath):
819         (WebCore::InspectorFileSystemAgent::didGetFileSystemError):
820         * inspector/InspectorFileSystemAgent.h:
821         (WebCore::InspectorFileSystemAgent::create):
822         * inspector/InspectorFrontendHost.cpp:
823         (WebCore::InspectorFrontendHost::setExtensionAPI):
824         * inspector/InspectorProfilerAgent.cpp:
825         (WebCore::InspectorProfilerAgent::create):
826         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
827         (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
828         (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
829         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
830         (WebCore::InspectorProfilerAgent::stopUserInitiatedProfiling):
831         * inspector/InspectorProfilerAgent.h:
832
833 2011-01-22  Chris Rogers  <crogers@google.com>
834
835         Rubber-stamped by Anders Carlsson.
836
837         Fix FFTFrameStub to compile properly
838         https://bugs.webkit.org/show_bug.cgi?id=52969
839
840         No new tests since this is a build fix.
841
842         * platform/audio/FFTFrameStub.cpp:
843         (WebCore::FFTFrame::FFTFrame):
844
845 2011-01-22  Andrei Popescu  <andreip@google.com>
846
847         Reviewed by Jeremy Orlow.
848
849         IndexedDB corrupts data on disk
850         https://bugs.webkit.org/show_bug.cgi?id=52890
851
852         We need to store the SerializedScriptValues on disk in a BLOB column rather than TEXT.
853         Test: storage/indexeddb/data-corruption.html
854
855         * platform/sql/SQLiteStatement.cpp:
856         (WebCore::SQLiteStatement::bindBlob):
857         (WebCore::SQLiteStatement::getColumnBlobAsString):
858         (WebCore::SQLiteStatement::getColumnBlobAsVector):
859         * platform/sql/SQLiteStatement.h:
860         * storage/IDBCursorBackendImpl.cpp:
861         (WebCore::IDBCursorBackendImpl::loadCurrentRow):
862         * storage/IDBFactoryBackendImpl.cpp:
863         (WebCore::runCommands):
864         (WebCore::createTables):
865         (WebCore::createMetaDataTable):
866         (WebCore::migrateDatabase):
867         * storage/IDBObjectStoreBackendImpl.cpp:
868         (WebCore::IDBObjectStoreBackendImpl::getInternal):
869         (WebCore::putObjectStoreData):
870
871 2011-01-22  Nikolas Zimmermann  <nzimmermann@rim.com>
872
873         Not reviewed. Fix WinCE build.
874
875         * platform/graphics/wince/GraphicsContextWinCE.cpp:
876         (WebCore::GraphicsContext::drawText):
877         * rendering/RenderThemeWinCE.cpp:
878         (WebCore::RenderThemeWinCE::adjustMenuListButtonStyle):
879
880 2011-01-22  Nikolas Zimmermann  <nzimmermann@rim.com>
881
882         Reviewed by Dirk Schulze.
883
884         REGRESSION: Vertical line metrics incorrect
885         https://bugs.webkit.org/show_bug.cgi?id=52960
886
887         SimpleFontDataMac.mm contains a hack to modifiy lineGap/descent for the 'Hiragino' font.
888         That didn't influence the lineSpacing so far, but does now, causing regressions.
889
890         Restore old line spacing behaviour to fix the regression.
891         Covered by existing fast/blockflow, fast/repaint and fast/text/international test cases.
892
893         * platform/graphics/FontMetrics.h:
894         (WebCore::FontMetrics::FontMetrics):
895         (WebCore::FontMetrics::floatLineSpacing):
896         (WebCore::FontMetrics::setLineSpacing):
897         (WebCore::FontMetrics::lineSpacing):
898         (WebCore::FontMetrics::reset):
899         * platform/graphics/SimpleFontData.cpp:
900         (WebCore::SimpleFontData::SimpleFontData):
901         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
902         (WebCore::SimpleFontData::platformInit):
903         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
904         (WebCore::SimpleFontData::platformInit):
905         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
906         (WebCore::SimpleFontData::platformInit):
907         * platform/graphics/haiku/SimpleFontDataHaiku.cpp:
908         (WebCore::SimpleFontData::platformInit):
909         * platform/graphics/mac/SimpleFontDataMac.mm:
910         (WebCore::SimpleFontData::platformInit):
911         * platform/graphics/pango/SimpleFontDataPango.cpp:
912         (WebCore::SimpleFontData::platformInit):
913         * platform/graphics/qt/SimpleFontDataQt.cpp:
914         (WebCore::SimpleFontData::platformInit):
915         * platform/graphics/win/SimpleFontDataCGWin.cpp:
916         (WebCore::SimpleFontData::platformInit):
917         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
918         (WebCore::SimpleFontData::platformInit):
919         * platform/graphics/win/SimpleFontDataWin.cpp:
920         (WebCore::SimpleFontData::initGDIFont):
921         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
922         (WebCore::SimpleFontData::platformInit):
923         * platform/graphics/wx/SimpleFontDataWx.cpp:
924         (WebCore::SimpleFontData::platformInit):
925
926 2011-01-22  Andreas Kling  <kling@webkit.org>
927
928         Reviewed by Kenneth Rohde Christiansen.
929
930         [Qt] fast/backgrounds/svg-as-mask.html fails
931         https://bugs.webkit.org/show_bug.cgi?id=52906
932
933         Transparency layers should start out with in SourceOver mode with
934         alpha 1.0 (modeled after CGContextBeginTransparencyLayer.)
935
936         * platform/graphics/qt/TransparencyLayer.h:
937         (WebCore::TransparencyLayer::TransparencyLayer):
938
939 2011-01-22  Nikolas Zimmermann  <nzimmermann@rim.com>
940
941         Not reviewed.
942
943         Introduce FontMetrics abstraction
944         https://bugs.webkit.org/show_bug.cgi?id=51456
945
946         Fix Chromium/Win build.
947
948         * platform/graphics/chromium/UniscribeHelperTextRun.cpp: s/->/./
949         (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun):
950
951 2011-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>
952
953         Reviewed by Dirk Schulze.
954
955         Introduce FontMetrics abstraction
956         https://bugs.webkit.org/show_bug.cgi?id=51456
957
958         Encapsulate ascent/descent/lineHeight/lineGap methods in a single FontMetrics class, instead of
959         having to define them in both Font & SimpleFontData. Changed to store floating point values
960         as default, in order to get accurate information for small sized fonts. All these methods
961         now have floating-point and integer versions. Whenever an integer variant of these functions
962         is called, lroundf() is used to round the value.
963
964         This makes it possible to support small font-sizes for SVG in a follow-up patch, as well
965         as fixing rounding issues when using SVG Fonts.
966         
967         Shouldn't affect existing tests.
968
969         * GNUmakefile.am: Add FontMetrics.h to build. 
970         * WebCore.gypi: Ditto.
971         * WebCore.pro: Ditto.
972         * WebCore.vcproj/WebCore.vcproj: Ditto.
973         * WebCore.xcodeproj/project.pbxproj: Ditto.
974         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Use style->fontMetrics() instead of style->font() to access the metrics.
975         (baselinePositionForAccessibilityRenderObject):
976         * css/CSSPrimitiveValue.cpp:         
977         (WebCore::CSSPrimitiveValue::computeLengthDouble):
978         * html/canvas/CanvasRenderingContext2D.cpp: Ditto.
979         (WebCore::CanvasRenderingContext2D::drawTextInternal):
980         * inspector/InspectorController.cpp: Ditto.
981         (WebCore::InspectorController::drawElementTitle):
982         * platform/chromium/PopupMenuChromium.cpp: Ditto.
983         (WebCore::PopupListBox::paintRow):
984         (WebCore::PopupListBox::getRowHeight):
985         * platform/graphics/Font.h: Remove ascent/descent/height/lineGap/lineSpacing/xHeight/unitsPerEm accessor...
986         (WebCore::Font::fontMetrics): ... and only expose a single FontMetrics object here.
987         * platform/graphics/FontFastPath.cpp: Use fontMetrics() to query metrics information.
988         (WebCore::Font::emphasisMarkAscent):
989         (WebCore::Font::emphasisMarkDescent):
990         (WebCore::Font::emphasisMarkHeight):
991         (WebCore::Font::floatWidthForSimpleText):
992         * platform/graphics/FontMetrics.h: Added.
993         (WebCore::FontMetrics::FontMetrics): Creates a FontMetrics object, stored in SimpleFontData.
994         (WebCore::FontMetrics::unitsPerEm): Returns an unsigned describing the unitsPerEm.
995         (WebCore::FontMetrics::setUnitsPerEm): Sets the unitsPerEm value.
996         (WebCore::FontMetrics::floatAscent): Returns the stored m_ascent float.
997         (WebCore::FontMetrics::setAscent): Sets the stored m_ascent float.
998         (WebCore::FontMetrics::floatDescent): Returns the stored m_descent float.
999         (WebCore::FontMetrics::setDescent): Sets the stored m_descent float.
1000         (WebCore::FontMetrics::floatHeight): Returns floatAscent() + floatDescent().
1001         (WebCore::FontMetrics::floatLineGap): Returns the stored m_lineGap float.
1002         (WebCore::FontMetrics::setLineGap): Sets the stored m_lineGap float.
1003         (WebCore::FontMetrics::floatLineSpacing): Returns the stored m_lineSpacing float.
1004         (WebCore::FontMetrics::setLineSpacing): Sets the stored m_lineSpacing float.
1005         (WebCore::FontMetrics::xHeight): Returns the stored m_xHeight float (no integer version available, hence no 'float' prefix).
1006         (WebCore::FontMetrics::setXHeight): Sets the stored m_xHeight float.
1007         (WebCore::FontMetrics::ascent): Returns a rounded version of ascent().
1008         (WebCore::FontMetrics::descent): Ditto (for descent).
1009         (WebCore::FontMetrics::height): Returns ascent() + descent().
1010         (WebCore::FontMetrics::lineGap): Returns a rounded version of lineGap().
1011         (WebCore::FontMetrics::lineSpacing): Ditto (for lineSpacing).
1012         (WebCore::FontMetrics::reset): Nulls all members, used only by the platform variants of SimpleFontData.
1013         * platform/graphics/SimpleFontData.cpp: Adapt SVG Fonts code, to initialize the FontMetrics object, as the m_ascent/etc.. members are gone.
1014         (WebCore::SimpleFontData::SimpleFontData):
1015         (WebCore::SimpleFontData::initCharWidths):
1016         * platform/graphics/SimpleFontData.h: Remove ascent/descent/height/lineSpacing/lineGap/xHeight/unitsPerEm accessors, and members, just store a FontMetrics object and expose it.
1017         (WebCore::SimpleFontData::fontMetrics):
1018         (WebCore::SimpleFontData::avgCharWidth):
1019         * platform/graphics/chromium/FontChromiumWin.cpp: Use fontMetrics() to query font metrics.
1020         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds):
1021         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
1022         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds):
1023         (WebCore::Font::drawComplexText):
1024         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Adapt platform code, to initialize the FontMetrics object.
1025         (WebCore::SimpleFontData::platformInit):
1026         * platform/graphics/chromium/SimpleFontDataLinux.cpp: Ditto.
1027         (WebCore::SimpleFontData::platformInit):
1028         * platform/graphics/chromium/UniscribeHelperTextRun.cpp: Use fontMetrics() to query font metrics.
1029         (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun):
1030         (WebCore::UniscribeHelperTextRun::nextWinFontData):
1031         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Adapt platform code, to initialize the FontMetrics object.
1032         (WebCore::SimpleFontData::platformInit):
1033         * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Ditto.
1034         (WebCore::SimpleFontData::platformInit):
1035         * platform/graphics/mac/FontComplexTextMac.cpp: Use fontMetrics() to query font metrics.
1036         (WebCore::Font::floatWidthForComplexText):
1037         * platform/graphics/mac/FontMac.mm: Ditto.
1038         (WebCore::showGlyphsWithAdvances):
1039         * platform/graphics/mac/SimpleFontDataMac.mm: Adapt platform code, to initialize the FontMetrics object.
1040         (WebCore::SimpleFontData::platformInit):
1041         (WebCore::SimpleFontData::platformCharWidthInit):
1042         * platform/graphics/pango/SimpleFontDataPango.cpp: Ditto.
1043         (WebCore::SimpleFontData::platformInit):
1044         * platform/graphics/qt/SimpleFontDataQt.cpp: Ditto. (+ Switch to QFontMetricsF to get floating-point accurancy.)
1045         (WebCore::SimpleFontData::platformInit):
1046         * platform/graphics/win/FontCGWin.cpp: Use fontMetrics() to query font metrics.
1047         (WebCore::drawGDIGlyphs):
1048         * platform/graphics/win/FontWin.cpp: Ditto.
1049         (WebCore::Font::floatWidthForComplexText):
1050         * platform/graphics/win/SimpleFontDataCGWin.cpp: Adapt platform code, to initialize the FontMetrics object.
1051         (WebCore::SimpleFontData::platformInit):
1052         (WebCore::SimpleFontData::platformBoundsForGlyph):
1053         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Ditto.
1054         (WebCore::SimpleFontData::platformInit):
1055         * platform/graphics/win/SimpleFontDataWin.cpp: Ditto.
1056         (WebCore::SimpleFontData::initGDIFont):
1057         * platform/graphics/wince/GraphicsContextWinCE.cpp: Use fontMetrics() to query font metrics.
1058         (WebCore::GraphicsContext::drawText):
1059         * platform/graphics/wince/SimpleFontDataWinCE.cpp: Adapt platform code, to initialize the FontMetrics object.
1060         (WebCore::SimpleFontData::platformInit):
1061         * platform/graphics/wx/SimpleFontDataWx.cpp: Ditto.
1062         (WebCore::SimpleFontData::platformInit):
1063         * platform/win/PopupMenuWin.cpp: Use style->fontMetrics() instead of style->font() to access the metrics.
1064         (WebCore::PopupMenuWin::calculatePositionAndSize): 
1065         (WebCore::PopupMenuWin::paint):
1066         * rendering/EllipsisBox.cpp: Ditto.
1067         (WebCore::EllipsisBox::paint):
1068         (WebCore::EllipsisBox::nodeAtPoint):
1069         * rendering/InlineBox.cpp: Ditto.
1070         (WebCore::InlineBox::logicalHeight):
1071         * rendering/InlineFlowBox.cpp: Ditto.
1072         (WebCore::verticalPositionForBox):
1073         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1074         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
1075         * rendering/InlineTextBox.cpp: Ditto.
1076         (WebCore::InlineTextBox::paint):
1077         (WebCore::InlineTextBox::paintDecoration):
1078         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
1079         (WebCore::InlineTextBox::paintCompositionUnderline):
1080         * rendering/RenderBlock.cpp: Ditto.
1081         (WebCore::RenderBlock::baselinePosition):
1082         (WebCore::RenderBlock::firstLineBoxBaseline):
1083         (WebCore::RenderBlock::lastLineBoxBaseline):
1084         * rendering/RenderBox.cpp: Ditto.
1085         (WebCore::RenderBox::localCaretRect):
1086         * rendering/RenderEmbeddedObject.cpp: Ditto.
1087         (WebCore::RenderEmbeddedObject::paintReplaced):
1088         * rendering/RenderImage.cpp: Ditto.
1089         (WebCore::RenderImage::setImageSizeForAltText):
1090         (WebCore::RenderImage::paintReplaced):
1091         * rendering/RenderInline.cpp: Ditto.
1092         (WebCore::RenderInline::baselinePosition):
1093         * rendering/RenderListBox.cpp: Ditto.
1094         (WebCore::RenderListBox::paintItemForeground):
1095         (WebCore::RenderListBox::itemHeight):
1096         * rendering/RenderListMarker.cpp: Ditto.
1097         (WebCore::RenderListMarker::paint):
1098         (WebCore::RenderListMarker::layout):
1099         (WebCore::RenderListMarker::computePreferredLogicalWidths):
1100         (WebCore::RenderListMarker::updateMargins):
1101         (WebCore::RenderListMarker::getRelativeMarkerRect):
1102         * rendering/RenderTextControl.cpp: Ditto.
1103         (WebCore::RenderTextControl::paintPlaceholder):
1104         * rendering/RenderTextControlSingleLine.cpp: Ditto.
1105         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
1106         * rendering/RenderThemeWin.cpp: Ditto.
1107         (WebCore::RenderThemeWin::adjustMenuListButtonStyle):
1108         * rendering/mathml/RenderMathMLFraction.cpp: Ditto.
1109         (WebCore::RenderMathMLFraction::baselinePosition):
1110         * rendering/style/RenderStyle.h: Add "const FontMetrics& fontMetrics() const" accessor.
1111         (WebCore::InheritedFlags::fontMetrics):
1112         (WebCore::InheritedFlags::computedLineHeight):
1113         * rendering/svg/RenderSVGInlineText.cpp: Use style->fontMetrics() instead of style->font() to access the metrics.
1114         (WebCore::RenderSVGInlineText::positionForPoint):
1115         * rendering/svg/SVGInlineTextBox.cpp: Ditto.
1116         (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
1117         (WebCore::positionOffsetForDecoration):
1118         (WebCore::SVGInlineTextBox::paintDecorationWithStyle):
1119         (WebCore::SVGInlineTextBox::paintTextWithShadows):
1120         (WebCore::SVGInlineTextBox::calculateBoundaries):
1121         * rendering/svg/SVGTextLayoutEngineBaseline.cpp: Ditto.
1122         (WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift):
1123         (WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift):
1124         (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation):
1125         * rendering/svg/SVGTextLayoutEngineSpacing.cpp: Ditto.
1126         (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning):
1127         * rendering/svg/SVGTextMetrics.cpp: Ditto.
1128         (WebCore::SVGTextMetrics::SVGTextMetrics):
1129         * rendering/svg/SVGTextQuery.cpp: Ditto.
1130         (WebCore::calculateGlyphBoundaries):
1131         * svg/SVGFontFaceElement.cpp: 
1132         (WebCore::SVGFontFaceElement::unitsPerEm): Rename defaultUnitsPerEm global to gDefaultUnitsPerEm.
1133         * svg/SVGLength.cpp: Use style->fontMetrics() instead of style->font() to access the metrics.
1134         (WebCore::SVGLength::convertValueFromUserUnitsToEXS):
1135         (WebCore::SVGLength::convertValueFromEXSToUserUnits):
1136
1137 2011-01-22  Ryosuke Niwa  <rniwa@webkit.org>
1138
1139         Reviewed by Eric Seidel.
1140
1141         Stop instantiating legacy editing positions in VisibleSelection, visible_units.cpp, Frame, and RenderBlock
1142         https://bugs.webkit.org/show_bug.cgi?id=52759
1143
1144         Stopped instantiating legacy editing positions in the following files.
1145
1146         * editing/VisibleSelection.cpp:
1147         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
1148         * editing/visible_units.cpp:
1149         (WebCore::previousBoundary):
1150         (WebCore::previousLinePosition):
1151         (WebCore::nextLinePosition):
1152         (WebCore::startOfBlock):
1153         * page/Frame.cpp:
1154         (WebCore::Frame::visiblePositionForPoint):
1155         * rendering/RenderBlock.cpp: Removed RenderBlock::positionForRenderer because it was not called anywhere.
1156         * rendering/RenderBlock.h: Ditto.
1157
1158 2011-01-22  Adrienne Walker  <enne@google.com>
1159
1160         Reviewed by James Robinson.
1161
1162         [chromium] Fix compositor repaints for offscreen fixed elements
1163         https://bugs.webkit.org/show_bug.cgi?id=52681
1164
1165         The fast path scrolling was clipping offscreen invalidations.
1166         Additionally, the compositor was ignoring all invalidations that were
1167         entirely out of the content rect.
1168
1169         Test: compositing/ to verify this caused no regressions.
1170         Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests.
1171
1172         * page/FrameView.cpp:
1173         (WebCore::FrameView::scrollContentsFastPath):
1174         * platform/graphics/chromium/LayerRendererChromium.cpp:
1175         (WebCore::LayerRendererChromium::invalidateRootLayerRect):
1176
1177 2011-01-22  Alexey Proskuryakov  <ap@apple.com>
1178
1179         Reviewed by Dan Bernstein.
1180
1181         https://bugs.webkit.org/show_bug.cgi?id=52951
1182         WebKit2 generates a bad PDF for cross process messaging
1183
1184         * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Use a correct offset to actually
1185         draw inside the requested rectangle.
1186
1187 2011-01-21  Yury Semikhatsky  <yurys@chromium.org>
1188
1189         Reviewed by Adam Barth.
1190
1191         Regression: new window.onerror() implementation leaks cross-origin Javascript errors
1192         https://bugs.webkit.org/show_bug.cgi?id=52903
1193
1194         In case of an exception in a script from different domain only generic message
1195         will be passed to window.onerror hander.
1196
1197         Tests: http/tests/security/cross-origin-script-window-onerror-redirected.html
1198                http/tests/security/cross-origin-script-window-onerror.html
1199
1200         * bindings/js/CachedScriptSourceProvider.h: use URL from the resource response to make sure we do all
1201         cross origin checks agains real script URL, not the original URL which may have resulted in a sequence
1202         of redirects to different domains.
1203         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
1204         * bindings/v8/ScriptSourceCode.h: same for v8.
1205         (WebCore::ScriptSourceCode::url):
1206         * dom/ScriptExecutionContext.cpp:
1207         (WebCore::ScriptExecutionContext::dispatchErrorEvent): in case the error occurred in a script we cannot
1208         access provide concise "Script error." message without any information about the error source. This is
1209         what Firefox does in this case.
1210
1211 2011-01-21  Andreas Kling  <kling@webkit.org>
1212
1213         Reviewed by Kenneth Rohde Christiansen.
1214
1215         [Qt] Always set composition mode through GraphicsContext
1216         https://bugs.webkit.org/show_bug.cgi?id=52940
1217
1218         GraphicsContext tracks the current composition mode so we should
1219         never call through to the QPainter directly.
1220
1221         * platform/graphics/GraphicsContext.h:
1222         * platform/graphics/qt/GraphicsContextQt.cpp:
1223         (WebCore::toQtCompositionMode): Changed this method to a static inline
1224         since it's only used by GraphicsContextQt.cpp now.
1225
1226         * platform/graphics/qt/ImageQt.cpp:
1227         (WebCore::Image::drawPattern):
1228         (WebCore::BitmapImage::draw):
1229
1230 2011-01-21  Dan Bernstein  <mitz@apple.com>
1231
1232         Reviewed by Adele Peterson.
1233
1234         Inconsistent handling of no-break space in justification logic
1235         https://bugs.webkit.org/show_bug.cgi?id=52938
1236
1237         Test: fast/text/justify-nbsp.html
1238
1239         * rendering/RenderBlockLineLayout.cpp:
1240         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Count no-break space as a
1241         space when computing the distribution of space between text boxes on the line.
1242
1243 2011-01-21  Charlie Reis  <creis@chromium.org>
1244
1245         Reviewed by Darin Fisher.
1246
1247         Crash in WebCore::HistoryController::itemsAreClones
1248         https://bugs.webkit.org/show_bug.cgi?id=52819
1249
1250         Adds sanity checks to help diagnose the crash.
1251
1252         * loader/HistoryController.cpp:
1253
1254 2011-01-21  Andreas Kling  <kling@webkit.org>
1255
1256         Reviewed by Ariya Hidayat.
1257
1258         [Qt] Let QPainter decide whether a composition mode is supported or not
1259
1260         Lacking Porter-Duff support in the paint engine shouldn't exclude the
1261         Source and Source-Over modes (and has nothing to do with the blend
1262         and raster-op modes.)
1263
1264         Delegate this decision to QPainter instead (this will cause warnings
1265         if an unsupported mode is used, but that's a good thing.)
1266
1267         * platform/graphics/qt/GraphicsContextQt.cpp:
1268         (WebCore::GraphicsContext::clearRect):
1269         (WebCore::GraphicsContext::setPlatformCompositeOperation):
1270         * platform/graphics/qt/TransparencyLayer.h:
1271         (WebCore::TransparencyLayer::TransparencyLayer):
1272
1273 2011-01-21  Chris Rogers  <crogers@google.com>
1274
1275         Reviewed by Kenneth Russell.
1276
1277         fix audio build: header file should be "Noncopyable.h" and not "NonCopyable.h"
1278         https://bugs.webkit.org/show_bug.cgi?id=52933
1279
1280         No new tests since this just fixes the build
1281
1282         * webaudio/RealtimeAnalyser.h:
1283
1284 2011-01-21  Chris Rogers  <crogers@google.com>
1285
1286         Reviewed by Kenneth Russell.
1287
1288         Fix audio build: change ChromiumBridge to PlatformBridge
1289         https://bugs.webkit.org/show_bug.cgi?id=52928
1290
1291         No new tests since audio API is not yet implemented.
1292
1293         * platform/audio/chromium/AudioBusChromium.cpp:
1294         (WebCore::AudioBus::loadPlatformResource):
1295
1296 2011-01-21  Chris Rogers  <crogers@google.com>
1297
1298         Reviewed by Kenneth Russell.
1299
1300         Add FFTFrameStub to avoid link errors during bringup on platforms without an FFT implementation
1301         https://bugs.webkit.org/show_bug.cgi?id=52922
1302
1303         No new tests since audio API is not yet implemented.
1304
1305         * WebCore.gypi:
1306         * platform/audio/FFTFrameStub.cpp: Added.
1307         (WebCore::FFTFrame::FFTFrame):
1308         (WebCore::FFTFrame::~FFTFrame):
1309         (WebCore::FFTFrame::multiply):
1310         (WebCore::FFTFrame::doFFT):
1311         (WebCore::FFTFrame::doInverseFFT):
1312         (WebCore::FFTFrame::cleanup):
1313         (WebCore::FFTFrame::realData):
1314         (WebCore::FFTFrame::imagData):
1315
1316 2011-01-21  Tony Chang  <tony@chromium.org>
1317
1318         Reviewed by Sam Weinig.
1319
1320         reduce number of FrameLoaderClient::didChangeScrollOffset calls
1321         https://bugs.webkit.org/show_bug.cgi?id=52915
1322
1323         Only notify of changes in scroll offset when there actually is a change.
1324         This regressed in r76291.
1325
1326         Covered by Chromium browser_tests.
1327
1328         * platform/ScrollAnimator.cpp:
1329         (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
1330
1331 2011-01-21  Pavel Feldman  <pfeldman@chromium.org>
1332
1333         Reviewed by Yury Semikhatsky.
1334
1335         Web Inspector: ~InspectorResourceAgent crashes on closing inspected page.
1336         https://bugs.webkit.org/show_bug.cgi?id=52900
1337
1338         * inspector/InspectorController.cpp:
1339         (WebCore::InspectorController::~InspectorController):
1340         (WebCore::InspectorController::inspectedPageDestroyed):
1341
1342 2011-01-21  Chris Rogers  <crogers@google.com>
1343
1344         Reviewed by Darin Fisher.
1345
1346         Add run-time enable support for the web audio API
1347         https://bugs.webkit.org/show_bug.cgi?id=52741
1348
1349         No new tests since audio API is not yet implemented.
1350
1351         * WebCore.exp.in:
1352         * bindings/generic/RuntimeEnabledFeatures.cpp:
1353         * bindings/generic/RuntimeEnabledFeatures.h:
1354         (WebCore::RuntimeEnabledFeatures::setWebkitAudioContextEnabled):
1355         (WebCore::RuntimeEnabledFeatures::webkitAudioContextEnabled):
1356         * page/DOMWindow.idl:
1357         * page/Settings.cpp:
1358         (WebCore::Settings::Settings):
1359         (WebCore::Settings::setWebAudioEnabled):
1360         * page/Settings.h:
1361         (WebCore::Settings::webAudioEnabled):
1362
1363 2011-01-21  Martin Robinson  <mrobinson@igalia.com>
1364
1365         Reviewed by Xan Lopez.
1366
1367         [GTK] Menulist text often collides with separator
1368         https://bugs.webkit.org/show_bug.cgi?id=51155
1369
1370         Move menulist rendering to RenderThemeGtk and correct padding code
1371         for separators in menulists.
1372
1373         * platform/gtk/RenderThemeGtk.cpp:
1374         (WebCore::RenderThemeGtk::RenderThemeGtk): Initialize new widget members.
1375         (WebCore::RenderThemeGtk::getComboBoxSeparatorWidth): Added.
1376         (WebCore::RenderThemeGtk::comboBoxArrowSize): Added.
1377         (WebCore::getButtonInnerBorder): Added.
1378         (WebCore::RenderThemeGtk::getComboBoxPadding): Do this manually instead of using
1379         Mozilla code.
1380         (WebCore::RenderThemeGtk::paintMenuList): Ditto.
1381         (WebCore::setupWidget): Abstracted this part of the setupWidgetAndAddToContainer
1382         out to handle child widgets of comboboxes.
1383         (WebCore::RenderThemeGtk::setupWidgetAndAddToContainer): Abstracted out setupWidget.
1384         (WebCore::RenderThemeGtk::gtkContainer): Added.
1385         (WebCore::getGtkComboBoxButton): Added.
1386         (WebCore::getGtkComboBoxPieces): Added.
1387         (WebCore::RenderThemeGtk::gtkComboBox): Call setupWidget here.
1388         (WebCore::RenderThemeGtk::refreshComboBoxChildren): Added.
1389         (WebCore::RenderThemeGtk::gtkComboBoxButton): Added.
1390         (WebCore::RenderThemeGtk::gtkComboBoxArrow): Added.
1391         (WebCore::RenderThemeGtk::gtkComboBoxSeparator): Added.
1392         * platform/gtk/RenderThemeGtk.h: Added new members and methods.
1393         * platform/gtk/WidgetRenderingContext.h: Added new members and methods.
1394         * platform/gtk/WidgetRenderingContextGtk2.cpp:
1395         (WebCore::WidgetRenderingContext::gtkPaintArrow):
1396         (WebCore::WidgetRenderingContext::gtkPaintVLine):
1397         * platform/gtk/WidgetRenderingContextGtk3.cpp:
1398         (WebCore::WidgetRenderingContext::gtkPaintArrow):
1399         (WebCore::WidgetRenderingContext::gtkPaintVLine):
1400         * platform/gtk/gtk2drawing.c: Removed code for drawing menulists and buttons.
1401         (moz_gtk_init):
1402         (moz_gtk_get_widget_border):
1403         (moz_gtk_widget_paint):
1404         * platform/gtk/gtk3drawing.c:
1405         (moz_gtk_init):
1406         (moz_gtk_get_widget_border):
1407         (moz_gtk_widget_paint):
1408         * platform/gtk/gtkdrawing.h:
1409
1410 2011-01-21  Sam Weinig  <sam@webkit.org>
1411
1412         Fix chromium mac build.
1413
1414         * platform/chromium/ScrollbarThemeChromiumMac.mm:
1415         (WebCore::scrollbarStateToThemeState):
1416         (WebCore::ScrollbarThemeChromiumMac::paint):
1417
1418 2011-01-21  Sam Weinig  <sam@webkit.org>
1419
1420         Fix the windows build.
1421
1422         * platform/ScrollbarThemeComposite.cpp:
1423         (WebCore::ScrollbarThemeComposite::paint):
1424
1425 2011-01-21  Chris Rogers  <crogers@google.com>
1426
1427         Reviewed by Kenneth Russell.
1428
1429         Add chromium bundled audio spatialization resources to WebAudio.grd
1430         https://bugs.webkit.org/show_bug.cgi?id=52651
1431
1432         No new tests since audio API is not yet implemented.
1433
1434         * WebCore.gyp/WebCore.gyp:
1435         * platform/audio/chromium/AudioBusChromium.cpp:
1436         (WebCore::AudioBus::loadPlatformResource):
1437
1438 2011-01-21  Xiyuan Xia  <xiyuan@chromium.org>
1439
1440         Reviewed by Tony Chang.
1441
1442         Use WebThemeEngine for relevant RenderTheme parts for chromium/linux.
1443         https://bugs.webkit.org/show_bug.cgi?id=52826
1444
1445         * platform/chromium/ChromiumBridge.h:
1446         * rendering/RenderThemeChromiumLinux.cpp:
1447         (WebCore::getWebThemeState):
1448         (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
1449         (WebCore::RenderThemeChromiumLinux::paintCheckbox):
1450         (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
1451         (WebCore::RenderThemeChromiumLinux::paintRadio):
1452         (WebCore::RenderThemeChromiumLinux::setRadioSize):
1453         (WebCore::RenderThemeChromiumLinux::paintButton):
1454         (WebCore::RenderThemeChromiumLinux::paintTextField):
1455         (WebCore::RenderThemeChromiumLinux::paintMenuList):
1456         (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
1457         (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
1458         (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
1459         (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
1460         (WebCore::RenderThemeChromiumLinux::paintProgressBar):
1461         * rendering/RenderThemeChromiumLinux.h:
1462         * rendering/RenderThemeChromiumSkia.cpp:
1463         (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
1464         (WebCore::RenderThemeChromiumSkia::setSizeIfAuto):
1465         (WebCore::RenderThemeChromiumSkia::indeterminateProgressValueRectFor):
1466         * rendering/RenderThemeChromiumSkia.h:
1467
1468 2011-01-21  Sam Weinig  <sam@webkit.org>
1469
1470         Reviewed by Anders Carlsson.
1471
1472         Part 2 of "Cleanup Scrollbar/ScrollbarClient relationship"
1473         https://bugs.webkit.org/show_bug.cgi?id=52779
1474
1475         Rename ScrollbarClient -> ScrollableArea.
1476
1477         - Also replaces Scrollbar::setClient with Scrollbar::disconnectFromScrollableArea
1478           since that was its only use case.
1479
1480         * CMakeLists.txt:
1481         * GNUmakefile.am:
1482         * WebCore.gypi:
1483         * WebCore.pro:
1484         * WebCore.vcproj/WebCore.vcproj:
1485         * WebCore.xcodeproj/project.pbxproj:
1486         * accessibility/AccessibilityScrollbar.cpp:
1487         (WebCore::AccessibilityScrollbar::setValue):
1488         * css/CSSStyleSelector.cpp:
1489         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
1490         * page/FrameView.h:
1491         * platform/PopupMenuClient.h:
1492         * platform/ScrollAnimator.cpp:
1493         (WebCore::ScrollAnimator::create):
1494         (WebCore::ScrollAnimator::ScrollAnimator):
1495         (WebCore::ScrollAnimator::scroll):
1496         (WebCore::ScrollAnimator::notityPositionChanged):
1497         * platform/ScrollAnimator.h:
1498         * platform/ScrollAnimatorWin.cpp:
1499         (WebCore::ScrollAnimator::create):
1500         (WebCore::ScrollAnimatorWin::ScrollAnimatorWin):
1501         (WebCore::ScrollAnimatorWin::scroll):
1502         * platform/ScrollAnimatorWin.h:
1503         * platform/ScrollView.cpp:
1504         (WebCore::ScrollView::scroll):
1505         (WebCore::ScrollView::updateScrollbars):
1506         (WebCore::ScrollView::wheelEvent):
1507         * platform/ScrollView.h:
1508         * platform/ScrollableArea.cpp: Copied from WebCore/platform/ScrollbarClient.cpp.
1509         (WebCore::ScrollableArea::ScrollableArea):
1510         (WebCore::ScrollableArea::~ScrollableArea):
1511         (WebCore::ScrollableArea::scroll):
1512         (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
1513         (WebCore::ScrollableArea::scrollToXOffsetWithoutAnimation):
1514         (WebCore::ScrollableArea::scrollToYOffsetWithoutAnimation):
1515         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
1516         * platform/ScrollableArea.h: Copied from WebCore/platform/ScrollbarClient.h.
1517         * platform/Scrollbar.cpp:
1518         (WebCore::Scrollbar::createNativeScrollbar):
1519         (WebCore::Scrollbar::Scrollbar):
1520         (WebCore::Scrollbar::offsetDidChange):
1521         (WebCore::Scrollbar::autoscrollPressedPart):
1522         (WebCore::Scrollbar::moveThumb):
1523         (WebCore::Scrollbar::mouseMoved):
1524         (WebCore::Scrollbar::isWindowActive):
1525         (WebCore::Scrollbar::invalidateRect):
1526         (WebCore::Scrollbar::convertToContainingView):
1527         (WebCore::Scrollbar::convertFromContainingView):
1528         * platform/Scrollbar.h:
1529         (WebCore::Scrollbar::disconnectFromScrollableArea):
1530         (WebCore::Scrollbar::scrollableArea):
1531         * platform/ScrollbarClient.cpp: Removed.
1532         * platform/ScrollbarClient.h: Removed.
1533         * platform/ScrollbarThemeComposite.cpp:
1534         * platform/chromium/FramelessScrollView.h:
1535         * platform/chromium/ScrollbarThemeChromium.cpp:
1536         (WebCore::ScrollbarThemeChromium::paintTickmarks):
1537         * platform/efl/ScrollbarEfl.cpp:
1538         (Scrollbar::createNativeScrollbar):
1539         (ScrollbarEfl::ScrollbarEfl):
1540         (scrollbarEflEdjeMessage):
1541         * platform/efl/ScrollbarEfl.h:
1542         * platform/gtk/MainFrameScrollbarGtk.cpp:
1543         (MainFrameScrollbarGtk::create):
1544         (MainFrameScrollbarGtk::MainFrameScrollbarGtk):
1545         (MainFrameScrollbarGtk::gtkValueChanged):
1546         * platform/gtk/MainFrameScrollbarGtk.h:
1547         * platform/mac/ScrollAnimatorMac.h:
1548         * platform/mac/ScrollAnimatorMac.mm:
1549         (WebCore::ScrollAnimator::create):
1550         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1551         (WebCore::ScrollAnimatorMac::scroll):
1552         * platform/mac/ScrollbarThemeMac.mm:
1553         (WebCore::ScrollbarThemeMac::paint):
1554         * platform/qt/ScrollbarQt.cpp:
1555         (WebCore::Scrollbar::contextMenu):
1556         * platform/win/PopupMenuWin.cpp:
1557         (WebCore::PopupMenuWin::scrollToRevealSelection):
1558         (WebCore::PopupMenuWin::wndProc):
1559         * platform/win/PopupMenuWin.h:
1560         * platform/win/ScrollbarThemeSafari.cpp:
1561         (WebCore::ScrollbarThemeSafari::paintTrackBackground):
1562         (WebCore::ScrollbarThemeSafari::paintButton):
1563         (WebCore::ScrollbarThemeSafari::paintThumb):
1564         * platform/wx/ScrollbarThemeWx.cpp:
1565         (WebCore::ScrollbarThemeWx::paint):
1566         * rendering/RenderDataGrid.h:
1567         * rendering/RenderLayer.cpp:
1568         (WebCore::RenderLayer::scrollToOffset):
1569         (WebCore::RenderLayer::destroyScrollbar):
1570         (WebCore::RenderLayer::scroll):
1571         * rendering/RenderLayer.h:
1572         * rendering/RenderListBox.cpp:
1573         (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
1574         (WebCore::RenderListBox::scroll):
1575         (WebCore::RenderListBox::logicalScroll):
1576         (WebCore::RenderListBox::setScrollTop):
1577         (WebCore::RenderListBox::destroyScrollbar):
1578         * rendering/RenderListBox.h:
1579         * rendering/RenderMenuList.cpp:
1580         (WebCore::RenderMenuList::createScrollbar):
1581         * rendering/RenderMenuList.h:
1582         * rendering/RenderScrollbar.cpp:
1583         (WebCore::RenderScrollbar::createCustomScrollbar):
1584         (WebCore::RenderScrollbar::RenderScrollbar):
1585         * rendering/RenderScrollbar.h:
1586         * rendering/RenderTextControlSingleLine.cpp:
1587         (WebCore::RenderTextControlSingleLine::createScrollbar):
1588         * rendering/RenderTextControlSingleLine.h:
1589
1590 2011-01-21  Darin Adler  <darin@apple.com>
1591
1592         Fix Leopard build.
1593
1594         * rendering/mathml/RenderMathMLFraction.cpp:
1595         (WebCore::RenderMathMLFraction::layout): Use ceilf instead of ceil.
1596
1597 2011-01-21  Anton Muhin  <antonm@chromium.org>
1598
1599         Reviewed by Nate Chapin.
1600
1601         [v8] Properly deal with the case when conversion to string throws an exception for HTMLCollection accessors
1602         https://bugs.webkit.org/show_bug.cgi?id=52901
1603
1604         Test: fast/dom/htmlcollection-conversion-throws-exception.html
1605
1606         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1607         (WebCore::getItem):
1608
1609 2011-01-21  Adam Roben  <aroben@apple.com>
1610
1611         Separate flushing layer changes from rendering in CACFLayerTreeHost
1612
1613         Old model:
1614           1) A change is made to a GraphicsLayer.
1615           2) CACFLayerTreeHost::flushPendingGraphicsLayerChangesSoon is called, which schedules the
1616              render timer.
1617           3) The timer fires, which calls through to CACFLayerTreeHost::render, which performs the
1618              flush and then renders.
1619
1620         New model:
1621           1) A change is made to a GraphicsLayer.
1622           2) CACFLayerTreeHost::flushPendingGraphicsLayerChangesSoon is called, which tells the new
1623              LayerChangesFlusher singleton that this host has changes that need to be flushed.
1624           3) LayerChangesFlusher sets up a Windows hook that will get called on the next iteration
1625              of the message loop.
1626           4) LayerChangesFlusher's hook is called, which calls through to
1627              CACFLayerTreeHost::flushPendingLayerChangesNow.
1628           5) CACFLayerTreeHost::flushPendingLayerChangesNow schedules the render timer so the changes
1629              that were just flushed to the context will be rendered.
1630
1631         When a change is made to a PlatformCALayer that doesn't have a corresponding GraphicsLayer
1632         (e.g., for rendering <video>), CACFLayerTreeHost::layerTreeDidChange takes care of
1633         scheduling the flush.
1634
1635         This change has three advantages:
1636           1) Whenever we flush layer changes, we first update layout. This can cause the page to
1637              leave compositing mode, which in turn can cause all references to the CACFLayerTreeHost
1638              to be dropped. By separating flushing (and thus updating layout) from rendering, we no
1639              longer have to worry about this happen during rendering.
1640           2) The new model is much more similar to how things work on the Mac, so will hopefully
1641              reduce the number of platform-specific bugs.
1642           3) CACFLayerTreeHost::shouldRender, which was used to make sure we didn't render while a
1643              layout was pending, is no longer needed. It actually hasn't been needed since at least
1644              r75987, but removing it before now would have resulted in a crash whenever a page came
1645              out of compositing mode due to (1).
1646
1647         Fixes <http://webkit.org/b/52852> Flushing layer changes and rendering are intertwined in
1648         CACFLayerTreeHost, but shouldn't be
1649
1650         Reviewed by Simon Fraser.
1651
1652         * WebCore.vcproj/WebCore.vcproj: Added LayerChangesFlusher.
1653
1654         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include, sorted existing
1655         #includes.
1656         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
1657         (WebCore::CACFLayerTreeHost::layerTreeDidChange): If we aren't already flushing changes,
1658         schedule a flush. Removed the call to renderSoon(), which now happens when the flush is
1659         finished.
1660         (WebCore::CACFLayerTreeHost::destroyRenderer): Cancel any pending flush we had scheduled. Also
1661         fixed a bug where we'd fail to clear the context's layer.
1662         (WebCore::CACFLayerTreeHost::render): Removed code to ask the client if we should render, which
1663         is no longer needed. Moved code to flush layer changes from here to
1664         flushPendingLayerChangesNow, which is called via the above-described mechanism.
1665         (WebCore::CACFLayerTreeHost::flushPendingGraphicsLayerChangesSoon): Schedule a flush. Removed
1666         code to schedule a render, which now happens after we've flushed.
1667         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added. Some of this code came from
1668         render(). First we flush GraphicsLayer changes from GraphicsLayers to their underlying
1669         PlatformCALayers, then we flush changes from PlatformCALayers to the context, then we
1670         schedule a render so that the changes will be rendered to the screen.
1671
1672         * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed
1673         CACFLayerTreeHostClient::shouldRender. Added flushPendingLayerChangesNow and
1674         m_isFlushingLayerChanges.
1675
1676         * platform/graphics/ca/win/LayerChangesFlusher.cpp: Added.
1677         (WebCore::LayerChangesFlusher::shared):
1678         (WebCore::LayerChangesFlusher::LayerChangesFlusher):
1679         (WebCore::LayerChangesFlusher::flushPendingLayerChangesSoon):
1680         (WebCore::LayerChangesFlusher::cancelPendingFlush):
1681         (WebCore::LayerChangesFlusher::hookCallback):
1682         (WebCore::LayerChangesFlusher::hookFired):
1683         (WebCore::LayerChangesFlusher::setHook):
1684         (WebCore::LayerChangesFlusher::removeHook):
1685
1686         * platform/graphics/ca/win/LayerChangesFlusher.cpp: Added.
1687         (WebCore::LayerChangesFlusher::shared): Returns the singleton.
1688         (WebCore::LayerChangesFlusher::LayerChangesFlusher): Initialize our members.
1689         (WebCore::LayerChangesFlusher::flushPendingLayerChangesSoon): Add the host to the set of
1690         hosts with changes that need to be flushed, and set up our hook if we haven't already.
1691         (WebCore::LayerChangesFlusher::cancelPendingFlush): Remove the host from the set of hosts
1692         with changes that need to be flushed. If we have no more such hosts, remove our hook, unless
1693         we're currently in the process of calling out to our hosts, in which case we'll take care of
1694         the hook once we're done calling out.
1695         (WebCore::LayerChangesFlusher::hookCallback): This is the function that Windows calls when
1696         our hook fires. Just calls through to hookFired on the singleton.
1697         (WebCore::LayerChangesFlusher::hookFired): Tell all the hosts with changes that needed to be
1698         flushed that it's time to flush. If no hosts re-added themselves to our set during this
1699         process, remove our hook.
1700         (WebCore::LayerChangesFlusher::setHook): Calls through to ::SetWindowsHookExW.
1701         (WebCore::LayerChangesFlusher::removeHook): Calls through to ::UnhookWindowsHookEx.
1702
1703         * platform/graphics/ca/win/LayerChangesFlusher.h: Added.
1704
1705 2011-01-21  Simon Fraser  <simon.fraser@apple.com>
1706
1707         Reviewed by Sam Weinig.
1708
1709         GraphicsLayer should be non-copyable
1710         https://bugs.webkit.org/show_bug.cgi?id=52909
1711
1712         Use WTF_MAKE_NONCOPYABLE on GraphicsLayer, and WTF_MAKE_FAST_ALLOCATED
1713         on that and KeyframeValueList.
1714         
1715         * platform/graphics/GraphicsLayer.h:
1716
1717 2011-01-21  Simon Fraser  <simon.fraser@apple.com>
1718
1719         Reviewed by Sam Weinig.
1720
1721         Report the sized used by canvases and types arrays
1722         https://bugs.webkit.org/show_bug.cgi?id=52856
1723
1724         Report the memory cost associated with canvas elements,
1725         and typed arrays to JavaScript as extraCost, so that it
1726         can figure this into its GC behavior.
1727
1728         * bindings/js/JSArrayBufferViewHelper.h:
1729         (WebCore::toJSArrayBufferView): New templatized function, similar
1730         to getDOMObjectWrapper() but calls reportExtraMemoryCost() with
1731         the byteLength of the array.
1732         
1733         * bindings/js/JSFloat32ArrayCustom.cpp:
1734         (WebCore::toJS): Use toJSArrayBufferView.
1735         * bindings/js/JSInt16ArrayCustom.cpp:
1736         (WebCore::toJS): Use toJSArrayBufferView.
1737         * bindings/js/JSInt32ArrayCustom.cpp:
1738         (WebCore::toJS): Use toJSArrayBufferView.
1739         * bindings/js/JSInt8ArrayCustom.cpp:
1740         (WebCore::toJS): Use toJSArrayBufferView.
1741         * bindings/js/JSUint16ArrayCustom.cpp:
1742         (WebCore::toJS): Use toJSArrayBufferView.
1743         * bindings/js/JSUint32ArrayCustom.cpp:
1744         (WebCore::toJS): Use toJSArrayBufferView.
1745         * bindings/js/JSUint8ArrayCustom.cpp:
1746         (WebCore::toJS): Use toJSArrayBufferView.
1747
1748         * html/HTMLCanvasElement.cpp:
1749         (WebCore::HTMLCanvasElement::createImageBuffer): Call heap.reportExtraMemoryCost()
1750         with the size of the canvas backing store.
1751         
1752         * html/canvas/TypedArrayBase.h:
1753         (WebCore::TypedArrayBase::byteLength): byteLength needs to
1754         be public.
1755         
1756         * platform/graphics/ImageBuffer.h: Add dataSize() method.
1757         
1758         * platform/graphics/cairo/ImageBufferCairo.cpp:
1759         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1760         * platform/graphics/cg/ImageBufferCG.cpp:
1761         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1762         * platform/graphics/haiku/ImageBufferHaiku.cpp:
1763         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1764         * platform/graphics/qt/ImageBufferQt.cpp:
1765         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1766         * platform/graphics/skia/ImageBufferSkia.cpp:
1767         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1768         * platform/graphics/wince/ImageBufferWinCE.cpp:
1769         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1770         * platform/graphics/wx/ImageBufferWx.cpp:
1771         (WebCore::ImageBuffer::dataSize): Implement dataSize().
1772
1773 2011-01-21  Adam Roben  <aroben@apple.com>
1774
1775         Rename WKCACFLayerRenderer[Client] to CACFLayerTreeHost[Client]
1776
1777         Also renamed a few functions and data members to match.
1778
1779         Fixes <http://webkit.org/b/52898> WKCACFLayerRenderer sounds like a render object, but isn't
1780
1781         Reviewed by Simon Fraser.
1782
1783         * WebCore.vcproj/WebCore.vcproj: Updated files' names and paths.
1784
1785         * WebCore.vcproj/WebCoreQuartzCore.vsprops: Added platform/graphics/ca/win to the include
1786         path.
1787
1788         * WebCore.vcproj/copyForwardingHeaders.cmd: Copy headers from platform/graphics/ca/win, too.
1789
1790         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Renamed from Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp.
1791         * platform/graphics/ca/win/CACFLayerTreeHost.h: Renamed from Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h.
1792
1793         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1794         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
1795         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
1796         Updated for renames.
1797
1798 2011-01-21  Patrick Gansterer  <paroga@paroga.com>
1799
1800         Original patch from François Sausset  <sausset@gmail.com>
1801
1802         Reviewed by Darin Adler.
1803
1804         Code cleaning in rendering/mathml/RenderMathMLFraction.cpp
1805         https://bugs.webkit.org/show_bug.cgi?id=52201
1806
1807         Replace unneeded doubles by floats and remove unneeded casts.
1808
1809         * rendering/mathml/RenderMathMLFraction.cpp:
1810         (WebCore::RenderMathMLFraction::paint):
1811         * rendering/mathml/RenderMathMLFraction.h:
1812
1813 2011-01-21  Dimitri Glazkov  <dglazkov@chromium.org>
1814
1815         Reviewed by Darin Adler.
1816
1817         REGRESSION(r73618): Clicking on a search input causes a crash.
1818         https://bugs.webkit.org/show_bug.cgi?id=52905
1819
1820         The problem is caused by TextControlInnerElement being used both as
1821         shadow root and an element in a shadow subtree. The code assumed it is
1822         only used as a shadow root.
1823
1824         Since this code is all just workaround for in-progress conversion to
1825         new shadow DOM, I am just adding a check. This code will disappear
1826         completely once bug 52788 is fixed.
1827
1828         Test: fast/dom/search-shadow-host-crash.html
1829
1830         * dom/Node.cpp:
1831         (WebCore::Node::setShadowHost): Added an ASSERT for early detection
1832             of attempting to stomp on the parentNode.
1833         * rendering/TextControlInnerElements.cpp:
1834         (WebCore::TextControlInnerElement::detach): Added a check to only
1835             clear shadow host if we have one.
1836
1837 2011-01-21  Adam Roben  <aroben@apple.com>
1838
1839         Replace some "sync compositing state" terminology with "flush pending GraphicsLayer changes"
1840
1841         This seems to be the direction in which our code is moving. I chose "GraphicsLayer" as
1842         opposed to just "layer" because there are cases where we flush changes to CACFLayers that
1843         don't have a corresponding GraphicsLayer.
1844
1845         Fixes <http://webkit.org/b/52894> "Sync compositing state" terminology in
1846         WKCACFLayerRenderer and friends is confusing
1847
1848         Reviewed by Simon Fraser.
1849
1850         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1851         (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
1852         (WebCore::WKCACFLayerRenderer::render):
1853         Updated for renames.
1854
1855         (WebCore::WKCACFLayerRenderer::flushPendingGraphicsLayerChangesSoon): Renamed from
1856         syncCompositingStateSoon, and updated for other renames.
1857
1858         * platform/graphics/win/WKCACFLayerRenderer.h: Renamed m_syncLayerChanges to
1859         * m_shouldFlushPendingGraphicsLayerChanges.
1860         (WebCore::WKCACFLayerRendererClient::flushPendingGraphicsLayerChanges): Renamed from
1861         syncCompositingState.
1862
1863 2011-01-21  Adam Roben  <aroben@apple.com>
1864
1865         Clean up PlatformCAAnimationWin
1866
1867         Fixes <http://webkit.org/b/52904> PlatformCAAnimationWin is leaky and inefficient
1868
1869         Reviewed by Simon Fraser.
1870
1871         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1872         (toCACFFillModeType):
1873         (fromCACFFillModeType):
1874         (toCACFValueFunctionType):
1875         (fromCACFValueFunctionType):
1876         Changed to take and return CFStringRefs. There's no need to convert to WebCore::String just
1877         so we can later convert back to CFStringRef.
1878
1879         (toCACFTimingFunction): Fixed leaks by changing this to return a RetainPtr and adopting the
1880         results of CACFTimingFunctionCreate.
1881         (PlatformCAAnimation::PlatformCAAnimation): Changed not to needlessly roundtrip through
1882         WebCore::String. Also changed an ASSERT(0) to ASSERT_NOT_REACHED().
1883
1884         (PlatformCAAnimation::setFillMode):
1885         (PlatformCAAnimation::setTimingFunction):
1886         (PlatformCAAnimation::setValueFunction):
1887         (PlatformCAAnimation::setTimingFunctions):
1888         Updated for changes to the above conversion functions.
1889
1890 2011-01-21  Charlie Reis  <creis@chromium.org>
1891
1892         Reviewed by Darin Fisher.
1893
1894         FrameLoader::checkLoadCompleteForThisFrame uses wrong history item
1895         https://bugs.webkit.org/show_bug.cgi?id=48812
1896
1897         Most calls to stopAllLoaders now clear the history's provisional item(s).
1898         We can now avoid resetting the back/forward state if a new navigation
1899         is in progress.
1900
1901         Test: http/tests/navigation/back-twice-without-commit.html
1902         Test: http/tests/navigation/forward-and-cancel.html
1903
1904         * loader/FrameLoader.cpp:
1905         * loader/FrameLoader.h:
1906         * loader/FrameLoaderTypes.h:
1907         * WebCore.exp.in: Update stopAllLoaders signature.
1908
1909 2011-01-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1910
1911         Reviewed by Martin Robinson.
1912
1913         [GTK] Show caps lock indicator in password fields
1914         https://bugs.webkit.org/show_bug.cgi?id=52878
1915
1916         Test: manual-tests/password-caps-lock.html
1917
1918         * platform/gtk/KeyEventGtk.cpp:
1919         (WebCore::PlatformKeyboardEvent::currentCapsLockState): Implement
1920         currentCapsLockState() using GDK API.
1921         * platform/gtk/RenderThemeGtk.cpp:
1922         (WebCore::RenderThemeGtk::paintCapsLockIndicator): Paint an icon
1923         in the password field when the caps lock modifier is locked.
1924         * platform/gtk/RenderThemeGtk.h:
1925
1926 2011-01-21  Pavel Podivilov  <podivilov@chromium.org>
1927
1928         Reviewed by Pavel Feldman.
1929
1930         Web Inspector: move sticky breakpoints management from InspectorController to InspectorBrowserDebuggerAgent.
1931         https://bugs.webkit.org/show_bug.cgi?id=52874
1932
1933         This is the first step of debugger api refactoring (see bug 52879).
1934         JavaScript breakpoints are still in the same list as native breakpoints and are restored by InspectorBrowserDebuggerAgent.
1935         The second step will be to move sticky JavaScript breakpoints to InspectorDebuggerAgent.
1936
1937         * inspector/Inspector.idl:
1938         * inspector/InspectorBrowserDebuggerAgent.cpp:
1939         (WebCore::InspectorBrowserDebuggerAgent::setAllBrowserBreakpoints):
1940         (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged):
1941         (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
1942         (WebCore::InspectorBrowserDebuggerAgent::discardBindings):
1943         (WebCore::InspectorBrowserDebuggerAgent::didInsertDOMNode):
1944         (WebCore::InspectorBrowserDebuggerAgent::didRemoveDOMNode):
1945         (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
1946         (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
1947         (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
1948         (WebCore::InspectorBrowserDebuggerAgent::hasBreakpoint):
1949         (WebCore::InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints):
1950         * inspector/InspectorBrowserDebuggerAgent.h:
1951         * inspector/InspectorController.cpp:
1952         (WebCore::InspectorController::restoreInspectorStateFromCookie):
1953         (WebCore::InspectorController::connectFrontend):
1954         (WebCore::InspectorController::didCommitLoad):
1955         (WebCore::InspectorController::enableDebugger):
1956         (WebCore::InspectorController::resume):
1957         (WebCore::InspectorController::inspectedURL):
1958         * inspector/InspectorController.h:
1959         * inspector/InspectorState.cpp:
1960         (WebCore::InspectorState::InspectorState):
1961         * inspector/InspectorState.h:
1962         * inspector/front-end/BreakpointManager.js:
1963         (WebInspector.BreakpointManager):
1964         (WebInspector.BreakpointManager.prototype._saveBreakpoints):
1965
1966 2011-01-21  John Knottenbelt  <jknotten@chromium.org>
1967
1968         Reviewed by Jeremy Orlow.
1969
1970         Turn off uninitialized errors for ARM linux build.
1971         https://bugs.webkit.org/show_bug.cgi?id=52893
1972
1973         Fix ARM compiler breakage.
1974
1975         * WebCore.gyp/WebCore.gyp:
1976
1977 2011-01-21  Mikhail Naganov  <mnaganov@chromium.org>
1978
1979         Reviewed by Yury Semikhatsky.
1980
1981         Web Inspector: [Chromium] REGRESSION: Using the "Back" button
1982         while profiling causes renderer crash.
1983
1984         https://bugs.webkit.org/show_bug.cgi?id=52808
1985
1986         * inspector/InspectorProfilerAgent.cpp:
1987         (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
1988         (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
1989
1990 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
1991
1992         Reviewed by Pavel Feldman.
1993
1994         Web Inspector: switch page/Console implementation from InspectorController to InspectorInstrumentation.
1995
1996         There are some places in WebCore where we still using direct InspectorController calls.
1997         The idea is to pass all the Inspector related calls via InspectorInstrumentaion which is the
1998         Inspector facade for WebCore.
1999
2000         https://bugs.webkit.org/show_bug.cgi?id=52869
2001
2002         * inspector/InspectorController.cpp:
2003         * inspector/InspectorController.h:
2004         * inspector/InspectorInstrumentation.cpp:
2005         (WebCore::InspectorInstrumentation::addProfileImpl):
2006         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
2007         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl):
2008         * inspector/InspectorInstrumentation.h:
2009         (WebCore::InspectorInstrumentation::addProfile):
2010         (WebCore::InspectorInstrumentation::profilerEnabled):
2011         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
2012         * page/Console.cpp:
2013         (WebCore::Console::profile):
2014         (WebCore::Console::profileEnd):
2015
2016 2011-01-12  Pavel Podivilov  <podivilov@chromium.org>
2017
2018         Reviewed by Pavel Feldman.
2019
2020         Web Inspector: breakpoints are restored incorrectly when reverting live edit.
2021         https://bugs.webkit.org/show_bug.cgi?id=52300
2022
2023         Fix breakpoints restoring when reverting to old revision by using text diff.
2024         Move live edit logic from ScriptsPanel to DebuggerModel.
2025         Eliminate unnecessary editLine delegate in TextViewer.
2026
2027         * inspector/front-end/DebuggerModel.js:
2028         (WebInspector.DebuggerModel):
2029         (WebInspector.DebuggerModel.prototype.reset):
2030         (WebInspector.DebuggerModel.prototype.editScriptSource):
2031         (WebInspector.DebuggerModel.prototype._updateScriptSource):
2032         (WebInspector.DebuggerModel.prototype.get callFrames):
2033         (WebInspector.DebuggerModel.prototype.pausedScript):
2034         (WebInspector.DebuggerModel.prototype.resumedScript):
2035         * inspector/front-end/Script.js:
2036         (WebInspector.Script.prototype.get source):
2037         * inspector/front-end/ScriptView.js:
2038         (WebInspector.ScriptView):
2039         * inspector/front-end/ScriptsPanel.js:
2040         (WebInspector.ScriptsPanel):
2041         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
2042         * inspector/front-end/SourceFrame.js:
2043         (WebInspector.SourceFrame):
2044         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
2045         (WebInspector.SourceFrame.prototype._doubleClick.didEditLine):
2046         (WebInspector.SourceFrame.prototype._doubleClick):
2047         * inspector/front-end/SourceView.js:
2048         (WebInspector.SourceView):
2049         * inspector/front-end/TextViewer.js:
2050         (WebInspector.TextViewer):
2051         (WebInspector.TextViewer.prototype._handleKeyDown):
2052         (WebInspector.TextViewer.prototype.editLine.finishEditing):
2053         (WebInspector.TextViewer.prototype.editLine):
2054         (WebInspector.TextChunk.prototype._createRow):
2055
2056 2011-01-21  Adam Klein  <adamk@chromium.org>
2057
2058         Reviewed by Eric Seidel.
2059
2060         [chromium] Rename ChromiumBridge to PlatformBridge
2061         https://bugs.webkit.org/show_bug.cgi?id=52471
2062
2063         No tests added as this is a rename; no change in behavior.
2064
2065         * WebCore.gypi:
2066         * bindings/v8/V8DOMWindowShell.cpp:
2067         (WebCore::reportFatalErrorInV8):
2068         * page/PageGroup.cpp:
2069         (WebCore::PageGroup::isLinkVisited):
2070         * platform/android/PlatformBridge.h:
2071         * platform/audio/chromium/AudioBusChromium.cpp:
2072         (WebCore::createBusFromInMemoryAudioFile):
2073         * platform/chromium/ChromiumBridge.h: Removed.
2074         * platform/chromium/ChromiumDataObjectLegacy.cpp:
2075         (WebCore::ChromiumDataObjectLegacy::getData):
2076         * platform/chromium/DragDataChromium.cpp:
2077         (WebCore::DragData::asURL):
2078         * platform/chromium/FileSystemChromium.cpp:
2079         (WebCore::deleteFile):
2080         (WebCore::deleteEmptyDirectory):
2081         (WebCore::getFileSize):
2082         (WebCore::getFileModificationTime):
2083         (WebCore::revealFolderInOS):
2084         (WebCore::directoryName):
2085         (WebCore::pathByAppendingComponent):
2086         (WebCore::makeAllDirectories):
2087         (WebCore::fileExists):
2088         (WebCore::openFile):
2089         (WebCore::closeFile):
2090         (WebCore::seekFile):
2091         (WebCore::truncateFile):
2092         (WebCore::readFromFile):
2093         (WebCore::writeToFile):
2094         * platform/chromium/LanguageChromium.cpp:
2095         (WebCore::platformDefaultLanguage):
2096         * platform/chromium/LinkHashChromium.cpp:
2097         (WebCore::visitedLinkHash):
2098         * platform/chromium/MIMETypeRegistryChromium.cpp:
2099         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
2100         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
2101         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
2102         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
2103         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
2104         * platform/chromium/PasteboardChromium.cpp:
2105         (WebCore::Pasteboard::writeSelection):
2106         (WebCore::Pasteboard::writePlainText):
2107         (WebCore::Pasteboard::writeURL):
2108         (WebCore::Pasteboard::writeImage):
2109         (WebCore::Pasteboard::canSmartReplace):
2110         (WebCore::Pasteboard::plainText):
2111         (WebCore::Pasteboard::documentFragment):
2112         * platform/chromium/PlatformBridge.h:
2113         * platform/chromium/PlatformScreenChromium.cpp:
2114         (WebCore::screenDepth):
2115         (WebCore::screenDepthPerComponent):
2116         (WebCore::screenIsMonochrome):
2117         (WebCore::screenRect):
2118         (WebCore::screenAvailableRect):
2119         * platform/chromium/ReadableDataObject.cpp:
2120         (WebCore::ReadableDataObject::getData):
2121         (WebCore::ReadableDataObject::urlTitle):
2122         (WebCore::ReadableDataObject::htmlBaseUrl):
2123         (WebCore::ReadableDataObject::filenames):
2124         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
2125         * platform/chromium/SSLKeyGeneratorChromium.cpp:
2126         (WebCore::signedPublicKeyAndChallengeString):
2127         * platform/chromium/ScrollbarThemeChromium.cpp:
2128         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
2129         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
2130         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
2131         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
2132         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
2133         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
2134         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
2135         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2136         (WebCore::scrollbarStateToThemeState):
2137         (WebCore::ScrollbarThemeChromiumMac::paint):
2138         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
2139         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
2140         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
2141         (WebCore::ScrollbarThemeChromiumWin::paintButton):
2142         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
2143         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
2144         * platform/chromium/SharedTimerChromium.cpp:
2145         (WebCore::setSharedTimerFiredFunction):
2146         (WebCore::setSharedTimerFireTime):
2147         (WebCore::stopSharedTimer):
2148         * platform/chromium/SuddenTerminationChromium.cpp:
2149         (WebCore::disableSuddenTermination):
2150         (WebCore::enableSuddenTermination):
2151         * platform/chromium/SystemTimeChromium.cpp:
2152         (WebCore::currentTime):
2153         * platform/chromium/WritableDataObject.cpp:
2154         (WebCore::WritableDataObject::setData):
2155         * platform/graphics/chromium/CrossProcessFontLoading.mm:
2156         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2157         (WebCore::fontContainsCharacter):
2158         (WebCore::FillLogFont):
2159         * platform/graphics/chromium/FontCacheLinux.cpp:
2160         (WebCore::FontCache::getFontDataForCharacters):
2161         * platform/graphics/chromium/FontChromiumWin.cpp:
2162         (WebCore::Font::drawGlyphs):
2163         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2164         (WebCore::FontPlatformData::scriptFontProperties):
2165         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2166         (WebCore::FontPlatformData::querySystemForRenderStyle):
2167         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
2168         (WebCore::fillBMPGlyphs):
2169         * platform/graphics/chromium/ImageChromium.cpp:
2170         (WebCore::Image::loadPlatformResource):
2171         * platform/graphics/chromium/ImageChromiumMac.mm:
2172         (WebCore::Image::loadPlatformResource):
2173         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2174         (WebCore::SimpleFontData::platformInit):
2175         (WebCore::SimpleFontData::determinePitch):
2176         (WebCore::SimpleFontData::platformWidthForGlyph):
2177         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
2178         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
2179         * platform/graphics/skia/FontCustomPlatformData.cpp:
2180         (WebCore::FontCustomPlatformData::fontPlatformData):
2181         * platform/network/chromium/CookieJarChromium.cpp:
2182         (WebCore::setCookies):
2183         (WebCore::cookies):
2184         (WebCore::cookieRequestHeaderFieldValue):
2185         (WebCore::cookiesEnabled):
2186         (WebCore::getRawCookies):
2187         (WebCore::deleteCookie):
2188         * platform/network/chromium/DNSChromium.cpp:
2189         (WebCore::prefetchDNS):
2190         * platform/qt/PlatformBridge.h:
2191         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
2192         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
2193         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
2194         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
2195         (chromiumOpen):
2196         (chromiumDelete):
2197         (chromiumAccess):
2198         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
2199         * plugins/chromium/PluginDataChromium.cpp:
2200         (WebCore::PluginCache::plugins):
2201         * rendering/RenderThemeChromiumMac.mm:
2202         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
2203         * rendering/RenderThemeChromiumSkia.cpp:
2204         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
2205         * rendering/RenderThemeChromiumWin.cpp:
2206         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
2207         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
2208         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
2209         (WebCore::RenderThemeChromiumWin::systemColor):
2210         (WebCore::RenderThemeChromiumWin::paintButton):
2211         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2212         (WebCore::menuListButtonWidth):
2213         (WebCore::RenderThemeChromiumWin::paintMenuList):
2214         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
2215         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
2216         (WebCore::RenderThemeChromiumWin::paintProgressBar):
2217         * storage/chromium/IDBFactoryBackendInterface.cpp:
2218         (WebCore::IDBFactoryBackendInterface::create):
2219         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
2220         * storage/chromium/IDBKeyPathBackendImpl.cpp:
2221         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2222
2223 2011-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2224
2225         Unreviewed, rolling out r76335.
2226         http://trac.webkit.org/changeset/76335
2227         https://bugs.webkit.org/show_bug.cgi?id=52875
2228
2229         profiler tests were broken (Requested by loislo on #webkit).
2230
2231         * inspector/InspectorController.cpp:
2232         (WebCore::InspectorController::addProfile):
2233         (WebCore::InspectorController::getCurrentUserInitiatedProfileName):
2234         * inspector/InspectorController.h:
2235         * inspector/InspectorInstrumentation.cpp:
2236         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
2237         * inspector/InspectorInstrumentation.h:
2238         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
2239         (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForPage):
2240         * page/Console.cpp:
2241         (WebCore::Console::profile):
2242         (WebCore::Console::profileEnd):
2243
2244 2011-01-21  Ilya Tikhonovsky  <loislo@chromium.org>
2245
2246         Reviewed by Yury Semikhatsky.
2247
2248         Web Inspector: switch page/Console implementation from InspectorController to InspectorInstrumentation.
2249
2250         There are some places in WebCore where we still using direct InspectorController calls.
2251         The idea is to pass all the Inspector related calls via InspectorInstrumentaion which is the
2252         Inspector facade for WebCore.
2253
2254         https://bugs.webkit.org/show_bug.cgi?id=52869
2255
2256         * inspector/InspectorController.cpp:
2257         * inspector/InspectorController.h:
2258         * inspector/InspectorInstrumentation.cpp:
2259         (WebCore::InspectorInstrumentation::addProfileImpl):
2260         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
2261         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl):
2262         * inspector/InspectorInstrumentation.h:
2263         (WebCore::InspectorInstrumentation::addProfile):
2264         (WebCore::InspectorInstrumentation::profilerEnabled):
2265         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
2266         * page/Console.cpp:
2267         (WebCore::Console::profile):
2268         (WebCore::Console::profileEnd):
2269
2270 2011-01-20  Sam Weinig  <sam@webkit.org>
2271
2272         Reviewed by Gavin Barraclough.
2273
2274         Fix failing tests from r76291.
2275
2276         * platform/ScrollView.cpp:
2277         (WebCore::ScrollView::scrollPosition):
2278         (WebCore::ScrollView::updateScrollbars):
2279         Take the scroll origin into account in more places.
2280
2281 2011-01-20  Kent Tamura  <tkent@chromium.org>
2282
2283         Unreviewed, sorting an Xcode project file.
2284
2285         * WebCore.xcodeproj/project.pbxproj:
2286
2287 2011-01-20  Ben Vanik  <ben.vanik@gmail.com>
2288
2289         Reviewed by Kenneth Russell.
2290
2291         Implementation of the OES_standard_derivatives WebGL extension.
2292         https://bugs.webkit.org/show_bug.cgi?id=51678
2293
2294         Changes are modeled off of the existing OESTextureFloat extension. New files,
2295         extension retrieval, etc all match the existing code.
2296
2297         Changed ANGLEWebKitBridge to allow for multiple sets of the ANGLE shader compiler
2298         options. This supports the enabling of the standard derivatives flag when the
2299         extension is enabled. Refactored the cleanup code to make the destruction of the
2300         compilers (if they had been created) cleaner.
2301
2302         Tested with the WebGL conformance test:
2303         https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/oes-standard-derivatives.html
2304         Passes on WebKit/OSX, Chromium/OSX, and Chromium/Windows.
2305
2306         * CMakeLists.txt:
2307         * DerivedSources.make:
2308         * GNUmakefile.am:
2309         * WebCore.gypi:
2310         * WebCore.pri:
2311         * WebCore.pro:
2312         * WebCore.xcodeproj/project.pbxproj:
2313         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2314         (WebCore::toJS):
2315         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2316         (WebCore::toV8Object):
2317         * html/canvas/OESStandardDerivatives.cpp: Added.
2318         (WebCore::OESStandardDerivatives::OESStandardDerivatives):
2319         (WebCore::OESStandardDerivatives::~OESStandardDerivatives):
2320         (WebCore::OESStandardDerivatives::getName):
2321         (WebCore::OESStandardDerivatives::create):
2322         * html/canvas/OESStandardDerivatives.h: Added.
2323         * html/canvas/OESStandardDerivatives.idl: Added.
2324         * html/canvas/WebGLExtension.h:
2325         * html/canvas/WebGLRenderingContext.cpp:
2326         (WebCore::WebGLRenderingContext::getExtension): Enable and return the new extension.
2327         (WebCore::WebGLRenderingContext::getParameter): Support extension enum when enabled.
2328         (WebCore::WebGLRenderingContext::getSupportedExtensions): 
2329         (WebCore::WebGLRenderingContext::hint): Validate extension enum when enabled.
2330         (WebCore::WebGLRenderingContext::getNumberOfExtensions):
2331         (WebCore::WebGLRenderingContext::getExtensionNumber):
2332         * html/canvas/WebGLRenderingContext.h:
2333         * platform/graphics/ANGLEWebKitBridge.cpp:
2334         (WebCore::ANGLEWebKitBridge::~ANGLEWebKitBridge): Cleaned up compiler cleanup.
2335         (WebCore::ANGLEWebKitBridge::cleanupCompilers): Destruct compilers.
2336         (WebCore::ANGLEWebKitBridge::setResources): Cleanup existing compilers when changing
2337         ANGLE settings.
2338         (WebCore::ANGLEWebKitBridge::validateShaderSource): Cleaned up compiler cleanup on error.
2339         * platform/graphics/ANGLEWebKitBridge.h:
2340         (WebCore::ANGLEWebKitBridge::getResources):
2341         * platform/graphics/Extensions3D.h: Added enumeration for the extension.
2342         * platform/graphics/GraphicsContext3D.h: lumbing for GraphicsContext3D.
2343         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2344         (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Plumbed through a pointer to the
2345         GraphicsContext3D to handle resetting the shader compilers.
2346         (WebCore::Extensions3DOpenGL::supports): Desktop GL always supports this extension,
2347         so always return true.
2348         (WebCore::Extensions3DOpenGL::ensureEnabled): Reset shader compilers as required.
2349         * platform/graphics/opengl/Extensions3DOpenGL.h: Plumbing for GraphicsContext3D.
2350         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2351         (WebCore::GraphicsContext3D::getExtensions): Plumbing for GraphicsContext3D to
2352         Extensions3DOpenGL.
2353
2354 2011-01-20  Xiaomei Ji  <xji@chromium.org>
2355
2356         Reviewed by Dan Bernstein.
2357
2358         Fix regression(r71566): PDF in RTL block might messes up text directionality.
2359         https://bugs.webkit.org/show_bug.cgi?id=52776
2360
2361         Test: fast/dom/52776.html
2362
2363         * platform/text/BidiResolver.h:
2364         (WebCore::::checkDirectionInLowerRaiseEmbeddingLevel):
2365         (WebCore::::lowerExplicitEmbeddingLevel):
2366         (WebCore::::raiseExplicitEmbeddingLevel):
2367         (WebCore::::createBidiRunsForLine):
2368
2369 2011-01-20  Beth Dakin  <bdakin@apple.com>
2370
2371         Reviewed by Anders Carlsson.
2372
2373         Follow-on for <rdar://problem/8890255>
2374
2375         This fixes a painting error with ScrollbarPainter scrollers
2376         and the new drawing area code path.
2377         * platform/mac/ScrollbarThemeMac.mm:
2378         (WebCore::updateArrowPlacement):
2379
2380 2011-01-20  Levi Weintraub  <leviw@chromium.org>
2381
2382         Unreviewed.
2383
2384         Fixing build breakage.
2385
2386         * editing/SelectionController.cpp:
2387         (WebCore::SelectionController::willBeModified):
2388
2389 2011-01-20  Levi Weintraub  <leviw@chromium.org>
2390
2391         Reviewed by Ryosuke Niwa.
2392
2393         RTL: Caret goes to the opposite direction when pressing an arrow key after selection is made
2394         https://bugs.webkit.org/show_bug.cgi?id=49511
2395
2396         Test: editing/selection/rtl-move-selection-right-left.html
2397
2398         * editing/SelectionController.cpp:
2399         (WebCore::SelectionController::willBeModified):
2400         Respecting the direction of the containing block when switching selection base and extent in
2401         RTL content.
2402
2403         (WebCore::SelectionController::modifyMovingRight):
2404         (WebCore::SelectionController::modifyMovingLeft):
2405         Using directionOfEnclosingBlock when deciding to use the selection start or end to do the
2406         correct thing for RTL.
2407
2408 2011-01-20  Nate Chapin  <japhet@chromium.org>
2409
2410         Reviewed by Adam Barth.
2411
2412         Null-check m_frame in DOMWindow::setLocation(), since it's
2413         possible to reach this point without it having been checked
2414         already.
2415         https://bugs.webkit.org/show_bug.cgi?id=52769
2416
2417         Test: fast/dom/Window/Location/set-location-after-close.html
2418
2419         * page/DOMWindow.cpp:
2420         (WebCore::DOMWindow::setLocation):
2421
2422 2011-01-20  Chang Shu  <chang.shu@nokia.com>
2423
2424         Reviewed by Darin Adler.
2425
2426         setContentEditable with invalid string should throw exception.
2427         https://bugs.webkit.org/show_bug.cgi?id=52057
2428
2429         Implemented exception throwing for setContentEditable according to the following spec:
2430         http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#attr-contenteditable
2431         Related quotas: "On setting, if the new value is an ASCII case-insensitive match for the 
2432         string 'inherit' then the content attribute must be removed, if the new value is an ASCII 
2433         case-insensitive match for the string 'true' then the content attribute must be set to the 
2434         string 'true', if the new value is an ASCII case-insensitive match for the string 'false' 
2435         then the content attribute must be set to the string 'false', and otherwise the attribute 
2436         setter must raise a SYNTAX_ERR exception."
2437
2438         * html/HTMLElement.cpp:
2439         (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.
2440         * html/HTMLElement.h: Add additional parameter ExceptionCode& for function setContentEditable.
2441         * html/HTMLElement.idl: Add exception throwing support for contentEditable setter.
2442
2443 2011-01-19  Adrienne Walker  <enne@google.com>
2444
2445         Reviewed by James Robinson.
2446
2447         [chromium] Composited render surfaces should allow writes to alpha channel.
2448         https://bugs.webkit.org/show_bug.cgi?id=52766
2449
2450         Test: LayoutTests/platform/chromium/compositing
2451
2452         * platform/graphics/chromium/LayerRendererChromium.cpp:
2453         (WebCore::LayerRendererChromium::drawLayers):
2454
2455 2011-01-14  Jer Noble  <jer.noble@apple.com>
2456
2457         Reviewed by Eric Carlson.
2458
2459         REGRESSION (r71842): Compass video is not playing in Safari welcome page
2460         https://bugs.webkit.org/show_bug.cgi?id=52506
2461
2462         New test: LayoutTests/media/video-currentTime-delay.html
2463
2464         Call invalidateCachedTime() every time one of the cached property dependencies changes,
2465         i.e. m_paused and m_playbackRate.
2466
2467         * html/HTMLMediaElement.cpp:
2468         (WebCore::HTMLMediaElement::prepareForLoad):
2469         (WebCore::HTMLMediaElement::setReadyState):
2470         (WebCore::HTMLMediaElement::setPlaybackRate):
2471         (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
2472
2473 2011-01-20  Beth Dakin  <bdakin@apple.com>
2474
2475         Reviewed by Geoffrey Garen.
2476
2477         Fix for <rdar://problem/8890255>
2478
2479         Allow WebKitSystemInterface to draw scrollbars 
2480         when appropriate.
2481         * WebCore.exp.in:
2482         * platform/mac/ScrollbarThemeMac.mm:
2483         (WebCore::scrollbarMap):
2484         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
2485         (WebCore::ScrollbarThemeMac::registerScrollbar):
2486         (WebCore::ScrollbarThemeMac::unregisterScrollbar):
2487         (WebCore::ScrollbarThemeMac::paint):
2488         * platform/mac/WebCoreSystemInterface.h:
2489         * platform/mac/WebCoreSystemInterface.mm:
2490
2491 2011-01-20  Sam Weinig  <sam@webkit.org>
2492
2493         Reviewed by Dave Hyatt.
2494
2495         Cleanup Scrollbar/ScrollbarClient relationship
2496         https://bugs.webkit.org/show_bug.cgi?id=52779
2497
2498         Pipe all scrolling through the ScrollbarClient/ScrollAnimator
2499         rather than through the Scrollbar. The Scrollbar now is just
2500         a "view" on the scroll position of the scrollable area it is
2501         attached to.
2502
2503         There are now two ways to scroll a scrollable area:
2504         - ScrollbarClient::scroll()
2505         - ScrollbarClient::scrollToOffsetWithoutAnimation()
2506
2507         Both of these go through the ScrollAnimator (updating its state
2508         or starting an animation). The ScrollAnimator, in turn, now calls
2509         ScrollbarClient::setScrollOffsetFromAnimation, which tells the
2510         Scrollbars to pull a new offset (via Scrollbar::offsetDidChange)
2511         and tells the class that derives from ScrollbarClient to scroll
2512         its contents (via ScrollbarClient::setScrollOffset).
2513
2514         * WebCore.xcodeproj/project.pbxproj:
2515         Move Scrollbar.cpp to the right place.
2516
2517         * accessibility/AccessibilityScrollbar.cpp:
2518         (WebCore::AccessibilityScrollbar::setValue):
2519         Initiate the scroll through the scrollbar client, rather than the
2520         scrollbar itself.
2521
2522         * page/FrameView.cpp:
2523         (WebCore::FrameView::scrollTo):
2524         * page/FrameView.h:
2525         Condense the two valueChanged overrides to a single override of the
2526         scrollTo function.
2527
2528         * platform/ScrollAnimator.cpp:
2529         (WebCore::ScrollAnimator::scroll):
2530         (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
2531         (WebCore::ScrollAnimator::currentPosition):
2532         (WebCore::ScrollAnimator::notityPositionChanged):
2533         * platform/ScrollAnimator.h:
2534         * platform/ScrollAnimatorWin.cpp:
2535         (WebCore::ScrollAnimatorWin::scrollToOffsetWithoutAnimation):
2536         (WebCore::ScrollAnimatorWin::animateScroll):
2537         * platform/ScrollAnimatorWin.h:
2538         * platform/mac/ScrollAnimatorMac.h:
2539         * platform/mac/ScrollAnimatorMac.mm:
2540         (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation):
2541         (WebCore::ScrollAnimatorMac::immediateScrollToPoint):
2542         Change setScrollPositionAndStopAnimation to scrollToOffsetWithoutAnimation
2543         and bottleneck all client notification of changed position through a new
2544         notityPositionChanged() function.
2545
2546         * platform/ScrollView.cpp:
2547         (WebCore::ScrollView::setScrollOffset):
2548         (WebCore::ScrollView::scrollTo):
2549         (WebCore::ScrollView::scrollPosition):
2550         (WebCore::ScrollView::scroll):
2551         (WebCore::ScrollView::updateScrollbars):
2552         (WebCore::ScrollView::wheelEvent):
2553         * platform/ScrollView.h:
2554         (WebCore::ScrollView::horizontalScrollbar):
2555         (WebCore::ScrollView::verticalScrollbar):
2556         Update to scroll via the ScrollbarClient rather than the Scrollbar.
2557
2558         * platform/Scrollbar.cpp:
2559         (WebCore::Scrollbar::offsetDidChange):
2560         (WebCore::Scrollbar::autoscrollPressedPart):
2561         (WebCore::Scrollbar::moveThumb):
2562         (WebCore::Scrollbar::mouseMoved):
2563         * platform/Scrollbar.h:
2564         (WebCore::Scrollbar::setPressedPos):
2565         Change the scrollbar to only updates its offset in response to
2566         an offsetDidChange call.
2567
2568         * platform/ScrollbarClient.cpp:
2569         (WebCore::ScrollbarClient::scroll):
2570         (WebCore::ScrollbarClient::scrollToOffsetWithoutAnimation):
2571         (WebCore::ScrollbarClient::scrollToXOffsetWithoutAnimation):
2572         (WebCore::ScrollbarClient::scrollToYOffsetWithoutAnimation):
2573         (WebCore::ScrollbarClient::setScrollOffsetFromAnimation):
2574         * platform/ScrollbarClient.h:
2575         (WebCore::ScrollbarClient::horizontalScrollbar):
2576         (WebCore::ScrollbarClient::verticalScrollbar):
2577         Make the increasingly misnamed ScrollbarClient responsible for
2578         scrolling.
2579
2580         * platform/efl/ScrollbarEfl.cpp:
2581         (scrollbarEflEdjeMessage):
2582         * platform/gtk/MainFrameScrollbarGtk.cpp:
2583         (MainFrameScrollbarGtk::gtkValueChanged):
2584         * platform/qt/ScrollbarQt.cpp:
2585         (WebCore::Scrollbar::contextMenu):
2586         Update to move scrolling through the client.
2587
2588         * platform/win/PopupMenuWin.cpp:
2589         (WebCore::PopupMenuWin::scrollToRevealSelection):
2590         (WebCore::PopupMenuWin::scrollPosition):
2591         (WebCore::PopupMenuWin::setScrollOffset):
2592         (WebCore::PopupMenuWin::scrollTo):
2593         (WebCore::PopupMenuWin::wndProc):
2594         * platform/win/PopupMenuWin.h:
2595         (WebCore::PopupMenuWin::verticalScrollbar):
2596         * rendering/RenderLayer.cpp:
2597         (WebCore::RenderLayer::scrollToOffset):
2598         (WebCore::RenderLayer::scrollTo):
2599         (WebCore::RenderLayer::setScrollOffset):
2600         (WebCore::RenderLayer::scrollPosition):
2601         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2602         (WebCore::RenderLayer::scroll):
2603         * rendering/RenderLayer.h:
2604         * rendering/RenderListBox.cpp:
2605         (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
2606         (WebCore::RenderListBox::scroll):
2607         (WebCore::RenderListBox::logicalScroll):
2608         (WebCore::RenderListBox::scrollPosition):
2609         (WebCore::RenderListBox::setScrollOffset):
2610         (WebCore::RenderListBox::scrollTo):
2611         (WebCore::RenderListBox::setScrollTop):
2612         * rendering/RenderListBox.h:
2613         (WebCore::RenderListBox::verticalScrollbar):
2614         Update to scroll via the ScrollbarClient rather than the Scrollbar.
2615
2616         * rendering/RenderMarquee.cpp:
2617         (WebCore::RenderMarquee::start):
2618         Simplify initial paint to just do an immediate scroll to the position.
2619
2620 2011-01-20  Patrick Gansterer  <paroga@webkit.org>
2621
2622         Unreviewed WinCE build fix for r76170.
2623
2624         * platform/graphics/wince/FontWinCE.cpp: Added a missing include.
2625         * platform/graphics/wince/ImageBufferData.h: Added a missing include and fixed style.
2626
2627 2011-01-20  James Robinson  <jamesr@chromium.org>
2628
2629         Reviewed by Darin Fisher.
2630
2631         Implement mozilla's requestAnimationFrame API
2632         https://bugs.webkit.org/show_bug.cgi?id=51218
2633
2634         This implements mozilla's proposed requestAnimationFrame API.  The idea with this API is that
2635         an author driving an animation from script could use window.requestAnimationFrame(callback)
2636         instead of window.setTimeout(callback, 0) to schedule their update logic and let the browser
2637         decide when to update the animations.  This avoids doing unnecessary work when the page content
2638         is offscreen or is being displayed at a different framerate than what the page author expects.
2639
2640         Mozilla's proposal is here: https://developer.mozilla.org/en/DOM/window.mozRequestAnimationFrame
2641         This implements window.mozRequestAnimationFrame as window.webkitRequestAnimationFrame with the
2642         following changes:
2643         *) Only the callback syntax is supported, there is no before paint event
2644         *) webkitRequestAnimationFrame supports a second parameter Element to let the author indicate
2645             what content they intend to animate.  That way if the page is being displayed but the element
2646             in question is offscreen, we can avoid invoking the callback.
2647         *) No timestamp is provided to the caller and there is no window.animationStartTime property
2648             (see https://bugs.webkit.org/show_bug.cgi?id=51952 for discussion of this property)
2649         *) window.webkitRequestAnimationFrame returns a numerical id that can be used to cancel the callback
2650             using window.cancelWebkitRequestAnimationFrame, to parallel window.setTimeout()/window.clearTime().
2651
2652         The implementation depends on the embedder scheduling the callbacks since the callback invocation
2653         depends on the page's visibility and the embedder's paint scheduling, neither of which are exposed
2654         to WebCore.  The expectation for the embedder is that at some point Chrome::scheduleAnimation() is
2655         called FrameView::serviceScriptedAnimations() should be called for the associated Page's main frame.
2656         Ideally serviceScriptedAnimations() would be called prior to rendering - although in practice the
2657         embedder has to rate limit callbacks and may not be able to tie the callback directly to the
2658         rendering loop.
2659
2660         Tests: fast/animation/request-animation-frame-cancel.html
2661                fast/animation/request-animation-frame-cancel2.html
2662                fast/animation/request-animation-frame-display.html
2663                fast/animation/request-animation-frame-within-callback.html
2664                fast/animation/request-animation-frame.html
2665
2666         * WebCore.gypi:
2667         * dom/Document.cpp:
2668         (WebCore::Document::Document):
2669         (WebCore::Document::webkitRequestAnimationFrame):
2670         (WebCore::Document::webkitCancelRequestAnimationFrame):
2671         (WebCore::Document::serviceScriptedAnimations):
2672         * dom/Document.h:
2673         * dom/RequestAnimationFrameCallback.h: Added.
2674         (WebCore::RequestAnimationFrameCallback::~RequestAnimationFrameCallback):
2675         * dom/RequestAnimationFrameCallback.idl: Added.
2676         * loader/EmptyClients.h:
2677         (WebCore::EmptyChromeClient::scheduleAnimation):
2678         * page/Chrome.cpp:
2679         (WebCore::Chrome::scheduleAnimation):
2680         * page/Chrome.h:
2681         * page/ChromeClient.h:
2682         * page/DOMWindow.cpp:
2683         (WebCore::DOMWindow::webkitRequestAnimationFrame):
2684         (WebCore::DOMWindow::webkitCancelRequestAnimationFrame):
2685         * page/DOMWindow.h:
2686         * page/DOMWindow.idl:
2687         * page/FrameView.cpp:
2688         (WebCore::FrameView::scheduleAnimation):
2689         (WebCore::FrameView::serviceScriptedAnimations):
2690         * page/FrameView.h:
2691         * platform/HostWindow.h:
2692
2693 2011-01-20  James Robinson  <jamesr@chromium.org>
2694
2695         Reviewed by Nate Chapin.
2696
2697         [v8] CodeGeneratorV8 generates incorrect code for callbacks with no parameters
2698         https://bugs.webkit.org/show_bug.cgi?id=52837
2699
2700         When generating code to invoke a callback with no parameters CodeGeneratorV8.pm was generating the following:
2701         v8::Handle<v8::Value> argv[] = {}; which does not compile in visual studio.  Instead, if the argument count
2702         is 0, we can just pass a NULL pointer for the argv parameter.
2703
2704         Test added to bindings/scripts/test/TestCallback.idl and covered by run-bindings-tests.  This
2705         patch also includes some spurious changes to the bindings tests golden files (mostly GObject)
2706         because the old golden files were out of date.
2707
2708         * bindings/scripts/CodeGeneratorV8.pm:
2709         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
2710         (WebDOMTestCallback::callbackWithNoParam):
2711         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
2712         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
2713         (webkit_dom_test_callback_callback_with_no_param):
2714         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2715         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
2716         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
2717         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2718         * bindings/scripts/test/JS/JSTestCallback.cpp:
2719         (WebCore::JSTestCallback::callbackWithNoParam):
2720         * bindings/scripts/test/JS/JSTestCallback.h:
2721         * bindings/scripts/test/JS/JSTestInterface.cpp:
2722         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2723         * bindings/scripts/test/JS/JSTestObj.cpp:
2724         * bindings/scripts/test/ObjC/DOMTestCallback.h:
2725         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
2726         (-[DOMTestCallback callbackWithNoParam]):
2727         * bindings/scripts/test/TestCallback.idl:
2728         * bindings/scripts/test/V8/V8TestCallback.cpp:
2729         (WebCore::V8TestCallback::callbackWithNoParam):
2730         * bindings/scripts/test/V8/V8TestCallback.h:
2731         * bindings/scripts/test/V8/V8TestObj.cpp:
2732         (WebCore::TestObjInternal::reflectedUnsignedIntegralAttrAttrGetter):
2733
2734 2011-01-20  James Robinson  <jamesr@chromium.org>
2735
2736         Reviewed by Eric "Baller" Seidel.
2737
2738         RenderTableSection's setNeedsCellRecalc needs to null check table()
2739         https://bugs.webkit.org/show_bug.cgi?id=52770
2740
2741         Null checks table() before deferencing it in RenderTableSection::setNeedsCellRecalc.
2742         This can be null during detach().  Test constructed by Eric Seidel.
2743
2744         Test: fast/css-generated-content/table-with-scrollbar-corner.html
2745
2746         * rendering/RenderTableSection.cpp:
2747         (WebCore::RenderTableSection::setNeedsCellRecalc):
2748         * rendering/RenderTableSection.h:
2749
2750 2011-01-20  Dirk Schulze  <krit@webkit.org>
2751
2752         Reviewed by Rob Buis.
2753
2754         SVG Pattern doesn't take preserveAspectRatio of references Pattern
2755         https://bugs.webkit.org/show_bug.cgi?id=52802
2756
2757         SVGPattern didn't take preserveAspectRatio of a referenced SVGPattern into account. Store preserveAspectRatio
2758         in PatternAttributes as well, if the attribute was set on the referenced SVGPattern element.
2759
2760         Test: svg/custom/pattern-referencing-preserve-aspect-ratio.svg
2761
2762         * rendering/svg/RenderSVGResourcePattern.cpp:
2763         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
2764         * svg/PatternAttributes.h:
2765         (WebCore::PatternAttributes::PatternAttributes):
2766         (WebCore::PatternAttributes::preserveAspectRatio):
2767         (WebCore::PatternAttributes::setPreserveAspectRatio):
2768         (WebCore::PatternAttributes::hasPreserveAspectRatio):
2769         * svg/SVGPatternElement.cpp:
2770         (WebCore::SVGPatternElement::collectPatternAttributes):
2771
2772 2011-01-20  Dan Bernstein  <mitz@apple.com>
2773
2774         Reviewed by Adele Peterson.
2775
2776         <rdar://problem/8765498> REGRESSION (r72141): Cannot order prints with Aperture 3.1
2777
2778         <rdar://problem/8884648> REGRESSION (r72141): Safari hangs when visiting a page on www.bfmtv.com
2779         https://bugs.webkit.org/show_bug.cgi?id=52765
2780
2781         <rdar://problem/8890909> REGRESSION (r72141): Very Slow Rendering With Certain Markup
2782         https://bugs.webkit.org/show_bug.cgi?id=52265
2783
2784         Test: fast/block/line-layout/negative-max-height.html
2785
2786         Integer overflow detection led to a block having a huge height. This manifested as broken layout
2787         in the first bug and as extreme slowness in the latter bugs because of
2788         https://bugs.webkit.org/show_bug.cgi?id=52832
2789
2790         * rendering/RootInlineBox.cpp:
2791         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Clamp maxHeight to 0 so the next line
2792         cannot start above this line. The negative maxHeight also caused the integer overflow detection
2793         logic to give the block a huge height.
2794
2795 2011-01-20  Yi Shen  <yi.4.shen@nokia.com>
2796
2797         Reviewed by Eric Carlson.
2798
2799         Clean up the Media Controls CSS for Qt
2800         https://bugs.webkit.org/show_bug.cgi?id=52822
2801
2802         Split the audio::-webkit-media-xxx and video::-webkit-media-xxx rules 
2803         in mediaControlsQt.css, and remove the duplicate audio::-webkit-media-xxx
2804         rules from mediaControlsQtFullscreen.css.
2805
2806         * css/mediaControlsQt.css:
2807         (audio::-webkit-media-controls-panel):
2808         (video::-webkit-media-controls-panel):
2809         (audio::-webkit-media-controls-mute-button):
2810         (video::-webkit-media-controls-mute-button):
2811         (audio::-webkit-media-controls-play-button):
2812         (video::-webkit-media-controls-play-button):
2813         (audio::-webkit-media-controls-timeline-container):
2814         (video::-webkit-media-controls-timeline-container):
2815         (audio::-webkit-media-controls-current-time-display):
2816         (video::-webkit-media-controls-current-time-display):
2817         (audio::-webkit-media-controls-time-remaining-display):
2818         (video::-webkit-media-controls-time-remaining-display):
2819         (audio::-webkit-media-controls-timeline):
2820         (video::-webkit-media-controls-timeline):
2821         (audio::-webkit-media-controls-volume-slider-container):
2822         (video::-webkit-media-controls-volume-slider-container):
2823         (audio::-webkit-media-controls-volume-slider):
2824         (video::-webkit-media-controls-volume-slider):
2825         (audio::-webkit-media-controls-seek-back-button):
2826         (video::-webkit-media-controls-seek-back-button):
2827         (audio::-webkit-media-controls-seek-forward-button):
2828         (video::-webkit-media-controls-seek-forward-button):
2829         (audio::-webkit-media-controls-fullscreen-button):
2830         (video::-webkit-media-controls-fullscreen-button):
2831         (audio::-webkit-media-controls-rewind-button):
2832         (video::-webkit-media-controls-rewind-button):
2833         (audio::-webkit-media-controls-return-to-realtime-button):
2834         (video::-webkit-media-controls-return-to-realtime-button):
2835         (audio::-webkit-media-controls-toggle-closed-captions-button):
2836         (video::-webkit-media-controls-toggle-closed-captions-button):
2837         * css/mediaControlsQtFullscreen.css:
2838         (video::-webkit-media-controls-time-remaining-display):
2839         (video::-webkit-media-controls-seek-back-button):
2840         (video::-webkit-media-controls-seek-forward-button):
2841         (video::-webkit-media-controls-rewind-button):
2842         (video::-webkit-media-controls-return-to-realtime-button):
2843         (video::-webkit-media-controls-toggle-closed-captions-button):
2844
2845 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
2846
2847         Reviewed by Pavel Feldman.
2848
2849         Web Inspector: [REGRESSION] Canceling of CSS numeric values increment/decrement is broken
2850         https://bugs.webkit.org/show_bug.cgi?id=52816
2851
2852         * inspector/front-end/StylesSidebarPane.js:
2853         (WebInspector.StylePropertyTreeElement.prototype):
2854
2855 2011-01-20  Dawit Alemayehu  <adawit@kde.org>
2856
2857         Reviewed by Andreas Kling.
2858
2859         [Qt] Fix Layering violation in MediaPlayerPrivateQt.
2860         https://bugs.webkit.org/show_bug.cgi?id=52733
2861
2862         No new tests. no behavioral change.
2863
2864        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
2865         (WebCore::MediaPlayerPrivateQt::commitLoad):
2866
2867 2011-01-20  Nate Chapin  <japhet@chromium.org>
2868
2869         Reviewed by Darin Fisher.
2870
2871         [V8] Call malloc and memcpy directly instead of
2872         of strdup in convertV8ObjectToNPVariant() when
2873         converting strings. If there is a null character
2874         in the string, our use of strdup causes us to allocate
2875         too little memory, leading to out of bounds reads.
2876
2877         https://bugs.webkit.org/show_bug.cgi?id=52631
2878
2879         * bindings/v8/V8NPUtils.cpp:
2880         (WebCore::convertV8ObjectToNPVariant):
2881
2882 2011-01-20  Andreas Kling  <kling@webkit.org>
2883
2884         Reviewed by Ariya Hidayat.
2885
2886         [Qt] Fill shadow scratch buffer with proper transparent pixels
2887
2888         QImage::fill() has no Qt::GlobalColor overload in Qt 4.7 (coming in 4.8)
2889         so doing QImage::fill(Qt::transparent) will actually fill all pixels with
2890         the RGBA value 0x00000013.
2891
2892         * platform/graphics/qt/ContextShadowQt.cpp:
2893         (WebCore::ShadowBuffer::scratchImage):
2894
2895 2011-01-19  Adam Roben  <aroben@apple.com>
2896
2897         Remove WKCACFContextFlusher
2898
2899         It wasn't doing anything.
2900
2901         Fixes <http://webkit.org/b/52752> WKCACFContextFlusher is unused
2902
2903         Reviewed by Simon Fraser.
2904
2905         * WebCore.vcproj/WebCore.vcproj: Removed WKCACFContextFlusher. Also let VS have its way with
2906         the file.
2907
2908         * platform/graphics/win/WKCACFContextFlusher.cpp: Removed.
2909         * platform/graphics/win/WKCACFContextFlusher.h: Removed.
2910
2911         * platform/graphics/win/WKCACFLayerRenderer.cpp:
2912         (WebCore::WKCACFLayerRenderer::~WKCACFLayerRenderer):
2913         (WebCore::WKCACFLayerRenderer::layerTreeDidChange):
2914         Stop telling WKCACFContextFlusher about our context, since it never did anything with it.
2915
2916 2011-01-19  Adam Roben  <aroben@apple.com>
2917
2918         Only flush our own context when we get resized
2919
2920         Fixes <http://webkit.org/b/52751> All WKCACFContexts with uncommitted
2921         changes get flushed whenever any composited page is resized
2922
2923         Reviewed by Simon Fraser.
2924
2925         * platform/graphics/win/WKCACFLayerRenderer.cpp:
2926         (WebCore::WKCACFLayerRenderer::resize): Just flush our own context, not all contexts
2927         WKCACFContextFlusher knows about. After all, ours is the only one that just got resized!
2928
2929 2011-01-19  Adam Roben  <aroben@apple.com>
2930
2931         Make WKCACFLayerRenderer ref-counted
2932
2933         This will be needed to handle cases where the client might release its reference to us while
2934         we're calling out to it.
2935
2936         WKCACFLayerRenderer now has a setClient function, which is used rather than passing the
2937         client to create(). This allows clients to null out the client pointer when they're done
2938         with the renderer.
2939
2940         Fixes <http://webkit.org/b/52749> WKCACFLayerRenderer should be
2941         ref-counted
2942
2943         Reviewed by Simon Fraser.
2944
2945         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2946         (WebCore::MediaPlayerPrivateFullscreenWindow::MediaPlayerPrivateFullscreenWindow):
2947         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
2948         Updated for WKCACFLayerRenderer changes.
2949
2950         * platform/graphics/win/WKCACFLayerRenderer.cpp:
2951         (WebCore::WKCACFLayerRenderer::acceleratedCompositingAvailable): Updated for changes to
2952         create().
2953         (WebCore::WKCACFLayerRenderer::create): No longer takes a WKCACFLayerRendererClient. Now
2954         returns a PassOwnPtr.
2955         (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer): No longer takes a
2956         WKCACFLayerRendererClient.
2957
2958         * platform/graphics/win/WKCACFLayerRenderer.h: Made WKCACFLayerRenderer inherit from
2959         RefCounted.
2960         (WebCore::WKCACFLayerRenderer::setClient): Added this simple setter.
2961
2962 2011-01-20  Csaba Osztrogonác  <ossy@webkit.org>
2963
2964         [Qt][V8] Unreviewed buildfix after r76248.
2965
2966         * bindings/v8/ScriptCachedFrameData.h: Add missing include.
2967
2968 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
2969
2970         Reviewed by Yury Semikhatsky.
2971
2972         Web Inspector: enable resource agent upon request.
2973         https://bugs.webkit.org/show_bug.cgi?id=52815
2974
2975         We should not send network-related notifications unless front-end
2976         is interested.
2977
2978         * inspector/Inspector.idl:
2979         * inspector/InspectorController.cpp:
2980         (WebCore::InspectorController::restoreInspectorStateFromCookie):
2981         (WebCore::InspectorController::connectFrontend):
2982         (WebCore::InspectorController::resourceAgent):
2983         * inspector/InspectorController.h:
2984         (WebCore::InspectorController::consoleAgent):
2985         (WebCore::InspectorController::cssAgent):
2986         (WebCore::InspectorController::domAgent):
2987         (WebCore::InspectorController::injectedScriptAgent):
2988         (WebCore::InspectorController::runtimeAgent):
2989         (WebCore::InspectorController::databaseAgent):
2990         (WebCore::InspectorController::domStorageAgent):
2991         (WebCore::InspectorController::fileSystemAgent):
2992         * inspector/InspectorInstrumentation.cpp:
2993         (WebCore::InspectorInstrumentation::retrieveResourceAgent):
2994         * inspector/InspectorResourceAgent.cpp:
2995         (WebCore::InspectorResourceAgent::restore):
2996         (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
2997         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
2998         * inspector/InspectorResourceAgent.h:
2999         (WebCore::InspectorResourceAgent::create):
3000         * inspector/InspectorState.cpp:
3001         (WebCore::InspectorState::InspectorState):
3002         * inspector/InspectorState.h:
3003
3004 2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
3005
3006         Reviewed by Csaba Osztrogonác.
3007
3008         Refactoring of the custom allocation framework
3009         https://bugs.webkit.org/show_bug.cgi?id=49897
3010
3011         Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
3012         The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
3013         equivalent macro implementation at the necessary places.
3014
3015 2011-01-20  Mikhail Naganov  <mnaganov@chromium.org>
3016
3017         Reviewed by Pavel Feldman.
3018
3019         Web Inspector: [Chromium] CPU Profiles are cleared when navigating back and forth.
3020
3021         Profiles are now not cleared unless renderer instance was changed.
3022
3023         https://bugs.webkit.org/show_bug.cgi?id=52807
3024
3025         * inspector/InspectorController.cpp:
3026         (WebCore::InspectorController::restoreProfiler):
3027         * inspector/InspectorProfilerAgent.cpp:
3028         (WebCore::InspectorProfilerAgent::resetState):
3029         (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
3030         * inspector/InspectorProfilerAgent.h:
3031
3032 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
3033
3034         Unreviewed, add new JS file refs missing from r76116.
3035
3036         * WebCore.gypi:
3037         * WebCore.vcproj/WebCore.vcproj:
3038         * inspector/front-end/WebKit.qrc:
3039
3040 2011-01-20  Alexander Pavlov  <apavlov@chromium.org>
3041
3042         Reviewed by Pavel Feldman.
3043
3044         Web Inspector: Crash when adding a rule for an ImageDocument
3045         https://bugs.webkit.org/show_bug.cgi?id=52811
3046
3047         * inspector/InspectorCSSAgent.cpp:
3048         (WebCore::InspectorCSSAgent::addRule2):
3049         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
3050
3051 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
3052
3053         Reviewed by Pavel Feldman.
3054
3055         Web Inspector: cleanup InspectorController's friends list.
3056         We have a plan to extract InspectorAgent from InspectorController.
3057         InspectorAgent will be accessible only from InspectorController.
3058         As result we can simply made some methods public and remove long
3059         friends list.
3060
3061         https://bugs.webkit.org/show_bug.cgi?id=52806
3062
3063         * inspector/InjectedScriptHost.cpp:
3064         (WebCore::InjectedScriptHost::databaseForId):
3065         (WebCore::InjectedScriptHost::selectDatabase):
3066         (WebCore::InjectedScriptHost::selectDOMStorage):
3067         (WebCore::InjectedScriptHost::inspectorDOMAgent):
3068         (WebCore::InjectedScriptHost::frontend):
3069         * inspector/InspectorBrowserDebuggerAgent.cpp:
3070         (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
3071         (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
3072         (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
3073         (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
3074         (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
3075         (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
3076         (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
3077         (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
3078         * inspector/InspectorController.h:
3079         (WebCore::InspectorController::frontend):
3080         * inspector/InspectorInstrumentation.cpp:
3081         (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
3082         (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
3083         (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
3084         (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
3085         (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
3086         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
3087         (WebCore::InspectorInstrumentation::characterDataModifiedImpl):
3088         (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
3089         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
3090         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
3091         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
3092         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
3093         (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
3094         (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent):
3095         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
3096         (WebCore::InspectorInstrumentation::retrieveResourceAgent):
3097
3098 2011-01-19  Pavel Podivilov  <podivilov@chromium.org>
3099
3100         Reviewed by Yury Semikhatsky.
3101
3102         Web Inspector: implement JavaScriptBreakpointsSidebarPane based on events from debugger model.
3103         https://bugs.webkit.org/show_bug.cgi?id=52723
3104
3105         Extract all breakpoints-related presentation code from debugger model to JavaScriptBreakpointSidebarPane.
3106
3107         * inspector/front-end/Breakpoint.js:
3108         (WebInspector.Breakpoint):
3109         (WebInspector.Breakpoint.prototype.get data):
3110         (WebInspector.Breakpoint.prototype.remove):
3111         * inspector/front-end/BreakpointsSidebarPane.js:
3112         (WebInspector.JavaScriptBreakpointsSidebarPane):
3113         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
3114         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointRemoved):
3115         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointEnableChanged):
3116         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointItemCheckboxClicked):
3117         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._contextMenuEventFired):
3118         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._debuggerPaused):
3119         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._debuggerResumed):
3120         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._addListElement):
3121         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._removeListElement):
3122         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._projectChanged):
3123         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compare):
3124         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
3125         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setupBreakpointElement.didGetSourceLine):
3126         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setupBreakpointElement):
3127         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointIdForDebuggerPausedEvent):
3128         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setBreakpointEnabled):
3129         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._removeBreakpoint):
3130         (WebInspector.NativeBreakpointsSidebarPane):
3131         (WebInspector.XHRBreakpointsSidebarPane.prototype.addBreakpointItem):
3132         * inspector/front-end/DebuggerModel.js:
3133         (WebInspector.DebuggerModel.prototype.removeBreakpoint):
3134         (WebInspector.DebuggerModel.prototype.breakpointForId):
3135         (WebInspector.DebuggerModel.prototype._pausedScript):
3136         (WebInspector.DebuggerModel.prototype._resumedScript):
3137         * inspector/front-end/ScriptsPanel.js:
3138         (WebInspector.ScriptsPanel):
3139         * inspector/front-end/inspector.js:
3140
3141 2011-01-20  Dirk Schulze  <krit@webkit.org>
3142
3143         Reviewed by Andreas Kling.
3144
3145         SVG Pattern doesn't take the viewBox of a referenced Pattern
3146         https://bugs.webkit.org/show_bug.cgi?id=52804
3147         
3148         SVGPattern element didn't use the viewBox of another SVGPattern element, referenced
3149         by xlink:href. Modified PatternAttributes, to take the value of the viewBox of the
3150         SVGPattern element as well, if the attribute was set.
3151         This gets checked by a W3C SVG test case.        
3152
3153         Test: svg/W3C-SVG-1.1-SE/pservers-pattern-04-f.svg
3154
3155         * rendering/svg/RenderSVGResourcePattern.cpp:
3156         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
3157         * svg/PatternAttributes.h:
3158         (WebCore::PatternAttributes::PatternAttributes):
3159         (WebCore::PatternAttributes::viewBox):
3160         (WebCore::PatternAttributes::setViewBox):
3161         (WebCore::PatternAttributes::hasViewBox):
3162         * svg/SVGPatternElement.cpp:
3163         (WebCore::SVGPatternElement::collectPatternAttributes):
3164
3165 2011-01-19  Stephen White  <senorblanco@chromium.org>
3166
3167         [Re-land of r76159 with a compile fix for the Chromium linux shlib
3168         build.]
3169
3170         Reviewed by James Robinson.
3171
3172         Implement accelerated path drawing and clipping for the Canvas2D GPU
3173         path.
3174         https://bugs.webkit.org/show_bug.cgi?id=52627
3175         
3176         This is done with a simple curve interpolator and the GLU tesselator,
3177         which is good enough for a 3-5X speedup on
3178         http://ie.microsoft.com/testdrive/Performance/Galactic/Default.html.
3179
3180         Covered by canvas/philip/2d.path.clip.basic.html, and many, many more.
3181         All tests canvas/philip and fast/canvas paths pass with no
3182         regressions, although two have minor pixel differences which require
3183         rebaselining.
3184
3185         * WebCore.gyp/WebCore.gyp:
3186         Add internal_glu include path to chromium build.
3187         * WebCore.gypi:
3188         Add internal_glu files to chromium build.
3189         * html/canvas/CanvasRenderingContext2D.cpp:
3190         (WebCore::CanvasRenderingContext2D::reset):
3191         (WebCore::CanvasRenderingContext2D::platformLayer):
3192         Make CanvasRenderingContext2D more robust against failure to create
3193         a DrawingBuffer.
3194         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3195         (WebCore::DrawingBuffer::DrawingBuffer):
3196         As in DrawingBufferMac.cpp, call reset() from the constructor.
3197         Also initialize size to (-1, -1), so reset() doesn't early-out.
3198         Add initializers for depthBuffer and stencilBuffer, and remove
3199         multisampleDepthStencilBuffer.
3200         * platform/graphics/chromium/GLES2Canvas.cpp:
3201         Remove some unused #includes.
3202         (WebCore::GLES2Canvas::State::State):
3203         Add clipping state, and implement save/restore via the copy constructor.
3204         (WebCore::operator*):
3205         (WebCore::Quadratic::Quadratic):
3206         (WebCore::Quadratic::fromBezier):
3207         (WebCore::Quadratic::evaluate):
3208         Quadratic Bezier curve class.
3209         (WebCore::Cubic::Cubic):
3210         (WebCore::Cubic::fromBezier):
3211         (WebCore::Cubic::evaluate):
3212         Cubic Bezier curve class.
3213         (WebCore::GLES2Canvas::clearRect):
3214         Add clipping support to clearRect().
3215         (WebCore::GLES2Canvas::fillPath):
3216         Implement fillPath().
3217         (WebCore::GLES2Canvas::fillRect):
3218         Add clipping support to fillRect().
3219         (WebCore::GLES2Canvas::clipPath):
3220         Implement clipPath().
3221         (WebCore::GLES2Canvas::clipOut):
3222         Stub out clipOut() (not called by Canvas 2D).
3223         (WebCore::GLES2Canvas::restore):
3224         When restoring, draw any remaining clipping paths to the stencil buffer.
3225         (WebCore::GLES2Canvas::drawTexturedRect):
3226         Add clipping support.
3227         (WebCore::interpolateQuadratic):
3228         (WebCore::interpolateCubic):
3229         Simple curve interpolation, using the Cubic and Quadratic classes.
3230         (WebCore::PolygonData::PolygonData):
3231         A struct to hold the tesselation data for callbacks.
3232         (WebCore::beginData):
3233         (WebCore::edgeFlagData):
3234         (WebCore::vertexData):
3235         (WebCore::endData):
3236         (WebCore::combineData):
3237         internal_glu tesselation callbacks.
3238         (WebCore::GLES2Canvas::createVertexBufferFromPath):
3239         Build an interpolated, tesselated vertex buffer and element array buffer from a given path, suitable for filling.
3240         (WebCore::GLES2Canvas::beginStencilDraw):
3241         Enable stencilling, and disable draws to the color buffer.
3242         (WebCore::GLES2Canvas::applyClipping):
3243         If clipping is enabled, set the appropriate GL state.
3244         * platform/graphics/chromium/GLES2Canvas.h:
3245         Document the flavours of drawTexturedRect() a bit, so I don't get confused.
3246         * platform/graphics/gpu/DrawingBuffer.cpp:
3247         (WebCore::DrawingBuffer::clear):
3248         (WebCore::DrawingBuffer::createSecondaryBuffers):
3249         (WebCore::DrawingBuffer::resizeDepthStencil):
3250         (WebCore::DrawingBuffer::reset):
3251         * platform/graphics/gpu/DrawingBuffer.h:
3252         Unify m_multisampleDepthStencilBuffer with m_depthStencilBuffer. 
3253         Implement separate depth and stencil buffers for when
3254         OES_packed_depth_stencil is not available.  Refactor creation of
3255         multisampled and non-multisampled depth and stencil buffers into
3256         resizeDepthStencil().
3257         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
3258         (WebCore::SharedGraphicsContext3D::create):
3259         Turn on stencil, turn off depth, turn off antialiasing (for now).
3260         (WebCore::SharedGraphicsContext3D::enableStencil):
3261         * platform/graphics/gpu/SharedGraphicsContext3D.h:
3262         Implement stencil enable/disable.
3263         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
3264         (WebCore::DrawingBuffer::DrawingBuffer):
3265         Remove m_multisampleDepthStencilBuffer.  Set the size to (-1, -1)
3266         on creation, so reset() doesn't early-out.  Initialize m_depthBuffer
3267         and m_stencilBuffer.
3268         * platform/graphics/skia/GraphicsContextSkia.cpp:
3269         (WebCore::GraphicsContext::canvasClip):
3270         (WebCore::GraphicsContext::clipOut):
3271         (WebCore::GraphicsContext::clipPath):
3272         (WebCore::GraphicsContext::fillPath):
3273         Put in GPU hooks for path clipping, and path drawing.
3274         * platform/graphics/skia/PlatformContextSkia.cpp:
3275         (WebCore::PlatformContextSkia::canAccelerate):
3276         Don't check for clipping paths in canAccelerate() (since we can
3277         now accelerate them).
3278         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
3279         Don't do clipping when uploading software draws to hardware.
3280         * thirdparty/glu/README.webkit:
3281         * thirdparty/glu/gluos.h:
3282         #undef MIN and MAX, to fix warnings-as-errors in Chrome/Mac build.
3283         * thirdparty/glu/libtess/geom.c:
3284         * thirdparty/glu/libtess/priorityq.c:
3285         * thirdparty/glu/libtess/render.c:
3286         Use do{}while(0) instead of if(1)else construct in macro.
3287         * thirdparty/glu/libtess/sweep.c:
3288         (IsWindingInside):
3289         (DoneEdgeDict):
3290         Fix some warnings treated as errors for the Linux Release build.
3291
3292
3293 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
3294
3295         Web Inspector: move releaseObjectGroup to the new Runtime agent.
3296         https://bugs.webkit.org/show_bug.cgi?id=52803
3297         (accedentally landed as r76231)
3298
3299         * inspector/InspectorContorller.h:
3300         * inspector/InspectorContorller.cpp:
3301         * inspector/InspectorRuntimeAgent.h:
3302         * inspector/InspectorRuntimeAgent.cpp:
3303
3304 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
3305
3306         Not reviewed: build fix.
3307
3308         * inspector/InspectorState.h:
3309         (WebCore::InspectorState::setBoolean):
3310         (WebCore::InspectorState::setString):
3311         (WebCore::InspectorState::setLong):
3312
3313 2011-01-20  Pavel Feldman  <pfeldman@chromium.org>
3314
3315         Reviewed by Yury Semikhatsky.
3316
3317         Web Inspector: further simplify InspectorState.
3318         https://bugs.webkit.org/show_bug.cgi?id=52731
3319
3320         This change moves XHR logging flag into console agent,
3321         removes InspectorState pushing to the front-end.
3322
3323         * inspector/Inspector.idl:
3324         * inspector/InspectorConsoleAgent.cpp:
3325         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
3326         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
3327         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
3328         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
3329         (WebCore::InspectorConsoleAgent::addConsoleMessage):
3330         * inspector/InspectorConsoleAgent.h:
3331         * inspector/InspectorController.cpp:
3332         (WebCore::InspectorController::InspectorController):
3333         * inspector/InspectorController.h:
3334         (WebCore::InspectorController::state):
3335         (WebCore::InspectorController::settings):
3336         * inspector/InspectorState.cpp:
3337         (WebCore::InspectorState::InspectorState):
3338         (WebCore::InspectorState::registerBoolean):
3339         (WebCore::InspectorState::registerString):
3340         (WebCore::InspectorState::registerLong):
3341         (WebCore::InspectorState::registerObject):
3342         (WebCore::InspectorState::Property::create):
3343         * inspector/InspectorState.h:
3344         * inspector/front-end/ConsoleView.js:
3345         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
3346         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
3347         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
3348         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
3349         * inspector/front-end/inspector.js:
3350
3351 2011-01-20  Csaba Osztrogonác  <ossy@webkit.org>
3352
3353         Unreviewed buildfix.
3354
3355         [Qt][V8] Remove unnecessary files after r76224.
3356
3357         * WebCore.pro:
3358
3359 2011-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
3360
3361         Reviewed by Yury Semikhatsky.
3362
3363         Web Inspector: prepare for extracting InspectorAgent from InspectorController.
3364         https://bugs.webkit.org/show_bug.cgi?id=52797
3365
3366         * inspector/CodeGeneratorInspector.pm:
3367         * inspector/InspectorController.h:
3368         (WebCore::InspectorController::inspectorAgent):
3369         (WebCore::InspectorController::cssAgent):
3370         (WebCore::InspectorController::injectedScriptAgent):
3371         (WebCore::InspectorController::resourceAgent):
3372         (WebCore::InspectorController::runtimeAgent):
3373         (WebCore::InspectorController::timelineAgent):
3374         (WebCore::InspectorController::databaseAgent):
3375         (WebCore::InspectorController::domStorageAgent):
3376         (WebCore::InspectorController::fileSystemAgent):
3377         (WebCore::InspectorController::browserDebuggerAgent):
3378         (WebCore::InspectorController::debuggerAgent):
3379         (WebCore::InspectorController::profilerAgent):
3380         (WebCore::InspectorController::applicationCacheAgent):
3381
3382 2011-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3383
3384         Unreviewed, rolling out r76215.
3385         http://trac.webkit.org/changeset/76215
3386         https://bugs.webkit.org/show_bug.cgi?id=52799
3387
3388         Caused regressions in Chromium; morrita is going to look at it
3389         tomrorow (Requested by jorlow on #webkit).
3390
3391         * dom/TextEvent.h:
3392         * dom/TextEventInputType.h:
3393         * editing/CompositeEditCommand.cpp:
3394         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
3395         * editing/CompositeEditCommand.h:
3396         * editing/Editor.cpp:
3397         (WebCore::Editor::insertTextWithoutSendingTextEvent):
3398         (WebCore::Editor::confirmComposition):
3399         (WebCore::Editor::setComposition):
3400         * editing/Editor.h:
3401         * editing/InsertTextCommand.cpp:
3402         (WebCore::InsertTextCommand::input):
3403         * editing/InsertTextCommand.h:
3404         * editing/TypingCommand.cpp:
3405         (WebCore::TypingCommand::TypingCommand):
3406         (WebCore::TypingCommand::insertText):
3407         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
3408         * editing/TypingCommand.h:
3409         (WebCore::TypingCommand::create):
3410
3411 2010-12-14  Yury Semikhatsky  <yurys@chromium.org>
3412
3413         Reviewed by Adam Barth.
3414
3415         [V8] Get rid of delayed exception reporting in V8ConsoleMessage.cpp
3416         https://bugs.webkit.org/show_bug.cgi?id=51044
3417
3418         * WebCore.gypi:
3419         * bindings/v8/V8ConsoleMessage.cpp: Removed.
3420         * bindings/v8/V8ConsoleMessage.h: Removed.
3421         * bindings/v8/V8DOMWindowShell.cpp:
3422         (WebCore::v8UncaughtExceptionHandler):
3423         (WebCore::reportUnsafeJavaScriptAccess):
3424         (WebCore::V8DOMWindowShell::initContextIfNeeded):
3425         * bindings/v8/V8Proxy.cpp:
3426         (WebCore::addMessageToConsole):
3427         (WebCore::logInfo):
3428         (WebCore::V8Proxy::reportUnsafeAccessTo):
3429         (WebCore::V8Proxy::runScript):
3430         (WebCore::V8Proxy::callFunction):
3431         (WebCore::V8Proxy::newInstance):
3432         * bindings/v8/V8Proxy.h:
3433         * bindings/v8/WorkerContextExecutionProxy.cpp:
3434         * bindings/v8/specialization/V8BindingState.cpp:
3435         (WebCore::::immediatelyReportUnsafeAccessTo):
3436
3437 2011-01-19  MORITA Hajime  <morrita@google.com>
3438
3439         Reviewed by Eric Seidel.
3440
3441         ShadowElement::m_shadowParent should be removed
3442         https://bugs.webkit.org/show_bug.cgi?id=52558
3443
3444         No new tests. No behavioral change.
3445
3446         * rendering/ShadowElement.h:
3447         (WebCore::ShadowElement::ShadowElement):
3448
3449 2011-01-20  Hans Wennborg  <hans@chromium.org>
3450
3451         Reviewed by Jeremy Orlow.
3452
3453         IndexedDB: IDBObjectStore.get should fire onsuccess rather than onerror
3454         https://bugs.webkit.org/show_bug.cgi?id=52725
3455
3456         Let IDBObjectStore.get() fire the onsuccess handler with the value
3457         'undefined' for when an object does not exist in the store.
3458
3459         Update SerializedScriptValue to provide such an undefined value.
3460
3461         * bindings/v8/SerializedScriptValue.cpp:
3462         (WebCore::SerializedScriptValue::nullValue):
3463         (WebCore::SerializedScriptValue::undefinedValue):
3464         * bindings/v8/SerializedScriptValue.h:
3465         * storage/IDBObjectStoreBackendImpl.cpp:
3466         (WebCore::IDBObjectStoreBackendImpl::getInternal):
3467
3468 2010-12-27  Yury Semikhatsky  <yurys@chromium.org>
3469
3470         Reviewed by Pavel Feldman.
3471
3472         WebCore doesn't fire window.onerror event when uncaught JavaScript exceptions are thrown
3473         https://bugs.webkit.org/show_bug.cgi?id=8519
3474
3475         Uncaught exceptions are propagated to window.onerror hander if one is present.
3476         The handler is expected to be a function accepting three arguments: error message,
3477         resource url and line number where the exception occured.
3478
3479         It was decided to dispatch ErrorEvent to all listeners/handlers no matter if they
3480         were created in the same isolated world where the exception occured or not.
3481
3482         Tests: fast/events/window-onerror1.html
3483                fast/events/window-onerror10.html
3484                fast/events/window-onerror11.html
3485                fast/events/window-onerror12.html
3486                fast/events/window-onerror2.html
3487                fast/events/window-onerror3.html
3488                fast/events/window-onerror4.html
3489                fast/events/window-onerror5.html
3490                fast/events/window-onerror6.html
3491                fast/events/window-onerror7.html
3492                fast/events/window-onerror8.html
3493                fast/events/window-onerror9.html
3494                http/tests/security/window-onerror-exception-in-iframe.html
3495                userscripts/window-onerror-for-isolated-world-1.html
3496                userscripts/window-onerror-for-isolated-world-2.html
3497
3498         * Android.jscbindings.mk:
3499         * CMakeLists.txt:
3500         * GNUmakefile.am:
3501         * WebCore.gypi:
3502         * WebCore.order:
3503         * WebCore.pro:
3504         * WebCore.vcproj/WebCore.vcproj:
3505         * WebCore.xcodeproj/project.pbxproj:
3506         * bindings/js/JSBindingsAllInOne.cpp:
3507         * bindings/js/JSDOMBinding.cpp:
3508         (WebCore::reportException):
3509         * bindings/js/JSErrorHandler.cpp: Renamed from WebCore/bindings/js/JSWorkerContextErrorHandler.cpp.
3510         (WebCore::JSErrorHandler::JSErrorHandler):
3511         (WebCore::JSErrorHandler::~JSErrorHandler):
3512         (WebCore::JSErrorHandler::handleEvent):
3513         * bindings/js/JSErrorHandler.h: Copied from WebCore/bindings/js/JSWorkerContextErrorHandler.h.
3514         (WebCore::JSErrorHandler::create):
3515         (WebCore::createJSErrorHandler):
3516         * bindings/js/JSEventListener.h:
3517         * bindings/scripts/CodeGeneratorJS.pm:
3518         * bindings/scripts/CodeGeneratorV8.pm:
3519         * bindings/v8/V8ConsoleMessage.cpp:
3520         (WebCore::V8ConsoleMessage::dispatchNow):
3521         (WebCore::V8ConsoleMessage::handler): the method was changed to use generic WebCore exception
3522         reporting mechanism which is also used by JSC bindings.
3523         * bindings/v8/V8ConsoleMessage.h:
3524         * bindings/v8/V8EventListener.h:
3525         * bindings/v8/V8WindowErrorHandler.cpp: Renamed from WebCore/bindings/js/JSWorkerContextErrorHandler.h.
3526         (WebCore::V8WindowErrorHandler::V8WindowErrorHandler):
3527         (WebCore::V8WindowErrorHandler::callListenerFunction):
3528         * bindings/v8/V8WindowErrorHandler.h: Copied from WebCore/dom/ErrorEvent.cpp.
3529         (WebCore::V8WindowErrorHandler::create):
3530         * bindings/v8/WorkerContextExecutionProxy.cpp:
3531         (WebCore::v8MessageHandler):
3532         * bindings/v8/WorkerScriptController.cpp:
3533         (WebCore::WorkerScriptController::evaluate):
3534         * dom/Document.cpp:
3535         (WebCore::Document::errorEventTarget):
3536         (WebCore::Document::logExceptionToConsole):
3537         (WebCore::Document::addMessage):
3538         * dom/Document.h:
3539         * dom/ErrorEvent.cpp:
3540         * dom/ErrorEvent.h:
3541         * dom/Event.cpp:
3542         (WebCore::Event::isErrorEvent):
3543         * dom/Event.h:
3544         * dom/ScriptExecutionContext.cpp:
3545         (WebCore::ScriptExecutionContext::PendingException::PendingException):
3546         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
3547         (WebCore::ScriptExecutionContext::reportException): this method is not virtual anymore to
3548         ensure that error event dispatching algorithm is the same in WorkerContext and in Document.
3549         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
3550         * dom/ScriptExecutionContext.h:
3551         * websockets/WebSocket.cpp:
3552         (WebCore::WebSocket::connect):
3553         * websockets/WebSocketChannel.cpp:
3554         (WebCore::WebSocketChannel::didOpen):
3555         (WebCore::WebSocketChannel::didFail):
3556         (WebCore::WebSocketChannel::appendToBuffer):
3557         * websockets/WebSocketHandshake.cpp:
3558         (WebCore::WebSocketHandshake::readServerHandshake):
3559         (WebCore::WebSocketHandshake::readStatusLine):
3560         (WebCore::WebSocketHandshake::readHTTPHeaders):
3561         (WebCore::WebSocketHandshake::checkResponseHeaders):
3562         * workers/DefaultSharedWorkerRepository.cpp:
3563         (WebCore::postExceptionTask):
3564         (WebCore::postConsoleMessageTask):
3565         * workers/WorkerContext.cpp:
3566         (WebCore::WorkerContext::WorkerContext):
3567         (WebCore::WorkerContext::errorEventTarget):
3568         (WebCore::WorkerContext::logExceptionToConsole):
3569         (WebCore::WorkerContext::addMessage):
3570         * workers/WorkerContext.h:
3571         * workers/WorkerMessagingProxy.cpp:
3572         (WebCore::WorkerExceptionTask::performTask):
3573         (WebCore::postConsoleMessageTask):
3574         * xml/XMLHttpRequest.cpp:
3575         (WebCore::reportUnsafeUsage):
3576
3577 2011-01-19  MORITA Hajime  <morrita@google.com>
3578
3579         Reviewed by Ryosuke Niwa.
3580
3581         Space and tab characters "sent" by an input method give totally different results than typing them directly
3582         https://bugs.webkit.org/show_bug.cgi?id=5241
3583         
3584         * Introduced TextEvent::InputTypeComposition and TypingCommand::TextCompositionType to 
3585           distinguish text input which is originated by composition.
3586         * Generalized rebalanceWhitespaceAt() to rebalanceWhitespaceOnTextSubstring() to rebalancing 
3587           range of string on text node, instead of surrounding part of that.
3588
3589         Test: editing/inserting/insert-composition-whitespace.html
3590
3591         * dom/TextEvent.h:
3592         (WebCore::TextEvent::isComposition):
3593         * dom/TextEventInputType.h: Added TextEventInputComposition as a member of TextEvent::InputType
3594         * editing/CompositeEditCommand.cpp:
3595         (WebCore::containsOnlyWhitespace):
3596         (WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor):
3597         (WebCore::CompositeEditCommand::canRebalance):
3598         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
3599         (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Added: A generalized version of rebalanceWhitespaceAt(), which takes a range inside Text string.
3600         * editing/CompositeEditCommand.h:
3601         * editing/Editor.cpp:
3602         (WebCore::Editor::insertTextForConfirmedComposition): Added.
3603         (WebCore::Editor::insertTextWithoutSendingTextEvent):
3604         (WebCore::Editor::confirmComposition): Now uses insertTextForConfirmedComposition().
3605         (WebCore::Editor::setComposition):
3606         * editing/Editor.h:
3607         * editing/InsertTextCommand.cpp:
3608         (WebCore::InsertTextCommand::input):
3609         * editing/InsertTextCommand.h:
3610         * editing/TypingCommand.cpp:
3611         (WebCore::TypingCommand::TypingCommand):
3612         (WebCore::TypingCommand::insertText):
3613         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
3614         * editing/TypingCommand.h: Added TypingCommand::m_compositionType and TypingCommand::TextCompositionType
3615         (WebCore::TypingCommand::setCompositionType): Added.
3616         (WebCore::TypingCommand::create):
3617
3618 2011-01-19  Dominic Cooney  <dominicc@google.com>
3619
3620         Reviewed by Kent Tamura.
3621
3622         Make <keygen> no longer appear to be a <select> element to script.
3623         https://bugs.webkit.org/show_bug.cgi?id=52557
3624
3625         The intent is to put <keygen> options into shadow DOM. This change
3626         takes the first step by hiding the <select> element from
3627         JavaScript.
3628
3629         Test: fast/dom/HTMLKeygenElement/keygen.html
3630
3631         * CMakeLists.txt: Adds new IDL-derived wrapper.
3632         * DerivedSources.cpp:
3633         * DerivedSources.make:
3634         * GNUmakefile.am:
3635         * WebCore.gypi:
3636         * WebCore.pri:
3637         * WebCore.vcproj/WebCore.vcproj:
3638         * WebCore.xcodeproj/project.pbxproj:
3639         * bindings/gobject/GNUmakefile.am:
3640         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
3641         (WebKit::createKeygenWrapper):
3642         (WebKit::createHTMLElementWrapper):
3643         * bindings/objc/DOM.mm:
3644         (WebCore::createElementClassMap): Keygen no longer DOMHTMLSelectElement
3645         * html/HTMLKeygenElement.h:
3646         (WebCore::HTMLKeygenElement::willValidate): Now public.
3647         * html/HTMLKeygenElement.idl: Added.
3648         * html/HTMLTagNames.in: Keygen's wrapper is HTMLKeygenElement.
3649         * page/DOMWindow.idl: Add HTMLKeygenElement constructor.
3650
3651 2011-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3652
3653         Unreviewed, rolling out r76203.
3654         http://trac.webkit.org/changeset/76203
3655         https://bugs.webkit.org/show_bug.cgi?id=52784
3656
3657         Broke Win compile on Chromium bots (Requested by dimich on
3658         #webkit).
3659
3660         * WebCore.gypi:
3661         * bindings/v8/V8DOMWindowShell.cpp:
3662         (WebCore::reportFatalErrorInV8):
3663         * page/PageGroup.cpp:
3664         (WebCore::PageGroup::isLinkVisited):
3665         * platform/android/PlatformBridge.h:
3666         * platform/audio/chromium/AudioBusChromium.cpp:
3667         (WebCore::createBusFromInMemoryAudioFile):
3668         * platform/chromium/ChromiumBridge.h: Added.
3669         * platform/chromium/ChromiumDataObjectLegacy.cpp:
3670         (WebCore::ChromiumDataObjectLegacy::getData):
3671         * platform/chromium/DragDataChromium.cpp:
3672         (WebCore::DragData::asURL):
3673         * platform/chromium/FileSystemChromium.cpp:
3674         (WebCore::deleteFile):
3675         (WebCore::deleteEmptyDirectory):
3676         (WebCore::getFileSize):
3677         (WebCore::getFileModificationTime):
3678         (WebCore::revealFolderInOS):
3679         (WebCore::directoryName):
3680         (WebCore::pathByAppendingComponent):
3681         (WebCore::makeAllDirectories):
3682         (WebCore::fileExists):
3683         (WebCore::openFile):
3684         (WebCore::closeFile):
3685         (WebCore::seekFile):
3686         (WebCore::truncateFile):
3687         (WebCore::readFromFile):
3688         (WebCore::writeToFile):
3689         * platform/chromium/LanguageChromium.cpp:
3690         (WebCore::platformDefaultLanguage):
3691         * platform/chromium/LinkHashChromium.cpp:
3692         (WebCore::visitedLinkHash):
3693         * platform/chromium/MIMETypeRegistryChromium.cpp:
3694         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
3695         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
3696         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
3697         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
3698         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
3699         * platform/chromium/PasteboardChromium.cpp:
3700         (WebCore::Pasteboard::writeSelection):
3701         (WebCore::Pasteboard::writePlainText):
3702         (WebCore::Pasteboard::writeURL):
3703         (WebCore::Pasteboard::writeImage):
3704         (WebCore::Pasteboard::canSmartReplace):
3705         (WebCore::Pasteboard::plainText):
3706         (WebCore::Pasteboard::documentFragment):
3707         * platform/chromium/PlatformBridge.h:
3708         * platform/chromium/PlatformScreenChromium.cpp:
3709         (WebCore::screenDepth):
3710         (WebCore::screenDepthPerComponent):
3711         (WebCore::screenIsMonochrome):
3712         (WebCore::screenRect):
3713         (WebCore::screenAvailableRect):
3714         * platform/chromium/ReadableDataObject.cpp:
3715         (WebCore::ReadableDataObject::getData):
3716         (WebCore::ReadableDataObject::urlTitle):
3717         (WebCore::ReadableDataObject::htmlBaseUrl):
3718         (WebCore::ReadableDataObject::filenames):
3719         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
3720         * platform/chromium/SSLKeyGeneratorChromium.cpp:
3721         (WebCore::signedPublicKeyAndChallengeString):
3722         * platform/chromium/ScrollbarThemeChromium.cpp:
3723         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3724         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
3725         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
3726         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
3727         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
3728         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
3729         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
3730         * platform/chromium/ScrollbarThemeChromiumMac.mm:
3731         (WebCore::scrollbarStateToThemeState):
3732         (WebCore::ScrollbarThemeChromiumMac::paint):
3733         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
3734         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
3735         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
3736         (WebCore::ScrollbarThemeChromiumWin::paintButton):
3737         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
3738         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
3739         * platform/chromium/SharedTimerChromium.cpp:
3740         (WebCore::setSharedTimerFiredFunction):
3741         (WebCore::setSharedTimerFireTime):
3742         (WebCore::stopSharedTimer):
3743         * platform/chromium/SuddenTerminationChromium.cpp:
3744         (WebCore::disableSuddenTermination):
3745         (WebCore::enableSuddenTermination):
3746         * platform/chromium/SystemTimeChromium.cpp:
3747         (WebCore::currentTime):
3748         * platform/chromium/WritableDataObject.cpp:
3749         (WebCore::WritableDataObject::setData):
3750         * platform/graphics/chromium/CrossProcessFontLoading.mm:
3751         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
3752         (WebCore::fontContainsCharacter):
3753         (WebCore::FillLogFont):
3754         * platform/graphics/chromium/FontCacheLinux.cpp:
3755         (WebCore::FontCache::getFontDataForCharacters):
3756         * platform/graphics/chromium/FontChromiumWin.cpp:
3757         (WebCore::Font::drawGlyphs):
3758         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3759         (WebCore::FontPlatformData::scriptFontProperties):
3760         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
3761         (WebCore::FontPlatformData::querySystemForRenderStyle):
3762         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
3763         (WebCore::fillBMPGlyphs):
3764         * platform/graphics/chromium/ImageChromium.cpp:
3765         (WebCore::Image::loadPlatformResource):
3766         * platform/graphics/chromium/ImageChromiumMac.mm:
3767         (WebCore::Image::loadPlatformResource):
3768         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
3769         (WebCore::SimpleFontData::platformInit):
3770         (WebCore::SimpleFontData::determinePitch):
3771         (WebCore::SimpleFontData::platformWidthForGlyph):
3772         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
3773         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
3774         * platform/graphics/skia/FontCustomPlatformData.cpp:
3775         (WebCore::FontCustomPlatformData::fontPlatformData):
3776         * platform/network/chromium/CookieJarChromium.cpp:
3777         (WebCore::setCookies):
3778         (WebCore::cookies):
3779         (WebCore::cookieRequestHeaderFieldValue):
3780         (WebCore::cookiesEnabled):
3781         (WebCore::getRawCookies):
3782         (WebCore::deleteCookie):
3783         * platform/network/chromium/DNSChromium.cpp:
3784         (WebCore::prefetchDNS):
3785         * platform/qt/PlatformBridge.h:
3786         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
3787         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
3788         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
3789         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
3790         (chromiumOpen):
3791         (chromiumDelete):
3792         (chromiumAccess):
3793         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
3794         * plugins/chromium/PluginDataChromium.cpp:
3795         (WebCore::PluginCache::plugins):
3796         * rendering/RenderThemeChromiumMac.mm:
3797         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
3798         * rendering/RenderThemeChromiumSkia.cpp:
3799         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
3800         * rendering/RenderThemeChromiumWin.cpp:
3801         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
3802         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
3803         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
3804         (WebCore::RenderThemeChromiumWin::systemColor):
3805         (WebCore::RenderThemeChromiumWin::paintButton):
3806         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
3807         (WebCore::menuListButtonWidth):
3808         (WebCore::RenderThemeChromiumWin::paintMenuList):
3809         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
3810         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
3811         (WebCore::RenderThemeChromiumWin::paintProgressBar):
3812         * storage/chromium/IDBFactoryBackendInterface.cpp:
3813         (WebCore::IDBFactoryBackendInterface::create):
3814         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
3815         * storage/chromium/IDBKeyPathBackendImpl.cpp:
3816         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
3817
3818 2011-01-19  Helder Correia  <helder@sencha.com>
3819
3820         Reviewed by Andreas Kling.
3821
3822         [Qt] GraphicsContext::strokePath() paints solid shadows with incorrect alpha
3823         https://bugs.webkit.org/show_bug.cgi?id=52705
3824
3825         This is related to bug 52611. The shadow color alpha must be multiplied
3826         by the context pen alpha. Fixing this results in correct behavior for
3827         Canvas path stroke() and strokeRect() [which relies on stroke()].
3828
3829         Tests: fast/canvas/canvas-strokePath-alpha-shadow.html
3830                fast/canvas/canvas-strokeRect-alpha-shadow.html
3831
3832         * platform/graphics/qt/GraphicsContextQt.cpp:
3833         (WebCore::GraphicsContext::strokePath):
3834
3835 2011-01-19  Darin Fisher  <darin@chromium.org>
3836
3837         Reviewed by Mihai Parparita.
3838
3839         Re-initialize the HistoryItem fully when navigating to a HistoryItem,
3840         or replacing a HistoryItem, results in a different URL.
3841
3842         https://bugs.webkit.org/show_bug.cgi?id=49654
3843
3844         This patch also forces all HistoryItems to record the post-redirect
3845         URL.  Previously, frames would remember the pre-redirect URL.  This is
3846         problematic since other members of the HistoryItem correspond to the
3847         post-redirect URL.
3848
3849         Tests: fast/history/history-replace-updates-current-item.html
3850                http/tests/navigation/redirect-on-back-updates-history-item.html
3851                http/tests/navigation/redirect-on-reload-updates-history-item.html
3852
3853         * history/HistoryItem.cpp:
3854         (WebCore::HistoryItem::HistoryItem):
3855         (WebCore::HistoryItem::reset):
3856         * history/HistoryItem.h:
3857         * loader/HistoryController.cpp:
3858         (WebCore::HistoryController::updateForBackForwardNavigation):
3859         (WebCore::HistoryController::updateForReload):
3860         (WebCore::HistoryController::updateForStandardLoad):
3861         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
3862         (WebCore::HistoryController::initializeItem):
3863         (WebCore::HistoryController::createItem):
3864         (WebCore::HistoryController::createItemTree):
3865         (WebCore::HistoryController::updateCurrentItem):
3866         * loader/HistoryController.h:
3867
3868 2011-01-19  Adam Klein  <adamk@chromium.org>
3869
3870         Reviewed by Darin Fisher.
3871
3872         [chromium] Rename ChromiumBridge to PlatformBridge
3873         https://bugs.webkit.org/show_bug.cgi?id=52471
3874
3875         No tests added as this is a rename; no change in behavior.
3876
3877         * WebCore.gypi:
3878         * bindings/v8/V8DOMWindowShell.cpp:
3879         (WebCore::reportFatalErrorInV8):
3880         * page/PageGroup.cpp:
3881         (WebCore::PageGroup::isLinkVisited):
3882         * platform/android/PlatformBridge.h:
3883         * platform/audio/chromium/AudioBusChromium.cpp:
3884         (WebCore::createBusFromInMemoryAudioFile):
3885         * platform/chromium/ChromiumBridge.h: Removed.
3886         * platform/chromium/ChromiumDataObjectLegacy.cpp:
3887         (WebCore::ChromiumDataObjectLegacy::getData):
3888         * platform/chromium/DragDataChromium.cpp:
3889         (WebCore::DragData::asURL):
3890         * platform/chromium/FileSystemChromium.cpp:
3891         (WebCore::deleteFile):
3892         (WebCore::deleteEmptyDirectory):
3893         (WebCore::getFileSize):
3894         (WebCore::getFileModificationTime):
3895         (WebCore::revealFolderInOS):
3896         (WebCore::directoryName):
3897         (WebCore::pathByAppendingComponent):
3898         (WebCore::makeAllDirectories):
3899         (WebCore::fileExists):
3900         (WebCore::openFile):
3901         (WebCore::closeFile):
3902         (WebCore::seekFile):
3903         (WebCore::truncateFile):
3904         (WebCore::readFromFile):
3905         (WebCore::writeToFile):
3906         * platform/chromium/LanguageChromium.cpp:
3907         (WebCore::platformDefaultLanguage):
3908         * platform/chromium/LinkHashChromium.cpp:
3909         (WebCore::visitedLinkHash):
3910         * platform/chromium/MIMETypeRegistryChromium.cpp:
3911         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
3912         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
3913         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
3914         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
3915         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
3916         * platform/chromium/PasteboardChromium.cpp:
3917         (WebCore::Pasteboard::writeSelection):
3918         (WebCore::Pasteboard::writePlainText):
3919         (WebCore::Pasteboard::writeURL):
3920         (WebCore::Pasteboard::writeImage):
3921         (WebCore::Pasteboard::canSmartReplace):
3922         (WebCore::Pasteboard::plainText):
3923         (WebCore::Pasteboard::documentFragment):
3924         * platform/chromium/PlatformBridge.h:
3925         * platform/chromium/PlatformScreenChromium.cpp:
3926         (WebCore::screenDepth):
3927         (WebCore::screenDepthPerComponent):
3928         (WebCore::screenIsMonochrome):
3929         (WebCore::screenRect):
3930         (WebCore::screenAvailableRect):
3931         * platform/chromium/ReadableDataObject.cpp:
3932         (WebCore::ReadableDataObject::getData):
3933         (WebCore::ReadableDataObject::urlTitle):
3934         (WebCore::ReadableDataObject::htmlBaseUrl):
3935         (WebCore::ReadableDataObject::filenames):
3936         (WebCore::ReadableDataObject::ensureTypeCacheInitialized):
3937         * platform/chromium/SSLKeyGeneratorChromium.cpp:
3938         (WebCore::signedPublicKeyAndChallengeString):
3939         * platform/chromium/ScrollbarThemeChromium.cpp:
3940         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3941         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
3942         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
3943         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
3944         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
3945         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
3946         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
3947         * platform/chromium/ScrollbarThemeChromiumMac.mm:
3948         (WebCore::scrollbarStateToThemeState):
3949         (WebCore::ScrollbarThemeChromiumMac::paint):
3950         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
3951         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
3952         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
3953         (WebCore::ScrollbarThemeChromiumWin::paintButton):
3954         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
3955         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
3956         * platform/chromium/SharedTimerChromium.cpp:
3957         (WebCore::setSharedTimerFiredFunction):
3958         (WebCore::setSharedTimerFireTime):
3959         (WebCore::stopSharedTimer):
3960         * platform/chromium/SuddenTerminationChromium.cpp:
3961         (WebCore::disableSuddenTermination):
3962         (WebCore::enableSuddenTermination):
3963         * platform/chromium/SystemTimeChromium.cpp:
3964         (WebCore::currentTime):
3965         * platform/chromium/WritableDataObject.cpp:
3966         (WebCore::WritableDataObject::setData):
3967         * platform/graphics/chromium/CrossProcessFontLoading.mm:
3968         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
3969         (WebCore::fontContainsCharacter):
3970         (WebCore::FillLogFont):
3971         * platform/graphics/chromium/FontCacheLinux.cpp:
3972         (WebCore::FontCache::getFontDataForCharacters):
3973         * platform/graphics/chromium/FontChromiumWin.cpp:
3974         (WebCore::Font::drawGlyphs):
3975         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
3976         (WebCore::FontPlatformData::scriptFontProperties):
3977         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
3978         (WebCore::FontPlatformData::querySystemForRenderStyle):
3979         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
3980         (WebCore::fillBMPGlyphs):
3981         * platform/graphics/chromium/ImageChromium.cpp:
3982         (WebCore::Image::loadPlatformResource):
3983         * platform/graphics/chromium/ImageChromiumMac.mm:
3984         (WebCore::Image::loadPlatformResource):
3985         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
3986         (WebCore::SimpleFontData::platformInit):
3987         (WebCore::SimpleFontData::determinePitch):
3988         (WebCore::SimpleFontData::platformWidthForGlyph):
3989         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
3990         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
3991         * platform/graphics/skia/FontCustomPlatformData.cpp:
3992         (WebCore::FontCustomPlatformData::fontPlatformData):
3993         * platform/network/chromium/CookieJarChromium.cpp:
3994         (WebCore::setCookies):
3995         (WebCore::cookies):
3996         (WebCore::cookieRequestHeaderFieldValue):
3997         (WebCore::cookiesEnabled):
3998         (WebCore::getRawCookies):
3999         (WebCore::deleteCookie):
4000         * platform/network/chromium/DNSChromium.cpp:
4001         (WebCore::prefetchDNS):
4002         * platform/qt/PlatformBridge.h:
4003         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
4004         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
4005         (WebCore::SQLiteFileSystem::getDatabaseFileSize):
4006         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
4007         (chromiumOpen):
4008         (chromiumDelete):
4009         (chromiumAccess):
4010         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
4011         * plugins/chromium/PluginDataChromium.cpp:
4012         (WebCore::PluginCache::plugins):
4013         * rendering/RenderThemeChro