Unreviewed, rolling out r125884.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2
3         Unreviewed, rolling out r125884.
4         http://trac.webkit.org/changeset/125884
5         https://bugs.webkit.org/show_bug.cgi?id=94523
6
7         Appears to be causing a top crash in the Canary channel
8         (Requested by abarth on #webkit).
9
10         * UseV8.cmake:
11         * WebCore.gypi:
12         * bindings/v8/DOMWrapperWorld.cpp:
13         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
14         (WebCore::mainThreadNormalWorld):
15         * bindings/v8/DOMWrapperWorld.h:
16         (WebCore):
17         (WebCore::DOMWrapperWorld::create):
18         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
19         (DOMWrapperWorld):
20         * bindings/v8/IsolatedWorld.cpp: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.cpp.
21         (WebCore):
22         (WebCore::IsolatedWorld::IsolatedWorld):
23         (WebCore::IsolatedWorld::~IsolatedWorld):
24         * bindings/v8/IsolatedWorld.h: Copied from Source/WebCore/bindings/v8/DOMWrapperWorld.h.
25         (WebCore):
26         (IsolatedWorld):
27         (WebCore::IsolatedWorld::create):
28         (WebCore::IsolatedWorld::count):
29         (WebCore::IsolatedWorld::id):
30         (WebCore::IsolatedWorld::domDataStore):
31         * bindings/v8/V8DOMWrapper.h:
32         (WebCore::V8DOMWrapper::getCachedWrapper):
33         * bindings/v8/V8IsolatedContext.cpp:
34         (WebCore::V8IsolatedContext::V8IsolatedContext):
35         (WebCore::V8IsolatedContext::destroy):
36         * bindings/v8/V8IsolatedContext.h:
37         (WebCore::V8IsolatedContext::getEntered):
38         (WebCore::V8IsolatedContext::world):
39         (V8IsolatedContext):
40         * bindings/v8/V8PerIsolateData.h:
41         (WebCore::V8PerIsolateData::registerDOMDataStore):
42         (WebCore::V8PerIsolateData::unregisterDOMDataStore):
43
44 2012-08-20  Chris Rogers  <crogers@google.com>
45
46         Remove improper ASSERT in AudioParamTimeline::valuesForTimeRangeImpl()
47         https://bugs.webkit.org/show_bug.cgi?id=94504
48
49         Reviewed by Kenneth Russell.
50
51         AudioParamTimeline::valuesForTimeRangeImpl() is able to handle the case where there are no timeline events.
52         So don't ASSERT for that case.
53
54         * Modules/webaudio/AudioParamTimeline.cpp:
55         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
56
57 2012-08-20  Ken Buchanan  <kenrb@chromium.org>
58         Line boxes not being dirtied correctly during inline removal
59         https://bugs.webkit.org/show_bug.cgi?id=93156
60
61         Reviewed by David Hyatt.
62
63         When two inline objects were being removed from different lineboxes
64         in an ancestral RenderBlock, the way the RenderBlock was being marked
65         prevented the second linebox from being marked dirty. This causes
66         it to not get layout in the subsequent layout pass.
67
68         This patch causes only the descendants corresponding to actual changed
69         lineboxes to have their ancestorLineBoxDirty bit set, rather than
70         the RenderBlock that contains the lineboxes themselves.
71
72         * rendering/RenderLineBoxList.cpp:
73         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
74
75 2012-08-20  John Mellor  <johnme@chromium.org>
76
77         Text Autosizing: Only take into account block width <= document layout width.
78         https://bugs.webkit.org/show_bug.cgi?id=93862
79
80         Reviewed by Kenneth Rohde Christiansen.
81
82         Instead of calculating the textAutosizingMultiplier purely based on the
83         width of each block, we now work out the maximum width of the block
84         that could be displayed onscreen at any one time, and use that value.
85         This avoids excessive text size multiplication (there's no point making
86         text bigger than this, since you wouldn't be able to zoom out far
87         enough to read it!).
88
89         To determine the maximum onscreen block width, we take the minimum of
90         the block width and the layoutWidth of the narrowest non-flattened
91         ancestor frame. Flattened frames are ignored since they don't impose a
92         hard limit on the maximum width that can be displayed, instead they can
93         stretch to fit their contents. Note that on mobile the layoutWidth of
94         the main frame is the fixed layout width aka viewport width.
95
96         In practice this caps the maximum multiplier to a value that depends
97         on the metrics of the device. For example on a Nexus S (480 x 800px
98         and 1.5x devicePixelRatio) with a 980px default fixed layout width,
99         this limits the multiplier to: 980 / (480/1.5) = 3.0625
100
101         Most pages won't have blocks that actually hit this cap, or they will
102         only slightly exceed it (so their multiplier will only be slightly
103         reduced). For example it's not uncommon for desktop pages to be
104         slightly wider than 980px, but they would have to additionally have
105         text that spans the full width of the page for this to affect them, and
106         even then it would merely slightly decrease their multiplier).
107
108         This will have more dramatic effects on the rare desktop pages which
109         give a width=device-width (or similar) mobile viewport tag (on ports
110         which support viewports). A follow-up patch will hopefully address this
111         by wrapping the text in such excessively wide blocks to the layoutWidth.
112
113         Tests: fast/text-autosizing/narrow-iframe-flattened.html
114                fast/text-autosizing/narrow-iframe.html
115                fast/text-autosizing/wide-block.html
116                fast/text-autosizing/wide-iframe.html
117
118         * page/FrameView.cpp:
119         (WebCore::FrameView::isInChildFrameWithFrameFlattening):
120
121             Made public and const, so can be used from TextAutosizer.
122
123         * rendering/TextAutosizer.cpp:
124         (WebCore::TextAutosizer::processSubtree):
125
126             Computes the minimum layout width of the parent frames, as described
127             above.
128
129         (WebCore::TextAutosizer::processBlock):
130
131             Limits used block width to this min layout width.
132
133 2012-08-20  Hans Wennborg  <hans@chromium.org>
134
135         Respect runtime flags for Device Orientation and Device Motion
136         https://bugs.webkit.org/show_bug.cgi?id=94479
137
138         Reviewed by Adam Barth.
139
140         There are flags that allows disabling of device orientation and device
141         motion at runtime. These flags determine the availability of the
142         corresponding event constructors in DOMWindow.
143
144         However, the flags should also control the ability to add event
145         listeners for these events, otherwise the feature can be used even if
146         it is disabled.
147
148         * page/DOMWindow.cpp:
149         (WebCore::DOMWindow::addEventListener):
150
151 2012-08-20  Philip Rogers  <pdr@google.com>
152
153         Remove incorrect getBBox() code
154         https://bugs.webkit.org/show_bug.cgi?id=94419
155
156         Reviewed by Dirk Schulze.
157
158         SVGPathElement defines a getBBox() function that is wrong and
159         should use objectBoundingBox(). This patch cleans this up.
160
161         No new tests as this is just a cleanup of old code.
162
163         * svg/SVGPathElement.cpp:
164         (WebCore):
165         * svg/SVGPathElement.h:
166         (SVGPathElement):
167
168 2012-08-20  David Reveman  <reveman@chromium.org>
169
170         [Chromium] Schedule texture uploads based on hard-coded timer and vsync.
171         https://bugs.webkit.org/show_bug.cgi?id=84281
172
173         Reviewed by James Robinson.
174
175         Improve interaction between vsync and texture uploads by performing
176         uploads in smaller batches and use a hard-coded timer to emulate
177         upload completion. This greatly reduces the chance of the compositor
178         missing a vsync due to being busy with texture uploads.
179
180         The CCScheduler client is now given a time limit when told to update
181         more resources. This time limit is passed to an instance of the
182         CCTextureUpdateController class, which is responsible for performing
183         texture updates until the limit is reached.
184
185         Unit tests: CCSchedulerTest.RequestCommit
186                     CCTextureUpdateControllerTest.UpdateMoreTextures
187                     CCTextureUpdateControllerTest.HasMoreUpdates
188
189         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
190         (WebCore::CCFrameRateController::nextTickTime):
191         (WebCore):
192         * platform/graphics/chromium/cc/CCFrameRateController.h:
193         (CCFrameRateController):
194         * platform/graphics/chromium/cc/CCScheduler.cpp:
195         (WebCore::CCScheduler::processScheduledActions):
196         * platform/graphics/chromium/cc/CCScheduler.h:
197         (CCSchedulerClient):
198         * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
199         (WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
200         (WebCore::CCTextureUpdateController::CCTextureUpdateController):
201         (WebCore::CCTextureUpdateController::updateMoreTextures):
202         (WebCore):
203         (WebCore::CCTextureUpdateController::onTimerFired):
204         (WebCore::CCTextureUpdateController::monotonicTimeNow):
205         (WebCore::CCTextureUpdateController::updateMoreTexturesTime):
206         (WebCore::CCTextureUpdateController::updateMoreTexturesSize):
207         (WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
208         (WebCore::CCTextureUpdateController::updateMoreTexturesNow):
209         * platform/graphics/chromium/cc/CCTextureUpdateController.h:
210         (WebCore::CCTextureUpdateController::create):
211         (CCTextureUpdateController):
212         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
213         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
214         (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
215         * platform/graphics/chromium/cc/CCThreadProxy.h:
216
217 2012-08-20  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
218
219         [css3-text] Add parsing support for -webkit-text-decoration-style
220         https://bugs.webkit.org/show_bug.cgi?id=94093
221
222         Reviewed by Julien Chaffraix.
223
224         This patch implements the "text-decoration-style" property parsing as specified
225         in CSS3 working draft, with "-webkit-" prefix. The specification can be found
226         here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
227
228         Additionally, Mozilla implementation details can be found here:
229         https://developer.mozilla.org/en-US/docs/CSS/text-decoration-style
230
231         This is an individual task for bug 90958. Rendering support will be handled on a
232         different bug.
233
234         Test: fast/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style.html
235
236         * css/CSSComputedStyleDeclaration.cpp:
237         (WebCore::renderTextDecorationStyleFlagsToCSSValue):
238         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
239         * css/CSSParser.cpp:
240         (WebCore::CSSParser::parseValue):
241         * css/CSSPrimitiveValueMappings.h:
242         (WebCore::CSSPrimitiveValue::operator TextDecorationStyle):
243         * css/CSSProperty.cpp:
244         (WebCore::CSSProperty::isInheritedProperty):
245         * css/CSSPropertyNames.in:
246         * css/CSSValueKeywords.in:
247         * css/StyleBuilder.cpp:
248         (WebCore::StyleBuilder::StyleBuilder):
249         * css/StyleResolver.cpp:
250         (WebCore::StyleResolver::collectMatchingRulesForList):
251         * rendering/style/RenderStyle.cpp:
252         (WebCore::RenderStyle::diff):
253         * rendering/style/RenderStyle.h:
254         * rendering/style/RenderStyleConstants.h: Added non-bitwise TextDecorationStyle enum.
255         * rendering/style/StyleRareNonInheritedData.cpp:
256         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Added m_textDecorationStyle to default and copy constructors.
257         (WebCore::StyleRareNonInheritedData::operator==): Include m_textDecorationStyle in comparison.
258         * rendering/style/StyleRareNonInheritedData.h:
259         (StyleRareNonInheritedData):
260         Added m_textDecorationStyle here as it won't be used regularly.
261
262 2012-08-20  Jakob Petsovits  <jpetsovits@rim.com>
263
264         [BlackBerry] Persist cookies not from atexit() but the new onThreadFinished()
265         https://bugs.webkit.org/show_bug.cgi?id=94482
266         RIM PR 184923
267
268         Reviewed by Yong Li.
269
270         BlackBerry::Platform recently made changes that ensure
271         that MessageClient threads are being shut down correctly.
272         A new onThreadFinished() virtual was introduced for
273         custom clean-up functionality and can replace the
274         atexit() handler that we previously used to flush cookies
275         to the cookie database backingstore.
276
277         No new functionality, no new tests.
278
279         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
280         (WebCore):
281         (WebCore::CookieDatabaseBackingStore::onThreadFinished):
282         (WebCore::CookieDatabaseBackingStore::sendChangesToDatabaseSynchronously):
283         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
284         (CookieDatabaseBackingStore):
285         * platform/blackberry/CookieManager.cpp:
286         (WebCore):
287         (WebCore::cookieManager):
288         * platform/blackberry/CookieManager.h:
289
290 2012-08-20  Alexandre Elias  <aelias@google.com>
291
292         [chromium] Move non-GL-specific code out of LayerRendererChromium
293         https://bugs.webkit.org/show_bug.cgi?id=93927
294
295         Reviewed by Adrienne Walker.
296
297         This patch moves most of the generic logic dealing with matrices and
298         render passes into a new class "CCDirectRenderer" that sits between
299         CCRenderer and LayerRendererChromium, and also publicly exposes a
300         few other things like the UnthrottledTextureUploader.
301
302         The plan is for the future software compositing implementation to also
303         derive from CCDirectRenderer, whereas the ubercompositor delegating
304         renderer will still derive from CCRenderer.
305
306         No new tests (no-op refactoring).
307
308         * WebCore.gypi:
309         * platform/graphics/chromium/GeometryBinding.cpp:
310         (WebCore::GeometryBinding::GeometryBinding):
311         * platform/graphics/chromium/GeometryBinding.h:
312         (GeometryBinding):
313         * platform/graphics/chromium/LayerRendererChromium.cpp:
314         (WebCore::LayerRendererChromium::LayerRendererChromium):
315         (WebCore::LayerRendererChromium::beginDrawingFrame):
316         (WebCore::LayerRendererChromium::drawQuad):
317         (WebCore::LayerRendererChromium::drawRenderPassQuad):
318         (WebCore::LayerRendererChromium::drawTileQuad):
319         (WebCore::LayerRendererChromium::finishDrawingFrame):
320         (WebCore::LayerRendererChromium::drawQuadGeometry):
321         (WebCore::LayerRendererChromium::bindFramebufferToOutputSurface):
322         (WebCore):
323         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
324         (WebCore::LayerRendererChromium::enableScissorTestRect):
325         (WebCore::LayerRendererChromium::disableScissorTest):
326         (WebCore::LayerRendererChromium::setDrawViewportSize):
327         (WebCore::LayerRendererChromium::makeContextCurrent):
328         (WebCore::LayerRendererChromium::initializeSharedObjects):
329         * platform/graphics/chromium/LayerRendererChromium.h:
330         (LayerRendererChromium):
331         * platform/graphics/chromium/TextureCopier.h:
332         (TextureCopier):
333         * platform/graphics/chromium/TextureUploader.h:
334         (UnthrottledTextureUploader):
335         (WebCore::UnthrottledTextureUploader::create):
336         (WebCore::UnthrottledTextureUploader::~UnthrottledTextureUploader):
337         (WebCore::UnthrottledTextureUploader::UnthrottledTextureUploader):
338         (WebCore):
339         * platform/graphics/chromium/cc/CCDirectRenderer.cpp: Added.
340         (projectionMatrix):
341         (canvasMatrix):
342         (WebCore):
343         (WebCore::CCDirectRenderer::DrawingFrame::initializeMatrices):
344         (WebCore::CCDirectRenderer::DrawingFrame::initializeScissors):
345         (WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
346         (WebCore::CCDirectRenderer::drawFrame):
347         (WebCore::CCDirectRenderer::drawRenderPass):
348         (WebCore::CCDirectRenderer::useRenderPass):
349         (WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
350         (WebCore::CCDirectRenderer::renderPassTextureSize):
351         (WebCore::CCDirectRenderer::renderPassTextureFormat):
352         * platform/graphics/chromium/cc/CCDirectRenderer.h: Added.
353         (WebCore):
354         (CCDirectRenderer):
355         (WebCore::CCDirectRenderer::~CCDirectRenderer):
356         (WebCore::CCDirectRenderer::resourceProvider):
357         (WebCore::CCDirectRenderer::CCDirectRenderer):
358         (DrawingFrame):
359         (WebCore::CCDirectRenderer::DrawingFrame::DrawingFrame):
360         (CachedTexture):
361         (WebCore::CCDirectRenderer::CachedTexture::create):
362         (WebCore::CCDirectRenderer::CachedTexture::~CachedTexture):
363         (WebCore::CCDirectRenderer::CachedTexture::isComplete):
364         (WebCore::CCDirectRenderer::CachedTexture::setIsComplete):
365         (WebCore::CCDirectRenderer::CachedTexture::CachedTexture):
366         (WebCore::CCDirectRenderer::quadVertexRect):
367         (WebCore::CCDirectRenderer::quadRectTransform):
368
369 2012-08-20  Julien Chaffraix  <jchaffraix@webkit.org>
370
371         Introduce a will-be-removed-from-tree notification in RenderObject
372         https://bugs.webkit.org/show_bug.cgi?id=94271
373
374         Reviewed by Abhishek Arya.
375
376         Following bug 93874, we have an insertion notification. This change adds the
377         matching removal notification (willBeRemovedFromTree).
378
379         Refactoring covered by existing tests.
380
381         * rendering/RenderObjectChildList.cpp:
382         (WebCore::RenderObjectChildList::removeChildNode):
383         Removed the code from here and moved it below.
384
385         * rendering/RenderObject.cpp:
386         (WebCore::RenderObject::willBeRemovedFromTree):
387         * rendering/RenderObject.h:
388         This is the base function that should be called by every instance.
389
390         * rendering/RenderListItem.cpp:
391         (WebCore::RenderListItem::willBeRemovedFromTree):
392         * rendering/RenderListItem.h:
393         * rendering/RenderQuote.cpp:
394         (WebCore::RenderQuote::willBeRemovedFromTree):
395         * rendering/RenderQuote.h:
396         * rendering/RenderRegion.cpp:
397         (WebCore::RenderRegion::willBeRemovedFromTree):
398         * rendering/RenderRegion.h:
399         Overriden functions.
400
401 2012-08-20  Mike West  <mkwst@chromium.org>
402
403         CSP 1.1: The 'plugin-types' warning should include details about explicit type declaration when relevant.
404         https://bugs.webkit.org/show_bug.cgi?id=94432
405
406         Reviewed by Adam Barth.
407
408         Given a 'plugin-types' Content Security Policy directive, an 'object' or
409         'embed' tag is blocked if it doesn't include an explicit declaration of
410         the plugin's expected media type. This restriction should be made clear
411         in the console warning that's generated.
412
413         Existing tests have been adjusted to agree with the new error string.
414
415         * page/ContentSecurityPolicy.cpp:
416         (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
417             If a media type fail to match the policy's restrictions, and the
418             declared type attribute is empty, then add another line to the
419             console warning, espousing the virtues of explicit declaration.
420
421 2012-08-20  Dana Jansens  <danakj@chromium.org>
422
423         [chromium] Update HUD resources as a final step to drawing a frame
424         https://bugs.webkit.org/show_bug.cgi?id=93743
425
426         Reviewed by Adrienne Walker.
427
428         The HUD should be painted as a last step, after the whole frame has been
429         generated. This introduces a new "updateHudTexture" method on the HUD layer
430         and has the HUD layer save itself on CCLayerTreeHostImpl so that it can
431         call back to this method.
432
433         This allows the CCLayerTreeHostImpl to cause the HUD layer to update its
434         texture as a final step before drawing the frame, allowing the HUD texture
435         to contain all possible information about the current frame.
436
437         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
438         (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
439         (WebCore):
440         (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
441         (WebCore::CCHeadsUpDisplayLayerImpl::updateHudTexture):
442         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
443         (CCHeadsUpDisplayLayerImpl):
444         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
445         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
446         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
447         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
448         (WebCore::CCLayerTreeHostImpl::drawLayers):
449         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
450         (WebCore):
451         (WebCore::CCLayerTreeHostImpl::setHudLayer):
452         (WebCore::CCLayerTreeHostImpl::hudLayer):
453         (CCLayerTreeHostImpl):
454
455 2012-08-20  Ian Vollick  <vollick@chromium.org>
456
457         [chromium] Add tracing for active composited animations
458         https://bugs.webkit.org/show_bug.cgi?id=84210
459
460         Reviewed by James Robinson.
461
462         This patch issues the trace events from the animations. Animations will
463         report when they start and finish on the main and impl threads (via
464         TRACE_EVENT_ASYNC*), and also issues instant trace events whenever they
465         change state.
466
467         No new tests, only changes tracing behavior.
468
469         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
470         (WebCore::CCActiveAnimation::CCActiveAnimation):
471         (WebCore::CCActiveAnimation::~CCActiveAnimation):
472         (WebCore::CCActiveAnimation::setRunState):
473         (WebCore::CCActiveAnimation::clone):
474         (WebCore):
475         (WebCore::CCActiveAnimation::cloneAndInitialize):
476         * platform/graphics/chromium/cc/CCActiveAnimation.h:
477         (WebCore::CCActiveAnimation::isControllingInstance):
478         (CCActiveAnimation):
479         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
480         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
481         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
482         (WebCore::CCLayerAnimationController::tickAnimations):
483
484 2012-08-20  Bill Budge  <bbudge@chromium.org>
485
486         webkitfullscreenchange not fired properly in iframe.
487         https://bugs.webkit.org/show_bug.cgi?id=93525
488
489         Reviewed by Adam Barth.
490
491         webkitCancelFullScreen exits fullscreen by invoking webkitExitFullScreen on topDocument.
492         However, if webkitDidExitFullScreenForElement is invoked on a descendant document, no events
493         get dispatched. This change starts the event dispatch delay timer on the document where
494         webkitCancelFullScreen was called, so that the events get dispatched. In addition, when events
495         are dispatched, the check whether a node has been removed is changed to also check that the
496         node isn't in another document, as can happen with frames. Finally, webkitExitFullscreen
497         is fixed to remove unnecessary code and conform to the spec.
498
499         No new tests (the existing fullscreen/exit-full-screen-iframe.html test now passes).
500
501         * dom/Document.cpp:
502         (WebCore::Document::webkitExitFullscreen):
503         (WebCore::Document::webkitDidExitFullScreenForElement):
504         (WebCore::Document::fullScreenChangeDelayTimerFired):
505
506 2012-08-20  Yuzhu Shen  <yzshen@chromium.com>
507
508         [chromium] pepper plugins sometimes are shifted by 1 pixel
509         https://bugs.webkit.org/show_bug.cgi?id=94257
510
511         Reviewed by Levi Weintraub.
512
513         Change RenderWidget::updateWidgetGeometry() to use LayoutRect instead of IntRect to avoid unwanted truncation
514         (when converting from FloatRect to IntRect).
515
516         This makes sure that the optimized rendering code path of Pepper plugin
517         (PluginInstance::GetBitmapForOptimizedPluginPaint) has consistent coordinates with the normal WebKit rendering
518         code path.
519
520         No new tests because we don't have Pepper plugin tests in WebKit.
521
522         * rendering/RenderWidget.cpp:
523         (WebCore::RenderWidget::updateWidgetGeometry):
524
525 2012-08-20  Christophe Dumez  <christophe.dumez@intel.com>
526
527         postMessage() in MessagePort.idl does not match spec
528         https://bugs.webkit.org/show_bug.cgi?id=94477
529
530         Reviewed by Kentaro Hara.
531
532         Update definition of postMessage() in MessagePort.idl
533         to match the specification at:
534         http://www.w3.org/TR/html5/comms.html#messageport
535
536         The first argument should be of type 'any', not
537         'DOMString'.
538
539         No new tests, no behavior change.
540
541         * dom/MessagePort.idl:
542
543 2012-08-20  Sheriff Bot  <webkit.review.bot@gmail.com>
544
545         Unreviewed, rolling out r125989.
546         http://trac.webkit.org/changeset/125989
547         https://bugs.webkit.org/show_bug.cgi?id=94485
548
549         "Two of the new tests always failed on Mac bots" (Requested by
550         bradee-oh on #webkit).
551
552         * css/CSSComputedStyleDeclaration.cpp:
553         (WebCore):
554         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
555         * css/CSSParser.cpp:
556         (WebCore::isValidKeywordPropertyAndValue):
557         (WebCore::isKeywordPropertyID):
558         (WebCore::CSSParser::parseValue):
559         * css/CSSProperty.cpp:
560         (WebCore::CSSProperty::isInheritedProperty):
561         * css/CSSPropertyNames.in:
562         * css/CSSValueKeywords.in:
563         * css/StyleBuilder.cpp:
564         (WebCore::StyleBuilder::StyleBuilder):
565         * rendering/RenderLayer.h:
566         (RenderLayer):
567         * rendering/RenderLayerBacking.cpp:
568         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
569         (WebCore):
570         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
571         * rendering/RenderLayerBacking.h:
572         (RenderLayerBacking):
573         * rendering/style/RenderStyle.cpp:
574         (WebCore::RenderStyle::diff):
575         * rendering/style/RenderStyle.h:
576         * rendering/style/StyleRareNonInheritedData.cpp:
577         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
578         (WebCore::StyleRareNonInheritedData::operator==):
579         * rendering/style/StyleRareNonInheritedData.h:
580         (StyleRareNonInheritedData):
581
582 2012-08-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
583
584         [Qt] Custom tap-highlight-color renders fully opaque
585         https://bugs.webkit.org/show_bug.cgi?id=94468
586
587         Reviewed by Kenneth Rohde Christiansen.
588
589         Adjust the default tap-highlight-color to figure in that is will be
590         drawn semi-transparent.
591
592         * rendering/RenderTheme.h:
593         (RenderTheme):
594
595 2012-08-20  Andrey Adaikin  <aandrey@chromium.org>
596
597         Web Inspector: [WebGL] Add minimum transport protocol from backend to frontend
598         https://bugs.webkit.org/show_bug.cgi?id=88973
599
600         Reviewed by Pavel Feldman.
601
602         Added the following protocol methods to communicate with the WebGL injected
603         module: captureFrame, getTraceLog, dropTraceLog, replayTraceLog.
604
605         * inspector/CodeGeneratorInspector.py:
606         * inspector/InjectedScriptWebGLModule.cpp:
607         (WebCore::InjectedScriptWebGLModule::captureFrame):
608         (WebCore):
609         (WebCore::InjectedScriptWebGLModule::dropTraceLog):
610         (WebCore::InjectedScriptWebGLModule::getTraceLog):
611         (WebCore::InjectedScriptWebGLModule::replayTraceLog):
612         * inspector/InjectedScriptWebGLModule.h:
613         (InjectedScriptWebGLModule):
614         * inspector/Inspector.json:
615         * inspector/InspectorController.cpp:
616         (WebCore::InspectorController::InspectorController):
617         * inspector/InspectorWebGLAgent.cpp:
618         (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
619         (WebCore::InspectorWebGLAgent::dropTraceLog):
620         (WebCore):
621         (WebCore::InspectorWebGLAgent::captureFrame):
622         (WebCore::InspectorWebGLAgent::getTraceLog):
623         (WebCore::InspectorWebGLAgent::replayTraceLog):
624         * inspector/InspectorWebGLAgent.h:
625         (WebCore):
626         (WebCore::InspectorWebGLAgent::create):
627         (InspectorWebGLAgent):
628
629 2012-08-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
630
631         [TouchAdjustment] Adjust to word or selection
632         https://bugs.webkit.org/show_bug.cgi?id=94449
633
634         Reviewed by Antonio Gomes.
635
636         Makes each separate word a separate subtarget when context menu triggers
637         selections, and only the selected part of a partial selected node a 
638         target when selections are not overridden.
639
640         Test: touchadjustment/context-menu-text-subtargets.html
641
642         * page/TouchAdjustment.cpp:
643         (TouchAdjustment):
644         (WebCore::TouchAdjustment::providesContextMenuItems):
645         (WebCore::TouchAdjustment::appendQuadsToSubtargetList):
646         (WebCore::TouchAdjustment::appendBasicSubtargetsForNode):
647         (WebCore::TouchAdjustment::appendContextSubtargetsForNode):
648         (WebCore::TouchAdjustment::compileSubtargetList):
649         (WebCore::findBestClickableCandidate):
650         (WebCore::findBestContextMenuCandidate):
651
652 2012-08-20  Xan Lopez  <xlopez@igalia.com>
653
654         [GTK] Provide backwards compatible method for WebKitDOMWebKitNamedFlow::overflow
655         https://bugs.webkit.org/show_bug.cgi?id=94464
656
657         Reviewed by Carlos Garcia Campos.
658
659         Provide a compatibility method to access the new 'overset'
660         property through the old 'overflow' name in
661         WebKitDOMWebKitNamedFlow. Note that trying to access it through
662         g_object_get directly will give a runtime warning, since the
663         property does not actually exist anymore; this is done purely to
664         maintain API compatibility.
665
666         * bindings/gobject/WebKitDOMCustom.cpp:
667         (webkit_dom_webkit_named_flow_get_overflow): add method.
668         * bindings/gobject/WebKitDOMCustom.h:
669
670 2012-08-20  Sami Kyostila  <skyostil@chromium.org>
671
672         [chromium] Convert screen space scroll gestures to layer space
673         https://bugs.webkit.org/show_bug.cgi?id=92499
674
675         Reviewed by James Robinson.
676
677         Scroll gestures should be converted from screen space to local layer space to
678         correctly apply the scroll delta to page scaled and/or transformed layers.
679         Visually this means that the scrolled content will always follow the user's
680         finger for any "well-formed" layer transform.
681
682         Wheel scroll deltas will still be directly interpreted as local layer scroll
683         coordinates.
684
685         We also adjust the logic for propagating ("bubbling") scroll events to parent
686         layers. Previously a parent layer was allowed to scroll in the screen-space
687         axis orthogonal to the direction the starting layer scrolled toward. For
688         example if a vertically scrolling layer is scrolled diagonally down and right,
689         the layer moves down and its parent to the right.
690
691         This patch generalizes this behavior to non-axis aligned transformed layers so
692         that the scrolling direction of any parent is constrained to be perpendicular
693         direction of movement of the starting layer. This makes the scrolling behavior
694         of transformed layers physically plausible. For instance, assume a 45 degree
695         rotated, vertically scrollable layer. Dragging your finger vertically
696         (relative to the layer) scrolls the layer up and down, while horizontal
697         movement results in the parent of the layer moving in a corresponding way.
698
699         Since generally users want to scroll a single layer in one direction, this
700         patch also introduces a rule that if the resulting movement of a layer is
701         within 45 degrees of the original scroll input, the bubbling process is
702         stopped. This makes it possible to reliably scroll a single layer without
703         affecting any of its parents.
704
705         Added new unit tests:
706             CCLayerTreeHostImplTest.scrollAxisAlignedRotatedLayer
707             CCLayerTreeHostImplTest.scrollNonAxisAlignedRotatedLayer
708             CCLayerTreeHostImplTest.scrollScaledLayer
709             CCMathUtilTest.smallestAngleBetweenVectors
710             CCMathUtilTest.vectorProjection
711
712         * platform/graphics/chromium/cc/CCInputHandler.h:
713         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
714         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
715         (WebCore::CCLayerTreeHostImpl::scrollBegin):
716         (WebCore::scrollLayerWithScreenSpaceDelta):
717         (WebCore):
718         (WebCore::scrollLayerWithLocalDelta):
719         (WebCore::CCLayerTreeHostImpl::scrollBy):
720         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
721         (CCLayerTreeHostImpl):
722         * platform/graphics/chromium/cc/CCMathUtil.cpp:
723         (WebCore::CCMathUtil::smallestAngleBetweenVectors):
724         (WebCore):
725         (WebCore::CCMathUtil::projectVector):
726         * platform/graphics/chromium/cc/CCMathUtil.h:
727         (CCMathUtil):
728
729 2012-08-20  Carlos Garcia Campos  <cgarcia@igalia.com>
730
731         [GTK] Add API to set preferred languages to WebKit2 GTK+
732         https://bugs.webkit.org/show_bug.cgi?id=90878
733
734         Unreviewed. Fix mac build.
735
736         * WebCore.exp.in: Export WebCore::languageDidChange().
737
738 2012-08-20  Pavel Feldman  <pfeldman@chromium.org>
739
740         Web Inspector: improve standalone test harness to allow attaching to inspector before test.
741         https://bugs.webkit.org/show_bug.cgi?id=94426
742
743         Reviewed by Vsevolod Vlasov.
744
745         - User can not "Debug", attach inspector to the front-end and "Continue" test execution.
746         - You can also assign filter from the query parameter.
747
748         * inspector/front-end/test-runner.html:
749
750 2012-08-20  Pavel Feldman  <pfeldman@chromium.org>
751
752         Web Inspector: load scripts panel lazily
753         https://bugs.webkit.org/show_bug.cgi?id=94416
754
755         Reviewed by Vsevolod Vlasov.
756
757         - removes access to WebInspector.panels.scripts and loads it lazily.
758         - extracts classes to their own files when classes residing in one file belong to different modules
759         - removes StylesPanel.js in favor of the actual classes it contains 
760
761         * WebCore.gypi:
762         * WebCore.vcproj/WebCore.vcproj:
763         * WebCore.xcodeproj/project.pbxproj:
764         * inspector/compile-front-end.py:
765         * inspector/front-end/AdvancedSearchController.js:
766         (WebInspector.AdvancedSearchController.prototype.handleShortcut):
767         * inspector/front-end/BreakpointsSidebarPane.js:
768         * inspector/front-end/FilteredItemSelectionDialog.js:
769         * inspector/front-end/InspectorFrontendAPI.js:
770         (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
771         (InspectorFrontendAPI.setDebuggingEnabled):
772         * inspector/front-end/NativeBreakpointsSidebarPane.js: Added.
773         (WebInspector.NativeBreakpointsSidebarPane):
774         (WebInspector.NativeBreakpointsSidebarPane.prototype._addListElement):
775         (WebInspector.NativeBreakpointsSidebarPane.prototype._removeListElement):
776         (WebInspector.NativeBreakpointsSidebarPane.prototype._reset):
777         * inspector/front-end/ObjectPropertiesSection.js:
778         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
779         * inspector/front-end/ScriptSnippetModel.js:
780         * inspector/front-end/ScriptsPanel.js:
781         (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
782         * inspector/front-end/SnippetJavaScriptSourceFrame.js: Added.
783         (WebInspector.SnippetJavaScriptSourceFrame):
784         (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
785         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
786         * inspector/front-end/StyleSheetOutlineDialog.js: Added.
787         (WebInspector.StyleSheetOutlineDialog):
788         (WebInspector.StyleSheetOutlineDialog.show):
789         (WebInspector.StyleSheetOutlineDialog.prototype.itemTitleAt):
790         (WebInspector.StyleSheetOutlineDialog.prototype.itemSubtitleAt):
791         (WebInspector.StyleSheetOutlineDialog.prototype.itemKeyAt):
792         (WebInspector.StyleSheetOutlineDialog.prototype.itemsCount):
793         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
794         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
795         (WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
796         (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):
797         * inspector/front-end/StyleSource.js: Renamed from Source/WebCore/inspector/front-end/StylesPanel.js.
798         (WebInspector.StylesUISourceCodeProvider):
799         (WebInspector.StylesUISourceCodeProvider.prototype.uiSourceCodes):
800         (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
801         (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
802         (WebInspector.StylesUISourceCodeProvider.prototype._populate):
803         (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
804         (WebInspector.StylesUISourceCodeProvider.prototype.reset):
805         (WebInspector.StyleSource):
806         (WebInspector.StyleSource.prototype.isEditable):
807         (WebInspector.StyleSource.prototype.workingCopyCommitted):
808         (WebInspector.StyleSource.prototype.workingCopyChanged):
809         (WebInspector.StyleSource.prototype._callOrSetTimeout):
810         (WebInspector.StyleSource.prototype._commitIncrementalEdit):
811         (WebInspector.StyleSource.prototype._clearIncrementalUpdateTimer):
812         (WebInspector.InspectorStyleSource):
813         * inspector/front-end/WebKit.qrc:
814         * inspector/front-end/inspector.html:
815         * inspector/front-end/inspector.js:
816         (WebInspector._panelDescriptors):
817         (WebInspector._registerShortcuts):
818         (WebInspector.documentKeyDown):
819         (WebInspector._showAnchorLocation):
820
821 2012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>
822
823         [EFL] Get rid of pango backend support once harfbuzz-ng is working
824         https://bugs.webkit.org/show_bug.cgi?id=92102
825
826         Reviewed by Kenneth Rohde Christiansen.
827
828         Removing support for Pango complex font rendering now that we HarfBuzz.
829
830         No new tests, no change in behavior.
831
832         * PlatformEfl.cmake: Removing Pango specific includes and libraries.
833
834 2012-08-20  Pavel Feldman  <pfeldman@chromium.org>
835
836         Web Inspector: prepare scripts panel to be lazily loaded
837         https://bugs.webkit.org/show_bug.cgi?id=94423
838
839         Reviewed by Vsevolod Vlasov.
840
841         - makes scripts panel read workspace data upon creation
842         - moves pause on script state management into the debugger model
843         - updates frontend API to use debugger model, not scripts panel
844
845         * inspector/front-end/DebuggerModel.js:
846         (WebInspector.DebuggerModel.prototype.debuggerEnabled):
847         (WebInspector.DebuggerModel.prototype.disableDebugger):
848         (WebInspector.DebuggerModel.prototype._debuggerWasEnabled):
849         (WebInspector.DebuggerModel.prototype._pauseOnExceptionStateChanged):
850         (WebInspector.DebuggerModel.prototype.get _debuggerWasDisabled):
851         * inspector/front-end/InspectorFrontendAPI.js:
852         (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
853         (InspectorFrontendAPI.setDebuggingEnabled):
854         * inspector/front-end/ScriptsPanel.js:
855         (WebInspector.ScriptsPanel):
856         (WebInspector.ScriptsPanel.prototype._debuggerWasEnabled):
857         (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
858         (WebInspector.ScriptsPanel.prototype._reset):
859         (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
860         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
861         (WebInspector.ScriptsPanel.prototype._enableDebugging):
862         (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions):
863         (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
864         * inspector/front-end/inspector.js:
865         (WebInspector.documentKeyDown):
866
867 2012-08-20  Robin Cao  <robin.cao@torchmobile.com.cn>
868
869         [BlackBerry] Adapt to changes in the platform media player API
870         https://bugs.webkit.org/show_bug.cgi?id=94329
871         PR #194237
872
873         Reviewed by Antonio Gomes.
874
875         The interface to platform's media player has changed from MMRPlayer
876         to PlatformPlayer. This patch adapts to this change.
877
878         And we also decided to postpone the creation of PlatformPlayer until
879         the loading started. This is needed because we may create different
880         types of player for different media sources.
881
882         This is a refactor, no new tests.
883
884         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
885         (WebCore::MediaPlayerPrivate::getSupportedTypes):
886         (WebCore::MediaPlayerPrivate::supportsType):
887         (WebCore::MediaPlayerPrivate::notifyAppActivatedEvent):
888         (WebCore::MediaPlayerPrivate::setCertificatePath):
889         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
890         (WebCore::MediaPlayerPrivate::load):
891         (WebCore::MediaPlayerPrivate::cancelLoad):
892         (WebCore::MediaPlayerPrivate::prepareToPlay):
893         (WebCore::MediaPlayerPrivate::play):
894         (WebCore::MediaPlayerPrivate::pause):
895         (WebCore::MediaPlayerPrivate::naturalSize):
896         (WebCore::MediaPlayerPrivate::hasVideo):
897         (WebCore::MediaPlayerPrivate::hasAudio):
898         (WebCore::MediaPlayerPrivate::duration):
899         (WebCore::MediaPlayerPrivate::currentTime):
900         (WebCore::MediaPlayerPrivate::seek):
901         (WebCore::MediaPlayerPrivate::setRate):
902         (WebCore::MediaPlayerPrivate::paused):
903         (WebCore::MediaPlayerPrivate::setVolume):
904         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
905         (WebCore::MediaPlayerPrivate::buffered):
906         (WebCore::MediaPlayerPrivate::paint):
907         (WebCore::MediaPlayerPrivate::hasAvailableVideoFrame):
908         (WebCore::MediaPlayerPrivate::movieLoadType):
909         (WebCore::MediaPlayerPrivate::setAllowPPSVolumeUpdates):
910         (WebCore::MediaPlayerPrivate::updateStates):
911         (WebCore):
912         (WebCore::MediaPlayerPrivate::onStateChanged):
913         (WebCore::MediaPlayerPrivate::onMediaStatusChanged):
914         (WebCore::MediaPlayerPrivate::onError):
915         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
916         (WebCore::MediaPlayerPrivate::showErrorDialog):
917         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
918         (MediaPlayerPrivate):
919
920 2012-08-19  Kentaro Hara  <haraken@chromium.org>
921
922         [V8] Move contextDebugId() and setContextDebugId() from V8Proxy to ScriptController
923         https://bugs.webkit.org/show_bug.cgi?id=94446
924
925         Reviewed by Adam Barth.
926
927         To kill V8Proxy, we can move contextDebugId() and setContextDebugId()
928         from V8Proxy to ScriptController.
929
930         No tests. No change in behavior.
931
932         * bindings/v8/ScriptController.cpp:
933         (WebCore::ScriptController::setContextDebugId):
934         (WebCore):
935         (WebCore::ScriptController::contextDebugId):
936         * bindings/v8/ScriptController.h:
937         (ScriptController):
938         * bindings/v8/V8IsolatedContext.cpp:
939         (WebCore::V8IsolatedContext::V8IsolatedContext):
940         * bindings/v8/V8Proxy.cpp:
941         * bindings/v8/V8Proxy.h:
942         (V8Proxy):
943
944 2012-08-20  Kentaro Hara  <haraken@chromium.org>
945
946         [V8] Move V8Proxy::newInstance() to V8ObjectConstructor
947         https://bugs.webkit.org/show_bug.cgi?id=94443
948
949         Reviewed by Adam Barth.
950
951         To kill V8Proxy, this patch moves V8Proxy::newInstance() to
952         V8ObjectConstructor::newInstanceInFrame().
953         In addition, this patch does the following things:
954
955         - For consistency with V8ObjectConstructor::newInstanceInFrame(),
956         this patch inserts an if(v8::V8::IsDead()) check to just after
957         Function::NewInstance(). The check is done by V8Binding::assertIfV8IsDead().
958
959         - To avoid #include circular dependency, this patch de-inline
960         V8ObjectConstructor::newInstance()s. I didn't observe any perf regression.
961         I don't think these methods are worth being inlined, because
962         these methods call Function::NewInstance(), which is not inlined
963         and calls a bunch of heavy mehtods in V8.
964
965         No tests. No change in behavior.
966
967         * bindings/v8/NPV8Object.cpp:
968         (_NPN_Construct):
969         * bindings/v8/V8Binding.cpp:
970         (WebCore::assertIfV8IsDead):
971         (WebCore):
972         * bindings/v8/V8Binding.h:
973         (WebCore):
974         * bindings/v8/V8ObjectConstructor.cpp:
975         (WebCore::V8ObjectConstructor::newInstance):
976         (WebCore):
977         (WebCore::V8ObjectConstructor::newInstanceInFrame):
978         * bindings/v8/V8ObjectConstructor.h:
979         (WebCore):
980         (V8ObjectConstructor):
981         * bindings/v8/V8Proxy.cpp:
982         (WebCore::V8Proxy::runScript):
983         (WebCore::V8Proxy::instrumentedCallFunction):
984
985 2012-08-20  Kentaro Hara  <haraken@chromium.org>
986
987         [V8] Move V8Proxy::m_extensions to ScriptController
988         https://bugs.webkit.org/show_bug.cgi?id=94444
989
990         Reviewed by Adam Barth.
991
992         To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
993         This patch also renames extensions() to registeredExtensions() for clarification.
994
995         No tests. No change in behavior.
996
997         * bindings/v8/ScriptController.cpp:
998         (WebCore::ScriptController::registeredExtensions):
999         (WebCore):
1000         (WebCore::ScriptController::registerExtensionIfNeeded):
1001         * bindings/v8/ScriptController.h:
1002         (WebCore):
1003         (ScriptController):
1004         * bindings/v8/V8DOMWindowShell.cpp:
1005         (WebCore::V8DOMWindowShell::createNewContext):
1006         * bindings/v8/V8Proxy.cpp:
1007         * bindings/v8/V8Proxy.h:
1008         (WebCore):
1009         (V8Proxy):
1010
1011 2012-08-20  Pavel Feldman  <pfeldman@chromium.org>
1012
1013         Web Inspector: toolbar causes 8 reflows upon opening
1014         https://bugs.webkit.org/show_bug.cgi?id=94422
1015
1016         Reviewed by Yury Semikhatsky.
1017
1018         Toolbar's overflow code causes inspector to do 8 reflows upon opening.
1019         Fixing it via introducing batch toolbar update.
1020
1021         * inspector/front-end/Toolbar.js:
1022         (WebInspector.Toolbar):
1023         (WebInspector.Toolbar.prototype.setCoalescingUpdate):
1024         (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
1025         * inspector/front-end/inspector.css:
1026         (body.compact .toolbar-icon):
1027         (body.compact .toolbar-icon.custom-toolbar-icon):
1028         (body.compact .toolbar-item:active .toolbar-icon):
1029         (body.compact .toolbar-label):
1030         (body.compact .toolbar-item.resources .toolbar-icon):
1031         (body.compact .toolbar-item.network .toolbar-icon):
1032         (body.compact .toolbar-item.scripts .toolbar-icon):
1033         (body.compact .toolbar-item.timeline .toolbar-icon):
1034         (body.compact .toolbar-item.profiles .toolbar-icon):
1035         (body.compact .toolbar-item.audits .toolbar-icon):
1036         (body.compact .toolbar-item.console .toolbar-icon):
1037         * inspector/front-end/inspector.js:
1038         (WebInspector.get _setCompactMode):
1039         (WebInspector.windowResize):
1040
1041 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1042
1043         [V8] Replace proxy()->windowShell() in ScriptController with windowShell()
1044         https://bugs.webkit.org/show_bug.cgi?id=94445
1045
1046         Reviewed by Adam Barth.
1047
1048         Now ScriptController owns windowShell. So ScriptController doesn't
1049         need to get windowShell through V8Proxy.
1050
1051         No tests. No change in behavior.
1052
1053         * bindings/v8/ScriptController.cpp:
1054         (WebCore::ScriptController::updateSecurityOrigin):
1055         (WebCore::ScriptController::haveInterpreter):
1056         (WebCore::ScriptController::enableEval):
1057         (WebCore::ScriptController::disableEval):
1058         (WebCore::ScriptController::updateDocument):
1059         (WebCore::ScriptController::namedItemAdded):
1060         (WebCore::ScriptController::namedItemRemoved):
1061
1062 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1063
1064         [V8] Move V8Proxy::callFunction() to ScriptController
1065         https://bugs.webkit.org/show_bug.cgi?id=94437
1066
1067         Reviewed by Adam Barth.
1068
1069         To kill V8Proxy, this patch moves callFunction() from V8Proxy to ScriptController.
1070
1071         No tests. No change in behavior.
1072
1073         * bindings/v8/DOMTransaction.cpp:
1074         (WebCore::DOMTransaction::callFunction):
1075         * bindings/v8/NPV8Object.cpp:
1076         (_NPN_Invoke):
1077         (_NPN_InvokeDefault):
1078         * bindings/v8/ScheduledAction.cpp:
1079         (WebCore::ScheduledAction::execute):
1080         * bindings/v8/ScheduledAction.h:
1081         (WebCore):
1082         (ScheduledAction):
1083         * bindings/v8/ScriptController.cpp:
1084         (WebCore::ScriptController::callFunction):
1085         (WebCore):
1086         (WebCore::ScriptController::callFunctionEvenIfScriptDisabled):
1087         * bindings/v8/ScriptController.h:
1088         (ScriptController):
1089         * bindings/v8/V8EventListener.cpp:
1090         (WebCore::V8EventListener::callListenerFunction):
1091         * bindings/v8/V8LazyEventListener.cpp:
1092         (WebCore::V8LazyEventListener::callListenerFunction):
1093         * bindings/v8/V8Proxy.cpp:
1094         * bindings/v8/V8Proxy.h:
1095         (V8Proxy):
1096         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1097         (WebCore::V8HTMLDocument::openCallback):
1098
1099 2012-08-19  Yoshifumi Inoue  <yosin@chromium.org>
1100
1101         [Forms] Set SpinButtonElement free from HTMLInputElement
1102         https://bugs.webkit.org/show_bug.cgi?id=93941
1103
1104         Reviewed by Kent Tamura.
1105
1106         This patch removes dependency to HTMLInputElement from SpinButtonElement.
1107
1108         Functionalities used to be calling HTMLInputElement functions are
1109         replaced to calling functions SpinButtonOwner class.
1110
1111         * html/TextFieldInputType.cpp:
1112         (WebCore::TextFieldInputType::focusAndSelectSpinButtonOwner): Moved functionality from SpinButtonElement::defaultEventHandler.
1113         (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Moved code from SpinButtonElement::willRespondToMouseClickEvents
1114         (WebCore::TextFieldInputType::shouldSpinButtonRespondToWheelEvents): Moved code from SpinButtonElement::forwardEvent
1115         * html/TextFieldInputType.h:
1116         (TextFieldInputType):
1117         * html/TimeInputType.cpp:
1118         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::focusAndSelectEditControlOwner): Moved functionality from SpinButtonElement::defaultEventHandler.
1119         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerFocused): Added for DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
1120         * html/TimeInputType.h:
1121         * html/shadow/DateTimeEditElement.cpp:
1122         (WebCore::DateTimeEditElement::focusAndSelectSpinButtonOwner): Added for SpinButtonElementOwner class change.
1123         (WebCore::DateTimeEditElement::shouldSpinButtonRespondToMouseEvents): ditto
1124         (WebCore::DateTimeEditElement::shouldSpinButtonRespondToWheelEvents): ditto
1125         * html/shadow/DateTimeEditElement.h:
1126         (EditControlOwner): Added new virtual function declarations for SpinButtonElementOwner class change.
1127         (DateTimeEditElement): Added new function declarations for SpinButtonElementOwner.
1128         * html/shadow/SpinButtonElement.cpp:
1129         (WebCore::SpinButtonElement::defaultEventHandler): Changed to use SpinButtonElementOwner instead of HTMLInputElement.
1130         (WebCore::SpinButtonElement::forwardEvent): ditto
1131         (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): ditto
1132         (WebCore::SpinButtonElement::willRespondToMouseClickEvents): ditto
1133         (WebCore::SpinButtonElement::step): ditto
1134         (WebCore::SpinButtonElement::shouldRespondToMouseEvents): Added helper function for calling SpinButtonOwner instance.
1135         * html/shadow/SpinButtonElement.h:
1136         (SpinButtonOwner): Added new virtual function declarations.
1137         (SpinButtonElement):
1138
1139 2012-08-19  Yoshifumi Inoue  <yosin@chromium.org>
1140
1141         [Tests] time-multiple-fields-appearance-basic.html and time-multiple-fields-appearance-pseudo-elements.html are failed on Chromium Mac
1142         https://bugs.webkit.org/show_bug.cgi?id=94439
1143
1144         Reviewed by Kent Tamura.
1145
1146         This patch disabled CSS selector for Firefox compatibility applied to
1147         multiple fields time input UI, because it is supposed to apply text
1148         field rather than multiple fields.
1149
1150         This patch allows us to have same appearance among Chromium-Linux,
1151         Mac and Win.
1152
1153         No new tests. Following existing tests cover this change:
1154           fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
1155           fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly.html
1156           fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes.html
1157           fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html
1158           fast/forms/time-multiple-fields/time-multiple-fields-appearance-style.html
1159
1160         * css/themeWin.css: Exclude input[type="time"] selector if ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
1161         enabled.
1162
1163 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1164
1165         [V8] Rename SafeAllocation to V8ObjectConstructor
1166         https://bugs.webkit.org/show_bug.cgi?id=94436
1167
1168         Reviewed by Adam Barth.
1169
1170         For clarification.
1171
1172         No tests. No change in behavior.
1173
1174         * UseV8.cmake:
1175         * WebCore.gypi:
1176         * bindings/v8/ScriptFunctionCall.cpp:
1177         (WebCore::ScriptFunctionCall::construct):
1178         * bindings/v8/V8Binding.cpp:
1179         (WebCore::createRawTemplate):
1180         * bindings/v8/V8Binding.h:
1181         * bindings/v8/V8DOMWindowShell.cpp:
1182         (WebCore::V8DOMWindowShell::installDOMWindow):
1183         * bindings/v8/V8DOMWrapper.cpp:
1184         (WebCore::V8DOMWrapper::instantiateV8Object):
1185         * bindings/v8/V8NPObject.cpp:
1186         (WebCore::createV8ObjectForNPObject):
1187         * bindings/v8/V8ObjectConstructor.cpp: Renamed from Source/WebCore/bindings/v8/SafeAllocation.cpp.
1188         (WebCore):
1189         (WebCore::V8ObjectConstructor::isValidConstructorMode):
1190         * bindings/v8/V8ObjectConstructor.h: Renamed from Source/WebCore/bindings/v8/SafeAllocation.h.
1191         (WebCore):
1192         (ConstructorMode):
1193         (WebCore::ConstructorMode::ConstructorMode):
1194         (WebCore::ConstructorMode::~ConstructorMode):
1195         (WebCore::ConstructorMode::current):
1196         (V8ObjectConstructor):
1197         (WebCore::V8ObjectConstructor::newInstance):
1198         * bindings/v8/V8PerContextData.cpp:
1199         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
1200         * bindings/v8/WorkerContextExecutionProxy.cpp:
1201         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
1202         * bindings/v8/custom/V8InjectedScriptManager.cpp:
1203         (WebCore::createInjectedScriptHostV8Wrapper):
1204         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
1205         (WebCore::toV8):
1206         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
1207         (WebCore::toV8):
1208
1209 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1210
1211         [V8] Move m_windowShell from V8Proxy to ScriptController
1212         https://bugs.webkit.org/show_bug.cgi?id=94438
1213
1214         Reviewed by Adam Barth.
1215
1216         m_windowShell should be owned by ScriptController.
1217         After this change, I can move a bunch of V8Proxy methods
1218         that access windowShell() from V8Proxy to ScriptController.
1219
1220         No tests. No change in behavior.
1221
1222         * bindings/v8/ScriptController.cpp:
1223         (WebCore::ScriptController::ScriptController):
1224         * bindings/v8/ScriptController.h:
1225         (WebCore):
1226         (WebCore::ScriptController::windowShell):
1227         (ScriptController):
1228         * bindings/v8/V8Binding.h:
1229         * bindings/v8/V8Proxy.cpp:
1230         (WebCore::V8Proxy::V8Proxy):
1231         (WebCore::V8Proxy::windowShell):
1232         (WebCore):
1233         * bindings/v8/V8Proxy.h:
1234         (WebCore):
1235         (WebCore::V8Proxy::frame):
1236         (V8Proxy):
1237
1238 2012-08-19  Benjamin Poulain  <benjamin@webkit.org>
1239
1240         Do not allocate SQLiteDatabase's m_openErrorMessage until its needed
1241         https://bugs.webkit.org/show_bug.cgi?id=94434
1242
1243         Reviewed by Andreas Kling.
1244
1245         Previously, m_openErrorMessage was initialized from a static literal string whenever
1246         the database is not open.
1247
1248         This patch changes the way we use m_openErrorMessage to only allocate a string in the
1249         few cases where we need it. If there is no error message, we fallback to the previous
1250         default string.
1251
1252         The goal is to prevent allocating the string unless needed. That saves initialization time
1253         and memory.
1254
1255         * platform/sql/SQLiteDatabase.cpp:
1256         (WebCore::SQLiteDatabase::SQLiteDatabase):
1257         (WebCore::SQLiteDatabase::close):
1258         (WebCore::SQLiteDatabase::lastErrorMsg):
1259
1260 2012-08-19  Benjamin Poulain  <benjamin@webkit.org>
1261
1262         Use initialization from literal for HTML Input type names
1263         https://bugs.webkit.org/show_bug.cgi?id=94421
1264
1265         Reviewed by Kent Tamura.
1266
1267         AtomicString's initialization from literal is faster and use less memory.
1268
1269         * html/InputType.cpp:
1270         (WebCore::InputTypeNames::button):
1271         (WebCore::InputTypeNames::checkbox):
1272         (WebCore::InputTypeNames::color):
1273         (WebCore::InputTypeNames::date):
1274         (WebCore::InputTypeNames::datetime):
1275         (WebCore::InputTypeNames::datetimelocal):
1276         (WebCore::InputTypeNames::email):
1277         (WebCore::InputTypeNames::file):
1278         (WebCore::InputTypeNames::hidden):
1279         (WebCore::InputTypeNames::image):
1280         (WebCore::InputTypeNames::month):
1281         (WebCore::InputTypeNames::number):
1282         (WebCore::InputTypeNames::password):
1283         (WebCore::InputTypeNames::radio):
1284         (WebCore::InputTypeNames::range):
1285         (WebCore::InputTypeNames::reset):
1286         (WebCore::InputTypeNames::search):
1287         (WebCore::InputTypeNames::submit):
1288         (WebCore::InputTypeNames::telephone):
1289         (WebCore::InputTypeNames::text):
1290         (WebCore::InputTypeNames::time):
1291         (WebCore::InputTypeNames::url):
1292         (WebCore::InputTypeNames::week):
1293
1294 2012-08-19  Benjamin Poulain  <benjamin@webkit.org>
1295
1296         Remove the static Strings used for outputting values of CSS_ATTR, CSS_COUNTER, CSS_RECT
1297         https://bugs.webkit.org/show_bug.cgi?id=94420
1298
1299         Reviewed by Kentaro Hara.
1300
1301         Use the new StringBuilder::appendLiteral() instead of keeping some WTF::String in
1302         memory.
1303
1304         The patch reduces memory usage.
1305         It also reduces the binary size (-1672 bytes on x86_64).
1306         I did not measure any difference in performance.
1307
1308         * css/CSSPrimitiveValue.cpp:
1309         (WebCore::CSSPrimitiveValue::customCssText):
1310
1311 2012-08-19  Rik Cabanier  <cabanier@adobe.com>
1312
1313         parse CSS attribute -webkit-blend-mode
1314         https://bugs.webkit.org/show_bug.cgi?id=94024
1315  
1316         Reviewed by Dirk Schulze.
1317
1318         Added parsing and general CSS handling of -webkit-blend-mode per http://www.w3.org/TR/2012/WD-compositing-20120816/
1319
1320         Tests: css3/compositing/blend-mode-property-parsing-invalid.html
1321                css3/compositing/blend-mode-property-parsing.html
1322                css3/compositing/blend-mode-property.html
1323
1324         * css/CSSComputedStyleDeclaration.cpp:
1325         (WebCore):
1326         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1327         * css/CSSParser.cpp:
1328         (WebCore::isValidKeywordPropertyAndValue):
1329         (WebCore::isKeywordPropertyID):
1330         (WebCore::CSSParser::parseValue):
1331         * css/CSSProperty.cpp:
1332         (WebCore::CSSProperty::isInheritedProperty):
1333         * css/CSSPropertyNames.in:
1334         * css/CSSValueKeywords.in:
1335         * css/StyleBuilder.cpp:
1336         (WebCore::StyleBuilder::StyleBuilder):
1337         * rendering/RenderLayer.h:
1338         (RenderLayer):
1339         * rendering/RenderLayerBacking.cpp:
1340         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
1341         (WebCore):
1342         (WebCore::RenderLayerBacking::updateLayerBlendMode):
1343         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1344         (WebCore::RenderLayerBacking::setBlendMode):
1345         * rendering/RenderLayerBacking.h:
1346         (RenderLayerBacking):
1347         * rendering/style/RenderStyle.cpp:
1348         (WebCore::RenderStyle::diff):
1349         * rendering/style/RenderStyle.h:
1350         * rendering/style/StyleRareNonInheritedData.cpp:
1351         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1352         (WebCore::StyleRareNonInheritedData::operator==):
1353         * rendering/style/StyleRareNonInheritedData.h:
1354         (StyleRareNonInheritedData):
1355
1356 2012-08-19  MORITA Hajime  <morrita@google.com>
1357
1358         DOM mutation against including <link> shouldn't trigger pending HTML parser.
1359         https://bugs.webkit.org/show_bug.cgi?id=93641
1360
1361         Reviewed by Ryosuke Niwa.
1362
1363         HTMLLinkElement::removedFrom() invoked Document::removePendingSheet(), which can trigger
1364         HTMLParser that can mutate DOM tree. DOM mutation reentrancy on like this is problematic and
1365         should be prohibited.
1366
1367         This change add an variation of Document::removePendingSheet() which postpones the notification
1368         which triggers DOM mutation, and flush such pending notifications at the end of ongoing mutation.
1369
1370         Test: http/tests/loading/remove-child-triggers-parser.html
1371
1372         * dom/ContainerNodeAlgorithms.h:
1373         (WebCore::ChildNodeRemovalNotifier::notify): Flushed pending notifications at the end.
1374         * dom/Document.cpp:
1375         (WebCore::Document::Document):
1376         (WebCore::Document::removePendingSheet): Added RemovePendingSheetNotificationType parameter.
1377         (WebCore):
1378         (WebCore::Document::didRemoveAllPendingStylesheet): Extracted from removePendingSheet()
1379         * dom/Document.h:
1380         (Document):
1381         (WebCore::Document::setNeedsNotifyRemoveAllPendingStylesheet): A flag setter.
1382         (WebCore::Document::notifyRemovePendingSheetIfNeeded):
1383         (WebCore):
1384         * html/HTMLLinkElement.cpp:
1385         (WebCore::HTMLLinkElement::removedFrom): Switched to use "notification later" version of removePendingSheet()
1386         (WebCore::HTMLLinkElement::removePendingSheet): Added RemovePendingSheetNotificationType parameter.
1387         * html/HTMLLinkElement.h:
1388
1389 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1390
1391         Remove RefPtr from HTMLProgressElement::m_value
1392         https://bugs.webkit.org/show_bug.cgi?id=94336
1393
1394         Reviewed by Kent Tamura.
1395
1396         To avoid reference cycles of RefPtr<Node>s, we want to remove
1397         unnecessary RefPtr<Node>s. The rationale is described in bug 94324.
1398
1399         HTMLProgressElement::m_value does not need to be a RefPtr<Node>, because
1400         it is guaranteed to point to a shadow DOM tree of the HTMLProgressElement
1401         node, which is guaranteed to exist in the subtree of the HTMLProgressElement node.
1402
1403         No tests. No change in behavior.
1404
1405         * html/HTMLProgressElement.cpp:
1406         (WebCore::HTMLProgressElement::HTMLProgressElement):
1407         (WebCore::HTMLProgressElement::createShadowSubtree):
1408         * html/HTMLProgressElement.h:
1409
1410 2012-08-19  Kentaro Hara  <haraken@chromium.org>
1411
1412         Remove RefPtr from SearchInputType::m_resultsButton and SearchInputType::m_cancelButton
1413         https://bugs.webkit.org/show_bug.cgi?id=94339
1414
1415         Reviewed by Kent Tamura.
1416
1417         To avoid reference cycles of RefPtr<Node>s, we want to remove unnecessary
1418         RefPtr<Node>s. The rationale is described in bug 94324.
1419
1420         SearchInputType::m_resultsButton and SearchInputType::m_cancelButton do not
1421         need to be RefPtr<Node>s, because they are guaranteed to point to the shadow
1422         DOM tree of the SearchInputType node, which is guaranteed to exist in the
1423         subtree of the SearchInputType node.
1424
1425         No tests. No change in behavior.
1426
1427         * html/SearchInputType.cpp:
1428         (WebCore::SearchInputType::SearchInputType):
1429         (WebCore::SearchInputType::createShadowSubtree):
1430         (WebCore::SearchInputType::resultsButtonElement):
1431         (WebCore::SearchInputType::cancelButtonElement):
1432         (WebCore::SearchInputType::destroyShadowSubtree):
1433         (WebCore::SearchInputType::subtreeHasChanged):
1434         * html/SearchInputType.h:
1435         (SearchInputType):
1436
1437 2012-08-19  Mike West  <mkwst@chromium.org>
1438
1439         CSP 1.1: Add 'plugin-types' and 'form-action' DOM API.
1440         https://bugs.webkit.org/show_bug.cgi?id=94415
1441
1442         Reviewed by Adam Barth.
1443
1444         Experimental implementations of the new 'plugin-types' and 'form-action'
1445         directives recently landed, but we neglected to add DOM API endpoints to
1446         query their state. Those APIs have been added to the specification[1],
1447         and this patch brings our implementation up to date.
1448
1449         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowformaction.html
1450                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowplugintype.html
1451
1452         * page/DOMSecurityPolicy.cpp:
1453         (isAllowed):
1454             As a drive-by, change a parameter from a KURL to a String to match
1455             the actual template. There's no reason to stringify an empty URL
1456             when we can just use an empty string instead.
1457         (isAllowedWithType):
1458             Call out to the ContentSecurityPolicy object to check the protected
1459             resource's ability to load a given media type.
1460         (WebCore::DOMSecurityPolicy::allowsFormAction):
1461             Call out to the ContentSecurityPolicy object to check the protected
1462             resource's ability to submit a form to the given URL.
1463         (WebCore):
1464         (WebCore::DOMSecurityPolicy::allowsPluginType):
1465             Pipes the plugin type through 'isAllowedWithType' for resolution.
1466         * page/DOMSecurityPolicy.h:
1467             Add the 'allowsPluginType' and 'allowsFormAction' methods.
1468         (DOMSecurityPolicy):
1469         * page/DOMSecurityPolicy.idl:
1470             Add the 'allowsPluginType' and 'allowsFormAction' methods.
1471
1472 2012-08-19  Pavel Feldman  <pfeldman@chromium.org>
1473
1474         Web Inspector: load network panel lazily
1475         https://bugs.webkit.org/show_bug.cgi?id=94414
1476
1477         Reviewed by Vsevolod Vlasov.
1478
1479         This change removes access to WebInspector.panels.network and loads it lazily.
1480
1481         * WebCore.gypi:
1482         * WebCore.xcodeproj/project.pbxproj:
1483         * inspector/front-end/ConsoleMessage.js:
1484         (WebInspector.ConsoleMessageImpl):
1485         (WebInspector.ConsoleMessageImpl.prototype.clone):
1486         * inspector/front-end/ConsoleModel.js:
1487         (WebInspector.ConsoleMessage.create):
1488         (WebInspector.ConsoleDispatcher.prototype.messageAdded):
1489         * inspector/front-end/ConsoleView.js:
1490         (WebInspector.ConsoleMessage.create):
1491         * inspector/front-end/NetworkLog.js:
1492         (WebInspector.NetworkLog):
1493         (WebInspector.NetworkLog.prototype._onRequestStarted):
1494         (WebInspector.NetworkLog.prototype._onLoad):
1495         (WebInspector.NetworkLog.prototype.requestForId):
1496         * inspector/front-end/NetworkManager.js:
1497         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
1498         * inspector/front-end/NetworkPanel.js:
1499         (WebInspector.NetworkLogView):
1500         * inspector/front-end/ScriptSnippetModel.js:
1501         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
1502         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
1503         * inspector/front-end/externs.js:
1504         * inspector/front-end/inspector.html:
1505         * inspector/front-end/inspector.js:
1506         (WebInspector._panelDescriptors):
1507         (WebInspector._showAnchorLocation):
1508
1509 2012-08-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1510
1511         Unreviewed, rolling out r125976.
1512         http://trac.webkit.org/changeset/125976
1513         https://bugs.webkit.org/show_bug.cgi?id=94430
1514
1515         it does not fix build. (Requested by pfeldman on #webkit).
1516
1517         * GNUmakefile.am:
1518         * GNUmakefile.list.am:
1519
1520 2012-08-19  Carlos Garcia Campos  <cgarcia@igalia.com>
1521
1522         Unreviewed. Fix make distcheck.
1523
1524         * GNUmakefile.am: Add idl files in Modules/quota to EXTRA_DIST.
1525         * GNUmakefile.list.am: Add missing files to compilation.
1526
1527 2012-08-19  Andreas Kling  <kling@webkit.org>
1528
1529         Remove unused ElementAttributeData::removeAttribute() overload.
1530         <http://webkit.org/b/94425>
1531
1532         Reviewed by Antti Koivisto.
1533
1534         * dom/ElementAttributeData.h:
1535         (ElementAttributeData):
1536
1537 2012-08-18  Philip Rogers  <pdr@google.com>
1538
1539         Refactor SVGMaskElement to inherit from StyledElement
1540         https://bugs.webkit.org/show_bug.cgi?id=94418
1541
1542         Reviewed by Dirk Schulze.
1543
1544         Previously, SVGMaskElement inherited from SVGStyledLocatableElement which includes
1545         several unnecessary functions (e.g., getBBox()). This patch refactors SVGMaskElement
1546         to inherit from SVGStyledElement which matches the spec:
1547         http://www.w3.org/TR/SVG/single-page.html#masking-InterfaceSVGMaskElement
1548
1549         No new tests as this is just a refactoring.
1550
1551         * svg/SVGMaskElement.cpp:
1552         (WebCore):
1553         (WebCore::SVGMaskElement::SVGMaskElement):
1554         * svg/SVGMaskElement.h:
1555
1556 2012-08-18  Andreas Kling  <kling@webkit.org>
1557
1558         CSSValueList: Reserve the exact amount of space needed when constructing from CSS parser.
1559         (No bug URL as Bugzilla is down today.)
1560
1561         Reviewed by Antti Koivisto.
1562
1563         Use Vector::reserveInitialCapacity() when constructing a CSSValueList from a CSSParserValueList
1564         since we have the final length available. Also inlined the trivial append() and prepend().
1565
1566         * css/CSSValueList.cpp:
1567         (WebCore::CSSValueList::CSSValueList):
1568         * css/CSSValueList.h:
1569         (WebCore::CSSValueList::append):
1570         (WebCore::CSSValueList::prepend):
1571
1572 2012-08-18  Pavel Feldman  <pfeldman@chromium.org>
1573
1574         Web Inspector: make profiles panel a lazily loaded module.
1575         https://bugs.webkit.org/show_bug.cgi?id=94351
1576
1577         Reviewed by Yury Semikhatsky.
1578
1579         - removed usages of WebInspector.panels.profiles.
1580         - made panel lazily loaded
1581
1582         * WebCore.gypi:
1583         * WebCore.xcodeproj/project.pbxproj:
1584         * inspector/front-end/CPUProfileView.js:
1585         (WebInspector.CPUProfileHeader.prototype.createView):
1586         * inspector/front-end/CSSSelectorProfileView.js:
1587         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
1588         (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
1589         (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
1590         (WebInspector.CSSProfileHeader.prototype.createView):
1591         * inspector/front-end/HeapSnapshotDataGrids.js:
1592         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
1593         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
1594         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
1595         * inspector/front-end/HeapSnapshotView.js:
1596         (WebInspector.HeapSnapshotView.prototype._profiles):
1597         (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
1598         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
1599         (WebInspector.HeapProfileHeader.prototype.createView):
1600         * inspector/front-end/InspectorFrontendAPI.js:
1601         (InspectorFrontendAPI.isProfilingJavaScript):
1602         (InspectorFrontendAPI.startProfilingJavaScript):
1603         (InspectorFrontendAPI.stopProfilingJavaScript):
1604         * inspector/front-end/NativeMemorySnapshotView.js:
1605         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
1606         * inspector/front-end/ProfilesPanel.js:
1607         (WebInspector.ProfileType.prototype.buttonClicked):
1608         (WebInspector.ProfileHeader.prototype.view):
1609         (WebInspector.ProfileHeader.prototype.createView):
1610         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
1611         (WebInspector.ProfilesPanel.prototype.showProfileForURL):
1612         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
1613         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
1614         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
1615         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
1616         * inspector/front-end/Settings.js:
1617         * inspector/front-end/externs.js:
1618         * inspector/front-end/inspector.html:
1619         * inspector/front-end/inspector.js:
1620         (WebInspector._panelDescriptors):
1621         (WebInspector._toggleSearchingForNode):
1622         (WebInspector._profilesLinkifier):
1623         (WebInspector._requestZoom.set InspectorFrontendHost):
1624         (WebInspector._requestZoom):
1625         (WebInspector.documentClick.followLink):
1626         (WebInspector.documentClick):
1627
1628 2012-08-18  Pavel Feldman  <pfeldman@chromium.org>
1629
1630         Web Inspector: load panels code on demand
1631         https://bugs.webkit.org/show_bug.cgi?id=94326
1632
1633         Reviewed by Vsevolod Vlasov.
1634
1635         - Introduces importScript that evals in debug mode and inlines for release
1636         - Loads Element, Resources, Timeline, Audits panels lazily.
1637
1638         * WebCore.gypi:
1639         * WebCore.xcodeproj/project.pbxproj:
1640         * inspector/compile-front-end.py:
1641         * inspector/front-end/AuditsPanel.js:
1642         * inspector/front-end/CodeMirrorTextEditor.js:
1643         (WebInspector.CodeMirrorTextEditor):
1644         (WebInspector.CodeMirrorTextEditor.prototype._toRange):
1645         * inspector/front-end/Color.js:
1646         * inspector/front-end/ElementsPanel.js:
1647         * inspector/front-end/ExtensionServer.js:
1648         (WebInspector.ExtensionServer.prototype._onCreatePanel):
1649         * inspector/front-end/Panel.js:
1650         (WebInspector.Panel):
1651         (WebInspector.PanelDescriptor):
1652         (WebInspector.PanelDescriptor.prototype.panel):
1653         * inspector/front-end/ResourcesPanel.js:
1654         * inspector/front-end/SettingsScreen.js:
1655         (WebInspector.GenericSettingsTab):
1656         * inspector/front-end/SourceFrame.js:
1657         (WebInspector.SourceFrame):
1658         * inspector/front-end/Spectrum.js:
1659         (WebInspector.Spectrum.prototype.get outputColorFormat):
1660         * inspector/front-end/StylesSidebarPane.js:
1661         * inspector/front-end/TimelinePanel.js:
1662         * inspector/front-end/inspector.html:
1663         * inspector/front-end/inspector.js:
1664         (WebInspector._panelDescriptors):
1665         (WebInspector.doLoadedDone):
1666         * inspector/front-end/utilities.js:
1667         * inspector/inline-javascript-imports.py:
1668         (main):
1669
1670 2012-08-17  Keishi Hattori  <keishi@webkit.org>
1671
1672         Calendar picker shows wrong date when input element has year earlier than 100
1673         https://bugs.webkit.org/show_bug.cgi?id=94100
1674
1675         Reviewed by Kent Tamura.
1676
1677         Date.UTC can't set an year earlier than 100. So when the input has a value earlier than 100, calendar picker shows the wrong date.
1678
1679         Test: fast/forms/date/calendar-picker-appearance-pre-100.html
1680
1681         * Resources/pagepopups/calendarPicker.js:
1682         (createUTCDate): Uses setUTCFullYear when the year is pre 100.
1683         (parseDateString):
1684         (DaysTable.prototype._renderMonth):
1685         (DaysTable.prototype._maybeSetPreviousMonth):
1686         (DaysTable.prototype._maybeSetNextMonth):
1687
1688 2012-08-17  Vangelis Kokkevis  <vangelis@chromium.org>
1689
1690         [chromium] Fix random noise around text in FPS HUD.
1691         https://bugs.webkit.org/show_bug.cgi?id=94400
1692
1693         Reviewed by James Robinson.
1694
1695         This was the result of an incorrect clear operation on the canvas
1696         that stores the font atlas used by the HUD.
1697
1698
1699         * platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
1700         (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
1701
1702 2012-08-17  Dirk Pranke  <dpranke@chromium.org>
1703
1704         Unreviewed, rolling out r125897.
1705         http://trac.webkit.org/changeset/125897
1706         https://bugs.webkit.org/show_bug.cgi?id=94326
1707
1708         This patch seems to have broken the inspector on the apple mac bots.
1709
1710         * WebCore.gypi:
1711         * inspector/compile-front-end.py:
1712         * inspector/front-end/AuditsPanel.js:
1713         * inspector/front-end/CodeMirrorTextEditor.js:
1714         (WebInspector.CodeMirrorTextEditor):
1715         (WebInspector.CodeMirrorTextEditor.prototype._toRange):
1716         (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries.loadLibrary):
1717         (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries):
1718         * inspector/front-end/Color.js:
1719         * inspector/front-end/ElementsPanel.js:
1720         * inspector/front-end/ExtensionServer.js:
1721         (WebInspector.ExtensionServer.prototype._onCreatePanel):
1722         * inspector/front-end/Panel.js:
1723         (WebInspector.Panel):
1724         (WebInspector.PanelDescriptor):
1725         (WebInspector.PanelDescriptor.prototype.panel):
1726         * inspector/front-end/ResourcesPanel.js:
1727         * inspector/front-end/SettingsScreen.js:
1728         (WebInspector.GenericSettingsTab):
1729         * inspector/front-end/SourceFrame.js:
1730         (WebInspector.SourceFrame):
1731         * inspector/front-end/Spectrum.js:
1732         (WebInspector.Spectrum.prototype.get outputColorFormat):
1733         * inspector/front-end/StylesSidebarPane.js:
1734         * inspector/front-end/TimelinePanel.js:
1735         * inspector/front-end/inspector.html:
1736         * inspector/front-end/inspector.js:
1737         (WebInspector._panelDescriptors):
1738         (WebInspector.doLoadedDone):
1739         * inspector/front-end/utilities.js:
1740
1741 2012-08-17  Chris Rogers  <crogers@google.com>
1742
1743         AudioParam must support k-rate processing with audio-rate connections
1744         https://bugs.webkit.org/show_bug.cgi?id=94385
1745
1746         Reviewed by Kenneth Russell.
1747
1748         Fully implement AudioParam *final* value calculation according to spec:
1749         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam
1750
1751         In particular, this covers the case where the parameter is k-rate, and we also
1752         have audio-rate connections to the AudioParam.
1753
1754         * Modules/webaudio/AudioParam.cpp:
1755         (WebCore::AudioParam::finalValue):
1756         (WebCore):
1757         (WebCore::AudioParam::calculateSampleAccurateValues):
1758         (WebCore::AudioParam::calculateFinalValues):
1759         * Modules/webaudio/AudioParam.h:
1760         (AudioParam):
1761         * Modules/webaudio/DelayDSPKernel.cpp:
1762         (WebCore::DelayDSPKernel::process):
1763
1764 2012-08-17  Alice Cheng  <alice_cheng@apple.com>
1765
1766         Preserve styling elements in DeleteSelectionCommand
1767         <rdar://problem/12040676>
1768         https://bugs.webkit.org/show_bug.cgi?id=93643
1769
1770         Reviewed by Ryosuke Niwa.
1771
1772         Styling elements (<link> and <style>) can appear inside editable content. To 
1773         prevent accidental deletion, we move styling elements to rootEditableElement in
1774         DeleteSelectionCommand undoably.
1775
1776         Test: editing/execCommand/delete-selection-has-style.html
1777
1778         * editing/DeleteSelectionCommand.cpp:
1779         (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss): Added to preserve styling elements during the command
1780         (WebCore::DeleteSelectionCommand::handleGeneralDelete):  Modified to preserve styling elements during the command
1781         * editing/DeleteSelectionCommand.h:
1782         (DeleteSelectionCommand):
1783
1784 2012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
1785
1786         Unreviewed, rolling out r125940.
1787         http://trac.webkit.org/changeset/125940
1788         https://bugs.webkit.org/show_bug.cgi?id=94398
1789
1790         "Causes crashes on the bots
1791         http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r125944%20(2626)/fast/css
1792         /first-letter-removed-added-crash-log.txt" (Requested by
1793         bradee-oh on #webkit).
1794
1795         * rendering/RenderListItem.cpp:
1796         * rendering/RenderListItem.h:
1797         (RenderListItem):
1798         * rendering/RenderObject.cpp:
1799         * rendering/RenderObject.h:
1800         (RenderObject):
1801         * rendering/RenderObjectChildList.cpp:
1802         (WebCore::RenderObjectChildList::removeChildNode):
1803         * rendering/RenderObjectChildList.h:
1804         (RenderObjectChildList):
1805         * rendering/RenderQuote.cpp:
1806         * rendering/RenderQuote.h:
1807         * rendering/RenderRegion.cpp:
1808         * rendering/RenderRegion.h:
1809         (RenderRegion):
1810
1811 2012-08-17  Sukolsak Sakshuwong  <sukolsak@google.com>
1812
1813         Disconnect UndoManager when its undo scope host is destroyed
1814         https://bugs.webkit.org/show_bug.cgi?id=94388
1815
1816         Reviewed by Ryosuke Niwa.
1817
1818         Disconnect UndoManager in Element's destructor to prevent
1819         use-after-free vulnerabilities.
1820
1821         Test: editing/undomanager/undoscopehost-use-after-free.html
1822
1823         * dom/Element.cpp:
1824         (WebCore::Element::~Element):
1825
1826 2012-08-17  Dan Bernstein  <mitz@apple.com>
1827
1828         Fixed incorrect references to JSVoidCallback.{cpp,h} in the project file.
1829
1830         * WebCore.xcodeproj/project.pbxproj:
1831
1832 2012-08-17  Ryosuke Niwa  <rniwa@webkit.org>
1833
1834         Fix Xcode project file.
1835
1836         * WebCore.xcodeproj/project.pbxproj:
1837
1838 2012-08-17  Kangil Han  <kangil.han@samsung.com>
1839
1840         [BlackBerry][EFL] Remove compile warning in WebCore
1841         https://bugs.webkit.org/show_bug.cgi?id=94328
1842
1843         Reviewed by Rob Buis.
1844
1845         Fixed compile time warning in WebCore.
1846
1847         * platform/efl/RenderThemeEfl.cpp:
1848         (WebCore::RenderThemeEfl::createEdje): unused variable ‘errmsg’ [-Wunused-variable]
1849         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
1850         (WebCore::HarfBuzzShaper::selectionRect): ‘toX’ may be used uninitialized in this function [-Wuninitialized], ‘fromX’ may be used uniniti
1851
1852 2012-08-17  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1853
1854         [V8] use checkInboundData in setWebGLArrayHelper
1855         https://bugs.webkit.org/show_bug.cgi?id=93051
1856
1857         Reviewed by Kenneth Russell.
1858
1859         Use TypedArray method checkInboundData in setWebGLArrayHelper instead
1860         of performing the computation manually.
1861
1862         No new tests. This patch doesn't change behavior.
1863
1864         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1865         (WebCore::setWebGLArrayHelper):
1866
1867 2012-08-17  Alexey Proskuryakov  <ap@apple.com>
1868
1869         REGRESSION (r125912): Crashes in worker tests
1870         https://bugs.webkit.org/show_bug.cgi?id=94390
1871
1872         Reviewed by Brady Eidson and Sam Weinig.
1873
1874         * bindings/js/JSDOMBinding.cpp: (WebCore::reportException): It's always fine
1875         to report an exception on a worker context, but it's not fine to treat those as windows.
1876
1877 2012-08-17  James Robinson  <jamesr@chromium.org>
1878
1879         [chromium] Add missing header files to .gypi and missing include to CCTiledLayerImpl.cpp
1880         https://bugs.webkit.org/show_bug.cgi?id=94391
1881
1882         Reviewed by Adrienne Walker.
1883
1884         * WebCore.gypi:
1885         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1886
1887 2012-08-17  David Grogan  <dgrogan@chromium.org>
1888
1889         IndexedDB: Test if getting a TRANSACTION_INACTIVE_ERR is possible when setting version
1890         https://bugs.webkit.org/show_bug.cgi?id=94269
1891
1892         Reviewed by Ojan Vafai.
1893
1894         I don't see a path through which this code is exercised.
1895         ASSERT_NOT_REACHED doesn't cause any of our tests to fail. It might be
1896         timing-related, in which case this ASSERT should be sporadically hit.
1897         If this ASSERT is hit, see if we can write a test that exercises it or
1898         at least add comments explaining how it gets exercised. If this ASSERT
1899         is not hit after a while, change it to
1900         ASSERT(transaction.scheduleTask(...)).
1901
1902         No new tests, we're looking for existing tests to fail.
1903
1904         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1905         (WebCore::IDBDatabaseBackendImpl::setVersion):
1906         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1907
1908 2012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
1909
1910         Unreviewed, rolling out r125922.
1911         http://trac.webkit.org/changeset/125922
1912         https://bugs.webkit.org/show_bug.cgi?id=94389
1913
1914         "Causing failing/crashing tests on Mac bots" (Requested by
1915         bradee-oh on #webkit).
1916
1917         * WebCore.gypi:
1918         * inspector/front-end/CPUProfileView.js:
1919         (WebInspector.CPUProfileHeader.prototype.createView):
1920         * inspector/front-end/CSSSelectorProfileView.js:
1921         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
1922         (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
1923         (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
1924         (WebInspector.CSSProfileHeader.prototype.createView):
1925         * inspector/front-end/HeapSnapshotDataGrids.js:
1926         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
1927         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
1928         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
1929         * inspector/front-end/HeapSnapshotView.js:
1930         (WebInspector.HeapSnapshotView.prototype._profiles):
1931         (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
1932         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
1933         (WebInspector.HeapProfileHeader.prototype.createView):
1934         * inspector/front-end/InspectorFrontendAPI.js:
1935         (InspectorFrontendAPI.isProfilingJavaScript):
1936         (InspectorFrontendAPI.startProfilingJavaScript):
1937         (InspectorFrontendAPI.stopProfilingJavaScript):
1938         * inspector/front-end/NativeMemorySnapshotView.js:
1939         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
1940         * inspector/front-end/ProfilesPanel.js:
1941         (WebInspector.ProfileType.prototype.buttonClicked):
1942         (WebInspector.ProfileHeader.prototype.view):
1943         (WebInspector.ProfileHeader.prototype.createView):
1944         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
1945         (WebInspector.ProfilesPanel.prototype.showProfileForURL):
1946         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
1947         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
1948         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
1949         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
1950         * inspector/front-end/Settings.js:
1951         * inspector/front-end/externs.js:
1952         * inspector/front-end/inspector.html:
1953         * inspector/front-end/inspector.js:
1954         (WebInspector._panelDescriptors):
1955         (WebInspector._toggleSearchingForNode):
1956         (WebInspector._requestZoom.set InspectorFrontendHost):
1957         (WebInspector._requestZoom):
1958         (WebInspector.documentClick.followLink):
1959         (WebInspector.documentClick):
1960         (WebInspector.frontendReused):
1961
1962 2012-08-17  Julien Chaffraix  <jchaffraix@webkit.org>
1963
1964         Introduce a will-be-removed-from-tree notification in RenderObject
1965         https://bugs.webkit.org/show_bug.cgi?id=94271
1966
1967         Reviewed by Abhishek Arya.
1968
1969         Following bug 93874, we have an insertion notification. This change adds the
1970         matching removal notification (willBeRemovedFromTree).
1971
1972         Refactoring covered by existing tests.
1973
1974         * rendering/RenderObjectChildList.cpp:
1975         (WebCore::RenderObjectChildList::removeChildNode):
1976         Removed the code from here and moved it below.
1977
1978         * rendering/RenderObject.cpp:
1979         (WebCore::RenderObject::willBeRemovedFromTree):
1980         * rendering/RenderObject.h:
1981         This is the base function that should be called by every instance.
1982
1983         * rendering/RenderListItem.cpp:
1984         (WebCore::RenderListItem::willBeRemovedFromTree):
1985         * rendering/RenderListItem.h:
1986         * rendering/RenderQuote.cpp:
1987         (WebCore::RenderQuote::willBeRemovedFromTree):
1988         * rendering/RenderQuote.h:
1989         * rendering/RenderRegion.cpp:
1990         (WebCore::RenderRegion::willBeRemovedFromTree):
1991         * rendering/RenderRegion.h:
1992         Overriden functions.
1993
1994 2012-08-17  Brian Anderson  <brianderson@chromium.org>
1995
1996         Fix vsyncTick drought when vsync throttling is disabled
1997         https://bugs.webkit.org/show_bug.cgi?id=94012
1998
1999         Reviewed by James Robinson.
2000
2001         CCFrameRateController made an assumption that every vsyncTick results
2002         in a call to didBeginFrame, which is not necessarily true and causes
2003         the CCFrameRateController to stop ticking when vsync is disabled. We
2004         move the manual ticks out of didBeginFrame and manually tick in the
2005         proper place.
2006
2007         CCFrameRateControllerTest updated with use cases that should tick
2008         without a didBeginFrame and will fail without this patch.
2009
2010         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
2011         (WebCore::CCFrameRateController::setActive):
2012         (WebCore::CCFrameRateController::onTimerTick):
2013         (WebCore::CCFrameRateController::didBeginFrame):
2014
2015 2012-08-16  Ojan Vafai  <ojan@chromium.org>
2016
2017         Delete some dead code in RenderBox::computePercentageLogicalHeight
2018         https://bugs.webkit.org/show_bug.cgi?id=94262
2019
2020         Reviewed by Tony Chang.
2021
2022         I'm pretty sure this is dead code. None of the layout tests hit this code,
2023         including the ones added in the original patch http://trac.webkit.org/changeset/10983.
2024         I spent a good while and could not concoct a test that hits this code.
2025
2026         The test-cases added in that file, as well as the test-cases I came up with that should
2027         go through this codepath, instead go through computePositionedLogicalHeight and never 
2028         hit computePercentageLogicalHeight.
2029         * rendering/RenderBox.cpp:
2030         (WebCore::RenderBox::computePercentageLogicalHeight):
2031
2032 2012-08-17  Benjamin Poulain  <bpoulain@apple.com>
2033
2034         Make it easier to append a literal to StringBuilder
2035         https://bugs.webkit.org/show_bug.cgi?id=94273
2036
2037         Reviewed by Kentaro Hara.
2038
2039         Use StringBuilder::appendLiteral() in MarkupAccumulator instead of computing every
2040         value individually.
2041
2042         * editing/MarkupAccumulator.cpp:
2043         (WebCore::MarkupAccumulator::appendComment):
2044         (WebCore::MarkupAccumulator::appendXMLDeclaration):
2045         (WebCore::MarkupAccumulator::appendDocumentType):
2046         (WebCore::MarkupAccumulator::appendCDATASection):
2047
2048 2012-08-17  Benjamin Poulain  <bpoulain@apple.com>
2049
2050         Share the StringImpl the CSS property names
2051         https://bugs.webkit.org/show_bug.cgi?id=94187
2052
2053         Reviewed by Alexey Proskuryakov.
2054
2055         Previously, we would instanciate a new String every time a CSS property name was needed.
2056
2057         This patches moves the creation of the AtomicString to CSSPropertyNames and reuse that
2058         StringImpl whenever needed.
2059
2060         With the patch, accessing CSS property names from JavaScript gets about 2.1 times faster.
2061
2062         * css/CSSComputedStyleDeclaration.cpp:
2063         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2064         (WebCore::CSSComputedStyleDeclaration::item):
2065         * css/CSSPrimitiveValue.cpp:
2066         (WebCore::valueOrPropertyName):
2067         * css/CSSProperty.cpp:
2068         (WebCore::CSSProperty::cssName):
2069         * css/PropertySetCSSStyleDeclaration.cpp:
2070         (WebCore::PropertySetCSSStyleDeclaration::item):
2071         (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
2072         * css/makeprop.pl:
2073         * inspector/InspectorCSSAgent.cpp:
2074         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
2075         * inspector/InspectorStyleSheet.cpp:
2076         (WebCore::InspectorStyle::styleWithProperties):
2077         * page/animation/ImplicitAnimation.cpp:
2078         (WebCore::ImplicitAnimation::sendTransitionEvent):
2079
2080 2012-08-16  James Robinson  <jamesr@chromium.org>
2081
2082         [chromium] Add Source/WebCore/platform/graphics/chromium/cc/ to include path and remove cc/ prefix from includes
2083         https://bugs.webkit.org/show_bug.cgi?id=94279
2084
2085         Reviewed by Adam Barth.
2086
2087         This brings us more in line with the rest of the WebKit repo and avoids potential header collisions during
2088         transition.
2089
2090         * WebCore.gyp/WebCore.gyp:
2091         * platform/chromium/support/CCThreadImpl.cpp:
2092         * platform/chromium/support/CCThreadImpl.h:
2093         * platform/chromium/support/WebCompositorImpl.cpp:
2094         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
2095         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
2096         * platform/graphics/chromium/ContentLayerChromium.cpp:
2097         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
2098         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp:
2099         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h:
2100         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
2101         * platform/graphics/chromium/ImageLayerChromium.cpp:
2102         * platform/graphics/chromium/LayerChromium.cpp:
2103         * platform/graphics/chromium/LayerChromium.h:
2104         * platform/graphics/chromium/LayerRendererChromium.cpp:
2105         * platform/graphics/chromium/LayerRendererChromium.h:
2106         * platform/graphics/chromium/LayerTextureUpdater.h:
2107         * platform/graphics/chromium/LinkHighlight.cpp:
2108         * platform/graphics/chromium/RateLimiter.cpp:
2109         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2110         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
2111         * platform/graphics/chromium/SolidColorLayerChromium.cpp:
2112         * platform/graphics/chromium/TextureLayerChromium.cpp:
2113         * platform/graphics/chromium/TiledLayerChromium.cpp:
2114         * platform/graphics/chromium/TiledLayerChromium.h:
2115         * platform/graphics/chromium/TreeSynchronizer.cpp:
2116         * platform/graphics/chromium/VideoLayerChromium.cpp:
2117         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
2118         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
2119         * platform/graphics/chromium/cc/CCAnimationCurve.cpp:
2120         * platform/graphics/chromium/cc/CCAnimationEvents.h:
2121         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp:
2122         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h:
2123         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
2124         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
2125         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
2126         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
2127         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
2128         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
2129         * platform/graphics/chromium/cc/CCDrawQuad.h:
2130         * platform/graphics/chromium/cc/CCFontAtlas.cpp:
2131         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
2132         * platform/graphics/chromium/cc/CCFrameRateController.h:
2133         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
2134         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h:
2135         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
2136         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
2137         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
2138         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
2139         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp:
2140         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h:
2141         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2142         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2143         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2144         * platform/graphics/chromium/cc/CCLayerImpl.h:
2145         * platform/graphics/chromium/cc/CCLayerIterator.cpp:
2146         * platform/graphics/chromium/cc/CCLayerIterator.h:
2147         * platform/graphics/chromium/cc/CCLayerQuad.cpp:
2148         * platform/graphics/chromium/cc/CCLayerSorter.cpp:
2149         * platform/graphics/chromium/cc/CCLayerSorter.h:
2150         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2151         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2152         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2153         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2154         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2155         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2156         * platform/graphics/chromium/cc/CCMathUtil.cpp:
2157         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2158         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2159         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
2160         * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp:
2161         * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
2162         * platform/graphics/chromium/cc/CCProxy.cpp:
2163         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2164         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2165         * platform/graphics/chromium/cc/CCRenderPass.h:
2166         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
2167         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
2168         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2169         * platform/graphics/chromium/cc/CCRenderSurface.h:
2170         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
2171         * platform/graphics/chromium/cc/CCRenderer.h:
2172         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2173         * platform/graphics/chromium/cc/CCResourceProvider.h:
2174         * platform/graphics/chromium/cc/CCScheduler.cpp:
2175         * platform/graphics/chromium/cc/CCScheduler.h:
2176         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2177         * platform/graphics/chromium/cc/CCScopedTexture.cpp:
2178         * platform/graphics/chromium/cc/CCScopedTexture.h:
2179         * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
2180         * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp:
2181         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp:
2182         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h:
2183         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2184         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2185         * platform/graphics/chromium/cc/CCSettings.cpp:
2186         * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
2187         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2188         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2189         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
2190         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
2191         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2192         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2193         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp:
2194         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h:
2195         * platform/graphics/chromium/cc/CCTexture.cpp:
2196         * platform/graphics/chromium/cc/CCTexture.h:
2197         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
2198         * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
2199         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2200         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2201         * platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
2202         * platform/graphics/chromium/cc/CCTextureUpdateController.h:
2203         * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp:
2204         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2205         * platform/graphics/chromium/cc/CCThreadProxy.h:
2206         * platform/graphics/chromium/cc/CCThreadTask.h:
2207         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
2208         * platform/graphics/chromium/cc/CCTileDrawQuad.h:
2209         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2210         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2211         * platform/graphics/chromium/cc/CCTimer.cpp:
2212         * platform/graphics/chromium/cc/CCTimingFunction.cpp:
2213         * platform/graphics/chromium/cc/CCTimingFunction.h:
2214         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2215         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2216         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp:
2217         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h:
2218         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
2219
2220 2012-08-17  Ojan Vafai  <ojan@chromium.org>
2221
2222         Delete dead code in deprecated flexbox for RTL line-clamp
2223         https://bugs.webkit.org/show_bug.cgi?id=94282
2224
2225         Reviewed by Tony Chang.
2226
2227         -webkit-line-clamp and direction:rtl is not supported. Delete some
2228         obviously dead code that half-tries to support it.
2229         * rendering/RenderDeprecatedFlexibleBox.cpp:
2230         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
2231
2232 2012-08-17  John Mellor  <johnme@chromium.org>
2233
2234         Text Autosizing: Increase line height in proportion to font size.
2235         https://bugs.webkit.org/show_bug.cgi?id=91660
2236
2237         Reviewed by Julien Chaffraix.
2238
2239         This patch causes line heights to be increased in proportion to font
2240         size (so autosized text doesn't overlap itself). It does this by adding
2241         a textAutosizingMultiplier() to RenderStyle, which the lineHeight()
2242         getter multiplies its response by.
2243
2244         It also cleans up one or two things, for example treatAsInline is
2245         renamed isNotAnAutosizingContainer to clarify that its purpose is to
2246         discriminate autosizing containers (the smallest unit that we can turn
2247         Text Autosizing on or off for; in particular these are not allowed to
2248         be line participants, since multiple sizes on one line looks awful).
2249
2250         Tests: fast/text-autosizing/em-margin-border-padding.html
2251                fast/text-autosizing/narrow-child.html
2252                fast/text-autosizing/nested-em-line-height.html
2253                fast/text-autosizing/simple-paragraph.html
2254                fast/text-autosizing/span-child.html
2255                fast/text-autosizing/wide-child.html
2256
2257         * css/StyleBuilder.cpp:
2258         (WebCore::ApplyPropertyLineHeight::applyValue):
2259
2260             Replaced Length(-100.0, Percent) with RenderStyle::initialLineHeight(),
2261             which is equivalent but makes the intent clearer.
2262
2263         (WebCore::ApplyPropertyLineHeight::createHandler):
2264
2265             Use specifiedLineHeight to match setLineHeight which takes a specified
2266             line height (and generally this avoids accidentally inheriting text
2267             autosizing).
2268
2269         * css/StyleResolver.cpp:
2270         (WebCore::StyleResolver::applyProperty):
2271
2272             Similarly use specifiedLineHeight when inheriting line height.
2273
2274         * page/animation/CSSPropertyAnimation.cpp:
2275         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
2276
2277             Get and set specified lineHeight/fontSize if Text Autosizing is
2278             enabled to avoid setting the specified value to the computed value
2279             (causing values to be multiplied more than once!).
2280
2281         * platform/blackberry/RenderThemeBlackBerry.cpp:
2282         (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
2283
2284             Adjust for renamed setBlendedFontSize, and maintain cast to int.
2285
2286         * rendering/RenderTextControlSingleLine.cpp:
2287         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
2288
2289             Replaced Length(-100.0, Percent) with RenderStyle::initialLineHeight(),
2290             which is equivalent but makes the intent clearer.
2291
2292         * rendering/TextAutosizer.cpp:
2293         (WebCore::TextAutosizer::processSubtree):
2294
2295             Use nextInPreOrderMatchingFilter instead of traverseNext, and some
2296             other methods that got renamed.
2297
2298         (WebCore::TextAutosizer::processBox):
2299
2300             Renamed from processBlock, since RenderBoxes are sufficient; use
2301             renamed nextInPreOrderMatchingFilter; make two calls to setMultiplier
2302             (one for parent for line height) instead of processText.
2303
2304         (WebCore::TextAutosizer::setMultiplier):
2305
2306             Simplified from previous processText method; this just sets the
2307             style's textAutosizingMultiplier (and the style does the rest).
2308
2309         (WebCore::TextAutosizer::isNotAnAutosizingContainer):
2310
2311             Renamed from treatAsInline; added explanatory comment; changed
2312             isRenderBlock to isBox as boxes still have logicalWidth; changed
2313             isInlineBlockOrInlineTable to isInline as it was an omission that
2314             other inlines were allowed.
2315
2316         (WebCore::TextAutosizer::nextInPreOrderMatchingFilter):
2317
2318             Renamed from TextAutosizer::traverseNext.
2319
2320         (RenderObjectFilterFunctor):
2321
2322             Renamed from RenderObjectFilter to clafiry that it's a function ptr.
2323
2324         * rendering/TextAutosizer.h:
2325         (TextAutosizer): Previously mentioned renamings.
2326
2327         * rendering/mathml/RenderMathMLSubSup.cpp:
2328         (WebCore::RenderMathMLSubSup::fixScriptsStyle):
2329
2330             Adjust for renamed setBlendedFontSize.
2331
2332         * rendering/style/RenderStyle.cpp:
2333         (WebCore::RenderStyle::diff):
2334
2335             textAutosizingMultiplier is a StyleDifferenceLayout (we want
2336             setNeedsLayoutAndPrefWidthsRecalc to get called).
2337
2338         (WebCore::RenderStyle::setFontSize):
2339
2340             Renamed from setBlendedFontSize; if Text Autosizing is enabled and a
2341             multiplier is set it auto-calculates the computedSize; float
2342             param instead of int as discussed on webkit.org/b/91660.
2343
2344         * rendering/style/RenderStyle.h:
2345
2346             Added specifiedFontSize, computedFontSize and specifiedLineHeight
2347             getters; changed lineHeight to dynamically calculate autosized line
2348             height, and made computedLineHeight use this value instead of the
2349             specified line height; also added textAutosizingMultiplier
2350             getter/setter (the setter updated the font description's computed
2351             size, by calling setFontSize); also renamed the parameter to
2352             setLineHeight to explicitly note that it's setting the
2353             specifiedLineHeight (and can still be adjusted by autosizing).
2354
2355         * rendering/style/StyleVisualData.cpp/.h:
2356
2357             Added m_textAutosizingMultiplier (this seems the best place to put a
2358             non-inherited non-rare presentational property).
2359
2360 2012-08-17  Raphael Kubo da Costa  <rakuco@webkit.org>
2361
2362         [CMake] Add FindDBus.cmake and use it in the EFL port.
2363         https://bugs.webkit.org/show_bug.cgi?id=94319
2364
2365         Reviewed by Daniel Bates.
2366
2367         * PlatformEfl.cmake: Link against DBUS_LIBRARIES and add
2368         DBUS_INCLUDE_DIRS to the include path list if BATTERY_STATUS
2369         support is enabled.
2370
2371 2012-08-17  Pavel Feldman  <pfeldman@chromium.org>
2372
2373         Web Inspector: make profiles panel a lazily loaded module.
2374         https://bugs.webkit.org/show_bug.cgi?id=94351
2375
2376         Reviewed by Yury Semikhatsky.
2377
2378         Moving files from .html to importScript.
2379
2380         * WebCore.gypi:
2381         * inspector/front-end/CPUProfileView.js:
2382         (WebInspector.CPUProfileHeader.prototype.createView):
2383         * inspector/front-end/CSSSelectorProfileView.js:
2384         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
2385         (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
2386         (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
2387         (WebInspector.CSSProfileHeader.prototype.createView):
2388         * inspector/front-end/HeapSnapshotDataGrids.js:
2389         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.revealInDominatorsView):
2390         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu.else.revealInSummaryView):
2391         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
2392         * inspector/front-end/HeapSnapshotView.js:
2393         (WebInspector.HeapSnapshotView.prototype._profiles):
2394         (WebInspector.HeapSnapshotView.prototype.populateContextMenu):
2395         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
2396         (WebInspector.HeapProfileHeader.prototype.createView):
2397         * inspector/front-end/InspectorFrontendAPI.js:
2398         (InspectorFrontendAPI.isProfilingJavaScript):
2399         (InspectorFrontendAPI.startProfilingJavaScript):
2400         (InspectorFrontendAPI.stopProfilingJavaScript):
2401         * inspector/front-end/NativeMemorySnapshotView.js:
2402         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
2403         * inspector/front-end/ProfilesPanel.js:
2404         (WebInspector.ProfileType.prototype.buttonClicked):
2405         (WebInspector.ProfileHeader.prototype.view):
2406         (WebInspector.ProfileHeader.prototype.createView):
2407         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
2408         (WebInspector.ProfilesPanel.prototype.showProfileForURL):
2409         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
2410         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
2411         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
2412         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
2413         * inspector/front-end/externs.js:
2414         * inspector/front-end/inspector.html:
2415         * inspector/front-end/inspector.js:
2416         (WebInspector._panelDescriptors):
2417         (WebInspector._toggleSearchingForNode):
2418         (WebInspector._profilesLinkifier):
2419         (WebInspector._requestZoom.set InspectorFrontendHost):
2420         (WebInspector._requestZoom):
2421         (WebInspector.documentClick.followLink):
2422         (WebInspector.documentClick):
2423
2424 2012-08-17  Dominic Mazzoni  <dmazzoni@google.com>
2425
2426         REGRESSION(r125710) - canvas-fallback-content tests asserting in Chromium
2427         https://bugs.webkit.org/show_bug.cgi?id=94156
2428
2429         Reviewed by Chris Fleizach.
2430
2431         When determining if a Node is focusable, check the canvas subtree
2432         case first before encountering assertions that assume that anything
2433         focusable must have an associated renderer.
2434
2435         Fixes existing tests so they don't assert.
2436
2437         * dom/Node.cpp:
2438         (WebCore::Node::isFocusable):
2439
2440 2012-08-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
2441
2442         ASSERTION FAILED: allocatedMaxLogicalWidth <= cellMaxLogicalWidth : int WebCore::AutoTableLayout::calcEffectiveLogicalWidth()
2443         https://bugs.webkit.org/show_bug.cgi?id=92471
2444
2445         Reviewed by Julien Chaffraix.
2446
2447         The assert occurs due to the float based computations causing a floating
2448         point rounding error between allocatedMaxLogicalWidth and cellMaxLogicalWidth.
2449
2450         Test: fast/table/assert-autotablelayout-maxlogicalwidth.html
2451
2452         * rendering/AutoTableLayout.cpp:
2453         (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
2454         Converting float based calculations for computing max logical width to int based;
2455         similar to the calculations for min logical width.
2456
2457 2012-08-17  John J. Barton  <johnjbarton@chromium.org>
2458
2459         Web Inspector: Add //@ sourceURL to test-runner evals
2460         https://bugs.webkit.org/show_bug.cgi?id=94268
2461
2462         Reviewed by Pavel Feldman.
2463
2464         Postpend a line that tells the debugger what to call this eval buffer.
2465         Name ends in the sequennce number so all evals will appear together.
2466         evaluateInWebInspector0.js eg
2467
2468         * inspector/front-end/TestController.js:
2469         (WebInspector.evaluateForTestInFrontend):
2470
2471 2012-08-17  Adam Barth  <abarth@webkit.org>
2472
2473         REGRESSION (r125592): Crash in Console::addMessage, under InjectedBundle::reportException
2474         https://bugs.webkit.org/show_bug.cgi?id=94220
2475
2476         Reviewed by Alexey Proskuryakov.
2477
2478         Previously, this code was trying to detect whether a DOMWindow is
2479         currently displayed in a Frame by testing whether
2480         DOMWindow->scriptExecutionContext is zero. That used to work, but now
2481         that DOMWindow->scriptExecutionContext is non-zero for detached
2482         DOMWindow, this code doesn't work anymore. This patch replaces the code
2483         with the current idiom, which is to call
2484         DOMWindow::isCurrentDisplayedInFrame.
2485
2486         Alexey and I couldn't figure out how to test this change. This bug
2487         causes a crash when some Safari extensions are installed, but it's not
2488         clear whether this bug can be triggered from the web platform. We're
2489         going to ask Jessie for ideas when she gets back from vacation.
2490
2491         * bindings/js/JSDOMBinding.cpp:
2492         (WebCore::reportException):
2493
2494 2012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
2495
2496         Unreviewed, rolling out r125892.
2497         http://trac.webkit.org/changeset/125892
2498         https://bugs.webkit.org/show_bug.cgi?id=94350
2499
2500         Broke windows build (Requested by vollick on #webkit).
2501
2502         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
2503         (WebCore::CCActiveAnimation::CCActiveAnimation):
2504         (WebCore::CCActiveAnimation::~CCActiveAnimation):
2505         (WebCore::CCActiveAnimation::setRunState):
2506         (WebCore::CCActiveAnimation::cloneForImplThread):
2507         * platform/graphics/chromium/cc/CCActiveAnimation.h:
2508         (CCActiveAnimation):
2509         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2510         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2511         (WebCore):
2512         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
2513         (WebCore::CCLayerAnimationController::tickAnimations):
2514
2515 2012-08-17  Zach Kuznia  <zork@chromium.org>
2516
2517         Add support for Skia Magnifier filter to Chromium layers
2518         https://bugs.webkit.org/show_bug.cgi?id=93939
2519
2520         Reviewed by James Robinson.
2521
2522         This is used by Chrome OS for the screen magnifier
2523
2524         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
2525         (WebCore::CCRenderSurfaceFilters::optimize):
2526         (WebCore::CCRenderSurfaceFilters::apply):
2527
2528 2012-08-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2529
2530         Touch adjustment for context menu gestures
2531         https://bugs.webkit.org/show_bug.cgi?id=94101
2532
2533         Reviewed by Antonio Gomes.
2534
2535         Adds a new filter for detecting nodes that provides extra context-menu items, 
2536         and use that in a new set of functions for adjusting context-menu gestures.
2537
2538         Tests: touchadjustment/context-menu-select-text.html
2539                touchadjustment/context-menu.html
2540
2541         * page/EventHandler.cpp:
2542         (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
2543         (WebCore::EventHandler::adjustGesturePosition):
2544         * page/EventHandler.h:
2545         (EventHandler):
2546         * page/TouchAdjustment.cpp:
2547         (WebCore::TouchAdjustment::nodeProvidesContextMenuItems):
2548         (TouchAdjustment):
2549         (WebCore::findBestContextMenuCandidate):
2550         * page/TouchAdjustment.h:
2551         * testing/Internals.cpp:
2552         (WebCore::Internals::touchPositionAdjustedToBestContextMenuNode):
2553         (WebCore::Internals::touchNodeAdjustedToBestContextMenuNode):
2554         * testing/Internals.h:
2555         (Internals):
2556         * testing/Internals.idl:
2557
2558 2012-08-17  Pavel Feldman  <pfeldman@chromium.org>
2559
2560         https://bugs.webkit.org/show_bug.cgi?id=94326
2561
2562         Reviewed by Vsevolod Vlasov.
2563
2564         Loading code on demand (upon the panel access).
2565
2566         * WebCore.gypi:
2567         * inspector/front-end/AuditsPanel.js:
2568         * inspector/front-end/CodeMirrorTextEditor.js:
2569         (WebInspector.CodeMirrorTextEditor):
2570         (WebInspector.CodeMirrorTextEditor.prototype._toRange):
2571         * inspector/front-end/ElementsPanel.js:
2572         * inspector/front-end/ExtensionServer.js:
2573         (WebInspector.ExtensionServer.prototype._onCreatePanel):
2574         * inspector/front-end/Panel.js:
2575         (WebInspector.Panel):
2576         (WebInspector.PanelDescriptor):
2577         (WebInspector.PanelDescriptor.prototype.panel):
2578         * inspector/front-end/ResourcesPanel.js:
2579         * inspector/front-end/SourceFrame.js:
2580         (WebInspector.SourceFrame):
2581         * inspector/front-end/TimelinePanel.js:
2582         * inspector/front-end/inspector.html:
2583         * inspector/front-end/inspector.js:
2584         (WebInspector._panelDescriptors):
2585         (WebInspector.doLoadedDone):
2586         * inspector/front-end/utilities.js:
2587
2588 2012-08-17  Sheriff Bot  <webkit.review.bot@gmail.com>
2589
2590         Unreviewed, rolling out r125880.
2591         http://trac.webkit.org/changeset/125880
2592         https://bugs.webkit.org/show_bug.cgi?id=94347
2593
2594         Breaks front-end compilation: SourceFrame passed where View is
2595         expected. (Requested by pfeldman on #webkit).
2596
2597         * inspector/front-end/CodeMirrorTextEditor.js:
2598         (WebInspector.CodeMirrorTextEditor.prototype._loadLibraries):
2599         * inspector/front-end/DefaultTextEditor.js:
2600         (WebInspector.DefaultTextEditor.prototype.wasShown):
2601         (WebInspector.DefaultTextEditor.prototype.willHide):
2602         * inspector/front-end/JavaScriptSourceFrame.js:
2603         (WebInspector.JavaScriptSourceFrame):
2604         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
2605         (WebInspector.JavaScriptSourceFrame.prototype.willHide):
2606         * inspector/front-end/SourceFrame.js:
2607         (WebInspector.SourceFrame):
2608         (WebInspector.SourceFrame.prototype.wasShown):
2609         (WebInspector.SourceFrame.prototype.willHide):
2610         * inspector/front-end/TextEditor.js:
2611         * inspector/front-end/scriptsPanel.css:
2612         (.script-view):
2613         (.script-view.visible):
2614
2615 2012-08-17  Milian Wolff  <milian.wolff@kdab.com>
2616
2617         [Qt] QNX build fails due to ctype usage in system headers
2618         https://bugs.webkit.org/show_bug.cgi?id=93849
2619
2620         Reviewed by Simon Hausmann.
2621
2622         Move the check for whether DisallowCType should be active or not
2623         to the DisallowCType.h header. This way, we can update the list
2624         of platforms or OSes which do not work with this header in a
2625         central place. All users can now safely include the header
2626         and do not need to place custom guards around it.
2627
2628         * config.h:
2629
2630 2012-08-17  Simon Hausmann  <simon.hausmann@nokia.com>
2631
2632         Unreviewed trivial build fix: Correct file name in bindings/js/DOMTransaction.h used in HEADERS
2633
2634         * Target.pri:
2635
2636 2012-08-17  Ian Vollick  <vollick@chromium.org>
2637
2638         [chromium] Add tracing for active composited animations
2639         https://bugs.webkit.org/show_bug.cgi?id=84210
2640
2641         Reviewed by James Robinson.
2642
2643         This patch issues the trace events from the animations. Animations will
2644         report when they start and finish on the main and impl threads (via
2645         TRACE_EVENT_ASYNC*), and also issues instant trace events whenever they
2646         change state.
2647
2648         No new tests, only changes tracing behavior.
2649
2650         * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
2651         (WebCore::CCActiveAnimation::CCActiveAnimation):
2652         (WebCore::CCActiveAnimation::~CCActiveAnimation):
2653         (WebCore::CCActiveAnimation::setRunState):
2654         (WebCore::CCActiveAnimation::clone):
2655         (WebCore):
2656         (WebCore::CCActiveAnimation::cloneAndInitialize):
2657         * platform/graphics/chromium/cc/CCActiveAnimation.h:
2658         (WebCore::CCActiveAnimation::isControllingInstance):
2659         (CCActiveAnimation):
2660         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2661         (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
2662         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
2663         (WebCore::CCLayerAnimationController::tickAnimations):
2664
2665 2012-08-17  John J. Barton  <johnjbarton@chromium.org>
2666
2667         Web Inspector: enhance external test-runner and add cleanup code
2668         https://bugs.webkit.org/show_bug.cgi?id=94231
2669
2670         Reviewed by Pavel Feldman.
2671
2672         add 'click on test result to select for next run' feature.
2673         remember the users size for the inspector popup.
2674         refactor server URLs to one location at top of file.
2675         use the same value for both tests and scanner servers.
2676         remove one extra instruction on the page.
2677         refactor clean up code.
2678         close the two popup windows if the test-runner.html is reloaded.
2679
2680         * inspector/front-end/test-runner.html:
2681
2682 2012-08-17  Simon Hausmann  <simon.hausmann@nokia.com>
2683
2684         Unreviewed trivial follow-up fix to r125873: Add missing adoptRef to avoid leaks.
2685
2686         * bridge/qt/qt_instance.cpp:
2687         (JSC::Bindings::WeakMap::set):
2688
2689 2012-08-17  Kentaro Hara  <haraken@chromium.org>
2690
2691         Remove RefPtr from DateInputType::m_pickerElement
2692         https://bugs.webkit.org/show_bug.cgi?id=94330
2693
2694         Reviewed by Kent Tamura.
2695
2696         To avoid reference cycles of RefPtr<Node>s, we want to remove
2697         unnecessary RefPtr<Node>s. The rationale is describe in bug 94324.
2698
2699         DateInputType::m_pickerElement does not need to be a RefPtr<Node>,
2700         because it is guaranteed to point to a shadow DOM tree of the DateInputType
2701         node, which is guaranteed to exist in the subtree of the DateInputType node.
2702
2703         No tests. No change in behavior.
2704
2705         * html/DateInputType.cpp:
2706         (WebCore::DateInputType::DateInputType):
2707         (WebCore::DateInputType::createShadowSubtree):
2708         (WebCore::DateInputType::destroyShadowSubtree):
2709         * html/DateInputType.h:
2710         (DateInputType):
2711
2712 2012-08-17  Dan Carney  <dcarney@google.com>
2713
2714         Refactor away IsolatedWorld
2715         https://bugs.webkit.org/show_bug.cgi?id=93971
2716
2717         Reviewed by Kentaro Hara.
2718
2719         Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
2720         This update fixes a bad assertion which caused the previous
2721         version to be rolled back.
2722
2723         No tests.  No change in functionality.
2724
2725         * UseV8.cmake:
2726         * WebCore.gypi:
2727         * bindings/v8/DOMWrapperWorld.cpp:
2728         (WebCore):
2729         (WebCore::mainThreadNormalWorld):
2730         * bindings/v8/DOMWrapperWorld.h:
2731         (WebCore):
2732         (DOMWrapperWorld):
2733         (WebCore::DOMWrapperWorld::create):
2734         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
2735         (WebCore::DOMWrapperWorld::count):
2736         (WebCore::DOMWrapperWorld::worldId):
2737         (WebCore::DOMWrapperWorld::domDataStore):
2738         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
2739         * bindings/v8/IsolatedWorld.cpp: Removed.
2740         * bindings/v8/IsolatedWorld.h: Removed.
2741         * bindings/v8/V8DOMWrapper.h:
2742         (WebCore::V8DOMWrapper::getCachedWrapper):
2743         * bindings/v8/V8IsolatedContext.cpp:
2744         (WebCore::V8IsolatedContext::V8IsolatedContext):
2745         (WebCore::V8IsolatedContext::destroy):
2746         * bindings/v8/V8IsolatedContext.h:
2747         (WebCore::V8IsolatedContext::getEntered):
2748         (WebCore::V8IsolatedContext::world):
2749         (V8IsolatedContext):
2750         * bindings/v8/V8PerIsolateData.h:
2751         (WebCore::V8PerIsolateData::registerDOMDataStore):
2752         (WebCore::V8PerIsolateData::unregisterDOMDataStore):
2753
2754 2012-08-17  Kangil Han  <kangil.han@samsung.com>
2755
2756         [EFL] Remove alloca usage
2757         https://bugs.webkit.org/show_bug.cgi?id=93931
2758
2759         Reviewed by Carlos Garcia Campos.
2760
2761         This patch is unifying the approaches for the creation of Edje_Message_Float_Set messages, and getting rid of alloca is part of it, since it is not portable.
2762
2763         * platform/efl/RenderThemeEfl.cpp:
2764         (WebCore::RenderThemeEfl::paintThemePart):
2765         * platform/efl/ScrollbarEfl.cpp:
2766         (ScrollbarEfl::updateThumbPositionAndProportion):
2767
2768 2012-08-17  Alexander Pavlov  <apavlov@chromium.org>
2769
2770         Web Inspector: hovering over an image link in Timeline popup kills popup
2771         https://bugs.webkit.org/show_bug.cgi?id=94213
2772
2773         Reviewed by Pavel Feldman.
2774
2775         - Fixed bug with ElementsPanel PopoverHelper acting on the TimelinePanel (due to which the original issue occurs).
2776         - Image preview added to resource entries popover in the timeline.
2777         - Extracted the core image preview building code into UIUtils.js.
2778         - Drive-by: fixed image centering in the preview element.
2779
2780         * inspector/front-end/ElementsPanel.js:
2781         (WebInspector.ElementsPanel):
2782         (WebInspector.ElementsPanel.prototype._showPopover.showPopover):
2783         (WebInspector.ElementsPanel.prototype._showPopover):
2784         * inspector/front-end/TimelinePanel.js:
2785         (WebInspector.TimelinePanel.prototype._showPopover.showCallback):
2786         (WebInspector.TimelinePanel.prototype._showPopover):
2787         * inspector/front-end/TimelinePresentationModel.js:
2788         (WebInspector.TimelinePresentationModel.needsPreviewElement):
2789         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
2790         First build the image preview element if necessary, then do everything else.
2791         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
2792         Original generatePopupContent() code plus the preview generation when necessary.
2793         * inspector/front-end/UIUtils.js:
2794         (WebInspector.buildImagePreviewContents.errorCallback):
2795         (WebInspector.buildImagePreviewContents.buildContent):
2796         (WebInspector.buildImagePreviewContents): Extracted from ElementsPanel. Enabled building of preview elements without the dimensions text data.
2797         * inspector/front-end/elementsPanel.css:
2798         (.image-preview-container):
2799         (.image-preview-container img):
2800         * inspector/front-end/timelinePanel.css:
2801         (.image-preview-container): Fixed centering of the preview container contents.
2802         (.image-preview-container img):
2803         (.image-container):
2804
2805 2012-08-17  Andrey Kosyakov  <caseq@chromium.org>
2806
2807         Web Inspector: decouple extension server from the Elements panel
2808         https://bugs.webkit.org/show_bug.cgi?id=94322
2809
2810         Reviewed by Pavel Feldman.
2811
2812         - relay WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged received in ElementsPanel on WebInspector.notifications;
2813
2814         * inspector/front-end/ElementsPanel.js:
2815         (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
2816         * inspector/front-end/ExtensionServer.js:
2817
2818 2012-08-17  Jan Keromnes  <janx@linux.com>
2819
2820         Web Inspector: SourceFrame shouldn't be a View
2821         https://bugs.webkit.org/show_bug.cgi?id=93444
2822
2823         Reviewed by Pavel Feldman.
2824
2825         Move SourceFrame from being a View to being an Object. This will allow
2826         future ExtensionSourceFrames to share a single iframe ExtensionView.
2827
2828         * inspector/front-end/CodeMirrorTextEditor.js:
2829         (WebInspector.CodeMirrorTextEditor.prototype.wasShown):
2830         (WebInspector.CodeMirrorTextEditor.prototype.willHide):
2831         * inspector/front-end/DefaultTextEditor.js:
2832         (WebInspector.DefaultTextEditor.prototype.wasShown):
2833         (WebInspector.DefaultTextEditor.prototype.willHide):
2834         * inspector/front-end/JavaScriptSourceFrame.js:
2835         (WebInspector.JavaScriptSourceFrame):
2836         * inspector/front-end/SourceFrame.js:
2837         (WebInspector.SourceFrame):
2838         (WebInspector.SourceFrame.prototype.show):
2839         (WebInspector.SourceFrame.prototype.detach):
2840         (WebInspector.SourceFrame.prototype.focus):
2841         (WebInspector.SourceFrame.prototype._onTextEditorWasShown):
2842         (WebInspector.SourceFrame.prototype._onTextEditorWillHide):
2843         * inspector/front-end/TextEditor.js:
2844         * inspector/front-end/scriptsPanel.css:
2845
2846 2012-08-17  Pavel Chadnov  <chadnov@google.com>
2847
2848         Web Inspector: requests filtering in network tab
2849         https://bugs.webkit.org/show_bug.cgi?id=93090
2850
2851         Reviewed by Vsevolod Vlasov.
2852
2853         Added filtering support to search panel.
2854         Implemented filtering for network panel.
2855         
2856         * inspector/front-end/NetworkPanel.js:
2857         (WebInspector.NetworkLogView.prototype._clearSearchMatchedList):
2858         (WebInspector.NetworkLogView.prototype._updateHighlightIfMatched):
2859         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
2860         (WebInspector.NetworkLogView.prototype._highlightNthMatchedRequestForSearch):
2861         (WebInspector.NetworkLogView.prototype.performSearch):
2862         (WebInspector.NetworkLogView.prototype.performFilter):
2863         (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
2864         (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
2865         (WebInspector.NetworkPanel.prototype.performFilter):
2866         (WebInspector.NetworkDataGridNode.prototype._highlightMatchedSubstring):
2867         * inspector/front-end/SearchController.js:
2868         (WebInspector.SearchController):
2869         (WebInspector.SearchController.prototype.cancelSearch):
2870         (WebInspector.SearchController.prototype.showSearchField):
2871         (WebInspector.SearchController.prototype._switchFilterToSearch):
2872         (WebInspector.SearchController.prototype._switchSearchToFilter):
2873         (WebInspector.SearchController.prototype._updateFilterVisibility):
2874         (WebInspector.SearchController.prototype._replaceAll):
2875         (WebInspector.SearchController.prototype._filterCheckboxClick):
2876         (WebInspector.SearchController.prototype._performFilter):
2877         (WebInspector.SearchController.prototype._onFilterInput):
2878         (WebInspector.SearchController.prototype._onSearchInput):
2879         (WebInspector.SearchController.prototype.resetFilter):
2880         * inspector/front-end/inspector.css:
2881         (.filter):
2882         * inspector/front-end/networkLogView.css:
2883         (.network-log-grid.data-grid.filter-other table.data tr.revealed.network-type-other:not(.filtered-out)):
2884
2885 2012-08-17  Anthony Berent  <aberent@chromium.org>
2886
2887         View source doesn't interpret escape characters in hrefs.
2888         https://bugs.webkit.org/show_bug.cgi?id=94216
2889
2890         Reviewed by Adam Barth.
2891
2892         The cause was that HTMLViewSourceDocument was passing the unparsed content of the href attribute to the DOM as the URL for the link.
2893         The fix is to pass the parsed content of the href attribute to the DOM.
2894
2895         Test: fast/forms/frames/viewsource-link-on-href-value.html extended to test this case.
2896
2897         * html/HTMLViewSourceDocument.cpp:
2898         (WebCore::HTMLViewSourceDocument::processTagToken): Pass parsed URL to AddRange.
2899         (WebCore::HTMLViewSourceDocument::addRange):Added argument for parsed URL, and used this instead of text, to create link.
2900         * html/HTMLViewSourceDocument.h:
2901         (HTMLViewSourceDocument): Add new link argument to addRange for parsed URL, defaulting to "".
2902
2903 2012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
2904
2905         [Forms] Rename SpinButtonElement::StepActionHandler to SpinButtonOwner
2906         https://bugs.webkit.org/show_bug.cgi?id=94311
2907
2908         Reviewed by Kent Tamura.
2909
2910         This patch renames SpinButtonElement::StepActionHandler class to
2911         SpinButtonOwner for adding functions to it for communicating spin
2912         button and its owner.
2913
2914         No new tests. This patch doesn't change behavior.
2915
2916         * html/TextFieldInputType.cpp:
2917         (WebCore::TextFieldInputType::~TextFieldInputType):
2918         (WebCore::TextFieldInputType::destroyShadowSubtree):
2919         * html/TextFieldInputType.h:
2920         (TextFieldInputType):
2921         * html/shadow/DateTimeEditElement.cpp:
2922         (WebCore::DateTimeEditElement::~DateTimeEditElement):
2923         * html/shadow/DateTimeEditElement.h:
2924         (DateTimeEditElement):
2925         * html/shadow/SpinButtonElement.cpp:
2926         (WebCore::SpinButtonElement::SpinButtonElement):
2927         (WebCore::SpinButtonElement::create):
2928         (WebCore::SpinButtonElement::doStepAction):
2929         * html/shadow/SpinButtonElement.h:
2930         (WebCore::SpinButtonElement::SpinButtonOwner::~SpinButtonOwner):
2931         (SpinButtonElement):
2932         (WebCore::SpinButtonElement::removeSpinButtonOwner):
2933
2934 2012-08-16  Simon Hausmann  <simon.hausmann@nokia.com>
2935
2936         [Qt] Replace use of internal Weak smart pointer with JSWeakObjectMap
2937         https://bugs.webkit.org/show_bug.cgi?id=93872
2938
2939         Reviewed by Kenneth Rohde Christiansen.
2940
2941         The intention of this patch series is to replace use of internal JSC
2942         API with use of the stable and public C API.
2943
2944         The JSC::Weak template is internal API and the only part of the C API
2945         that exposes similar functionality is the JSWeakObjectMap. It is
2946         special in the sense that its life-time is tied to the life-time of the
2947         JS global object, which in turn is subject to garbage collection. In
2948         order to maximize re-use of the same map across different JSContextRef
2949         instances, we use one JSWeakObjectMap per context group and store the
2950         map in a separate context.
2951
2952         * bridge/qt/qt_instance.cpp:
2953         (JSC::Bindings::unusedWeakObjectMapCallback):
2954         (Bindings):
2955         (JSC::Bindings::WeakMapImpl::WeakMapImpl):
2956         (JSC::Bindings::WeakMapImpl::~WeakMapImpl):
2957         (JSC::Bindings::WeakMap::~WeakMap):
2958         (JSC::Bindings::WeakMap::set):
2959         (JSC::Bindings::WeakMap::get):
2960         (JSC::Bindings::WeakMap::remove):
2961         * bridge/qt/qt_instance.h:
2962         (WeakMapImpl):
2963         (Bindings):
2964         (WeakMap):
2965         (QtInstance):
2966         * bridge/qt/qt_runtime.cpp:
2967         (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
2968         (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
2969         * bridge/qt/qt_runtime.h:
2970         (QtRuntimeMethod):
2971
2972
2973 2012-08-16  Pavel Feldman  <pfeldman@chromium.org>
2974
2975         Web Inspector: build Elements, Resources, Timeline, Audits and Console panels lazily.
2976         https://bugs.webkit.org/show_bug.cgi?id=94222
2977
2978         Reviewed by Vsevolod Vlasov.
2979
2980         There is no need to construct these panels on inspector startup - we can do that lazily.
2981         This change introduces the concept of PanelDescriptor that is sufficient for the panel
2982         representation before it has been selected. It also makes selected panels build lazily.
2983
2984         The next step is to migrate rest of the panels and load the panel code lazily as well.
2985         That should speed up startup time significantly.
2986
2987         * inspector/front-end/AuditsPanel.js:
2988         (WebInspector.AuditsPanel):
2989         (WebInspector.AuditsPanel.prototype._auditFinishedCallback):
2990         (WebInspector.AuditsSidebarTreeElement):
2991         (WebInspector.AuditsSidebarTreeElement.prototype.onselect):
2992         (WebInspector.AuditResultSidebarTreeElement):
2993         (WebInspector.AuditResultSidebarTreeElement.prototype.onselect):
2994         * inspector/front-end/ConsolePanel.js:
2995         * inspector/front-end/DOMStorage.js:
2996         (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
2997         (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
2998         * inspector/front-end/Database.js:
2999         (WebInspector.DatabaseDispatcher.prototype.addDatabase):
3000         * inspector/front-end/ElementsPanel.js:
3001         (WebInspector.ElementsPanel):
3002         (WebInspector.ElementsPanel.prototype.revealAndSelectNode):
3003         (WebInspector.ElementsPanel.prototype.setSearchingForNode):
3004         (WebInspector.ElementsPanel.prototype.toggleSearchingForNode):
3005         * inspector/front-end/ElementsTreeOutline.js:
3006         (WebInspector.ElementsTreeElement.prototype._populateForcedPseudoStateItems):
3007         * inspector/front-end/ExtensionPanel.js:
3008         (WebInspector.ExtensionPanel):
3009         (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
3010         * inspector/front-end/ExtensionServer.js:
3011         (WebInspector.ExtensionServer.prototype._onCreatePanel):
3012         (WebInspector.ExtensionServer.prototype._onAddAuditCategory):
3013         * inspector/front-end/InspectorFrontendAPI.js:
3014         (InspectorFrontendAPI.isTimelineProfilingEnabled):
3015         (InspectorFrontendAPI.setTimelineProfilingEnabled):
3016         (InspectorFrontendAPI.showConsole):
3017         (InspectorFrontendAPI.showResources):
3018         (InspectorFrontendAPI.enterInspectElementMode):
3019         * inspector/front-end/InspectorView.js:
3020         (WebInspector.InspectorView):
3021         (WebInspector.InspectorView.prototype.addPanel):
3022         (WebInspector.InspectorView.prototype.panel):
3023         (WebInspector.InspectorView.prototype.showPanel):
3024         (WebInspector.InspectorView.prototype._keyDownInternal):
3025         * inspector/front-end/NetworkPanel.js:
3026         * inspector/front-end/Panel.js:
3027         (WebInspector.Panel.prototype.wasShown):
3028         (WebInspector.Panel.prototype.willHide):
3029         (WebInspector.PanelDescriptor):
3030         (WebInspector.PanelDescriptor.prototype.name):
3031         (WebInspector.PanelDescriptor.prototype.title):
3032         (WebInspector.PanelDescriptor.prototype.iconURL):
3033         (WebInspector.PanelDescriptor.prototype.setIconURL):
3034         (WebInspector.PanelDescriptor.prototype.panel):
3035         (WebInspector.PanelDescriptor.prototype.lazy):
3036         * inspector/front-end/ProfilesPanel.js:
3037         * inspector/front-end/ResourceTreeModel.js:
3038         (WebInspector.ResourceTreeModel.prototype.cachedResourcesLoaded):
3039         * inspector/front-end/ResourcesPanel.js:
3040         (WebInspector.ResourcesPanel):
3041         * inspector/front-end/ScriptsPanel.js:
3042         * inspector/front-end/StylesSidebarPane.js:
3043         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
3044         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
3045         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
3046         * inspector/front-end/TimelinePanel.js:
3047         * inspector/front-end/Toolbar.js:
3048         (WebInspector.Toolbar.prototype.addPanel):
3049         (WebInspector.Toolbar.prototype._createPanelToolbarItem.onToolbarItemClicked):
3050         (WebInspector.Toolbar.prototype._createPanelToolbarItem.panelSelected):
3051         (WebInspector.Toolbar.prototype._createPanelToolbarItem):
3052         (WebInspector.Toolbar.prototype._panelSelected):
3053         (WebInspector.Toolbar.prototype._setDropdownVisible):
3054         (WebInspector.ToolbarDropdown):
3055         (WebInspector.ToolbarDropdown.prototype.show):
3056         (WebInspector.ToolbarDropdown.prototype._populate):
3057         * inspector/front-end/inspector.css:
3058         (.toolbar-small .toolbar-icon.custom-toolbar-icon):
3059         * inspector/front-end/inspector.js:
3060         (WebInspector._panelDescriptors):
3061         (WebInspector._panelSelected):
3062         (WebInspector._createGlobalStatusBarItems):
3063         (WebInspector.documentClick.followLink):
3064         (WebInspector.documentClick):
3065         (WebInspector.openResource):
3066         (WebInspector.showPanel):
3067         (WebInspector.panel):
3068         (WebInspector.inspect.):
3069         (WebInspector.inspect):
3070         (WebInspector._showAnchorLocation):
3071         (WebInspector.showProfileForURL):
3072         (WebInspector.frontendReused):
3073
3074 2012-08-17  Pascal Massimino  <pascal.massimino@gmail.com>
3075
3076         libwebp-0.2.0: handle alpha channel if present
3077
3078         https://bugs.webkit.org/show_bug.cgi?id=93430
3079
3080         Reviewed by Adam Barth.
3081
3082         updated the Layout test webp-image-decoding.html
3083
3084         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
3085         (outputMode):
3086                 switch to premultiplied-RGB if needed
3087         (WebCore::WEBPImageDecoder::WEBPImageDecoder):
3088         (WebCore::WEBPImageDecoder::decode):
3089                 use WebPGetFeatures() instead of WebPGetInfo(),
3090                 to detect presence of alpha channel
3091         * platform/image-decoders/webp/WEBPImageDecoder.h:
3092         (WEBPImageDecoder):
3093                 add a m_hasAlpha field
3094
3095 2012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
3096
3097         [Forms] Enable multiple fields time input UI for Chromium except Android
3098         https://bugs.webkit.org/show_bug.cgi?id=94195
3099
3100         Reviewed by Kent Tamura.
3101
3102         This patch enables multiple fields time input UI for Chromium except
3103         for Android.
3104
3105         No new tests. Existing tests in fast/forms/time-multiple-fields/
3106         covers appearance and functionality of multiple fields time UI.
3107
3108         A manual checking for browser displays multiple fields time input UI
3109         is needed.
3110
3111         * bindings/generic/RuntimeEnabledFeatures.cpp:
3112         (WebCore): Changed RuntimeEnabledFeatures::isInputTypeTimeEnabled to true
3113         if ENABLE_INPUT_TYPE_TIME is enabled.
3114
3115 2012-08-17  Yoshifumi Inoue  <yosin@chromium.org>
3116
3117         [Forms] Introduce SpinButtonElement.{cpp,h} into build
3118         https://bugs.webkit.org/show_bug.cgi?id=94289
3119
3120         Reviewed by Kent Tamura.
3121
3122         This patch introduces html/shadow/SpinButtonElement.{cpp,h} into
3123         build, files were copied from TextControlInnerElements.{cpp,h} by
3124         bug 93943.
3125
3126         No new tests. This patch doesn't changes behavior.
3127
3128         * CMakeLists.txt: Added SpinButtonElement.cpp
3129         * GNUmakefile.list.am: Added SpinButtonElement.{cpp,h}
3130         * Target.pri: Added SpinButtonElement.cpp
3131         * WebCore.gypi: Added SpinButtonElement.{cpp,h}
3132         * WebCore.vcproj/WebCore.vcproj: Added SpinButtonElement.{cpp,h}
3133         * WebCore.xcodeproj/project.pbxproj: Added SpinButtonElement.{cpp,h}
3134         * accessibility/AccessibilitySpinButton.h: Replaced include file to SpinButtonElement.h from TextControlInnerElements.h
3135         * html/TextFieldInputType.h: Added include file SpinButtonElement.h
3136         * html/shadow/DateTimeEditElement.h: Replaced include file to SpinButtonElement.h from TextControlInnerElements.h
3137         * html/shadow/SpinButtonElement.cpp: Removed code other than SpinButtonElement.
3138         * html/shadow/SpinButtonElement.h: Removed code other than SpinButtonElement.
3139         * html/shadow/TextControlInnerElements.cpp: Removed code of SpinButtonElement.
3140         * html/shadow/TextControlInnerElements.h: Removed SpinButtonElement.
3141         * rendering/RenderTheme.cpp: Added include file SpinButtonElement.h
3142
3143 2012-08-17  Sukolsak Sakshuwong  <sukolsak@google.com>
3144
3145         Implement UndoManager's V8 bindings
3146         https://bugs.webkit.org/show_bug.cgi?id=93912
3147
3148         Reviewed by Ryosuke Niwa.
3149
3150         This patch implements V8 bindings for UndoManager's transact() method.
3151         We keep alive the user objects passed to transact() by storing them in
3152         a hidden property of DOMTransaction's wrapper and registering implicit
3153         references from UndoManager to DOMTransaction.
3154
3155         Tests: editing/undomanager/domtransaction-survives-gc.html
3156                editing/undomanager/undomanager-isolated-world.html
3157                editing/undomanager/undomanager-transact.html
3158                editing/undomanager/undomanager-undo-redo.html
3159                editing/undomanager/undomanager-use-after-free.html
3160
3161         * CMakeLists.txt:
3162         * DerivedSources.cpp:
3163         * DerivedSources.make:
3164         * DerivedSources.pri:
3165         * GNUmakefile.list.am:
3166         * Target.pri:
3167         * UseJSC.cmake:
3168         * UseV8.cmake:
3169         * WebCore.gypi:
3170         * WebCore.vcproj/WebCore.vcproj:
3171         * WebCore.xcodeproj/project.pbxproj:
3172         * bindings/js/DOMTransaction.cpp: Added.
3173         (WebCore):
3174         (WebCore::DOMTransaction::DOMTransaction):
3175         (WebCore::DOMTransaction::create):
3176         (WebCore::DOMTransaction::apply):
3177         (WebCore::DOMTransaction::unapply):
3178         (WebCore::DOMTransaction::reapply):
3179         * bindings/js/DOMTransaction.h: Added.
3180         (WebCore):
3181         (DOMTransaction):
3182         (WebCore::DOMTransaction::undoManager):
3183         (WebCore::DOMTransaction::setUndoManager):
3184         * bindings/js/JSBindingsAllInOne.cpp:
3185         * bindings/js/JSUndoManagerCustom.cpp: Added.
3186         (WebCore):
3187         (WebCore::JSUndoManager::transact):
3188         * bindings/v8/DOMTransaction.cpp: Added.
3189         (WebCore):
3190         (WebCore::DOMTransaction::DOMTransaction):
3191         (WebCore::DOMTransaction::create):
3192         (WebCore::DOMTransaction::apply):
3193         (WebCore::DOMTransaction::unapply):
3194         (WebCore::DOMTransaction::reapply):
3195         (WebCore::DOMTransaction::getFunction):
3196         (WebCore::DOMTransaction::callFunction):
3197         * bindings/v8/DOMTransaction.h: Added.
3198         (WebCore):
3199         (DOMTransaction):
3200         (WebCore::DOMTransaction::undoManager):
3201         (WebCore::DOMTransaction::setUndoManager):
3202         * bindings/v8/V8HiddenPropertyName.h:
3203         (WebCore):
3204         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Added.
3205         (WebCore):
3206         (WebCore::V8DOMTransaction::visitDOMWrapper):
3207         * bindings/v8/custom/V8UndoManagerCustom.cpp: Added.
3208         (WebCore):
3209         (WebCore::V8UndoManager::transactCallback):
3210         * dom/Document.cpp:
3211         (WebCore::Document::~Document):
3212         (WebCore::Document::undoManager):
3213         * dom/Element.cpp:
3214         (WebCore::Element::undoManager):
3215         (WebCore::Element::disconnectUndoManager):
3216         * editing/CompositeEditCommand.h:
3217         * editing/DOMTransaction.idl: Added.
3218         * editing/Editor.cpp:
3219         (WebCore::Editor::appliedEditing):
3220         (WebCore::Editor::unappliedEditing):
3221         (WebCore::Editor::reappliedEditing):
3222         (WebCore::Editor::canUndo):
3223         (WebCore::Editor::undo):
3224         (WebCore::Editor::canRedo):
3225         (WebCore::Editor::redo):
3226         * editing/UndoManager.cpp:
3227         (WebCore::UndoManager::create):
3228         (WebCore::UndoManager::UndoManager):
3229         (WebCore::clearStack):
3230         (WebCore):
3231         (WebCore::UndoManager::disconnect):
3232         (WebCore::UndoManager::stop):
3233         (WebCore::UndoManager::~UndoManager):
3234         (WebCore::createUndoManagerEntry):
3235         (WebCore::UndoManager::transact):
3236         (WebCore::UndoManager::undo):
3237         (WebCore::UndoManager::redo):
3238         (WebCore::UndoManager::registerUndoStep):
3239         (WebCore::UndoManager::registerRedoStep):
3240         (WebCore::UndoManager::clearUndo):
3241         (WebCore::UndoManager::clearRedo):
3242         * editing/UndoManager.h:
3243         (WebCore):
3244         (UndoManager):
3245         (WebCore::UndoManager::position):
3246         (WebCore::UndoManager::canUndo):
3247         (WebCore::UndoManager::canRedo):
3248         (WebCore::UndoManager::undoScopeHost):
3249         (WebCore::UndoManager::ownerNode):
3250         * editing/UndoManager.idl:
3251         * editing/UndoStep.h:
3252         (UndoStep):
3253
3254 2012-08-16  Andrey Kosyakov  <caseq@chromium.org>
3255
3256         Web Inspector: CPU profile view select overlaps with status bar buttons
3257         https://bugs.webkit.org/show_bug.cgi?id=94243
3258
3259         Reviewed by Pavel Feldman.
3260
3261         - use StatusBarComboBox inated of plain select element in the status bar of CPU profile view;
3262         - add StatusBarComboBox.select()
3263
3264         * inspector/front-end/CPUProfileView.js:
3265         (WebInspector.CPUProfileView.prototype.get statusBarItems):
3266         * inspector/front-end/StatusBarButton.js:
3267         (WebInspector.StatusBarComboBox.prototype.selectedOption):
3268         (WebInspector.StatusBarComboBox.prototype.select):
3269         * inspector/front-end/externs.js: drive-by fix: add declaration to suppress compilation error;
3270         (Array.prototype.select):
3271
3272 2012-08-16  Vsevolod Vlasov  <vsevik@chromium.org>
3273
3274         Web Inspector: Snippet script mapping should not load snippets until workspace reset event is dispatched on scripts panel.
3275         https://bugs.webkit.org/show_bug.cgi?id=94218
3276
3277         Reviewed by Pavel Feldman.
3278
3279         Scripts panel does not load uiSourceCodes in workspace reset handler anymore.
3280         Snippet script mapping does not start reloading snippets after reset until WorkspaceReset event is dispatched.
3281
3282         * inspector/front-end/JavaScriptSourceFrame.js: Simplified isComittingEditing to be reset synchronously.
3283         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
3284         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
3285         * inspector/front-end/ScriptSnippetModel.js:
3286         (WebInspector.ScriptSnippetModel.prototype._reset):
3287         * inspector/front-end/ScriptsPanel.js:
3288         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
3289         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
3290         (WebInspector.ScriptsPanel.prototype._reset):
3291         * inspector/front-end/UISourceCodeFrame.js: Simplified isComittingEditing to be reset synchronously.
3292         (WebInspector.UISourceCodeFrame.prototype.commitEditing):
3293         (WebInspector.UISourceCodeFrame.prototype._didEditContent):
3294
3295 2012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3296
3297         Unreviewed, rolling out r125829.
3298         http://trac.webkit.org/changeset/125829
3299         https://bugs.webkit.org/show_bug.cgi?id=94299
3300
3301         Maybe causing Chromium AutomationTabHelperBrowserTest failures
3302         (Requested by enne on #webkit).
3303
3304         * loader/FrameLoader.cpp:
3305         (WebCore::FrameLoader::init):
3306         (WebCore::FrameLoader::prepareForLoadStart):
3307         (WebCore::FrameLoader::clearProvisionalLoad):
3308         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
3309         (WebCore::FrameLoader::detachFromParent):
3310         * loader/FrameLoader.h:
3311         (FrameLoader):
3312
3313 2012-08-16  Nico Weber  <thakis@chromium.org>
3314
3315         [chromium/mac] Remove RenderThemeChromiumMac::paintTextField override
3316         https://bugs.webkit.org/show_bug.cgi?id=94276
3317
3318         Reviewed by Eric Seidel.
3319
3320         The comment says this can go once 10.5 goes away. Besides, the
3321         superclass implementation has the same hack anyway.
3322
3323         No behavior change.
3324
3325         * rendering/RenderThemeChromiumMac.h:
3326         (RenderThemeChromiumMac):
3327         * rendering/RenderThemeChromiumMac.mm:
3328
3329 2012-08-16  David Barr  <davidbarr@chromium.org>
3330
3331         @import url("#foo") causes stack overflow
3332         https://bugs.webkit.org/show_bug.cgi?id=93687
3333
3334         Reviewed by Tony Chang.
3335
3336         Test: http/tests/css/css-imports-url-fragment.html
3337
3338         * css/StyleRuleImport.cpp:
3339         (WebCore::StyleRuleImport::requestStyleSheet): Ignore the fragment identifier in cycle detection.
3340
3341 2012-08-16  Antoine Labour  <piman@chromium.org>
3342
3343         [chromium] Add resource transfer functions to CCResourceProvider
3344         https://bugs.webkit.org/show_bug.cgi?id=93524
3345
3346         Reviewed by James Robinson.
3347
3348         This adds methods to CCResourceProvider to be able to transport
3349         resources from a child to a parent.
3350
3351         Added test to CCResourceProviderTest.
3352
3353         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
3354         (WebCore::CCResourceProvider::inUseByConsumer):
3355         (WebCore::CCResourceProvider::createResource):
3356         (WebCore::CCResourceProvider::createResourceFromExternalTexture):
3357         (WebCore::CCResourceProvider::CCResourceProvider):
3358         (WebCore::CCResourceProvider::createChild):
3359         (WebCore):
3360         (WebCore::CCResourceProvider::destroyChild):
3361         (WebCore::CCResourceProvider::getChildToParentMap):
3362         (WebCore::CCResourceProvider::prepareSendToParent):
3363         (WebCore::CCResourceProvider::prepareSendToChild):
3364         (WebCore::CCResourceProvider::receiveFromChild):
3365         (WebCore::CCResourceProvider::receiveFromParent):
3366         (WebCore::CCResourceProvider::transferResource):
3367         * platform/graphics/chromium/cc/CCResourceProvider.h:
3368         (Mailbox):
3369         (TransferableResource):
3370         (TransferableResourceList):
3371         (CCResourceProvider):
3372         (Resource):
3373         (Child):
3374
3375 2012-08-16  David Grogan  <dgrogan@chromium.org>
3376
3377         IndexedDB: Frontend and plumbing for integer versions
3378         https://bugs.webkit.org/show_bug.cgi?id=92897
3379
3380         Reviewed by Tony Chang.
3381
3382         This patch exposes integer versions and the upgradeneeded event to
3383         script.
3384
3385         The events surrounding an IDBOpenDBRequest follow a new pattern
3386         compared to other idb requests. An open request can receive a blocked
3387         event, an upgradeneeded event, and then a success event. When
3388         dispatching the upgradeneeded and success events the request has its
3389         readyState set to DONE and its result property set to an IDBDatabase.
3390         We usually think of IDBRequests firing one event with one result,
3391         cursors being the big exception. There are some minor changes around
3392         enqueuing and dispatching events to support this.
3393
3394         There's also some funkiness in
3395         IDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface>) so that
3396         the IDBDatabase object delivered in upgradeneeded is reused for the
3397         success event.
3398
3399         Tests - expectations are updated in this patch.
3400
3401         * Modules/indexeddb/IDBDatabase.cpp:
3402         (WebCore::IDBDatabase::setVersion):
3403         (WebCore::IDBDatabase::onVersionChange):
3404         (WebCore):
3405         (WebCore::IDBDatabase::registerFrontendCallbacks):
3406         * Modules/indexeddb/IDBDatabase.h:
3407         (IDBDatabase):
3408         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3409         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
3410         * Modules/indexeddb/IDBDatabaseCallbacks.h:
3411         (IDBDatabaseCallbacks):
3412         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
3413         (WebCore::IDBDatabaseCallbacksImpl::onVersionChange):
3414         (WebCore):
3415         * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
3416         (IDBDatabaseCallbacksImpl):
3417         * Modules/indexeddb/IDBFactory.cpp:
3418         (WebCore::IDBFactory::open):
3419         (WebCore):
3420         * Modules/indexeddb/IDBFactory.h:
3421         (IDBFactory):
3422         * Modules/indexeddb/IDBFactory.idl:
3423         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
3424         (WebCore::IDBFactoryBackendImpl::open):
3425         * Modules/indexeddb/IDBFactoryBackendImpl.h:
3426         (IDBFactoryBackendImpl):
3427         * Modules/indexeddb/IDBFactoryBackendInterface.h:
3428         (IDBFactoryBackendInterface):
3429         * Modules/indexeddb/IDBOpenDBRequest.cpp: Added.
3430         (WebCore):
3431         (WebCore::IDBOpenDBRequest::create):
3432         (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
3433         (WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
3434         (WebCore::IDBOpenDBRequest::interfaceName):
3435         (WebCore::IDBOpenDBRequest::onBlocked):
3436         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
3437         (WebCore::IDBOpenDBRequest::shouldEnqueueEvent):
3438         * Modules/indexeddb/IDBOpenDBRequest.h: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h.
3439         (WebCore):
3440         (IDBOpenDBRequest):
3441         * Modules/indexeddb/IDBOpenDBRequest.idl: Copied from Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h.
3442         * Modules/indexeddb/IDBRequest.cpp:
3443         (WebCore::IDBRequest::IDBRequest):
3444         (WebCore::IDBRequest::shouldEnqueueEvent):
3445         (WebCore::IDBRequest::onSuccess):
3446         This function works with WebIDBCallbacksImpl::onSuccess to reuse its
3447         IDBDatabaseBackendInterface that it got during
3448         IDBOpenDBRequest::onUpgradeNeeded.
3449
3450         (WebCore::IDBRequest::dispatchEvent):
3451         (WebCore::IDBRequest::transactionDidDispatchCompleteOrAbort):
3452         (WebCore):
3453         (WebCore::IDBRequest::enqueueEvent):
3454         * Modules/indexeddb/IDBRequest.h:
3455         (WebCore::IDBRequest::onBlocked):
3456         (IDBRequest):
3457         * Modules/indexeddb/IDBTransaction.cpp:
3458         We now take a pointer to the openDBRequest if this is a version
3459         change transaction as a result of an open-with-version call so that we
3460         can clear the transaction property on the openDBRequest as soon as the
<