Move the parts of RunLoopMac.mm that aren't Mac-specific into RunLoopCF.cpp
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-14  Andy Estes  <aestes@apple.com>
2
3         Move the parts of RunLoopMac.mm that aren't Mac-specific into RunLoopCF.cpp
4         https://bugs.webkit.org/show_bug.cgi?id=86411
5
6         Reviewed by Anders Carlsson.
7
8         Most of RunLoopMac.mm was written in terms of CF API. Move these bits
9         to a new file called RunLoopCF.cpp, leaving only the bits dealing with
10         NSApplication.
11
12         * WebCore.xcodeproj/project.pbxproj: Xcode decided to give
13         VisitedLinks.* new UUIDs. I'll allow it.
14         * platform/cf/RunLoopCF.cpp: Copied from Source/WebCore/platform/mac/RunLoopMac.mm.
15         * platform/mac/RunLoopMac.mm:
16
17 2012-05-14  Erik Arvidsson  <arv@chromium.org>
18
19         [V8] Add "stack" property to DOMException
20         https://bugs.webkit.org/show_bug.cgi?id=85057
21
22         Reviewed by Kentaro Hara.
23
24         When we create a DOM exception we define a V8 accessor for the stack property. This
25         accessor uses a new Error object to get the underlying stack string.
26
27         Test: fast/dom/DOMException/stack-trace.html
28
29         * bindings/v8/V8Proxy.cpp:
30         (WebCore::DOMExceptionStackGetter):
31         (WebCore):
32         (WebCore::DOMExceptionStackSetter):
33         (WebCore::V8Proxy::setDOMException):
34
35 2012-05-14  Michael Saboff  <msaboff@apple.com>
36
37         Enh: Add the Ability to Disable / Enable JavaScript GC Timer
38         https://bugs.webkit.org/show_bug.cgi?id=86382
39
40         Reviewed by Darin Adler.
41
42         Plumbing to set / clear JS GC activity timer enable flag.
43
44         * WebCore.exp.in:
45         * bindings/js/GCController.cpp:
46         (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
47         * bindings/js/GCController.h:
48
49 2012-05-14  Nate Chapin  <japhet@chromium.org>
50
51         [V8] Crash in npObjectGetProperty() in V8NPObject.cpp
52         https://bugs.webkit.org/show_bug.cgi?id=86131
53
54         Reviewed by Adam Barth.
55
56         Tests: plugins/npruntime/delete-plugin-within-getProperty.html
57                plugins/npruntime/delete-plugin-within-hasProperty-return-false.html
58                plugins/npruntime/delete-plugin-within-hasProperty-return-true.html
59                plugins/npruntime/delete-plugin-within-invoke.html
60                plugins/npruntime/delete-plugin-within-setProperty.html
61
62         * bindings/v8/NPV8Object.cpp:
63         (_NPN_EvaluateHelper):
64         * bindings/v8/V8NPObject.cpp: Check NPN_IsAlive in a bunch of places we're not currently.
65         (WebCore::npObjectInvokeImpl):
66         (WebCore::npObjectGetProperty):
67         (WebCore::npObjectSetProperty):
68
69 2012-05-14  Brent Fulgham  <bfulgham@webkit.org>
70
71         [WinCairo] Unreviewed build correction.
72
73         * platform/win/DragImageCairoWin.cpp: Add missing include for
74         new NativeImageCairo.h type.
75
76 2012-05-14  Takashi Sakamoto  <tasak@google.com>
77
78         Crash in WebCore::RenderObject::repaint
79         https://bugs.webkit.org/show_bug.cgi?id=86162
80
81         Reviewed by Abhishek Arya.
82
83         As RenderScrollbarPart has no parent renderer, we crash in
84         WebCore::RenderBoxModelObject::paddingLeft when paddingLeft has
85         percent value, e.g. 5%. However if we set the scrollbar's parent
86         renderer to a renderer owning the scrollbar by using setParent method,
87         RenderScrollbarPart::styleWillChange will invoke parent renderer's
88         repaint. This causes crash in WebCore::RenderObject::repaint if the
89         owning renderer is already destroyed.
90         To fix the first crash without the second crash, modify
91         RenderObject::containingBlock() to check isRenderScrollbarPart or not,
92         if parent() is 0.
93         If so, use scrollbar's owningRenderer from RenderScrollbarPart.
94
95         Test: scrollbars/scrollbar-percent-padding-crash.html
96               scrollbars/scrollbar-scrollbarparts-repaint-crash.html
97
98         * rendering/RenderObject.cpp:
99         (WebCore::RenderObject::containingBlock):
100         Modifying containingBlock. If parent() is 0 and isRenderScrollbarPart()
101         is true, use RenderScrollbarPart's m_scrollbar->owningRenderer()
102         instead of parent().
103         * rendering/RenderObject.h:
104         (WebCore::RenderObject::isRenderScrollbarPart):
105         (RenderObject):
106         Adding a new method, isRenderScrollbarPart.
107         * rendering/RenderScrollbarPart.cpp:
108         (WebCore::RenderScrollbarPart::rendererOwningScrollbar):
109         (WebCore):
110         Adding a new method, scrollbarOwningRenderer to obtain m_scrollar's
111         owningRenderer.
112         * rendering/RenderScrollbarPart.h:
113         (RenderScrollbarPart):
114         Removing "friend class RenderScrollbar".
115         (WebCore::RenderScrollbarPart::isRenderScrollbarPart):
116         (WebCore::toRenderScrollbarPart):
117         (WebCore):
118         Implementing isRenderScrollbarPart and toRenderScrollbarPart.
119
120 2012-05-14  Mike West  <mike@mikewest.org>
121
122         Content Security Policy console errors include violated directive.
123         https://bugs.webkit.org/show_bug.cgi?id=86323
124
125         Reviewed by Adam Barth.
126
127         Console errors generated when resources, inline script/style, or eval
128         are blocked by Content Security Policy directives should include the
129         text of the directive that's been violated. This gives developers more
130         of the information they need to resolve the issue.
131
132         Test: http/tests/security/contentSecurityPolicy/*
133
134         * page/ContentSecurityPolicy.cpp:
135         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
136         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
137         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
138         (WebCore::CSPDirectiveList::allowJavaScriptURLs):
139         (WebCore::CSPDirectiveList::allowInlineEventHandlers):
140         (WebCore::CSPDirectiveList::allowInlineScript):
141         (WebCore::CSPDirectiveList::allowInlineStyle):
142         (WebCore::CSPDirectiveList::allowEval):
143
144 2012-05-14  Julien Chaffraix  <jchaffraix@webkit.org>
145
146         Crash in FrameView::windowClipRectForFrameOwner after r116371
147         https://bugs.webkit.org/show_bug.cgi?id=86035
148
149         Reviewed by David Hyatt.
150
151         Added a NULL-check for |parentView| as nothing guarantees it to be
152         non-NULL. Unfortunately no test as this is a crasher I couldn't
153         reproduce on my machine and the user logs were not helpful.
154
155         * page/FrameView.cpp:
156         (WebCore::FrameView::windowClipRect):
157
158 2012-05-14  Beth Dakin  <bdakin@apple.com>
159
160         https://bugs.webkit.org/show_bug.cgi?id=86403
161         ASSERTION FAILED: m_verticalScrollbarPainterDelegate on recent builds
162         -and corresponding-
163         <rdar://problem/11448841>
164
165         Reviewed by Simon Fraser.
166
167         http://trac.webkit.org/changeset/116476 accidentally started calling 
168         these functions for custom scrollbars. This change replaces that 
169         guard.
170         * rendering/RenderLayer.cpp:
171         (WebCore::RenderLayer::destroyScrollbar):
172
173 2012-05-14  Simon Fraser  <simon.fraser@apple.com>
174
175         Remove redundant pixel snapping in calculateCompositedBounds()
176         https://bugs.webkit.org/show_bug.cgi?id=86400
177
178         Reviewed by Sam Weinig.
179
180         RenderLayer::calculateLayerBounds() returns a pixel-snapped rect,
181         so we don't need to pixel-snap it again.
182
183         * rendering/RenderLayerCompositor.cpp:
184         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
185
186 2012-05-14  Simon Fraser  <simon.fraser@apple.com>
187
188         Avoid logging related to setting shadow-related properties on a transform-only layer
189         https://bugs.webkit.org/show_bug.cgi?id=86398
190
191         Reviewed by Dan Bernstein.
192
193         When making a CATransformLayer to support transform-style: preserve-3d, avoid trying
194         to set filters on the transform layer. We should never have this combination,
195         because filters force flattening to occur.
196
197         * platform/graphics/ca/GraphicsLayerCA.cpp:
198         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
199
200 2012-05-14  Sheriff Bot  <webkit.review.bot@gmail.com>
201
202         Unreviewed, rolling out r116983.
203         http://trac.webkit.org/changeset/116983
204         https://bugs.webkit.org/show_bug.cgi?id=86397
205
206         Does not compile on chromium-win (Requested by abarth on
207         #webkit).
208
209         * WebCore.gypi:
210         * page/TouchAdjustment.cpp:
211
212 2012-05-14  Dan Bernstein  <mitz@apple.com>
213
214         Pagination splits lines that could fit on a single page if it were not for their top leading
215         https://bugs.webkit.org/show_bug.cgi?id=86388
216
217         Reviewed by Darin Adler.
218
219         Test: fast/multicol/split-in-top-margin.html
220
221         When a line’s visible content fits on a page, but adding the top leading makes it taller than
222         a page, instead of giving up and splitting the line in an arbitrary position, add a strut
223         to push it downwards so that the split occurs in the top leading, and the visible content is
224         fully contained on a single page.
225
226         * rendering/RenderBlock.cpp:
227         (WebCore::RenderBlock::adjustLinePositionForPagination):
228
229 2012-05-14  Terry Anderson  <tdanderson@chromium.org>
230
231         [chromium] Compute the best target node on a GestureTap event
232         https://bugs.webkit.org/show_bug.cgi?id=85101
233
234         Reviewed by Adam Barth.
235
236         Using tests in the touchadjustment/ directory.
237
238         * WebCore.gypi:
239         Include TouchAdjustment.* files.
240         * page/TouchAdjustment.cpp:
241         Included math.h because of an 'Undeclared identifier: INFINITY' when
242         this patch was landed before.
243
244 2012-05-14  Adrienne Walker  <enne@google.com>
245
246         [chromium] Add compositor debug asserts for blocked main thread
247         https://bugs.webkit.org/show_bug.cgi?id=86384
248
249         Reviewed by James Robinson.
250
251         Where we depend for thread-safety that the main thread is blocked,
252         assert that this is actually the case.
253
254         * platform/graphics/chromium/cc/CCProxy.cpp:
255         (WebCore):
256         (WebCore::CCProxy::isMainThreadBlocked):
257         (WebCore::CCProxy::setMainThreadBlocked):
258         * platform/graphics/chromium/cc/CCProxy.h:
259         (CCProxy):
260         (WebCore):
261         (DebugScopedSetMainThreadBlocked):
262         (WebCore::DebugScopedSetMainThreadBlocked::DebugScopedSetMainThreadBlocked):
263         (WebCore::DebugScopedSetMainThreadBlocked::~DebugScopedSetMainThreadBlocked):
264         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
265         (WebCore::CCSingleThreadProxy::doCommit):
266         (WebCore::CCSingleThreadProxy::stop):
267         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
268         (WebCore::CCThreadProxy::stop):
269         (WebCore::CCThreadProxy::beginFrame):
270         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
271         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
272         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
273
274 2012-05-14  Swapna P  <spottabathini@innominds.com>
275
276         Reviewed by Eric Seidel.
277
278         Bug: Cannot resize frames because frameborder=0
279         https://bugs.webkit.org/show_bug.cgi?id=23750
280
281         Removed check for frameborder, in order to allow resize of frames even in case of frameborder=0.
282
283         Test: fast/frames/frames-with-frameborder-zero-can-be-resized.html
284
285         * rendering/RenderFrameSet.cpp:
286         (WebCore::RenderFrameSet::startResizing):
287         (WebCore::RenderFrameSet::canResizeRow):
288         (WebCore::RenderFrameSet::canResizeColumn):
289
290 2012-05-14  David Barton  <dbarton@mathscribe.com>
291
292         Unify RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
293         https://bugs.webkit.org/show_bug.cgi?id=86319
294
295         Reviewed by Darin Adler.
296
297         Most of RenderMathMLSquareRoot.cpp is duplicated in RenderMathMLRoot.cpp and can be
298         eliminated. We also define RenderMathMLRoot::computePreferredLogicalWidths().
299
300         Test: mathml/presentation/mroot-pref-width.html
301
302         * rendering/mathml/RenderMathMLRoot.cpp:
303         (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
304         (WebCore::RenderMathMLRoot::layout):
305         (WebCore::RenderMathMLRoot::paint):
306         * rendering/mathml/RenderMathMLRoot.h:
307         * rendering/mathml/RenderMathMLSquareRoot.cpp:
308         (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot):
309         (WebCore::RenderMathMLSquareRoot::addChild):
310         * rendering/mathml/RenderMathMLSquareRoot.h:
311
312 2012-05-14  MORITA Hajime  <morrita@google.com>
313
314         [Shadow DOM][Refactoring] HTMLContentSelector family should have better name
315         https://bugs.webkit.org/show_bug.cgi?id=86064
316
317         Reviewed by Dimitri Glazkov.
318
319         This change renames classes around shadow content distribution.
320         - Renamed HTMLContentSelector to ContentDistributor
321         - Renamed HTMLContentSelectionList to ContentDistribution
322         - Renamed HTMLContentSelection to ContentDistribution::Item
323         - Inlined HTMLContentSelectionSet into ContentDistributor
324
325         Associated rename and inlining are also happening for method names.
326
327         No new tests. No behavior change.
328
329         * CMakeLists.txt:
330         * GNUmakefile.list.am:
331         * Target.pri:
332         * WebCore.gypi:
333         * WebCore.vcproj/WebCore.vcproj:
334         * WebCore.xcodeproj/project.pbxproj:
335         * dom/ComposedShadowTreeWalker.cpp:
336         (WebCore::ComposedShadowTreeWalker::traverseNode):
337         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
338         (WebCore::ComposedShadowTreeWalker::traverseParent):
339         * dom/ElementShadow.cpp:
340         (WebCore::ElementShadow::ElementShadow):
341         (WebCore::ElementShadow::attach):
342         (WebCore::ElementShadow::insertionPointFor):
343         (WebCore::ElementShadow::distributionItemFor):
344         (WebCore::ElementShadow::recalcStyle):
345         (WebCore::ElementShadow::needsRedistributing):
346         (WebCore::ElementShadow::hostChildrenChanged):
347         (WebCore::ElementShadow::setNeedsRedistributing):
348         * dom/ElementShadow.h:
349         (WebCore):
350         (ElementShadow):
351         (WebCore::ElementShadow::distributor):
352         (WebCore::ElementShadow::clearNeedsRedistributing):
353         * dom/NodeRenderingContext.cpp:
354         (WebCore::NodeRenderingContext::NodeRenderingContext):
355         (WebCore::nextRendererOfInsertionPoint):
356         (WebCore::previousRendererOfInsertionPoint):
357         (WebCore::firstRendererOfInsertionPoint):
358         (WebCore::lastRendererOfInsertionPoint):
359         * dom/ShadowRoot.cpp:
360         * dom/ShadowRoot.h:
361         (WebCore):
362         * html/shadow/ContentDistributor.cpp: Renamed from Source/WebCore/html/shadow/HTMLContentSelector.cpp.
363         (WebCore):
364         (WebCore::ContentDistribution::ContentDistribution):
365         (WebCore::ContentDistribution::~ContentDistribution):
366         (WebCore::ContentDistribution::find):
367         (WebCore::ContentDistribution::clear):
368         (WebCore::ContentDistribution::append):
369         (WebCore::ContentDistributor::ContentDistributor):
370         (WebCore::ContentDistributor::~ContentDistributor):
371         (WebCore::ContentDistributor::distribute):
372         (WebCore::ContentDistributor::clearDistribution):
373         (WebCore::ContentDistributor::findFor):
374         (WebCore::ContentDistributor::findInsertionPointFor):
375         (WebCore::ContentDistributor::willDistribute):
376         (WebCore::ContentDistributor::didDistribute):
377         (WebCore::ContentDistributor::preparePoolFor):
378         * html/shadow/ContentDistributor.h: Added.
379         (WebCore):
380         (ContentDistribution):
381         (Item):
382         (WebCore::ContentDistribution::Item::insertionPoint):
383         (WebCore::ContentDistribution::Item::node):
384         (WebCore::ContentDistribution::Item::next):
385         (WebCore::ContentDistribution::Item::previous):
386         (WebCore::ContentDistribution::Item::create):
387         (WebCore::ContentDistribution::Item::Item):
388         (WebCore::ContentDistribution::first):
389         (WebCore::ContentDistribution::last):
390         (WebCore::ContentDistribution::firstNode):
391         (WebCore::ContentDistribution::lastNode):
392         (WebCore::ContentDistribution::isEmpty):
393         (ContentDistributor):
394         (Translator):
395         (WebCore::ContentDistributor::Translator::hash):
396         (WebCore::ContentDistributor::Translator::equal):
397         (WebCore::ContentDistributor::Hash::hash):
398         (WebCore::ContentDistributor::Hash::equal):
399         (Hash):
400         (WebCore::ContentDistributor::inDistribution):
401         (WebCore::ContentDistributor::poolIsReady):
402         * html/shadow/HTMLContentElement.cpp:
403         (WebCore::HTMLContentElement::parseAttribute):
404         * html/shadow/HTMLContentSelector.h: Removed.
405         * html/shadow/InsertionPoint.cpp:
406         (WebCore::InsertionPoint::InsertionPoint):
407         (WebCore::InsertionPoint::detach):
408         (WebCore::InsertionPoint::distributeHostChildren):
409         (WebCore::InsertionPoint::clearDistribution):
410         (WebCore::InsertionPoint::attachDistributedNode):
411         (WebCore::InsertionPoint::assignShadowRoot):
412         (WebCore::InsertionPoint::clearAssignment):
413         * html/shadow/InsertionPoint.h:
414         (WebCore::InsertionPoint::distribution):
415         (WebCore::InsertionPoint::hasDistribution):
416
417 2012-05-14  Sheriff Bot  <webkit.review.bot@gmail.com>
418
419         Unreviewed, rolling out r116969.
420         http://trac.webkit.org/changeset/116969
421         https://bugs.webkit.org/show_bug.cgi?id=86386
422
423         i accidentally the icondatabase (Requested by kling on
424         #webkit).
425
426         * loader/icon/IconDatabase.cpp:
427         (WebCore::IconDatabase::synchronousIconForPageURL):
428         (WebCore::IconDatabase::retainIconForPageURL):
429         (WebCore::IconDatabase::releaseIconForPageURL):
430         (WebCore::IconDatabase::retainedPageURLCount):
431         (WebCore::IconDatabase::performURLImport):
432         (WebCore::IconDatabase::syncThreadMainLoop):
433         * loader/icon/IconDatabase.h:
434         (IconDatabase):
435
436 2012-05-14  Kevin Ollivier  <kevino@theolliviers.com>
437
438         [wx] Unreviewed build fix. Fix for wxMSW windows.h load order bug.
439         
440         * platform/graphics/wx/ImageBufferDataWx.h:
441
442 2012-05-14  Eric Carlson  <eric.carlson@apple.com>
443
444         <video> won't load when URL ends with .php
445         https://bugs.webkit.org/show_bug.cgi?id=86308
446
447         Reviewed by Darin Adler.
448
449         Test: http/tests/media/video-query-url.html
450
451         * platform/graphics/MediaPlayer.cpp:
452         (WebCore::MediaPlayer::MediaPlayer): Initialize m_typeInferredFromExtension.
453         (WebCore::MediaPlayer::load): Set m_typeInferredFromExtension appropriately.
454         (WebCore::MediaPlayer::loadWithNextMediaEngine): If we don't find a media engine registered
455             for a MIME type, and the type was inferred from the extension, give the first registered
456             media engine a chance anwyay just as we do when there is no MIME type at all.
457         * platform/graphics/MediaPlayer.h: Add m_typeInferredFromExtension.
458
459 2012-05-14  Ilya Tikhonovsky  <loislo@chromium.org>
460
461         Web Inspector: do not update $0-$4 console variables for the objects from loaded from file heap snapshot.
462         https://bugs.webkit.org/show_bug.cgi?id=86371
463
464         When the user selects an object in HeapSnapshot we are updating $0 variable in console API.
465         But if the snapshot was loaded from file then we can't map object id for the selected obect
466         from the snapshot to the live objects in the inspected page.
467
468         Reviewed by Yury Semikhatsky.
469
470         * inspector/front-end/HeapSnapshotView.js:
471         (WebInspector.HeapSnapshotView.prototype._inspectedObjectChanged):
472         (WebInspector.HeapSnapshotView.prototype._updateFilterOptions):
473         (WebInspector.HeapProfileHeader):
474         (WebInspector.HeapProfileHeader.prototype.canSaveToFile):
475         (WebInspector.HeapProfileHeader.prototype.saveToFile):
476         * inspector/front-end/ProfilesPanel.js:
477         (WebInspector.ProfileHeader):
478         (WebInspector.ProfileHeader.prototype.loadFromFile):
479         (WebInspector.ProfileHeader.prototype.fromFile):
480         (WebInspector.ProfilesPanel.prototype._loadFromFile):
481
482 2012-05-14  Andrey Kosyakov  <caseq@chromium.org>
483
484         Web Inspector: [Extensions API] allow extensions to evaluate in the context of their content scripts
485         https://bugs.webkit.org/show_bug.cgi?id=86361
486
487         Reviewed by Yury Semikhatsky.
488
489         Test: inspector/extensions/extensions-eval-content-script.html
490
491         * inspector/front-end/ExtensionAPI.js: 
492         (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpression): Added evaluateOptions optional parameter.
493         (injectedExtensionAPI.InspectedWindow.prototype.eval):
494         (injectedExtensionAPI.extractCallbackArgument): A helper to extract callback function from last argument.
495         * inspector/front-end/ExtensionPanel.js:
496         (WebInspector.ExtensionSidebarPane.prototype.setExpression): Added evaluateOptions optional parameter.
497         * inspector/front-end/ExtensionServer.js:
498         (WebInspector.ExtensionServer.prototype._onSetSidebarContent): Use ExtensionServer.evaluate() wrapper.
499         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage): Ditto.
500         (WebInspector.ExtensionServer.prototype._normalizePath):
501         (WebInspector.ExtensionServer.prototype.evaluate): A wrapper for PageAgent.evaluate() that handles evaluateOptions.
502         * inspector/front-end/JavaScriptContextManager.js:
503         (WebInspector.JavaScriptContextManager.prototype.contextByFrameAndSecurityOrigin): Expose interface to locate context id by frame and content script security origin.
504         (WebInspector.FrameEvaluationContext.prototype._addExecutionContext): Maintain contexts sorted by name.
505         (WebInspector.FrameEvaluationContext.prototype.isolatedContexts): ditto (skip sorting when returning contexts)
506         (WebInspector.FrameEvaluationContext.prototype.contextBySecurityOrigin):
507         * inspector/front-end/inspector.js: Hold/expose javaScriptContextManager.
508
509 2012-05-14  Pavel Feldman  <pfeldman@chromium.org>
510
511         Web Inspector: preserve tab index while widening / shrinking tabbed pane area.
512         https://bugs.webkit.org/show_bug.cgi?id=86359
513
514         Reviewed by Vsevolod Vlasov.
515
516         After the drag'n'drop reorder, we should preserve tab index while widening /
517         shrinking the tabbed pane area.
518
519         * inspector/front-end/TabbedPane.js:
520         (WebInspector.TabbedPane.prototype._innerCloseTab):
521         (WebInspector.TabbedPane.prototype._showTabElement):
522         (WebInspector.TabbedPane.prototype._hideTabElement):
523         (WebInspector.TabbedPane.prototype._updateTabsDropDown):
524         (WebInspector.TabbedPane.prototype.elementsToRestoreScrollPositionsFor):
525         (WebInspector.TabbedPane.prototype._insertBefore):
526         (WebInspector.TabbedPaneTab):
527         (WebInspector.TabbedPaneTab.prototype._createTabElement):
528         (WebInspector.TabbedPaneTab.prototype._tabDragging):
529
530 2012-05-14  Vsevolod Vlasov  <vsevik@chromium.org>
531
532         Web Inspector: Request / response headers should be stored in name-value pairs array, not a map on front-end.
533         https://bugs.webkit.org/show_bug.cgi?id=86357
534
535         Reviewed by Pavel Feldman.
536
537         Storing headers as name-value pairs array information more accurate and allows
538         to treat Set-Cookie headers (which become not parseable when joined by comma) correctly.
539
540         * inspector/front-end/AuditRules.js:
541         (WebInspector.AuditRules.GzipRule.prototype._isCompressed):
542         (WebInspector.AuditRules.CacheControlRule.prototype.responseHeader):
543         (WebInspector.AuditRules.CacheControlRule.prototype.hasResponseHeader):
544         (WebInspector.AuditRules.CacheControlRule.prototype.responseHeaderMatch):
545         * inspector/front-end/HAREntry.js:
546         (WebInspector.HAREntry.prototype._buildRequest):
547         (WebInspector.HAREntry.prototype._buildResponse):
548         * inspector/front-end/NetworkManager.js:
549         (WebInspector.NetworkDispatcher.prototype._headersMapToHeadersArray):
550         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithRequest):
551         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
552         (WebInspector.NetworkDispatcher.prototype.webSocketWillSendHandshakeRequest):
553         (WebInspector.NetworkDispatcher.prototype.webSocketHandshakeResponseReceived):
554         * inspector/front-end/NetworkRequest.js:
555         (WebInspector.NetworkRequest.prototype.get transferSize):
556         (WebInspector.NetworkRequest.prototype.get requestHeaders):
557         (WebInspector.NetworkRequest.prototype.get requestHeadersText):
558         (WebInspector.NetworkRequest.prototype.get responseHeaders):
559         (WebInspector.NetworkRequest.prototype.get responseHeadersText):
560         (WebInspector.NetworkRequest.prototype._headerValue):
561         * inspector/front-end/RequestHeadersView.js:
562         (WebInspector.RequestHeadersView.prototype._refreshRequestHeaders):
563         (WebInspector.RequestHeadersView.prototype._refreshResponseHeaders):
564         (WebInspector.RequestHeadersView.prototype._refreshHeaders):
565         * platform/chromium/support/WebHTTPLoadInfo.cpp:
566         (WebKit::addHeader):
567
568 2012-05-14  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
569
570         [Gtk][DOM Bindings] Feature-protected interface usage in set/get property must be under condition guards
571         https://bugs.webkit.org/show_bug.cgi?id=86060
572
573         Reviewed by Martin Robinson.
574
575         Property set/get functions generated was referencing WebCore::interface without any condition guard.
576         This issue was triggered usually when an interface gets disabled; For instance; --disable-video, disables WebCore::HTMLMediaElement.
577         Also updated the GObject binding reference tests
578
579         No new tests - covered by existing bindings tests
580
581         * bindings/scripts/CodeGeneratorGObject.pm:
582         (GenerateProperties):
583         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
584         (webkit_dom_test_active_dom_object_get_property):
585         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
586         (webkit_dom_test_event_constructor_get_property):
587         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
588         (webkit_dom_test_exception_get_property):
589         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
590         (webkit_dom_test_interface_set_property):
591         (webkit_dom_test_interface_get_property):
592         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
593         (webkit_dom_test_obj_set_property):
594         (webkit_dom_test_obj_get_property):
595         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
596         (webkit_dom_test_serialized_script_value_interface_get_property):
597
598 2012-05-14  Alexander Pavlov  <apavlov@chromium.org>
599
600         Web Inspector: [Styles] css properties copied into clipboard contain extra line breaks before color values
601         https://bugs.webkit.org/show_bug.cgi?id=86372
602
603         Reviewed by Vsevolod Vlasov.
604
605         The "display: block" property found in the ".swatch-inner" CSS class was causing the issue
606         (an additional \n was rendered in the plain text value).
607
608         * inspector/front-end/inspector.css:
609         (.swatch-inner):
610
611 2012-05-14  Pavel Feldman  <pfeldman@chromium.org>
612
613         [Qt] REGRESSION (r116789): inspector/debugger/script-formatter-console.html fails
614         https://bugs.webkit.org/show_bug.cgi?id=86336
615
616         Reviewed by Yury Semikhatsky.
617
618         * inspector/front-end/ConsoleMessage.js:
619         (WebInspector.ConsoleMessageImpl.prototype.location):
620
621 2012-05-14  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
622
623         TiledBackingStore: Prevent partial tile updates when they intersect the keep rect.
624         https://bugs.webkit.org/show_bug.cgi?id=85488
625
626         Reviewed by Kenneth Rohde Christiansen.
627
628         Right now an invalidate can cause problems for tiles on the boundary of the keep
629         rect. Intersecting the dirty rect causes only part of the tile to be updated,
630         and the glitch becomes visible if the user scrolls this tile back into the viewport.
631
632         * platform/graphics/TiledBackingStore.cpp:
633         (WebCore::TiledBackingStore::invalidate):
634
635 2012-05-14  Alexander Pavlov  <apavlov@chromium.org>
636
637         Web Inspector: Esc should revert the colorpicker-modifed color to the original
638         https://bugs.webkit.org/show_bug.cgi?id=86349
639
640         Reviewed by Vsevolod Vlasov.
641
642         A boolean parameter has been added to the Spectrum's hide() method to denote the picker cancellation,
643         which gets passed into the "Hidden" event listeners. StylesSidebarPane is made to remember the original property value
644         when the picker is opened, and restore it if the color picker is cancelled.
645
646         * inspector/front-end/Spectrum.js:
647         (WebInspector.Spectrum):
648         (WebInspector.Spectrum.prototype.toggle):
649         (WebInspector.Spectrum.prototype.show):
650         (WebInspector.Spectrum.prototype.hide):
651         (WebInspector.Spectrum.prototype._onKeyDown):
652         * inspector/front-end/StylesSidebarPane.js:
653         (WebInspector.StylesSidebarPane.prototype.update):
654         (WebInspector.StylesSidebarPane.prototype.willHide):
655         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
656
657 2012-05-14  Zeno Albisser  <zeno@webkit.org>
658
659         [Qt] TextureMapperGL::drawTexture marked OVERRIDE but does not override any member function.
660         https://bugs.webkit.org/show_bug.cgi?id=86347
661
662         This bug was introduced by r116834.
663         TextureMapperGL implements two drawTexture functions.
664         The first one takes a BitmapTexture as an argument and does override TextureMapper::drawTexture().
665         The second one takes a texture id as an argument and does not override any member function.
666
667         * platform/graphics/texmap/TextureMapperGL.h:
668
669 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
670
671         Web Inspector: implement tabs reordering via drag'n'drop.
672         https://bugs.webkit.org/show_bug.cgi?id=86294
673
674         Reviewed by Yury Semikhatsky.
675
676         * inspector/front-end/TabbedPane.js:
677         (WebInspector.TabbedPaneTab.prototype._createTabElement):
678         (WebInspector.TabbedPaneTab.prototype._tabClicked):
679         (WebInspector.TabbedPaneTab.prototype._tabMouseDown):
680         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
681         (WebInspector.TabbedPaneTab.prototype._tabMouseMove):
682         (WebInspector.TabbedPaneTab.prototype._tabDragging):
683         (WebInspector.TabbedPaneTab.prototype._endTabDragging):
684
685 2012-05-14  MORITA Hajime  <morrita@google.com>
686
687         Should have Node::inDetach() for assertion purposes.
688         https://bugs.webkit.org/show_bug.cgi?id=86157
689
690         Reviewed by Darin Adler.
691
692         Implemented Node::inDetach() and added an assertio in Document::setFocusedNode().
693         This is a follow up of r116644 which removes inDetach() checking.
694
695         No new tests. Just adding an asssertion.
696
697         * dom/Document.cpp:
698         (WebCore::Document::setFocusedNode):
699         * dom/Node.cpp:
700         (WebCore):
701         (WebCore::Node::inDetach):
702         (WebCore::Node::detach):
703         * dom/Node.h:
704         (Node):
705
706 2012-05-13  Noel Gordon  <noel.gordon@gmail.com>
707
708         [chromium] Remove platform/image-decoders/xbm from WebCore.gyp
709         https://bugs.webkit.org/show_bug.cgi?id=86333
710
711         Reviewed by Adam Barth.
712
713         No new tests. No change in behavior.
714
715         * WebCore.gyp/WebCore.gyp: Remove reference to platform/image-decoders/xbm
716         since that directory was removed from the repository long ago.
717
718 2012-05-13  Darin Adler  <darin@apple.com>
719
720         [CG] Unneeded CFRetain/Release of CGImageRef in BitmapImage::draw
721         https://bugs.webkit.org/show_bug.cgi?id=86332
722
723         Reviewed by Dan Bernstein.
724
725         * platform/graphics/cg/ImageCG.cpp:
726         (WebCore::BitmapImage::draw): Don't use RetainPtr since the result of
727         the function is used before anything could call CFRelease on it.
728
729 2012-05-13  Darin Adler  <darin@apple.com>
730
731         Listeners map uses raw pointers, but should use OwnPtr
732         https://bugs.webkit.org/show_bug.cgi?id=86298
733
734         Reviewed by Dan Bernstein.
735
736         * bindings/js/PageScriptDebugServer.cpp:
737         (WebCore::PageScriptDebugServer::~PageScriptDebugServer): Removed call
738         to deleteAllValues since the destructor now takes care of this
739         (WebCore::PageScriptDebugServer::addListener): Changed idiom of the add
740         function call here to use adoptPtr.
741         (WebCore::PageScriptDebugServer::removeListener): Added a now-needed
742         call to get and removed a now-uneeeded call to delete.
743         * bindings/js/PageScriptDebugServer.h: Changed the key type of
744         PageListenersMap to OwnPtr.
745
746         * bindings/js/ScriptDebugServer.cpp:
747         (WebCore::ScriptDebugServer::~ScriptDebugServer): Removed code to delete
748         the values in m_pageListenersMap. This map was never used and so I have
749         removed it.
750         * bindings/js/ScriptDebugServer.h: Removed the type PageListenersMap
751         and the unused data member, m_pageListenersMap.
752
753 2012-05-13  Yoshifumi Inoue  <yosin@chromium.org>
754
755         [Forms] Move ValidityState methods implementation to another place
756         https://bugs.webkit.org/show_bug.cgi?id=86058
757
758         Reviewed by Kent Tamura.
759
760         This patch changes ValidityState class for limiting scope of
761         number/range input type related methods for introducing decimal
762         arithmetic.
763
764         Methods related to validation are moved from ValidateState to
765         input, select and textarea elements with virtual method based
766         dispatching via FormAssociateElement instead of tag name
767         dispatching so far for code simplification.
768
769         No new tests. This patch doesn't change behavior.
770
771         * html/FormAssociatedElement.cpp:
772         (WebCore::FormAssociatedElement::customError): Added. Called from ValidateState. Returns custom error mssage in member variable.
773         (WebCore::FormAssociatedElement::patternMismatch): Added.  Called from ValidateState. This is default implementation.
774         (WebCore::FormAssociatedElement::rangeOverflow): Added.  Called from ValidateState. This is default implementation.
775         (WebCore::FormAssociatedElement::rangeUnderflow): Added.  Called from ValidateState. This is default implementation.
776         (WebCore::FormAssociatedElement::stepMismatch): Added.  Called from ValidateState. This is default implementation.
777         (WebCore::FormAssociatedElement::tooLong): Added.  Called from ValidateState. This is default implementation.
778         (WebCore::FormAssociatedElement::typeMismatch): Added.  Called from ValidateState. This is default implementation.
779         (WebCore::FormAssociatedElement::valid): Added.  Called from ValidateState. This is default implementation.
780         (WebCore::FormAssociatedElement::valueMissing): Added.  Called from ValidateState. This is default implementation.
781         (WebCore::FormAssociatedElement::customValidationMessage): Added.  Called from ValidateState. This is default implementation.
782         (WebCore::FormAssociatedElement::validationMessage): Added.  Called from ValidateState. This is default implementation.
783         (WebCore::FormAssociatedElement::setCustomValidity): Added.  set custom error message.
784         * html/FormAssociatedElement.h:
785         (FormAssociatedElement): Added new instance value m_customValidationMessage.
786         * html/HTMLFormControlElement.cpp:
787         (WebCore::HTMLFormControlElement::validationMessage): Removed. Note: HTMLInputElement, HTMLSelectElement, and HTMLTextAreaElement implement this method.
788         (WebCore::HTMLFormControlElement::setCustomValidity): Changed. Calls base class setCustomValidity.
789         * html/HTMLFormControlElement.h:
790         (HTMLFormControlElement):
791         * html/HTMLInputElement.cpp:
792         (WebCore::HTMLInputElement::isValidValue): Call m_inputType methods instead of HTMLInputElement's.
793         (WebCore::HTMLInputElement::tooLong): Call m_inputType methods instead of HTMLInputElement's.
794         (WebCore):
795         (WebCore::HTMLInputElement::typeMismatch): Move implementation to InputType.
796         (WebCore::HTMLInputElement::valueMissing):  Move implementation to InputType.
797         (WebCore::HTMLInputElement::patternMismatch): Move implementation to InputType.
798         (WebCore::HTMLInputElement::rangeUnderflow): Move implementation to InputType.
799         (WebCore::HTMLInputElement::rangeOverflow): Move implementation to InputType.
800         (WebCore::HTMLInputElement::validationMessage): Move implementation to InputType.
801         (WebCore::HTMLInputElement::stepMismatch): Move implementation to InputType.
802         (WebCore::HTMLInputElement::isInRange): Call m_inputType methods instead of HTMLInputElement's.
803         (WebCore::HTMLInputElement::isOutOfRange): Call m_inputType methods instead of HTMLInputElement's.
804         * html/HTMLInputElement.h:
805         (HTMLInputElement): Make tooLong method private.
806         * html/HTMLObjectElement.h: Add "virtual" and "OVERRIDE".
807         * html/HTMLSelectElement.cpp:
808         (WebCore::HTMLSelectElement::validationMessage): Added. Implementation for HTMLSelectElement.
809         (WebCore::HTMLSelectElement::valueMissing): Added. Implementation for HTMLSelectElement.
810         * html/HTMLSelectElement.h:
811         (HTMLSelectElement):  Added entries for newly added methods.
812         * html/HTMLTextAreaElement.cpp:
813         (WebCore::HTMLTextAreaElement::validationMessage): Added. Implementation for HTMLTextAreaElement.
814         (WebCore::HTMLTextAreaElement::valueMissing): Added. Implementation for HTMLTextAreaElement.
815         (WebCore::HTMLTextAreaElement::tooLong): Added. Implementation for HTMLTextAreaElement.
816         * html/HTMLTextAreaElement.h:
817         (HTMLTextAreaElement): Added entries for newly added methods. Change tooLong and valueMissing private.
818         * html/InputType.cpp:
819         (WebCore::InputType::stepMismatch): Change method signature.
820         (WebCore::InputType::alignValueForStep):  Changed for calling InputClass instead of HTMLINputElement.
821         (WebCore::InputType::stepUpFromRenderer):  Added. Moved from HTMLInputElement.
822         (WebCore::InputType::validationMessage): Added.  Moved from HTMLInputElement.
823         * html/InputType.h:
824         (InputType): Added entries for newly added methods and update methods signature.
825         * html/ValidityState.cpp: Move actual implementation to FormAssociatedElement and derived classes for localizing implementation change of elements and input types.
826         (WebCore::ValidityState::validationMessage): Changed to call FormAssociatedElement's method.
827         (WebCore::ValidityState::valueMissing): Changed to call FormAssociatedElement's method.
828         (WebCore::ValidityState::typeMismatch): Changed to call FormAssociatedElement's method.
829         (WebCore::ValidityState::patternMismatch): Changed to call FormAssociatedElement's method.
830         (WebCore::ValidityState::tooLong): Changed to call FormAssociatedElement's method.
831         (WebCore::ValidityState::rangeUnderflow): Changed to call FormAssociatedElement's method.
832         (WebCore::ValidityState::rangeOverflow): Changed to call FormAssociatedElement's method.
833         (WebCore::ValidityState::stepMismatch): Changed to call FormAssociatedElement's method.
834         (WebCore::ValidityState::customError): Changed to call FormAssociatedElement's method.
835         (WebCore::ValidityState::valid):
836         * html/ValidityState.h:
837         (ValidityState): Remove custom validation message related things.
838
839 2012-05-13  Mike Lawther  <mikelawther@chromium.org>
840
841         Heap-use-after-free in WTF::HashMap<int, WTF::RefPtr<WebCore::CalculationValue>, WTF::IntHash<unsigned int>, WTF::HashTrait
842         https://bugs.webkit.org/show_bug.cgi?id=85195
843
844         This bug was caused by Length not understanding that calc expressions shouldn't be 
845         blended - a Length with a calc expression handle was created without incrementing
846         the ref count of the expression. Length no longer attempts to blend calc expressions,
847         http://webkit.org/b/86160 has been filed to track expression blending. Fixing this fixed
848         the crash.
849
850         Once this was fixed, the RenderStyle diff checker thought the style was changing,
851         as Length didn't know how to compare calc expressions, resulting in an infinite
852         loop of style recalcs. Expressions can now compare themselves.
853
854         Reviewed by Darin Adler.
855
856         Tests: css3/calc/transition-crash.html
857                css3/calc/transition-crash2.html
858
859         * platform/CalculationValue.h:
860         (WebCore::CalcExpressionNode::CalcExpressionNode):
861         (CalcExpressionNode):
862         (WebCore::CalcExpressionNode::type):
863         (CalculationValue):
864         (WebCore::CalculationValue::operator==):
865         (WebCore::CalcExpressionNumber::CalcExpressionNumber):
866         (WebCore::CalcExpressionNumber::operator==):
867         (CalcExpressionNumber):
868         (WebCore::CalcExpressionLength::CalcExpressionLength):
869         (WebCore::CalcExpressionLength::operator==):
870         (CalcExpressionLength):
871         (WebCore::CalcExpressionBinaryOperation::CalcExpressionBinaryOperation):
872         (WebCore::CalcExpressionBinaryOperation::operator==):
873         (CalcExpressionBinaryOperation):
874         * platform/Length.cpp:
875         (WebCore::Length::isCalculatedEqual):
876         (WebCore):
877         * platform/Length.h:
878         (WebCore::Length::operator==):
879         (Length):
880         (WebCore::Length::blend):
881
882 2012-05-13  Darin Adler  <darin@apple.com>
883
884         Roll out local changes accidentally landed in r116905.
885
886         * platform/graphics/GraphicsContext.h:
887         * platform/graphics/cg/GraphicsContextCG.cpp:
888         * platform/graphics/cg/ImageCG.cpp:
889
890 2012-05-13  Rob Buis  <rbuis@rim.com>
891
892         Use emptyString instead of String("")
893         https://bugs.webkit.org/show_bug.cgi?id=86305
894
895         Reviewed by Darin Adler.
896
897         Use emptyString() instead of String("") because it is better style and faster.
898
899         No new tests. No change in behavior.
900
901         * Modules/webdatabase/AbstractDatabase.cpp:
902         (WebCore::AbstractDatabase::performOpenAndVerify):
903         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
904         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
905         (WebCore::ThreadableWebSocketChannelClientWrapper::extensions):
906         * html/HTMLInputElement.cpp:
907         (WebCore::HTMLInputElement::setValueFromRenderer):
908         * platform/SharedBufferChunkReader.cpp:
909         (WebCore::SharedBufferChunkReader::nextChunkAsUTF8StringWithLatin1Fallback):
910         * platform/network/curl/ResourceHandleManager.cpp:
911         (WebCore::ResourceHandleManager::setProxyInfo):
912         * platform/text/LocaleICU.cpp:
913         (WebCore::LocaleICU::initializeLocalizedDateFormatText):
914         * rendering/RenderQuote.cpp:
915         (WebCore::RenderQuote::originalText):
916         * storage/StorageNamespaceImpl.cpp:
917         (WebCore::StorageNamespaceImpl::localStorageNamespace):
918         * svg/SVGStringList.cpp:
919         (WebCore::SVGStringList::reset):
920
921 2012-05-13  Darin Adler  <darin@apple.com>
922
923         Image::initPlatformData is always an empty function so we can remove it
924         https://bugs.webkit.org/show_bug.cgi?id=86297
925
926         Reviewed by Dan Bernstein.
927
928         * platform/graphics/BitmapImage.h: Removed declaration of initPlatformData.
929
930         * platform/graphics/BitmapImage.cpp:
931         (WebCore::BitmapImage::BitmapImage): Removed call to initPlatformData.
932         * platform/graphics/cairo/BitmapImageCairo.cpp:
933         (WebCore::BitmapImage::BitmapImage): Ditto.
934         * platform/graphics/cg/ImageCG.cpp:
935         (WebCore::BitmapImage::BitmapImage): Ditto.
936         * platform/graphics/chromium/ImageChromiumMac.mm: Removed empty
937         initPlatformData function.
938         * platform/graphics/efl/ImageEfl.cpp: Ditto.
939         * platform/graphics/gtk/ImageGtk.cpp:
940         * platform/graphics/mac/ImageMac.mm:
941         * platform/graphics/openvg/ImageOpenVG.cpp:
942         (WebCore::BitmapImage::BitmapImage): Removed call to initPlatformData.
943         Removed empty initPlatformData function.
944         * platform/graphics/qt/ImageQt.cpp:
945         (WebCore::BitmapImage::BitmapImage): Removed call to initPlatformData.
946         Removed empty initPlatformData function.
947         * platform/graphics/skia/ImageSkia.cpp: Removed empty initPlatformData function.
948         * platform/graphics/win/ImageWin.cpp: Ditto.
949         * platform/graphics/wx/ImageWx.cpp: Ditto.
950         (WebCore::BitmapImage::BitmapImage): Removed call to initPlatformData.
951
952 2012-05-13  Darin Adler  <darin@apple.com>
953
954         RenderView::selectionBounds and RenderView::setSelection use maps with raw pointers that should be OwnPtr
955         https://bugs.webkit.org/show_bug.cgi?id=86300
956
957         Reviewed by Eric Seidel.
958
959         * rendering/RenderView.cpp:
960         (WebCore::RenderView::selectionBounds): Changed SelectionMap type to use OwnPtr.
961         Added code to do adoptPtr as needed and removed explicit delete code.
962         (WebCore::RenderView::setSelection): Changed SelectedBlockMap type to use OwnPtr.
963         Added code to do adoptPtr as needed and removed explicit delete code.
964
965 2012-05-13  Darin Adler  <darin@apple.com>
966
967         FractionalLayoutUnit class has unneeded redundant uses of "inline" keyword
968         https://bugs.webkit.org/show_bug.cgi?id=86301
969
970         Reviewed by Andreas Kling.
971
972         * platform/FractionalLayoutUnit.h: Removed uses of inline for functions
973         defined inside a class definition. The C++ language defines that all such
974         functions are treated as if specified with inline, and explicitly stating
975         inline in addition does not add anything or change behavior.
976
977 2012-05-13  Darin Adler  <darin@apple.com>
978
979         Dangling node to ID maps vector uses raw pointers, but should use OwnPtr
980         https://bugs.webkit.org/show_bug.cgi?id=86299
981
982         Reviewed by Pavel Feldman.
983
984         * inspector/InspectorDOMAgent.cpp:
985         (WebCore::InspectorDOMAgent::releaseDanglingNodes): Removed now-unneeded call
986         to deleteAllValues since the clear function now takes care of that.
987         (WebCore::InspectorDOMAgent::pushNodePathToFrontend): Added code that uses
988         adoptPtr and release as neeed to deal with a Vector<OwnPtr>.
989         * inspector/InspectorDOMAgent.h: Changed m_danglingNodeToIdMaps to be
990         Vector<OwnPtr> instead of a vector of raw pointers.
991
992 2012-05-13  Victor Carbune  <vcarbune@adobe.com>
993
994         Volume slider needs to be displayed below the mute button
995         https://bugs.webkit.org/show_bug.cgi?id=85990
996
997         Reviewed by Dimitri Glazkov.
998
999         Added back code for rendering offset, but used only when the volume slider
1000         needs to be displayed below the controls.
1001
1002         Test: media/media-volume-slider-rendered-below.html
1003
1004         * css/mediaControlsChromium.css:
1005         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
1006         Changed positioning of the slider to absolute, otherwise it is not possible to position it from the layout() method.
1007         * css/mediaControlsQuickTime.css:
1008         Added back the double mute-button and changed the z-index of the original button. When the slider is displayed
1009         the second mute button is actually there.
1010         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1011         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
1012         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
1013         Added copy.
1014         * html/shadow/MediaControlElements.cpp:
1015         (WebCore::MediaControlPanelElement::makeTransparent): Disabled the possible of hiding controls. WebVTT rendering
1016         in the place of controls when these are visible is not possible with the current code.
1017         (RenderMediaVolumeSliderContainer):
1018         (WebCore):
1019         (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
1020         (WebCore::RenderMediaVolumeSliderContainer::layout):
1021         Checked if the absolute coordinates of the corner of the slider would be rendered outside the page. This part of the
1022         code is faulty if display:none is toggled on the controls.
1023         (WebCore::MediaControlVolumeSliderContainerElement::createRenderer):
1024         * html/shadow/MediaControlElements.h:
1025         (MediaControlVolumeSliderContainerElement):
1026         * html/shadow/MediaControlRootElement.cpp:
1027         (WebCore::MediaControlRootElement::create):
1028
1029 2012-05-13  Igor Oliveira  <igor.o@sisa.samsung.com>
1030
1031         [Texmap] TextureMapperAnimations does not support keyframe with multiple animations
1032         https://bugs.webkit.org/show_bug.cgi?id=86303
1033
1034         Qt and GTK, in WebKit1, use TextureMapper to store AC animations using
1035         TextureMapperAnimations::add(keyframeName, TextureMapperAnimation). And when a 
1036         CSS animation animates several CSS properties, TextureMapperAnimations::add is
1037         called more than once with the same keyframeName value. However, currently,
1038         TextureMapperAnimations can not store more than one animated property in the keyframe
1039         because it is using HashMap<String, TextureMapperAnimation>, and WebKit HashMap 
1040         does not support add the same key twice.
1041
1042         Reviewed by Noam Rosenthal.
1043
1044         * platform/graphics/texmap/TextureMapperAnimation.cpp:
1045         (WebCore::TextureMapperAnimations::hasActiveAnimationsOfType):
1046         (WebCore::TextureMapperAnimations::hasRunningAnimations):
1047         (WebCore::TextureMapperAnimations::add):
1048         (WebCore):
1049         (WebCore::TextureMapperAnimations::pause):
1050         (WebCore::TextureMapperAnimations::apply):
1051         * platform/graphics/texmap/TextureMapperAnimation.h:
1052         (TextureMapperAnimations): Use HashMap<String, Vector<TextureMapperAnimation> >,
1053         so we can support an keyframe with multiple animations.
1054
1055 2012-05-12  Abhishek Arya  <inferno@chromium.org>
1056
1057         Crash in HTMLSelectElement::setOption
1058         https://bugs.webkit.org/show_bug.cgi?id=85420
1059
1060         Reviewed by Eric Seidel
1061         
1062         RefPtr before option in HTMLSelectElement::setOption since it
1063         can get destroyed due to mutation events.
1064
1065         Test: fast/dom/HTMLSelectElement/option-add-crash.html
1066
1067         * html/HTMLSelectElement.cpp:
1068         (WebCore::HTMLSelectElement::setOption):
1069
1070 2012-05-12  Robin Dunn  <robin@alldunn.com>
1071
1072         [wx] Restore text paste implementation.
1073         https://bugs.webkit.org/show_bug.cgi?id=86311
1074
1075         Reviewed by Kevin Ollivier.
1076
1077         * platform/wx/PasteboardWx.cpp:
1078         (WebCore::Pasteboard::plainText):
1079
1080 2012-05-12  Philip Rogers  <pdr@google.com>
1081
1082         Cleanup before changing attributeName in SVG <animate>
1083         https://bugs.webkit.org/show_bug.cgi?id=86100
1084
1085         Reviewed by Nikolas Zimmermann.
1086
1087         Changing attributeName caused a crash because references were not removed from the old target.
1088         This change simply cleans up before changing attributeName in SVG animation elements.
1089
1090         Test: svg/animations/dynamic-modify-attributename-crash.svg
1091
1092         * svg/animation/SVGSMILElement.cpp:
1093         (WebCore::SVGSMILElement::svgAttributeChanged):
1094
1095 2012-05-12  Max Feil  <mfeil@rim.com>
1096
1097         [BlackBerry] Allow the platform media player to determine the media element's paused/playing status
1098         https://bugs.webkit.org/show_bug.cgi?id=86235
1099
1100         Reviewed by George Staikos.
1101
1102         The platform media player needs to know when the HTMLMediaElement
1103         is not paused. This is to address problems when switching
1104         source element, which causes the destruction of the old
1105         MediaPlayerPrivate object and construction of a new one. The
1106         new one must resume playing ASAP if the old one was playing.
1107
1108         Test: media/media-continues-playing-after-replace-source.html
1109
1110         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1111         (WebCore::MediaPlayerPrivate::isElementPaused):
1112         (WebCore):
1113         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1114         (MediaPlayerPrivate):
1115
1116 2012-05-12  Yury Semikhatsky  <yurys@chromium.org>
1117
1118         Web Inspector: heap profiler should allow revealing an element which is logged to the console
1119         https://bugs.webkit.org/show_bug.cgi?id=86204
1120
1121         Reviewed by Pavel Feldman.
1122
1123         JS objects in the console have context menu item that allows to reveal them in a heap snapshot view.
1124
1125         * English.lproj/localizedStrings.js:
1126         * inspector/front-end/ConsoleMessage.js:
1127         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1128         * inspector/front-end/ContextMenu.js:
1129         (WebInspector.ContextMenu.prototype.isEmpty):
1130         * inspector/front-end/DataGrid.js:
1131         (WebInspector.DataGridNode.prototype._detach):
1132         (WebInspector.DataGridNode.prototype.wasDetached):
1133         * inspector/front-end/HeapSnapshot.js:
1134         (WebInspector.HeapSnapshot.prototype.nodeClassName):
1135         (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
1136         * inspector/front-end/HeapSnapshotDataGrids.js:
1137         (WebInspector.HeapSnapshotSortableDataGrid):
1138         (WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightObjectByHeapSnapshotId):
1139         (WebInspector.HeapSnapshotSortableDataGrid.prototype.highlightNode):
1140         (WebInspector.HeapSnapshotSortableDataGrid.prototype.nodeWasDetached):
1141         (WebInspector.HeapSnapshotSortableDataGrid.prototype._clearCurrentHighlight):
1142         (WebInspector.HeapSnapshotViewportDataGrid):
1143         (WebInspector.HeapSnapshotViewportDataGrid.prototype.highlightNode):
1144         (WebInspector.HeapSnapshotViewportDataGrid.prototype._onScroll):
1145         (WebInspector.HeapSnapshotConstructorsDataGrid):
1146         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.highlightObjectByHeapSnapshotId.didGetClassName):
1147         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.highlightObjectByHeapSnapshotId):
1148         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
1149         * inspector/front-end/HeapSnapshotGridNodes.js:
1150         (WebInspector.HeapSnapshotGridNode.prototype.wasDetached):
1151         (WebInspector.HeapSnapshotConstructorNode.prototype.revealNodeBySnapshotObjectId):
1152         (WebInspector.HeapSnapshotConstructorNode.prototype.revealNodeBySnapshotObjectId.didPopulateChildren):
1153         * inspector/front-end/HeapSnapshotProxy.js:
1154         (WebInspector.HeapSnapshotProxy.prototype.nodeClassName):
1155         (WebInspector.HeapSnapshotProviderProxy.prototype.nodePosition):
1156         * inspector/front-end/ObjectPropertiesSection.js:
1157         (WebInspector.ObjectPropertiesSection.ContextMenuProvider):
1158         (WebInspector.ObjectPropertiesSection.ContextMenuProvider.prototype.populateContextMenu):
1159         (WebInspector.ObjectPropertiesSection.addContextMenuProvider):
1160         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
1161         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
1162         * inspector/front-end/ProfilesPanel.js:
1163         (WebInspector.ProfilesPanel.prototype.showObject):
1164         (WebInspector.RevealInHeapSnapshotContextMenuProvider):
1165         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.revealInSummaryView):
1166         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
1167         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
1168         * inspector/front-end/profilesPanel.css:
1169         (.highlighted-row):
1170         (@-webkit-keyframes row_highlight):
1171         (to):
1172
1173 2012-05-12  Ilya Tikhonovsky  <loislo@chromium.org>
1174
1175         Web Inspector: move recording button state control out of addProfileHeader.
1176         https://bugs.webkit.org/show_bug.cgi?id=86293
1177
1178         Reviewed by Yury Semikhatsky.
1179
1180         * inspector/front-end/CSSSelectorProfileView.js:
1181         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
1182         * inspector/front-end/HeapSnapshotView.js:
1183         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
1184         * inspector/front-end/ProfileView.js:
1185         (WebInspector.CPUProfileType.prototype.buttonClicked):
1186         * inspector/front-end/ProfilesPanel.js:
1187         (WebInspector.ProfileType.prototype.buttonClicked):
1188         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
1189         (WebInspector.ProfilesPanel.prototype.addProfileHeader):
1190         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
1191         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot.done):
1192         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
1193
1194 2012-05-12  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1195
1196         Web Inspector: Turn HelpScreen to be View.
1197         https://bugs.webkit.org/show_bug.cgi?id=85711
1198
1199         Reviewed by Yury Semikhatsky.
1200
1201         Motivation: for further UI changes, HelpSceen needs to be View.
1202         It is planned to combine Settings Screen and Shortcuts Screen in one
1203         tabbed screen.
1204         Bonus: "helpScreen.css" will be lazy-loaded.
1205         Additional changes: move settingsScreen logic out of inspector.js
1206
1207         UI change, no test required.
1208
1209         * WebCore.gypi: Change "helpScreen.css" file group.
1210         * inspector/front-end/HelpScreen.js: 
1211         (WebInspector.HelpScreen): Turned to View subclass.
1212         (WebInspector.HelpScreen.prototype.showModal): Remove "onHide" param
1213         (WebInspector.HelpScreen.prototype.hide): Ditto.
1214         (WebInspector.HelpScreen.prototype._onKeyDown): Adopt View members.
1215         (WebInspector.HelpScreen.prototype._onBlur): Ditto.
1216         * inspector/front-end/SettingsScreen.js: Adopt new workflow.
1217         (WebInspector.SettingsScreen): Put onHide function to member
1218         (WebInspector.SettingsScreen.prototype.willHide): Invoke onHide
1219         (WebInspector.SettingsController): Mediator pattern - this class
1220         takes care of status bar button - settings screen relationship.
1221         (WebInspector.SettingsController.prototype.get statusBarItem):
1222         Getter fot representative element.
1223         (WebInspector.SettingsController.prototype._buttonClicked):
1224         Classifies user action.
1225         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
1226         Cleanup after settings screen is hidden.
1227         (WebInspector.SettingsController.prototype._showSettingsScreen):
1228         Presents settings screen.
1229         (WebInspector.SettingsController.prototype._hideSettingsScreen):
1230         Hides settings screen.
1231         * inspector/front-end/ShortcutsScreen.js: Adopt new workflow.
1232         (WebInspector.ShortcutsScreen.prototype.wasShown): Lazy initialization.
1233         * inspector/front-end/WorkerManager.js: Adopt new workflow.
1234         (WebInspector.WorkerManager.prototype._disconnectedFromWorker): Ditto.
1235         (WebInspector.WorkerTerminatedScreen.prototype.willHide): Ditto.
1236         * inspector/front-end/helpScreen.css: Fix spacing.
1237         (.help-window-outer): Ditto.
1238         (body.compact .help-window-outer): Ditto.
1239         (body.compact .help-window-main): Ditto.
1240         (body.compact .help-window-caption): Ditto.
1241         (.help-content): Ditto.
1242         (body.compact .help-content): Ditto.
1243         (.help-content select): Ditto.
1244         * inspector/front-end/inspector.html: Ditto.
1245         * inspector/front-end/inspector.js: Ditto.
1246         (WebInspector._createGlobalStatusBarItems): Create SettingsController.
1247         (WebInspector.documentKeyDown): Adopt new workflow.
1248
1249 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
1250
1251         Web Inspector: add tab context menu
1252         https://bugs.webkit.org/show_bug.cgi?id=86292
1253
1254         Reviewed by Yury Semikhatsky.
1255
1256         This tab context menu will have "Close", "Close Others" and "Close All".
1257
1258         * English.lproj/localizedStrings.js:
1259         * inspector/front-end/TabbedPane.js:
1260         (WebInspector.TabbedPane.prototype.closeOtherTabs):
1261         (WebInspector.TabbedPaneTab.prototype._createTabElement):
1262         (WebInspector.TabbedPaneTab.prototype._tabClicked):
1263         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
1264         (WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeOthers):
1265         (WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeAll):
1266
1267 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
1268
1269         Web Inspector: make call frame selector pane focusable, allow Up / Down to select current call frame.
1270         https://bugs.webkit.org/show_bug.cgi?id=86291
1271
1272         Reviewed by Yury Semikhatsky.
1273
1274         This change makes sidebar section focusable, introduces key listeners for Up and Down.
1275
1276         * inspector/front-end/CallStackSidebarPane.js:
1277         (WebInspector.CallStackSidebarPane):
1278         (WebInspector.CallStackSidebarPane.prototype.setStatus):
1279         (WebInspector.CallStackSidebarPane.prototype._treeKeyDown):
1280         * inspector/front-end/UISourceCode.js:
1281         * inspector/front-end/scriptsPanel.css:
1282         (#scripts-debug-toolbar img):
1283
1284 2012-05-12  Ilya Tikhonovsky  <loislo@chromium.org>
1285
1286         Web Inspector: unreviewed one line fix.
1287
1288         * inspector/front-end/HeapSnapshotProxy.js:
1289         (WebInspector.HeapSnapshotWorker):
1290
1291 2012-05-12  Ilya Tikhonovsky  <loislo@chromium.org>
1292
1293         Web Inspector: Load context menu item has to be shown for all Profiles panel.
1294         https://bugs.webkit.org/show_bug.cgi?id=86290
1295
1296         Reviewed by Pavel Feldman.
1297
1298         * inspector/front-end/ProfilesPanel.js:
1299         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
1300
1301 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
1302
1303         Web Inspector: shrink SourceFrame editing API to two methods (was 4).
1304         https://bugs.webkit.org/show_bug.cgi?id=86288
1305
1306         Reviewed by Yury Semikhatsky.
1307
1308         Used specific workflow in two SourceFrame implementations.
1309
1310         * inspector/front-end/JavaScriptSourceFrame.js:
1311         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
1312         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
1313         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
1314         * inspector/front-end/ResourceView.js:
1315         (WebInspector.EditableResourceSourceFrame.prototype.commitEditing.callbackWrapper):
1316         (WebInspector.EditableResourceSourceFrame.prototype.commitEditing):
1317         * inspector/front-end/SourceFrame.js:
1318         (WebInspector.SourceFrame.prototype.commitEditing):
1319         (WebInspector.TextViewerDelegateForSourceFrame.prototype.commitEditing):
1320
1321 2012-05-11  Yury Semikhatsky  <yurys@chromium.org>
1322
1323         Web Inspector: allow showing arbitrary range of nodes in heap snapshot view
1324         https://bugs.webkit.org/show_bug.cgi?id=86230
1325
1326         Reviewed by Pavel Feldman.
1327
1328         Test: inspector/profiler/heap-snapshot-summary-show-ranges.html
1329
1330         It was only possible to expand heap snapshot node children sequentially starting
1331         from the first child and then pressing either "Show next X items" or "Show all X items".
1332         This change makes it possible to show any range of children.
1333
1334         * inspector/front-end/HeapSnapshot.js:
1335         (WebInspector.HeapSnapshotFilteredOrderedIterator):
1336         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
1337         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAll):
1338         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAndRewind):
1339         (WebInspector.HeapSnapshotEdgesProvider.prototype.serializeItem):
1340         (WebInspector.HeapSnapshotNodesProvider.prototype.serializeItem):
1341         * inspector/front-end/HeapSnapshotGridNodes.js:
1342         (WebInspector.HeapSnapshotGridNode):
1343         (WebInspector.HeapSnapshotGridNode.prototype._populate.sorted):
1344         (WebInspector.HeapSnapshotGridNode.prototype._populate):
1345         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.serializeNextChunk):
1346         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.insertRetrievedChild):
1347         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.insertShowMoreButton):
1348         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.childrenRetrieved):
1349         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
1350         (WebInspector.HeapSnapshotGridNode.prototype._saveChildren):
1351         (WebInspector.HeapSnapshotGridNode.prototype.sort.afterSort):
1352         (WebInspector.HeapSnapshotGridNode.prototype.sort):
1353         (WebInspector.HeapSnapshotDiffNodesProvider):
1354         (WebInspector.HeapSnapshotDiffNodesProvider.prototype.serializeItemsRange):
1355         (WebInspector.HeapSnapshotDiffNodesProvider.prototype.serializeItemsRange.didReceiveDeletedItems):
1356         (WebInspector.HeapSnapshotDiffNodesProvider.prototype.serializeItemsRange.didReceiveAddedItems):
1357         (WebInspector.HeapSnapshotDiffNodesProvider.prototype.sortAndRewind):
1358         * inspector/front-end/HeapSnapshotProxy.js:
1359         (WebInspector.HeapSnapshotWorker):
1360         (WebInspector.HeapSnapshotProviderProxy.prototype.serializeItemsRange):
1361         * inspector/front-end/ShowMoreDataGridNode.js:
1362         (WebInspector.ShowMoreDataGridNode):
1363         (WebInspector.ShowMoreDataGridNode.prototype._showNextChunk):
1364         (WebInspector.ShowMoreDataGridNode.prototype._showAll):
1365         (WebInspector.ShowMoreDataGridNode.prototype._updateLabels):
1366         (WebInspector.ShowMoreDataGridNode.prototype.setStartPosition):
1367         (WebInspector.ShowMoreDataGridNode.prototype.setEndPosition):
1368         * inspector/front-end/utilities.js:
1369
1370 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
1371
1372         Web Inspector: remove UISourceCode.id since it is no longer used.
1373         https://bugs.webkit.org/show_bug.cgi?id=86286
1374
1375         Reviewed by Vsevolod Vlasov.
1376
1377         We are now using breakpointStorageId property for breakpoint persistence.
1378
1379         * inspector/front-end/BreakpointManager.js:
1380         (WebInspector.BreakpointManager):
1381         (WebInspector.BreakpointManager.prototype._debuggerReset):
1382         (WebInspector.BreakpointManager.prototype._uiLocationAdded.get if):
1383         (WebInspector.BreakpointManager.prototype._uiLocationAdded):
1384         (WebInspector.BreakpointManager.prototype._uiLocationRemoved.get if):
1385         (WebInspector.BreakpointManager.prototype._uiLocationRemoved):
1386         * inspector/front-end/CompilerScriptMapping.js:
1387         * inspector/front-end/JavaScriptSource.js:
1388         (WebInspector.JavaScriptSource):
1389         * inspector/front-end/RawSourceCode.js:
1390         (WebInspector.RawSourceCode):
1391         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
1392         (WebInspector.RawSourceCode.prototype._createUISourceCode):
1393         (WebInspector.RawSourceCode.prototype._finishedLoading):
1394         * inspector/front-end/SnippetsModel.js:
1395         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1396         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1397         * inspector/front-end/UISourceCode.js:
1398         (WebInspector.UISourceCode):
1399
1400 2012-05-12  Pavel Feldman  <pfeldman@chromium.org>
1401
1402         Web Inspector: merge MainScriptMapping into DebuggerPresentationModel; move other classes into their own files.
1403         https://bugs.webkit.org/show_bug.cgi?id=86285
1404
1405         Reviewed by Yury Semikhatsky.
1406
1407         The only purpose of the debugger presentation model now is to manage mappings. Merging main script mapping back into it.
1408         Other classes defined in that class are moved out into their own files.
1409
1410         * WebCore.gypi:
1411         * WebCore.vcproj/WebCore.vcproj:
1412         * inspector/compile-front-end.py:
1413         * inspector/front-end/DebuggerPresentationModel.js:
1414         (WebInspector.DebuggerPresentationModel):
1415         (WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
1416         (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
1417         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
1418         * inspector/front-end/DebuggerResourceBinding.js: Added.
1419         (WebInspector.DebuggerResourceBinding):
1420         (WebInspector.DebuggerResourceBinding.canEditScriptSource):
1421         (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
1422         (WebInspector.DebuggerResourceBinding.setScriptSource):
1423         (WebInspector.DebuggerResourceBinding.prototype.canSetContent):
1424         (WebInspector.DebuggerResourceBinding.prototype.setContent):
1425         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
1426         (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
1427         * inspector/front-end/PresentationConsoleMessageHelper.js: Added.
1428         (WebInspector.PresentationConsoleMessageHelper):
1429         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
1430         (WebInspector.PresentationConsoleMessageHelper.prototype._addConsoleMessageToScript):
1431         (WebInspector.PresentationConsoleMessageHelper.prototype._addPendingConsoleMessage):
1432         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
1433         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleCleared):
1434         (WebInspector.PresentationConsoleMessageHelper.prototype._debuggerReset):
1435         (WebInspector.PresentationConsoleMessage):
1436         (WebInspector.PresentationConsoleMessage.prototype._updateLocation):
1437         (WebInspector.PresentationConsoleMessage.prototype.get lineNumber):
1438         (WebInspector.PresentationConsoleMessage.prototype.dispose):
1439         * inspector/front-end/ScriptMapping.js:
1440         * inspector/front-end/ScriptsPanel.js:
1441         * inspector/front-end/WebKit.qrc:
1442         * inspector/front-end/inspector.html:
1443         * inspector/front-end/inspector.js:
1444
1445 2012-05-12  Mike West  <mkwst@chromium.org>
1446
1447         Cleanup ContentSecurityPolicy naming conventions.
1448         https://bugs.webkit.org/show_bug.cgi?id=86282
1449
1450         Reviewed by Adam Barth.
1451
1452         Two tiny changes:
1453         
1454         1. `reportURI` and `reportURL` are both used within the CSP
1455            implementation. We should standardize on `reportURI` to match the
1456            spec.
1457         
1458         2. Renames `ContentSecurityPolicy::allowConnectFromSource` to
1459            `ContentSecurityPolicy::allowConnectToSource` for clarity.
1460
1461         No new tests, as there's no user-visible change.
1462
1463         * Modules/websockets/WebSocket.cpp:
1464         (WebCore::WebSocket::connect):
1465         * page/ContentSecurityPolicy.cpp:
1466         (CSPDirectiveList):
1467         (WebCore::CSPDirectiveList::reportViolation):
1468         (WebCore::CSPDirectiveList::allowConnectToSource):
1469         (WebCore::CSPDirectiveList::parseReportURI):
1470         (WebCore::CSPDirectiveList::addDirective):
1471         (WebCore::ContentSecurityPolicy::allowConnectToSource):
1472         * page/ContentSecurityPolicy.h:
1473         * page/EventSource.cpp:
1474         (WebCore::EventSource::create):
1475         * xml/XMLHttpRequest.cpp:
1476         (WebCore::XMLHttpRequest::open):
1477
1478 2012-05-11  Mark Pilgrim  <pilgrim@chromium.org>
1479
1480         [Chromium] Call isLinkVisited directly
1481         https://bugs.webkit.org/show_bug.cgi?id=85412
1482
1483         Reviewed by Adam Barth.
1484
1485         Part of a refactoring series. See tracking bug 82948.
1486
1487         * CMakeLists.txt:
1488         * GNUmakefile.list.am:
1489         * Target.pri:
1490         * WebCore.gypi:
1491         * WebCore.vcproj/WebCore.vcproj:
1492         * WebCore.xcodeproj/project.pbxproj:
1493         * page/PageGroup.cpp:
1494         (WebCore::PageGroup::isLinkVisited):
1495         * platform/VisitedLinks.cpp: Added.
1496         (WebCore):
1497         (WebCore::VisitedLinks::isLinkVisited):
1498         * platform/VisitedLinks.h: Added.
1499         (WebCore):
1500         (VisitedLinks):
1501         * platform/chromium/PlatformSupport.h:
1502         * platform/chromium/VisitedLinksChromium.cpp: Added.
1503         (WebCore):
1504         (WebCore::VisitedLinks::isLinkVisited):
1505
1506 2012-05-11  Martin Robinson  <mrobinson@igalia.com>
1507
1508         [TextureMapper] Tiles are not created for large textures
1509         https://bugs.webkit.org/show_bug.cgi?id=86245
1510
1511         Reviewed by Noam Rosenthal.
1512
1513         No new tests. This will not produce any observable behavior changes,
1514         unless run on a machine with a small texture size limit.
1515
1516         The maxTextureSize() method on TextureMapperGL was missing a "const"
1517         keyword, meaning that it was not properly overriding the version in
1518         the abstract base class (TextureMapper). This patch adds the const
1519         modifier and cleans up the list of override methods in the two 
1520         TextureMapper sublcasses, adding the OVERRIDE macro for compilers that
1521         support it and removing a couple unused methods.
1522
1523         * platform/graphics/texmap/TextureMapperGL.cpp:
1524         * platform/graphics/texmap/TextureMapperGL.h:
1525         (WebCore::TextureMapperGL::create):
1526         * platform/graphics/texmap/TextureMapperImageBuffer.h:
1527         (TextureMapperImageBuffer):
1528
1529 2012-05-11  Adrienne Walker  <enne@google.com>
1530
1531         [chromium] Prevent deadlock on CCVideoLayerImpl destruction
1532         https://bugs.webkit.org/show_bug.cgi?id=86258
1533
1534         Reviewed by James Robinson.
1535
1536         ~CCVideoLayerImpl had a common deadlock issue where if it got
1537         destroyed before WebMediaPlayerClientImpl, it would take a lock,
1538         call WebMediaPlayerClientImpl::setVideoFrameProviderClient(0),
1539         which in turn would call CCVideoLayerImpl::stopUsingProvider(),
1540         which would try to take the same lock and would deadlock.
1541
1542         CCVideoLayerImpl is only created and destroyed during tree
1543         synchronization in a commit or during synchronous compositor thread
1544         destruction. In either case, the main thread is blocked, and so no
1545         lock needs to be taken at all.
1546
1547         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1548         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
1549         (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
1550         (WebCore::CCVideoLayerImpl::stopUsingProvider):
1551
1552 2012-05-11  Jeffrey Pfau  <jpfau@apple.com>
1553
1554         REGRESSION (r114170): Scroll areas in nested frames improperly placed when tiled drawing is enabled
1555         https://bugs.webkit.org/show_bug.cgi?id=86239
1556
1557         Reviewed by Anders Carlsson.
1558
1559         Fixes a regression introduced in r114170 by recursively adding positions of parent frames to placement of nested frame scroll areas.
1560
1561         Manual tests: ManualTests/scrollable-positioned-frame.html
1562                       ManualTests/scrollable-positioned-nested-frame.html
1563
1564         * page/scrolling/ScrollingCoordinator.cpp:
1565         (WebCore::computeNonFastScrollableRegion):
1566         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
1567
1568 2012-05-11  Beth Dakin  <bdakin@apple.com>
1569
1570         https://bugs.webkit.org/show_bug.cgi?id=86278
1571         Composited layers should only run the overlay scrollbars painting pass 
1572         if necessary
1573
1574         Reviewed by Dan Bernstein.
1575
1576         It's not enough that the rootLayer has dirty scrollbars; we also have 
1577         to actually be doing the overlay scrollbars painting pass to skip the 
1578         early return.
1579         * rendering/RenderLayer.cpp:
1580         (WebCore::RenderLayer::paintLayer):
1581
1582 2012-05-11  Anders Carlsson  <andersca@apple.com>
1583
1584         Comcast website displays bottom of page when loaded
1585         https://bugs.webkit.org/show_bug.cgi?id=86277
1586         <rdar://problem/11426887>
1587
1588         Reviewed by Beth Dakin.
1589
1590         There were two bugs here. The first bug was that FrameView::setScrollPosition didn't end up calling into the scrolling coordinator
1591         to update the scroll position. The second bug was that ScrollingTreeNodeMac::setScrollPosition didn't constrain the scroll position
1592         to the edge of the page.
1593
1594         * page/FrameView.cpp:
1595         (WebCore::FrameView::setScrollPosition):
1596         Call requestScrollPositionUpdate.
1597
1598         * page/scrolling/ScrollingTree.cpp:
1599         * page/scrolling/ScrollingTree.h:
1600         Remove setMainFrameScrollPosition, it is not called by anyone.
1601
1602         * page/scrolling/mac/ScrollingTreeNodeMac.h:
1603         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
1604         (WebCore::ScrollingTreeNodeMac::setScrollPosition):
1605         Clamp to the page size and call setScrollPositionWithoutContentEdgeConstraints.
1606
1607         (WebCore::ScrollingTreeNodeMac::setScrollPositionWithoutContentEdgeConstraints):
1608         Update the scroll layer position and call back to the main thread.
1609
1610         (WebCore::ScrollingTreeNodeMac::scrollBy):
1611         Call setScrollPosition.
1612
1613         (WebCore::ScrollingTreeNodeMac::scrollByWithoutContentEdgeConstraints):
1614         Call setScrollPositionWithoutContentEdgeConstraints.
1615
1616 2012-05-11  Gavin Barraclough  <barraclough@apple.com>
1617
1618         Introduce PropertyName class
1619         https://bugs.webkit.org/show_bug.cgi?id=86241
1620
1621         Reviewed by Geoff Garen.
1622
1623         Replace 'const Identifier&' arguments to functions accessing object properties with a new 'PropertyName' type.
1624         This change paves the way to allow for properties keyed by values that are not Identifiers.
1625
1626         This change is largely a mechanical find & replace.
1627         It also changes JSFunction's constructor to take a UString& instead of an Identifier&
1628         (since in some cases we can no longer guarantee that we'lll have an Identifier), and
1629         unifies Identifier's methods to obtain array indices onto PropertyName.
1630
1631         The new PropertyName class retains the ability to support .impl() and .ustring(), but
1632         in a future patch we may need to rework this, since not all PropertyNames should be
1633         equal based on their string representation.
1634
1635         * WebCore.exp.in:
1636         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1637         (WebCore::cssPropertyIDForJSCSSPropertyName):
1638         (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate):
1639         (WebCore::JSCSSStyleDeclaration::getOwnPropertyDescriptorDelegate):
1640         (WebCore::JSCSSStyleDeclaration::putDelegate):
1641         * bindings/js/JSDOMBinding.cpp:
1642         (WebCore::findAtomicString):
1643         (WebCore::objectToStringFunctionGetter):
1644         * bindings/js/JSDOMBinding.h:
1645         (WebCore):
1646         (WebCore::propertyNameToString):
1647         (WebCore::propertyNameToAtomicString):
1648         * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
1649         (WebCore::JSDOMMimeTypeArray::canGetItemsForName):
1650         (WebCore::JSDOMMimeTypeArray::nameGetter):
1651         * bindings/js/JSDOMPluginArrayCustom.cpp:
1652         (WebCore::JSDOMPluginArray::canGetItemsForName):
1653         (WebCore::JSDOMPluginArray::nameGetter):
1654         * bindings/js/JSDOMPluginCustom.cpp:
1655         (WebCore::JSDOMPlugin::canGetItemsForName):
1656         (WebCore::JSDOMPlugin::nameGetter):
1657         * bindings/js/JSDOMStringMapCustom.cpp:
1658         (WebCore::JSDOMStringMap::canGetItemsForName):
1659         (WebCore::JSDOMStringMap::nameGetter):
1660         (WebCore::JSDOMStringMap::deleteProperty):
1661         (WebCore::JSDOMStringMap::putDelegate):
1662         * bindings/js/JSDOMWindowCustom.cpp:
1663         (WebCore::nonCachingStaticFunctionGetter):
1664         (WebCore::childFrameGetter):
1665         (WebCore::namedItemGetter):
1666         (WebCore::JSDOMWindow::getOwnPropertySlot):
1667         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
1668         (WebCore::JSDOMWindow::put):
1669         (WebCore::JSDOMWindow::deleteProperty):
1670         (WebCore::JSDOMWindow::defineOwnProperty):
1671         * bindings/js/JSDOMWindowShell.cpp:
1672         (WebCore::JSDOMWindowShell::getOwnPropertySlot):
1673         (WebCore::JSDOMWindowShell::getOwnPropertyDescriptor):
1674         (WebCore::JSDOMWindowShell::put):
1675         (WebCore::JSDOMWindowShell::putDirectVirtual):
1676         (WebCore::JSDOMWindowShell::defineOwnProperty):
1677         (WebCore::JSDOMWindowShell::deleteProperty):
1678         * bindings/js/JSDOMWindowShell.h:
1679         (JSDOMWindowShell):
1680         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1681         (WebCore::getNamedItems):
1682         (WebCore::callHTMLAllCollection):
1683         (WebCore::JSHTMLAllCollection::canGetItemsForName):
1684         (WebCore::JSHTMLAllCollection::nameGetter):
1685         (WebCore::JSHTMLAllCollection::item):
1686         * bindings/js/JSHTMLAppletElementCustom.cpp:
1687         (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate):
1688         (WebCore::JSHTMLAppletElement::getOwnPropertyDescriptorDelegate):
1689         (WebCore::JSHTMLAppletElement::putDelegate):
1690         * bindings/js/JSHTMLCollectionCustom.cpp:
1691         (WebCore::getNamedItems):
1692         (WebCore::JSHTMLCollection::canGetItemsForName):
1693         (WebCore::JSHTMLCollection::nameGetter):
1694         * bindings/js/JSHTMLDocumentCustom.cpp:
1695         (WebCore::JSHTMLDocument::canGetItemsForName):
1696         (WebCore::JSHTMLDocument::nameGetter):
1697         * bindings/js/JSHTMLEmbedElementCustom.cpp:
1698         (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate):
1699         (WebCore::JSHTMLEmbedElement::getOwnPropertyDescriptorDelegate):
1700         (WebCore::JSHTMLEmbedElement::putDelegate):
1701         * bindings/js/JSHTMLFormElementCustom.cpp:
1702         (WebCore::JSHTMLFormElement::canGetItemsForName):
1703         (WebCore::JSHTMLFormElement::nameGetter):
1704         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
1705         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
1706         (WebCore::JSHTMLFrameSetElement::nameGetter):
1707         * bindings/js/JSHTMLObjectElementCustom.cpp:
1708         (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate):
1709         (WebCore::JSHTMLObjectElement::getOwnPropertyDescriptorDelegate):
1710         (WebCore::JSHTMLObjectElement::putDelegate):
1711         * bindings/js/JSHistoryCustom.cpp:
1712         (WebCore::nonCachingStaticBackFunctionGetter):
1713         (WebCore::nonCachingStaticForwardFunctionGetter):
1714         (WebCore::nonCachingStaticGoFunctionGetter):
1715         (WebCore::JSHistory::getOwnPropertySlotDelegate):
1716         (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
1717         (WebCore::JSHistory::putDelegate):
1718         (WebCore::JSHistory::deleteProperty):
1719         * bindings/js/JSLocationCustom.cpp:
1720         (WebCore::nonCachingStaticReplaceFunctionGetter):
1721         (WebCore::nonCachingStaticReloadFunctionGetter):
1722         (WebCore::nonCachingStaticAssignFunctionGetter):
1723         (WebCore::JSLocation::getOwnPropertySlotDelegate):
1724         (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
1725         (WebCore::JSLocation::putDelegate):
1726         (WebCore::JSLocation::deleteProperty):
1727         (WebCore::JSLocation::defineOwnProperty):
1728         (WebCore::JSLocationPrototype::putDelegate):
1729         (WebCore::JSLocationPrototype::defineOwnProperty):
1730         * bindings/js/JSNamedNodeMapCustom.cpp:
1731         (WebCore::JSNamedNodeMap::canGetItemsForName):
1732         (WebCore::JSNamedNodeMap::nameGetter):
1733         * bindings/js/JSNodeListCustom.cpp:
1734         (WebCore::JSNodeList::canGetItemsForName):
1735         (WebCore::JSNodeList::nameGetter):
1736         * bindings/js/JSPluginElementFunctions.cpp:
1737         (WebCore::runtimeObjectPropertyGetter):
1738         (WebCore::runtimeObjectCustomGetOwnPropertySlot):
1739         (WebCore::runtimeObjectCustomGetOwnPropertyDescriptor):
1740         (WebCore::runtimeObjectCustomPut):
1741         * bindings/js/JSPluginElementFunctions.h:
1742         (WebCore):
1743         * bindings/js/JSStorageCustom.cpp:
1744         (WebCore::JSStorage::canGetItemsForName):
1745         (WebCore::JSStorage::nameGetter):
1746         (WebCore::JSStorage::deleteProperty):
1747         (WebCore::JSStorage::putDelegate):
1748         * bindings/js/JSStyleSheetListCustom.cpp:
1749         (WebCore::JSStyleSheetList::canGetItemsForName):
1750         (WebCore::JSStyleSheetList::nameGetter):
1751         * bindings/js/JSWorkerContextCustom.cpp:
1752         (WebCore::JSWorkerContext::getOwnPropertySlotDelegate):
1753         (WebCore::JSWorkerContext::getOwnPropertyDescriptorDelegate):
1754         * bindings/scripts/CodeGeneratorJS.pm:
1755         (GenerateGetOwnPropertySlotBody):
1756         (GenerateGetOwnPropertyDescriptorBody):
1757         (GenerateHeader):
1758         (GenerateImplementation):
1759         (GenerateConstructorDeclaration):
1760         (GenerateConstructorDefinition):
1761         * bridge/c/c_class.cpp:
1762         (JSC::Bindings::CClass::methodsNamed):
1763         (JSC::Bindings::CClass::fieldNamed):
1764         * bridge/c/c_class.h:
1765         (CClass):
1766         * bridge/c/c_instance.cpp:
1767         (JSC::Bindings::CRuntimeMethod::create):
1768         (JSC::Bindings::CRuntimeMethod::finishCreation):
1769         (JSC::Bindings::CInstance::getMethod):
1770         * bridge/c/c_instance.h:
1771         (CInstance):
1772         * bridge/jni/jsc/JavaClassJSC.cpp:
1773         (JavaClass::methodsNamed):
1774         (JavaClass::fieldNamed):
1775         * bridge/jni/jsc/JavaClassJSC.h:
1776         (JavaClass):
1777         * bridge/jni/jsc/JavaInstanceJSC.cpp:
1778         (JavaRuntimeMethod::create):
1779         (JavaRuntimeMethod::finishCreation):
1780         * bridge/jni/jsc/JavaInstanceJSC.h:
1781         (JavaInstance):
1782         * bridge/jsc/BridgeJSC.h:
1783         (Class):
1784         (JSC::Bindings::Class::fallbackObject):
1785         (JSC::Bindings::Instance::setValueOfUndefinedField):
1786         (Instance):
1787         (JSC::Bindings::Instance::getOwnPropertySlot):
1788         (JSC::Bindings::Instance::getOwnPropertyDescriptor):
1789         (JSC::Bindings::Instance::put):
1790         * bridge/objc/objc_class.h:
1791         (ObjcClass):
1792         * bridge/objc/objc_class.mm:
1793         (JSC::Bindings::ObjcClass::methodsNamed):
1794         (JSC::Bindings::ObjcClass::fieldNamed):
1795         (JSC::Bindings::ObjcClass::fallbackObject):
1796         * bridge/objc/objc_instance.h:
1797         (ObjcInstance):
1798         * bridge/objc/objc_instance.mm:
1799         (ObjCRuntimeMethod::create):
1800         (ObjCRuntimeMethod::finishCreation):
1801         (ObjcInstance::setValueOfUndefinedField):
1802         (ObjcInstance::getValueOfUndefinedField):
1803         * bridge/objc/objc_runtime.h:
1804         (JSC::Bindings::ObjcFallbackObjectImp::create):
1805         (JSC::Bindings::ObjcFallbackObjectImp::propertyName):
1806         (ObjcFallbackObjectImp):
1807         * bridge/objc/objc_runtime.mm:
1808         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1809         (JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertySlot):
1810         (JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertyDescriptor):
1811         (JSC::Bindings::ObjcFallbackObjectImp::put):
1812         (JSC::Bindings::callObjCFallbackObject):
1813         (JSC::Bindings::ObjcFallbackObjectImp::deleteProperty):
1814         (JSC::Bindings::ObjcFallbackObjectImp::defaultValue):
1815         * bridge/runtime_array.cpp:
1816         (JSC::RuntimeArray::lengthGetter):
1817         (JSC::RuntimeArray::getOwnPropertySlot):
1818         (JSC::RuntimeArray::getOwnPropertyDescriptor):
1819         (JSC::RuntimeArray::put):
1820         (JSC::RuntimeArray::deleteProperty):
1821         * bridge/runtime_array.h:
1822         (RuntimeArray):
1823         * bridge/runtime_method.cpp:
1824         (JSC::RuntimeMethod::finishCreation):
1825         (JSC::RuntimeMethod::lengthGetter):
1826         (JSC::RuntimeMethod::getOwnPropertySlot):
1827         (JSC::RuntimeMethod::getOwnPropertyDescriptor):
1828         * bridge/runtime_method.h:
1829         (JSC::RuntimeMethod::create):
1830         (RuntimeMethod):
1831         * bridge/runtime_object.cpp:
1832         (JSC::Bindings::RuntimeObject::fallbackObjectGetter):
1833         (JSC::Bindings::RuntimeObject::fieldGetter):
1834         (JSC::Bindings::RuntimeObject::methodGetter):
1835         (JSC::Bindings::RuntimeObject::getOwnPropertySlot):
1836         (JSC::Bindings::RuntimeObject::getOwnPropertyDescriptor):
1837         (JSC::Bindings::RuntimeObject::put):
1838         (JSC::Bindings::RuntimeObject::deleteProperty):
1839         * bridge/runtime_object.h:
1840         (RuntimeObject):
1841
1842 2012-05-11  David Barton  <dbarton@mathscribe.com>
1843
1844         use after free in WebCore::RenderObject::document
1845         https://bugs.webkit.org/show_bug.cgi?id=84891
1846
1847         Reviewed by Julien Chaffraix.
1848
1849         Change RenderMathMLFenced::addChild() to use the beforeChild parameter. When beforeChild
1850         is 0, insert child renderers before the closing fence, which might not be the same as
1851         this->lastChild(), e.g. possibly due to anonymous blocks or generated content.
1852
1853         Tests: mathml/presentation/mfenced-add-child1-expected.html
1854                mathml/presentation/mfenced-add-child1.html
1855                mathml/presentation/mfenced-add-child2-expected.html
1856                mathml/presentation/mfenced-add-child2.html
1857
1858         * rendering/mathml/RenderMathMLFenced.cpp:
1859         (WebCore::RenderMathMLFenced::RenderMathMLFenced):
1860         (WebCore::RenderMathMLFenced::makeFences):
1861         (WebCore::RenderMathMLFenced::addChild):
1862         * rendering/mathml/RenderMathMLFenced.h:
1863         (RenderMathMLFenced):
1864
1865 2012-05-11  Anders Carlsson  <andersca@apple.com>
1866
1867         Can't scroll on webpage after following links from Blogger
1868         https://bugs.webkit.org/show_bug.cgi?id=86274
1869         <rdar://problem/11431352>
1870
1871         Reviewed by Beth Dakin.
1872
1873         When committing a new scroll layer, make sure to reset the scroll position.
1874
1875         * page/scrolling/ScrollingTree.cpp:
1876         (WebCore::ScrollingTree::commitNewTreeState):
1877
1878 2012-05-11  Martin Robinson  <mrobinson@igalia.com>
1879
1880         [TextureMapper] Support drawing debug borders
1881         https://bugs.webkit.org/show_bug.cgi?id=86237
1882
1883         Reviewed by Noam Rosenthal.
1884
1885         No new tests. This is the implementation of an interactive debugging
1886         feature.
1887
1888         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1889         (WebCore::GraphicsLayer::create): Moved this to the top of the file to
1890         reduce contention for the coveted last spot in the file. This also
1891         follows the pattern used in many WebCore files of having the factories
1892         at the top.
1893         (WebCore::GraphicsLayerTextureMapper::setDebugBorder): Added this
1894         plumbing.
1895         * platform/graphics/texmap/GraphicsLayerTextureMapper.h: Added
1896         plumbing.
1897         * platform/graphics/texmap/TextureMapper.h: Ditto.
1898         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1899         (WebCore::TextureMapperTiledBackingStore::TextureMapperTiledBackingStore):
1900         Initialize the new member.
1901         (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper): When
1902         debug borders are enabled call the new drawBorder method on the TM.
1903         (WebCore::TextureMapperTiledBackingStore::setDebugBorder): Added this
1904         plumbing.
1905         * platform/graphics/texmap/TextureMapperBackingStore.h: Added plumbing
1906         and members to store debug border states. This is necessary because of
1907         the when painting there is no handle on the GraphicsLayers.
1908         * platform/graphics/texmap/TextureMapperGL.cpp:
1909         (WebCore::TextureMapperGL::drawRect): Factored out the common bits of
1910         drawTexture and drawBorder into this helper.
1911         (WebCore::TextureMapperGL::drawBorder): Added this method, which works
1912         very similarly to drawTexture, but uses a different shader program and
1913         must also set the line width and color.
1914         (WebCore::TextureMapperGL::drawTexture): Factored out the bits that
1915         are shared with drawRect.
1916         * platform/graphics/texmap/TextureMapperGL.h:
1917         (TextureMapperGL): Added the new method declarations.
1918         * platform/graphics/texmap/TextureMapperImageBuffer.h:
1919         (WebCore::TextureMapperImageBuffer::drawBorder): Added an empty
1920         implementation. Later we can add an implementation for the ImageBuffer
1921         TM.
1922         * platform/graphics/texmap/TextureMapperLayer.cpp:
1923         (WebCore::TextureMapperLayer::updateBackingStore): When updating the
1924         backing store send the debug border information through.
1925         (WebCore::TextureMapperLayer::syncCompositingStateSelf): When updating
1926         the layer state, also update the debug indicators. This is required to
1927         initialize the debug border values for the layer.
1928         (WebCore::TextureMapperLayer::setDebugBorder): Added this plumbing.
1929         * platform/graphics/texmap/TextureMapperLayer.h: Ditto.
1930         * platform/graphics/texmap/TextureMapperShaderManager.cpp: Added a
1931         solid color shader that doesn't care about texture coordinates or
1932         opacity values.
1933         (WebCore::TextureMapperShaderManager::solidColorProgram): Added. This
1934         is a shorter getter for the solid color program that doesn't require
1935         casting from the caller.
1936         (WebCore::TextureMapperShaderManager::getShaderProgram): Added support
1937         for the solid color program.
1938         (WebCore::TextureMapperShaderProgramSolidColor::create): Added.
1939         (WebCore::TextureMapperShaderProgramSolidColor::TextureMapperShaderProgramSolidColor):
1940         Ditto.
1941         (WebCore::TextureMapperShaderProgramSolidColor::vertexShaderSource):
1942         Ditto.
1943         (WebCore::TextureMapperShaderProgramSolidColor::fragmentShaderSource):
1944         Ditto.
1945         * platform/graphics/texmap/TextureMapperShaderManager.h:
1946         (TextureMapperShaderProgramSolidColor): Added.
1947         (WebCore::TextureMapperShaderProgramSolidColor::colorVariable): Added.
1948
1949 2012-05-10  Timothy Hatcher  <timothy@apple.com>
1950
1951         Instrument timer function calls so they show up in the Web Inspector Timeline.
1952
1953         https://webkit.org/b/86173
1954
1955         Reviewed by Pavel Feldman.
1956
1957         Test: inspector/timeline/timeline-timer.html
1958
1959         * bindings/js/ScheduledAction.cpp:
1960         (WebCore::ScheduledAction::executeFunctionInContext): Wrap the call with JSMainThreadExecState::instrumentFunctionCall
1961         and InspectorInstrumentation::didCallFunction.
1962
1963 2012-05-11  Nico Weber  <thakis@chromium.org>
1964
1965         [chromium/mac] Let libwebkit.dylib link in Debug/components build
1966         https://bugs.webkit.org/show_bug.cgi?id=86244
1967
1968         Reviewed by James Robinson.
1969
1970         In static builds, this was not needed because the targets depending on
1971         'webkit' already link in QuartzCore. In Release components builds, it wasn't
1972         needed because they are built with -dead_strip, which stripped the referencing
1973         code.
1974
1975         * WebCore.gyp/WebCore.gyp:
1976
1977 2012-05-11  Sheriff Bot  <webkit.review.bot@gmail.com>
1978
1979         Unreviewed, rolling out r116802.
1980         http://trac.webkit.org/changeset/116802
1981         https://bugs.webkit.org/show_bug.cgi?id=86260
1982
1983         This patch causes compiling error to chromium builds
1984         (Requested by jianli_ on #webkit).
1985
1986         * WebCore.gypi:
1987
1988 2012-05-11  Ryosuke Niwa  <rniwa@webkit.org>
1989
1990         Regression fix after r116798.
1991
1992         We need to return true for the html element in the design mode
1993         in which case parentNode() is editable and is not a body element.
1994
1995         * dom/Node.cpp:
1996         (WebCore::Node::isRootEditableElement):
1997
1998 2012-05-11  James Robinson  <jamesr@chromium.org>
1999
2000         [chromium] Move implementation of WebCore::GraphicsContext3D and related from WebKit/chromium/src to WebCore/platform/chromium/support
2001         https://bugs.webkit.org/show_bug.cgi?id=86257
2002
2003         Reviewed by Adam Barth.
2004
2005         The WebCore platform interfaces GraphicsContext3D and Extensions3DChromium are implemented in chromium on top of
2006         the Platform interface WebGraphicsContext3D. This moves the implementation support code from WebKit/chromium/src
2007         to WebCore/platform/chromium/support, which avoids having code in WebKit/ implementing WebCore interfaces and
2008         allows code in WebCore/platform to use this support code directly where appropriate.
2009
2010         Refactor only, no new functionality or tests.
2011
2012         * WebCore.gypi:
2013         * platform/chromium/support/Extensions3DChromium.cpp: Renamed from Source/WebKit/chromium/src/Extensions3DChromium.cpp.
2014         (WebCore):
2015         (WebCore::Extensions3DChromium::Extensions3DChromium):
2016         (WebCore::Extensions3DChromium::~Extensions3DChromium):
2017         (WebCore::Extensions3DChromium::supports):
2018         (WebCore::Extensions3DChromium::ensureEnabled):
2019         (WebCore::Extensions3DChromium::isEnabled):
2020         (WebCore::Extensions3DChromium::getGraphicsResetStatusARB):
2021         (WebCore::Extensions3DChromium::blitFramebuffer):
2022         (WebCore::Extensions3DChromium::renderbufferStorageMultisample):
2023         (WebCore::Extensions3DChromium::postSubBufferCHROMIUM):
2024         (WebCore::Extensions3DChromium::mapBufferSubDataCHROMIUM):
2025         (WebCore::Extensions3DChromium::unmapBufferSubDataCHROMIUM):
2026         (WebCore::Extensions3DChromium::mapTexSubImage2DCHROMIUM):
2027         (WebCore::Extensions3DChromium::unmapTexSubImage2DCHROMIUM):
2028         (WebCore::Extensions3DChromium::setVisibilityCHROMIUM):
2029         (WebCore::Extensions3DChromium::discardFramebufferEXT):
2030         (WebCore::Extensions3DChromium::ensureFramebufferCHROMIUM):
2031         (WebCore::Extensions3DChromium::setGpuMemoryAllocationChangedCallbackCHROMIUM):
2032         (WebCore::Extensions3DChromium::createVertexArrayOES):
2033         (WebCore::Extensions3DChromium::deleteVertexArrayOES):
2034         (WebCore::Extensions3DChromium::isVertexArrayOES):
2035         (WebCore::Extensions3DChromium::bindVertexArrayOES):
2036         (WebCore::Extensions3DChromium::getTranslatedShaderSourceANGLE):
2037         (WebCore::Extensions3DChromium::setSwapBuffersCompleteCallbackCHROMIUM):
2038         (WebCore::Extensions3DChromium::rateLimitOffscreenContextCHROMIUM):
2039         (WebCore::Extensions3DChromium::paintFramebufferToCanvas):
2040         (WebCore::Extensions3DChromium::texImageIOSurface2DCHROMIUM):
2041         (WebCore::Extensions3DChromium::texStorage2DEXT):
2042         (WebCore::Extensions3DChromium::createQueryEXT):
2043         (WebCore::Extensions3DChromium::deleteQueryEXT):
2044         (WebCore::Extensions3DChromium::isQueryEXT):
2045         (WebCore::Extensions3DChromium::beginQueryEXT):
2046         (WebCore::Extensions3DChromium::endQueryEXT):
2047         (WebCore::Extensions3DChromium::getQueryivEXT):
2048         (WebCore::Extensions3DChromium::getQueryObjectuivEXT):
2049         * platform/chromium/support/GraphicsContext3DChromium.cpp: Renamed from Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp.
2050         (WebCore):
2051         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2052         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
2053         (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromWebContext):
2054         (WebCore::GraphicsContext3DPrivate::extractWebGraphicsContext3D):
2055         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
2056         (WebCore::GraphicsContext3DPrivate::platformTexture):
2057         (GrMemoryAllocationChangedCallback):
2058         (WebCore::GrMemoryAllocationChangedCallback::GrMemoryAllocationChangedCallback):
2059         (WebCore::GrMemoryAllocationChangedCallback::onGpuMemoryAllocationChanged):
2060         (WebCore::GraphicsContext3DPrivate::grContext):
2061         (WebCore::GraphicsContext3DPrivate::prepareTexture):
2062         (WebCore::GraphicsContext3DPrivate::markContextChanged):
2063         (WebCore::GraphicsContext3DPrivate::markLayerComposited):
2064         (WebCore::GraphicsContext3DPrivate::layerComposited):
2065         (WebCore::GraphicsContext3DPrivate::paintFramebufferToCanvas):
2066         (WebCore::GraphicsContext3DPrivate::paintRenderingResultsToCanvas):
2067         (WebCore::GraphicsContext3DPrivate::paintCompositedResultsToCanvas):
2068         (WebCore::GraphicsContext3DPrivate::paintRenderingResultsToImageData):
2069         (WebCore::GraphicsContext3DPrivate::reshape):
2070         (WebCore::GraphicsContext3DPrivate::getInternalFramebufferSize):
2071         (WebCore::GraphicsContext3DPrivate::isContextLost):
2072         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
2073         (WebCore::GraphicsContext3DPrivate::bindAttribLocation):
2074         (WebCore::GraphicsContext3DPrivate::bufferData):
2075         (WebCore::GraphicsContext3DPrivate::bufferSubData):
2076         (WebCore::GraphicsContext3DPrivate::getActiveAttrib):
2077         (WebCore::GraphicsContext3DPrivate::getActiveUniform):
2078         (WebCore::GraphicsContext3DPrivate::getAttribLocation):
2079         (WebCore::GraphicsContext3DPrivate::getContextAttributes):
2080         (WebCore::GraphicsContext3DPrivate::getProgramInfoLog):
2081         (WebCore::GraphicsContext3DPrivate::getShaderInfoLog):
2082         (WebCore::GraphicsContext3DPrivate::getShaderSource):
2083         (WebCore::GraphicsContext3DPrivate::getString):
2084         (WebCore::GraphicsContext3DPrivate::getUniformLocation):
2085         (WebCore::GraphicsContext3DPrivate::shaderSource):
2086         (WebCore::GraphicsContext3DPrivate::texImage2D):
2087         (WebCore::GraphicsContext3DPrivate::texSubImage2D):
2088         (WebCore::GraphicsContext3DPrivate::uniform1fv):
2089         (WebCore::GraphicsContext3DPrivate::uniform1iv):
2090         (WebCore::GraphicsContext3DPrivate::uniform2fv):
2091         (WebCore::GraphicsContext3DPrivate::uniform2iv):
2092         (WebCore::GraphicsContext3DPrivate::uniform3fv):
2093         (WebCore::GraphicsContext3DPrivate::uniform3iv):
2094         (WebCore::GraphicsContext3DPrivate::uniform4fv):
2095         (WebCore::GraphicsContext3DPrivate::uniform4iv):
2096         (WebCore::GraphicsContext3DPrivate::uniformMatrix2fv):
2097         (WebCore::GraphicsContext3DPrivate::uniformMatrix3fv):
2098         (WebCore::GraphicsContext3DPrivate::uniformMatrix4fv):
2099         (WebCore::GraphicsContext3DPrivate::getExtensions):
2100         (WebCore::GraphicsContext3DPrivate::isResourceSafe):
2101         (WebCore::GraphicsContext3DPrivate::initializeExtensions):
2102         (WebCore::GraphicsContext3DPrivate::supportsExtension):
2103         (WebCore::GraphicsContext3DPrivate::ensureExtensionEnabled):
2104         (WebCore::GraphicsContext3DPrivate::isExtensionEnabled):
2105         (WebCore::GraphicsContext3D::GraphicsContext3D):
2106         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2107         (WebCore::GraphicsContext3D::create):
2108         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
2109         (WebCore::GraphicsContext3D::platformTexture):
2110         (WebCore::GraphicsContext3D::grContext):
2111         (WebCore::GraphicsContext3D::prepareTexture):
2112         (WebCore::GraphicsContext3D::getInternalFramebufferSize):
2113         (WebCore::GraphicsContext3D::isResourceSafe):
2114         (WebCore::GraphicsContext3D::platformLayer):
2115         (WebCore::GraphicsContext3D::layerComposited):
2116         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
2117         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
2118         (GraphicsContextLostCallbackAdapter):
2119         (WebCore::GraphicsContextLostCallbackAdapter::~GraphicsContextLostCallbackAdapter):
2120         (WebCore::GraphicsContextLostCallbackAdapter::GraphicsContextLostCallbackAdapter):
2121         (WebCore::GraphicsContextLostCallbackAdapter::onContextLost):
2122         (WebCore::GraphicsContextLostCallbackAdapter::create):
2123         (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
2124         (GraphicsErrorMessageCallbackAdapter):
2125         (WebCore::GraphicsErrorMessageCallbackAdapter::~GraphicsErrorMessageCallbackAdapter):
2126         (WebCore::GraphicsErrorMessageCallbackAdapter::GraphicsErrorMessageCallbackAdapter):
2127         (WebCore::GraphicsErrorMessageCallbackAdapter::onErrorMessage):
2128         (WebCore::GraphicsErrorMessageCallbackAdapter::create):
2129         (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
2130         (WebCore::GraphicsContext3D::isGLES2Compliant):
2131         (GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
2132         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::~GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
2133         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::GraphicsContext3DSwapBuffersCompleteCallbackAdapter):
2134         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::onSwapBuffersComplete):
2135         (WebCore::GraphicsContext3DSwapBuffersCompleteCallbackAdapter::create):
2136         (WebCore::GraphicsContext3DPrivate::setSwapBuffersCompleteCallbackCHROMIUM):
2137         (GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
2138         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
2139         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::~GraphicsContext3DMemoryAllocationChangedCallbackAdapter):
2140         (WebCore::GraphicsContext3DMemoryAllocationChangedCallbackAdapter::onMemoryAllocationChanged):
2141         (WebCore::GraphicsContext3DPrivate::setGpuMemoryAllocationChangedCallbackCHROMIUM):
2142         * platform/chromium/support/GraphicsContext3DPrivate.h: Renamed from Source/WebKit/chromium/src/GraphicsContext3DPrivate.h.
2143         (WebKit):
2144         (WebCore):
2145         (GraphicsContext3DPrivate):
2146
2147 2012-05-11  Keyar Hood  <keyar@chromium.org>
2148
2149         ImageSkia.cpp does not conform to style guidelines
2150         https://bugs.webkit.org/show_bug.cgi?id=86219
2151
2152         Reviewed by Stephen White.
2153
2154         No tests as this is purely style changees.
2155
2156         * platform/graphics/skia/ImageSkia.cpp:
2157         (WebCore::TransformDimensions):
2158         (WebCore::BitmapImage::draw):
2159         (WebCore::BitmapImageSingleFrameSkia::draw):
2160
2161 2012-05-11  Tim Horton  <timothy_horton@apple.com>
2162
2163         Unreviewed Chromium build fix after http://trac.webkit.org/changeset/116799.
2164
2165         * rendering/RenderLayerBacking.cpp:
2166
2167 2012-05-11  Terry Anderson  <tdanderson@chromium.org>
2168
2169         [chromium] Compute the best target node on a GestureTap event
2170         https://bugs.webkit.org/show_bug.cgi?id=85101
2171
2172         Reviewed by Adam Barth.
2173
2174         Will be using the tests in the touchadjustment/ directory.
2175
2176         * WebCore.gypi:
2177         Include TouchAdjustment.* files.
2178
2179 2012-05-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2180
2181         Unreviewed, rolling out r116498.
2182         http://trac.webkit.org/changeset/116498
2183         https://bugs.webkit.org/show_bug.cgi?id=86251
2184
2185         Causes crashes in major sites and security issues (Requested
2186         by schenney on #webkit).
2187
2188         * rendering/svg/RenderSVGInline.cpp:
2189         (WebCore::RenderSVGInline::addChild):
2190         * rendering/svg/RenderSVGInlineText.cpp:
2191         (WebCore::RenderSVGInlineText::willBeDestroyed):
2192         (WebCore::RenderSVGInlineText::setTextInternal):
2193         (WebCore::RenderSVGInlineText::styleDidChange):
2194         * rendering/svg/RenderSVGText.cpp:
2195         (WebCore::recursiveUpdateLayoutAttributes):
2196         (WebCore::RenderSVGText::layoutAttributesChanged):
2197         (WebCore::RenderSVGText::layoutAttributesWillBeDestroyed):
2198         (WebCore::RenderSVGText::invalidateTextPositioningElements):
2199         (WebCore::recursiveUpdateScaledFont):
2200         (WebCore::RenderSVGText::layout):
2201         (WebCore::RenderSVGText::addChild):
2202         (WebCore::recursiveCollectLayoutAttributes):
2203         (WebCore::RenderSVGText::rebuildLayoutAttributes):
2204         (WebCore):
2205         * rendering/svg/RenderSVGText.h:
2206         (RenderSVGText):
2207         (WebCore::RenderSVGText::layoutAttributes):
2208         * rendering/svg/SVGRootInlineBox.cpp:
2209         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
2210         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
2211         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributes):
2212
2213 2012-05-11  Tim Horton  <timothy_horton@apple.com>
2214
2215         FrameView->m_lastPaintTime is not updated in the tiled drawing case
2216         https://bugs.webkit.org/show_bug.cgi?id=86246
2217         <rdar://problem/11248475>
2218
2219         Reviewed by Simon Fraser.
2220
2221         Update FrameView's m_lastPaintTime from RenderLayerBacking::paintContents
2222         if the RenderLayerBacking is backing a tiled drawing layer.
2223
2224         In the future we might want to consider updating m_lastPaintTime when any
2225         compositing layer is painted into, but this change gets us on par with the
2226         non-tiled-drawing case as it stands now.
2227
2228         No new tests.
2229
2230         * page/FrameView.h:
2231         (WebCore::FrameView::setLastPaintTime):
2232         * rendering/RenderLayerBacking.cpp:
2233         (WebCore::RenderLayerBacking::paintContents):
2234
2235 2012-05-11  Shezan Baig  <shezbaig.wk@gmail.com>
2236
2237         Add helper function for node()->rootEditableElement() == node()
2238         https://bugs.webkit.org/show_bug.cgi?id=86217
2239
2240         Reviewed by Ryosuke Niwa.
2241
2242         Added Node::isRootEditableElement and updated existing code that did
2243         (node->rootEditableElement() == node) to use isRootEditableElement
2244         instead.
2245
2246         No new tests. No change in behavior.
2247
2248         * dom/Node.cpp:
2249         (WebCore::Node::isRootEditableElement):
2250         (WebCore):
2251         * dom/Node.h:
2252         (Node):
2253         Added new helper function.
2254
2255         * dom/Document.cpp:
2256         (WebCore::Document::setFocusedNode):
2257         * dom/Element.cpp:
2258         (WebCore::Element::updateFocusAppearance):
2259         * editing/CompositeEditCommand.cpp:
2260         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
2261         * editing/DeleteSelectionCommand.cpp:
2262         (WebCore::DeleteSelectionCommand::removeNode):
2263         * editing/InsertParagraphSeparatorCommand.cpp:
2264         (WebCore::InsertParagraphSeparatorCommand::doApply):
2265         * page/FocusController.cpp:
2266         (WebCore::FocusController::setFocusedNode):
2267         * rendering/RenderBlock.cpp:
2268         (WebCore::RenderBlock::hasLineIfEmpty):
2269         * rendering/RenderBlockLineLayout.cpp:
2270         (WebCore::RenderBlock::addOverflowFromInlineChildren):
2271         Updates to existing code to use the new helper function.
2272
2273 2012-05-11  Shawn Singh  <shawnsingh@chromium.org>
2274
2275         [chromium] Create WebTransformationMatrix interface for chromium platform
2276         https://bugs.webkit.org/show_bug.cgi?id=86049
2277
2278         Reviewed by James Robinson.
2279
2280         This patch creates a WebTransformationMatrix interface. It will
2281         remain unused at the moment, until (a) unit tests are created
2282         and (b) when we are ready to make a brief transition of all other
2283         chromium code to use it.
2284
2285         * WebCore.gypi:
2286         * platform/chromium/support/WebTransformationMatrix.cpp: Added.
2287         (WebKit):
2288         (WebKit::WebTransformationMatrix::WebTransformationMatrix):
2289         (WebKit::WebTransformationMatrix::operator=):
2290         (WebKit::WebTransformationMatrix::operator==):
2291         (WebKit::WebTransformationMatrix::operator*):
2292         (WebKit::WebTransformationMatrix::inverse):
2293         (WebKit::WebTransformationMatrix::to2dTransform):
2294         (WebKit::WebTransformationMatrix::multiply):
2295         (WebKit::WebTransformationMatrix::makeIdentity):
2296         (WebKit::WebTransformationMatrix::translate):
2297         (WebKit::WebTransformationMatrix::translate3d):
2298         (WebKit::WebTransformationMatrix::translateRight3d):
2299         (WebKit::WebTransformationMatrix::scale):
2300         (WebKit::WebTransformationMatrix::scaleNonUniform):
2301         (WebKit::WebTransformationMatrix::scale3d):
2302         (WebKit::WebTransformationMatrix::rotate):
2303         (WebKit::WebTransformationMatrix::rotate3d):
2304         (WebKit::WebTransformationMatrix::skewX):
2305         (WebKit::WebTransformationMatrix::skewY):
2306         (WebKit::WebTransformationMatrix::applyPerspective):
2307         (WebKit::WebTransformationMatrix::blend):
2308         (WebKit::WebTransformationMatrix::hasPerspective):
2309         (WebKit::WebTransformationMatrix::isInvertible):
2310         (WebKit::WebTransformationMatrix::isBackFaceVisible):
2311         (WebKit::WebTransformationMatrix::isIdentity):
2312         (WebKit::WebTransformationMatrix::isIdentityOrTranslation):
2313         (WebKit::WebTransformationMatrix::isIntegerTranslation):
2314         (WebKit::WebTransformationMatrix::m11):
2315         (WebKit::WebTransformationMatrix::setM11):
2316         (WebKit::WebTransformationMatrix::m12):
2317         (WebKit::WebTransformationMatrix::setM12):
2318         (WebKit::WebTransformationMatrix::m13):
2319         (WebKit::WebTransformationMatrix::setM13):
2320         (WebKit::WebTransformationMatrix::m14):
2321         (WebKit::WebTransformationMatrix::setM14):
2322         (WebKit::WebTransformationMatrix::m21):
2323         (WebKit::WebTransformationMatrix::setM21):
2324         (WebKit::WebTransformationMatrix::m22):
2325         (WebKit::WebTransformationMatrix::setM22):
2326         (WebKit::WebTransformationMatrix::m23):
2327         (WebKit::WebTransformationMatrix::setM23):
2328         (WebKit::WebTransformationMatrix::m24):
2329         (WebKit::WebTransformationMatrix::setM24):
2330         (WebKit::WebTransformationMatrix::m31):
2331         (WebKit::WebTransformationMatrix::setM31):
2332         (WebKit::WebTransformationMatrix::m32):
2333         (WebKit::WebTransformationMatrix::setM32):
2334         (WebKit::WebTransformationMatrix::m33):
2335         (WebKit::WebTransformationMatrix::setM33):
2336         (WebKit::WebTransformationMatrix::m34):
2337         (WebKit::WebTransformationMatrix::setM34):
2338         (WebKit::WebTransformationMatrix::m41):
2339         (WebKit::WebTransformationMatrix::setM41):
2340         (WebKit::WebTransformationMatrix::m42):
2341         (WebKit::WebTransformationMatrix::setM42):
2342         (WebKit::WebTransformationMatrix::m43):
2343         (WebKit::WebTransformationMatrix::setM43):
2344         (WebKit::WebTransformationMatrix::m44):
2345         (WebKit::WebTransformationMatrix::setM44):
2346         (WebKit::WebTransformationMatrix::a):
2347         (WebKit::WebTransformationMatrix::setA):
2348         (WebKit::WebTransformationMatrix::b):
2349         (WebKit::WebTransformationMatrix::setB):
2350         (WebKit::WebTransformationMatrix::c):
2351         (WebKit::WebTransformationMatrix::setC):
2352         (WebKit::WebTransformationMatrix::d):
2353         (WebKit::WebTransformationMatrix::setD):
2354         (WebKit::WebTransformationMatrix::e):
2355         (WebKit::WebTransformationMatrix::setE):
2356         (WebKit::WebTransformationMatrix::f):
2357         (WebKit::WebTransformationMatrix::setF):
2358         (WebKit::WebTransformationMatrix::toWebCoreTransform):
2359         (WebKit::WebTransformationMatrix::mapRect):
2360         (WebKit::WebTransformationMatrix::mapPoint):
2361         (WebKit::WebTransformationMatrix::mapQuad):
2362         (WebKit::WebTransformationMatrix::projectPoint):
2363
2364 2012-05-11  Alexandru Chiculita  <achicu@adobe.com>
2365
2366         [CSS Shaders] Make CSS Shaders render to texture framebuffers
2367         https://bugs.webkit.org/show_bug.cgi?id=85113
2368
2369         Reviewed by Dean Jackson.
2370
2371         Added the required members to store the framebuffer, the texture and the depth buffer. Also removed the m_drawingBuffer
2372         because context->readPixels doesn't require one anymore.
2373
2374         ReadPixels is not flipping the result, so I've also removed the flipping projection matrix that was specific only to Chromium.
2375
2376         Added a test to check that colors are not switched and the resulting image is not mirrored.
2377
2378         Test: css3/filters/custom/effect-color-check.html
2379
2380         * platform/graphics/filters/FECustomFilter.cpp:
2381         (WebCore::FECustomFilter::FECustomFilter):
2382         (WebCore::FECustomFilter::~FECustomFilter):
2383         (WebCore):
2384         (WebCore::FECustomFilter::deleteRenderBuffers):
2385         (WebCore::FECustomFilter::platformApplySoftware):
2386         (WebCore::FECustomFilter::initializeContext):
2387         (WebCore::FECustomFilter::resizeContext):
2388         (WebCore::FECustomFilter::bindProgramAndBuffers):
2389         * platform/graphics/filters/FECustomFilter.h:
2390         (FECustomFilter):
2391
2392 2012-05-11  Anders Carlsson  <andersca@apple.com>
2393
2394         REGRESSION(r116687): [Chromium] plugins/embed-attributes-style.html shows a garbled string
2395         https://bugs.webkit.org/show_bug.cgi?id=86170
2396
2397         Reviewed by Andreas Kling.
2398
2399         The string we are passing to the TextRun constructor needs to stay alive for longer so revert back to the old
2400         behavior where we store it as a member variable.
2401
2402         * rendering/RenderEmbeddedObject.cpp:
2403         (WebCore::unavailablePluginReplacementText):
2404         (WebCore):
2405         (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason):
2406         (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
2407         * rendering/RenderEmbeddedObject.h:
2408         (RenderEmbeddedObject):
2409
2410 2012-05-11  Simon Fraser  <simon.fraser@apple.com>
2411
2412         CVDisplayLink keeps running after a single requestAnimationFrame
2413         https://bugs.webkit.org/show_bug.cgi?id=86174
2414         
2415         Reviewed by Sam Weinig.
2416         
2417         A DisplayRefreshMonitor would keep its CVDisplayLink alive for as long
2418         as it had clients, and the client is the ScriptedAnimationController, which
2419         lives on the document. So a single requestAnimationFrame call would kick
2420         off a CVDisplayLink which lived until the document was destroyed.
2421         
2422         Fix by having the DisplayRefreshMonitor kill itself if the CVDisplayLink
2423         fires for 10 times with no scheduled callbacks (to avoid creation/deletion
2424         thrash on pages that call requestAnimationFrames with short setTimeouts,
2425         as some do).
2426         
2427         Use a HashMap in DisplayRefreshMonitorManager for the set of DisplayRefreshMonitor,
2428         with the displayID as the key (using UnsignedWithZeroKeyHashTraits<uint64_t> since
2429         we want to allow for 0 to be a valid displayID).
2430         
2431         Use a HashSet in DisplayRefreshMonitor for the client set, so that we don't have to
2432         worry about adding clients twice.
2433         
2434         Also fix a possible crash when the only client of a DisplayRefreshMonitor
2435         was removed from inside the callback by making DisplayRefreshMonitor ref-counted,
2436         with a protector.
2437
2438         Test: fast/animation/request-animation-frame-detach-element2.html
2439
2440         * platform/graphics/DisplayRefreshMonitor.cpp:
2441         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor): Initialize m_unscheduledFireCount
2442         (WebCore::DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread): Renamed
2443         from refreshDisplayOnMainThread, since it doesn't just refresh the display.
2444         (WebCore::DisplayRefreshMonitor::addClient): No longer inline.
2445         (WebCore::DisplayRefreshMonitor::removeClient): No longer inline.
2446         (WebCore::DisplayRefreshMonitor::displayDidRefresh): Keep track of m_unscheduledFireCount,
2447         which we used to kill this monitor if it has been idle for a while.
2448         Use a RefPtr<DisplayRefreshMonitor> to prevent deletion while running the callback.
2449         Copy the clients to a vector to protect against mutating the set while enumerating it.
2450         Notify the DisplayRefreshMonitorManager when we're done, so that it can decide
2451         to delete inactive monitors.
2452         
2453         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient): find or allocate
2454         a DisplayRefreshMonitor for a given client.
2455         (WebCore::DisplayRefreshMonitorManager::registerClient): Simplified by use of HashMap.
2456         (WebCore::DisplayRefreshMonitorManager::unregisterClient): Ditto.
2457         (WebCore::DisplayRefreshMonitorManager::scheduleAnimation): Ditto. Uses
2458         ensureMonitorForClient() since an earlier inactive monitor may have been removed.
2459         (WebCore::DisplayRefreshMonitorManager::displayDidRefresh): Remove inactive
2460         monitors.
2461         * platform/graphics/DisplayRefreshMonitor.h: Make DisplayRefreshMonitor
2462         ref-counted, to make it easier to avoid deletion while it's on the stack.
2463         (WebCore::DisplayRefreshMonitor::create):
2464         (DisplayRefreshMonitor):
2465         (WebCore::DisplayRefreshMonitor::shouldBeTerminated):
2466         (DisplayRefreshMonitorManager):
2467         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Attempt to
2468         keep things building.
2469         (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
2470         (WebCore::DisplayRefreshMonitor::displayLinkFired):
2471         to give the manager a chance to kill this monitor.
2472         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
2473         (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
2474         (WebCore::DisplayRefreshMonitor::displayLinkFired): Don't bail early
2475         if not scheduled; we want to call handleDisplayRefreshedNotificationOnMainThread(),
2476
2477 2012-05-11  Pavel Feldman  <pfeldman@chromium.org>
2478
2479         Web Inspector: move canEditScriptSource and setScriptSource from DebuggerPresentationModel into ResourceBinding
2480         https://bugs.webkit.org/show_bug.cgi?id=86234
2481
2482         Reviewed by Vsevolod Vlasov.
2483
2484         Simple move refactoring.
2485
2486         * inspector/front-end/DebuggerPresentationModel.js:
2487         (WebInspector.DebuggerPresentationModel):
2488         (WebInspector.DebuggerResourceBinding):
2489         (WebInspector.DebuggerResourceBinding.canEditScriptSource):
2490         (WebInspector.DebuggerResourceBinding.setScriptSource.didEditScriptSource):
2491         (WebInspector.DebuggerResourceBinding.setScriptSource):
2492         (WebInspector.DebuggerResourceBinding.prototype.canSetContent):
2493         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
2494         (WebInspector.DebuggerResourceBinding.prototype._setContentWithInitialContent):
2495         * inspector/front-end/JavaScriptSourceFrame.js:
2496         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
2497         (WebInspector.JavaScriptSourceFrame.prototype.editContent):
2498
2499 2012-05-11  Julien Chaffraix  <jchaffraix@webkit.org>
2500
2501         Remove RenderLayer::m_scrollOverflow
2502         https://bugs.webkit.org/show_bug.cgi?id=86226
2503
2504         Reviewed by Simon Fraser.
2505
2506         No expected change in behavior.
2507
2508         * rendering/RenderLayer.cpp:
2509         (WebCore::RenderLayer::computeScrollDimensions):
2510         Added 2 local variables to compute the left / top scrollable overflows.
2511
2512         * rendering/RenderLayer.h:
2513         (WebCore::RenderLayer::scrolledContentOffset):
2514         Returned m_scrollOffset directly as this is what the old code was doing by adding
2515         m_scrollOrigin then adding m_scrollOverflow (which was set to -m_scrollOrigin in
2516         computeScrollDimensions).
2517
2518         (RenderLayer::m_scrollOffset): Improved the comment about what m_scrollOffset is.
2519
2520 2012-05-11  Pavel Feldman  <pfeldman@chromium.org>
2521
2522         Web Inspector: extract PresentationConsoleMessageHelper from DebuggerPresentationModel.
2523         https://bugs.webkit.org/show_bug.cgi?id=86229
2524
2525         Reviewed by Vsevolod Vlasov.
2526
2527         This change also starts tracking messages along with the live location changes.
2528
2529         Tested with script-formatter-console.html.
2530
2531         * inspector/front-end/BreakpointManager.js:
2532         * inspector/front-end/DebuggerPresentationModel.js:
2533         (WebInspector.DebuggerPresentationModel):
2534         (WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
2535         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2536         (WebInspector.PresentationConsoleMessageHelper):
2537         (WebInspector.PresentationConsoleMessageHelper.prototype._addPendingConsoleMessage):
2538         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
2539         (WebInspector.PresentationConsoleMessageHelper.prototype._debuggerReset):
2540         (WebInspector.PresentationConsoleMessage):
2541         * inspector/front-end/JavaScriptSourceFrame.js:
2542         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
2543         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
2544         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
2545
2546 2012-05-11  Emil A Eklund  <eae@chromium.org>
2547
2548         Simplify FloatingObject by removing unnecessary convenience methods.
2549         https://bugs.webkit.org/show_bug.cgi?id=86163
2550
2551         Reviewed by Eric Seidel.
2552
2553         Simplify the pixel snapping in FloatingObject by getting rid of a bunch
2554         of convenience methods.
2555
2556         No new tests, no change in functionality.
2557
2558         * rendering/RenderBlock.cpp:
2559         (WebCore::RenderBlock::addOverhangingFloats):
2560         (WebCore::RenderBlock::addIntrudingFloats):
2561         (WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject):
2562         (WebCore::::string):
2563         * rendering/RenderBlock.h:
2564         (FloatingObject):
2565         (WebCore::RenderBlock::pixelSnappedLogicalTopForFloat):
2566         (WebCore::RenderBlock::pixelSnappedLogicalBottomForFloat):
2567         (WebCore::RenderBlock::pixelSnappedLogicalLeftForFloat):
2568         (WebCore::RenderBlock::pixelSnappedLogicalRightForFloat):
2569
2570 2012-05-11  Ian Vollick  <vollick@chromium.org>
2571
2572         [chromium] Ensure that animations continue to run when transform-style is changed
2573         https://bugs.webkit.org/show_bug.cgi?id=83283
2574
2575         Make sure that we transfer animations when changing layers due to a transform-style change.
2576         Unit tested in GraphicsLayerChromiumTest.updateLayerPreserves3DWithAnimations
2577
2578         Reviewed by James Robinson.
2579
2580         Test: animations/change-transform-style-during-animation.html
2581
2582         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2583         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
2584         * platform/graphics/chromium/LayerChromium.cpp:
2585         (WebCore::LayerChromium::setLayerAnimationController):
2586         (WebCore::LayerChromium::releaseLayerAnimationController):
2587         (WebCore):
2588         (WebCore::LayerChromium::notifyAnimationStarted):
2589         * platform/graphics/chromium/LayerChromium.h:
2590         (LayerChromium):
2591         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2592         (WebCore::CCLayerAnimationController::CCLayerAnimationController):
2593         (WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
2594         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
2595         (WebCore::CCLayerAnimationController::setClient):
2596         (WebCore):
2597         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2598         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
2599         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2600         (CCLayerAnimationController):
2601         (WebCore::CCLayerAnimationController::setForceSync):
2602
2603 2012-05-11  Tommy Widenflycht  <tommyw@google.com>
2604
2605         MediaStream API: Fix a reference counting issue in UserMediaRequest
2606         https://bugs.webkit.org/show_bug.cgi?id=86210
2607
2608         Reviewed by Abhishek Arya.
2609
2610         When contextDestroyed() is called on UserMediaRequest it does a callback to the
2611         page client. If the receiving code clears their stored copy the UserMediaRequest
2612         object is destroyed in the middle of the call.
2613
2614         Currently only testable manually against chrome, preferably with asan turned on.
2615         I have added a manual test that verifies the fix, but I have started work
2616         to make DumpRenderTree able to test this and many other things. The first patch is here:
2617         https://bugs.webkit.org/show_bug.cgi?id=86215
2618
2619         * Modules/mediastream/UserMediaRequest.cpp:
2620         (WebCore::UserMediaRequest::contextDestroyed):
2621
2622 2012-05-11  Min Qin  <qinmin@google.com>
2623
2624         split MediaPlayer::enterFullscreen into 2 seperate functions
2625         https://bugs.webkit.org/show_bug.cgi?id=86052
2626
2627         Reviewed by Adam Barth.
2628
2629         It is confusing that enterFullscreen returns a boolean while exitFullscreen does
2630         not do the same. And ios does not need the return value.
2631         So remove the return value on enterFullscreen and make a seperate canEnterFullscreen()
2632         function for android.
2633         No tests as there are no behavior change, just refactoring.
2634
2635         * platform/graphics/MediaPlayer.cpp:
2636         (WebCore::MediaPlayer::enterFullscreen):
2637         (WebCore):
2638         (WebCore::MediaPlayer::canEnterFullscreen):
2639         * platform/graphics/MediaPlayer.h:
2640         (MediaPlayer):
2641         * platform/graphics/MediaPlayerPrivate.h:
2642         (WebCore::MediaPlayerPrivateInterface::enterFullscreen):
2643         (MediaPlayerPrivateInterface):
2644         (WebCore::MediaPlayerPrivateInterface::canEnterFullscreen):
2645
2646 2012-05-11  Pavel Feldman  <pfeldman@chromium.org>
2647
2648         Web Inspector: move breakpoint manager from debuggerPresentationModel to WebInspector.
2649         https://bugs.webkit.org/show_bug.cgi?id=86220
2650
2651         Reviewed by Yury Semikhatsky.
2652
2653         Now that breakpoint manager does not depend on the source mapping instance from the
2654         debugger presentation model, it can be moved out.
2655
2656         * inspector/front-end/DebuggerPresentationModel.js:
2657         (WebInspector.DebuggerPresentationModel):
2658         * inspector/front-end/JavaScriptSource.js:
2659         (WebInspector.JavaScriptSource):
2660         (WebInspector.JavaScriptSource.prototype.setFormatted.didGetContent.didFormatContent):
2661         (WebInspector.JavaScriptSource.prototype.setFormatted.didGetContent):
2662         (WebInspector.JavaScriptSource.prototype.setFormatted):
2663         * inspector/front-end/JavaScriptSourceFrame.js:
2664         (WebInspector.JavaScriptSourceFrame):
2665         * inspector/front-end/ScriptsPanel.js:
2666         * inspector/front-end/inspector.js:
2667
2668 2012-05-11  David Reveman  <reveman@chromium.org>
2669
2670         [Chromium] Move instantiation of texture uploader to LayerRendererChromium.
2671         https://bugs.webkit.org/show_bug.cgi?id=85893
2672
2673         Reviewed by Adrienne Walker.
2674
2675         Move instantiation of texture uploader to LayerRendererChromium and
2676         allow CCProxy to decide between a throttled or unthrottled uploader
2677         using a flag passed to the LayerRendererChromium constructor.
2678
2679         * platform/graphics/chromium/LayerRendererChromium.cpp:
2680         (WebCore::LayerRendererChromium::create):
2681         (WebCore::LayerRendererChromium::LayerRendererChromium):
2682         (WebCore::LayerRendererChromium::initializeSharedObjects):
2683         * platform/graphics/chromium/LayerRendererChromium.h:
2684         (LayerRendererChromium):
2685         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2686         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2687         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2688         (CCLayerTreeHostImpl):
2689         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2690         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
2691         (WebCore::CCSingleThreadProxy::recreateContext):
2692         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2693         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
2694         (WebCore::CCThreadProxy::recreateContextOnImplThread):
2695
2696 2012-05-10  Pavel Feldman  <pfeldman@chromium.org>
2697
2698         Web Inspector: pass source mapping into UISourceCode's constructor; move formatting outside mapping.
2699         https://bugs.webkit.org/show_bug.cgi?id=86099
2700
2701         Reviewed by Vsevolod Vlasov.
2702
2703         This changes moves formatting out of the source mapping machinery.
2704         As a result, it removes most of the DebuggerPresentation's mapping-related code as well
2705         as most of the raw source code's code.
2706
2707         * inspector/front-end/BreakpointManager.js:
2708         (WebInspector.BreakpointManager):
2709         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
2710         (WebInspector.BreakpointManager.Breakpoint):
2711         * inspector/front-end/CallStackSidebarPane.js:
2712         (WebInspector.CallStackSidebarPane.prototype.setStatus):
2713         * inspector/front-end/CompilerScriptMapping.js:
2714         * inspector/front-end/DebuggerPresentationModel.js:
2715         (WebInspector.DebuggerPresentationModel):
2716         (WebInspector.DebuggerPresentationModel.prototype._callFrameSelected):
2717         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
2718         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
2719         * inspector/front-end/JavaScriptSource.js:
2720         (WebInspector.JavaScriptSource):
2721         (WebInspector.JavaScriptSource.prototype.fireContentAvailable):
2722         (WebInspector.JavaScriptSource.prototype.setFormatted.if):
2723         (WebInspector.JavaScriptSource.prototype.setFormatted.didGetContent.didFormatContent):
2724         (WebInspector.JavaScriptSource.prototype.setFormatted.didGetContent):
2725         (WebInspector.JavaScriptSource.prototype.setFormatted):
2726         (WebInspector.JavaScriptSource.prototype.togglingFormatter):
2727         (WebInspector.JavaScriptSource.prototype.uiLocationToRawLocation):
2728         (WebInspector.JavaScriptSource.prototype.overrideLocation):
2729         (WebInspector.JavaScriptSource.prototype.breakpointStorageId):
2730         (WebInspector):
2731         * inspector/front-end/JavaScriptSourceFrame.js:
2732         (WebInspector.JavaScriptSourceFrame.prototype._onContentChanged):
2733         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
2734         * inspector/front-end/RawSourceCode.js:
2735         (WebInspector.RawSourceCode):
2736         (WebInspector.RawSourceCode.prototype.addScript):
2737         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
2738         (WebInspector.RawSourceCode.prototype._createUISourceCode):
2739         (WebInspector.RawSourceCode.prototype.uiLocationToRawLocation):
2740         (WebInspector.RawSourceCode.prototype.uiSourceCode):
2741         (WebInspector.RawSourceCode.prototype._finishedLoading):
2742         * inspector/front-end/ResourceScriptMapping.js:
2743         (WebInspector.ResourceScriptMapping):
2744         (WebInspector.ResourceScriptMapping.prototype.addScript):
2745         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
2746         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
2747         * inspector/front-end/Script.js:
2748         (WebInspector.Script.prototype.rawLocationToUILocation):
2749         * inspector/front-end/ScriptFormatter.js:
2750         (WebInspector.ScriptFormatter.prototype._didFormatContent):
2751         (WebInspector.FormatterSourceMapping):
2752         (WebInspector.FormatterSourceMapping.prototype.originalToFormatted):
2753         (WebInspector.FormatterSourceMapping.prototype.formattedToOriginal):
2754         (WebInspector.IdentityFormatterSourceMapping):
2755         (WebInspector.IdentityFormatterSourceMapping.prototype.originalToFormatted):
2756         (WebInspector.IdentityFormatterSourceMapping.prototype.formattedToOriginal):
2757         (WebInspector.FormatterSourceMappingImpl):
2758         (WebInspector.FormatterSourceMappingImpl.prototype.originalToFormatted):
2759         (WebInspector.FormatterSourceMappingImpl.prototype.formattedToOriginal):
2760         * inspector/front-end/ScriptMapping.js:
2761         (WebInspector.MainScriptMapping):
2762         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
2763         (WebInspector.MainScriptMapping.prototype.reset):
2764         * inspector/front-end/ScriptsPanel.js:
2765         (WebInspector.ScriptsPanel.prototype._handleUISourceCodeAdded):
2766         (WebInspector.ScriptsPanel.prototype.showFunctionDefinition):
2767         (WebInspector.ScriptsPanel.prototype._showFile):
2768         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
2769         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
2770         * inspector/front-end/ScriptsSearchScope.js:
2771         (WebInspector.ScriptsSearchResultsPane.prototype.createAnchor):
2772         * inspector/front-end/SnippetsModel.js:
2773         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
2774         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
2775         * inspector/front-end/UISourceCode.js:
2776         (WebInspector.UISourceCode):
2777         (WebInspector.UISourceCode.prototype.requestContent):
2778         (WebInspector.UISourceCode.prototype.mimeType):
2779         (WebInspector.UISourceCode.prototype.content):
2780         (WebInspector.UISourceCode.prototype.fireContentAvailable):
2781         (WebInspector.UISourceCode.prototype.contentLoaded):
2782         (WebInspector.UISourceCode.prototype.uiLocationToRawLocation):
2783
2784 2012-05-11  Dominik Röttsches  <dominik.rottsches@intel.com>
2785
2786         [EFL][DRT] Input Attribute Placeholder RefTests failing
2787         https://bugs.webkit.org/show_bug.cgi?id=85603
2788
2789         Unreviewed, build fix for EFL.
2790
2791         * platform/efl/RenderThemeEfl.cpp:
2792
2793 2012-05-11  Alexei Filippov  <alexeif@chromium.org>
2794
2795         Web Inspector: Remove support of combined nodes and edges serialization schema.
2796         https://bugs.webkit.org/show_bug.cgi?id=86209
2797
2798         Reviewed by Yury Semikhatsky.
2799
2800         * inspector/front-end/HeapSnapshot.js:
2801         (WebInspector.HeapSnapshotNode.prototype.get _nodes):
2802         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesStart):
2803         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
2804         (WebInspector.HeapSnapshot):
2805         (WebInspector.HeapSnapshot.prototype._init):
2806         (WebInspector.HeapSnapshot.prototype._buildRetainers):
2807         (WebInspector.HeapSnapshot.prototype._bfs):
2808         (WebInspector.HeapSnapshot.prototype._buildAggregates):
2809         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
2810         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
2811         * inspector/front-end/HeapSnapshotLoader.js:
2812         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
2813
2814 2012-05-11  Yury Semikhatsky  <yurys@chromium.org>
2815
2816         Web Inspector: add Profiler.getHeapObjectId command
2817         https://bugs.webkit.org/show_bug.cgi?id=86211
2818
2819         Reviewed by Pavel Feldman.
2820
2821         Added Profiler.getHeapObjectId command to the protocol which allows to convert remote
2822         object id to heap snapshot object id.
2823
2824         * bindings/js/ScriptProfiler.cpp:
2825         (WebCore::ScriptProfiler::getHeapObjectId):
2826         (WebCore):
2827         * bindings/js/ScriptProfiler.h:
2828         (WebCore):
2829         (ScriptProfiler):
2830         * bindings/v8/ScriptProfiler.cpp:
2831         (WebCore::ScriptProfiler::getHeapObjectId):
2832         (WebCore):
2833         * bindings/v8/ScriptProfiler.h:
2834         (WebCore):
2835         (ScriptProfiler):
2836         * inspector/InjectedScript.cpp:
2837         (WebCore::InjectedScript::findObjectById):
2838         (WebCore):
2839         * inspector/InjectedScript.h:
2840         (InjectedScript):
2841         * inspector/InjectedScriptSource.js:
2842         (.):
2843         * inspector/Inspector.json:
2844         * inspector/InspectorProfilerAgent.cpp:
2845         (WebCore::InspectorProfilerAgent::getHeapObjectId):
2846         (WebCore):
2847         * inspector/InspectorProfilerAgent.h:
2848         (InspectorProfilerAgent):
2849
2850 2012-05-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2851
2852         Qt support for new layout types.
2853         https://bugs.webkit.org/show_bug.cgi?id=85607
2854
2855         Reviewed by Simon Hausmann.
2856
2857         Adds similar Qt support to FractionalLayout classes as Qt has for
2858         FloatSomething and IntSomething classes. This means Qt code can stay
2859         unchanged from after the redefinition of Layout classes.
2860
2861         No new functionality. No new tests.
2862
2863         * Target.pri:
2864         * platform/FractionalLayoutUnit.h:
2865         (WebCore::operator<<):
2866         (WebCore::operator>>):
2867         * platform/graphics/FractionalLayoutPoint.h:
2868         (FractionalLayoutPoint):
2869         * platform/graphics/FractionalLayoutRect.h:
2870         (FractionalLayoutRect):
2871         * platform/graphics/FractionalLayoutSize.h:
2872         (FractionalLayoutSize):
2873         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Added.
2874         (WebCore::FractionalLayoutPoint::FractionalLayoutPoint):
2875         (WebCore::FractionalLayoutPoint::operator QPointF):
2876         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Added.
2877         (WebCore::FractionalLayoutRect::FractionalLayoutRect):
2878         (WebCore::FractionalLayoutRect::operator QRectF):
2879         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Added.
2880         (WebCore::FractionalLayoutSize::FractionalLayoutSize):
2881         (WebCore::FractionalLayoutSize::operator QSizeF):
2882
2883 2012-05-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2884
2885         Internals::touchPositionAdjustedToBestClickableNode adjust twice for scroll-offset
2886         https://bugs.webkit.org/show_bug.cgi?id=86205
2887
2888         Reviewed by Simon Hausmann.
2889
2890         Remove the redundant conversion from document to window coords.
2891
2892         Test: touchadjustment/scroll-offset.html
2893
2894         * testing/Internals.cpp:
2895         (WebCore::Internals::touchPositionAdjustedToBestClickableNode):
2896         (WebCore::Internals::bestZoomableAreaForTouchPoint):
2897
2898 2012-05-11  Ilya Tikhonovsky  <loislo@chromium.org>
2899
2900         Web Inspector: load heap snapshot implementation.
2901         https://bugs.webkit.org/show_bug.cgi?id=86097
2902
2903         The idea is to have a hidden file selector control.
2904         When the user select a context menu item or click a button
2905         we redirect this user-action to file selector.
2906         As result we see the standard file selector dialog.
2907         When the user selects a file we load it's chunks and push the chunks to the worker.
2908         The loaded snapshot can be completely unrelated to the current page.
2909         Thats why we have to skip range selection options in Summary tab.
2910
2911         Reviewed by Yury Semikhatsky.
2912
2913         * English.lproj/localizedStrings.js:
2914         * inspector/front-end/CSSSelectorProfileView.js:
2915         (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile): now it accepts a custom title.
2916         * inspector/front-end/HeapSnapshotView.js:
2917         (WebInspector.HeapSnapshotView.prototype._updateFilterOptions): we have to skip the profiles loaded from file because there is no guaranty t
2918         (WebInspector.HeapSnapshotProfileType.prototype.createTemporaryProfile): now it accepts a custom title.
2919         (WebInspector.HeapSnapshotProfileType.prototype.createProfile): cosmetic changes.
2920         (WebInspector.HeapProfileHeader):
2921         (WebInspector.HeapProfileHeader.prototype._setupWorker): a common part was extracted from load method and reused in loadFromFile.
2922         (WebInspector.HeapProfileHeader.prototype._saveStatusUpdate): cosmetic changes.
2923         (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
2924         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): cosmetic rename for better consistency with 'load' part.
2925         (WebInspector.HeapProfileHeader.prototype.saveToFile): cosmetic rename for better consistency with 'load' part.
2926         (WebInspector.HeapProfileHeader.prototype.canLoadFromFile): cosmetic rename for better consistency with 'load' part.
2927         (WebInspector.HeapProfileHeader.prototype.loadFromFile): chunk based file loader.
2928         (WebInspector.HeapProfileHeader.prototype.loadFromFile.loadNextChunk):
2929         (WebInspector.HeapProfileHeader.prototype.loadFromFile.onLoad):
2930         * inspector/front-end/ProfileView.js:
2931         (WebInspector.CPUProfileType.prototype.createTemporaryProfile): now it accepts a custom title.
2932         * inspector/front-end/ProfilesPanel.js:
2933         (WebInspector.ProfileType.prototype.createTemporaryProfile): now it accepts a custom title.
2934         (WebInspector.ProfileHeader.prototype.canSaveToFile): cosmetic rename for better consistency with 'load' part.
2935         (WebInspector.ProfileHeader.prototype.saveToFile): cosmetic rename for better consistency with 'load' part.
2936         (WebInspector.ProfileHeader.prototype.canLoadFromFile): default implementation for 'load' part.
2937         (WebInspector.ProfileHeader.prototype.loadFromFile): default implementation for 'load' part.
2938         (WebInspector.ProfilesPanel.prototype._createFileSelectorElement):
2939         (WebInspector.ProfilesPanel.prototype._loadFromFile):
2940         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
2941
2942 2012-05-11  Dominik Röttsches  <dominik.rottsches@intel.com>
2943
2944         [EFL][DRT] Input Attribute Placeholder RefTests failing
2945         https://bugs.webkit.org/show_bug.cgi?id=85603
2946
2947         Reviewed by Hajime Morita.
2948
2949         Refrain from overriding style coloring by theme coloring.
2950         RenderThemeEfl was always overriding colors and whitespace
2951         handling leading to failures in reftests that verify placeholder styling
2952         which expect the user agent stylesheet to be applied correctly
2953         without any color overrides. Also, leave whitespace handling untouched.
2954
2955         No new tests, covered by existing tests. See also
2956         the LayoutTests/ChangeLog in this commit for the required
2957         rebaselining.
2958
2959         * platform/efl/RenderThemeEfl.cpp:
2960         (WebCore::RenderThemeEfl::createEdje):
2961         (WebCore::RenderThemeEfl::applyEdjeColors):
2962         (WebCore::RenderThemeEfl::RenderThemeEfl):
2963         (WebCore::RenderThemeEfl::adjustButtonStyle):
2964         (WebCore::RenderThemeEfl::adjustMenuListStyle):
2965         (WebCore::RenderThemeEfl::adjustTextFieldStyle):
2966         (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
2967         * platform/efl/RenderThemeEfl.h:
2968         (RenderThemeEfl):
2969
2970 2012-05-11  Christophe Dumez  <christophe.dumez@intel.com>
2971
2972         Web Intents code only supports V8
2973         https://bugs.webkit.org/show_bug.cgi?id=85954
2974
2975         Reviewed by Adam Barth.
2976
2977         Add necessary abstraction for js Dictionary and ScriptValue so that
2978         the Web Intents code in WebCore compiles with JSC, not just V8.
2979
2980         This required changes in the JSC bindings generator to pass
2981         callback arguments of type SerializedScriptValue as raw pointers
2982         instead of RefPtr. This matches the change made to the V8 bindings
2983         generator in r104531.
2984
2985         * CMakeLists.txt:
2986         * Modules/intents/Intent.cpp:
2987         * Modules/intents/Intent.h:
2988         * bindings/js/Dictionary.cpp:
2989         (WebCore::Dictionary::Dictionary):
2990         (WebCore):
2991         (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
2992         * bindings/js/Dictionary.h:
2993         (Dictionary):
2994         * bindings/js/JSBindingsAllInOne.cpp:
2995         * bindings/js/JSDictionary.cpp:
2996         (WebCore::JSDictionary::convertValue):
2997         (WebCore):
2998         * bindings/js/JSDictionary.h:
2999         (WebCore):
3000         (WebCore::JSDictionary::initializerObject):
3001         * bindings/js/ScriptValue.cpp:
3002         (WebCore::ScriptValue::serialize):
3003         (WebCore):
3004         * bindings/js/ScriptValue.h:
3005         (ScriptValue):
3006         * bindings/scripts/CodeGeneratorJS.pm:
3007         (AddIncludesForType):
3008         (GenerateCallbackHeader):
3009         (GenerateCallbackImplementation):
3010         (GetNativeTypeForCallbacks):
3011
3012 2012-05-11  Alexander Pavlov  <apavlov@chromium.org>
3013
3014         Web Inspector: Can't type spaces in "Override User Agent" field
3015         https://bugs.webkit.org/show_bug.cgi?id=86202
3016
3017         Reviewed by Yury Semikhatsky.
3018
3019         * inspector/front-end/HelpScreen.js:
3020         (WebInspector.HelpScreen.prototype.isClosingKey):
3021         (WebInspector.HelpScreen.prototype._onKeyDown):
3022         * inspector/front-end/SettingsScreen.js:
3023         (WebInspector.SettingsScreen.prototype.isClosingKey):
3024
3025 2012-05-11  Dominik Röttsches  <dominik.rottsches@intel.com>
3026
3027         [EFL][DRT] Input Attribute Placeholder RefTests failing
3028         https://bugs.webkit.org/show_bug.cgi?id=85603
3029
3030         Reviewed by Hajime Morita.
3031
3032         Refrain from overriding style coloring by theme coloring.
3033         RenderThemeEfl was always overriding colors and whitespace
3034         handling leading to failures in reftests that verify placeholder styling
3035         which expect the user agent stylesheet to be applied correctly
3036         without any color overrides. Also, leave whitespace handling untouched.
3037
3038         No new tests, covered by existing tests. See also
3039         the LayoutTests/ChangeLog in this commit for the required
3040         rebaselining.
3041
3042         * platform/efl/RenderThemeEfl.cpp:
3043         (WebCore::RenderThemeEfl::createEdje):
3044         (WebCore::RenderThemeEfl::applyEdjeColors):
3045         (WebCore::RenderThemeEfl::RenderThemeEfl):
3046         (WebCore::RenderThemeEfl::adjustButtonStyle):
3047         (WebCore::RenderThemeEfl::adjustMenuListStyle):
3048         (WebCore::RenderThemeEfl::adjustTextFieldStyle):
3049         (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
3050         * platform/efl/RenderThemeEfl.h:
3051         (RenderThemeEfl):
3052
3053 2012-05-11  Gustavo Noronha Silva  <gns@gnome.org>
3054
3055         REGRESSION(r116205): [GTK]: build no longer supports thin archives
3056         https://bugs.webkit.org/show_bug.cgi?id=86207
3057
3058         * GNUmakefile.am: go back to not linking libWebCoreModules into
3059         libWebCore; when linking 2 convenience libraries libtools tries to
3060         extract the object files from one of them to add to the other, breaking
3061         thin archive builds
3062
3063 2012-05-11  Keishi Hattori  <keishi@webkit.org>
3064
3065         Sanitization algorithm for input type=email should strip whitespaces
3066         https://bugs.webkit.org/show_bug.cgi?id=86177
3067
3068         Reviewed by Kent Tamura.
3069
3070         No new tests. Covered by: fast/forms/ValidityState-typeMismatch-email.html
3071
3072         The spec says that the value sanitization algorithm should
3073         > Strip line breaks from the value, then strip leading and trailing whitespace from the value.
3074
3075         * html/EmailInputType.cpp:
3076         (WebCore::EmailInputType::sanitizeValue):
3077
3078 2012-05-11  Sheriff Bot  <webkit.review.bot@gmail.com>
3079
3080         Unreviewed, rolling out r116752.
3081         http://trac.webkit.org/changeset/116752
3082         https://bugs.webkit.org/show_bug.cgi?id=86201
3083
3084         Build failure on Chromium-mac (Requested by tkent on #webkit).
3085
3086         * html/FormAssociatedElement.cpp:
3087         * html/FormAssociatedElement.h:
3088         (FormAssociatedElement):
3089         * html/HTMLFormControlElement.cpp:
3090         (WebCore::HTMLFormControlElement::setCustomValidity):
3091         * html/HTMLFormControlElement.h:
3092         (HTMLFormControlElement):
3093         * html/HTMLInputElement.cpp:
3094         (WebCore::HTMLInputElement::isValidValue):
3095         (WebCore::HTMLInputElement::typeMismatch):
3096         (WebCore::HTMLInputElement::valueMissing):
3097         (WebCore::HTMLInputElement::patternMismatch):
3098         (WebCore::HTMLInputElement::rangeUnderflow):
3099         (WebCore::HTMLInputElement::rangeOverflow):
3100         (WebCore::HTMLInputElement::minimum):
3101         (WebCore::HTMLInputElement::maximum):
3102         (WebCore::HTMLInputElement::stepMismatch):
3103         (WebCore::HTMLInputElement::minimumString):
3104         (WebCore::HTMLInputElement::maximumString):
3105         (WebCore):
3106         (WebCore::HTMLInputElement::stepBaseString):
3107         (WebCore::HTMLInputElement::stepString):
3108         (WebCore::HTMLInputElement::typeMismatchText):
3109         (WebCore::HTMLInputElement::valueMissingText):
3110         (WebCore::HTMLInputElement::isInRange):
3111         (WebCore::HTMLInputElement::isOutOfRange):
3112         * html/HTMLInputElement.h:
3113         (HTMLInputElement):
3114         * html/HTMLObjectElement.h:
3115         (WebCore::HTMLObjectElement::setCustomValidity):
3116         * html/HTMLSelectElement.cpp:
3117         (WebCore::HTMLSelectElement::valueMissing):
3118         * html/HTMLSelectElement.h:
3119         (HTMLSelectElement):
3120         * html/HTMLTextAreaElement.cpp:
3121         * html/HTMLTextAreaElement.h:
3122         (WebCore::HTMLTextAreaElement::valueMissing):
3123         (HTMLTextAreaElement):
3124         * html/InputType.cpp:
3125         (WebCore::InputType::alignValueForStep):
3126         (WebCore::InputType::stepUpFromRenderer):
3127         * html/InputType.h:
3128         (InputType):
3129         * html/ValidityState.cpp:
3130         (WebCore::ValidityState::validationMessage):
3131         (WebCore):
3132         (WebCore::ValidityState::setCustomErrorMessage):
3133         (WebCore::ValidityState::valueMissing):
3134         (WebCore::ValidityState::typeMismatch):
3135         (WebCore::ValidityState::patternMismatch):
3136         (WebCore::ValidityState::tooLong):
3137         (WebCore::ValidityState::rangeUnderflow):
3138         (WebCore::ValidityState::rangeOverflow):
3139         (WebCore::ValidityState::stepMismatch):
3140         (WebCore::ValidityState::customError):
3141         (WebCore::ValidityState::valid):
3142         * html/ValidityState.h:
3143         (ValidityState):
3144
3145 2012-05-11  Alexander Pavlov  <apavlov@chromium.org>
3146
3147         Web Inspector: Search box doesn't allow CSS selectors anymore
3148         https://bugs.webkit.org/show_bug.cgi?id=86196
3149
3150         Reviewed by Pavel Feldman.
3151
3152         Refactoring in http://trac.webkit.org/changeset/99983 inadvertently removed the selector matching during
3153         node search in the InspectorDOMAgent. This change re-introduces the Document::querySelectorAll() evaluation
3154         for the user query.
3155
3156         * inspector/InspectorDOMAgent.cpp:
3157         (WebCore::InspectorDOMAgent::performSearch):
3158
3159 2012-05-11  Sheriff Bot  <webkit.review.bot@gmail.com>
3160
3161         Unreviewed, rolling out r116527.
3162         http://trac.webkit.org/changeset/116527
3163         https://bugs.webkit.org/show_bug.cgi?id=86199
3164
3165         Causing crashes on ClusterFuzz (Requested by inferno-sec on
3166         #webkit).
3167
3168         * rendering/RenderScrollbar.cpp:
3169         (WebCore::RenderScrollbar::updateScrollbarPart):
3170         * rendering/RenderScrollbarPart.h:
3171
3172 2012-05-11  Yoshifumi Inoue  <yosin@chromium.org>
3173
3174         [Forms] Move ValidityState methods implementation to another place
3175         https://bugs.webkit.org/show_bug.cgi?id=86058
3176
3177         Reviewed by Kent Tamura.
3178
3179         This patch changes ValidityState class for limiting scope of
3180         number/range input type related methods for introducing decimal
3181         arithmetic.
3182
3183         Methods related to validation are moved from ValidateState to
3184         input, select and textarea elements with virtual method based
3185         dispatching via FormAssociateElement instead of tag name
3186         dispatching so far for code simplification.
3187
3188         No new tests. This patch doesn't change behavior.
3189
3190         * html/FormAssociatedElement.cpp:
3191         (WebCore::FormAssociatedElement::customError): Added. Called from ValidateState. Returns custom error mssage in member variable.
3192         (WebCore::FormAssociatedElement::patternMismatch): Added.  Called from ValidateState. This is default implementation.
3193         (WebCore::FormAssociatedElement::rangeOverflow): Added.  Called from ValidateState. This is default implementation.
3194         (WebCore::FormAssociatedElement::rangeUnderflow): Added.  Called from ValidateState. This is default implementation.
3195         (WebCore::FormAssociatedElement::stepMismatch): Added.  Called from ValidateState. This is default implementation.
3196         (WebCore::FormAssociatedElement::tooLong): Added.  Called from ValidateState. This is default implementation.
3197         (WebCore::FormAssociatedElement::typeMismatch): Added.  Called from ValidateState. This is default implementation.
3198         (WebCore::FormAssociatedElement::valid): Added.  Called from ValidateState. This is default implementation.
3199         (WebCore::FormAssociatedElement::valueMissing): Added.  Called from ValidateState. This is default implementation.
3200         (WebCore::FormAssociatedElement::customValidationMessage): Added.  Called from ValidateState. This is default implementation.
3201         (WebCore::FormAssociatedElement::validationMessage): Added.  Called from ValidateState. This is default implementation.
3202         (WebCore::FormAssociatedElement::setCustomValidity): Added.  set custom error message.
3203         * html/FormAssociatedElement.h:
3204         (FormAssociatedElement): Added new instance value m_customValidationMessage.
3205         * html/HTMLFormControlElement.cpp:
3206         (WebCore::HTMLFormControlElement::setCustomValidity): Changed. Calls base class setCustomValidity.
3207         * html/HTMLFormControlElement.h:
3208         (HTMLFormControlElement):
3209         * html/HTMLInputElement.cpp:
3210         (WebCore::HTMLInputElement::isValidValue): Call m_inputType methods instead of HTMLInputElement's.
3211         (WebCore::HTMLInputElement::tooLong): Call m_inputType methods instead of HTMLInputElement's.
3212         (WebCore):
3213         (WebCore::HTMLInputElement::typeMismatch): Move implementation to InputType.
3214         (WebCore::HTMLInputElement::valueMissing):  Move implementation to InputType.
3215         (WebCore::HTMLInputElement::patternMismatch): Move implementation to InputType.
3216         (WebCore::HTMLInputElement::rangeUnderflow): Move implementation to InputType.
3217         (WebCore::HTMLInputElement::rangeOverflow): Move implementation to InputType.
3218         (WebCore::HTMLInputElement::validationMessage): Move implementation to InputType.
3219         (WebCore::HTMLInputElement::stepMismatch): Move implementation to InputType.
3220         (WebCore::HTMLInputElement::isInRange): Call m_inputType methods instead of HTMLInputElement's.
3221         (WebCore::HTMLInputElement::isOutOfRange): Call m_inputType methods instead of HTMLInputElement's.
3222         * html/HTMLInputElement.h:
3223         (HTMLInputElement): Make tooLong method private.
3224         * html/HTMLObjectElement.h: Add "virtual" and "OVERRIDE".
3225         * html/HTMLSelectElement.cpp:
3226         (WebCore::HTMLSelectElement::validationMessage): Added. Implementation for HTMLSelectElement.
3227         (WebCore::HTMLSelectElement::valueMissing): Added. Implementation for HTMLSelectElement.
3228         * html/HTMLSelectElement.h:
3229         (HTMLSelectElement):  Added entries for newly added methods.
3230         * html/HTMLTextAreaElement.cpp:
3231         (WebCore::HTMLTextAreaElement::validationMessage): Added. Implementation for HTMLTextAreaElement.
3232         (WebCore::HTMLTextAreaElement::valueMissing): Added. Implementation for HTMLTextAreaElement.
3233         (WebCore::HTMLTextAreaElement::tooLong): Added. Implementation for HTMLTextAreaElement.
3234         * html/HTMLTextAreaElement.h:
3235         (HTMLTextAreaElement): Added entries for newly added methods. Change tooLong and valueMissing private.
3236         * html/InputType.cpp:
3237         (WebCore::InputType::stepMismatch): Change method signature.
3238         (WebCore::InputType::alignValueForStep):  Changed for calling InputClass instead of HTMLINputElement.
3239         (WebCore::InputType::stepUpFromRenderer):  Added. Moved from HTMLInputElement.
3240         (WebCore::InputType::validationMessage): Added.  Moved from HTMLInputElement.
3241         * html/InputType.h:
3242         (InputType): Added entries for newly added methods and update methods signature.
3243         * html/ValidityState.cpp: Move actual implementation to FormAssociatedElement and derived classes for localizing implementation change of elements and input types.
3244         (WebCore::ValidityState::validationMessage): Changed to call FormAssociatedElement's method.
3245         (WebCore::ValidityState::valueMissing): Changed to call FormAssociatedElement's method.
3246         (WebCore::ValidityState::typeMismatch): Changed to call FormAssociatedElement's method.
3247         (WebCore::ValidityState::patternMismatch): Changed to call FormAssociatedElement's method.
3248         (WebCore::ValidityState::tooLong): Changed to call FormAssociatedElement's method.
3249         (WebCore::ValidityState::rangeUnderflow): Changed to call FormAssociatedElement's method.
3250         (WebCore::ValidityState::rangeOverflow): Changed to call FormAssociatedElement's method.
3251         (WebCore::ValidityState::stepMismatch): Changed to call FormAssociatedElement's method.
3252         (WebCore::ValidityState::customError): Changed to call FormAssociatedElement's method.
3253         (WebCore::ValidityState::valid):
3254         * html/ValidityState.h:
3255         (ValidityState): Remove custom validation message related things.
3256
3257 2012-05-11  Kent Tamura  <tkent@chromium.org>
3258
3259         Fix a build error without SVG, introduced by tab-size support.
3260
3261         * css/StyleResolver.cpp:
3262         (WebCore::StyleResolver::collectMatchingRulesForList):
3263
3264 2012-05-11  Shinya Kawanaka  <shinyak@chromium.org>
3265
3266         [Refactoring] Move Selection from DOMWindow to TreeScope.
3267         https://bugs.webkit.org/show_bug.cgi?id=82699
3268
3269         Reviewed by Ryosuke Niwa.
3270
3271         Since ShadowRoot will also manage its own version of DOMSelection, we would like to
3272         share the code among Document and DOMSelection. This patch moves DOMSelection from DOMWindow to TreeScope
3273         so that ShadowRoot can also use it.
3274
3275         No new tests, should covered by existing tests.
3276
3277         * dom/Document.cpp:
3278         (WebCore::Document::updateFocusAppearanceTimerFired):
3279         * dom/Document.h:
3280         (Document):
3281         * dom/ShadowRoot.cpp:
3282         (WebCore::ShadowRoot::selection):
3283         * dom/TreeScope.cpp:
3284         (WebCore::TreeScope::~TreeScope):
3285         (WebCore::TreeScope::getSelection):
3286         (WebCore):
3287         * dom/TreeScope.h:
3288         (WebCore):
3289         (TreeScope):
3290         * page/DOMSelection.cpp:
3291         (WebCore::DOMSelection::DOMSelection):
3292         (WebCore::DOMSelection::clearTreeScope):
3293         (WebCore):
3294         * page/DOMSelection.h:
3295         (WebCore):
3296         (WebCore::DOMSelection::create):
3297         (DOMSelection):
3298         * page/DOMWindow.cpp:
3299         (WebCore::DOMWindow::~DOMWindow):
3300         (WebCore::DOMWindow::clearDOMWindowProperties):
3301         (WebCore::DOMWindow::getSelection):
3302         * page/DOMWindow.h:
3303         (DOMWindow):
3304
3305 2012-05-04  Yury Semikhatsky  <yurys@chromium.org>
3306
3307         Web Inspector: console should allow JS execution in the context of an isolated world
3308         https://bugs.webkit.org/show_bug.cgi?id=85612
3309
3310         Reviewed by Pavel Feldman.
3311
3312         Added an option to select not only a frame but also isolated world in which
3313         to perform evaluation of the code typed into the console.
3314
3315         Each execution context can be identified using it injected script id. We call it
3316         execution context id in the protocol. Runtime agent is extended with an event that
3317         is sent when new ExecutionContext is created. The event tracking can be enabled/disabled
3318         using setReportExecutionContextCreation command.
3319
3320         * bindings/js/ScriptController.cpp:
3321         (WebCore):
3322         (WebCore::isolatedWorldToSecurityOriginMap):
3323         * bindings/js/ScriptController.h:
3324         (ScriptController):
3325         * bindings/js/ScriptState.cpp:
3326         (WebCore::isolatedWorldScriptState):
3327         (WebCore):
3328         * bindings/js/ScriptState.h:
3329         (WebCore):
3330         * bindings/v8/ScriptController.cpp:
3331         (WebCore):
3332         (WebCore::ScriptController::isolatedWorldToSecurityOriginMap):
3333         * bindings/v8/ScriptController.h:
3334         (ScriptController):
3335         * bindings/v8/ScriptState.cpp:
3336         (WebCore::isolatedWorldScriptState):
3337         (WebCore):
3338         * bindings/v8/ScriptState.h:
3339         (WebCore):
3340         * bindings/v8/V8IsolatedContext.cpp:
3341         (WebCore::V8IsolatedContext::setSecurityOrigin):
3342         * bindings/v8/V8Proxy.cpp:
3343         (WebCore::V8Proxy::setIsolatedWorldSecurityOrigin):
3344         (WebCore::V8Proxy::isolatedWorldContext):
3345         (WebCore):
3346         (WebCore::V8Proxy::isolatedWorldToSecurityOriginMap):
3347         * bindings/v8/V8Proxy.h:
3348         (V8Proxy):
3349         * inspector/CodeGeneratorInspector.py:
3350         (DomainNameFixes):
3351         * inspector/Inspector.json:
3352         * inspector/InspectorInstrumentation.cpp:
3353         (WebCore::InspectorInstrumentation::didCreateIsolatedContextImpl):
3354         (WebCore):
3355         * inspector/InspectorInstrumentation.h:
3356         (WebCore):
3357         (InspectorInstrumentation):
3358         (WebCore::InspectorInstrumentation::didCreateIsolatedContext):
3359         * inspector/InspectorRuntimeAgent.cpp:
3360         (WebCore::InspectorRuntimeAgent::evaluate):
3361         * inspector/InspectorRuntimeAgent.h:
3362         (InspectorRuntimeAgent):
3363         * inspector/InstrumentingAgents.h:
3364         (WebCore):
3365         (WebCore::InstrumentingAgents::InstrumentingAgents):
3366         (WebCore::InstrumentingAgents::pageRuntimeAgent):
3367         (WebCore::InstrumentingAgents::setPageRuntimeAgent):
3368         (InstrumentingAgents):
3369         * inspector/PageRuntimeAgent.cpp:
3370         (PageRuntimeAgentState):
3371         (WebCore):
3372         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
3373         (WebCore::PageRuntimeAgent::setFrontend):
3374         (WebCore::PageRuntimeAgent::clearFrontend):
3375         (WebCore::PageRuntimeAgent::restore):
3376         (WebCore::PageRuntimeAgent::setReportExecutionContextCreation):
3377         (WebCore::PageRuntimeAgent::didCreateExecutionContext):
3378         (WebCore::PageRuntimeAgent::getScriptStateForEval):
3379         * inspector/PageRuntimeAgent.h:
3380         (WebCore):
3381         (PageRuntimeAgent):
3382         * inspector/WorkerRuntimeAgent.cpp:
3383         (WebCore::WorkerRuntimeAgent::setReportExecutionContextCreation):
3384         (WebCore::WorkerRuntimeAgent::getScriptStateForEval):
3385         * inspector/WorkerRuntimeAgent.h:
3386         (WorkerRuntimeAgent):
3387         * inspector/front-end/ConsoleView.js:
3388         (WebInspector.ConsoleView.prototype.get statusBarItems):
3389         (WebInspector.ConsoleView.prototype.addContext):
3390         (WebInspector.ConsoleView.prototype.removeContext):
3391         (WebInspector.ConsoleView.prototype._updateIsolatedWorldSelector):
3392         (WebInspector.ConsoleView.prototype._contextUpdated):
3393         (WebInspector.ConsoleView.prototype._addedExecutionContext):
3394         (WebInspector.ConsoleView.prototype._currentEvaluationContextId):
3395         (WebInspector.ConsoleView.prototype._currentEvaluationContext):
3396         (WebInspector.ConsoleView.prototype._currentIsolatedWorldId):
3397         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
3398         * inspector/front-end/ExtensionPanel.js:
3399         (WebInspector.ExtensionSidebarPane.prototype.setExpression):
3400         * inspector/front-end/ExtensionServer.js:
3401         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
3402         * inspector/front-end/JavaScriptContextManager.js:
3403         (WebInspector.JavaScriptContextManager):
3404         (WebInspector.JavaScriptContextManager.prototype._didLoadCachedResources):
3405         (WebInspector.JavaScriptContextManager.prototype.isolatedContextCreated):
3406         (WebInspector.RuntimeDispatcher):
3407         (WebInspector.RuntimeDispatcher.prototype.isolatedContextCreated):
3408         (WebInspector.ExecutionContext):
3409         (WebInspector.ExecutionContext.comparator):
3410         (WebInspector.FrameEvaluationContext):
3411         (WebInspector.FrameEvaluationContext.prototype._frameNavigated):
3412         (WebInspector.FrameEvaluationContext.prototype._addExecutionContext):
3413         (WebInspector.FrameEvaluationContext.prototype._ensureMainWorldContextAdded):