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