WebInspector: Switch hide element shortcut in ElementsPanel to use a selector
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-28  Eberhard Graether  <egraether@google.com>
2
3         WebInspector: Switch hide element shortcut in ElementsPanel to use a selector
4         https://bugs.webkit.org/show_bug.cgi?id=110641
5
6         Reviewed by Pavel Feldman.
7
8         This change switches the shortcut for adding visibility:hidden to an element's style
9         to toggling a class name on the element and injecting a style rule into the element's
10         document instead. This way it is possible to change the visibility of all child
11         elements as well.
12
13         Test: inspector/elements/hide-shortcut.html
14
15         * inspector/front-end/CSSStyleModel.js:
16         * inspector/front-end/ElementsTreeOutline.js:
17         (WebInspector.ElementsTreeOutline.prototype._onkeydown):
18         (WebInspector.ElementsTreeOutline.prototype.resolvedNode.toggleClassAndInjectStyleRule):
19         (WebInspector.ElementsTreeOutline.prototype.):
20         (WebInspector.ElementsTreeOutline.prototype._toggleHideShortcut):
21
22 2013-02-28  Ryuan Choi  <ryuan.choi@samsung.com>
23
24         [EFL] Build break with --no-web-audio and --no-video
25         https://bugs.webkit.org/show_bug.cgi?id=111055
26
27         Unreviewed build fix.
28
29         * platform/graphics/gstreamer/GStreamerUtilities.cpp:
30
31 2013-02-28  Xingnan Wang  <xingnan.wang@intel.com>
32
33         Implement the memory report on IPP FFTFrame on Web Audio
34         https://bugs.webkit.org/show_bug.cgi?id=111039
35
36         Reviewed by Yury Semikhatsky.
37
38         Covered by existing test.
39
40         * platform/audio/FFTFrame.cpp:
41         (WebCore::FFTFrame::reportMemoryUsage):
42
43 2013-02-28  Levi Weintraub  <leviw@chromium.org>
44
45         Stale FrameSelection in removed iframe causes crash
46         https://bugs.webkit.org/show_bug.cgi?id=108696
47
48         Reviewed by Ryosuke Niwa.
49
50         Catching a specific issue where selectFrameElementInParentIfFullySelected in a nested
51         iFrame that is removed can leave the outer frame's selection referencing stale nodes.
52         Instead, in this case, we keep the frame alive long enough to check for this condition
53         and clear our selection if we hit it.
54
55         Test: editing/selection/selection-in-iframe-removed-crash.html
56
57         * editing/FrameSelection.cpp:
58         (WebCore::FrameSelection::setSelection):
59
60 2013-02-28  Conrad Shultz  <conrad_shultz@apple.com>
61
62         Need API to control page underlay color
63         https://bugs.webkit.org/show_bug.cgi?id=110918
64
65         Reviewed by Simon Fraser.
66
67         * page/ChromeClient.h:
68         (ChromeClient):
69         Declare underlayColor().
70
71         * platform/ScrollbarTheme.h:
72         (WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents):
73         Have setUpOverhangAreasLayerContents() take a background color parameter.
74
75         * platform/mac/ScrollbarThemeMac.h:
76         (ScrollbarThemeMac):
77         Ditto.
78
79         * platform/mac/ScrollbarThemeMac.mm:
80         Include ColorMac.h.
81         (WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
82         Use the passed-in background color, if valid, for the overhang area layer.
83
84         * rendering/RenderLayerCompositor.cpp:
85         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
86         Get the underlay color from the chrome client and pass it into setUpOverhangAreasLayerContents().
87
88 2013-02-28  Beth Dakin  <bdakin@apple.com>
89
90         RelevantRepaintedObjects heuristic should ensure there is some coverage in the 
91         bottom half of the relevant view rect
92         https://bugs.webkit.org/show_bug.cgi?id=111124
93         -and corresponding-
94         <rdar://problem/12257164>
95
96         Reviewed by Simon Fraser.
97
98         We need two Regions now -- one for the top and another for the bottom. Make sure 
99         we have at least half of our desired coverage in both.
100         * page/Page.cpp:
101         (WebCore::Page::resetRelevantPaintedObjectCounter):
102         (WebCore::Page::addRelevantRepaintedObject):
103         (WebCore::Page::reportMemoryUsage):
104         * page/Page.h:
105
106 2013-02-28  Chris Fleizach  <cfleizach@apple.com>
107
108         WebSpeech: support pitch change
109         https://bugs.webkit.org/show_bug.cgi?id=107348
110
111         Reviewed by Beth Dakin.
112
113         Implement a policy for the Mac synthesizer to convert from the utterance's pitch rate
114         to something sensible for the platform.
115
116         * platform/mac/PlatformSpeechSynthesizerMac.mm:
117         (-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
118         (-[WebSpeechSynthesisWrapper convertPitchToNSSpeechValue:]):
119         (-[WebSpeechSynthesisWrapper updateBasePitchForSynthesizer]):
120         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
121
122 2013-02-28   Vineet Chaudhary  <rgf748@motorola.com>
123
124         Unreviewed. Bindings test results update after r144376.
125
126         * bindings/scripts/test/JS/JSTestObj.cpp:
127
128 2013-02-28  Roger Fong  <roger_fong@apple.com>
129
130         Unreviewed. AppleWin VS2010 build fix.
131
132         * WebCore.vcxproj/WebCore.vcxproj:
133         * WebCore.vcxproj/WebCore.vcxproj.filters:
134
135 2013-02-28  Roger Fong  <roger_fong@apple.com>
136
137         Unreviewed. AppleWin Build fix.
138
139         * WebCore.vcproj/WebCore.vcproj:
140
141 2013-02-28  Kentaro Hara  <haraken@chromium.org>
142
143         [V8] Remove the world->isMainWorld() check from minorGCPrologue()
144         https://bugs.webkit.org/show_bug.cgi?id=111114
145
146         Reviewed by Adam Barth.
147
148         A couple of weeks ago, I introduced the following check to minorGCPrologue() in r142419.
149
150           void minorGCPrologue() {
151             // A minor GC can handle the main world only.
152             DOMWrapperWorld* world = worldForEnteredContextWithoutContextCheck();
153             if (world && world->isMainWorld()) {
154               MinorGCWrapperVisitor visitor(isolate);
155               v8::V8::VisitHandlesForPartialDependence(isolate, &visitor);
156               visitor.notifyFinished();
157             }
158           }
159
160         - The check makes no sense. A GC should not care about what world we are in.
161         There is no concept of worlds in GC.
162
163         - worldForEnteredContextWithoutContextCheck() returns 0 for the main world.
164         So if a GC runs in the main world, the minor DOM GC is skipped.
165
166         - worldForEnteredContextWithoutContextCheck() caused a Chromium crash
167         (https://code.google.com/p/chromium/issues/detail?id=177587)
168
169         We should remove the check.
170
171         No tests. No change in behavior.
172
173         * bindings/v8/DOMWrapperWorld.h:
174         (WebCore::DOMWrapperWorld::getWorld):
175         * bindings/v8/V8Binding.h:
176         * bindings/v8/V8GCController.cpp:
177         (WebCore::V8GCController::minorGCPrologue):
178
179 2013-02-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
180
181         Create GraphicsContext3DState to aggregate state objects
182         https://bugs.webkit.org/show_bug.cgi?id=110817
183
184         Reviewed by Kenneth Russell.
185
186         Aggregate context state-related objects on a GraphicsContext3DState
187         struct, in a similar fashion as GraphicsContext does. This is useful to
188         avoid duplicated values for platform-specific initialization lists.
189
190         No behavior changes, thus covered by existing tests.
191
192         * platform/graphics/GraphicsContext3D.h:
193         (WebCore::GraphicsContext3D::GraphicsContext3DState::GraphicsContext3DState):
194         (GraphicsContext3DState):
195         (GraphicsContext3D):
196         Moved m_boundFBO, m_activeTexture and m_boundTexture0 to GraphicsContext3DState.
197
198         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
199         (WebCore::GraphicsContext3D::GraphicsContext3D):
200         (WebCore::GraphicsContext3D::reshapeFBOs):
201         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
202         (WebCore::GraphicsContext3D::GraphicsContext3D):
203         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
204         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
205         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
206         (WebCore::GraphicsContext3D::GraphicsContext3D):
207         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
208         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
209         * platform/graphics/mac/GraphicsContext3DMac.mm:
210         (WebCore::GraphicsContext3D::GraphicsContext3D):
211         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
212         (WebCore::GraphicsContext3D::reshapeFBOs):
213         (WebCore::GraphicsContext3D::readPixels):
214         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
215         (WebCore::GraphicsContext3D::prepareTexture):
216         (WebCore::GraphicsContext3D::readRenderingResults):
217         (WebCore::GraphicsContext3D::reshape):
218         (WebCore::GraphicsContext3D::activeTexture):
219         (WebCore::GraphicsContext3D::bindFramebuffer):
220         (WebCore::GraphicsContext3D::bindTexture):
221         (WebCore::GraphicsContext3D::copyTexImage2D):
222         (WebCore::GraphicsContext3D::copyTexSubImage2D):
223         (WebCore::GraphicsContext3D::deleteFramebuffer):
224         (WebCore::GraphicsContext3D::deleteTexture):
225         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
226         (WebCore::GraphicsContext3D::readPixels):
227         (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
228         (WebCore::GraphicsContext3D::reshapeFBOs):
229         * platform/graphics/qt/GraphicsContext3DQt.cpp:
230         (WebCore::GraphicsContext3DPrivate::createOffscreenBuffers):
231         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
232         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebuffer):
233         (WebCore::GraphicsContext3D::GraphicsContext3D):
234         Removed initialization list values not needed anymore and reassigned
235         calls to m_boundFBO, m_boundTexture0 and m_activeTexture to m_state
236         respectives.
237
238 2013-02-28  David Hyatt  <hyatt@apple.com>
239
240         Unreviewed build fix. A merge error led to a duplication of a single line.
241         Just removing the duplicate line.
242
243         * rendering/RenderLayer.cpp:
244         (WebCore::RenderLayer::createLocalTransformState):
245
246 2013-02-28  Kaustubh Atrawalkar  <kaustubh@motorola.com>
247
248         Notification.requestPermission callback should be optional
249         https://bugs.webkit.org/show_bug.cgi?id=108196
250
251         Reviewed by Kentaro Hara.
252
253         Spec says it should be optional.
254         http://notifications.spec.whatwg.org/#notification
255
256         Test: fast/notifications/notifications-request-permission-optional.html
257
258         * GNUmakefile.list.am:
259         * Modules/notifications/Notification.h:
260         (Notification):
261         * Modules/notifications/Notification.idl:
262         * Modules/notifications/NotificationCenter.cpp:
263         (WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
264         * Modules/notifications/NotificationCenter.h:
265         (NotificationCenter):
266         * Modules/notifications/NotificationCenter.idl:
267         * Target.pri:
268         * UseJSC.cmake:
269         * UseV8.cmake:
270         * WebCore.gypi:
271         * WebCore.vcproj/WebCore.vcproj:
272         * WebCore.vcxproj/WebCore.vcxproj:
273         * WebCore.vcxproj/WebCore.vcxproj.filters:
274         * WebCore.xcodeproj/project.pbxproj:
275         * bindings/js/JSBindingsAllInOne.cpp:
276         * bindings/js/JSDesktopNotificationsCustom.cpp: Removed.
277         * bindings/js/JSNotificationCustom.cpp: Removed.
278         * bindings/scripts/CodeGeneratorJS.pm:
279         (GenerateParametersCheck):
280         * bindings/v8/custom/V8NotificationCenterCustom.cpp: Removed.
281         * bindings/v8/custom/V8NotificationCustom.cpp: Removed.
282
283 2013-02-28  Ben Wagner  <bungeman@chromium.org>
284
285         Underline should round to match other content.
286         https://bugs.webkit.org/show_bug.cgi?id=111005
287
288         Reviewed by Stephen White.
289
290         Test: fast/text/decorations-with-text-combine.html
291
292         * platform/graphics/skia/GraphicsContextSkia.cpp:
293         (WebCore::GraphicsContext::drawLineForText):
294         Round (instead of floor) underlines to match other content.
295
296 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
297
298         Refine Ryosuke's r144367 fix.
299
300         Rubber-stamped by Ryosuke Niwa.
301
302         * page/PageGroup.cpp:
303         (WebCore::PageGroup::captionPreferences):
304
305 2013-02-28  Eric Seidel  <eric@webkit.org>
306
307         Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
308         https://bugs.webkit.org/show_bug.cgi?id=110937
309
310         Reviewed by Adam Barth.
311
312         Remove the #ifdef guards added to work around this ASSERT.
313         This was fixed by https://bugs.webkit.org/show_bug.cgi?id=110951
314         as now DocumentLoader::checkLoadComplete() will ignore the call
315         if the DocumentLoader is not the active document loader for the Document.
316
317         * dom/Document.cpp:
318         (WebCore::Document::decrementActiveParserCount):
319         * loader/DocumentLoader.cpp:
320         (WebCore::DocumentLoader::isLoading):
321         (WebCore::DocumentLoader::checkLoadComplete):
322
323 2013-02-28  Ryosuke Niwa  <rniwa@webkit.org>
324
325         Revert an erroneous change in r144336.
326
327         Rubber-stamped by Eric Carlson.
328
329         * page/PageGroup.cpp:
330         (WebCore::PageGroup::captionPreferences):
331
332 2013-02-28  David Hyatt  <hyatt@apple.com>
333
334         Unreviewed build fix for Windows. Make sure the new bits are unsigned and not bools.
335
336         * rendering/RenderBlock.h:
337
338 2013-02-28  Jochen Eisinger  <jochen@chromium.org>
339
340         Meta referrer isn't honored for window.open
341         https://bugs.webkit.org/show_bug.cgi?id=111076
342
343         Reviewed by Adam Barth.
344
345         Test: http/tests/security/referrer-policy-window-open.html
346
347         * loader/FrameLoader.cpp:
348         (WebCore::FrameLoader::urlSelected): loadFrameRequest() will set the correct referrer
349         (WebCore::createWindow): This code is required for the inspector which doesn't set the referrer
350         * page/DOMWindow.cpp:
351         (WebCore::DOMWindow::createWindow):
352
353 2013-02-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
354
355         [texmap] Remove redundant defines on TextureMapperGL
356         https://bugs.webkit.org/show_bug.cgi?id=111090
357
358         Reviewed by Antonio Gomes.
359
360         driverSupportsSubImage() already uses OpenGL ES defines to return
361         correct support, thus no need for these additional defines.
362
363         No behavior changes, thus covered by existing tests.
364
365         * platform/graphics/texmap/TextureMapperGL.cpp:
366         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
367
368 2013-02-26  Zhenyao Mo  <zmo@google.com>
369
370         EXT_draw_buffers needs implementation
371         https://bugs.webkit.org/show_bug.cgi?id=109331
372
373         Reviewed by Kenneth Russell.
374
375         This patch adds support for EXT_draw_buffers for WebGL.
376         mac OpenGL port is passing khronos WebGL conformance test with this patch. OpenGL ES port implementation isn't added in this patch.
377         Also, it has the WebKit side support for chromium port, but pending command buffer implementation.
378
379         Besides the basic extension implementation, we also added drawBuffers() wrapper to work around a mac driver bug: i.e., do not enable a buffer if there is no attachment added.
380
381         * CMakeLists.txt:
382         * DerivedSources.make:
383         * DerivedSources.pri:
384         * GNUmakefile.list.am:
385         * Target.pri:
386         * WebCore.gypi:
387         * WebCore.xcodeproj/project.pbxproj:
388         * bindings/js/JSWebGLRenderingContextCustom.cpp:
389         (WebCore::toJS):
390         * bindings/v8/V8Binding.h:
391         (WebCore):
392         (WebCore::toInt32):
393         (WebCore::toUInt32):
394         (WebCore::toFloat):
395         (WebCore::toInt64):
396         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
397         (WebCore::toV8Object):
398         * html/canvas/EXTDrawBuffers.cpp: Added.
399         (WebCore):
400         (WebCore::EXTDrawBuffers::EXTDrawBuffers):
401         (WebCore::EXTDrawBuffers::~EXTDrawBuffers):
402         (WebCore::EXTDrawBuffers::getName):
403         (WebCore::EXTDrawBuffers::create):
404         (WebCore::EXTDrawBuffers::supported):
405         (WebCore::EXTDrawBuffers::drawBuffersEXT):
406         * html/canvas/EXTDrawBuffers.h: Added.
407         (WebCore):
408         (EXTDrawBuffers):
409         * html/canvas/EXTDrawBuffers.idl: Added.
410         * html/canvas/WebGLExtension.h:
411         * html/canvas/WebGLFramebuffer.cpp:
412         (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
413         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
414         (WebCore::WebGLFramebuffer::drawBuffers):
415         (WebCore):
416         (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
417         * html/canvas/WebGLFramebuffer.h:
418         (WebGLFramebuffer):
419         * html/canvas/WebGLRenderingContext.cpp:
420         (WebCore):
421         (WebCore::WebGLRenderingContext::initializeNewContext):
422         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
423         (WebCore::WebGLRenderingContext::getExtension):
424         (WebCore::WebGLRenderingContext::getParameter):
425         (WebCore::WebGLRenderingContext::getSupportedExtensions):
426         (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
427         (WebCore::WebGLRenderingContext::getMaxDrawBuffers):
428         (WebCore::WebGLRenderingContext::getMaxColorAttachments):
429         * html/canvas/WebGLRenderingContext.h:
430         (WebCore):
431         (WebGLRenderingContext):
432         * platform/chromium/support/Extensions3DChromium.cpp:
433         (WebCore::Extensions3DChromium::drawBuffersEXT):
434         (WebCore):
435         * platform/graphics/Extensions3D.h:
436         (Extensions3D):
437         * platform/graphics/GraphicsContext3D.cpp:
438         (WebCore::GraphicsContext3D::getClearBitsByAttachmentType):
439         * platform/graphics/chromium/Extensions3DChromium.h:
440         (Extensions3DChromium):
441         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
442         (WebCore::Extensions3DOpenGL::supportsExtension):
443         (WebCore::Extensions3DOpenGL::drawBuffersEXT):
444         (WebCore):
445         * platform/graphics/opengl/Extensions3DOpenGL.h:
446         (Extensions3DOpenGL):
447         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
448         (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
449         * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
450         (Extensions3DOpenGLCommon):
451         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
452         (WebCore::Extensions3DOpenGLES::drawBuffersEXT):
453         (WebCore):
454         (WebCore::Extensions3DOpenGLES::supportsExtension):
455         * platform/graphics/opengl/Extensions3DOpenGLES.h:
456         (Extensions3DOpenGLES):
457
458 2013-02-28  Alexey Proskuryakov  <ap@apple.com>
459
460         Create BlobRegistry through a strategy
461         https://bugs.webkit.org/show_bug.cgi?id=111100
462
463         Chromium build fix.
464
465         * platform/network/BlobRegistry.cpp: Use destructor for chromium too.
466
467 2013-02-28  Alexey Proskuryakov  <ap@apple.com>
468
469         Create BlobRegistry through a strategy
470         https://bugs.webkit.org/show_bug.cgi?id=111100
471
472         Reviewed by Sam Weinig.
473
474         * CMakeLists.txt:
475         * GNUmakefile.list.am:
476         * Target.pri:
477         * WebCore.gypi:
478         * WebCore.vcproj/WebCore.vcproj:
479         * WebCore.vcxproj/WebCore.vcxproj:
480         * WebCore.vcxproj/WebCore.vcxproj.filters:
481         * WebCore.xcodeproj/project.pbxproj:
482         Added BlobRegistry.cpp.
483
484         * WebCore.exp.in:
485         * loader/LoaderStrategy.cpp:
486         (WebCore::LoaderStrategy::createBlobRegistry):
487         * loader/LoaderStrategy.h:
488         Addxed a function to create BlobRegistry, with default implementation being
489         in-process WebKit1 one.
490
491         * platform/network/BlobData.h: Added ENABLE(BLOB).
492
493         * platform/network/BlobRegistry.cpp: Added. Moved singleton to a separate file.
494         * platform/network/BlobRegistry.h: Made destructor non-inline. Cleaned up includes.
495
496         * platform/network/BlobRegistryImpl.cpp:
497         * platform/network/BlobRegistryImpl.h:
498         Cleaned up includes, made functions that are only called through base class private.
499         Added ENABLE(BLOB).
500
501         * platform/network/BlobStorageData.h: Added ENABLE(BLOB).
502
503         * platform/network/FormData.cpp:
504         (WebCore::appendBlobResolved): Check blob registry type before upcasting. It's a
505         public function, and we should not depend on high level understanding of process
506         model to prove that the cast is safe.
507
508         * platform/network/ResourceHandle.cpp:
509         * platform/network/cf/FormDataStreamCFNet.cpp:
510         * platform/network/mac/ResourceHandleMac.mm:
511         Cleaned up includes.
512
513 2013-02-28  Kent Tamura  <tkent@chromium.org>
514
515         REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
516         https://bugs.webkit.org/show_bug.cgi?id=110974
517
518         Reviewed by Kentaro Hara.
519
520         Input elements with the multiple fields UI require flexible box
521         layout.
522         - If display:inline or display:inline-block is specified, we
523           replace it with display:inline-flex.
524         - If display:block is specified, we replace it with
525           display:flex.
526         - If other display value is specified, we use it as is, but it
527           won't wrap inside an input element because we have
528           display:inline-block for ::-webkit-calendar-pixker-indicaotor.
529
530         r144184 was incomplete. It avoided the wrapping issue, but it
531         didn't make spin buttons and calendar arrows right-aligned.
532
533         Tests: Update fast/forms/date/date-apparance-basic.html
534
535         * css/html.css:
536         (input::-webkit-calendar-picker-indicator):
537         Add display:inline-block in orde to avoid line-wrapping.
538         * html/HTMLInputElement.cpp:
539         (WebCore::HTMLInputElement::customStyleForRenderer):
540         Move the code to BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer.
541         * html/InputType.cpp:
542         (WebCore::InputType::customStyleForRenderer): Added.
543         * html/InputType.h:
544         (InputType): Add customStyleForRenderer, and remove
545         shouldApplyLocaleDirection.
546         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
547         (WebCore::BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer):
548         Moved the code from HTMLInputElement::customStyleForRenderer, and
549         add display property updatting code.
550         * html/BaseMultipleFieldsDateAndTimeInputType.h:
551         (BaseMultipleFieldsDateAndTimeInputType):
552         Add customStyleForRenderer, and remove shouldApplyLocaleDirection.
553
554 2013-02-28  Anders Carlsson  <andersca@apple.com>
555
556         Implement more StorageAreaProxy member functions
557         https://bugs.webkit.org/show_bug.cgi?id=111103
558
559         Reviewed by Sam Weinig.
560
561         Export two more StorageMap symbols required by WebKit2.
562
563         * WebCore.exp.in:
564
565 2013-02-28  Xianzhu Wang  <wangxianzhu@chromium.org>
566
567         Focus ring for a child layer is incorrectly offset by ancestor composited layer's position
568         https://bugs.webkit.org/show_bug.cgi?id=110895
569
570         Reviewed by Simon Fraser.
571
572         Test: compositing/sub-layer-focus-ring.html
573
574         The problem occurs in RenderBlock::addFocusRingRects() where the absolute position of a sub-layer is used to calculate the focus ring rect of the layer.
575         Should use the relative position to the current paintContainer instead.
576
577         To fix the issue:
578         - RenderLayer passes LayerPaintingInfo.rootLayer to PaintInfo.paintContainer
579         - Let RenderObject::paintFocusRing() and RenderObject::paintOutline() take PaintInfo instead of GraphicsContext* so that the paintContainer can be passed
580         - RenderBlock::addFocusRingRects() uses localToContainerPoint(FloatPoint(), paintContainer) instead of localToAbsolute() to calculate the focus ring rect of a sublayer.
581
582         * rendering/PaintInfo.h:
583         (WebCore):
584         (WebCore::PaintInfo::PaintInfo): Add a field paintContainer (the RenderLayerModelObject which originates the current painting)
585         (PaintInfo):
586         * rendering/RenderBlock.cpp:
587         (WebCore::RenderBlock::paintObject):
588         (WebCore::RenderBlock::paintContinuationOutlines):
589         (WebCore::RenderBlock::addFocusRingRects): Use the added paintContainer parameter to calculate the relative offset of the child layer.
590         * rendering/RenderLayer.cpp:
591         (WebCore::RenderLayer::paintBackgroundForFragments): Pass LayerPaintingInfo.rootLayer to PaintInfo.paintContainer.
592         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Ditto.
593         (WebCore::RenderLayer::paintOutlineForFragments): Ditto.
594         (WebCore::RenderLayer::paintMaskForFragments): Ditto.
595         * rendering/RenderLayer.cpp:
596         * rendering/RenderObject.cpp:
597         (WebCore::RenderObject::paintFocusRing): Now takes PaintInfo instead of GraphicsContext*. Pass paintInfo.paintContainer to addFocusRingRects().
598         (WebCore::RenderObject::paintOutline): Now takes PaintInfo instead of GraphicsContext*.
599         (WebCore::RenderObject::absoluteFocusRingQuads):
600         * rendering/RenderObject.h:
601         (WebCore::RenderObject::addFocusRingRects): Add paintContainer parameter.
602
603 2013-02-28  David Hyatt  <hyatt@apple.com>
604
605         Remove the quirk margin bits from RenderObject and put them back in RenderBlock.
606         https://bugs.webkit.org/show_bug.cgi?id=111089
607
608         Reviewed by Dan Bernstein.
609
610         This patch removes the marginBeforeQuirk and marginAfterQuirk bits from RenderObject
611         and puts them into RenderBlock instead. I also did some renaming and clean-up after
612         moving them, e.g., to hasMarginBeforeQuirk and hasMarginAfterQuirk.
613         
614         Even though it's pretty irrelevant, I also made the code writing-mode-correct so that
615         the correct child margin quirk is propagated across differing writing mode
616         boundaries.
617
618         * rendering/RenderBlock.cpp:
619         (WebCore::RenderBlock::MarginInfo::MarginInfo):
620         (WebCore::RenderBlock::RenderBlock):
621         (WebCore::RenderBlock::layoutBlock):
622         (WebCore::RenderBlock::collapseMargins):
623         (WebCore::RenderBlock::marginBeforeEstimateForChild):
624         (WebCore::RenderBlock::setCollapsedBottomMargin):
625         (WebCore::RenderBlock::handleAfterSideOfBlock):
626         (WebCore::RenderBlock::hasMarginBeforeQuirk):
627         (WebCore):
628         (WebCore::RenderBlock::hasMarginAfterQuirk):
629         * rendering/RenderBlock.h:
630         (WebCore::RenderBlock::setHasMarginBeforeQuirk):
631         (WebCore::RenderBlock::setHasMarginAfterQuirk):
632         (RenderBlock):
633         (WebCore::RenderBlock::hasMarginBeforeQuirk):
634         (WebCore::RenderBlock::hasMarginAfterQuirk):
635         (MarginInfo):
636         (WebCore::RenderBlock::MarginInfo::setHasMarginBeforeQuirk):
637         (WebCore::RenderBlock::MarginInfo::setHasMarginAfterQuirk):
638         (WebCore::RenderBlock::MarginInfo::hasMarginBeforeQuirk):
639         (WebCore::RenderBlock::MarginInfo::hasMarginAfterQuirk):
640         * rendering/RenderObject.h:
641         (RenderObject):
642         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
643         (RenderObjectBitfields):
644         * rendering/style/RenderStyle.h:
645
646 2013-02-28  Sheriff Bot  <webkit.review.bot@gmail.com>
647
648         Unreviewed, rolling out r144126 and r144176.
649         http://trac.webkit.org/changeset/144126
650         http://trac.webkit.org/changeset/144176
651         https://bugs.webkit.org/show_bug.cgi?id=111096
652
653         Caused fast/notifications/notifications-request-
654         permission.html to crash (Requested by abarth on #webkit).
655
656         * GNUmakefile.list.am:
657         * Modules/notifications/Notification.h:
658         (Notification):
659         * Modules/notifications/Notification.idl:
660         * Target.pri:
661         * UseJSC.cmake:
662         * UseV8.cmake:
663         * WebCore.gypi:
664         * WebCore.vcproj/WebCore.vcproj:
665         * WebCore.vcxproj/WebCore.vcxproj:
666         * WebCore.vcxproj/WebCore.vcxproj.filters:
667         * WebCore.xcodeproj/project.pbxproj:
668         * bindings/js/JSNotificationCustom.cpp: Added.
669         (WebCore):
670         (WebCore::JSNotification::requestPermission):
671         * bindings/scripts/CodeGeneratorJS.pm:
672         (GenerateParametersCheck):
673         * bindings/scripts/test/JS/JSTestObj.cpp:
674         * bindings/v8/custom/V8NotificationCustom.cpp: Added.
675         (WebCore):
676         (WebCore::V8Notification::requestPermissionMethodCustom):
677
678 2013-02-28  Nate Chapin  <japhet@chromium.org>
679
680         Crash in CachedRawResource::responseReceived().
681         https://bugs.webkit.org/show_bug.cgi?id=110482
682
683         Reviewed by Adam Barth.
684
685         Test: http/tests/security/XFrameOptions/x-frame-options-deny-multiple-clients.html
686
687         * loader/cache/CachedRawResource.cpp:
688         (WebCore::CachedRawResource::responseReceived):
689
690 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
691
692         [Mac] use HAVE() macro instead of version check
693         https://bugs.webkit.org/show_bug.cgi?id=111087
694
695         Reviewed by Dean Jackson.
696
697         No new tests, covered by existing tests.
698
699         * page/CaptionUserPreferencesMac.h: Use HAVE(MEDIA_ACCESSIBILITY_FRAMEWORK).
700         * page/CaptionUserPreferencesMac.mm: Ditto.
701         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Ditto.
702         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
703
704         * page/PageGroup.cpp:
705         (WebCore::PageGroup::captionPreferences): Ditto.
706
707 2013-02-28  Chris Fleizach  <cfleizach@apple.com>
708
709         WebSpeech: support the boundary event
710         https://bugs.webkit.org/show_bug.cgi?id=107350
711
712         Reviewed by Beth Dakin.
713
714         Generate boundary events for speech synthesis and have them fire the appropriate events.
715         This implements for the Mac platform, as well as simulating these events in the mock
716         synthesizer for testing purposes.
717
718         Test: platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html
719
720         * Modules/speech/SpeechSynthesis.cpp:
721         (WebCore):
722         (WebCore::SpeechSynthesis::boundaryEventOccurred):
723         * Modules/speech/SpeechSynthesis.h:
724         (SpeechSynthesis):
725         * platform/PlatformSpeechSynthesizer.h:
726         (WebCore):
727         (PlatformSpeechSynthesizerClient):
728         * platform/mac/PlatformSpeechSynthesizerMac.mm:
729         (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
730         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
731         (WebCore::PlatformSpeechSynthesizerMock::speak):
732
733 2013-02-28  David Grogan  <dgrogan@chromium.org>
734
735         IndexedDB: Histogram all exits from IDBBackingStore::open
736         https://bugs.webkit.org/show_bug.cgi?id=110677
737
738         Reviewed by Tony Chang.
739
740         No tests because this only changes logging code.
741
742         * Modules/indexeddb/IDBBackingStore.cpp:
743         (WebCore::IDBBackingStore::open):
744
745 2013-02-28  Aaron Colwell  <acolwell@chromium.org>
746
747         Factor SourceBuffer methods out of MediaSourcePrivate & WebMediaSource
748         into SourceBufferPrivate & WebSourceBuffer respectively.
749         https://bugs.webkit.org/show_bug.cgi?id=110798
750
751         Reviewed by Adam Barth, Jer Noble.
752
753         No new tests. No user visible behavior has changed.
754
755         * Modules/mediasource/MediaSource.cpp:
756         (WebCore::MediaSource::addSourceBuffer):
757         (WebCore::MediaSource::removeSourceBuffer):
758         * Modules/mediasource/MediaSource.h:
759         (MediaSource):
760         * Modules/mediasource/SourceBuffer.cpp:
761         (WebCore::SourceBuffer::create):
762         (WebCore):
763         (WebCore::SourceBuffer::SourceBuffer):
764         (WebCore::SourceBuffer::buffered):
765         (WebCore::SourceBuffer::setTimestampOffset):
766         (WebCore::SourceBuffer::append):
767         (WebCore::SourceBuffer::abort):
768         (WebCore::SourceBuffer::removedFromMediaSource):
769         (WebCore::SourceBuffer::isRemoved):
770         (WebCore::SourceBuffer::isOpen):
771         (WebCore::SourceBuffer::isEnded):
772         * Modules/mediasource/SourceBuffer.h:
773         (WebCore):
774         (SourceBuffer):
775         * Modules/mediasource/SourceBufferList.cpp:
776         (WebCore::SourceBufferList::SourceBufferList):
777         (WebCore::SourceBufferList::remove):
778         (WebCore::SourceBufferList::clear):
779         * Modules/mediasource/SourceBufferList.h:
780         (SourceBufferList):
781         * html/HTMLMediaElement.cpp:
782         * platform/graphics/MediaSourcePrivate.h:
783         (WebCore):
784         (MediaSourcePrivate):
785         * platform/graphics/SourceBufferPrivate.h:
786         (WebCore):
787         (SourceBufferPrivate): Contains methods extracted from MediaPlayerPrivate.
788         (WebCore::SourceBufferPrivate::SourceBufferPrivate):
789         (WebCore::SourceBufferPrivate::~SourceBufferPrivate):
790
791 2013-02-28  Joe Mason  <jmason@rim.com>
792
793         [BlackBerry] Handle Set-Cookie immediately even when loading is deferred
794         https://bugs.webkit.org/show_bug.cgi?id=111083
795
796         Reviewed by Yong Li.
797
798         Internal PR: 298805
799         Internally Reviewed By: Leo Yang
800
801         Handle Set-Cookie headers immediately, even if loading is being deferred, since any request
802         created while loading is deferred should include all cookies received. (This especially
803         affects Set-Cookie headers sent with a 401 response - often this causes an auth dialog to be
804         opened, which defers loading, but the followup request using the credentials from the dialog
805         needs to include the cookie.)
806
807         This is safe because handleSetCookieHeader only updates the cookiejar, it doesn't call back
808         into the loader.
809
810         * platform/network/blackberry/NetworkJob.cpp:
811         (WebCore::NetworkJob::notifyHeadersReceived):
812         (WebCore::NetworkJob::handleNotifyHeaderReceived):
813
814 2013-02-28  David Grogan  <dgrogan@chromium.org>
815
816         IndexedDB: IO error when checking schema should destroy LevelDB directory
817         https://bugs.webkit.org/show_bug.cgi?id=110675
818
819         Reviewed by Adam Barth.
820
821         Also some refactoring to remove IDBBackingStore's dependence on
822         static LevelDBDatabase methods. This facilitated the unit test.
823
824         New unit test - IDBIOErrorTest.CleanUpTest
825
826         * Modules/indexeddb/IDBBackingStore.cpp:
827         (DefaultLevelDBFactory):
828         Wraps the previous behavior.
829         (WebCore::IDBBackingStore::open):
830         The default parameter provides the previous behavior, which is what
831         non-tests want.
832         * Modules/indexeddb/IDBBackingStore.h:
833         * platform/leveldb/LevelDBDatabase.h:
834
835 2013-02-28  Kentaro Hara  <haraken@chromium.org>
836
837         Unreviewed, rolling out r144157.
838         http://trac.webkit.org/changeset/144157
839         https://bugs.webkit.org/show_bug.cgi?id=110794
840
841         It broke chromium windows build
842
843         * bindings/scripts/CodeGeneratorV8.pm:
844         (GenerateNamedConstructor):
845         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
846         (WebCore::V8TestNamedConstructorConstructorCallback):
847         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
848         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
849         (WebCore::v8HTMLImageElementConstructorMethodCustom):
850         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
851
852 2013-02-26  David Hyatt  <hyatt@apple.com>
853
854         [New Multicolumn] Rewrite the painting/stacking model to be spec compliant.
855         https://bugs.webkit.org/show_bug.cgi?id=110624.
856
857         Reviewed by Simon Fraser.
858
859         This patch implements a new painting and hit testing model for columns that is
860         spec-compliant with Section 3.5 of the multicolumn specification, which states:
861         
862         "All column boxes in a multi-column element are in the same stacking context and
863         the drawing order of their contents is as specified in CSS 2.1. Column boxes do
864         not establish new stacking contexts."
865         
866         What this statement means is that you cannot paint a layer and all its stacking
867         context descendants in a strip in each column, since some of those descendants
868         might actually "break out" of the pagination (like fixed positioned descendants)
869         and overlap multiple columns. In addition clips may apply across pagination
870         boundaries, and any overlap caused by opacity has to do the right thing and
871         treat the paginated and unpaginated components together as a single unit.
872         
873         The solution to this problem is to introduce the concept of a LayerFragment. Now
874         all layers when painting or hit testing compute a fragment list, and that list
875         is then walked in order to do painting and hit testing of layers. In the simple
876         unpaginated case, a layer has one LayerFragment, but in the case of columns the
877         layer may be broken up into multiple fragments representing boxes in separate
878         columns.
879         
880         Much of this patch consists of refactoring all of the painting and hit testing
881         code to operate on these fragments.
882
883         Test: fast/multicol/mixed-positioning-stacking-order.html.
884
885         * rendering/RenderFlowThread.cpp:
886         (WebCore::RenderFlowThread::collectLayerFragments):
887         This method is called by the RenderLayer code to fetch the layer fragments from
888         the regions of a flow thread. The flow thread just turns around and calls into
889         each of its regions one by one to get the fragments from each region.
890
891         (WebCore::RenderFlowThread::fragmentsBoundingBox):
892         A new function that collects LayerFragments and then determines the bounding
893         box that encloses all of the fragments.
894
895         * rendering/RenderFlowThread.h:
896         Declarations of the new methods for obtaining layer fragments and bounding
897         box information for fragments.
898
899         * rendering/RenderLayer.cpp:
900         (WebCore::RenderLayer::RenderLayer):
901         (WebCore::RenderLayer::updateLayerPositions):
902         (WebCore::RenderLayer::updatePagination):
903         RenderLayers now track an enclosing pagination layer. If this is set, then the layer knows it
904         needs to check with the enclosing pagination layer's flow thread renderer to
905         obtain layer fragments.
906         
907         (WebCore::transparencyClipBox):
908         Modified to obtain a fragments bounding box so that opacity can operate correctly on
909         column boxes.
910
911         (WebCore::accumulateOffsetTowardsAncestor):
912         This method has been patched to allow for fixed positioned objects to escape
913         in-flow RenderFlowThreads. Our in-flow RenderFlowThreads behave differently from
914         CSS Regions flow threads in that they aren't necesssarily acting as the containing
915         block for all of their descendants. Content is allowed to "escape" from the flow
916         thread.
917
918         (WebCore::RenderLayer::collectFragments):
919         A new method that collects fragments from the flow thread and sets up the appropriate
920         clips and translations on each fragment.
921
922         (WebCore::RenderLayer::paintLayer):
923         (WebCore::RenderLayer::paintLayerContents):
924         (WebCore::RenderLayer::paintList):
925         (WebCore::RenderLayer::updatePaintingInfoForFragments):
926         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
927         (WebCore::RenderLayer::paintBackgroundForFragments):
928         (WebCore::RenderLayer::paintForegroundForFragments):
929         (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
930         (WebCore::RenderLayer::paintOutlineForFragments):
931         (WebCore::RenderLayer::paintMaskForFragments):
932         (WebCore::RenderLayer::paintOverflowControlsForFragments):
933         Refactoring of painting to break all individual painting steps out into methods that walk over
934         fragment boxes. This actually had the side effect of making the main painting function,
935         paintLayerContents, much cleaner and easier to read. :)
936         
937         (WebCore::RenderLayer::hitTest):
938         (WebCore::RenderLayer::createLocalTransformState):
939         (WebCore::RenderLayer::hitTestLayer):
940         (WebCore::RenderLayer::hitTestContentsForFragments):
941         (WebCore::RenderLayer::hitTestResizerInFragments):
942         (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
943         (WebCore::RenderLayer::hitTestContents):
944         (WebCore::RenderLayer::hitTestList):
945         Refactoring of hit testing to break all individual hit testing steps out into methods that walk over
946         fragment boxes.
947         
948         (WebCore::RenderLayer::backgroundClipRect):
949         Modified to avoid using the clip rects cache when crossing into different pagination contexts,
950         e.g., from unpaginated to paginated.
951         
952         (WebCore::RenderLayer::intersectsDamageRect):
953         (WebCore::RenderLayer::boundingBox):
954         Modified boundingBox to work with fragments. A new flag is used to indicate whether or not
955         the bounds of fragments or the original unsplit box are being computed.
956         
957         (WebCore::RenderLayer::collectLayers):
958         Fix layer collection so that in-flow RenderFlowThreads can still be collected, since in-flow
959         RenderFlowThreads do not establish stacking contexts.
960
961         * rendering/RenderLayer.h:
962         (WebCore::ClipRect::moveBy):
963         Added a moveBy method that just wrap the corresponding LayoutRect method.
964
965         (LayerFragment):
966         (WebCore::LayerFragment::LayerFragment):
967         (WebCore::LayerFragment::setRects):
968         (WebCore::LayerFragment::moveBy):
969         (WebCore::LayerFragment::intersect):
970         (WebCore::RenderLayer::enclosingPaginationLayer):
971         The new LayerFragment struct. Holds clips and translation information for each fragment box.
972
973         (WebCore::RenderLayer::isOutOfFlowRenderFlowThread):
974         Helper method for determining if the renderer is an out-of-flow RenderFlowThread.
975
976         * rendering/RenderMultiColumnBlock.cpp:
977         (WebCore::createMultiColumnFlowThreadStyle):
978         Change the flow thread style to no longer establish a stacking context.
979         
980         (WebCore::RenderMultiColumnBlock::layoutBlock):
981         Patched to move the flow thread to a position that allows it to be untranslated in the
982         initial column.
983
984         (WebCore):
985         * rendering/RenderMultiColumnBlock.h:
986         (RenderMultiColumnBlock):
987         layoutBlock is subclassed to tweak the flow thread's position.
988
989         * rendering/RenderMultiColumnFlowThread.h:
990         (RenderMultiColumnFlowThread):
991         The flow thread for multi-column blocks implements collectLayerFragments to hand back LayerFragment
992         information based off its RenderMultiColumnSets.
993
994         * rendering/RenderMultiColumnSet.cpp:
995         (WebCore::RenderMultiColumnSet::paintObject):
996         Changed to no longer paint column contents, since the layer code is just doing that now.
997
998         (WebCore::RenderMultiColumnSet::collectLayerFragments):
999         The method that figures out what columns are intersected by a layer and hands back
1000         initial fragment information.
1001
1002         * rendering/RenderMultiColumnSet.h:
1003         (RenderMultiColumnSet):
1004         Declaration of collectLayerFragments.
1005         
1006         * rendering/RenderObject.cpp:
1007         (WebCore::RenderObject::container):
1008         Patch container() to allow fixed positioned objects to escape in-flow RenderFlowThreads.
1009         
1010         * rendering/RenderObject.h:
1011         (WebCore::RenderObject::isInFlowRenderFlowThread):
1012         (WebCore::RenderObject::isOutOfFlowRenderFlowThread):
1013         Methods for distinguishing between in-flow and out-of-flow RenderFlowThreads.
1014
1015         (WebCore::RenderObject::canContainFixedPositionObjects):
1016         Patch canContainFixedPositionObjects() to allow fixed positioned objects to escape
1017         in-flow RenderFlowThreads.
1018         
1019         * rendering/RenderRegion.h:
1020         (WebCore::RenderRegion::collectLayerFragments):
1021         (RenderRegion):
1022         The virtual functions on Region for fragment collection.
1023
1024 2013-02-28  Vivek Galatage  <vivek.vg@samsung.com>
1025
1026         Web Inspector: Adding existing key in DOMStorageItemsView leaves it inconsistent state
1027         https://bugs.webkit.org/show_bug.cgi?id=111061
1028
1029         Reviewed by Alexander Pavlov.
1030
1031         The view must be checked for all the rows with the matching keys. Only the first one would be updated
1032         with the new value while the others must be removed from the grid. Also in case there are various key/value
1033         pairs, the changed node should be selected and revealed in the grid.
1034
1035         No new tests as UI related minor change.
1036
1037         * inspector/front-end/DOMStorageItemsView.js:
1038         (WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
1039
1040 2013-02-28  Alberto Garcia  <agarcia@igalia.com>
1041
1042         [BlackBerry] User credentials is not correctly handled
1043         https://bugs.webkit.org/show_bug.cgi?id=110994
1044
1045         Reviewed by Yong Li.
1046
1047         WTF::String::utf8 no longer receives a bool, see r134173.
1048
1049         * platform/network/blackberry/CredentialBackingStore.cpp:
1050         (WebCore::CredentialBackingStore::encryptedString):
1051
1052 2013-02-28  Lianghui Chen  <liachen@rim.com>
1053
1054         [BlackBerry] User credentials are not correctly handled for non-browser usage
1055         https://bugs.webkit.org/show_bug.cgi?id=111032
1056
1057         Internal PR: 295181
1058         Internal reviewed by Joe Mason.
1059
1060         Reviewed by Yong Li.
1061
1062         Use encrypted password as binary data when calling SQLiteStatement::bindBlob(), in
1063         stead of using it as a normal WTF::String.
1064
1065         No new tests as this causes no expected behaviour change.
1066
1067         * platform/network/blackberry/CredentialBackingStore.cpp:
1068         (WebCore::CredentialBackingStore::addLogin):
1069         (WebCore::CredentialBackingStore::updateLogin):
1070
1071 2013-02-28  Andrey Lushnikov  <lushnikov@chromium.org>
1072
1073         Web Inspector: "loadScript" function to load scripts via xhr
1074         https://bugs.webkit.org/show_bug.cgi?id=110879
1075
1076         Reviewed by Pavel Feldman.
1077
1078         Create an alias for "importScript" function and use it in those cases
1079         which assume lazy script loading.
1080
1081         No new tests.
1082
1083         * inspector/front-end/Panel.js:
1084         (WebInspector.PanelDescriptor.prototype.panel):
1085         * inspector/front-end/SourceFrame.js:
1086         (WebInspector.SourceFrame):
1087         * inspector/front-end/utilities.js:
1088
1089 2013-02-28  Alexei Filippov  <alph@chromium.org>
1090
1091         Web Inspector: Move profiler tools into separate panels
1092         https://bugs.webkit.org/show_bug.cgi?id=109832
1093
1094         Reviewed by Yury Semikhatsky.
1095
1096         This is a first part of the fix that puts each profiler tool into a separate panel.
1097         The fix introduces separate panels for each profiler type.
1098         There are now six panel (including experimental):
1099           1. JS CPU profiler
1100           2. CSS Selector profiler
1101           3. JS Heap profiler
1102           4. Canvas profier
1103           5. Native memory snapshots
1104           6. Native memory distribution
1105         The new functionality is put behind experimental flag.
1106
1107         * inspector/front-end/ProfileLauncherView.js:
1108         (WebInspector.ProfileLauncherView):
1109         (WebInspector.ProfileLauncherView.prototype.addProfileType):
1110         * inspector/front-end/ProfilesPanel.js:
1111         (WebInspector.ProfileHeader.prototype.view):
1112         (WebInspector.ProfileHeader.prototype.createView):
1113         (WebInspector.ProfilesPanel):
1114         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
1115         (WebInspector.ProfilesPanel.prototype._addProfileHeader):
1116         (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
1117         (WebInspector.ProfilesPanel.prototype._showProfile):
1118         (WebInspector.ProfilesPanel.prototype._searchableViews):
1119         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
1120         (WebInspector.ProfileGroupSidebarTreeElement):
1121         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
1122         (WebInspector.CPUProfilerPanel):
1123         (WebInspector.CSSSelectorProfilerPanel):
1124         (WebInspector.HeapProfilerPanel):
1125         (WebInspector.CanvasProfilerPanel):
1126         (WebInspector.MemoryChartProfilerPanel):
1127         (WebInspector.NativeMemoryProfilerPanel):
1128         * inspector/front-end/Settings.js:
1129         (WebInspector.ExperimentsSettings):
1130         * inspector/front-end/inspector.css:
1131         (.toolbar-item.cpu-profiler .toolbar-icon):
1132         (.toolbar-item.css-profiler .toolbar-icon):
1133         (.toolbar-item.heap-profiler .toolbar-icon):
1134         (.toolbar-item.canvas-profiler .toolbar-icon):
1135         (.toolbar-item.memory-chart-profiler .toolbar-icon):
1136         (.toolbar-item.memory-snapshot-profiler .toolbar-icon):
1137         * inspector/front-end/inspector.js:
1138         (WebInspector._panelDescriptors):
1139
1140 2013-02-28  Keishi Hattori  <keishi@webkit.org>
1141
1142         Add calendar header for new calendar picker
1143         https://bugs.webkit.org/show_bug.cgi?id=110967
1144
1145         Reviewed by Kent Tamura.
1146
1147         The calendar header showing the current month and containing navigation
1148         buttons, which will be part of the new calendar picker (Bug 109439).
1149
1150         No new tests. Code is not yet used.
1151
1152         * Resources/pagepopups/calendarPicker.js:
1153         (MonthPopupButton): Button that opens the month popup.
1154         (MonthPopupButton.prototype._shouldUseShortMonth): Returns true if we should use the short month format in order to fit in the available width.
1155         (MonthPopupButton.prototype.setCurrentMonth): Sets the month to the button label.
1156         (MonthPopupButton.prototype.onClick): Dispatches buttonClick event which will tell the calendar picker to open the month popup.
1157         (CalendarNavigationButton): A square button that fires repeatedly while the mouse is pressed down.
1158         (CalendarNavigationButton.prototype.setDisabled):
1159         (CalendarNavigationButton.prototype.onClick):
1160         (CalendarNavigationButton.prototype.onMouseDown): Sets the timer to fire while the mouse is pressed down.
1161         (CalendarNavigationButton.prototype.onWindowMouseUp):
1162         (CalendarNavigationButton.prototype.onRepeatingClick):
1163         (CalendarHeaderView): View containing month popup button and the navigation buttons.
1164         (CalendarHeaderView.prototype.onCurrentMonthChanged): Sets the MonthPopupButton label and checks if the navigation buttons should be disabled.
1165         (CalendarHeaderView.prototype.onNavigationButtonClick):
1166         (CalendarHeaderView.prototype.setDisabled): Used to disable all the buttons while the month popup is open.
1167
1168 2013-02-28  Pavel Feldman  <pfeldman@chromium.org>
1169
1170         Web Inspector: class console-formatted-string renamed to console-formatted- ?
1171         https://bugs.webkit.org/show_bug.cgi?id=110881
1172
1173         Reviewed by Vsevolod Vlasov.
1174
1175         * inspector/front-end/ConsoleMessage.js:
1176         (WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
1177
1178 2013-02-28  Mike West  <mkwst@chromium.org>
1179
1180         XSSAuditor should strip formaction attributes from input and button elements.
1181         https://bugs.webkit.org/show_bug.cgi?id=110975
1182
1183         Reviewed by Daniel Bates.
1184
1185         The 'formaction' attribute of 'input' and 'button' elements is just as
1186         dangerous as the 'action' attribute of 'form' elements. This patch
1187         teaches the XSSAuditor how to avoid them.
1188
1189         Tests: http/tests/security/xssAuditor/formaction-on-button.html
1190                http/tests/security/xssAuditor/formaction-on-input.html
1191
1192         * html/parser/XSSAuditor.cpp:
1193         (WebCore::XSSAuditor::filterStartToken):
1194         (WebCore::XSSAuditor::filterInputToken): Added.
1195         (WebCore::XSSAuditor::filterButtonToken): Added.
1196         * html/parser/XSSAuditor.h:
1197             Create filters for 'input' and 'button' elements, which currently
1198             only have the effect of filtering the 'formaction' attribute.
1199
1200 2013-02-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1201
1202         REGRESSION(r144169): It broke clipping
1203         https://bugs.webkit.org/show_bug.cgi?id=111065
1204
1205         Reviewed by Noam Rosenthal.
1206
1207         The clipstack was not marked dirty when new clips were added
1208         leading to clipping never being applied.
1209
1210         * platform/graphics/texmap/TextureMapperGL.cpp:
1211         (WebCore::TextureMapperGL::ClipStack::push):
1212
1213 2013-02-28  Tamas Czene  <tczene@inf.u-szeged.hu>
1214
1215         OpenCL implementation of FEImage SVG Filter.
1216         https://bugs.webkit.org/show_bug.cgi?id=110752
1217
1218         Reviewed by Zoltan Herczeg.
1219
1220         The result of the image is uploaded to an OpenCL buffer.
1221
1222         * Target.pri:
1223         * platform/graphics/gpu/opencl/OpenCLFEImage.cpp: Added.
1224         (WebCore):
1225         (WebCore::FEImage::platformApplyOpenCL):
1226         * svg/graphics/filters/SVGFEImage.h:
1227         (FEImage):
1228
1229 2013-02-28  Mike West  <mkwst@chromium.org>
1230
1231         Web Inspector: Make it obvious where command line functions come from
1232         https://bugs.webkit.org/show_bug.cgi?id=62367
1233
1234         Reviewed by Pavel Feldman.
1235
1236         This patch adds a custom .toString() method on the various command-line
1237         API methods that are bound in the inspector. Rather than dumping the
1238         function text, we now model the response after that of native methods:
1239         "function __() { [Command Line API] }".
1240
1241         Test: inspector/console/console-native-function-to-string.html
1242
1243         * inspector/InjectedScriptSource.js:
1244             Added a function to the CommandLineAPI constructor that creates a
1245             custom toString() method for each command-line API method.
1246
1247 2013-02-28  David Kilzer  <ddkilzer@apple.com>
1248
1249         ResourceRequestCFNet.cpp won't compile after r144216
1250         <http://webkit.org/b/111034>
1251
1252         Reviewed by Alexey Proskuryakov.
1253
1254         * WebCore.exp.in: Move Mac-only symbol into !PLATFORM(IOS)
1255         section.  Update iOS-only symbol to add argument.
1256         * platform/network/cf/ResourceRequest.h: Remove unused method
1257         declaration.
1258         * platform/network/cf/ResourceRequestCFNet.cpp:
1259         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Fix typos.
1260         Add static_cast<CFStringRef>().
1261         (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Fix another
1262         typo.
1263
1264 2013-02-28  Kent Tamura  <tkent@chromium.org>
1265
1266         Unreviewed, rolling out r144184.
1267         http://trac.webkit.org/changeset/144184
1268         https://bugs.webkit.org/show_bug.cgi?id=110974
1269
1270         The change didn't fix all of the problems.
1271
1272         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1273         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1274         (BaseMultipleFieldsDateAndTimeInputType):
1275
1276 2013-02-27  Eugene Klyuchnikov  <eustas@chromium.org>
1277
1278         Web Inspector: [Protocol] Genarate JS enum definitions.
1279         https://bugs.webkit.org/show_bug.cgi?id=110461
1280
1281         Reviewed by Pavel Feldman.
1282
1283         Generating corresponding type annotations
1284         would help to compiler to point errors.
1285
1286         * inspector/CodeGeneratorInspector.py: Generate "registerEnum" records.
1287         * inspector/InjectedScriptSource.js: Shadow compiler warning.
1288         * inspector/front-end/InspectorBackend.js:
1289         Added "registerEnum". Added "registerEnum" generation.
1290         * inspector/front-end/NetworkManager.js: Use enum instead of literal.
1291         * inspector/generate_protocol_externs.py: Generate enum typedefs.
1292
1293 2013-02-27  Kunihiko Sakamoto  <ksakamoto@chromium.org>
1294
1295         INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of hour field should respect min/max attributes
1296         https://bugs.webkit.org/show_bug.cgi?id=109555
1297
1298         Reviewed by Kent Tamura.
1299
1300         Make step-up/-down of the hour field respect the min/max attributes of the element.
1301         Note that it still accepts any keyboard inputs (the element
1302         becomes 'invalid' state when out-of-range values entered).
1303         Also, disable the hour field and/or the AMPM field when there is only single possible value.
1304
1305         Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html
1306               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-stepup-stepdown-from-renderer.html
1307               fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
1308               fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
1309
1310         * html/TimeInputType.cpp:
1311         (WebCore::TimeInputType::setupLayoutParameters): Populates layoutParameters.{minimum,maximum}.
1312         * html/shadow/DateTimeEditElement.cpp:
1313         (DateTimeEditBuilder): Add data fields for min/max of day and hour fields.
1314         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set newly added data members.
1315         (WebCore::DateTimeEditBuilder::visitField): Pass minimum/maximum value to the month field constructors.
1316         (WebCore::DateTimeEditBuilder::shouldAMPMFieldDisabled): Added.
1317         (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
1318         (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
1319         Disables the hour field when min, max, and value have the same hour, except when the minute
1320         field is disabled (by step attribute), because we need to leave at least one field editable.
1321         * html/shadow/DateTimeFieldElements.cpp:
1322         (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
1323         (WebCore::DateTimeHourFieldElementBase::initialize):
1324         (WebCore::DateTimeHourFieldElementBase::setValueAsDate):
1325         (WebCore::DateTimeHourFieldElementBase::setValueAsDateTimeFieldsState):
1326         (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
1327         (WebCore::DateTimeHour11FieldElement::create):
1328         (WebCore::DateTimeHour11FieldElement::populateDateTimeFieldsState):
1329         (WebCore::DateTimeHour11FieldElement::setValueAsInteger):
1330         (WebCore::DateTimeHour11FieldElement::clampValueForHardLimits):
1331         (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
1332         (WebCore::DateTimeHour12FieldElement::create):
1333         (WebCore::DateTimeHour12FieldElement::populateDateTimeFieldsState):
1334         (WebCore::DateTimeHour12FieldElement::setValueAsInteger):
1335         (WebCore::DateTimeHour12FieldElement::clampValueForHardLimits):
1336         (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
1337         (WebCore::DateTimeHour23FieldElement::create):
1338         (WebCore::DateTimeHour23FieldElement::populateDateTimeFieldsState):
1339         (WebCore::DateTimeHour23FieldElement::setValueAsInteger):
1340         (WebCore::DateTimeHour23FieldElement::clampValueForHardLimits):
1341         (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
1342         (WebCore::DateTimeHour24FieldElement::create):
1343         (WebCore::DateTimeHour24FieldElement::populateDateTimeFieldsState):
1344         (WebCore::DateTimeHour24FieldElement::setValueAsInteger):
1345         (WebCore::DateTimeHour24FieldElement::clampValueForHardLimits):
1346         * html/shadow/DateTimeFieldElements.h: Splitted DateTimeHourFieldElement into a base class and four derived classes that represents different hour formats.
1347         (DateTimeHourFieldElementBase): Added.
1348         (DateTimeHour11FieldElement): Added. Represents 0-11 hour format.
1349         (DateTimeHour12FieldElement): Added. Represents 1-12 hour format.
1350         (DateTimeHour23FieldElement): Added. Represents 0-23 hour format.
1351         (DateTimeHour24FieldElement): Added. Represents 1-24 hour format.
1352
1353 2013-02-27  Tien-Ren Chen  <trchen@chromium.org>
1354
1355         Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
1356         https://bugs.webkit.org/show_bug.cgi?id=105486
1357
1358         Reviewed by James Robinson.
1359
1360         In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
1361         elements are layout relative to the current visible viewport, which can
1362         be different from the layout viewport when using fixed-layout mode.
1363         We need to re-layout fixed-position elements in case of visible content
1364         size changes.
1365
1366         The test is currently chromium-specific due to difficulties to make this
1367         test works on Mac. The mac port seems to work very differently with
1368         visible content size when a page is scaled. And there is no reliable way
1369         to hide scrollbars in mac-wk1 that doesn't cause a side effect.
1370
1371         Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
1372
1373         * page/FrameView.h:
1374         (FrameView):
1375         * page/Page.cpp:
1376         (WebCore::Page::setPageScaleFactor):
1377
1378 2013-02-27  Hans Muller  <hmuller@adobe.com>
1379
1380         [CSS Exclusions] Enable shape-inside rectangle support for shape-padding
1381         https://bugs.webkit.org/show_bug.cgi?id=110500
1382
1383         Reviewed by Dirk Schulze.
1384
1385         Added support for CSS shape-padding for shapes defined with shape-inside.
1386
1387         Tests: fast/exclusions/shape-inside/shape-inside-circle-padding.html
1388                fast/exclusions/shape-inside/shape-inside-ellipse-padding.html
1389                fast/exclusions/shape-inside/shape-inside-rectangle-padding.html
1390                fast/exclusions/shape-inside/shape-inside-rounded-rectangle-padding.html
1391
1392         * rendering/ExclusionRectangle.cpp:
1393         (WebCore::FloatRoundedRect::paddingBounds): Inset the rounded rectangle to reflect the padding parameter.
1394         (WebCore::FloatRoundedRect::marginBounds): Expand the rounded rectangle to reflect the margin parameter.
1395         (WebCore::FloatRoundedRect::cornerInterceptForWidth): Moved this method from ExclusionRectangle to FloatRoundedRect.
1396         (WebCore::ExclusionRectangle::shapePaddingBounds): Lazily compute the bounds of the padding box.
1397         (WebCore::ExclusionRectangle::shapeMarginBounds): Lazily compute the bounds of the margin box.
1398         (WebCore::ExclusionRectangle::getExcludedIntervals): This computuation is now based on the (new) margin box.
1399         (WebCore::ExclusionRectangle::getIncludedIntervals): This computation is now base don the (new) padding box.
1400         (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): This computation is now base don the (new) padding box.
1401         * rendering/ExclusionRectangle.h:
1402         (FloatRoundedRect): A subclass of FloatRect that includes corner radii specified as CSS shapes do.
1403         (WebCore::FloatRoundedRect::FloatRoundedRect):
1404         (WebCore::FloatRoundedRect::rx):
1405         (WebCore::FloatRoundedRect::ry):
1406         (WebCore::ExclusionRectangle::ExclusionRectangle):
1407         * rendering/ExclusionShape.cpp:
1408         (WebCore::ExclusionShape::createExclusionShape): Initialize the new shapeMargin and shapePadding properties.
1409         * rendering/ExclusionShape.h:
1410         (ExclusionShape):
1411         (WebCore::ExclusionShape::shapeMargin): Added a public read-only property for shapeMargin.
1412         (WebCore::ExclusionShape::shapePadding): Added a public read-only property for shapePadding.
1413         * rendering/ExclusionShapeInfo.cpp:
1414         (WebCore::::computedShape): Pass the values of the CSS shape-margin and shapp-padding properties to createExclusionShape().
1415
1416 2013-02-25  Alpha Lam  <hclam@chromium.org>
1417
1418         More style cleanup in GIFImageReader
1419         https://bugs.webkit.org/show_bug.cgi?id=110776
1420
1421         Reviewed by Allan Sandfeld Jensen.
1422
1423         Renamed variable q to currentComponent which more accurately represent
1424         the purpose.
1425
1426         No test. Simple refactoring.
1427
1428         * platform/image-decoders/gif/GIFImageReader.cpp:
1429         (GIFImageReader::decodeInternal):
1430
1431 2013-02-27  Keishi Hattori  <keishi@webkit.org>
1432
1433         Add month popup for new calendar picker
1434         https://bugs.webkit.org/show_bug.cgi?id=110830
1435
1436         Reviewed by Kent Tamura.
1437
1438         Adding month popup view for use in the new calendar picker (Bug 109439).
1439         YearListCell will grow in height when selected to reveal the buttons for
1440         selecting the month.
1441
1442         No new tests. Code is not used yet.
1443
1444         * Resources/pagepopups/calendarPicker.js:
1445         (YearListCell): A row inside the month popup. Contains buttons for choosing a month.
1446         (YearListCell.prototype._recycleBin):
1447         (YearListCell.prototype.reset): Resets a thrown away cell for reuse at the given row.
1448         (YearListCell.prototype.height):
1449         (YearListCell.prototype.setHeight):
1450         (YearListView): List view showing YearListCells.
1451         (YearListView.prototype.onMouseOver): If the mouse is over a month button, highlights it.
1452         (YearListView.prototype.onMouseOut): De-highlights the month button.
1453         (YearListView.prototype.setWidth): Set scroll view width to leave space for the scroll bar.
1454         (YearListView.prototype.setHeight): Sets the scroll bar height as well.
1455         (YearListView.prototype._animateRow): Animates the row height to open/close the YearListCell.
1456         (YearListView.prototype.onCellHeightAnimatorDidStop): Keep this._runningAnimators and this._animatingRows up to date.
1457         (YearListView.prototype.onCellHeightAnimatorStep): Update the cell height and position.
1458         (YearListView.prototype.onClick): If this is a click on a month button, select the month.
1459         (YearListView.prototype.rowAtScrollOffset): Calculates the row currently at the given offset.
1460         (YearListView.prototype.scrollOffsetForRow): Calculates the current scroll offset of the given row.
1461         (YearListView.prototype.prepareNewCell): Prepares a new or recycled YearListCell.
1462         (YearListView.prototype.updateCells): Updates the position of the visible cells.
1463         (YearListView.prototype.deselect): Deselects a row.
1464         (YearListView.prototype.deselectWithoutAnimating): Deselects a row without the closing animation.
1465         (YearListView.prototype.select): Selects a row.
1466         (YearListView.prototype.selectWithoutAnimating): Deselects a row without the opening animation.
1467         (YearListView.prototype.buttonForMonth): Returns the month button for a given month. Returns null if the cell is not visible.
1468         (YearListView.prototype.dehighlightMonth): Dehighlights the month button.
1469         (YearListView.prototype.highlightMonth): Highlights the month button.
1470         (YearListView.prototype.show): Call when showing the year list view. Shows the given month as highlighted.
1471         (YearListView.prototype.hide): Dispatches a did hide event which will be picked up by the CalendarPicker and the MonthPopupView will close.
1472         (YearListView.prototype._moveHighlightTo): Used to move the month highlight in response to a key event.
1473         (YearListView.prototype.onKeyDown): Arrow keys and PageUp/PageDown keys work.
1474         (MonthPopupView): The popup view to be overlayed over the calendar picker.
1475         (MonthPopupView.prototype.show): Takes the initialMonth to show and the calendarTableRect so we can overlay the year list view right on top of it.
1476         (MonthPopupView.prototype.hide):
1477         (MonthPopupView.prototype.onClick): Hides itself if the use clicks outside the year list view.
1478
1479 2013-02-27  Adam Barth  <abarth@webkit.org>
1480
1481         Use FeatureObserver to see how often web sites use multipart main documents
1482         https://bugs.webkit.org/show_bug.cgi?id=111015
1483
1484         Reviewed by Nate Chapin.
1485
1486         Multipart main documents add sigificant complexity to the loader.  It
1487         would be interesting to know how often this complexity is used.
1488
1489         * loader/MainResourceLoader.cpp:
1490         (WebCore::MainResourceLoader::responseReceived):
1491         * page/FeatureObserver.h:
1492
1493 2013-02-27  James Simonsen  <simonjam@chromium.org>
1494
1495         [chromium] Lower priority of preloaded images
1496         https://bugs.webkit.org/show_bug.cgi?id=110527
1497
1498         Reviewed by Nate Chapin.
1499
1500         This improves Speed Index by ~5%, because it encourages us to load images that are needed for
1501         painting over speculative preloads. Ideally, all embedders would use this, but it relies on
1502         ResourceHandle::didChangePriority being implemented. Currently, only Chrome does that.
1503
1504         Test: http/tests/loading/promote-img-preload-priority.html
1505
1506         * loader/FrameLoaderClient.h:
1507         (FrameLoaderClient):
1508         (WebCore::FrameLoaderClient::dispatchDidChangeResourcePriority): Added callback to enable testing.
1509         * loader/cache/CachedResource.cpp:
1510         (WebCore::CachedResource::setLoadPriority): Signal callback.
1511         * loader/cache/CachedResourceLoader.cpp:
1512         (WebCore::CachedResourceLoader::preload): Actual behavior change.
1513
1514 2013-02-27  Csaba Osztrogonác  <ossy@webkit.org>
1515
1516         Unreviewed trivial buildfix after r144190.
1517
1518         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
1519         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
1520
1521 2013-02-27  Chris Fleizach  <cfleizach@apple.com>
1522
1523         WebSpeech: support speech cancel
1524         https://bugs.webkit.org/show_bug.cgi?id=107349
1525
1526         Reviewed by Beth Dakin.
1527
1528         Add the ability to cancel speech utterances and make it work with Mac
1529         and the mock speech synthesizer.
1530
1531         Test: platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html
1532
1533         * Modules/speech/SpeechSynthesis.cpp:
1534         (WebCore::SpeechSynthesis::pending):
1535         (WebCore::SpeechSynthesis::cancel):
1536         (WebCore::SpeechSynthesis::handleSpeakingCompleted):
1537         * platform/PlatformSpeechSynthesizer.h:
1538         (PlatformSpeechSynthesizer):
1539         * platform/mac/PlatformSpeechSynthesizerMac.mm:
1540         (-[WebSpeechSynthesisWrapper cancel]):
1541         (WebCore::PlatformSpeechSynthesizer::cancel):
1542         (WebCore):
1543         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
1544         (WebCore::PlatformSpeechSynthesizerMock::cancel):
1545         (WebCore):
1546         (WebCore::PlatformSpeechSynthesizerMock::speak):
1547         * platform/mock/PlatformSpeechSynthesizerMock.h:
1548         (PlatformSpeechSynthesizerMock):
1549
1550 2013-02-27  Min Qin  <qinmin@chromium.org>
1551
1552         Unlock partially decoded images after passing them to the ImageDecodingStore
1553         https://bugs.webkit.org/show_bug.cgi?id=110778
1554
1555         Reviewed by Stephen White.
1556
1557         For partially decoded images, we need to unlock them so that the memory can be freed.
1558         This change unlocks all the image frames after they are passed to ImageDecodingStore.
1559         Unit tests are added in ImageFrameGeneratorTest.
1560
1561         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1562         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
1563         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
1564         (WebCore::ImageFrameGenerator::decode):
1565         * platform/image-decoders/ImageDecoder.h:
1566         (ImageDecoder):
1567         (WebCore::ImageDecoder::lockFrameBuffers):
1568         (WebCore::ImageDecoder::unlockFrameBuffers):
1569
1570 2013-02-27  Kenneth Russell  <kbr@google.com>
1571
1572         Insufficient validation when uploading depth textures to WebGL
1573         https://bugs.webkit.org/show_bug.cgi?id=110931
1574
1575         Reviewed by Abhishek Arya.
1576
1577         Updated webgl/conformance/extensions/webgl-depth-texture.html
1578         layout test with additional test cases.
1579
1580         * html/canvas/WebGLRenderingContext.cpp:
1581         (WebCore):
1582         (WebCore::WebGLRenderingContext::texImage2D):
1583         (WebCore::WebGLRenderingContext::texSubImage2DImpl):
1584         (WebCore::WebGLRenderingContext::texSubImage2D):
1585             Check for valid format/type combinations, depth, and
1586             depth+stencil formats when uploading HTML elements and
1587             ImageData as textures.
1588
1589 2013-02-27  Adam Barth  <abarth@webkit.org>
1590
1591         Threaded HTML Parser fails fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html in debug
1592         https://bugs.webkit.org/show_bug.cgi?id=110951
1593
1594         Reviewed by Eric Seidel.
1595
1596         We were triggering this ASSERT because we didn't understand that a
1597         given frame might have multiple DocumentLoaders in various states. That
1598         caused us to think that a DocumentLoader in the provisional state was
1599         actually loading.
1600
1601         * dom/Document.cpp:
1602         (WebCore::Document::decrementActiveParserCount):
1603         * loader/DocumentLoader.cpp:
1604         (WebCore::DocumentLoader::isLoading):
1605
1606 2013-02-27  Chris Fleizach  <cfleizach@apple.com>
1607
1608         AX: Mac platform should support ability to scroll an element into visible
1609         https://bugs.webkit.org/show_bug.cgi?id=109860
1610
1611         Reviewed by Beth Dakin.
1612
1613         Support the scrollToMakeVisible() action for MacOS accessibility clients.
1614
1615         Tests: platform/mac/accessibility/scroll-to-visible-action.html
1616
1617         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1618         (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
1619         (-[WebAccessibilityObjectWrapper accessibilityScrollToVisible]):
1620         (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
1621
1622 2013-02-27  John Bauman  <jbauman@chromium.org>
1623
1624         Plugin in iframe may not display
1625         https://bugs.webkit.org/show_bug.cgi?id=109879
1626
1627         Reviewed by Simon Fraser.
1628
1629         Changing the cliprect on a layer containing an iframe may change the
1630         cliprect of plugins inside the iframe, so recursively tell all plugins
1631         in iframes that their cliprect has changed after doing layout on the
1632         outer frame.
1633
1634         Test: plugins/plugin-clip-subframe.html
1635
1636         * platform/ScrollView.cpp:
1637         (WebCore::ScrollView::clipRectChanged):
1638         * platform/ScrollView.h:
1639         * platform/Widget.h:
1640         (WebCore::Widget::clipRectChanged):
1641         * plugins/PluginView.cpp:
1642         (WebCore::PluginView::clipRectChanged):
1643         * plugins/PluginView.h:
1644         * rendering/RenderWidget.cpp:
1645         (WebCore::RenderWidget::setWidgetGeometry):
1646
1647 2013-02-27  Chris Rogers  <crogers@google.com>
1648
1649         Implement channel up-mixing and down-mixing rules
1650         https://bugs.webkit.org/show_bug.cgi?id=110812
1651
1652         Reviewed by Kenneth Russell.
1653
1654         Please see Web Audio specification for details of the AudioNode mixing rules attributes:
1655         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
1656
1657         Test: webaudio/audionode-channel-rules.html
1658
1659         * Modules/webaudio/AudioNode.cpp:
1660         (WebCore::AudioNode::AudioNode):
1661         (WebCore::AudioNode::channelCount):
1662         (WebCore):
1663         (WebCore::AudioNode::setChannelCount):
1664         (WebCore::AudioNode::channelCountMode):
1665         (WebCore::AudioNode::setChannelCountMode):
1666         (WebCore::AudioNode::channelInterpretation):
1667         (WebCore::AudioNode::setChannelInterpretation):
1668         (WebCore::AudioNode::updateChannelsForInputs):
1669         * Modules/webaudio/AudioNode.h:
1670         (AudioNode):
1671         (WebCore::AudioNode::internalChannelCountMode):
1672         (WebCore::AudioNode::internalChannelInterpretation):
1673         * Modules/webaudio/AudioNode.idl:
1674         * Modules/webaudio/AudioNodeInput.cpp:
1675         (WebCore::AudioNodeInput::numberOfChannels):
1676         (WebCore::AudioNodeInput::bus):
1677         (WebCore::AudioNodeInput::internalSummingBus):
1678         (WebCore::AudioNodeInput::sumAllConnections):
1679         (WebCore::AudioNodeInput::pull):
1680         * Modules/webaudio/AudioNodeInput.h:
1681         (AudioNodeInput):
1682         * Modules/webaudio/ConvolverNode.cpp:
1683         (WebCore::ConvolverNode::ConvolverNode):
1684         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
1685         (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
1686         * Modules/webaudio/PannerNode.cpp:
1687         (WebCore::PannerNode::PannerNode):
1688         * platform/audio/AudioBus.cpp:
1689         (WebCore::AudioBus::speakersCopyFrom):
1690         (WebCore::AudioBus::speakersSumFrom):
1691         (WebCore::AudioBus::speakersSumFrom5_1_ToMono):
1692         (WebCore):
1693         * platform/audio/AudioBus.h:
1694         (AudioBus):
1695
1696 2013-02-27  Adam Barth  <abarth@webkit.org>
1697
1698         Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
1699         https://bugs.webkit.org/show_bug.cgi?id=110937
1700
1701         Reviewed by Darin Adler.
1702
1703         This patch restores the ASSERT behind an ifdef so that we can continue
1704         to get converage from the ASSERT while we investigate why it is
1705         triggering in the threaded parser.
1706
1707         * loader/DocumentLoader.cpp:
1708         (WebCore::DocumentLoader::checkLoadComplete):
1709
1710 2013-02-27  Lianghui Chen  <liachen@rim.com>
1711
1712         [BlackBerry] User credentials is not correctly handled
1713         https://bugs.webkit.org/show_bug.cgi?id=110994
1714
1715         Internal PR: 280990
1716         Internal reviewed by Leo Yang.
1717
1718         Reviewed by Yong Li.
1719
1720         Following changes are made:
1721             Remove url from generating the hash to index user credential.
1722             Remove url from database.
1723             Use new CertMgrWrapper API to remove password from CertMgr.
1724             Handle encrypted password as binary data, instead of normal text string.
1725             When authentication fails, remove the saved user credential only when they match.
1726             Remove some url related API from CredentialBackingStore, as they are obsolete now.
1727
1728         No new tests as this is platform specific change about user credential.
1729
1730         * platform/network/blackberry/CredentialBackingStore.cpp:
1731         (WebCore::hashCredentialInfo):
1732         (WebCore::CredentialBackingStore::CredentialBackingStore):
1733         (WebCore::CredentialBackingStore::~CredentialBackingStore):
1734         (WebCore::CredentialBackingStore::open):
1735         (WebCore::CredentialBackingStore::addLogin):
1736         (WebCore::CredentialBackingStore::updateLogin):
1737         (WebCore::CredentialBackingStore::hasLogin):
1738         (WebCore::CredentialBackingStore::getLogin):
1739         (WebCore::CredentialBackingStore::removeLogin):
1740         (WebCore::CredentialBackingStore::addNeverRemember):
1741         (WebCore::CredentialBackingStore::encryptedString):
1742         (WebCore::CredentialBackingStore::decryptedString):
1743         * platform/network/blackberry/CredentialBackingStore.h:
1744         (CredentialBackingStore):
1745         * platform/network/blackberry/NetworkJob.cpp:
1746         (WebCore::NetworkJob::sendRequestWithCredentials):
1747         (WebCore::NetworkJob::purgeCredentials):
1748
1749 2013-02-27  David Hyatt  <hyatt@apple.com>
1750
1751         Refactor transform painting/hit testing code in RenderLayer.
1752         https://bugs.webkit.org/show_bug.cgi?id=110998
1753
1754         Reviewed by Eric Seidel.
1755
1756         * rendering/RenderLayer.cpp:
1757         (WebCore::RenderLayer::paintLayer):
1758         (WebCore::RenderLayer::paintLayerByApplyingTransform):
1759         Pull the code that applies the transform for painting into a new
1760         function that can also apply an additional translation offset. This
1761         offset will be used by the new columns code when that patch lands.
1762         
1763         (WebCore::RenderLayer::createLocalTransformState):
1764         Also patched to be able to apply an additional translation offset.
1765
1766         (WebCore::RenderLayer::hitTestLayer):
1767         (WebCore::RenderLayer::hitTestLayerByApplyingTransform):
1768         Same as with painting, pull the code that applies the transform into
1769         its own function and also enable an extra translation offset to be
1770         applied.
1771         
1772         * rendering/RenderLayer.h:
1773         Added the new functions to the header.
1774
1775 2013-02-27  David Kilzer  <ddkilzer@apple.com>
1776
1777         Touch CSSGrammar.y.in to fix an internal buildbot
1778
1779         * css/CSSGrammar.y.in: Add copyright dates based on previous
1780         commits.
1781
1782 2013-02-27  Manuel Rego Casasnovas  <rego@igalia.com>
1783
1784         Add smartInsertDeleteEnabled setting to WebCore::Page
1785         https://bugs.webkit.org/show_bug.cgi?id=107840
1786
1787         Reviewed by Ryosuke Niwa.
1788
1789         Covered by editing/deleting/smart-editing-disabled.html.
1790
1791         * page/Settings.in: Add new setting with true as initial value.
1792
1793 2013-02-27  Chris Fleizach  <cfleizach@apple.com>
1794
1795         WebSpeech: Support pause/resume ability
1796         https://bugs.webkit.org/show_bug.cgi?id=107345
1797
1798         Reviewed by Beth Dakin.
1799
1800         Add in the pause/resume functionality to SpeechSynthesis. Also hook up
1801         the callback events.
1802
1803         Test: platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html
1804
1805         * Modules/speech/SpeechSynthesis.cpp:
1806         (WebCore::SpeechSynthesis::SpeechSynthesis):
1807         (WebCore::SpeechSynthesis::pending):
1808         (WebCore::SpeechSynthesis::paused):
1809         (WebCore::SpeechSynthesis::startSpeakingImmediately):
1810         (WebCore::SpeechSynthesis::pause):
1811         (WebCore::SpeechSynthesis::resume):
1812         (WebCore):
1813         (WebCore::SpeechSynthesis::didPauseSpeaking):
1814         (WebCore::SpeechSynthesis::didResumeSpeaking):
1815         * Modules/speech/SpeechSynthesis.h:
1816         (SpeechSynthesis):
1817         * platform/PlatformSpeechSynthesizer.h:
1818         (PlatformSpeechSynthesizerClient):
1819         (PlatformSpeechSynthesizer):
1820         * platform/mac/PlatformSpeechSynthesizerMac.mm:
1821         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
1822         (-[WebSpeechSynthesisWrapper pause]):
1823         (-[WebSpeechSynthesisWrapper resume]):
1824         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
1825         (WebCore::PlatformSpeechSynthesizer::pause):
1826         (WebCore):
1827         (WebCore::PlatformSpeechSynthesizer::resume):
1828
1829 2013-02-26  Alexey Proskuryakov  <ap@apple.com>
1830
1831         Don't add a body to platform request until necessary
1832         https://bugs.webkit.org/show_bug.cgi?id=110900
1833
1834         Reviewed by Brady Eidson.
1835
1836         ResourceRequest now has more state for syncing between resource and platform parts.
1837         In addition to tracking which is up to date, we also track which has up to date
1838         HTTP Body.
1839
1840         The reason is that we don't need the body on request before it's actually sent,
1841         and we actually cannot build it when networking is out of process.
1842
1843         * WebCore.exp.in: Updated exports.
1844
1845         * platform/network/ResourceRequestBase.h:
1846         * platform/network/ResourceRequestBase.cpp:
1847         (WebCore::ResourceRequestBase::setHTTPBody): Update HTTP body before returning it.
1848         (WebCore::ResourceRequestBase::updatePlatformRequest): Update according to HTTPBodyUpdatePolicy.
1849         (WebCore::ResourceRequestBase::updateResourceRequest): Ditto.
1850
1851         * platform/network/cf/FormDataStreamCFNet.cpp:
1852         (WebCore::formDataStreamLengthPropertyName):
1853         (WebCore::formCopyProperty):
1854         (WebCore::setHTTPBody):
1855         Changed to not update Content-Length in platform request directly. We need to keep it
1856         in sync with resource request, and it's easier to do in a caller. Exposed computed
1857         length as a property do avoid duplicating the work.
1858
1859         * platform/network/cf/FormDataStreamCFNet.h: Removed unnecessary httpBodyFromStream().
1860
1861         * platform/network/cf/ResourceHandleCFNet.cpp:
1862         (WebCore::willSendRequest):
1863         (WebCore::didReceiveResponse):
1864         (WebCore::ResourceHandle::createCFURLConnection):
1865         Update body when necessary.
1866
1867         (WebCore::ResourceRequest::nsURLRequest):
1868         (WebCore::ResourceRequest::doUpdateResourceRequest):
1869         (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
1870         (WebCore):
1871         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1872         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
1873         (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
1874         (WebCore::ResourceRequest::applyWebArchiveHackForMail):
1875         Ditto.
1876
1877         * platform/network/cf/ResourceRequest.h: Track body up-to-date state.
1878
1879         * platform/network/cf/ResourceRequestCFNet.cpp:
1880         (WebCore::ResourceRequest::cfURLRequest): Honor HTTPBodyUpdatePolicy.
1881         (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't update body here.
1882         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Update the body, and make sure
1883         that Content-Length is correct.
1884         (WebCore::ResourceRequest::doUpdateResourceRequest): Don't update body here.
1885         (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Update the body, fixing a bug
1886         where body stream was lost if this function got called.
1887         (WebCore::ResourceRequest::applyWebArchiveHackForMail): No need to update body for this one.
1888
1889         * platform/network/mac/ResourceRequestMac.mm: Ditto (but this didn't have a bug
1890         with streams in doUpdateResourceRequest()).
1891
1892         * platform/network/mac/FormDataStreamMac.h: Forward declare formDataStreamLengthPropertyName().
1893
1894         * platform/network/mac/ResourceHandleMac.mm:
1895         (WebCore::ResourceHandle::createNSURLConnection):
1896         (WebCore::ResourceHandle::start):
1897         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1898         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
1899         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
1900         Update body when necessary.
1901
1902         * platform/network/blackberry/ResourceRequest.h:
1903         * platform/network/chromium/ResourceRequest.h:
1904         * platform/network/curl/ResourceRequest.h:
1905         * platform/network/qt/ResourceRequest.h:
1906         * platform/network/soup/ResourceRequest.h:
1907         * platform/network/win/ResourceRequest.h:
1908         Added stubs for new functions. These ports don't keep a platform request in ResourceRequest,
1909         and don't need updating.
1910
1911 2013-02-27  Glenn Adams  <glenn@skynav.com>
1912
1913         Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
1914         https://bugs.webkit.org/show_bug.cgi?id=110944
1915
1916         Reviewed by Dean Jackson.
1917
1918         No new tests.
1919
1920         * Configurations/FeatureDefines.xcconfig:
1921
1922 2013-02-27  Andrei Bucur  <abucur@adobe.com>
1923
1924         REGRESSION(r124739): fast/lists/list-marker-remove-crash.html hits an assertion in MoveParagraphs
1925         https://bugs.webkit.org/show_bug.cgi?id=93247
1926
1927         Reviewed by Darin Adler.
1928
1929         The listifyParagraph function inside InsertListCommand triggered a layout for the new list and updated
1930         only the "start" Position. The insertion and layout may have changed the "end" Position as well. The patch
1931         makes sure "end" is also recomputed.
1932
1933         Test: No new test, the patch fixes a regression.
1934
1935         * editing/InsertListCommand.cpp:
1936         (WebCore::InsertListCommand::listifyParagraph):
1937
1938 2013-02-27  Zach Kuznia  <zork@chromium.org>
1939
1940         Add ENABLE_STREAM guards to FileReaderLoader
1941         https://bugs.webkit.org/show_bug.cgi?id=110938
1942
1943         Reviewed by Hajime Morrita.
1944
1945         * fileapi/FileReaderLoader.cpp:
1946         * fileapi/FileReaderLoader.h:
1947
1948 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1949
1950         Switch QtWebKit to GStreamer 1.0.
1951         https://bugs.webkit.org/show_bug.cgi?id=106669.
1952
1953         Original patch by Sebastian Dröge.
1954         Reviewed by Csaba Osztrogonác.
1955
1956         * WebCore.pri:
1957
1958 2013-02-27  Eli Fidler  <efidler@rim.com>
1959
1960         [BlackBerry] Fix BlackBerry::Platform::String to WTF::String conversion when the string is Latin-1-encoded.
1961         https://bugs.webkit.org/show_bug.cgi?id=110986
1962
1963         Reviewed by Yong Li.
1964
1965         Internally reviewed by Nima Ghanavatian.
1966         BlackBerry PR 292922
1967
1968         We were assuming all platform strings were valid UTF-8, which isn't true for Latin-1 strings.
1969
1970         * platform/text/blackberry/StringBlackBerry.cpp:
1971         (WTF::String::String):
1972
1973 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1974
1975         [TexMap] REGRESSION(144183): It make negative delay tests fails
1976         https://bugs.webkit.org/show_bug.cgi?id=110989
1977
1978         Reviewed by Noam Rosenthal.
1979
1980         Do not apply a negative offset to the animation starttime send to the GraphicLayerClient,
1981         it needs the actual animation start not a virtual start.
1982
1983         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1984         (WebCore::GraphicsLayerTextureMapper::addAnimation):
1985
1986 2013-02-27  Aaron Colwell  <acolwell@chromium.org>
1987
1988         Fix SourceBufferList so SourceBuffer.append() calls are always rejected after the MediaSource is closed.
1989         https://bugs.webkit.org/show_bug.cgi?id=110917
1990
1991         Reviewed by Eric Carlson.
1992
1993         Test: http/tests/media/media-source/video-media-source-reject-append-after-reopening.html
1994
1995         * Modules/mediasource/SourceBufferList.cpp:
1996         (WebCore::SourceBufferList::clear):
1997
1998 2013-02-27  Justin Novosad  <junov@google.com>
1999
2000         REGRESSION (r134631) of border-radius percentage with border pixel
2001         https://bugs.webkit.org/show_bug.cgi?id=110889
2002
2003         Reviewed by Simon Fraser.
2004
2005         Fixing background color filling to handle "non renderable" rounded
2006         rectangles.
2007
2008         Test: fast/borders/border-radius-percent.html
2009
2010         * rendering/RenderBoxModelObject.cpp:
2011         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2012
2013 2013-02-27  Florin Malita  <fmalita@chromium.org>
2014
2015         [Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing
2016         https://bugs.webkit.org/show_bug.cgi?id=76557
2017
2018         Reviewed by Stephen Chenney.
2019
2020         Always use kDst_Mode transfer for the shadow looper. Using kSrc_Mode to enforce CSS
2021         box-shadow opaqueness at this level is not necessary since the RenderBoxModel box
2022         decoration code already makes sure that shadows are filled with opaque black.
2023
2024         This change aligns the SVG shadow behavior (and pixel results) with CG/Safari.
2025
2026         No new tests, coverage provided by existing tests.
2027
2028         * platform/graphics/skia/GraphicsContextSkia.cpp:
2029         (WebCore::GraphicsContext::setPlatformShadow):
2030
2031 2013-02-25  Kentaro Hara  <haraken@chromium.org>
2032
2033         [V8] Generate a wrapper function for ReplaceableAttrSetter()
2034         https://bugs.webkit.org/show_bug.cgi?id=110781
2035
2036         Reviewed by Adam Barth.
2037
2038         This is one of steps to insert TRACE_EVENT_STATE() macros
2039         into DOM bindings. This patch introduces an indirection function
2040         for xxxReplaceableAttrSetter(), like this:
2041
2042         // For non-custom replaceable setters (Note: One implementation
2043         is enough for all replaceable setters in one interface.)
2044         void V8XXX:::ReplaceableAttrSetterCallback(...) {
2045           V8XXX::ReplaceableAttrSetter(...);
2046         }
2047
2048         // For custom replaceable setters. (Note: This is treated as
2049         a normal custom setter.)
2050         void xxxAttrSetterCallback(...) {
2051           return xxxAttrSetterCustom(...);
2052         }
2053
2054         No tests. No change in behavior.
2055
2056         * bindings/scripts/CodeGeneratorV8.pm:
2057         (GenerateReplaceableAttrSetterCallback):
2058         (GenerateReplaceableAttrSetter):
2059         (GenerateSingleBatchedAttribute):
2060         (GenerateImplementation):
2061         * bindings/scripts/test/V8/V8TestObj.cpp:
2062         (WebCore::TestObjV8Internal::TestObjReplaceableAttrSetterCallback):
2063         (TestObjV8Internal):
2064         (WebCore):
2065         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2066         (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetterCallback):
2067         (TestTypedefsV8Internal):
2068
2069 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2070
2071         [Qt] Flash objects won't load until scrolling page
2072         https://bugs.webkit.org/show_bug.cgi?id=110149
2073
2074         Reviewed by Simon Hausmann.
2075
2076         Revert r134222. The issue from bug 101836 is no longer reproducable,
2077         and the fix was causing flash objects to not load properly.
2078
2079         * plugins/PluginPackage.cpp:
2080         (WebCore::PluginPackage::determineQuirks):
2081
2082 2013-02-27  No'am Rosenthal  <noam@webkit.org>
2083
2084         [Texmap] TextureMapper is too eager to use intermediate surfaces
2085         https://bugs.webkit.org/show_bug.cgi?id=110762
2086
2087         Reviewed by Allan Sandfeld Jensen.
2088
2089         Refactor the way intermediate surfaces are handled in TextureMapperLayer.
2090         Beforehand, we would create an intermediate surface whenever there is a chance of overlap, and
2091         the intermediate surface would be the largest possible. The result would then be drawn to the
2092         target surface with the layer's opacity and mask.
2093
2094         This would make it so that (1) surfaces are created even when they're not needed, i.e. when there
2095         is no actual overlap, and (2) mask wouldn't be applied correctly.
2096
2097         In this patch the behavior is changed so that the area to be painted is divided to "overlapping"
2098         and "non overlapping" regions. The non-overlapping regions are painted directly, while the overlapping
2099         regions are tiled to smaller rectangles painted using an intermediate surface.
2100         Masks are applied to those intermediate surfaces based on the transform of the actual mask, not drawn
2101         together with the content texture like before.
2102
2103         This optimizes for the more common case of opacity animations on a large tree, while making the quite
2104         rare case of composited masks slightly less optimized but always correct.
2105
2106         Tests: compositing/overlap-blending/children-opacity-huge.html
2107                compositing/overlap-blending/reflection-opacity-huge.html
2108                compositing/overlap-blending/children-opacity-no-overlap.html
2109
2110         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
2111         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2112         * platform/graphics/cairo/GraphicsContext3DPrivate.h:
2113         (GraphicsContext3DPrivate):
2114         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2115         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2116         * platform/graphics/efl/GraphicsContext3DPrivate.h:
2117         (GraphicsContext3DPrivate):
2118         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2119         (GraphicsContext3DPrivate):
2120         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2121         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
2122         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
2123         * platform/graphics/qt/MediaPlayerPrivateQt.h:
2124         (MediaPlayerPrivateQt):
2125         * platform/graphics/surfaces/GraphicsSurface.cpp:
2126         (WebCore::GraphicsSurface::paintToTextureMapper):
2127         * platform/graphics/surfaces/GraphicsSurface.h:
2128         (GraphicsSurface):
2129         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
2130         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
2131         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
2132         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
2133         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
2134         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
2135         * platform/graphics/texmap/TextureMapperBackingStore.h:
2136         (TextureMapperBackingStore):
2137         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
2138         (TextureMapperPlatformLayer):
2139         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
2140         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
2141         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
2142         (TextureMapperSurfaceBackingStore):
2143         * platform/graphics/texmap/TextureMapperTile.cpp:
2144         (WebCore::TextureMapperTile::paint):
2145         * platform/graphics/texmap/TextureMapperTile.h:
2146         (TextureMapperTile):
2147         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
2148         (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
2149         * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
2150         (TextureMapperTiledBackingStore):
2151         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
2152         (WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):
2153         (WebCore::CoordinatedBackingStore::paintToTextureMapper):
2154         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
2155         (CoordinatedBackingStore):
2156                 Removed the "mask" parameter from TextureMapperPlatformLayer and overrides, since
2157                 we no longer paint the contents and the mask in the same pass.
2158
2159         * platform/graphics/texmap/TextureMapper.cpp:
2160         (WebCore::TextureMapper::TextureMapper):
2161         * platform/graphics/texmap/TextureMapper.h:
2162         (WebCore::TextureMapper::setMaskMode):
2163         (TextureMapper):
2164         (WebCore::TextureMapper::isInMaskMode):
2165         * platform/graphics/texmap/TextureMapperGL.cpp:
2166         (WebCore::TextureMapperGL::drawNumber):
2167         (WebCore::TextureMapperGL::drawTexture):
2168         (WebCore::TextureMapperGL::draw):
2169         (WebCore):
2170         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
2171         (WebCore::TextureMapperGL::drawFiltered):
2172         * platform/graphics/texmap/TextureMapperGL.h:
2173         (TextureMapperGL):
2174         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2175         (WebCore::TextureMapperImageBuffer::drawTexture):
2176         (WebCore::TextureMapperImageBuffer::drawSolidColor):
2177         * platform/graphics/texmap/TextureMapperImageBuffer.h:
2178         (TextureMapperImageBuffer):
2179                 Instead of painting the mask together with the texture/color, paint the mask
2180                 by drawing with DestinationIn to an existing surface.
2181
2182         * platform/graphics/texmap/TextureMapperLayer.cpp:
2183         (TextureMapperPaintOptions):
2184         (WebCore::TextureMapperLayer::paintSelf):
2185         (WebCore::TextureMapperLayer::shouldBlend):
2186         (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
2187         (WebCore::TextureMapperLayer::replicaTransform):
2188         (WebCore):
2189         (WebCore::applyFilters):
2190         (WebCore::resolveOverlaps):
2191         (WebCore::TextureMapperLayer::computeOverlapRegions):
2192         (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
2193         (WebCore::TextureMapperLayer::applyMask):
2194         (WebCore::TextureMapperLayer::paintIntoSurface):
2195         (WebCore::commitSurface):
2196         (WebCore::TextureMapperLayer::paintWithIntermediateSurface):
2197         (WebCore::TextureMapperLayer::paintRecursive):
2198         * platform/graphics/texmap/TextureMapperLayer.h:
2199         (WebCore):
2200         (TextureMapperLayer):
2201         (WebCore::TextureMapperLayer::hasFilters):
2202         * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
2203         (WebCore):
2204         (WebCore::TextureMapperShaderProgram::create):
2205         * platform/graphics/texmap/TextureMapperShaderProgram.h:
2206
2207 2013-02-27  Alexander Pavlov  <apavlov@chromium.org>
2208
2209         Web Inspector: [REGRESSION] [Audits] Disabled "Run" button styling is the same as the enabled one
2210         https://bugs.webkit.org/show_bug.cgi?id=110971
2211
2212         Reviewed by Yury Semikhatsky.
2213
2214         Split out PanelEnablerView-related rules into panelEnabledView.css and restored the missing rules
2215         in inspector.css.
2216
2217         * inspector/front-end/inspector.css:
2218         * inspector/front-end/panelEnablerView.css:
2219
2220 2013-02-27  Kent Tamura  <tkent@chromium.org>
2221
2222         REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
2223         https://bugs.webkit.org/show_bug.cgi?id=110974
2224
2225         Reviewed by Kentaro Hara.
2226
2227         Input elements with the multiple fields UI require flexible box
2228         layout. We should use RenderFlexibleBox regardless of display
2229         property values.
2230
2231         Tests: Update fast/forms/date/date-apparance-basic.html
2232
2233         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2234         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer):
2235         Always use RenderFlexibleBox.
2236         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2237         (BaseMultipleFieldsDateAndTimeInputType): Declare createRenderer.
2238
2239 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2240
2241         [TexMap] Flickering after transitions on Apple HTML5 demo
2242         https://bugs.webkit.org/show_bug.cgi?id=102501
2243
2244         Reviewed by Noam Rosenthal.
2245
2246         Notify about animation start after the new animation is actually commited.
2247
2248         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2249         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
2250         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
2251         (WebCore::GraphicsLayerTextureMapper::addAnimation):
2252         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2253         (GraphicsLayerTextureMapper):
2254
2255 2013-02-27  Vivek Galatage  <vivek.vg@samsung.com>
2256
2257         Web Inspector: Refactor AuditsPanel with AuditController as newly introduced entity
2258         https://bugs.webkit.org/show_bug.cgi?id=110866
2259
2260         Reviewed by Alexander Pavlov.
2261
2262         AuditController is being introduced in order to follow MVC pattern with the Audits.
2263         This is the first step about the refactoring. Moving the methods from the AuditsPanel
2264         into AuditController would ease the event driven approach to de-couple the AuditsPanel
2265         and the AuditLauncherView.
2266
2267         No new tests as code refactoring.
2268
2269         * WebCore.gypi:
2270         * WebCore.vcproj/WebCore.vcproj:
2271         * inspector/compile-front-end.py:
2272         * inspector/front-end/AuditController.js: Added.
2273         (WebInspector.AuditController):
2274         (WebInspector.AuditController.prototype.ruleResultReadyCallback):
2275         (WebInspector.AuditController.prototype.categoryDoneCallback):
2276         (WebInspector.AuditController.prototype._executeAudit):
2277         (WebInspector.AuditController.prototype._auditFinishedCallback):
2278         (WebInspector.AuditController.prototype.startAuditWhenResourcesReady):
2279         (WebInspector.AuditController.prototype.initiateAudit):
2280         (WebInspector.AuditController.prototype._reloadResources):
2281         (WebInspector.AuditController.prototype._didMainResourceLoad):
2282         * inspector/front-end/AuditLauncherView.js:
2283         (WebInspector.AuditLauncherView):
2284         (WebInspector.AuditLauncherView.prototype._startAudit):
2285         * inspector/front-end/AuditsPanel.js:
2286         (WebInspector.AuditsPanel):
2287         (WebInspector.AuditsPanel.prototype.auditFinishedCallback):
2288         * inspector/front-end/WebKit.qrc:
2289
2290 2013-02-27  Mihai Maerean  <mmaerean@adobe.com>
2291
2292         [CSS Regions] Region overset property is not properly computed when there is a region break
2293         https://bugs.webkit.org/show_bug.cgi?id=92497
2294
2295         Reviewed by David Hyatt.
2296
2297         For "paginated" content in regions that has -webkit-region-break-after:always, the bottom margin was being passed
2298         along for the next region in the chain, which shouldn't happen.
2299
2300         The fix is, at layout, to clear the bottom margin for the nodes (inside paginated contexts) that have
2301         -webkit-region-break-after:always.
2302
2303         Tests: fast/multicol/break-after-always-bottom-margin.html
2304                fast/regions/overset-break-nested.html
2305                fast/regions/overset-break-with-sibling.html
2306                fast/regions/overset-break.html
2307
2308         * rendering/RenderBlock.cpp:
2309         (WebCore::RenderBlock::applyAfterBreak):
2310
2311 2013-02-27  Stephen Chenney  <schenney@chromium.org>
2312
2313         Bindings test results update after r144126
2314         https://bugs.webkit.org/show_bug.cgi?id=108196
2315
2316         Unreviewed test update.
2317
2318         * bindings/scripts/test/JS/JSTestObj.cpp: Add include of CallbackFunction.h
2319
2320 2013-02-27  Vsevolod Vlasov  <vsevik@chromium.org>
2321
2322         Unreviewed inspector front-end closure compilaiton fix.
2323
2324         * inspector/front-end/ScriptsNavigator.js:
2325         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
2326         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
2327         * inspector/front-end/ScriptsPanel.js:
2328         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
2329
2330 2013-02-27  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2331
2332         [texmap] Do not apply clip state if redundant
2333         https://bugs.webkit.org/show_bug.cgi?id=110790
2334
2335         Reviewed by Noam Rosenthal.
2336
2337         Add a bool to check if clip state has changed since last apply.
2338
2339         No behavior changes, thus covered by existing tests.
2340
2341         * platform/graphics/texmap/TextureMapperGL.cpp:
2342         (WebCore::TextureMapperGL::ClipStack::reset):
2343         (WebCore::TextureMapperGL::ClipStack::pop):
2344         (WebCore::TextureMapperGL::ClipStack::apply):
2345         * platform/graphics/texmap/TextureMapperGL.h:
2346         (WebCore::TextureMapperGL::ClipStack::ClipStack):
2347         (ClipStack):
2348
2349 2013-02-27  Eugene Klyuchnikov  <eustas@chromium.org>
2350
2351         Web Inspector: timeline stops working on certain sites
2352         https://bugs.webkit.org/show_bug.cgi?id=110955
2353
2354         Reviewed by Alexander Pavlov.
2355
2356         Analysis: "timerId" value is number,
2357         so it is not wrapped to node as expected.
2358
2359         Solution: wrap values of all types except Node.
2360
2361         * inspector/front-end/TimelinePresentationModel.js:
2362         Wrap nonstring values to text nodes.
2363
2364 2013-02-27  Adam Barth  <abarth@webkit.org>
2365
2366         HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
2367         https://bugs.webkit.org/show_bug.cgi?id=110949
2368
2369         Reviewed by Eric Seidel.
2370
2371         We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
2372         called from the background thread while we're processing
2373         m_speculations (i.e., if processing m_speculations is taking a while
2374         and we've yielded to the event loop).
2375
2376         It's hard to write a deterministic test for this patch, but it's hit
2377         quite often with existing LayoutTests.
2378
2379         * html/parser/HTMLDocumentParser.cpp:
2380         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
2381
2382 2013-02-27  Kentaro Hara  <haraken@chromium.org>
2383
2384         [V8] Generate a wrapper function for named constructor callbacks
2385         https://bugs.webkit.org/show_bug.cgi?id=110794
2386
2387         Reviewed by Adam Barth.
2388
2389         This would be the final step of generating wrapper functions.
2390         The patch generates the following wrapper function for named
2391         constructor callbacks.
2392
2393         Handle<Value> namedConstructorCallback(...)
2394         {
2395             return namedConstructor(...);
2396         }
2397
2398         No tests. No change in behavior.
2399
2400         * bindings/scripts/CodeGeneratorV8.pm:
2401         (GenerateNamedConstructor):
2402         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2403         (WebCore::namedConstructor):
2404         (WebCore::namedConstructorCallback):
2405         (WebCore):
2406         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
2407         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2408         (WebCore::namedConstructor):
2409         (WebCore::namedConstructorCallback):
2410         (WebCore):
2411         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
2412
2413 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
2414
2415         Web Inspector: show raster tasks on Timeline
2416         https://bugs.webkit.org/show_bug.cgi?id=105851
2417
2418         - add DeferPaint, Paint & RasterTask trace events handling to trace event processor;
2419         - upon begin frame, emit aggregated background event for all raster tasks related to inspected page.
2420
2421         Reviewed by Pavel Feldman.
2422
2423         * inspector/InspectorInstrumentation.cpp:
2424         (WebCore):
2425         (WebCore::InspectorInstrumentation::willPaintImpl):
2426         (InstrumentationEvents):
2427         (InstrumentationEventArguments):
2428         * inspector/InspectorInstrumentation.h:
2429         (InstrumentationEvents):
2430         (WebCore):
2431         (InstrumentationEventArguments):
2432         * inspector/InspectorTimelineAgent.cpp:
2433         (TimelineRecordType):
2434         (WebCore::InspectorTimelineAgent::stop):
2435         (WebCore::InspectorTimelineAgent::didBeginFrame):
2436         * inspector/InspectorTimelineAgent.h:
2437         (TimelineRecordType):
2438         (WebCore):
2439         * inspector/TimelineRecordFactory.cpp:
2440         (WebCore::TimelineRecordFactory::createRasterData):
2441         (WebCore):
2442         * inspector/TimelineRecordFactory.h:
2443         (TimelineRecordFactory):
2444         * inspector/TimelineTraceEventProcessor.cpp:
2445         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
2446         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
2447         (WebCore):
2448         (WebCore::TimelineTraceEventProcessor::registerHandler):
2449         (WebCore::TimelineTraceEventProcessor::shutdown):
2450         (WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
2451         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
2452         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
2453         (WebCore::TimelineTraceEventProcessor::onBeginFrame):
2454         (WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
2455         (WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
2456         (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
2457         (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
2458         (WebCore::TimelineTraceEventProcessor::onLayerDeleted):
2459         (WebCore::TimelineTraceEventProcessor::onPaint):
2460         (WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
2461         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
2462         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
2463         * inspector/TimelineTraceEventProcessor.h:
2464         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
2465         (WebCore::TimelineTraceEventProcessor::TraceEvent::id):
2466         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
2467         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
2468         (TimelineTraceEventProcessor):
2469         * inspector/front-end/TimelineModel.js:
2470         * inspector/front-end/TimelinePresentationModel.js:
2471         (WebInspector.TimelinePresentationModel._initRecordStyles):
2472
2473 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
2474
2475         getPropertyValue for -webkit-column-rule returns null, should compute the shorthand value
2476         https://bugs.webkit.org/show_bug.cgi?id=110698
2477
2478         Reviewed by Alexander Pavlov.
2479
2480         Test: fast/css/getPropertyValue-column-rule.html
2481
2482         * css/StylePropertySet.cpp:
2483         (WebCore::StylePropertySet::getPropertyValue):
2484
2485 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
2486
2487         getPropertyValue for -webkit-margin-collapse returns null, should compute the shorthand value
2488         https://bugs.webkit.org/show_bug.cgi?id=110903
2489
2490         Reviewed by Alexander Pavlov.
2491
2492         getPropertyValue("-webkit-margin-collapse") should compute shorthand value
2493         when -webkit-margin-collapse is specified in CSS.
2494
2495         Test: fast/css/getPropertyValue-webkit-margin-collapse.html
2496
2497         * css/StylePropertySet.cpp:
2498         (WebCore::StylePropertySet::getPropertyValue):
2499
2500 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
2501
2502         getPropertyValue for -webkit-marquee returns null, should compute the shorthand value
2503         https://bugs.webkit.org/show_bug.cgi?id=110816
2504
2505         Reviewed by Alexander Pavlov.
2506
2507         Compute the shorthand value for '-webkit-marquee' specified in CSS.
2508
2509         Test: fast/css/getPropertyValue-webkit-marquee.html
2510
2511         * css/StylePropertySet.cpp:
2512         (WebCore::StylePropertySet::getPropertyValue):
2513
2514 2013-02-26  Kentaro Hara  <haraken@chromium.org>
2515
2516         [V8] Remove Event::dataTransferAttrGetterCustom() and Event::valueAttrSetterCustom()
2517         https://bugs.webkit.org/show_bug.cgi?id=110666
2518
2519         Reviewed by Adam Barth.
2520
2521         Event::dataTransferAttrGetterCustom() is not used
2522         (i.e. the custom method is not registered to V8).
2523         Event::valueAttrSetterCustom() is declared but not
2524         implemented. We can remove them.
2525
2526         No tests. No change in behavior.
2527
2528         * bindings/scripts/CodeGeneratorV8.pm:
2529         (GenerateHeaderCustomCall):
2530         * bindings/v8/custom/V8EventCustom.cpp:
2531
2532 2013-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
2533
2534         SelectorQuery should not ever use ResolvingStyle mode.
2535         https://bugs.webkit.org/show_bug.cgi?id=110843
2536
2537         It looks like we accidentally used ResolvingStyle mode for webkitMatchesSelector, and I exacerbated the problem
2538         in r143858 by switching all of SelectorQuery to use it. There aren't any visible effects, but the style bits
2539         of elements are unnecessarily twiddled when if we do that. Let's not do it.
2540
2541         Reviewed by Eric Seidel.
2542
2543         No public-facing behavior change, covered by existing tests.
2544
2545         * dom/SelectorQuery.cpp:
2546         (WebCore::SelectorDataList::selectorMatches): Switched to always use QueryingRules mode.
2547
2548 2013-02-26  Adam Barth  <abarth@webkit.org>
2549
2550         Silence this ASSERT. It is triggered by the threaded HTML parser.
2551         Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937
2552
2553         * loader/DocumentLoader.cpp:
2554         (WebCore::DocumentLoader::checkLoadComplete):
2555
2556 2013-02-26  Mark Lam  <mark.lam@apple.com>
2557
2558         SQLTransactionBackend::doCleanup() should not nullify its current
2559         statement and transaction error fields.
2560         https://bugs.webkit.org/show_bug.cgi?id=110826.
2561
2562         Reviewed by Geoffrey Garen.
2563
2564         The reason for this is because the frontend SQLTransaction may have
2565         tasks that are already registered via callOnMainThread(), and may
2566         invoke transaction state functions that access these objects in the
2567         SQLTransactionBackend. This proves to be problematic if the database
2568         was interrupted resulting in doCleanup() being called concurrently
2569         while those states are executing.
2570
2571         Instead, we leave their clean up to the SQLTransactionBackend destructor
2572         which is guaranteed to only be called when the SQLTransaction is also
2573         destructing i.e. these objects are no longer needed.
2574
2575         No new tests.
2576
2577         * Modules/webdatabase/SQLTransactionBackend.cpp:
2578         (WebCore::SQLTransactionBackend::doCleanup):
2579
2580 2013-02-26  Anders Carlsson  <andersca@apple.com>
2581
2582         Implement StorageAreaProxy::getItem and StorageAreaProxy::setItem
2583         https://bugs.webkit.org/show_bug.cgi?id=110927
2584
2585         Reviewed by Sam Weinig.
2586
2587         Export StorageMap::getItem and StorageMap::setItem.
2588
2589         * WebCore.exp.in:
2590
2591 2013-02-26  Adam Klein  <adamk@chromium.org>
2592
2593         Parsing of HTML tags in MathML Text Insertion Points leads to bogus parser behavior
2594         https://bugs.webkit.org/show_bug.cgi?id=110808
2595
2596         Reviewed by Adam Barth.
2597
2598         When looking for various table tags in the HTMLElementStack, compare
2599         QualifiedNames rather than just local names, where necessary.
2600
2601         Note that not all uses have been "fixed"; I've only changed for which
2602         I could write a test with differing behavior. A followup patch to
2603         rationalize the use of QualifiedName vs local names would be ideal.
2604
2605         Tests: html5lib/generated/run-math-data.html
2606                html5lib/generated/run-math-write.html
2607
2608         * html/parser/HTMLElementStack.cpp:
2609         (WebCore::inScopeCommon): Added a version of inScopeCommon that
2610         handles QualifiedNames instead of just localNames.
2611         (WebCore::HTMLElementStack::inTableScope): When given a QualifiedName,
2612         call the new version of inScopeCommon().
2613         * html/parser/HTMLTreeBuilder.cpp:
2614         (WebCore::HTMLTreeBuilder::processStartTag):
2615         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
2616         (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
2617
2618 2013-02-26  Kaustubh Atrawalkar  <kaustubh@motorola.com>
2619
2620         Notification.requestPermission callback should be optional
2621         https://bugs.webkit.org/show_bug.cgi?id=108196
2622
2623         Reviewed by Adam Barth.
2624
2625         Spec says it should be optional.
2626         http://notifications.spec.whatwg.org/#notification
2627
2628         Test: fast/notifications/notifications-request-permission-optional.html
2629
2630         * GNUmakefile.list.am:
2631         * Modules/notifications/Notification.h:
2632         (Notification):
2633         * Modules/notifications/Notification.idl:
2634         * Target.pri:
2635         * UseJSC.cmake:
2636         * UseV8.cmake:
2637         * WebCore.gypi:
2638         * WebCore.vcproj/WebCore.vcproj:
2639         * WebCore.vcxproj/WebCore.vcxproj:
2640         * WebCore.vcxproj/WebCore.vcxproj.filters:
2641         * WebCore.xcodeproj/project.pbxproj:
2642         * bindings/js/JSNotificationCustom.cpp: Removed.
2643         * bindings/scripts/CodeGeneratorJS.pm:
2644         (GenerateParametersCheck):
2645         * bindings/v8/custom/V8NotificationCustom.cpp: Removed.
2646
2647 2013-02-26  Joshua Bell  <jsbell@chromium.org>
2648
2649         IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
2650         https://bugs.webkit.org/show_bug.cgi?id=110916
2651
2652         Reviewed by Kentaro Hara.
2653
2654         Implement a custom getter for IDBRequest.result that does one additional hidden
2655         property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
2656         difficult to repro locally. If the crash moves to the new line it will point
2657         the investigation in a new direction. Also add an assertion that probes string
2658         wrappers (the expected type).
2659
2660         * Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
2661         * WebCore.gypi: New file.
2662         * bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
2663         (WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
2664         generated code, plus extra setNamedHiddenReference call and string ASSERT.
2665
2666 2013-02-26  Anders Carlsson  <andersca@apple.com>
2667
2668         Add a couple of symbols needed by WebKit2.
2669
2670         * WebCore.exp.in:
2671
2672 2013-02-26  Michelangelo De Simone  <michelangelo@webkit.org>
2673
2674         [CSS Shaders] Implement color and luminosity non-separable blend modes
2675         https://bugs.webkit.org/show_bug.cgi?id=106226
2676
2677         Added the following GLSL helper functions to the CustomFilterValidatedProgram:
2678
2679             - css_Lum(C): returns the luminosity for the color C
2680             - css_ClipColor(C): clips color C
2681             - css_SetLum(C, l): sets the luminosity l on the color C
2682
2683         The above functions are being used for the "color" and "luminosity" non-separable
2684         blend modes, the relevant spec for such modes is at URL:
2685         https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
2686
2687         Reviewed by Dean Jackson.
2688
2689         Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html
2690                css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html
2691
2692         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
2693         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
2694
2695 2013-02-26  Anders Carlsson  <andersca@apple.com>
2696
2697         StorageAreaProxy should hold on to a StorageMap and not a HashMap
2698         https://bugs.webkit.org/show_bug.cgi?id=110919
2699
2700         Reviewed by Jessie Berlin.
2701
2702         StorageMap should be a private header.
2703
2704         * WebCore.xcodeproj/project.pbxproj:
2705
2706 2013-02-26  Stephen Chenney  <schenney@chromium.org>
2707
2708         feDisplacementMap filter gets color space wrong
2709         https://bugs.webkit.org/show_bug.cgi?id=105929
2710
2711         Reviewed by Dirk Schulze.
2712
2713         Tests: svg/filters/feDisplacementMap-color-interpolation-filters-expected.svg
2714                svg/filters/feDisplacementMap-color-interpolation-filters.svg
2715                svg/filters/feDisplacementMap-filterUnits-expected.svg
2716                svg/filters/feDisplacementMap-filterUnits.svg
2717
2718         According to the spec, the SVG feDisplacementMap filter should not
2719         change the color space on its first input, and other vendors seem to
2720         agree that this also means that the output should be in the first
2721         input's color space. That makes sense: we are displacing the input,
2722         not otherwise manipulating colors.
2723
2724         This change improves color space handling for filters by more
2725         explicitly tracking which color space is used for the filter's
2726         operation and which is used for the filter's result. It provides a
2727         means for filter effects to override the color-interpolation-filters
2728         property as defined by the spec. feFlood and feDisplacementMap use
2729         this new feature to enforce the spec requirements.
2730
2731         * platform/graphics/filters/FEDisplacementMap.cpp:
2732         (WebCore::FEDisplacementMap::setResultColorSpace): Override the default color space with the
2733             same color space as the first input filter.
2734         (WebCore):
2735         (WebCore::FEDisplacementMap::transformResultColorSpace): Only transform the color space on
2736             the second filter input.
2737         (WebCore::FEDisplacementMap::platformApplySoftware): Make the application code more efficient,
2738             and give slightly better numerical accuracy.
2739         * platform/graphics/filters/FEDisplacementMap.h:
2740         (FEDisplacementMap): Declare setResultColorSpace.
2741         * platform/graphics/filters/FEFlood.cpp:
2742         (WebCore::FEFlood::platformApplySoftware): Remove the call that forces
2743             the result color space. We do it now in the setResultColorSpace.
2744         * platform/graphics/filters/FEFlood.h:
2745         (FEFlood): Add setResultColorSPace override that enforces sRGB color space. But not if using
2746             CG, which apparently does this this already internally.
2747         * platform/graphics/filters/FilterEffect.cpp:
2748         (WebCore::FilterEffect::FilterEffect): Rename m_colorSpace to m_operatingColorSpace.
2749         (WebCore::FilterEffect::apply): Allow filter effects to
2750             override the color space conversion of their inputs.
2751         (WebCore::FilterEffect::createImageBufferResult): Always create the
2752             image buffer with the result color space.
2753         * platform/graphics/filters/FilterEffect.h:
2754         (WebCore::FilterEffect::operatingColorSpace): New accessor.
2755         (WebCore::FilterEffect::setOperatingColorSpace): New accessor.
2756         (WebCore::FilterEffect::resultColorSpace): New accessor.
2757         (WebCore::FilterEffect::setResultColorSpace): New accessor.
2758         (FilterEffect):
2759         (WebCore::FilterEffect::transformResultColorSpace): A new virtual
2760             method that allows filter effects individual control over the color
2761             space conversion of their inputs.
2762         * platform/graphics/filters/SourceGraphic.h:
2763         (WebCore::SourceGraphic::SourceGraphic): Variable rename.
2764         * rendering/FilterEffectRenderer.cpp:
2765         (WebCore::FilterEffectRenderer::build): Use accessors to set color
2766             space to enable per-effect overrides.
2767         * rendering/svg/RenderSVGResourceFilter.cpp:
2768         (WebCore::RenderSVGResourceFilter::buildPrimitives): Use accessors to set color.
2769
2770 2013-02-26  Mike West  <mkwst@chromium.org>
2771
2772         X-Frame-Options should accept ALLOWALL as a valid value.
2773         https://bugs.webkit.org/show_bug.cgi?id=110857
2774
2775         Reviewed by Adam Barth.
2776
2777         DoubleClick, among others, serves ALLOWALL as a 'X-Frame-Options' value
2778         with the intent of (shock!) allowing a resource to be framed by all
2779         origins. Given its prevelance, and the fact that IE supports the header,
2780         we shouldn't call it out as invalid.
2781
2782         This patch tweaks the warning logic to only throw the warning if the
2783         header's value isn't 'ALLOWALL', 'DENY', or 'SAMEORIGIN'.
2784
2785         Test: http/tests/security/XFrameOptions/x-frame-options-allowall.html
2786
2787         * loader/FrameLoader.cpp:
2788         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
2789
2790 2013-02-26  Tony Chang  <tony@chromium.org>
2791
2792         CSS Flexbox: dynamically applied align-items doesn't affect item alignment
2793         https://bugs.webkit.org/show_bug.cgi?id=110341
2794
2795         Reviewed by Ojan Vafai.
2796
2797         If flex items don't change width, we don't lay them out again. This causes problems
2798         when an item goes from stretch to non-stretch since we need to relayout to get the
2799         smaller height. Fix this by marking flex items that were stretch as needing layout.
2800
2801         Test: css3/flexbox/relayout-align-items.html
2802
2803         * rendering/RenderFlexibleBox.cpp:
2804         (WebCore::resolveAlignment): Pull out common code for computing flex item style.
2805         (WebCore::RenderFlexibleBox::styleDidChange): Mark children as needing layout.
2806         (WebCore::RenderFlexibleBox::alignmentForChild): Use resolveAlignment.
2807         * rendering/RenderFlexibleBox.h:
2808
2809 2013-02-26  Anders Carlsson  <andersca@apple.com>
2810
2811         StorageMap can just import an entire map of items at once
2812         https://bugs.webkit.org/show_bug.cgi?id=110904
2813
2814         Reviewed by Beth Dakin.
2815
2816         Instead of iterating over the map inside StorageAreaSync, just pass it directly
2817         (through StorageAreaImpl) to StorageMap and iterate over it there.
2818
2819         * storage/StorageAreaImpl.cpp:
2820         (WebCore::StorageAreaImpl::importItems):
2821         * storage/StorageAreaImpl.h:
2822         (StorageAreaImpl):
2823         * storage/StorageAreaSync.cpp:
2824         (WebCore::StorageAreaSync::performImport):
2825         * storage/StorageMap.cpp:
2826         (WebCore::StorageMap::importItems):
2827         * storage/StorageMap.h:
2828         (StorageMap):
2829
2830 2013-02-26  CHAUDHARY VINEET  <rgf748@motorola.com>
2831
2832         [JSC] static methods with Callback should not have this pointer
2833         https://bugs.webkit.org/show_bug.cgi?id=110846
2834
2835         Reviewed by Kentaro Hara.
2836
2837         Fixing the JSC Codegenerator not to use 'this' pointer in static methods.
2838
2839         No new tests. 
2840
2841         * bindings/scripts/CodeGeneratorJS.pm:
2842         (GenerateParametersCheck):
2843         * bindings/scripts/test/JS/JSTestObj.cpp:
2844         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
2845         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
2846         * bindings/scripts/test/JS/JSTestObj.h:
2847         * bindings/scripts/test/TestObj.idl:
2848         * bindings/scripts/test/V8/V8TestObj.cpp:
2849         (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethod):
2850         (TestObjV8Internal):
2851         (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethodCallback):
2852         (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethod):
2853         (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethodCallback):
2854         (WebCore::ConfigureV8TestObjTemplate):
2855
2856 2013-02-20  Alpha Lam  <hclam@chromium.org>
2857
2858         GIFImageReader to read from source data directly
2859         https://bugs.webkit.org/show_bug.cgi?id=109662
2860
2861         Reviewed by Stephen White.
2862
2863         This is the first patch to improve GIF image decoding.
2864
2865         GIFImageReader has an internal 256 bytes buffer to saving incoming
2866         bytes. This mechanism is out-dated because WebKit holds the entire
2867         file in memory and it is not necessary to hold data in an intermediate
2868         buffer.
2869
2870         This is also a blocker for later work to parse and decode GIF
2871         incrementally.
2872
2873         This change removed the imtermediate 'hold' buffer and uses an index
2874         for data position to keep track of parsing of the GIF file. Buffer for
2875         global colormap and local colormap are also removed because they can be
2876         referenced from the data stream.
2877
2878         This change is tested by:
2879
2880         Layout tests
2881         All tests passed under fast/images.
2882
2883         Unit tests
2884         Added GIFImageDecoderTest for Chromium.
2885
2886         Local testing
2887         I tested this implementation against a set of 50k GIF images and
2888         there's no crashes and produces bit-exact results as previous code.
2889
2890         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2891         (WebCore::GIFImageDecoder::setData):
2892         (WebCore::GIFImageDecoder::frameCount):
2893         (WebCore::GIFImageDecoder::haveDecodedRow):
2894         (WebCore::GIFImageDecoder::decode):
2895         * platform/image-decoders/gif/GIFImageReader.cpp:
2896         (GIFImageReader::doLZW):
2897         (GIFImageReader::decode):
2898         (GIFImageReader::decodeInternal):
2899         (GIFImageReader::setRemainingBytes):
2900         * platform/image-decoders/gif/GIFImageReader.h:
2901         (GIFFrameContext):
2902         (GIFFrameContext::GIFFrameContext):
2903         (GIFFrameContext::~GIFFrameContext):
2904         (GIFImageReader::GIFImageReader):
2905         (GIFImageReader::~GIFImageReader):
2906         (GIFImageReader::setData):
2907         (GIFImageReader):
2908         (GIFImageReader::globalColormap):
2909         (GIFImageReader::localColormap):
2910         (GIFImageReader::localColormapSize):
2911         (GIFImageReader::data):
2912         (GIFImageReader::colormap):
2913
2914 2013-02-26  Christian Biesinger  <cbiesinger@chromium.org>
2915
2916         Empty <button>s should collapse; empty <input type="button"> should not collapse
2917         https://bugs.webkit.org/show_bug.cgi?id=110654
2918
2919         Reviewed by Ojan Vafai.
2920
2921         This patch also fixes other height computation issues with flex boxes
2922         related to scroll bars and hasLineIfEmpty()=true. See below for
2923         details.
2924
2925         Tests: css3/flexbox/button.html
2926                css3/flexbox/position-absolute-child-with-contenteditable.html
2927
2928         * rendering/RenderBlock.cpp:
2929         (WebCore::RenderBlock::layoutBlock): Add a FIXME to make
2930         border/padding/scrollbar inclusion more consistent with other
2931         renderers.
2932         * rendering/RenderButton.h:
2933         (WebCore::RenderButton::hasLineIfEmpty): We only want a line for
2934         <input type=button|submit|reset>, for consistency with Firefox.
2935
2936         * rendering/RenderFlexibleBox.cpp:
2937         (WebCore::RenderFlexibleBox::layoutBlock): Start out layoutBlock by
2938         setting the logical height to border + padding + scrollbar height to
2939         ensure that we have space for the scrollbar even without children. The
2940         layoutFlexItems change below is not enough because we also need this
2941         when hasLineIfEmpty() is false.
2942         (WebCore::RenderFlexibleBox::layoutFlexItems): Ensure we have a line
2943         when hasLineIfEmpty() is true by calling setLogicalHeight(border+
2944         padding+scrollbar+lineHeight()) if we don't have a flex line.
2945
2946 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2947
2948         Unreviewed, rolling out r143941.
2949         http://trac.webkit.org/changeset/143941
2950         https://bugs.webkit.org/show_bug.cgi?id=110901
2951
2952         This is a step in the wrong direction as it ties us to what
2953         grid-{row|column} expect (see
2954         https://bugs.webkit.org/show_bug.cgi?id=110777 for the right
2955         direction) (Requested by jchaffraix on #webkit).
2956
2957         * css/CSSComputedStyleDeclaration.cpp:
2958         (WebCore::valueForGridPosition):
2959         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2960         * css/StyleResolver.cpp:
2961         (WebCore::createGridPosition):
2962         (WebCore::StyleResolver::applyProperty):
2963         * rendering/RenderGrid.cpp:
2964         (WebCore::RenderGrid::maximumIndexInDirection):
2965         (WebCore::RenderGrid::placeItemsOnGrid):
2966         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
2967         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
2968         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
2969         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
2970         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
2971         * rendering/RenderGrid.h:
2972         * rendering/style/GridPosition.h:
2973         * rendering/style/RenderStyle.h:
2974         * rendering/style/StyleGridItemData.h:
2975         (StyleGridItemData):
2976
2977 2013-02-26  Jer Noble  <jer.noble@apple.com>
2978
2979         Unreviewed build fix; use correct macro for platform name in FeatureDefines.xcconfig.
2980
2981         * Configurations/FeatureDefines.xcconfig:
2982
2983 2013-02-26  Andrew Lo  <anlo@rim.com>
2984
2985         [BlackBerry] Animated images not animating on accelerated compositing layers
2986         https://bugs.webkit.org/show_bug.cgi?id=110886
2987
2988         Reviewed by Rob Buis.
2989
2990         Internally reviewed by Arvid Nilsson.
2991         Internal PR 299598.
2992
2993         Animated images on AC layers call GraphicsLayer::setContentsToImage
2994         on each frame with the same Image.
2995
2996         We need to set needs display in that case so that the frames are
2997         displayed.
2998
2999         No new tests are needed since there is no new functionality.
3000
3001         * platform/graphics/blackberry/LayerWebKitThread.cpp:
3002         (WebCore::LayerWebKitThread::setContents):
3003
3004 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
3005
3006         Unreviewed, rolling out r144065.
3007         http://trac.webkit.org/changeset/144065
3008         https://bugs.webkit.org/show_bug.cgi?id=110896
3009
3010         Causing failures and crashes on Chromium Win7 and Win XP
3011         (Requested by schenney on #webkit).
3012
3013         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
3014         (WebCore::normalizeCharacters):
3015         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
3016         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
3017         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
3018
3019 2013-02-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3020
3021         [TexMap] Ignore layer repaint request when drawsContent is false
3022         https://bugs.webkit.org/show_bug.cgi?id=110888
3023
3024         Reviewed by Noam Rosenthal.
3025
3026         As long as drawsContent is false we should ignore requests for repaints.
3027         A full repaint will be requested when drawsContent is changed to true.
3028
3029         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3030         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
3031         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
3032         (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
3033
3034 2013-02-26  Joshua Bell  <jsbell@chromium.org>
3035
3036         IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
3037         https://bugs.webkit.org/show_bug.cgi?id=110792
3038
3039         Reviewed by Tony Chang.
3040
3041         The object store's metadata wasn't updated if the index hadn't been accessed
3042         by script and hence placed in the name->object map. Make sure the metadata
3043         is always updated.
3044
3045         Test: storage/indexeddb/deleteIndex-bug110792.html
3046
3047         * Modules/indexeddb/IDBObjectStore.cpp:
3048         (WebCore::IDBObjectStore::deleteIndex): Always update the object store's metadata.
3049
3050 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
3051
3052         Unreviewed, rolling out r144019.
3053         http://trac.webkit.org/changeset/144019
3054         https://bugs.webkit.org/show_bug.cgi?id=110892
3055
3056         due to 8% perf regression on chromium-win7 intl1 page cycler,
3057         see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested
3058         by gasubic on #webkit).
3059
3060         * platform/text/LineBreakIteratorPoolICU.h:
3061         (WebCore::LineBreakIteratorPool::take):
3062         (WebCore::LineBreakIteratorPool::put):
3063         (LineBreakIteratorPool):
3064         * platform/text/TextBreakIterator.h:
3065         (WebCore):
3066         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
3067         (WebCore::LazyLineBreakIterator::get):
3068         (WebCore::LazyLineBreakIterator::reset):
3069         (LazyLineBreakIterator):
3070         * platform/text/TextBreakIteratorICU.cpp:
3071         (WebCore::acquireLineBreakIterator):
3072         (WebCore::releaseLineBreakIterator):
3073         * rendering/RenderBlockLineLayout.cpp:
3074         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
3075         * rendering/RenderText.cpp:
3076         (WebCore::RenderText::computePreferredLogicalWidths):
3077         * rendering/RenderText.h:
3078         (WebCore):
3079         * rendering/break_lines.cpp:
3080         (WebCore):
3081         (WebCore::isBreakableSpace):
3082         (WebCore::needsLineBreakIterator):
3083         (WebCore::nextBreakablePosition):
3084         (WebCore::nextBreakablePositionIgnoringNBSP):
3085         * rendering/break_lines.h:
3086         (WebCore):
3087         (WebCore::isBreakable):
3088
3089 2013-02-26  Dana Jansens  <danakj@chromium.org>
3090
3091         Create the SharedGraphicsContext3D through its own method.
3092         https://bugs.webkit.org/show_bug.cgi?id=109345
3093
3094         Reviewed by James Robinson.
3095
3096         Allow creating a GraphicsContext3DPrivate from an externally owned
3097         WebGraphicsContext3D and GrContext. Then create the shared graphics
3098         context from these provided by the embedder.
3099
3100         This falls back to the old path if the new methods return NULL to
3101         let us land this immediately and then transition the chromium side
3102         over to this path.
3103
3104         * platform/chromium/support/GraphicsContext3DPrivate.cpp:
3105         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3106         (WebCore):
3107         (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromExternalWebContextAndGrContext):
3108         (WebCore::GraphicsContext3DPrivate::grContext):
3109         * platform/chromium/support/GraphicsContext3DPrivate.h:
3110         (GraphicsContext3DPrivate):
3111         (WebCore::GraphicsContext3DPrivate::webContext):
3112         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
3113         (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
3114
3115 2013-02-26  Antti Koivisto  <antti@apple.com>
3116
3117         REGRESSION(r143986): fast/files/revoke-blob-url.html asserts
3118         https://bugs.webkit.org/show_bug.cgi?id=110885
3119         
3120         Reviewed by Alexey Proskuryakov.
3121
3122         The ResourceRequest string constructor assumes that the string is a valid URL. Use KURL constructor instead.
3123
3124         * html/DOMURL.cpp:
3125         (WebCore::DOMURL::revokeObjectURL):
3126
3127 2013-02-26  Dean Jackson  <dino@apple.com>
3128
3129         Draw intermediate snapshots if possible
3130         https://bugs.webkit.org/show_bug.cgi?id=110811
3131
3132         Reviewed by Simon Fraser.
3133
3134         After http://webkit.org/b/110495 we delayed snapshotting until we've
3135         received a nice image, but this made the page look like it is broken.
3136         We should draw any intermediate snapshots that we find, which might
3137         include content such as progress bars/spinners.
3138
3139         * html/HTMLPlugInElement.h:
3140         (WebCore::HTMLPlugInElement::isPlugInImageElement): Expose virtual method
3141         to indicate if this is a HTMLPlugInImageElement or not.
3142         * html/HTMLPlugInImageElement.cpp:
3143         (WebCore::HTMLPlugInImageElement::updateSnapshot): If we have
3144         a RenderEmbeddedObject renderer, then tell it to repaint.
3145         * html/HTMLPlugInImageElement.h:
3146         (WebCore::HTMLPlugInImageElement::snapshotImage): Expose an
3147         accessor for snapshot images.
3148         * rendering/RenderEmbeddedObject.cpp:
3149         (WebCore::RenderEmbeddedObject::paintSnapshotImage): New helper
3150         method to render an image directly. This code is similar to
3151         that in RenderSnapshottedPlugIn.
3152         (WebCore::RenderEmbeddedObject::paintContents): The virtual implementation
3153         of this method for use when we have a snapshot to paint. If we are a plugin that is
3154         in the process of being snapshotted, ask our HTMLPlugInImageElement for a
3155         snapshot and paint that instead. In the case where we are not snapshotting,
3156         or we do not yet have a snapshot, this will call back into the RenderWidget code.
3157         * rendering/RenderEmbeddedObject.h:
3158         (RenderEmbeddedObject): New methods paintSnapshotImage and paintContents
3159         * rendering/RenderWidget.cpp:
3160         (WebCore::RenderWidget::paintContents): New method called in the middle
3161         of paint() that can be overridden by RenderEmbeddedObject. The code here was
3162         simply moved out of the previous paint().
3163         (WebCore::RenderWidget::paint): Call paintContents at the appropriate time.
3164         * rendering/RenderWidget.h:
3165         (RenderWidget): New virtual method paintContents.
3166
3167 2013-02-26  Levi Weintraub  <leviw@chromium.org>
3168
3169         Add support for 8 bit TextRuns for Chromium/HarfBuzz
3170         https://bugs.webkit.org/show_bug.cgi?id=99393
3171
3172         Reviewed by Eric Seidel.
3173
3174         Adding support for 8 bit TextRuns for platforms using HarfBuzz. To accomplish this,
3175         8 bit text runs are upconverted to 16 bit in the complex text path during string
3176         normalization, as HarfBuzz operates on UChars.
3177
3178         No new tests. No change in behavior.
3179
3180         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
3181         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
3182         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
3183         (WebCore::normalizeCharacters):
3184         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
3185
3186 2013-02-26  Dmitry Zvorygin  <zvorygin@chromium.org>
3187
3188         Merged Tip and Debug log levels for web console.
3189         https://bugs.webkit.org/show_bug.cgi?id=109919
3190
3191         Reviewed by Pavel Feldman.
3192
3193         In every component either TIP or DEBUG level was used for reporting,
3194         but not both. This patch is prerequisite for Web Inspector console log filtering.
3195
3196         * css/MediaList.cpp:
3197         (WebCore::addResolutionWarningMessageToConsole):
3198         * inspector/ConsoleMessage.cpp:
3199         (WebCore::messageLevelValue):
3200         * loader/appcache/ApplicationCacheGroup.cpp:
3201         (WebCore::ApplicationCacheGroup::abort):
3202         * page/Console.cpp:
3203         (WebCore::printMessageSourceAndLevelPrefix):
3204         * page/ConsoleTypes.h:
3205         * xml/XSLTProcessorLibxslt.cpp:
3206         (WebCore::XSLTProcessor::parseErrorFunc):
3207         * xml/XSLTProcessorQt.cpp:
3208         (WebCore::XSLTMessageHandler::handleMessage):
3209
3210 2013-02-26  Alberto Garcia  <agarcia@igalia.com>
3211
3212         [BlackBerry] Upstream the datalist support UI
3213         https://bugs.webkit.org/show_bug.cgi?id=110736
3214
3215         Reviewed by Rob Buis.
3216
3217         Original code by Otto Derek Cheung <otcheung@rim.com>
3218
3219         * css/themeBlackBerry.css:
3220         (input::-webkit-suggestion-dropdown-box):
3221         (input::-webkit-suggestion-dropdown-box-item):
3222         (input::-webkit-suggestion-prefix-text):
3223         (input::-webkit-suggestion-dropdown-box-item-last):
3224         * platform/blackberry/RenderThemeBlackBerry.cpp:
3225         (WebCore::RenderThemeBlackBerry::supportsDataListUI):
3226         (WebCore):
3227         * platform/blackberry/RenderThemeBlackBerry.h:
3228         (RenderThemeBlackBerry):
3229
3230 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
3231
3232         Web Inspector: plumb trace events to Timeline agent
3233         https://bugs.webkit.org/show_bug.cgi?id=105796
3234
3235         Reviewed by Pavel Feldman.
3236
3237         - plumb trace events to Timeline;
3238         - add TimelineTraceEventProcessor to process selected trace events;
3239         - emit timeline events from TimelineTraceEventProcessor.
3240
3241         Note that actual event processing logic is a separate change.
3242
3243         * CMakeLists.txt: Added TimelineTraceEventProcessor.{h,cpp}.
3244         * GNUmakefile.list.am:  Ditto.
3245         * Target.pri: Ditto.
3246         * WebCore.gypi: Ditto.
3247         * WebCore.vcproj/WebCore.vcproj: Ditto.
3248         * WebCore.xcodeproj/project.pbxproj: Ditto.
3249         * inspector/InspectorAllInOne.cpp: Ditto.
3250         * inspector/InspectorClient.h:
3251         (InspectorClient):
3252         (WebCore::InspectorClient::setTraceEventCallback):
3253         * inspector/InspectorTimelineAgent.cpp: create/destroy trace event processor on start/stop.
3254         (WebCore::InspectorTimelineAgent::start): 
3255         (WebCore::InspectorTimelineAgent::stop):
3256         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3257         (WebCore::InspectorTimelineAgent::page):
3258         (WebCore):
3259         * inspector/InspectorTimelineAgent.h:
3260         (WebCore):
3261         (InspectorTimelineAgent):
3262         * inspector/TimelineTraceEventProcessor.cpp: Added.
3263         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
3264         (WebCore):
3265         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
3266         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
3267         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
3268         (WebCore::TimelineTraceEventProcessor::processEvent):
3269         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
3270         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
3271         * inspector/TimelineTraceEventProcessor.h: Added.
3272         (WebCore):
3273         (TimelineTraceEventProcessor):
3274         (TraceEvent):
3275         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
3276         (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
3277         (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
3278         (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
3279         (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
3280         (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
3281         (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
3282         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
3283         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
3284         (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
3285         (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
3286         (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
3287         (EventTypeEntry):
3288
3289 2013-02-18  Eugene Klyuchnikov  <eustas@chromium.org>
3290
3291         Web Inspector: Web Inspector: Specify return type of WebInspector.UIString
3292         https://bugs.webkit.org/show_bug.cgi?id=110095
3293
3294         Reviewed by Pavel Feldman.
3295
3296         Specify return type of WebInspector.UIString.
3297         Fix new js-compiler warnings.
3298
3299         This change will increase type coverage by 0.4% (to 81%)
3300
3301         * inspector/front-end/ObjectPropertiesSection.js: Fix type errors.
3302         * inspector/front-end/UIString.js:
3303         (WebInspector.UIString): Return type specified.
3304
3305 2013-02-26  Eugene Klyuchnikov  <eustas@chromium.org>
3306
3307         Web Inspector: [Resources] Cookies table looks empty.
3308         https://bugs.webkit.org/show_bug.cgi?id=110870
3309
3310         Reviewed by Pavel Feldman.
3311
3312         Fixed data-grid selector.
3313
3314         * inspector/front-end/resourcesPanel.css:
3315         (.storage-view .data-grid): Fixed selector.
3316
3317 2013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
3318
3319         Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events.
3320         https://bugs.webkit.org/show_bug.cgi?id=110878
3321
3322         Reviewed by Alexander Pavlov.
3323
3324         Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
3325         FileSystemModel. This patch migrates FileSystem inspection support to new events.
3326
3327         * inspector/front-end/FileSystemModel.js:
3328         (WebInspector.FileSystemModel):
3329         (WebInspector.FileSystemModel.prototype._reset):
3330         (WebInspector.FileSystemModel.prototype._securityOriginAdded):
3331         (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
3332         (WebInspector.FileSystemModel.prototype._addOrigin):
3333         (WebInspector.FileSystemModel.prototype._removeOrigin):
3334         (WebInspector.FileSystemModel.prototype.refreshFileSystemList):
3335
3336 2013-02-26  Antoine Quint  <graouts@apple.com>
3337
3338         Web Inspector: Cannot deep expand an element that has previously been partially expanded
3339         https://bugs.webkit.org/show_bug.cgi?id=110424
3340
3341         In the case where the children from the provided node have already been pushed, traverse
3342         children at the depth provided until we find children that have not been pushed yet.
3343
3344         Reviewed by Pavel Feldman.
3345
3346         * inspector/InspectorDOMAgent.cpp:
3347         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
3348
3349 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
3350
3351         Unreviewed, rolling out r144041, r144044, and r144048.
3352         http://trac.webkit.org/changeset/144041
3353         http://trac.webkit.org/changeset/144044
3354         http://trac.webkit.org/changeset/144048
3355         https://bugs.webkit.org/show_bug.cgi?id=105796
3356
3357         Broke build
3358
3359         * CMakeLists.txt:
3360         * GNUmakefile.list.am:
3361         * Target.pri:
3362         * WebCore.gypi:
3363         * WebCore.vcproj/WebCore.vcproj:
3364         * WebCore.xcodeproj/project.pbxproj:
3365         * inspector/InspectorAllInOne.cpp:
3366         * inspector/InspectorClient.h:
3367         * inspector/InspectorInstrumentation.cpp:
3368         (WebCore):
3369         (WebCore::InspectorInstrumentation::willPaintImpl):
3370         * inspector/InspectorInstrumentation.h:
3371         * inspector/InspectorTimelineAgent.cpp:
3372         (TimelineRecordType):
3373         (WebCore::InspectorTimelineAgent::start):
3374         (WebCore::InspectorTimelineAgent::stop):
3375         (WebCore::InspectorTimelineAgent::didBeginFrame):
3376         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
3377         * inspector/InspectorTimelineAgent.h:
3378         (WebCore):
3379         (InspectorTimelineAgent):
3380         * inspector/TimelineRecordFactory.cpp:
3381         * inspector/TimelineRecordFactory.h:
3382         * inspector/TimelineTraceEventProcessor.cpp: Removed.
3383         * inspector/TimelineTraceEventProcessor.h: Removed.
3384         * inspector/front-end/TimelineModel.js:
3385         * inspector/front-end/TimelinePresentationModel.js:
3386         (WebInspector.TimelinePresentationModel._initRecordStyles):
3387
3388 2013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
3389
3390         Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
3391         https://bugs.webkit.org/show_bug.cgi?id=110863
3392
3393         Reviewed by Alexander Pavlov.
3394
3395         Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
3396         IndexedDBModel. This patch migrates IndexedDB support to new events.
3397
3398         * inspector/Inspector.json:
3399         * inspector/InspectorIndexedDBAgent.cpp:
3400         (WebCore):
3401         (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
3402         (WebCore::InspectorIndexedDBAgent::requestDatabase):
3403         (WebCore::InspectorIndexedDBAgent::requestData):
3404         * inspector/InspectorIndexedDBAgent.h:
3405         (InspectorIndexedDBAgent):
3406         * inspector/front-end/IndexedDBModel.js:
3407         (WebInspector.IndexedDBModel):
3408         (WebInspector.IndexedDBModel.prototype._reset):
3409         (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
3410         (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
3411         (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
3412         (WebInspector.IndexedDBModel.prototype._addOrigin):
3413         (WebInspector.IndexedDBModel.prototype._removeOrigin):
3414         (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
3415         (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
3416         (WebInspector.IndexedDBModel.prototype._loadDatabase):
3417         (WebInspector.IndexedDBModel.prototype.):
3418         (WebInspector.IndexedDBModel.prototype._requestData):
3419         * inspector/front-end/ResourceTreeModel.js:
3420         (WebInspector.ResourceTreeModel.prototype.securityOrigins):
3421
3422 2013-02-26  Alexander Pavlov  <apavlov@chromium.org>
3423
3424         Web Inspector: in protocol make field "securityOrigin" in type Page.Frame mandatory
3425         https://bugs.webkit.org/show_bug.cgi?id=80857
3426
3427         Reviewed by Vsevolod Vlasov.
3428
3429         Frame.securityOrigin has always been set to a valid value, so this change just fixes
3430         the protocol flaw.
3431
3432         * inspector/Inspector.json:
3433         * inspector/InspectorPageAgent.cpp:
3434         (WebCore::InspectorPageAgent::buildObjectForFrame):
3435         * inspector/front-end/ResourceTreeModel.js:
3436         (WebInspector.ResourceTreeFrame):
3437         (WebInspector.ResourceTreeFrame.prototype._navigate):
3438
3439 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
3440
3441         Unreviewed build fix following r144041.
3442
3443         * inspector/TimelineTraceEventProcessor.h:
3444         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
3445
3446 2013-02-26  Vivek Galatage  <vivek.vg@samsung.com>
3447
3448         Web Inspector: DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
3449         https://bugs.webkit.org/show_bug.cgi?id=110862
3450
3451         Reviewed by Alexander Pavlov.
3452
3453         While deleting entries in the DataGrid, deleting of selected node should trigger selection of
3454         next possible (backward/forward) DataGridNode.
3455
3456         * inspector/front-end/DataGrid.js:
3457         (WebInspector.DataGrid.prototype._keyDown):
3458         (WebInspector.DataGridNode.prototype.get leftPadding):
3459         (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
3460
3461 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
3462
3463         Web Inspector: show raster tasks on Timeline
3464         https://bugs.webkit.org/show_bug.cgi?id=105851
3465
3466         - add PaintLayer, Paint & RasterTask trace events handling to trace event processor;
3467         - upon begin frame, emit aggregated background event for all raster tasks related to the inspected page.
3468
3469         Reviewed by Pavel Feldman.